【7.6.0】【table width】整理代码

pull/57/head
fengshuonan 2023-06-27 23:32:57 +08:00
parent 62c9c98cbb
commit 207e6515f4
6 changed files with 69 additions and 204 deletions

View File

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

View File

@ -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配置非超级管理员");
/**
*

View File

@ -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;
/**
* truefalse-
*/
private Boolean showFlag;
/**
*
*/
private Integer width;
/**
*
*/
private Boolean lockFlag;
}

View File

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

View File

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

View File

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