From 207e6515f43aab7257cd8941ca57cfe7fa8e2419 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Tue, 27 Jun 2023 23:32:57 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.6.0=E3=80=91=E3=80=90table=20width?= =?UTF-8?q?=E3=80=91=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysTableWidthController.java | 14 +- .../SysTableWidthExceptionEnum.java | 9 +- .../tablewidth/pojo/TableWidthItem.java | 39 ----- .../pojo/request/SysTableWidthRequest.java | 4 +- .../service/SysTableWidthService.java | 57 +------ .../impl/SysTableWidthServiceImpl.java | 150 ++++++------------ 6 files changed, 69 insertions(+), 204 deletions(-) rename kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/enums/{ => exceptions}/SysTableWidthExceptionEnum.java (67%) delete mode 100644 kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/pojo/TableWidthItem.java diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/controller/SysTableWidthController.java b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/controller/SysTableWidthController.java index 587dabf85..b51fb17ca 100644 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/controller/SysTableWidthController.java +++ b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/controller/SysTableWidthController.java @@ -15,13 +15,13 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; /** - * 业务中表的宽度控制器 + * 通用表格列控制配置接口 * * @author fengshuonan - * @date 2023/02/23 22:21 + * @since 2023/6/27 23:19 */ @RestController -@ApiResource(name = "业务中表的宽度") +@ApiResource(name = "通用表格列控制配置接口") public class SysTableWidthController { @Resource @@ -31,7 +31,7 @@ public class SysTableWidthController { * 获取用户针对某个业务的table的列宽配置 * * @author fengshuonan - * @date 2023/02/23 22:21 + * @since 2023/6/27 23:19 */ @GetResource(name = "获取用户针对某个业务的table的列宽配置", path = "/sysTableWidth/getUserConfig") public ResponseData getUserConfig( @@ -40,12 +40,12 @@ public class SysTableWidthController { } /** - * 添加 + * 添加用户针对某个table的列属性配置 * * @author fengshuonan - * @date 2023/02/23 22:21 + * @since 2023/6/27 23:23 */ - @PostResource(name = "添加", path = "/sysTableWidth/setTableWidth") + @PostResource(name = "添加用户针对某个table的列属性配置", path = "/sysTableWidth/setTableWidth") public ResponseData setTableWidth( @RequestBody @Validated(SysTableWidthRequest.add.class) SysTableWidthRequest sysTableWidthRequest) { sysTableWidthService.setTableWidth(sysTableWidthRequest); diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/enums/SysTableWidthExceptionEnum.java b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/enums/exceptions/SysTableWidthExceptionEnum.java similarity index 67% rename from kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/enums/SysTableWidthExceptionEnum.java rename to kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/enums/exceptions/SysTableWidthExceptionEnum.java index 4b7f52c18..e8334629d 100644 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/enums/SysTableWidthExceptionEnum.java +++ b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/enums/exceptions/SysTableWidthExceptionEnum.java @@ -1,4 +1,4 @@ -package cn.stylefeng.roses.kernel.sys.modular.tablewidth.enums; +package cn.stylefeng.roses.kernel.sys.modular.tablewidth.enums.exceptions; import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum; @@ -16,7 +16,12 @@ public enum SysTableWidthExceptionEnum implements AbstractExceptionEnum { /** * 查询结果不存在 */ - SYS_TABLE_WIDTH_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在"); + SYS_TABLE_WIDTH_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在"), + + /** + * 无法修改全体人员的table配置,非超级管理员 + */ + PERMISSION_NOT_ALLOW(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10002", "无法修改全体人员的table配置,非超级管理员"); /** * 错误编码 diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/pojo/TableWidthItem.java b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/pojo/TableWidthItem.java deleted file mode 100644 index 0c72b07e5..000000000 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/pojo/TableWidthItem.java +++ /dev/null @@ -1,39 +0,0 @@ -package cn.stylefeng.roses.kernel.sys.modular.tablewidth.pojo; - -import lombok.Data; - -/** - * 表格宽度信息的配置 - * - * @author fengshuonan - * @since 2023/2/23 22:34 - */ -@Data -public class TableWidthItem { - - /** - * 字段编码,例如:projectName - */ - private String fieldCode; - - /** - * 字段编码,例如:项目名称 - */ - private String fieldName; - - /** - * 是否显示字段,true显示,false-不显示 - */ - private Boolean showFlag; - - /** - * 字段展示宽度 - */ - private Integer width; - - /** - * 该字段是否锁定列 - */ - private Boolean lockFlag; - -} diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/pojo/request/SysTableWidthRequest.java b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/pojo/request/SysTableWidthRequest.java index 97683eac7..6b3c0ef19 100644 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/pojo/request/SysTableWidthRequest.java +++ b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/pojo/request/SysTableWidthRequest.java @@ -25,10 +25,10 @@ public class SysTableWidthRequest extends BaseRequest { private Long tableWidthId; /** - * 业务标识的编码,例如:PROJECT_TABLE + * 业务标识的编码,可以前端自定义,例如:PROJECT_TABLE */ @NotBlank(message = "业务标识的编码不能为空", groups = {detail.class, add.class}) - @ChineseDescription("业务标识的编码,例如:PROJECT_TABLE") + @ChineseDescription("业务标识的编码,可以前端自定义,例如:PROJECT_TABLE") private String fieldBusinessCode; /** diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/service/SysTableWidthService.java b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/service/SysTableWidthService.java index c70675cfd..5115fd044 100644 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/service/SysTableWidthService.java +++ b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/service/SysTableWidthService.java @@ -1,12 +1,9 @@ package cn.stylefeng.roses.kernel.sys.modular.tablewidth.service; -import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.sys.modular.tablewidth.entity.SysTableWidth; import cn.stylefeng.roses.kernel.sys.modular.tablewidth.pojo.request.SysTableWidthRequest; import com.baomidou.mybatisplus.extension.service.IService; -import java.util.List; - /** * 业务中表的宽度 服务类 * @@ -15,60 +12,20 @@ import java.util.List; */ public interface SysTableWidthService extends IService { - /** - * 新增 + /** + * 获取用户针对某个业务的table的列宽配置 * - * @param sysTableWidthRequest 请求参数 * @author fengshuonan - * @date 2023/02/23 22:21 - */ - void setTableWidth(SysTableWidthRequest sysTableWidthRequest); - - /** - * 删除 - * - * @param sysTableWidthRequest 请求参数 - * @author fengshuonan - * @date 2023/02/23 22:21 - */ - void del(SysTableWidthRequest sysTableWidthRequest); - - /** - * 编辑 - * - * @param sysTableWidthRequest 请求参数 - * @author fengshuonan - * @date 2023/02/23 22:21 - */ - void edit(SysTableWidthRequest sysTableWidthRequest); - - /** - * 查询详情 - * - * @param sysTableWidthRequest 请求参数 - * @author fengshuonan - * @date 2023/02/23 22:21 + * @since 2023/6/27 23:23 */ SysTableWidth detail(SysTableWidthRequest sysTableWidthRequest); - /** - * 获取列表 + /** + * 添加用户针对某个table的列属性配置 * - * @param sysTableWidthRequest 请求参数 - * @return List 返回结果 * @author fengshuonan - * @date 2023/02/23 22:21 + * @since 2023/6/27 23:24 */ - List findList(SysTableWidthRequest sysTableWidthRequest); - - /** - * 获取列表(带分页) - * - * @param sysTableWidthRequest 请求参数 - * @return PageResult 返回结果 - * @author fengshuonan - * @date 2023/02/23 22:21 - */ - PageResult findPage(SysTableWidthRequest sysTableWidthRequest); + void setTableWidth(SysTableWidthRequest sysTableWidthRequest); } \ No newline at end of file diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/service/impl/SysTableWidthServiceImpl.java b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/service/impl/SysTableWidthServiceImpl.java index 5fa0d68b7..414afd9ee 100644 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/service/impl/SysTableWidthServiceImpl.java +++ b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/tablewidth/service/impl/SysTableWidthServiceImpl.java @@ -1,26 +1,19 @@ package cn.stylefeng.roses.kernel.sys.modular.tablewidth.service.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.util.ObjectUtil; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; -import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; -import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; -import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; import cn.stylefeng.roses.kernel.sys.modular.tablewidth.entity.SysTableWidth; import cn.stylefeng.roses.kernel.sys.modular.tablewidth.enums.FieldTypeEnum; -import cn.stylefeng.roses.kernel.sys.modular.tablewidth.enums.SysTableWidthExceptionEnum; +import cn.stylefeng.roses.kernel.sys.modular.tablewidth.enums.exceptions.SysTableWidthExceptionEnum; import cn.stylefeng.roses.kernel.sys.modular.tablewidth.mapper.SysTableWidthMapper; import cn.stylefeng.roses.kernel.sys.modular.tablewidth.pojo.request.SysTableWidthRequest; import cn.stylefeng.roses.kernel.sys.modular.tablewidth.service.SysTableWidthService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; - /** * 业务中表的宽度业务实现层 * @@ -30,9 +23,50 @@ import java.util.List; @Service public class SysTableWidthServiceImpl extends ServiceImpl implements SysTableWidthService { + @Override + public SysTableWidth detail(SysTableWidthRequest sysTableWidthRequest) { + + Long userId = LoginContext.me().getLoginUser().getUserId(); + + // 获取当前人,在这个业务下,是否有生成过配置 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysTableWidth::getUserId, userId); + wrapper.eq(SysTableWidth::getFieldBusinessCode, sysTableWidthRequest.getFieldBusinessCode()); + wrapper.select(SysTableWidth::getFieldBusinessCode, SysTableWidth::getTableWidthJson, SysTableWidth::getFieldType); + SysTableWidth sysTableWidth = this.getOne(wrapper, false); + + // 如果存在配置,则直接返回 + if (sysTableWidth != null) { + return sysTableWidth; + } + + // 如果不存在配置,则去查找当前项目是否存在全局的配置 + LambdaQueryWrapper wrapper2 = new LambdaQueryWrapper<>(); + wrapper2.eq(SysTableWidth::getFieldBusinessCode, sysTableWidthRequest.getFieldBusinessCode()); + wrapper2.eq(SysTableWidth::getFieldType, FieldTypeEnum.TOTAL.getCode()); + wrapper2.select(SysTableWidth::getFieldBusinessCode, SysTableWidth::getTableWidthJson, SysTableWidth::getFieldType); + SysTableWidth totalTableWidth = this.getOne(wrapper2, false); + + // 存在全局配置,直接返回 + if (totalTableWidth != null) { + return totalTableWidth; + } + + // 如果没有个人配置,也没有全局配置,返回空 + return new SysTableWidth(); + } + @Override @Transactional(rollbackFor = Exception.class) public void setTableWidth(SysTableWidthRequest sysTableWidthRequest) { + + // 如果设置全局的,需要超级管理员身份 + if (FieldTypeEnum.TOTAL.getCode().equals(sysTableWidthRequest.getFieldType())) { + if (!LoginContext.me().getSuperAdminFlag()) { + throw new ServiceException(SysTableWidthExceptionEnum.PERMISSION_NOT_ALLOW); + } + } + SysTableWidth sysTableWidth = new SysTableWidth(); BeanUtil.copyProperties(sysTableWidthRequest, sysTableWidth); @@ -51,110 +85,18 @@ public class SysTableWidthServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(ObjectUtil.isNotEmpty(fieldBusinessCode), SysTableWidth::getFieldBusinessCode, fieldBusinessCode); - queryWrapper.eq(ObjectUtil.isNotEmpty(fieldType), SysTableWidth::getFieldType, fieldType); - queryWrapper.eq(ObjectUtil.isNotEmpty(userId), SysTableWidth::getUserId, userId); + queryWrapper.eq(SysTableWidth::getFieldBusinessCode, fieldBusinessCode); + queryWrapper.eq(SysTableWidth::getFieldType, fieldType); + queryWrapper.eq(SysTableWidth::getUserId, userId); this.remove(queryWrapper); this.save(sysTableWidth); } - @Override - public void del(SysTableWidthRequest sysTableWidthRequest) { - SysTableWidth sysTableWidth = this.querySysTableWidth(sysTableWidthRequest); - this.removeById(sysTableWidth.getTableWidthId()); - } - - @Override - public void edit(SysTableWidthRequest sysTableWidthRequest) { - SysTableWidth sysTableWidth = this.querySysTableWidth(sysTableWidthRequest); - BeanUtil.copyProperties(sysTableWidthRequest, sysTableWidth); - this.updateById(sysTableWidth); - } - - @Override - public SysTableWidth detail(SysTableWidthRequest sysTableWidthRequest) { - - // 获取当前人,在这个业务下,是否有生成过配置 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(SysTableWidth::getUserId, LoginContext.me().getLoginUser().getUserId()); - wrapper.eq(SysTableWidth::getFieldBusinessCode, sysTableWidthRequest.getFieldBusinessCode()); - - SysTableWidth sysTableWidth = this.getOne(wrapper, false); - - // 如果存在配置,则直接返回 - if (sysTableWidth != null) { - return sysTableWidth; - } - - // 如果不存在配置,则去查找当前项目是否存在全局的配置 - LambdaQueryWrapper wrapper2 = new LambdaQueryWrapper<>(); - wrapper2.eq(SysTableWidth::getFieldBusinessCode, sysTableWidthRequest.getFieldBusinessCode()); - wrapper2.eq(SysTableWidth::getFieldType, FieldTypeEnum.TOTAL.getCode()); - SysTableWidth totalTableWidth = this.getOne(wrapper2, false); - if (totalTableWidth != null) { - return totalTableWidth; - } - - // 如果没有个人配置,也没有全局配置,返回空 - return new SysTableWidth(); - } - - @Override - public PageResult findPage(SysTableWidthRequest sysTableWidthRequest) { - LambdaQueryWrapper wrapper = createWrapper(sysTableWidthRequest); - Page sysRolePage = this.page(PageFactory.defaultPage(), wrapper); - return PageResultFactory.createPageResult(sysRolePage); - } - - @Override - public List findList(SysTableWidthRequest sysTableWidthRequest) { - LambdaQueryWrapper wrapper = this.createWrapper(sysTableWidthRequest); - return this.list(wrapper); - } - - /** - * 获取信息 - * - * @author fengshuonan - * @date 2023/02/23 22:21 - */ - private SysTableWidth querySysTableWidth(SysTableWidthRequest sysTableWidthRequest) { - SysTableWidth sysTableWidth = this.getById(sysTableWidthRequest.getTableWidthId()); - if (ObjectUtil.isEmpty(sysTableWidth)) { - throw new ServiceException(SysTableWidthExceptionEnum.SYS_TABLE_WIDTH_NOT_EXISTED); - } - return sysTableWidth; - } - - /** - * 创建查询wrapper - * - * @author fengshuonan - * @date 2023/02/23 22:21 - */ - private LambdaQueryWrapper createWrapper(SysTableWidthRequest sysTableWidthRequest) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - - Long tableWidthId = sysTableWidthRequest.getTableWidthId(); - String fieldBusinessCode = sysTableWidthRequest.getFieldBusinessCode(); - Integer fieldType = sysTableWidthRequest.getFieldType(); - Long userId = sysTableWidthRequest.getUserId(); - String tableWidthJson = sysTableWidthRequest.getTableWidthJson(); - - queryWrapper.eq(ObjectUtil.isNotNull(tableWidthId), SysTableWidth::getTableWidthId, tableWidthId); - queryWrapper.like(ObjectUtil.isNotEmpty(fieldBusinessCode), SysTableWidth::getFieldBusinessCode, fieldBusinessCode); - queryWrapper.eq(ObjectUtil.isNotNull(fieldType), SysTableWidth::getFieldType, fieldType); - queryWrapper.eq(ObjectUtil.isNotNull(userId), SysTableWidth::getUserId, userId); - queryWrapper.like(ObjectUtil.isNotEmpty(tableWidthJson), SysTableWidth::getTableWidthJson, tableWidthJson); - - return queryWrapper; - } - } \ No newline at end of file