【更新】移动端功能(待完善)

pull/84/head
xuyuxiang 2023-01-30 17:04:24 +08:00
parent 07b5481aea
commit 647e7de72b
36 changed files with 1104 additions and 167 deletions

View File

@ -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;

View File

@ -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;

View File

@ -0,0 +1,125 @@
/*
* Copyright [2022] [https://www.xiaonuo.vip]
*
* SnowyAPACHE 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));
}
}

View File

@ -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;
}

View File

@ -0,0 +1,66 @@
/*
* Copyright [2022] [https://www.xiaonuo.vip]
*
* SnowyAPACHE 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;
}

View File

@ -0,0 +1,45 @@
/*
* Copyright [2022] [https://www.xiaonuo.vip]
*
* SnowyAPACHE 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);
}
}
}

View File

@ -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

View File

@ -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> {
}

View File

@ -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>

View File

@ -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>

View File

@ -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)

View File

@ -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)

View File

@ -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;

View File

@ -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;

View File

@ -0,0 +1,55 @@
/*
* Copyright [2022] [https://www.xiaonuo.vip]
*
* SnowyAPACHE 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;
}

View File

@ -0,0 +1,60 @@
/*
* Copyright [2022] [https://www.xiaonuo.vip]
*
* SnowyAPACHE 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;
}

View File

@ -0,0 +1,35 @@
/*
* Copyright [2022] [https://www.xiaonuo.vip]
*
* SnowyAPACHE 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;
}

View File

@ -0,0 +1,48 @@
/*
* Copyright [2022] [https://www.xiaonuo.vip]
*
* SnowyAPACHE 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;
}

View File

@ -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;

View File

@ -0,0 +1,80 @@
/*
* Copyright [2022] [https://www.xiaonuo.vip]
*
* SnowyAPACHE 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);
}

View File

@ -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;

View File

@ -0,0 +1,142 @@
/*
* Copyright [2022] [https://www.xiaonuo.vip]
*
* SnowyAPACHE 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;
}
}

View File

@ -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");

View File

@ -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;

View File

@ -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) {

View File

@ -0,0 +1,60 @@
/*
* Copyright [2022] [https://www.xiaonuo.vip]
*
* SnowyAPACHE 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;
}
}

View File

@ -0,0 +1,100 @@
/*
* Copyright [2022] [https://www.xiaonuo.vip]
*
* SnowyAPACHE 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;
}
}
}

View File

@ -0,0 +1,53 @@
/*
* Copyright [2022] [https://www.xiaonuo.vip]
*
* SnowyAPACHE 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;
}
}

View File

@ -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);
/**
*
*

View File

@ -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();

View File

@ -165,13 +165,13 @@ public class SysUserCenterController {
}
/**
*
* BPC
*
* @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) {

View File

@ -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);
/**
*
*

View File

@ -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;
}
/**
*
*

View File

@ -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;

View File

@ -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;

View File

@ -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;