diff --git a/snowy-plugin/snowy-plugin-gen/src/main/java/vip/xiaonuo/gen/modular/config/service/GenConfigService.java b/snowy-plugin/snowy-plugin-gen/src/main/java/vip/xiaonuo/gen/modular/config/service/GenConfigService.java index f7a3ea48..da7ecc95 100644 --- a/snowy-plugin/snowy-plugin-gen/src/main/java/vip/xiaonuo/gen/modular/config/service/GenConfigService.java +++ b/snowy-plugin/snowy-plugin-gen/src/main/java/vip/xiaonuo/gen/modular/config/service/GenConfigService.java @@ -13,7 +13,6 @@ package vip.xiaonuo.gen.modular.config.service; import com.baomidou.mybatisplus.extension.service.IService; -import vip.xiaonuo.common.pojo.CommonValidList; import vip.xiaonuo.gen.modular.config.entity.GenConfig; import vip.xiaonuo.gen.modular.config.param.GenConfigEditParam; import vip.xiaonuo.gen.modular.config.param.GenConfigIdParam; diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/controller/MobileMenuController.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/controller/MobileMenuController.java similarity index 89% rename from snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/controller/MobileMenuController.java rename to snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/controller/MobileMenuController.java index 1a0e4a5a..cd8f65ce 100644 --- a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/controller/MobileMenuController.java +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/controller/MobileMenuController.java @@ -10,7 +10,7 @@ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip */ -package vip.xiaonuo.mobile.modular.menu.controller; +package vip.xiaonuo.mobile.modular.resource.controller; import cn.hutool.core.lang.tree.Tree; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; @@ -25,9 +25,12 @@ import org.springframework.web.bind.annotation.RestController; import vip.xiaonuo.common.annotation.CommonLog; import vip.xiaonuo.common.pojo.CommonResult; import vip.xiaonuo.common.pojo.CommonValidList; -import vip.xiaonuo.mobile.modular.menu.entity.MobileMenu; -import vip.xiaonuo.mobile.modular.menu.param.*; -import vip.xiaonuo.mobile.modular.menu.service.MobileMenuService; +import vip.xiaonuo.mobile.modular.resource.entity.MobileMenu; +import vip.xiaonuo.mobile.modular.resource.param.menu.MobileMenuAddParam; +import vip.xiaonuo.mobile.modular.resource.param.menu.MobileMenuEditParam; +import vip.xiaonuo.mobile.modular.resource.param.menu.MobileMenuIdParam; +import vip.xiaonuo.mobile.modular.resource.param.menu.MobileMenuTreeParam; +import vip.xiaonuo.mobile.modular.resource.service.MobileMenuService; import javax.annotation.Resource; import javax.validation.Valid; diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/controller/MobileModuleController.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/controller/MobileModuleController.java new file mode 100644 index 00000000..2bdf7dc1 --- /dev/null +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/controller/MobileModuleController.java @@ -0,0 +1,125 @@ +/* + * Copyright [2022] [https://www.xiaonuo.vip] + * + * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Snowy源码头部的版权声明。 + * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip + * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 + * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package vip.xiaonuo.mobile.modular.resource.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSupport; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; +import vip.xiaonuo.common.annotation.CommonLog; +import vip.xiaonuo.common.pojo.CommonResult; +import vip.xiaonuo.common.pojo.CommonValidList; +import vip.xiaonuo.mobile.modular.resource.entity.MobileModule; +import vip.xiaonuo.mobile.modular.resource.param.module.MobileModuleAddParam; +import vip.xiaonuo.mobile.modular.resource.param.module.MobileModuleEditParam; +import vip.xiaonuo.mobile.modular.resource.param.module.MobileModuleIdParam; +import vip.xiaonuo.mobile.modular.resource.param.module.MobileModulePageParam; +import vip.xiaonuo.mobile.modular.resource.service.MobileModuleService; + +import javax.annotation.Resource; +import javax.validation.Valid; +import javax.validation.constraints.NotEmpty; + +/** + * 移动端模块控制器 + * + * @author xuyuxiang + * @date 2022/6/27 14:12 + **/ +@Api(tags = "移动端模块控制器") +@ApiSupport(author = "SNOWY_TEAM", order = 6) +@RestController +@Validated +public class MobileModuleController { + + @Resource + private MobileModuleService mobileModuleService; + + /** + * 获取移动端模块分页 + * + * @author xuyuxiang + * @date 2022/4/24 20:00 + */ + @ApiOperationSupport(order = 1) + @ApiOperation("获取移动端模块分页") + @GetMapping("/mobile/module/page") + public CommonResult> page(MobileModulePageParam mobileModulePageParam) { + return CommonResult.data(mobileModuleService.page(mobileModulePageParam)); + } + + /** + * 添加移动端模块 + * + * @author xuyuxiang + * @date 2022/4/24 20:47 + */ + @ApiOperationSupport(order = 2) + @ApiOperation("添加移动端模块") + @CommonLog("添加移动端模块") + @PostMapping("/mobile/module/add") + public CommonResult add(@RequestBody @Valid MobileModuleAddParam mobileModuleAddParam) { + mobileModuleService.add(mobileModuleAddParam); + return CommonResult.ok(); + } + + /** + * 编辑移动端模块 + * + * @author xuyuxiang + * @date 2022/4/24 20:47 + */ + @ApiOperationSupport(order = 3) + @ApiOperation("编辑移动端模块") + @CommonLog("编辑移动端模块") + @PostMapping("/mobile/module/edit") + public CommonResult edit(@RequestBody @Valid MobileModuleEditParam mobileModuleEditParam) { + mobileModuleService.edit(mobileModuleEditParam); + return CommonResult.ok(); + } + + /** + * 删除移动端模块 + * + * @author xuyuxiang + * @date 2022/4/24 20:00 + */ + @ApiOperationSupport(order = 4) + @ApiOperation("删除移动端模块") + @CommonLog("删除移动端模块") + @PostMapping("/mobile/module/delete") + public CommonResult delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空") + CommonValidList mobileModuleIdParamList) { + mobileModuleService.delete(mobileModuleIdParamList); + return CommonResult.ok(); + } + + /** + * 获取移动端模块详情 + * + * @author xuyuxiang + * @date 2022/4/24 20:00 + */ + @ApiOperationSupport(order = 5) + @ApiOperation("获取移动端模块详情") + @GetMapping("/mobile/module/detail") + public CommonResult detail(@Valid MobileModuleIdParam mobileModuleIdParam) { + return CommonResult.data(mobileModuleService.detail(mobileModuleIdParam)); + } +} diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/entity/MobileMenu.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/entity/MobileMenu.java similarity index 57% rename from snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/entity/MobileMenu.java rename to snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/entity/MobileMenu.java index fc8e69c7..813ec4ee 100644 --- a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/entity/MobileMenu.java +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/entity/MobileMenu.java @@ -10,17 +10,16 @@ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip */ -package vip.xiaonuo.mobile.modular.menu.entity; +package vip.xiaonuo.mobile.modular.resource.entity; -import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; -import java.math.BigDecimal; -import java.util.Date; +import vip.xiaonuo.common.pojo.CommonEntity; /** * 移动端菜单实体 @@ -30,8 +29,8 @@ import java.util.Date; **/ @Getter @Setter -@TableName("MOBILE_MENU") -public class MobileMenu { +@TableName("MOBILE_RESOURCE") +public class MobileMenu extends CommonEntity { /** 主键 */ @TableId @@ -50,59 +49,40 @@ public class MobileMenu { @ApiModelProperty(value = "编码", position = 4) private String code; - /** 界面路径 */ - @ApiModelProperty(value = "界面路径", position = 5) + /** 路径 */ + @ApiModelProperty(value = "路径", position = 5) private String pages; /** 分类 */ @ApiModelProperty(value = "分类", position = 6) private String category; + /** 模块 */ + @ApiModelProperty(value = "模块", position = 7) + private String module; + /** 图标 */ - @ApiModelProperty(value = "图标", position = 7) + @ApiModelProperty(value = "图标", position = 8) private String icon; /** 颜色 */ - @ApiModelProperty(value = "颜色", position = 8) + @ApiModelProperty(value = "颜色", position = 9) private String color; - /** 正规则 */ - @ApiModelProperty(value = "正规则", position = 9) - private String isRegExp; + /** 规则类型 */ + @ApiModelProperty(value = "规则类型", position = 10) + private String regType; /** 可用状态 */ - @ApiModelProperty(value = "可用状态", position = 10) + @ApiModelProperty(value = "可用状态", position = 11) private String status; /** 排序码 */ - @ApiModelProperty(value = "排序码", position = 11) + @ApiModelProperty(value = "排序码", position = 12) private Integer sortCode; /** 扩展信息 */ - @ApiModelProperty(value = "扩展信息", position = 12) + @ApiModelProperty(value = "扩展信息", position = 13) + @TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED) private String extJson; - - /** 删除标志 */ - @ApiModelProperty(value = "删除标志", position = 13) - private String deleteFlag; - - /** 创建时间 */ - @ApiModelProperty(value = "创建时间", position = 14) - @TableField(fill = FieldFill.INSERT) - private Date createTime; - - /** 创建用户 */ - @ApiModelProperty(value = "创建用户", position = 15) - @TableField(fill = FieldFill.INSERT) - private String createUser; - - /** 修改时间 */ - @ApiModelProperty(value = "修改时间", position = 16) - @TableField(fill = FieldFill.UPDATE) - private Date updateTime; - - /** 修改用户 */ - @ApiModelProperty(value = "修改用户", position = 17) - @TableField(fill = FieldFill.UPDATE) - private String updateUser; } diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/entity/MobileModule.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/entity/MobileModule.java new file mode 100644 index 00000000..d858f117 --- /dev/null +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/entity/MobileModule.java @@ -0,0 +1,66 @@ +/* + * Copyright [2022] [https://www.xiaonuo.vip] + * + * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Snowy源码头部的版权声明。 + * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip + * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 + * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package vip.xiaonuo.mobile.modular.resource.entity; + +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import vip.xiaonuo.common.pojo.CommonEntity; + +/** + * 模块实体 + * + * @author xuyuxiang + * @date 2022/7/27 18:20 + **/ +@Getter +@Setter +@TableName("MOBILE_RESOURCE") +public class MobileModule extends CommonEntity { + + /** id */ + @ApiModelProperty(value = "id", position = 1) + private String id; + + /** 标题 */ + @ApiModelProperty(value = "标题", position = 2) + private String title; + + /** 编码 */ + @ApiModelProperty(value = "编码", position = 3) + private String code; + + /** 分类 */ + @ApiModelProperty(value = "分类", position = 4) + private String category; + + /** 图标 */ + @ApiModelProperty(value = "图标", position = 5) + private String icon; + + /** 颜色 */ + @ApiModelProperty(value = "颜色", position = 6) + private String color; + + /** 排序码 */ + @ApiModelProperty(value = "排序码", position = 7) + private Integer sortCode; + + /** 扩展信息 */ + @ApiModelProperty(value = "扩展信息", position = 8) + @TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED) + private String extJson; +} diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/enums/MobileResourceCategoryEnum.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/enums/MobileResourceCategoryEnum.java new file mode 100644 index 00000000..7ac8004d --- /dev/null +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/enums/MobileResourceCategoryEnum.java @@ -0,0 +1,45 @@ +/* + * Copyright [2022] [https://www.xiaonuo.vip] + * + * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Snowy源码头部的版权声明。 + * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip + * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 + * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package vip.xiaonuo.mobile.modular.resource.enums; + +import lombok.Getter; +import vip.xiaonuo.common.exception.CommonException; + +/** + * 移动端资源分类枚举 + * + * @author xuyuxiang + * @date 2022/4/21 19:56 + **/ +@Getter +public enum MobileResourceCategoryEnum { + + /** 模块 */ + MODULE("MODULE"), + + /** 菜单 */ + MENU("MENU"); + + private final String value; + + MobileResourceCategoryEnum(String value) { + this.value = value; + } + + public static void validate(String value) { + boolean flag = MODULE.getValue().equals(value) || MENU.getValue().equals(value); + if(!flag) { + throw new CommonException("不支持的资源分类:{}", value); + } + } +} diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/mapper/MobileMenuMapper.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/mapper/MobileMenuMapper.java similarity index 89% rename from snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/mapper/MobileMenuMapper.java rename to snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/mapper/MobileMenuMapper.java index a5a41a5e..eb6d5ca5 100644 --- a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/mapper/MobileMenuMapper.java +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/mapper/MobileMenuMapper.java @@ -10,10 +10,10 @@ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip */ -package vip.xiaonuo.mobile.modular.menu.mapper; +package vip.xiaonuo.mobile.modular.resource.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import vip.xiaonuo.mobile.modular.menu.entity.MobileMenu; +import vip.xiaonuo.mobile.modular.resource.entity.MobileMenu; /** * 移动端菜单Mapper接口 diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/enums/MobileMenuEnum.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/mapper/MobileModuleMapper.java similarity index 70% rename from snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/enums/MobileMenuEnum.java rename to snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/mapper/MobileModuleMapper.java index 647d14ee..1281feaa 100644 --- a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/enums/MobileMenuEnum.java +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/mapper/MobileModuleMapper.java @@ -10,25 +10,16 @@ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip */ -package vip.xiaonuo.mobile.modular.menu.enums; +package vip.xiaonuo.mobile.modular.resource.mapper; -import lombok.Getter; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import vip.xiaonuo.mobile.modular.resource.entity.MobileModule; /** - * 移动端菜单枚举 + * 移动端模块Mapper接口 * - * @author yubaoshan - * @date 2023/01/28 22:42 + * @author xuyuxiang + * @date 2022/4/21 18:37 **/ -@Getter -public enum MobileMenuEnum { - - /** 测试 */ - TEST("TEST"); - - private final String value; - - MobileMenuEnum(String value) { - this.value = value; - } +public interface MobileModuleMapper extends BaseMapper { } diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/mapper/mapping/MobileMenuMapper.xml b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/mapper/mapping/MobileMenuMapper.xml similarity index 62% rename from snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/mapper/mapping/MobileMenuMapper.xml rename to snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/mapper/mapping/MobileMenuMapper.xml index f9a66fb1..b1a782c7 100644 --- a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/mapper/mapping/MobileMenuMapper.xml +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/mapper/mapping/MobileMenuMapper.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/mapper/mapping/MobileModuleMapper.xml b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/mapper/mapping/MobileModuleMapper.xml new file mode 100644 index 00000000..3b51d5a3 --- /dev/null +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/mapper/mapping/MobileModuleMapper.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/param/MobileMenuAddParam.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/menu/MobileMenuAddParam.java similarity index 88% rename from snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/param/MobileMenuAddParam.java rename to snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/menu/MobileMenuAddParam.java index 657eb48f..e3102572 100644 --- a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/param/MobileMenuAddParam.java +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/menu/MobileMenuAddParam.java @@ -10,16 +10,13 @@ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip */ -package vip.xiaonuo.mobile.modular.menu.param; +package vip.xiaonuo.mobile.modular.resource.param.menu; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import java.math.BigDecimal; -import java.util.Date; /** * 移动端菜单添加参数 @@ -61,10 +58,10 @@ public class MobileMenuAddParam { @NotBlank(message = "color不能为空") private String color; - /** 正规则 */ - @ApiModelProperty(value = "正规则", required = true, position = 9) - @NotBlank(message = "isRegExp不能为空") - private String isRegExp; + /** 规则类型 */ + @ApiModelProperty(value = "规则类型", required = true, position = 9) + @NotBlank(message = "regType不能为空") + private String regType; /** 可用状态 */ @ApiModelProperty(value = "可用状态", required = true, position = 10) diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/param/MobileMenuEditParam.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/menu/MobileMenuEditParam.java similarity index 88% rename from snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/param/MobileMenuEditParam.java rename to snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/menu/MobileMenuEditParam.java index 3c46bd4f..5f8ba047 100644 --- a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/param/MobileMenuEditParam.java +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/menu/MobileMenuEditParam.java @@ -10,16 +10,13 @@ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip */ -package vip.xiaonuo.mobile.modular.menu.param; +package vip.xiaonuo.mobile.modular.resource.param.menu; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import java.math.BigDecimal; -import java.util.Date; /** * 移动端菜单编辑参数 @@ -66,10 +63,10 @@ public class MobileMenuEditParam { @NotBlank(message = "color不能为空") private String color; - /** 正规则 */ - @ApiModelProperty(value = "正规则", required = true, position = 9) - @NotBlank(message = "isRegExp不能为空") - private String isRegExp; + /** 规则类型 */ + @ApiModelProperty(value = "规则类型", required = true, position = 9) + @NotBlank(message = "regType不能为空") + private String regType; /** 可用状态 */ @ApiModelProperty(value = "可用状态", required = true, position = 10) diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/param/MobileMenuIdParam.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/menu/MobileMenuIdParam.java similarity index 95% rename from snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/param/MobileMenuIdParam.java rename to snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/menu/MobileMenuIdParam.java index a170a835..0e8e1524 100644 --- a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/param/MobileMenuIdParam.java +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/menu/MobileMenuIdParam.java @@ -10,7 +10,7 @@ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip */ -package vip.xiaonuo.mobile.modular.menu.param; +package vip.xiaonuo.mobile.modular.resource.param.menu; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/param/MobileMenuTreeParam.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/menu/MobileMenuTreeParam.java similarity index 95% rename from snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/param/MobileMenuTreeParam.java rename to snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/menu/MobileMenuTreeParam.java index 67791c33..15fbf04f 100644 --- a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/param/MobileMenuTreeParam.java +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/menu/MobileMenuTreeParam.java @@ -10,7 +10,7 @@ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip */ -package vip.xiaonuo.mobile.modular.menu.param; +package vip.xiaonuo.mobile.modular.resource.param.menu; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/module/MobileModuleAddParam.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/module/MobileModuleAddParam.java new file mode 100644 index 00000000..eb73710f --- /dev/null +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/module/MobileModuleAddParam.java @@ -0,0 +1,55 @@ +/* + * Copyright [2022] [https://www.xiaonuo.vip] + * + * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Snowy源码头部的版权声明。 + * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip + * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 + * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package vip.xiaonuo.mobile.modular.resource.param.module; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * 移动端模块添加参数 + * + * @author xuyuxiang + * @date 2022/7/27 18:40 + **/ +@Getter +@Setter +public class MobileModuleAddParam { + + /** 标题 */ + @ApiModelProperty(value = "标题", required = true, position = 1) + @NotBlank(message = "title不能为空") + private String title; + + /** 图标 */ + @ApiModelProperty(value = "图标", required = true, position = 2) + @NotBlank(message = "icon不能为空") + private String icon; + + /** 颜色 */ + @ApiModelProperty(value = "颜色", required = true, position = 3) + @NotBlank(message = "color不能为空") + private String color; + + /** 排序码 */ + @ApiModelProperty(value = "排序码", required = true, position = 4) + @NotNull(message = "sortCode不能为空") + private Integer sortCode; + + /** 扩展信息 */ + @ApiModelProperty(value = "扩展信息", position = 5) + private String extJson; +} diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/module/MobileModuleEditParam.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/module/MobileModuleEditParam.java new file mode 100644 index 00000000..b42891d4 --- /dev/null +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/module/MobileModuleEditParam.java @@ -0,0 +1,60 @@ +/* + * Copyright [2022] [https://www.xiaonuo.vip] + * + * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Snowy源码头部的版权声明。 + * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip + * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 + * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package vip.xiaonuo.mobile.modular.resource.param.module; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * 移动端模块编辑参数 + * + * @author xuyuxiang + * @date 2022/7/27 18:40 + **/ +@Getter +@Setter +public class MobileModuleEditParam { + + /** id */ + @ApiModelProperty(value = "id", required = true, position = 1) + @NotBlank(message = "id不能为空") + private String id; + + /** 标题 */ + @ApiModelProperty(value = "标题", required = true, position = 2) + @NotBlank(message = "title不能为空") + private String title; + + /** 图标 */ + @ApiModelProperty(value = "图标", required = true, position = 3) + @NotBlank(message = "icon不能为空") + private String icon; + + /** 颜色 */ + @ApiModelProperty(value = "颜色", required = true, position = 4) + @NotBlank(message = "color不能为空") + private String color; + + /** 排序码 */ + @ApiModelProperty(value = "排序码", required = true, position = 5) + @NotNull(message = "sortCode不能为空") + private Integer sortCode; + + /** 扩展信息 */ + @ApiModelProperty(value = "扩展信息", position = 6) + private String extJson; +} diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/module/MobileModuleIdParam.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/module/MobileModuleIdParam.java new file mode 100644 index 00000000..938696ba --- /dev/null +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/module/MobileModuleIdParam.java @@ -0,0 +1,35 @@ +/* + * Copyright [2022] [https://www.xiaonuo.vip] + * + * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Snowy源码头部的版权声明。 + * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip + * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 + * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package vip.xiaonuo.mobile.modular.resource.param.module; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; + +/** + * 移动端模块Id参数 + * + * @author xuyuxiang + * @date 2022/7/27 18:40 + **/ +@Getter +@Setter +public class MobileModuleIdParam { + + /** id */ + @ApiModelProperty(value = "id", required = true) + @NotBlank(message = "id不能为空") + private String id; +} diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/module/MobileModulePageParam.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/module/MobileModulePageParam.java new file mode 100644 index 00000000..4e840a5a --- /dev/null +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/param/module/MobileModulePageParam.java @@ -0,0 +1,48 @@ +/* + * Copyright [2022] [https://www.xiaonuo.vip] + * + * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Snowy源码头部的版权声明。 + * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip + * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 + * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package vip.xiaonuo.mobile.modular.resource.param.module; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + * 移动端模块查询参数 + * + * @author xuyuxiang + * @date 2022/7/27 18:40 + **/ +@Getter +@Setter +public class MobileModulePageParam { + + /** 当前页 */ + @ApiModelProperty(value = "当前页码") + private Integer current; + + /** 每页条数 */ + @ApiModelProperty(value = "每页条数") + private Integer size; + + /** 排序字段 */ + @ApiModelProperty(value = "排序字段,字段驼峰名称,如:userName") + private String sortField; + + /** 排序方式 */ + @ApiModelProperty(value = "排序方式,升序:ASCEND;降序:DESCEND") + private String sortOrder; + + /** 名称关键词 */ + @ApiModelProperty(value = "名称关键词") + private String searchKey; +} diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/service/MobileMenuService.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/service/MobileMenuService.java similarity index 83% rename from snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/service/MobileMenuService.java rename to snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/service/MobileMenuService.java index f904c2ac..6728bee5 100644 --- a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/service/MobileMenuService.java +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/service/MobileMenuService.java @@ -10,12 +10,15 @@ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip */ -package vip.xiaonuo.mobile.modular.menu.service; +package vip.xiaonuo.mobile.modular.resource.service; import cn.hutool.core.lang.tree.Tree; import com.baomidou.mybatisplus.extension.service.IService; -import vip.xiaonuo.mobile.modular.menu.entity.MobileMenu; -import vip.xiaonuo.mobile.modular.menu.param.*; +import vip.xiaonuo.mobile.modular.resource.entity.MobileMenu; +import vip.xiaonuo.mobile.modular.resource.param.menu.MobileMenuAddParam; +import vip.xiaonuo.mobile.modular.resource.param.menu.MobileMenuEditParam; +import vip.xiaonuo.mobile.modular.resource.param.menu.MobileMenuIdParam; +import vip.xiaonuo.mobile.modular.resource.param.menu.MobileMenuTreeParam; import java.util.List; diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/service/MobileModuleService.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/service/MobileModuleService.java new file mode 100644 index 00000000..e31c625f --- /dev/null +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/service/MobileModuleService.java @@ -0,0 +1,80 @@ +/* + * Copyright [2022] [https://www.xiaonuo.vip] + * + * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Snowy源码头部的版权声明。 + * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip + * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 + * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package vip.xiaonuo.mobile.modular.resource.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import vip.xiaonuo.mobile.modular.resource.entity.MobileModule; +import vip.xiaonuo.mobile.modular.resource.param.module.MobileModuleAddParam; +import vip.xiaonuo.mobile.modular.resource.param.module.MobileModuleEditParam; +import vip.xiaonuo.mobile.modular.resource.param.module.MobileModuleIdParam; +import vip.xiaonuo.mobile.modular.resource.param.module.MobileModulePageParam; + +import java.util.List; + +/** + * 移动端模块Service接口 + * + * @author xuyuxiang + * @date 2022/6/27 14:03 + **/ +public interface MobileModuleService extends IService { + + /** + * 获取移动端模块分页 + * + * @author xuyuxiang + * @date 2022/4/24 20:08 + */ + Page page(MobileModulePageParam mobileModulePageParam); + + /** + * 添加移动端模块 + * + * @author xuyuxiang + * @date 2022/4/24 20:48 + */ + void add(MobileModuleAddParam mobileModuleAddParam); + + /** + * 编辑移动端模块 + * + * @author xuyuxiang + * @date 2022/4/24 21:13 + */ + void edit(MobileModuleEditParam mobileModuleEditParam); + + /** + * 删除移动端模块 + * + * @author xuyuxiang + * @date 2022/4/24 21:18 + */ + void delete(List mobileModuleIdParamList); + + /** + * 获取移动端模块详情 + * + * @author xuyuxiang + * @date 2022/4/24 21:18 + */ + MobileModule detail(MobileModuleIdParam mobileModuleIdParam); + + /** + * 获取移动端模块详情 + * + * @author xuyuxiang + * @date 2022/4/24 21:18 + */ + MobileModule queryEntity(String id); +} diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/service/impl/MobileMenuServiceImpl.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/service/impl/MobileMenuServiceImpl.java similarity index 87% rename from snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/service/impl/MobileMenuServiceImpl.java rename to snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/service/impl/MobileMenuServiceImpl.java index 0a5c9450..30ead87d 100644 --- a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/menu/service/impl/MobileMenuServiceImpl.java +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/service/impl/MobileMenuServiceImpl.java @@ -10,7 +10,7 @@ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip */ -package vip.xiaonuo.mobile.modular.menu.service.impl; +package vip.xiaonuo.mobile.modular.resource.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollStreamUtil; @@ -24,10 +24,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import vip.xiaonuo.common.exception.CommonException; -import vip.xiaonuo.mobile.modular.menu.entity.MobileMenu; -import vip.xiaonuo.mobile.modular.menu.mapper.MobileMenuMapper; -import vip.xiaonuo.mobile.modular.menu.param.*; -import vip.xiaonuo.mobile.modular.menu.service.MobileMenuService; +import vip.xiaonuo.mobile.modular.resource.entity.MobileMenu; +import vip.xiaonuo.mobile.modular.resource.mapper.MobileMenuMapper; +import vip.xiaonuo.mobile.modular.resource.param.menu.MobileMenuAddParam; +import vip.xiaonuo.mobile.modular.resource.param.menu.MobileMenuEditParam; +import vip.xiaonuo.mobile.modular.resource.param.menu.MobileMenuIdParam; +import vip.xiaonuo.mobile.modular.resource.param.menu.MobileMenuTreeParam; +import vip.xiaonuo.mobile.modular.resource.service.MobileMenuService; import java.util.List; import java.util.stream.Collectors; diff --git a/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/service/impl/MobileModuleServiceImpl.java b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/service/impl/MobileModuleServiceImpl.java new file mode 100644 index 00000000..76fe16ac --- /dev/null +++ b/snowy-plugin/snowy-plugin-mobile/src/main/java/vip/xiaonuo/mobile/modular/resource/service/impl/MobileModuleServiceImpl.java @@ -0,0 +1,142 @@ +/* + * Copyright [2022] [https://www.xiaonuo.vip] + * + * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Snowy源码头部的版权声明。 + * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip + * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 + * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package vip.xiaonuo.mobile.modular.resource.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import vip.xiaonuo.common.enums.CommonSortOrderEnum; +import vip.xiaonuo.common.exception.CommonException; +import vip.xiaonuo.common.page.CommonPageRequest; +import vip.xiaonuo.mobile.modular.resource.entity.MobileModule; +import vip.xiaonuo.mobile.modular.resource.enums.MobileResourceCategoryEnum; +import vip.xiaonuo.mobile.modular.resource.mapper.MobileModuleMapper; +import vip.xiaonuo.mobile.modular.resource.param.module.MobileModuleAddParam; +import vip.xiaonuo.mobile.modular.resource.param.module.MobileModuleEditParam; +import vip.xiaonuo.mobile.modular.resource.param.module.MobileModuleIdParam; +import vip.xiaonuo.mobile.modular.resource.param.module.MobileModulePageParam; +import vip.xiaonuo.mobile.modular.resource.service.MobileMenuService; +import vip.xiaonuo.mobile.modular.resource.service.MobileModuleService; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 模块Service接口实现类 + * + * @author xuyuxiang + * @date 2022/6/27 14:25 + **/ +@Service +public class MobileModuleServiceImpl extends ServiceImpl implements MobileModuleService { + + @Resource + private MobileMenuService mobileMenuService; + + @Resource + /*private MobileRelationService mobileRelationService;*/ + + @Override + public Page page(MobileModulePageParam mobileModulePageParam) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(MobileModule::getCategory, MobileResourceCategoryEnum.MODULE.getValue()); + if(ObjectUtil.isNotEmpty(mobileModulePageParam.getSearchKey())) { + queryWrapper.lambda().like(MobileModule::getTitle, mobileModulePageParam.getSearchKey()); + } + if(ObjectUtil.isAllNotEmpty(mobileModulePageParam.getSortField(), mobileModulePageParam.getSortOrder())) { + CommonSortOrderEnum.validate(mobileModulePageParam.getSortOrder()); + queryWrapper.orderBy(true, mobileModulePageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()), + StrUtil.toUnderlineCase(mobileModulePageParam.getSortField())); + } else { + queryWrapper.lambda().orderByAsc(MobileModule::getSortCode); + } + return this.page(CommonPageRequest.defaultPage(), queryWrapper); + } + + @Override + public void add(MobileModuleAddParam mobileModuleAddParam) { + MobileModule mobileModule = BeanUtil.toBean(mobileModuleAddParam, MobileModule.class); + boolean repeatTitle = this.count(new LambdaQueryWrapper().eq(MobileModule::getCategory, + MobileResourceCategoryEnum.MODULE.getValue()).eq(MobileModule::getTitle, mobileModule.getTitle())) > 0; + if(repeatTitle) { + throw new CommonException("存在重复的模块,名称为:{}", mobileModule.getTitle()); + } + mobileModule.setCode(RandomUtil.randomString(10)); + mobileModule.setCategory(MobileResourceCategoryEnum.MODULE.getValue()); + this.save(mobileModule); + } + + @Override + public void edit(MobileModuleEditParam mobileModuleEditParam) { + MobileModule mobileModule = this.queryEntity(mobileModuleEditParam.getId()); + BeanUtil.copyProperties(mobileModuleEditParam, mobileModule); + boolean repeatTitle = this.count(new LambdaQueryWrapper().eq(MobileModule::getCategory, + MobileResourceCategoryEnum.MODULE.getValue()).eq(MobileModule::getTitle, mobileModule.getTitle()) + .ne(MobileModule::getId, mobileModule.getId())) > 0; + if(repeatTitle) { + throw new CommonException("存在重复的模块,名称为:{}", mobileModule.getTitle()); + } + this.updateById(mobileModule); + } + + @Override + public void delete(List mobileModuleIdParamList) { + /*List mobileModuleIdList = CollStreamUtil.toList(mobileModuleIdParamList, MobileModuleIdParam::getId); + if(ObjectUtil.isNotEmpty(mobileModuleIdList)) { + boolean containsMobiletemModule = this.listByIds(mobileModuleIdList).stream().map(MobileModule::getCode) + .collect(Collectors.toSet()).contains(MobileBuildInEnum.BUILD_IN_MODULE_CODE.getValue()); + if(containsMobiletemModule) { + throw new CommonException("不可删除系统内置模块"); + } + + // 获取模块下的菜单 + List allMenuList = mobileMenuService.list(new LambdaUpdateWrapper() + .in(MobileMenu::getCategory, CollectionUtil.newArrayList(MobileResourceCategoryEnum.MENU.getValue()))); + if(ObjectUtil.isNotEmpty(allMenuList)) { + List toDeleteMenuIdList = CollectionUtil.newArrayList(mobileModuleIdList); + allMenuList.stream().filter(mobileMenu -> mobileModuleIdList.contains(mobileMenu.getModule())) + .collect(Collectors.toList()).forEach(mobileMenu -> toDeleteMenuIdList + .addAll(mobileMenuService.getChildListById(allMenuList, mobileMenu.getId(), true).stream() + .map(MobileMenu::getId).collect(Collectors.toList()))); + if(ObjectUtil.isNotEmpty(toDeleteMenuIdList)) { + // 清除对应的角色与移动端资源信息 + mobileRelationService.remove(new LambdaUpdateWrapper().in(MobileRelation::getTargetId, toDeleteMenuIdList) + .eq(MobileRelation::getCategory, MobileRelationCategoryEnum.MOBILE_ROLE_HAS_RESOURCE.getValue())); + // 执行删除 + this.removeBatchByIds(toDeleteMenuIdList); + } + } + }*/ + // TODO + } + + @Override + public MobileModule detail(MobileModuleIdParam mobileModuleIdParam) { + return this.queryEntity(mobileModuleIdParam.getId()); + } + + @Override + public MobileModule queryEntity(String id) { + MobileModule mobileModule = this.getById(id); + if(ObjectUtil.isEmpty(mobileModule)) { + throw new CommonException("模块不存在,id值为:{}", id); + } + return mobileModule; + } +} diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/relation/enums/SysRelationCategoryEnum.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/relation/enums/SysRelationCategoryEnum.java index 05aec9dc..6d9533f4 100644 --- a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/relation/enums/SysRelationCategoryEnum.java +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/relation/enums/SysRelationCategoryEnum.java @@ -35,6 +35,9 @@ public enum SysRelationCategoryEnum { /** 角色拥有资源 */ SYS_ROLE_HAS_RESOURCE("SYS_ROLE_HAS_RESOURCE"), + /** 角色拥有移动端菜单 */ + SYS_ROLE_HAS_MENU_MOBILE("SYS_ROLE_HAS_MOBILE_MENU"), + /** 角色拥有权限 */ SYS_ROLE_HAS_PERMISSION("SYS_ROLE_HAS_PERMISSION"); diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/resource/provider/SysButtonApiProvider.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/resource/provider/SysButtonApiProvider.java index 301cd8b2..287bba85 100644 --- a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/resource/provider/SysButtonApiProvider.java +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/resource/provider/SysButtonApiProvider.java @@ -14,9 +14,7 @@ package vip.xiaonuo.sys.modular.resource.provider; import org.springframework.stereotype.Service; import vip.xiaonuo.sys.api.SysButtonApi; -import vip.xiaonuo.sys.api.SysMenuApi; import vip.xiaonuo.sys.modular.resource.service.SysButtonService; -import vip.xiaonuo.sys.modular.resource.service.SysMenuService; import javax.annotation.Resource; diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/controller/SysRoleController.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/controller/SysRoleController.java index 7faca13a..5bdb8a32 100644 --- a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/controller/SysRoleController.java +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/controller/SysRoleController.java @@ -155,12 +155,40 @@ public class SysRoleController { } /** - * 获取角色拥有权限 + * 获取角色拥有移动端菜单 * * @author xuyuxiang * @date 2022/4/24 20:00 */ @ApiOperationSupport(order = 8) + @ApiOperation("获取角色拥有移动端菜单") + @GetMapping("/sys/role/ownMobileMenu") + public CommonResult ownMobileMenu(@Valid SysRoleIdParam sysRoleIdParam) { + return CommonResult.data(sysRoleService.ownMobileMenu(sysRoleIdParam)); + } + + /** + * 给角色授权移动端菜单 + * + * @author xuyuxiang + * @date 2022/4/24 20:00 + */ + @ApiOperationSupport(order = 9) + @ApiOperation("给角色授权移动端菜单") + @CommonLog("给角色授权移动端菜单") + @PostMapping("/sys/role/grantMobileMenu") + public CommonResult grantMobileMenu(@RequestBody @Valid SysRoleGrantMobileMenuParam sysRoleGrantMobileMenuParam) { + sysRoleService.grantMobileMenu(sysRoleGrantMobileMenuParam); + return CommonResult.ok(); + } + + /** + * 获取角色拥有权限 + * + * @author xuyuxiang + * @date 2022/4/24 20:00 + */ + @ApiOperationSupport(order = 10) @ApiOperation("获取角色拥有权限") @GetMapping("/sys/role/ownPermission") public CommonResult ownPermission(@Valid SysRoleIdParam sysRoleIdParam) { @@ -173,7 +201,7 @@ public class SysRoleController { * @author xuyuxiang * @date 2022/4/24 20:00 */ - @ApiOperationSupport(order = 9) + @ApiOperationSupport(order = 11) @ApiOperation("给角色授权权限") @CommonLog("给角色授权权限") @PostMapping("/sys/role/grantPermission") @@ -188,7 +216,7 @@ public class SysRoleController { * @author xuyuxiang * @date 2022/4/24 20:00 */ - @ApiOperationSupport(order = 10) + @ApiOperationSupport(order = 12) @ApiOperation("获取角色下的用户") @GetMapping("/sys/role/ownUser") public CommonResult> ownUser(@Valid SysRoleIdParam sysRoleIdParam) { @@ -201,7 +229,7 @@ public class SysRoleController { * @author xuyuxiang * @date 2022/4/24 20:00 */ - @ApiOperationSupport(order = 11) + @ApiOperationSupport(order = 13) @ApiOperation("给角色授权用户") @CommonLog("给角色授权用户") @PostMapping("/sys/role/grantUser") @@ -218,7 +246,7 @@ public class SysRoleController { * @author xuyuxiang * @date 2022/4/24 20:00 */ - @ApiOperationSupport(order = 12) + @ApiOperationSupport(order = 14) @ApiOperation("获取组织树选择器") @GetMapping("/sys/role/orgTreeSelector") public CommonResult>> orgTreeSelector() { @@ -231,7 +259,7 @@ public class SysRoleController { * @author xuyuxiang * @date 2022/4/24 20:00 */ - @ApiOperationSupport(order = 13) + @ApiOperationSupport(order = 15) @ApiOperation("获取资源授权树") @GetMapping("/sys/role/resourceTreeSelector") public CommonResult> resourceTreeSelector() { @@ -244,7 +272,7 @@ public class SysRoleController { * @author xuyuxiang * @date 2022/4/24 20:00 */ - @ApiOperationSupport(order = 14) + @ApiOperationSupport(order = 16) @ApiOperation("获取权限授权树") @GetMapping("/sys/role/permissionTreeSelector") public CommonResult> permissionTreeSelector() { @@ -257,7 +285,7 @@ public class SysRoleController { * @author xuyuxiang * @date 2022/4/24 20:00 */ - @ApiOperationSupport(order = 15) + @ApiOperationSupport(order = 17) @ApiOperation("获取角色选择器") @GetMapping("/sys/role/roleSelector") public CommonResult> roleSelector(SysRoleSelectorRoleParam sysRoleSelectorRoleParam) { @@ -270,7 +298,7 @@ public class SysRoleController { * @author xuyuxiang * @date 2022/4/24 20:00 */ - @ApiOperationSupport(order = 16) + @ApiOperationSupport(order = 18) @ApiOperation("获取用户选择器") @GetMapping("/sys/role/userSelector") public CommonResult> userSelector(SysRoleSelectorUserParam sysRoleSelectorUserParam) { diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/param/SysRoleGrantMobileMenuParam.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/param/SysRoleGrantMobileMenuParam.java new file mode 100644 index 00000000..6ca05159 --- /dev/null +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/param/SysRoleGrantMobileMenuParam.java @@ -0,0 +1,60 @@ +/* + * Copyright [2022] [https://www.xiaonuo.vip] + * + * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Snowy源码头部的版权声明。 + * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip + * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 + * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package vip.xiaonuo.sys.modular.role.param; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 角色授权移动端菜单参数 + * + * @author xuyuxiang + * @date 2022/7/27 15:05 + **/ +@Getter +@Setter +public class SysRoleGrantMobileMenuParam { + + /** 角色id */ + @ApiModelProperty(value = "角色id", required = true, position = 1) + @NotBlank(message = "id不能为空") + private String id; + + /** 授权移动端菜单信息 */ + @Valid + @ApiModelProperty(value = "授权移动端菜单信息", required = true, position = 2) + @NotNull(message = "grantInfoList不能为空") + private List grantInfoList; + + /** + * 角色授权移动端菜单类 + * + * @author xuyuxiang + * @date 2022/4/28 23:19 + */ + @Getter + @Setter + public static class SysRoleGrantMobileMenu { + + /** 菜单id */ + @ApiModelProperty(value = "菜单id", position = 1) + @NotBlank(message = "menuId不能为空") + private String menuId; + } +} diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/result/SysRoleGrantMobileMenuTreeResult.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/result/SysRoleGrantMobileMenuTreeResult.java new file mode 100644 index 00000000..530886bf --- /dev/null +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/result/SysRoleGrantMobileMenuTreeResult.java @@ -0,0 +1,100 @@ +/* + * Copyright [2022] [https://www.xiaonuo.vip] + * + * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Snowy源码头部的版权声明。 + * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip + * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 + * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package vip.xiaonuo.sys.modular.role.result; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +/** + * 角色授权移动端菜单树结果 + * + * @author xuyuxiang + * @date 2022/7/27 15:09 + **/ +@Getter +@Setter +public class SysRoleGrantMobileMenuTreeResult { + + /** 分类id */ + @ApiModelProperty(value = "分类id", position = 1) + private String id; + + /** 分类名称*/ + @ApiModelProperty(value = "分类名称", position = 2) + private String title; + + /** 模块图标 */ + @ApiModelProperty(value = "模块图标", position = 3) + private String icon; + + /** 模块下菜单集合*/ + @ApiModelProperty(value = "模块下菜单集合", position = 4) + private List menu; + + /** + * 授权菜单类 + * + * @author xuyuxiang + * @date 2022/8/13 16:54 + */ + @Getter + @Setter + public static class SysRoleGrantResourceMenuResult { + + /** 菜单id */ + @ApiModelProperty(value = "菜单id", position = 1) + private String id; + + /** 父id */ + @ApiModelProperty(value = "父id", position = 2) + private String parentId; + + /** 父名称 */ + @ApiModelProperty(value = "菜单名称", position = 3) + private String parentName; + + /** 标题 */ + @ApiModelProperty(value = "菜单标题", position = 4) + private String title; + + /** 模块 */ + @ApiModelProperty(value = "菜单模块", position = 5) + private String module; + + /** 菜单下按钮集合 */ + @ApiModelProperty(value = "菜单下按钮集合", position = 6) + private List button; + + /** + * 授权按钮类 + * + * @author xuyuxiang + * @date 2022/8/13 16:54 + */ + @Getter + @Setter + public static class SysRoleGrantResourceButtonResult { + + /** 按钮id */ + @ApiModelProperty(value = "按钮id", position = 1) + private String id; + + /** 标题 */ + @ApiModelProperty(value = "按钮标题", position = 2) + private String title; + } + } +} diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/result/SysRoleOwnMobileMenuResult.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/result/SysRoleOwnMobileMenuResult.java new file mode 100644 index 00000000..d3e4174d --- /dev/null +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/result/SysRoleOwnMobileMenuResult.java @@ -0,0 +1,53 @@ +/* + * Copyright [2022] [https://www.xiaonuo.vip] + * + * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Snowy源码头部的版权声明。 + * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip + * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 + * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package vip.xiaonuo.sys.modular.role.result; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +/** + * 角色拥有的移动端菜单结果 + * + * @author xuyuxiang + * @date 2022/7/27 15:08 + **/ +@Getter +@Setter +public class SysRoleOwnMobileMenuResult { + + /** 角色id */ + @ApiModelProperty(value = "角色id", position = 1) + private String id; + + /** 已授权移动端菜单信息 */ + @ApiModelProperty(value = "已授权移动端菜单信息", position = 2) + private List grantInfoList; + + /** + * 角色拥有移动端菜单类 + * + * @author xuyuxiang + * @date 2022/4/28 23:19 + */ + @Getter + @Setter + public static class SysRoleOwnMobileMenu { + + /** 菜单id */ + @ApiModelProperty(value = "菜单id", position = 1) + private String menuId; + } +} diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/service/SysRoleService.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/service/SysRoleService.java index 59a5459b..1312ea0d 100644 --- a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/service/SysRoleService.java +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/service/SysRoleService.java @@ -96,6 +96,22 @@ public interface SysRoleService extends IService { **/ void grantResource(SysRoleGrantResourceParam sysRoleGrantResourceParam); + /** + * 获取角色拥有移动端菜单 + * + * @author xuyuxiang + * @date 2022/5/13 20:51 + */ + SysRoleOwnResourceResult ownMobileMenu(SysRoleIdParam SysRoleIdParam); + + /** + * 给角色授权移动端菜单 + * + * @author xuyuxiang + * @date 2022/4/29 10:12 + **/ + void grantMobileMenu(SysRoleGrantMobileMenuParam sysRoleGrantMobileMenuParam); + /** * 获取角色拥有权限 * diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/service/impl/SysRoleServiceImpl.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/service/impl/SysRoleServiceImpl.java index f1ba80bd..4b442cb2 100644 --- a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/service/impl/SysRoleServiceImpl.java +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/role/service/impl/SysRoleServiceImpl.java @@ -211,6 +211,17 @@ public class SysRoleServiceImpl extends ServiceImpl impl extJsonList); } + @Override + public SysRoleOwnResourceResult ownMobileMenu(SysRoleIdParam SysRoleIdParam) { + // TODO + return null; + } + + @Override + public void grantMobileMenu(SysRoleGrantMobileMenuParam sysRoleGrantMobileMenuParam) { + // TODO + } + @Override public SysRoleOwnPermissionResult ownPermission(SysRoleIdParam sysRoleIdParam) { SysRoleOwnPermissionResult sysRoleOwnPermissionResult = new SysRoleOwnPermissionResult(); diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/controller/SysUserCenterController.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/controller/SysUserCenterController.java index e0057bdf..8db8433c 100644 --- a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/controller/SysUserCenterController.java +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/controller/SysUserCenterController.java @@ -165,13 +165,13 @@ public class SysUserCenterController { } /** - * 获取登录用户的菜单 + * 获取登录用户的菜单(B端、PC端菜单) * * @author xuyuxiang * @date 2022/4/24 20:00 */ @ApiOperationSupport(order = 9) - @ApiOperation("获取登录用户的菜单") + @ApiOperation("获取登录用户PC端菜单") @GetMapping("/sys/userCenter/loginMenu") public CommonResult>> loginMenu() { SysUserIdParam sysUserIdParam = new SysUserIdParam(); @@ -180,12 +180,27 @@ public class SysUserCenterController { } /** - * 获取登录用户组织树 + * 获取登录用户的菜单(B端、移动端菜单) * * @author xuyuxiang * @date 2022/4/24 20:00 */ @ApiOperationSupport(order = 10) + @ApiOperation("获取登录用户移动端菜单") + @GetMapping("/sys/userCenter/loginMobileMenu") + public CommonResult>> loginMobileMenu() { + SysUserIdParam sysUserIdParam = new SysUserIdParam(); + sysUserIdParam.setId(StpUtil.getLoginIdAsString()); + return CommonResult.data(sysUserService.ownMobileMenu(sysUserIdParam)); + } + + /** + * 获取登录用户组织树 + * + * @author xuyuxiang + * @date 2022/4/24 20:00 + */ + @ApiOperationSupport(order = 11) @ApiOperation("获取登录用户组织树") @GetMapping("/sys/userCenter/loginOrgTree") public CommonResult>> loginOrgTree() { @@ -200,7 +215,7 @@ public class SysUserCenterController { * @author xuyuxiang * @date 2022/4/24 20:00 */ - @ApiOperationSupport(order = 11) + @ApiOperationSupport(order = 12) @ApiOperation("获取登录用户的职位信息") @GetMapping("/sys/userCenter/loginPositionInfo") public CommonResult> loginPositionInfo() { @@ -215,7 +230,7 @@ public class SysUserCenterController { * @author xuyuxiang * @date 2022/4/24 20:47 */ - @ApiOperationSupport(order = 12) + @ApiOperationSupport(order = 13) @ApiOperation("编辑个人信息") @CommonLog("编辑个人信息") @PostMapping("/sys/userCenter/updateUserInfo") @@ -230,7 +245,7 @@ public class SysUserCenterController { * @author xuyuxiang * @date 2022/4/24 20:47 */ - @ApiOperationSupport(order = 13) + @ApiOperationSupport(order = 14) @ApiOperation("编辑个人工作台") @CommonLog("编辑个人工作台") @PostMapping("/sys/userCenter/updateUserWorkbench") @@ -245,7 +260,7 @@ public class SysUserCenterController { * @author xuyuxiang * @date 2022/4/24 20:00 */ - @ApiOperationSupport(order = 14) + @ApiOperationSupport(order = 15) @ApiOperation("获取登录用户的工作台") @GetMapping("/sys/userCenter/loginWorkbench") public CommonResult loginWorkbench() { @@ -260,7 +275,7 @@ public class SysUserCenterController { * @author xuyuxiang * @date 2022/4/24 20:00 */ - @ApiOperationSupport(order = 15) + @ApiOperationSupport(order = 16) @ApiOperation("获取登录用户的站内信分页") @GetMapping("/sys/userCenter/loginUnreadMessagePage") public CommonResult> loginMessagePage(SysUserMessagePageParam sysUserMessagePageParam) { @@ -273,7 +288,7 @@ public class SysUserCenterController { * @author xuyuxiang * @date 2022/4/24 20:00 */ - @ApiOperationSupport(order = 16) + @ApiOperationSupport(order = 17) @ApiOperation("读取登录用户站内信详情") @GetMapping("/sys/userCenter/loginUnreadMessageDetail") public CommonResult loginMessageDetail(@Valid SysUserMessageIdParam sysUserMessageIdParam) { diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/SysUserService.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/SysUserService.java index 91375bb8..1cfabe12 100644 --- a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/SysUserService.java +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/SysUserService.java @@ -220,6 +220,14 @@ public interface SysUserService extends IService { */ List> ownMenu(SysUserIdParam sysUserIdParam); + /** + * 获取用户拥有移动端菜单 + * + * @author xuyuxiang + * @date 2022/6/25 18:55 + */ + List> ownMobileMenu(SysUserIdParam sysUserIdParam); + /** * 获取用户拥有角色 * diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java index 785692c6..2fdd93b7 100644 --- a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java @@ -677,6 +677,12 @@ public class SysUserServiceImpl extends ServiceImpl impl return TreeUtil.build(treeNodeList, "0"); } + @Override + public List> ownMobileMenu(SysUserIdParam sysUserIdParam) { + // TODO 获取移动菜单树 + return null; + } + /** * 递归获取父节点 * diff --git a/snowy-web-app/src/main/resources/_sql/mobile_menu.sql b/snowy-web-app/src/main/resources/_sql/mobile_menu.sql deleted file mode 100644 index 5fd9b82d..00000000 --- a/snowy-web-app/src/main/resources/_sql/mobile_menu.sql +++ /dev/null @@ -1,45 +0,0 @@ -/* - Navicat Premium Data Transfer - - Source Server : 本机mysql - Source Server Type : MySQL - Source Server Version : 50710 - Source Host : localhost:3306 - Source Schema : snowy - - Target Server Type : MySQL - Target Server Version : 50710 - File Encoding : 65001 - - Date: 28/01/2023 23:41:47 -*/ - -SET NAMES utf8mb4; -SET FOREIGN_KEY_CHECKS = 0; - --- ---------------------------- --- Table structure for mobile_menu --- ---------------------------- -DROP TABLE IF EXISTS `mobile_menu`; -CREATE TABLE `mobile_menu` ( - `ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键', - `PARENT_ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父ID', - `TITLE` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称', - `CODE` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编码', - `PAGES` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '界面路径', - `CATEGORY` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分类', - `ICON` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图标', - `COLOR` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '颜色', - `IS_REG_EXP` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '正规则', - `STATUS` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '可用状态', - `SORT_CODE` int(11) NULL DEFAULT NULL COMMENT '排序码', - `EXT_JSON` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '扩展信息', - `DELETE_FLAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '删除标志', - `CREATE_TIME` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', - `CREATE_USER` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建用户', - `UPDATE_TIME` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', - `UPDATE_USER` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改用户', - PRIMARY KEY (`ID`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '移动端菜单' ROW_FORMAT = Dynamic; - -SET FOREIGN_KEY_CHECKS = 1; diff --git a/snowy-web-app/src/main/resources/_sql/mobile_resource.sql b/snowy-web-app/src/main/resources/_sql/mobile_resource.sql new file mode 100644 index 00000000..c1c16afd --- /dev/null +++ b/snowy-web-app/src/main/resources/_sql/mobile_resource.sql @@ -0,0 +1,50 @@ +/* + Navicat Premium Data Transfer + + Source Server : 本地Mysql + Source Server Type : MySQL + Source Server Version : 80026 + Source Host : localhost:3306 + Source Schema : snowy + + Target Server Type : MySQL + Target Server Version : 80026 + File Encoding : 65001 + + Date: 30/01/2023 16:50:05 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for mobile_resource +-- ---------------------------- +DROP TABLE IF EXISTS `mobile_resource`; +CREATE TABLE `mobile_resource` ( + `ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键', + `PARENT_ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父ID', + `TITLE` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称', + `CODE` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编码', + `PAGES` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '界面路径', + `CATEGORY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分类', + `MODULE` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模块', + `ICON` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图标', + `COLOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '颜色', + `REG_TYPE` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规则类型', + `STATUS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '可用状态', + `SORT_CODE` int(0) NULL DEFAULT NULL COMMENT '排序码', + `EXT_JSON` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '扩展信息', + `DELETE_FLAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '删除标志', + `CREATE_TIME` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `CREATE_USER` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建用户', + `UPDATE_TIME` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `UPDATE_USER` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改用户', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '移动资源' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of mobile_resource +-- ---------------------------- + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/snowy-web-app/src/main/resources/_sql/update20230128.sql b/snowy-web-app/src/main/resources/_sql/update20230128.sql index cd55e660..01857042 100644 --- a/snowy-web-app/src/main/resources/_sql/update20230128.sql +++ b/snowy-web-app/src/main/resources/_sql/update20230128.sql @@ -4,15 +4,12 @@ SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Records of dev_dict -- ---------------------------- -INSERT INTO `dev_dict` VALUES ('1619342903569928193', '0', '移动菜单分类', 'MOBILE_CATEGORY', 'FRM', 90, NULL, 'NOT_DELETE', '2023-01-28 22:33:29', '1543837863788879871', '2023-01-28 22:33:45', '1543837863788879871'); -INSERT INTO `dev_dict` VALUES ('1619343064064970754', '1619342903569928193', '系统', 'SYS', 'FRM', 91, NULL, 'NOT_DELETE', '2023-01-28 22:34:07', '1543837863788879871', '2023-01-28 22:34:22', '1543837863788879871'); -INSERT INTO `dev_dict` VALUES ('1619343182029770754', '1619342903569928193', '业务', 'BIZ', 'FRM', 92, NULL, 'NOT_DELETE', '2023-01-28 22:34:35', '1543837863788879871', NULL, NULL); -INSERT INTO `dev_dict` VALUES ('1619343323218432002', '0', '移动菜单状态', 'MOBILE_STATUS', 'FRM', 93, NULL, 'NOT_DELETE', '2023-01-28 22:35:09', '1543837863788879871', '2023-01-28 22:35:31', '1543837863788879871'); -INSERT INTO `dev_dict` VALUES ('1619343680636047362', '1619343323218432002', '可用', 'ENABLE', 'FRM', 94, NULL, 'NOT_DELETE', '2023-01-28 22:36:34', '1543837863788879871', '2023-01-28 22:37:29', '1543837863788879871'); -INSERT INTO `dev_dict` VALUES ('1619343846382358529', '1619343323218432002', '不可用', 'DISABLED', 'FRM', 96, NULL, 'NOT_DELETE', '2023-01-28 22:37:14', '1543837863788879871', NULL, NULL); -INSERT INTO `dev_dict` VALUES ('1619344256295882753', '0', '移动菜单规则', 'MOBILE_IS_REG_EXP', 'FRM', 97, NULL, 'NOT_DELETE', '2023-01-28 22:38:51', '1543837863788879871', NULL, NULL); -INSERT INTO `dev_dict` VALUES ('1619344428111351809', '1619344256295882753', '正规则', 'YES', 'FRM', 98, NULL, 'NOT_DELETE', '2023-01-28 22:39:32', '1543837863788879871', NULL, NULL); -INSERT INTO `dev_dict` VALUES ('1619344504456073218', '1619344256295882753', '反规则', 'NO', 'FRM', 98, NULL, 'NOT_DELETE', '2023-01-28 22:39:50', '1543837863788879871', NULL, NULL); +INSERT INTO `dev_dict` VALUES ('1619343323218432002', '0', '移动菜单状态', 'MOBILE_STATUS', 'FRM', 93, NULL, 'NOT_DELETE', NULL, NULL, NULL, NULL); +INSERT INTO `dev_dict` VALUES ('1619343680636047362', '1619343323218432002', '可用', 'ENABLE', 'FRM', 94, NULL, 'NOT_DELETE', NULL, NULL, NULL, NULL); +INSERT INTO `dev_dict` VALUES ('1619343846382358529', '1619343323218432002', '不可用', 'DISABLED', 'FRM', 96, NULL, 'NOT_DELETE', NULL, NULL, NULL, NULL); +INSERT INTO `dev_dict` VALUES ('1619344256295882753', '0', '移动菜单规则', 'MOBILE_IS_REG_EXP', 'FRM', 97, NULL, 'NOT_DELETE', NULL, NULL, NULL, NULL); +INSERT INTO `dev_dict` VALUES ('1619344428111351809', '1619344256295882753', '正规则', 'YES', 'FRM', 98, NULL, 'NOT_DELETE', NULL, NULL, NULL, NULL); +INSERT INTO `dev_dict` VALUES ('1619344504456073218', '1619344256295882753', '反规则', 'NO', 'FRM', 98, NULL, 'NOT_DELETE', NULL, NULL, NULL, NULL); -- ---------------------------- -- Records of sys_relation @@ -22,6 +19,8 @@ INSERT INTO `sys_relation` VALUES ('1619345262266142721', '1570687866138206208', -- ---------------------------- -- Records of sys_resource -- ---------------------------- -INSERT INTO `sys_resource` VALUES ('1619345262001901569', '0', '移动端菜单', 'menu', '4a84jeju7l', 'MENU', '1548901111999770525', 'MENU', '/mobile/menu', 'mobile/menu/index', 'appstore-outlined', NULL, 99, NULL, 'NOT_DELETE', '2023-01-28 22:42:51', '1543837863788879871', NULL, NULL); +INSERT INTO `sys_resource` VALUES ('1619345262001901569', '0', '移动管理', NULL, 'gsnnmdy8yi', 'MENU', '1548901111999770525', 'CATALOG', '/a0l7fxfq3m', NULL, 'appstore-outlined', NULL, 99, NULL, 'NOT_DELETE', NULL, NULL, NULL, NULL); +INSERT INTO `sys_resource` VALUES ('1619345262001901570', '1619345262001901569', '菜单类别', 'category', 'psf3uj3q90', 'MENU', '1548901111999770525', 'MENU', '/mobile/category', 'mobile/category/index', 'appstore-outlined', NULL, 99, NULL, 'NOT_DELETE', NULL, NULL, NULL, NULL); +INSERT INTO `sys_resource` VALUES ('1619345262001901571', '1619345262001901569', '移动菜单', 'menu', '4a84jeju7l', 'MENU', '1548901111999770525', 'MENU', '/mobile/menu', 'mobile/menu/index', 'appstore-outlined', NULL, 99, NULL, 'NOT_DELETE', NULL, NULL, NULL, NULL); -SET FOREIGN_KEY_CHECKS = 1; +SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file