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