From b4447dd27e9e3ee83adfeee58e930ffee31ad010 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Thu, 31 Mar 2022 21:53:44 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.2.2=E3=80=91=E3=80=90expand=E3=80=91?= =?UTF-8?q?=E5=A4=84=E7=90=86=E7=94=A8=E6=88=B7=E8=AF=A6=E6=83=85=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=9A=84=E5=8A=A8=E6=80=81=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel/expand/modular/api/ExpandApi.java | 9 ++++ .../modular/api/pojo/ExpandDataInfo.java | 31 ++++++++++++++ .../modular/service/SysExpandService.java | 3 +- .../service/impl/SysExpandServiceImpl.java | 41 ++++++++++++++++++- kernel-s-system/system-api/pom.xml | 7 ++++ .../api/pojo/user/request/SysUserRequest.java | 7 ++++ .../user/service/impl/SysUserServiceImpl.java | 16 ++++++++ 7 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 kernel-s-expand/expand-api/src/main/java/cn/stylefeng/roses/kernel/expand/modular/api/pojo/ExpandDataInfo.java diff --git a/kernel-s-expand/expand-api/src/main/java/cn/stylefeng/roses/kernel/expand/modular/api/ExpandApi.java b/kernel-s-expand/expand-api/src/main/java/cn/stylefeng/roses/kernel/expand/modular/api/ExpandApi.java index f7d60b3b7..d83925312 100644 --- a/kernel-s-expand/expand-api/src/main/java/cn/stylefeng/roses/kernel/expand/modular/api/ExpandApi.java +++ b/kernel-s-expand/expand-api/src/main/java/cn/stylefeng/roses/kernel/expand/modular/api/ExpandApi.java @@ -24,6 +24,8 @@ */ package cn.stylefeng.roses.kernel.expand.modular.api; +import cn.stylefeng.roses.kernel.expand.modular.api.pojo.ExpandDataInfo; + /** * 拓展字段Api * @@ -32,5 +34,12 @@ package cn.stylefeng.roses.kernel.expand.modular.api; */ public interface ExpandApi { + /** + * 保存或更新动态数据 + * + * @author fengshuonan + * @date 2022/3/31 21:20 + */ + void saveOrUpdateExpandData(ExpandDataInfo expandDataInfo); } diff --git a/kernel-s-expand/expand-api/src/main/java/cn/stylefeng/roses/kernel/expand/modular/api/pojo/ExpandDataInfo.java b/kernel-s-expand/expand-api/src/main/java/cn/stylefeng/roses/kernel/expand/modular/api/pojo/ExpandDataInfo.java new file mode 100644 index 000000000..414f635fa --- /dev/null +++ b/kernel-s-expand/expand-api/src/main/java/cn/stylefeng/roses/kernel/expand/modular/api/pojo/ExpandDataInfo.java @@ -0,0 +1,31 @@ +package cn.stylefeng.roses.kernel.expand.modular.api.pojo; + +import lombok.Data; + +import java.util.Map; + +/** + * 拓展数据信息 + * + * @author fengshuonan + * @date 2022/3/31 21:25 + */ +@Data +public class ExpandDataInfo { + + /** + * 拓展id + */ + private Long expandId; + + /** + * 动态表单数据 + */ + private Map expandData; + + /** + * 主键字段值 + */ + private Long primaryFieldValue; + +} diff --git a/kernel-s-expand/expand-business/src/main/java/cn/stylefeng/roses/kernel/expand/modular/modular/service/SysExpandService.java b/kernel-s-expand/expand-business/src/main/java/cn/stylefeng/roses/kernel/expand/modular/modular/service/SysExpandService.java index beb0ba27f..783d77e10 100644 --- a/kernel-s-expand/expand-business/src/main/java/cn/stylefeng/roses/kernel/expand/modular/modular/service/SysExpandService.java +++ b/kernel-s-expand/expand-business/src/main/java/cn/stylefeng/roses/kernel/expand/modular/modular/service/SysExpandService.java @@ -1,6 +1,7 @@ package cn.stylefeng.roses.kernel.expand.modular.modular.service; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.expand.modular.api.ExpandApi; import cn.stylefeng.roses.kernel.expand.modular.modular.entity.SysExpand; import cn.stylefeng.roses.kernel.expand.modular.modular.entity.SysExpandData; import cn.stylefeng.roses.kernel.expand.modular.modular.pojo.request.SysExpandRequest; @@ -14,7 +15,7 @@ import java.util.List; * @author fengshuonan * @date 2022/03/29 23:47 */ -public interface SysExpandService extends IService { +public interface SysExpandService extends IService, ExpandApi { /** * 新增 diff --git a/kernel-s-expand/expand-business/src/main/java/cn/stylefeng/roses/kernel/expand/modular/modular/service/impl/SysExpandServiceImpl.java b/kernel-s-expand/expand-business/src/main/java/cn/stylefeng/roses/kernel/expand/modular/modular/service/impl/SysExpandServiceImpl.java index 896bfba7e..87653bea9 100644 --- a/kernel-s-expand/expand-business/src/main/java/cn/stylefeng/roses/kernel/expand/modular/modular/service/impl/SysExpandServiceImpl.java +++ b/kernel-s-expand/expand-business/src/main/java/cn/stylefeng/roses/kernel/expand/modular/modular/service/impl/SysExpandServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil; 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.expand.modular.api.pojo.ExpandDataInfo; import cn.stylefeng.roses.kernel.expand.modular.modular.entity.SysExpand; import cn.stylefeng.roses.kernel.expand.modular.modular.entity.SysExpandData; import cn.stylefeng.roses.kernel.expand.modular.modular.entity.SysExpandField; @@ -18,6 +19,7 @@ import cn.stylefeng.roses.kernel.expand.modular.modular.service.SysExpandFieldSe import cn.stylefeng.roses.kernel.expand.modular.modular.service.SysExpandService; import cn.stylefeng.roses.kernel.rule.enums.StatusEnum; import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -25,6 +27,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import java.util.Map; /** * 业务拓展业务实现层 @@ -103,12 +106,13 @@ public class SysExpandServiceImpl extends ServiceImpl dynamicFormData = expandDataInfo.getExpandData(); + if (dynamicFormData == null || dynamicFormData.size() <= 0) { + return; + } + + // 具体数据转化为json + String dynamicData = JSON.toJSONString(dynamicFormData); + + SysExpandData saveData = new SysExpandData(); + saveData.setExpandId(expandDataInfo.getExpandId()); + saveData.setPrimaryFieldValue(expandDataInfo.getPrimaryFieldValue()); + saveData.setExpandData(dynamicData); + + // 查询数据有没有在库中存在 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysExpandData::getExpandId, expandDataInfo.getExpandId()); + wrapper.eq(SysExpandData::getPrimaryFieldValue, expandDataInfo.getPrimaryFieldValue()); + SysExpandData sysExpandData = this.sysExpandDataService.getOne(wrapper, false); + + // 数据库中不存在,则保存 + if (sysExpandData == null) { + this.sysExpandDataService.save(saveData); + } else { + saveData.setExpandDataId(sysExpandData.getExpandDataId()); + this.sysExpandDataService.updateById(saveData); + } + } + /** * 获取信息 * @@ -156,5 +194,4 @@ public class SysExpandServiceImpl extends ServiceImpl + + + cn.stylefeng.roses + expand-api + ${roses.version} + + cn.stylefeng.roses diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/SysUserRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/SysUserRequest.java index 5660d28ea..51217f113 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/SysUserRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/user/request/SysUserRequest.java @@ -24,6 +24,7 @@ */ package cn.stylefeng.roses.kernel.system.api.pojo.user.request; +import cn.stylefeng.roses.kernel.expand.modular.api.pojo.ExpandDataInfo; import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; import cn.stylefeng.roses.kernel.validator.api.validators.date.DateValue; @@ -192,6 +193,12 @@ public class SysUserRequest extends BaseRequest { @ChineseDescription("用户id的数据范围集合") private Set userScopeIds; + /** + * 动态表单数据 + */ + @ChineseDescription("动态表单数据") + private ExpandDataInfo expandDataInfo; + /** * 参数校验分组:修改密码 */ diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserServiceImpl.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserServiceImpl.java index cfef4b5b3..9ad4403aa 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserServiceImpl.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserServiceImpl.java @@ -41,6 +41,7 @@ import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi; 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.expand.modular.api.ExpandApi; import cn.stylefeng.roses.kernel.file.api.FileInfoApi; import cn.stylefeng.roses.kernel.file.api.constants.FileConstants; import cn.stylefeng.roses.kernel.jwt.api.context.JwtContext; @@ -145,6 +146,9 @@ public class SysUserServiceImpl extends ServiceImpl impl @Resource private PositionServiceApi positionServiceApi; + @Resource + private ExpandApi expandApi; + @Override @Transactional(rollbackFor = Exception.class) public void add(SysUserRequest sysUserRequest) { @@ -172,6 +176,12 @@ public class SysUserServiceImpl extends ServiceImpl impl } else { sysUserOrgService.add(sysUser.getUserId(), sysUserRequest.getOrgId(), sysUserRequest.getPositionId()); } + + // 处理动态表单数据 + if (sysUserRequest.getExpandDataInfo() != null) { + sysUserRequest.getExpandDataInfo().setPrimaryFieldValue(sysUser.getUserId()); + expandApi.saveOrUpdateExpandData(sysUserRequest.getExpandDataInfo()); + } } @Override @@ -239,6 +249,12 @@ public class SysUserServiceImpl extends ServiceImpl impl // 清除缓存中的用户信息 sysUserCacheOperatorApi.remove(String.valueOf(sysUserId)); + + // 处理动态表单数据 + if (sysUserRequest.getExpandDataInfo() != null) { + sysUserRequest.getExpandDataInfo().setPrimaryFieldValue(sysUser.getUserId()); + expandApi.saveOrUpdateExpandData(sysUserRequest.getExpandDataInfo()); + } } @Override