mirror of https://gitee.com/xiaonuobase/snowy
【更新】移动端功能(待完善)
parent
07b5481aea
commit
647e7de72b
|
@ -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;
|
||||
|
|
|
@ -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;
|
|
@ -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<MobileModule>> 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<String> 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<String> 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<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
|
||||
CommonValidList<MobileModuleIdParam> 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<MobileModule> detail(@Valid MobileModuleIdParam mobileModuleIdParam) {
|
||||
return CommonResult.data(mobileModuleService.detail(mobileModuleIdParam));
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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接口
|
|
@ -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<MobileModule> {
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="vip.xiaonuo.mobile.modular.menu.mapper.MobileMenuMapper">
|
||||
<mapper namespace="vip.xiaonuo.mobile.modular.resource.mapper.MobileMenuMapper">
|
||||
|
||||
</mapper>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="vip.xiaonuo.mobile.modular.resource.mapper.MobileModuleMapper">
|
||||
|
||||
|
||||
</mapper>
|
|
@ -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)
|
|
@ -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)
|
|
@ -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;
|
|
@ -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;
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
|
|
@ -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<MobileModule> {
|
||||
|
||||
/**
|
||||
* 获取移动端模块分页
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/4/24 20:08
|
||||
*/
|
||||
Page<MobileModule> 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<MobileModuleIdParam> 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);
|
||||
}
|
|
@ -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;
|
|
@ -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<MobileModuleMapper, MobileModule> implements MobileModuleService {
|
||||
|
||||
@Resource
|
||||
private MobileMenuService mobileMenuService;
|
||||
|
||||
@Resource
|
||||
/*private MobileRelationService mobileRelationService;*/
|
||||
|
||||
@Override
|
||||
public Page<MobileModule> page(MobileModulePageParam mobileModulePageParam) {
|
||||
QueryWrapper<MobileModule> 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<MobileModule>().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<MobileModule>().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<MobileModuleIdParam> mobileModuleIdParamList) {
|
||||
/*List<String> 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<MobileMenu> allMenuList = mobileMenuService.list(new LambdaUpdateWrapper<MobileMenu>()
|
||||
.in(MobileMenu::getCategory, CollectionUtil.newArrayList(MobileResourceCategoryEnum.MENU.getValue())));
|
||||
if(ObjectUtil.isNotEmpty(allMenuList)) {
|
||||
List<String> 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<MobileRelation>().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;
|
||||
}
|
||||
}
|
|
@ -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");
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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<SysRoleOwnResourceResult> 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<String> 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<SysRoleOwnPermissionResult> 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<List<String>> 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<List<Tree<String>>> 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<List<SysRoleGrantResourceTreeResult>> 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<List<String>> 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<List<SysRole>> 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<List<SysUser>> userSelector(SysRoleSelectorUserParam sysRoleSelectorUserParam) {
|
||||
|
|
|
@ -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<SysRoleGrantMobileMenu> 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;
|
||||
}
|
||||
}
|
|
@ -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<SysRoleGrantResourceMenuResult> 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<SysRoleGrantResourceButtonResult> 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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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<SysRoleOwnMobileMenu> grantInfoList;
|
||||
|
||||
/**
|
||||
* 角色拥有移动端菜单类
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/4/28 23:19
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
public static class SysRoleOwnMobileMenu {
|
||||
|
||||
/** 菜单id */
|
||||
@ApiModelProperty(value = "菜单id", position = 1)
|
||||
private String menuId;
|
||||
}
|
||||
}
|
|
@ -96,6 +96,22 @@ public interface SysRoleService extends IService<SysRole> {
|
|||
**/
|
||||
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);
|
||||
|
||||
/**
|
||||
* 获取角色拥有权限
|
||||
*
|
||||
|
|
|
@ -211,6 +211,17 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> 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();
|
||||
|
|
|
@ -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<List<Tree<String>>> 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<List<Tree<String>>> 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<List<Tree<String>>> 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<List<SysUserPositionResult>> 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<String> 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<Page<SysUserMessageResult>> 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<SysUserMessageDetailResult> loginMessageDetail(@Valid SysUserMessageIdParam sysUserMessageIdParam) {
|
||||
|
|
|
@ -220,6 +220,14 @@ public interface SysUserService extends IService<SysUser> {
|
|||
*/
|
||||
List<Tree<String>> ownMenu(SysUserIdParam sysUserIdParam);
|
||||
|
||||
/**
|
||||
* 获取用户拥有移动端菜单
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/25 18:55
|
||||
*/
|
||||
List<Tree<String>> ownMobileMenu(SysUserIdParam sysUserIdParam);
|
||||
|
||||
/**
|
||||
* 获取用户拥有角色
|
||||
*
|
||||
|
|
|
@ -677,6 +677,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
return TreeUtil.build(treeNodeList, "0");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Tree<String>> ownMobileMenu(SysUserIdParam sysUserIdParam) {
|
||||
// TODO 获取移动菜单树
|
||||
return 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;
|
|
@ -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;
|
|
@ -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;
|
Loading…
Reference in New Issue