diff --git a/epdc-cloud-user/pom.xml b/epdc-cloud-user/pom.xml index 71c7ee2..7f1ca70 100644 --- a/epdc-cloud-user/pom.xml +++ b/epdc-cloud-user/pom.xml @@ -94,6 +94,11 @@ 1.0.0 compile + + com.esua.epdc.yushan + epdc-cloud-custom-client + 1.0.0 + diff --git a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/entity/UserEntity.java b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/entity/UserEntity.java index d0b62f0..6f53444 100644 --- a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/entity/UserEntity.java +++ b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/entity/UserEntity.java @@ -274,4 +274,9 @@ public class UserEntity extends DeptScope { * 完善居民信息状态标识 */ private String status; + + /** + * 社区管理第三方ID + */ + private Integer manageId; } diff --git a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java index ebecc40..eea5c3d 100644 --- a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java +++ b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java @@ -3,6 +3,8 @@ package com.elink.esua.epdc.feign; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; +import com.elink.esua.epdc.dto.SysDeptInfoDTO; +import com.elink.esua.epdc.dto.result.SysDeptInfoResultDTO; import com.elink.esua.epdc.feign.fallback.AdminFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; @@ -53,4 +55,16 @@ public interface AdminFeignClient { */ @GetMapping("sys/optimize/deptlevel/listParentId/{deptId}") Result> listParentIdByDeptId(@PathVariable("deptId") Long deptId, String... typeKeys); + + /** + * 根据部门ID获取部门信息 + * + * @param deptId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author wgf + * @date 2022-12-09 + */ + @GetMapping("/sys/dept/getSysDeptInfoByDeptId/{deptId}") + Result getSysDeptInfoByDeptId(@PathVariable("deptId") String deptId); + } diff --git a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java index 901c52f..032b592 100644 --- a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java +++ b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java @@ -4,6 +4,8 @@ import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; +import com.elink.esua.epdc.dto.SysDeptInfoDTO; +import com.elink.esua.epdc.dto.result.SysDeptInfoResultDTO; import com.elink.esua.epdc.feign.AdminFeignClient; import org.springframework.stereotype.Component; @@ -31,4 +33,11 @@ public class AdminFeignClientFallback implements AdminFeignClient { public Result> listParentIdByDeptId(Long deptId, String... typeKeys) { return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "listParentIdByDeptId", typeKeys); } + + @Override + public Result getSysDeptInfoByDeptId(String deptId) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getSysDeptInfoByDeptId", deptId); + } + + } diff --git a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java index 6fe56e9..d9d5d53 100644 --- a/epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java +++ b/epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java @@ -30,10 +30,7 @@ import com.elink.esua.epdc.commons.dynamic.datasource.annotation.DataSource; import com.elink.esua.epdc.commons.mybatis.enums.EpdcDelFlagEnum; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.mybatis.utils.DeptEntityUtils; -import com.elink.esua.epdc.commons.tools.constant.FieldConstant; -import com.elink.esua.epdc.commons.tools.constant.NumConstant; -import com.elink.esua.epdc.commons.tools.constant.RocketMqConstant; -import com.elink.esua.epdc.commons.tools.constant.StrConstant; +import com.elink.esua.epdc.commons.tools.constant.*; import com.elink.esua.epdc.commons.tools.enums.UserAuthTypeEnum; import com.elink.esua.epdc.commons.tools.enums.UserSexEnum; import com.elink.esua.epdc.commons.tools.enums.UserTagEnum; @@ -57,6 +54,12 @@ import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; import com.elink.esua.epdc.dto.epdc.UserCarInfoDTO; import com.elink.esua.epdc.dto.epdc.form.*; import com.elink.esua.epdc.dto.epdc.result.*; +import com.elink.esua.epdc.dto.management.form.GridDelFormDTO; +import com.elink.esua.epdc.dto.management.form.UserAddFormDTO; +import com.elink.esua.epdc.dto.management.form.UserDelFormDTO; +import com.elink.esua.epdc.dto.management.form.UserUpdFormDTO; +import com.elink.esua.epdc.dto.management.result.GlobalResultDTO; +import com.elink.esua.epdc.dto.result.SysDeptInfoResultDTO; import com.elink.esua.epdc.entity.*; import com.elink.esua.epdc.enums.AppUserAuditStateEnum; import com.elink.esua.epdc.enums.AppUserStatesEnum; @@ -64,6 +67,7 @@ import com.elink.esua.epdc.enums.PartyMemberRegFlagEnum; import com.elink.esua.epdc.excel.UserExcel; import com.elink.esua.epdc.exception.UserModuleErrorCode; import com.elink.esua.epdc.feign.AdminFeignClient; +import com.elink.esua.epdc.feign.CommunityManageFeignClient; import com.elink.esua.epdc.feign.PointsFeignClient; import com.elink.esua.epdc.rocketmq.dto.OrganizationModifyDTO; import com.elink.esua.epdc.rocketmq.dto.UserModifyDTO; @@ -71,7 +75,9 @@ import com.elink.esua.epdc.rocketmq.producer.UserModifyProducer; import com.elink.esua.epdc.service.*; import com.elink.esua.epdc.util.AppUserUtils; import com.google.common.collect.Lists; +import com.elink.esua.epdc.commons.tools.utils.Result; import lombok.extern.slf4j.Slf4j; +import net.bytebuddy.implementation.bytecode.constant.FieldConstant; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -126,6 +132,9 @@ public class UserServiceImpl extends BaseServiceImpl implem @Autowired private PointsFeignClient pointsFeignClient; + @Autowired + private CommunityManageFeignClient communityManageFeignClient; + @Override @DataSource(value = DataSourceNames.FIRST) public PageData page(Map params) { @@ -197,6 +206,109 @@ public class UserServiceImpl extends BaseServiceImpl implem UserEntity entity = ConvertUtils.sourceToTarget(dto, UserEntity.class); insert(entity); + + // 社区管理推送 + sendInfo(dto, entity, 0); + } + + /** + * 推送处理 + * + * @param dto + * @param entity + * @param type 0:新增 1:编辑 2:删除 + * @return void + * @author wgf + * @date 2022/12/9 04:56 + */ + private void sendInfo(UserDTO dto, UserEntity entity, int type) { + try { + // 获取网格的ManageId + Result resultDept = adminFeignClient.getSysDeptInfoByDeptId(entity.getDeptId().toString()); + SysDeptInfoResultDTO sysDeptInfoResultDTO = resultDept.getData(); + if (type == NumConstant.ZERO) { + if(sysDeptInfoResultDTO.getGridManageId() != null && sysDeptInfoResultDTO.getCommunityManageId() != null){ + UserAddFormDTO userAddFormDTO = new UserAddFormDTO(); + userAddFormDTO.setGridId(sysDeptInfoResultDTO.getGridManageId()); + userAddFormDTO.setCircleId(sysDeptInfoResultDTO.getCommunityManageId()); + userAddFormDTO.setGridNum(sysDeptInfoResultDTO.getGridName()); + userAddFormDTO.setUserRealName(entity.getRealName()); + userAddFormDTO.setUserAddress(entity.getAddress()); + userAddFormDTO.setUserAddressDetails(entity.getAddress()); + userAddFormDTO.setCreateTime(entity.getCreatedTime().toString()); + userAddFormDTO.setPhone(entity.getTelephone()); + userAddFormDTO.setOldGridUserId(entity.getId()); + userAddFormDTO.setRemark(entity.getRemark()); + userAddFormDTO.setIdentityCard(entity.getIdentityNo()); + + log.info("++++++++++++++++++++++++++++++++++++++++++++userAddFormDTO:" + userAddFormDTO); + Result result = communityManageFeignClient.addUser(userAddFormDTO); + log.info("++++++++++++++++++++++++++++++++++++++++++++userAdd result:" + result); + communityManageHandle(result, dto, entity); + } + } else if (type == NumConstant.ONE) { + UserEntity userEntity = baseDao.selectById(dto.getId()); + if (userEntity != null && userEntity.getManageId() != null) { + UserUpdFormDTO userUpdFormDTO = new UserUpdFormDTO(); + userUpdFormDTO.setGridNum(sysDeptInfoResultDTO.getGridName()); + userUpdFormDTO.setUserRealName(entity.getRealName()); + userUpdFormDTO.setUserAddress(entity.getAddress()); + userUpdFormDTO.setUserAddressDetails(entity.getAddress()); + userUpdFormDTO.setRemark(entity.getRemark()); + userUpdFormDTO.setIdentityCard(entity.getIdentityNo()); + userUpdFormDTO.setBirthday(entity.getBirthday() == null ? "" : entity.getBirthday().toString()); + userUpdFormDTO.setGender(entity.getSex() == null ? null : Integer.parseInt(entity.getSex())); + userUpdFormDTO.setUserGridId(userEntity.getManageId()); + + log.info("++++++++++++++++++++++++++++++++++++++++++++userUpdFormDTO:" + userUpdFormDTO); + Result result = communityManageFeignClient.updUser(userUpdFormDTO); + log.info("++++++++++++++++++++++++++++++++++++++++++++userUpd result:" + result); + communityManageHandle(result, dto, entity); + } + } else if (type == NumConstant.TWO) { + UserEntity userEntity = baseDao.selectById(dto.getId()); + if (userEntity != null && userEntity.getManageId() != null) { + UserDelFormDTO userDelFormDTO = new UserDelFormDTO(); + userDelFormDTO.setUserGridId(userEntity.getManageId()); + log.info("++++++++++++++++++++++++++++++++++++++++++++userDelFormDTO:" + userDelFormDTO); + Result result = communityManageFeignClient.delUser(userDelFormDTO); + log.info("++++++++++++++++++++++++++++++++++++++++++++userDel result:" + result); +// communityManageHandle(result, dto, entity); + } + } + } catch (Exception e) { + log.error("推送社区管理接口失败:type>>" + type + "||id>>" + entity.getId()); + } + } + + /** + * 设置ManageId + * @param result + * @param dto + * @param entity + */ + private void communityManageHandle(Result result, UserDTO dto, UserEntity entity) { + if (result.success()) { + Object resultObject = result.getData().getResult(); + Integer mId = null; + // 只有新增操作result才会有值,编辑删除是null,直接通过这个来判断是不是新增操作 + if (resultObject != null) { + mId = Integer.valueOf(resultObject.toString()); + } + UserEntity userEntity = baseDao.selectById(entity.getId()); + // 表里没有直接插入 + if (userEntity == null) { + // 插入信息表 + UserEntity addUserEntity = ConvertUtils.sourceToTarget(dto, UserEntity.class); + addUserEntity.setManageId(mId); + baseDao.insert(addUserEntity); + } else { + // 更新信息表 + userEntity.setManageId(mId); + baseDao.updateById(userEntity); + } + } + } @Override @@ -205,12 +317,22 @@ public class UserServiceImpl extends BaseServiceImpl implem UserEntity entity = ConvertUtils.sourceToTarget(dto, UserEntity.class); updateById(entity); + + // 社区管理推送 + sendInfo(dto, entity, 1); } @Override @Transactional(rollbackFor = Exception.class) public void delete(String[] ids) { baseDao.deleteBatchIds(Arrays.asList(ids)); + + UserEntity entity = new UserEntity(); + UserDTO dto = new UserDTO(); + entity.setId(ids[0]); + dto.setId(ids[0]); + // 社区管理推送 + sendInfo(dto, entity, 2); } @Override