mirror of https://gitee.com/stylefeng/roses
【7.6.0】【table width】整理代码
parent
62c9c98cbb
commit
207e6515f4
|
@ -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<SysTableWidth> 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<SysTableWidth> setTableWidth(
|
||||
@RequestBody @Validated(SysTableWidthRequest.add.class) SysTableWidthRequest sysTableWidthRequest) {
|
||||
sysTableWidthService.setTableWidth(sysTableWidthRequest);
|
||||
|
|
|
@ -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配置,非超级管理员");
|
||||
|
||||
/**
|
||||
* 错误编码
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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<SysTableWidth> {
|
||||
|
||||
/**
|
||||
* 新增
|
||||
/**
|
||||
* 获取用户针对某个业务的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<SysTableWidth> 返回结果
|
||||
* @author fengshuonan
|
||||
* @date 2023/02/23 22:21
|
||||
* @since 2023/6/27 23:24
|
||||
*/
|
||||
List<SysTableWidth> findList(SysTableWidthRequest sysTableWidthRequest);
|
||||
|
||||
/**
|
||||
* 获取列表(带分页)
|
||||
*
|
||||
* @param sysTableWidthRequest 请求参数
|
||||
* @return PageResult<SysTableWidth> 返回结果
|
||||
* @author fengshuonan
|
||||
* @date 2023/02/23 22:21
|
||||
*/
|
||||
PageResult<SysTableWidth> findPage(SysTableWidthRequest sysTableWidthRequest);
|
||||
void setTableWidth(SysTableWidthRequest sysTableWidthRequest);
|
||||
|
||||
}
|
|
@ -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<SysTableWidthMapper, SysTableWidth> implements SysTableWidthService {
|
||||
|
||||
@Override
|
||||
public SysTableWidth detail(SysTableWidthRequest sysTableWidthRequest) {
|
||||
|
||||
Long userId = LoginContext.me().getLoginUser().getUserId();
|
||||
|
||||
// 获取当前人,在这个业务下,是否有生成过配置
|
||||
LambdaQueryWrapper<SysTableWidth> 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<SysTableWidth> 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<SysTableWidthMapper, S
|
|||
this.remove(queryWrapper);
|
||||
}
|
||||
|
||||
// 先删除再保存
|
||||
// 先删除用户的配置再保存
|
||||
String fieldBusinessCode = sysTableWidthRequest.getFieldBusinessCode();
|
||||
Integer fieldType = sysTableWidthRequest.getFieldType();
|
||||
Long userId = sysTableWidthRequest.getUserId();
|
||||
|
||||
LambdaQueryWrapper<SysTableWidth> 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<SysTableWidth> 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<SysTableWidth> 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<SysTableWidth> findPage(SysTableWidthRequest sysTableWidthRequest) {
|
||||
LambdaQueryWrapper<SysTableWidth> wrapper = createWrapper(sysTableWidthRequest);
|
||||
Page<SysTableWidth> sysRolePage = this.page(PageFactory.defaultPage(), wrapper);
|
||||
return PageResultFactory.createPageResult(sysRolePage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysTableWidth> findList(SysTableWidthRequest sysTableWidthRequest) {
|
||||
LambdaQueryWrapper<SysTableWidth> 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<SysTableWidth> createWrapper(SysTableWidthRequest sysTableWidthRequest) {
|
||||
LambdaQueryWrapper<SysTableWidth> 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;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue