From 6e88b0afd2491bbd012b32576bd2f4a6697ca911 Mon Sep 17 00:00:00 2001 From: huangyuxuan Date: Tue, 4 Nov 2025 09:35:36 +0800 Subject: [PATCH 1/7] =?UTF-8?q?[=E6=96=B0=E5=A2=9E=E5=8A=9F=E8=83=BD](main?= =?UTF-8?q?)=20=20-=20=E6=96=B0=E5=A2=9E=E4=BC=81=E4=B8=9A=E4=BF=A1?= =?UTF-8?q?=E6=81=AFdubbo=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../info/facade/ZcloudCorpFacadeImpl.java | 60 +++++++++++++++++++ .../convertor/CorpInfoCoConvertor.java | 3 + 2 files changed, 63 insertions(+) create mode 100644 web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudCorpFacadeImpl.java diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudCorpFacadeImpl.java b/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudCorpFacadeImpl.java new file mode 100644 index 0000000..22b6602 --- /dev/null +++ b/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudCorpFacadeImpl.java @@ -0,0 +1,60 @@ +package com.zcloud.basic.info.facade; + +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; +import com.zcloud.basic.info.api.CorpInfoServiceI; +import com.zcloud.basic.info.command.convertor.CorpInfoCoConvertor; +import com.zcloud.basic.info.dto.CorpFormAddCmd; +import com.zcloud.basic.info.dto.CorpInfoAddCmd; +import com.zcloud.basic.info.dto.CorpInfoPageQry; +import com.zcloud.basic.info.dto.CorpInfoUpdateCmd; +import com.zcloud.basic.info.dto.clientobject.CorpInfoCO; +import com.zcloud.gbscommon.zcloudcorp.face.ZcloudCorpFacade; +import com.zcloud.gbscommon.zcloudcorp.request.ZcloudCorpInfoAddCmd; +import com.zcloud.gbscommon.zcloudcorp.request.ZcloudCorpInfoPageQry; +import com.zcloud.gbscommon.zcloudcorp.request.ZcloudCorpInfoQry; +import com.zcloud.gbscommon.zcloudcorp.request.ZcloudCorpInfoUpdateCmd; +import com.zcloud.gbscommon.zcloudcorp.response.ZcloudCorpInfoCO; +import org.apache.dubbo.config.annotation.DubboService; +import org.springframework.beans.BeanUtils; + +import javax.annotation.Resource; +import java.util.List; + +@DubboService +public class ZcloudCorpFacadeImpl implements ZcloudCorpFacade { + @Resource + private CorpInfoServiceI corpInfoService; + @Resource + private CorpInfoCoConvertor corpInfoCoConvertor; + @Override + public SingleResponse getCorpInfoById(ZcloudCorpInfoQry zcloudCorpInfoQry) { + CorpInfoCO info = corpInfoService.info(zcloudCorpInfoQry.getId()); + ZcloudCorpInfoCO zcloudCorpInfoCO = new ZcloudCorpInfoCO(); + BeanUtils.copyProperties(info, zcloudCorpInfoCO); + return SingleResponse.of(zcloudCorpInfoCO); + } + + @Override + public PageResponse pageByParentId(ZcloudCorpInfoPageQry zcloudCorpInfoPageQry) { + CorpInfoPageQry qry = new CorpInfoPageQry(); + BeanUtils.copyProperties(zcloudCorpInfoPageQry, qry); + PageResponse corpInfoCOPageResponse = corpInfoService.listPage(qry); + List zcloudPage = corpInfoCoConvertor.converCOsToDubboCOs(corpInfoCOPageResponse.getData()); + return PageResponse.of(zcloudPage, corpInfoCOPageResponse.getTotalCount(), corpInfoCOPageResponse.getPageSize(), corpInfoCOPageResponse.getPageIndex()); + } + + @Override + public SingleResponse addCorp(ZcloudCorpInfoAddCmd zcloudCorpInfoAddCmd) { + CorpInfoAddCmd addCmd =new CorpInfoAddCmd(); + BeanUtils.copyProperties(zcloudCorpInfoAddCmd, addCmd); + return corpInfoService.add(addCmd); + } + + @Override + public SingleResponse editCorp(ZcloudCorpInfoUpdateCmd zcloudCorpInfoUpdateCmd) { + CorpInfoUpdateCmd updateCmd =new CorpInfoUpdateCmd(); + BeanUtils.copyProperties(zcloudCorpInfoUpdateCmd, updateCmd); + return SingleResponse.buildSuccess(); + } +} diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/convertor/CorpInfoCoConvertor.java b/web-app/src/main/java/com/zcloud/basic/info/command/convertor/CorpInfoCoConvertor.java index 85004ba..c2903fe 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/convertor/CorpInfoCoConvertor.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/convertor/CorpInfoCoConvertor.java @@ -6,6 +6,7 @@ import com.zcloud.basic.info.dto.clientobject.CorpDepartmentCO; import com.zcloud.basic.info.dto.clientobject.CorpInfoCO; import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO; import com.zcloud.basic.info.persistence.dataobject.DepartmentDO; +import com.zcloud.gbscommon.zcloudcorp.response.ZcloudCorpInfoCO; import org.mapstruct.Mapper; import java.util.List; @@ -30,5 +31,7 @@ public interface CorpInfoCoConvertor { List converDOsToDepartE(List list); List converCorpInfoToCorpDepartCOs(List corpInfoList); + + List converCOsToDubboCOs(List data); } From d337fa6c5cf188f73f6c00bb2390f407f69e4eff Mon Sep 17 00:00:00 2001 From: SondonYong Date: Tue, 4 Nov 2025 10:25:52 +0800 Subject: [PATCH 2/7] =?UTF-8?q?dev:=E5=B2=97=E4=BD=8D=E7=AE=A1=E7=90=86-du?= =?UTF-8?q?bbo=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../info/facade/ZcloudPostFacadeImpl.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudPostFacadeImpl.java b/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudPostFacadeImpl.java index f6a2b16..decce2a 100644 --- a/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudPostFacadeImpl.java +++ b/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudPostFacadeImpl.java @@ -1,6 +1,7 @@ package com.zcloud.basic.info.facade; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.basic.info.api.PostServiceI; @@ -9,12 +10,14 @@ import com.zcloud.basic.info.dto.clientobject.PostCO; import com.zcloud.gbscommon.zcloudpost.facade.ZcloudPostFacade; import com.zcloud.gbscommon.zcloudpost.request.ZcloudPostQry; import com.zcloud.gbscommon.zcloudpost.response.ZcloudPostCO; +import com.zcloud.gbscommon.zcloudpost.response.ZcloudPostDepartmentCO; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.BeanUtils; import javax.annotation.Resource; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * @author SondonYong @@ -39,6 +42,10 @@ public class ZcloudPostFacadeImpl implements ZcloudPostFacade { ZcloudPostCO zcloudPostCO = new ZcloudPostCO(); BeanUtils.copyProperties(postCO.getData(), zcloudPostCO); + List zcloudPostDepartmentCOS = BeanUtil.copyToList(postCO.getData().getDepartmentList(), ZcloudPostDepartmentCO.class); + + zcloudPostCO.setDepartmentList(zcloudPostDepartmentCOS); + return SingleResponse.of(zcloudPostCO); } @@ -52,7 +59,24 @@ public class ZcloudPostFacadeImpl implements ZcloudPostFacade { return null; } - List zcloudPostCOList = BeanUtil.copyToList(list.getData(), ZcloudPostCO.class); +// List zcloudPostCOList = BeanUtil.copyToList(list.getData(), ZcloudPostCO.class); + List zcloudPostCOList = list.getData().stream() + .map(postCO -> { + // 复制基本属性 + ZcloudPostCO zcloudPostCO = BeanUtil.toBean(postCO, ZcloudPostCO.class); + + // 手动处理嵌套List + if (CollUtil.isNotEmpty(postCO.getDepartmentList())) { + List deptList = BeanUtil.copyToList( + postCO.getDepartmentList(), + ZcloudPostDepartmentCO.class + ); + zcloudPostCO.setDepartmentList(deptList); + } + + return zcloudPostCO; + }) + .collect(Collectors.toList()); return MultiResponse.of(zcloudPostCOList); } From 08b910630e1d29c90b3be165116140a22c88c635 Mon Sep 17 00:00:00 2001 From: SondonYong Date: Tue, 4 Nov 2025 11:12:10 +0800 Subject: [PATCH 3/7] =?UTF-8?q?dev:=E5=B2=97=E4=BD=8D=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=92=8C=E4=BF=AE=E6=94=B9=E5=B2=97=E4=BD=8D?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/zcloud/basic/info/command/PostAddExe.java | 5 ++++- .../java/com/zcloud/basic/info/command/PostUpdateExe.java | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/PostAddExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/PostAddExe.java index ad3f11d..71e4219 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/PostAddExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/PostAddExe.java @@ -1,5 +1,6 @@ package com.zcloud.basic.info.command; +import cn.hutool.core.collection.CollUtil; import com.zcloud.basic.info.domain.gateway.PostDepartmentGateway; import com.zcloud.basic.info.domain.gateway.PostGateway; import com.zcloud.basic.info.domain.model.PostDepartmentE; @@ -42,7 +43,9 @@ public class PostAddExe { // 岗位部门关联 if(res && cmd.getSupervisionFlag() == 1) { List postDepartmentEList = postE.addDepartmentIds(postId, cmd.getDepartmentIds()); - res = postDepartmentGateway.addList(postDepartmentEList); + if(CollUtil.isNotEmpty(postDepartmentEList)){ + res = postDepartmentGateway.addList(postDepartmentEList); + } } } catch (Exception e) { diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/PostUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/PostUpdateExe.java index ca9625b..e9d3dcd 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/PostUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/PostUpdateExe.java @@ -1,5 +1,6 @@ package com.zcloud.basic.info.command; +import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.exception.BizException; import com.zcloud.basic.info.domain.gateway.PostDepartmentGateway; import com.zcloud.basic.info.domain.gateway.PostGateway; @@ -36,7 +37,9 @@ public class PostUpdateExe { if(res && postUpdateCmd.getSupervisionFlag() == 1){ postDepartmentGateway.deletedPostDepartment(postE.getId()); List postDepartmentEList = postE.addDepartmentIds(postE.getId(), postUpdateCmd.getDepartmentIds()); - res = postDepartmentGateway.addList(postDepartmentEList); + if(CollUtil.isNotEmpty(postDepartmentEList)){ + res = postDepartmentGateway.addList(postDepartmentEList); + } } if (!res) { From a46b8a0e4e2cd8834c4de16e1d7fcbeb4adf6838 Mon Sep 17 00:00:00 2001 From: zhaokai Date: Tue, 4 Nov 2025 11:25:44 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E9=83=A8=E9=97=A8=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../info/command/DepartmentUpdateExe.java | 10 ++-- .../command/query/DepartmentQueryExe.java | 6 +++ .../basic/info/dto/DepartmentTreeQry.java | 6 +-- .../info/domain/model/FacadeDepartmentE.java | 46 +++++++++++++++++++ .../impl/DepartmentRepositoryImpl.java | 4 +- 5 files changed, 62 insertions(+), 10 deletions(-) create mode 100644 web-domain/src/main/java/com/zcloud/basic/info/domain/model/FacadeDepartmentE.java diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentUpdateExe.java index 6ec155b..8e1c13a 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentUpdateExe.java @@ -5,6 +5,7 @@ import com.jjb.saas.system.client.dept.facade.DeptFacade; import com.jjb.saas.system.client.dept.request.FacadeUpdateDeptCmd; import com.zcloud.basic.info.domain.gateway.DepartmentGateway; import com.zcloud.basic.info.domain.model.DepartmentE; +import com.zcloud.basic.info.domain.model.FacadeDepartmentE; import com.zcloud.basic.info.dto.DepartmentUpdateCmd; import com.zcloud.basic.info.persistence.dataobject.DepartmentDO; import com.zcloud.basic.info.persistence.repository.DepartmentRepository; @@ -46,12 +47,11 @@ public class DepartmentUpdateExe { throw new BizException("修改失败"); } - FacadeUpdateDeptCmd deptCmd = new FacadeUpdateDeptCmd(); - deptCmd.setLinkId(departmentE.getId()); - deptCmd.setLinkName(departmentE.getName()); - deptCmd.setParentId(departmentE.getParentId()); - deptFacade.updateDept(deptCmd); + FacadeDepartmentE deptE =FacadeDepartmentE.initUpdate(departmentE); + FacadeUpdateDeptCmd deptCmd = new FacadeUpdateDeptCmd(); + BeanUtils.copyProperties(deptE, deptCmd); + deptFacade.updateDept(deptCmd); if(!departmentDO.getName().equals(departmentE.getName())){ //TODO 名字不一样,发送mq diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/query/DepartmentQueryExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/query/DepartmentQueryExe.java index b46d3ba..6cbdc7b 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/query/DepartmentQueryExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/query/DepartmentQueryExe.java @@ -2,6 +2,7 @@ package com.zcloud.basic.info.command.query; import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.dto.PageResponse; +import com.jjb.saas.framework.auth.utils.AuthContext; import com.zcloud.basic.info.command.convertor.DepartmentCoConvertor; import com.zcloud.basic.info.domain.model.DepartmentE; import com.zcloud.basic.info.dto.CorpDepartmentQry; @@ -15,6 +16,7 @@ import com.zcloud.basic.info.persistence.dataobject.DepartmentDO; import com.zcloud.basic.info.persistence.repository.DepartmentRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; @@ -48,6 +50,10 @@ public class DepartmentQueryExe { } public List listTree(DepartmentTreeQry departmentQry) { + if(Objects.isNull(departmentQry.getEqCorpinfoId())){ + departmentQry.setEqCorpinfoId(AuthContext.getTenantId()); + + } Map parmas = PageQueryHelper.toHashMap(departmentQry); List pageResponse = departmentRepository.listTree(parmas); if(CollUtil.isEmpty(pageResponse)) { diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/DepartmentTreeQry.java b/web-client/src/main/java/com/zcloud/basic/info/dto/DepartmentTreeQry.java index afd2c6a..6c856dd 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/dto/DepartmentTreeQry.java +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/DepartmentTreeQry.java @@ -25,10 +25,10 @@ public class DepartmentTreeQry { * - `ne`: 不等比较查询,对应SQL的!=操作符 */ - @ApiModelProperty(value = "企业id", name = "eqCorpInfoId") - private String eqCorpInfoId; + @ApiModelProperty(value = "企业id", name = "eqCorpinfoId") + private Long eqCorpinfoId; @ApiModelProperty(value = "父id", name = "eqParentId") - private String eqParentId; + private Long eqParentId; } diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/FacadeDepartmentE.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/FacadeDepartmentE.java new file mode 100644 index 0000000..946d783 --- /dev/null +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/FacadeDepartmentE.java @@ -0,0 +1,46 @@ +package com.zcloud.basic.info.domain.model; + +import com.alibaba.cola.domain.Entity; +import com.jjb.saas.framework.domain.model.BaseE; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * web-domain + * + * @Author zhaokai + * @Date 2025-10-30 10:10:48 + */ +@Data +@Entity +@EqualsAndHashCode(callSuper = true) +public class FacadeDepartmentE extends BaseE { + + //外部对象ID + private Long linkId; + //父级ID + private Long parentId; + + //外部对象名称 + private String linkName; + + //区域父子级编码(逗号隔开) + private String regionCode; + + //区域名称 + private String regionCodeName; + + + public static FacadeDepartmentE initUpdate(DepartmentE departmentE) { + FacadeDepartmentE deptE = new FacadeDepartmentE(); + deptE.setLinkId(departmentE.getId()); + deptE.setLinkName(departmentE.getName()); + deptE.setParentId(departmentE.getParentId()); + return deptE; + } +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/DepartmentRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/DepartmentRepositoryImpl.java index c665e18..fc659a0 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/DepartmentRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/DepartmentRepositoryImpl.java @@ -45,8 +45,8 @@ public class DepartmentRepositoryImpl extends BaseRepositoryImpl listTree(Map parmas) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, parmas); - SSOUser ssoUser = AuthContext.getCurrentUser(); - queryWrapper.eq("tenant_id",ssoUser.getTenantId()); +// SSOUser ssoUser = AuthContext.getCurrentUser(); +// queryWrapper.eq("tenant_id",ssoUser.getTenantId()); queryWrapper.orderByDesc("dep_order"); List departmentDOList = departmentMapper.selectList(queryWrapper); if (CollUtil.isEmpty(departmentDOList)) { From e7b503e6b37b8ed0b408238313b052fbc82ed2d3 Mon Sep 17 00:00:00 2001 From: SondonYong Date: Tue, 4 Nov 2025 13:37:43 +0800 Subject: [PATCH 5/7] =?UTF-8?q?dev:=E5=B2=97=E4=BD=8D=E7=AE=A1=E7=90=86-du?= =?UTF-8?q?bbo=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../info/facade/ZcloudPostFacadeImpl.java | 57 ++++++++++++------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudPostFacadeImpl.java b/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudPostFacadeImpl.java index decce2a..4cd4637 100644 --- a/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudPostFacadeImpl.java +++ b/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudPostFacadeImpl.java @@ -6,7 +6,9 @@ import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.basic.info.api.PostServiceI; import com.zcloud.basic.info.dto.PostListQry; +import com.zcloud.basic.info.dto.clientobject.DepartmentCO; import com.zcloud.basic.info.dto.clientobject.PostCO; +import com.zcloud.gbscommon.utils.DeepCopyUtil; import com.zcloud.gbscommon.zcloudpost.facade.ZcloudPostFacade; import com.zcloud.gbscommon.zcloudpost.request.ZcloudPostQry; import com.zcloud.gbscommon.zcloudpost.response.ZcloudPostCO; @@ -15,7 +17,9 @@ import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.BeanUtils; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @@ -39,12 +43,18 @@ public class ZcloudPostFacadeImpl implements ZcloudPostFacade { return null; } - ZcloudPostCO zcloudPostCO = new ZcloudPostCO(); - BeanUtils.copyProperties(postCO.getData(), zcloudPostCO); +// ZcloudPostCO zcloudPostCO = new ZcloudPostCO(); +// BeanUtils.copyProperties(postCO.getData(), zcloudPostCO); - List zcloudPostDepartmentCOS = BeanUtil.copyToList(postCO.getData().getDepartmentList(), ZcloudPostDepartmentCO.class); + // 定义映射关系 + Map, Class> mapping = new HashMap<>(); + mapping.put(DepartmentCO.class, ZcloudPostDepartmentCO.class); - zcloudPostCO.setDepartmentList(zcloudPostDepartmentCOS); + ZcloudPostCO zcloudPostCO = DeepCopyUtil.deepCopy(postCO.getData(), ZcloudPostCO.class, mapping); + +// List zcloudPostDepartmentCOS = BeanUtil.copyToList(postCO.getData().getDepartmentList(), ZcloudPostDepartmentCO.class); + +// zcloudPostCO.setDepartmentList(zcloudPostDepartmentCOS); return SingleResponse.of(zcloudPostCO); } @@ -59,24 +69,29 @@ public class ZcloudPostFacadeImpl implements ZcloudPostFacade { return null; } + Map, Class> mapping = new HashMap<>(); + mapping.put(DepartmentCO.class, ZcloudPostDepartmentCO.class); + + List zcloudPostCOList = DeepCopyUtil.copyList(list.getData(), ZcloudPostCO.class, mapping); + // List zcloudPostCOList = BeanUtil.copyToList(list.getData(), ZcloudPostCO.class); - List zcloudPostCOList = list.getData().stream() - .map(postCO -> { - // 复制基本属性 - ZcloudPostCO zcloudPostCO = BeanUtil.toBean(postCO, ZcloudPostCO.class); - - // 手动处理嵌套List - if (CollUtil.isNotEmpty(postCO.getDepartmentList())) { - List deptList = BeanUtil.copyToList( - postCO.getDepartmentList(), - ZcloudPostDepartmentCO.class - ); - zcloudPostCO.setDepartmentList(deptList); - } - - return zcloudPostCO; - }) - .collect(Collectors.toList()); +// List zcloudPostCOList = list.getData().stream() +// .map(postCO -> { +// // 复制基本属性 +// ZcloudPostCO zcloudPostCO = BeanUtil.toBean(postCO, ZcloudPostCO.class); +// +// // 手动处理嵌套List +// if (CollUtil.isNotEmpty(postCO.getDepartmentList())) { +// List deptList = BeanUtil.copyToList( +// postCO.getDepartmentList(), +// ZcloudPostDepartmentCO.class +// ); +// zcloudPostCO.setDepartmentList(deptList); +// } +// +// return zcloudPostCO; +// }) +// .collect(Collectors.toList()); return MultiResponse.of(zcloudPostCOList); } From dd8c53c1b2f5b2b8e9c823775a4f00e083c215d5 Mon Sep 17 00:00:00 2001 From: SondonYong Date: Tue, 4 Nov 2025 13:45:32 +0800 Subject: [PATCH 6/7] =?UTF-8?q?dev:=E5=B2=97=E4=BD=8D=E7=AE=A1=E7=90=86-du?= =?UTF-8?q?bbo=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zcloud/basic/info/facade/ZcloudPostFacadeImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudPostFacadeImpl.java b/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudPostFacadeImpl.java index 4cd4637..6293c7d 100644 --- a/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudPostFacadeImpl.java +++ b/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudPostFacadeImpl.java @@ -8,6 +8,7 @@ import com.zcloud.basic.info.api.PostServiceI; import com.zcloud.basic.info.dto.PostListQry; import com.zcloud.basic.info.dto.clientobject.DepartmentCO; import com.zcloud.basic.info.dto.clientobject.PostCO; +import com.zcloud.basic.info.dto.clientobject.PostDepartmentCO; import com.zcloud.gbscommon.utils.DeepCopyUtil; import com.zcloud.gbscommon.zcloudpost.facade.ZcloudPostFacade; import com.zcloud.gbscommon.zcloudpost.request.ZcloudPostQry; @@ -48,7 +49,7 @@ public class ZcloudPostFacadeImpl implements ZcloudPostFacade { // 定义映射关系 Map, Class> mapping = new HashMap<>(); - mapping.put(DepartmentCO.class, ZcloudPostDepartmentCO.class); + mapping.put(PostDepartmentCO.class, ZcloudPostDepartmentCO.class); ZcloudPostCO zcloudPostCO = DeepCopyUtil.deepCopy(postCO.getData(), ZcloudPostCO.class, mapping); @@ -70,7 +71,7 @@ public class ZcloudPostFacadeImpl implements ZcloudPostFacade { } Map, Class> mapping = new HashMap<>(); - mapping.put(DepartmentCO.class, ZcloudPostDepartmentCO.class); + mapping.put(PostDepartmentCO.class, ZcloudPostDepartmentCO.class); List zcloudPostCOList = DeepCopyUtil.copyList(list.getData(), ZcloudPostCO.class, mapping); From 420ff0d106518dba7e136745d35616c5e7e77991 Mon Sep 17 00:00:00 2001 From: zhangyue Date: Tue, 4 Nov 2025 13:55:07 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E9=99=84=E4=BB=B6=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/info/web/ImgFilesController.java | 8 ++-- .../basic/info/command/ImgFilesRemoveExe.java | 29 +++++++++++--- .../convertor/ImgFilesCoConvertor.java | 1 + .../info/dto/clientobject/ImgFilesCO.java | 11 +++++- .../basic/info/domain/model/ImgFilesE.java | 31 +++++++++------ .../info/gatewayimpl/ImgFilesGatewayImpl.java | 1 + .../persistence/dataobject/ImgFilesDO.java | 38 ++++++++++--------- .../repository/ImgFilesRepository.java | 3 ++ .../impl/ImgFilesRepositoryImpl.java | 10 +++++ 9 files changed, 91 insertions(+), 41 deletions(-) diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/web/ImgFilesController.java b/web-adapter/src/main/java/com/zcloud/basic/info/web/ImgFilesController.java index f51b059..f371906 100644 --- a/web-adapter/src/main/java/com/zcloud/basic/info/web/ImgFilesController.java +++ b/web-adapter/src/main/java/com/zcloud/basic/info/web/ImgFilesController.java @@ -68,15 +68,15 @@ public class ImgFilesController { } @ApiOperation("删除") - @DeleteMapping("/{filePath}") - public Response removeFile(@PathVariable("filePath") String filePath) { + @DeleteMapping("/delete") + public Response removeFile(@RequestParam String filePath) { imgFilesService.removeFile(filePath); - return SingleResponse.buildSuccess(); + return Response.buildSuccess(); } @ApiOperation("删除多个") @DeleteMapping("/ids") - public Response removeBatch(@RequestParam Long[] ids) { + public Response removeBatch(@RequestParam Long[] ids) { imgFilesService.removeBatch(ids); return SingleResponse.buildSuccess(); } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/ImgFilesRemoveExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/ImgFilesRemoveExe.java index b235999..6786b3d 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/ImgFilesRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/ImgFilesRemoveExe.java @@ -1,11 +1,19 @@ package com.zcloud.basic.info.command; import com.alibaba.cola.exception.BizException; +import com.zcloud.basic.info.command.convertor.ImgFilesCoConvertor; import com.zcloud.basic.info.domain.gateway.ImgFilesGateway; +import com.zcloud.basic.info.domain.model.ImgFilesE; +import com.zcloud.basic.info.persistence.dataobject.ImgFilesDO; +import com.zcloud.basic.info.persistence.repository.ImgFilesRepository; +import com.zcloud.gbscommon.utils.Smb; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Arrays; +import java.util.List; + /** * web-app @@ -17,20 +25,29 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class ImgFilesRemoveExe { private final ImgFilesGateway imgFilesGateway; + private final ImgFilesRepository imgFilesRepository; + private final ImgFilesCoConvertor imgFilesCoConvertor; @Transactional(rollbackFor = Exception.class) public boolean execute(String filePath) { - -// if (!res) { -// throw new BizException("删除失败"); -// } + ImgFilesE imgFilesE = new ImgFilesE(); + try { + imgFilesE.deleteFile(filePath); + } catch (Exception e) { + throw new BizException("删除失败"); + } return true; } @Transactional(rollbackFor = Exception.class) public boolean execute(Long[] ids) { - boolean res = imgFilesGateway.deletedImgFilesByIds(ids); - if (!res) { + List imgFilesDOList = imgFilesRepository.listByIds(Arrays.asList(ids)); + List imgFilesEList = imgFilesCoConvertor.converDOsToEs(imgFilesDOList); + ImgFilesE imgFilesE = new ImgFilesE(); + try { + imgFilesE.deleteFileList(imgFilesEList); + imgFilesRepository.deleteList(ids); + } catch (Exception e) { throw new BizException("删除失败"); } return true; diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/convertor/ImgFilesCoConvertor.java b/web-app/src/main/java/com/zcloud/basic/info/command/convertor/ImgFilesCoConvertor.java index d98e893..77d7d1c 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/convertor/ImgFilesCoConvertor.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/convertor/ImgFilesCoConvertor.java @@ -22,6 +22,7 @@ public interface ImgFilesCoConvertor { */ List converDOsToCOs(List imgFilesDOs); List converEsToDOs(List imgFilesEs); + List converDOsToEs(List imgFilesDOs); } diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ImgFilesCO.java b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ImgFilesCO.java index 9c58fcd..28b44e9 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ImgFilesCO.java +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ImgFilesCO.java @@ -37,6 +37,15 @@ public class ImgFilesCO extends ClientObject { //企业id @ApiModelProperty(value = "企业id") private Long corpinfoId; + + + @ApiModelProperty(value = "文件列表") + private List fileList; + + + + @ApiModelProperty(value = "md5") + private String md5; //乐观锁 @ApiModelProperty(value = "乐观锁") private Integer version; @@ -73,8 +82,6 @@ public class ImgFilesCO extends ClientObject { //环境 @ApiModelProperty(value = "环境") private String env; - @ApiModelProperty - private List fileList; } diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/ImgFilesE.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/ImgFilesE.java index 4b987f8..2011227 100644 --- a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/ImgFilesE.java +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/ImgFilesE.java @@ -1,10 +1,8 @@ package com.zcloud.basic.info.domain.model; import com.jjb.saas.framework.domain.model.BaseE; -import com.zcloud.gbscommon.utils.DateUtil; -import com.zcloud.gbscommon.utils.FileUpload; +import com.zcloud.gbscommon.utils.*; //import com.zcloud.gbscommon.utils.Smb; -import com.zcloud.gbscommon.utils.Tools; import lombok.Data; import org.apache.commons.beanutils.BeanUtils; import org.springframework.util.ObjectUtils; @@ -41,6 +39,8 @@ public class ImgFilesE extends BaseE { private String path; private MultipartFile[] files; + + private String md5; //乐观锁 private Integer version; //创建人 @@ -66,15 +66,11 @@ public class ImgFilesE extends BaseE { //环境 private String env; - public String initAdd(Long tenantId, ImgFilesE baseImgFilesE) throws InvocationTargetException, IllegalAccessException { + public String initAdd(Long tenantId, ImgFilesE baseImgFilesE) { MultipartFile[] files = baseImgFilesE.getFiles(); - List imgFilesList = new ArrayList(); - String foreignKey = ObjectUtils.isEmpty(baseImgFilesE.getForeignKey()) ? Tools.get32UUID() : baseImgFilesE.getForeignKey(); Long corpinfoId = ObjectUtils.isEmpty(baseImgFilesE.getCorpinfoId()) ? tenantId : baseImgFilesE.getCorpinfoId(); - String filePath = corpinfoId.toString() + "/" + DateUtil.getMonth() + "/" + baseImgFilesE.getPath(); - ImgFilesE imgFile = new ImgFilesE(); - BeanUtils.copyProperties(baseImgFilesE, imgFile); + String filePath = corpinfoId.toString() + "/" + DateUtil.getMonth() + "/" + baseImgFilesE.getPath()+ "/"; // 文件上传并获取上传路径 String resultFilePath = FileUpload.fileUp(files[0], filePath, Tools.get32UUID()); return filePath + resultFilePath; @@ -89,19 +85,30 @@ public class ImgFilesE extends BaseE { for (MultipartFile file : files) { ImgFilesE imgFile = new ImgFilesE(); - BeanUtils.copyProperties(baseImgFilesE, imgFile); + BeanUtils.copyProperties(imgFile, baseImgFilesE); // 文件上传并获取上传路径 -// Smb.saveFile(file, filePath); + String resultFilePath = Smb.saveFile(file, filePath); imgFile.setImgFilesId(Tools.get32UUID()); -// imgFile.setFilePath(filePath+); + imgFile.setFilePath(resultFilePath); imgFile.setType(baseImgFilesE.getType()); imgFile.setForeignKey(foreignKey); imgFile.setFileName(file.getOriginalFilename()); imgFile.setCorpinfoId(corpinfoId); +// imgFile.setMd5(FileUtil.getMD5(file)); imgFilesList.add(imgFile); } baseImgFilesE.setForeignKey(foreignKey); return imgFilesList; } + + + public void deleteFile(String filePath) throws Exception { + Smb.deleteFile(filePath); + } + public void deleteFileList(List imgFilesEList) throws Exception { + for (ImgFilesE imgFilesE: imgFilesEList) { + Smb.deleteFile(imgFilesE.getFilePath()); + } + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/ImgFilesGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/ImgFilesGatewayImpl.java index 0400f59..3000ea0 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/ImgFilesGatewayImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/ImgFilesGatewayImpl.java @@ -44,6 +44,7 @@ public class ImgFilesGatewayImpl implements ImgFilesGateway { @Override public Boolean deletedImgFilesByIds(Long[] ids) { + return imgFilesRepository.removeByIds(Arrays.asList(ids)); } } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/ImgFilesDO.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/ImgFilesDO.java index f46f3e6..9df438c 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/ImgFilesDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/ImgFilesDO.java @@ -8,35 +8,39 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; /** -* web-infrastructure -* @Author zhangyue -* @Date 2025-10-30 16:10:06 -*/ + * web-infrastructure + * + * @Author zhangyue + * @Date 2025-10-30 16:10:06 + */ @Data @TableName("img_files") @NoArgsConstructor @EqualsAndHashCode(callSuper = true) public class ImgFilesDO extends BaseDO { - //业务主键id + //业务主键id @ApiModelProperty(value = "业务主键id") - private String imgFilesId; - //路径 + private String imgFilesId; + //路径 @ApiModelProperty(value = "路径") - private String filePath; - //类型,参考 com.zcloud.imgfiles.enums.filetype + private String filePath; + //类型,参考 com.zcloud.imgfiles.enums.filetype @ApiModelProperty(value = "类型,参考 com.zcloud.imgfiles.enums.filetype") - private Integer type; - //外键 + private Integer type; + //外键 @ApiModelProperty(value = "外键") - private String foreignKey; - //附件名称 + private String foreignKey; + //附件名称 @ApiModelProperty(value = "附件名称") - private String fileName; - //企业id + private String fileName; + //企业id @ApiModelProperty(value = "企业id") - private Long corpinfoId; + private Long corpinfoId; + //企业id + @ApiModelProperty(value = "md5") + private String md5; - public ImgFilesDO(String imgFilesId) { + public ImgFilesDO(String imgFilesId) { this.imgFilesId = imgFilesId; } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/ImgFilesRepository.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/ImgFilesRepository.java index 048de29..6957e4b 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/ImgFilesRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/ImgFilesRepository.java @@ -18,5 +18,8 @@ public interface ImgFilesRepository extends BaseRepository { List listAll(Map parmas); + + + void deleteList(Long[] ids); } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/ImgFilesRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/ImgFilesRepositoryImpl.java index 8b18dc0..8d6d00b 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/ImgFilesRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/ImgFilesRepositoryImpl.java @@ -3,6 +3,7 @@ package com.zcloud.basic.info.persistence.repository.impl; import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.PageResponse; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; @@ -46,5 +47,14 @@ public class ImgFilesRepositoryImpl extends BaseRepositoryImpl updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("id", ids); + updateWrapper.eq("delete_enum" ,"FALSE"); + updateWrapper.set("delete_enum", "TRUE"); + imgFilesMapper.update(null, updateWrapper); + } }