diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/OrganizationMessageResultDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/OrganizationMessageResultDTO.java index 0d68bafe6d..08b6d88924 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/OrganizationMessageResultDTO.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/OrganizationMessageResultDTO.java @@ -61,5 +61,14 @@ public class OrganizationMessageResultDTO { * 发布人所属组织名称 */ private String publishOrgName; + + /** + * 发送结果 + */ + private String sendMsgRes; + /** + * 共发送出多少条消息 + */ + private Integer totalReceiver; } diff --git a/epmet-module/epmet-message/epmet-message-server/pom.xml b/epmet-module/epmet-message/epmet-message-server/pom.xml index fef8b6bded..daa811ed8e 100644 --- a/epmet-module/epmet-message/epmet-message-server/pom.xml +++ b/epmet-module/epmet-message/epmet-message-server/pom.xml @@ -101,11 +101,6 @@ flyway-core - - com.epmet - epmet-user-client - 2.0.0 - com.epmet epmet-third-client diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/OrganizationMessageEntity.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/OrganizationMessageEntity.java index 383720be2a..416f66793b 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/OrganizationMessageEntity.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/OrganizationMessageEntity.java @@ -65,5 +65,13 @@ public class OrganizationMessageEntity extends BaseEpmetEntity { * 发布时间 */ private Date publishTime; - + /** + * 发送结果 + * sending发送中;failed失败;success成功 + */ + private String sendMsgRes; + /** + * 共发送出多少条消息 + */ + private Integer totalReceiver; } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/OrganizationMessageServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/OrganizationMessageServiceImpl.java index cfc8daef6a..616228fc59 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/OrganizationMessageServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/OrganizationMessageServiceImpl.java @@ -1,9 +1,15 @@ package com.epmet.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.AppClientConstant; +import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.OrgTypeEnum; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; @@ -12,18 +18,26 @@ import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.EpmetRequestHolder; import com.epmet.commons.tools.utils.PidUtils; +import com.epmet.commons.tools.utils.Result; import com.epmet.dao.OrganizationMessageDao; import com.epmet.dao.OrganizationMessagePublishRangeDao; +import com.epmet.dao.UserMessageDao; import com.epmet.dto.OrganizationMessageFormDTO; import com.epmet.dto.OrganizationMessagePublishRangeDTO; +import com.epmet.dto.RegisterRelationDTO; +import com.epmet.dto.form.RegisterRelationPageFormDTO; import com.epmet.dto.result.OrganizationMessageResultDTO; import com.epmet.entity.OrganizationMessageEntity; import com.epmet.entity.OrganizationMessagePublishRangeEntity; +import com.epmet.entity.UserMessageEntity; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.service.OrganizationMessageService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,10 +50,16 @@ import java.util.List; * @author generator generator@elink-cn.com * @since v1.0.0 2023-05-04 */ +@Slf4j @Service public class OrganizationMessageServiceImpl extends BaseServiceImpl implements OrganizationMessageService { @Autowired private OrganizationMessagePublishRangeDao organizationMessagePublishRangeDao; + @Autowired + private UserMessageDao userMessageDao; + @Autowired + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + /** * 分页列表 @@ -93,6 +113,7 @@ public class OrganizationMessageServiceImpl extends BaseServiceImpl rangeList, String customerId) { + String result = "success"; + int totalMsg = NumConstant.ZERO; + try { + for (OrganizationMessagePublishRangeDTO rangeDto : rangeList) { + RegisterRelationPageFormDTO pageFormDTO=new RegisterRelationPageFormDTO(); + pageFormDTO.setCustomerId(customerId); + pageFormDTO.setFirstRegister(NumConstant.ONE_STR); + pageFormDTO.setPageNo(NumConstant.ONE); + pageFormDTO.setPageSize(NumConstant.TWO); + // pageFormDTO.setPageSize(NumConstant.ONE_THOUSAND); + if (OrgTypeEnum.GRID.getCode().equals(rangeDto.getOrgType())) { + // 查询该网格下的注册居民 + pageFormDTO.setGridId(rangeDto.getOrgId()); + } else { + // 查询该组织下的注册居民 + pageFormDTO.setAgencyIdPath(rangeDto.getOrgIdPath()); + } + List list=null; + do { + Result> regRes = epmetUserOpenFeignClient.pageQueryRegisterUser(pageFormDTO); + list = regRes.getData().getList(); + for (RegisterRelationDTO regUser : list) { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper(); + queryWrapper.eq(UserMessageEntity::getCustomerId,customerId) + .eq(UserMessageEntity::getTargetId,messageId) + .eq(UserMessageEntity::getUserId,regUser.getUserId()); + UserMessageEntity origin=userMessageDao.selectOne(queryWrapper); + if(null==origin){ + UserMessageEntity userMessageEntity = new UserMessageEntity(); + userMessageEntity.setCustomerId(customerId); + userMessageEntity.setGridId(regUser.getGridId()); + userMessageEntity.setUserId(regUser.getUserId()); + userMessageEntity.setApp(AppClientConstant.APP_RESI); + userMessageEntity.setTitle("您有一条社区消息!"); + userMessageEntity.setMessageContent(content); + userMessageEntity.setReadFlag(Constant.UNREAD); + userMessageEntity.setReferer(StrConstant.EPMETY_STR); + userMessageEntity.setMessageType("organization_message"); + userMessageEntity.setTargetId(messageId); + userMessageEntity.setCreatedBy(publishStaffId); + userMessageEntity.setUpdatedBy(publishStaffId); + userMessageDao.insert(userMessageEntity); + totalMsg += 1; + } + } + pageFormDTO.setPageNo(pageFormDTO.getPageNo() + NumConstant.ONE); + } while (CollectionUtils.isNotEmpty(list) && list.size() == pageFormDTO.getPageSize()); + } + } catch (Exception e) { + log.error(String.format("messageId:%s,发送消息异常:%s", messageId, ExceptionUtils.getErrorStackTrace(e))); + result = "failed"; + } finally { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(OrganizationMessageEntity::getId, messageId) + .set(OrganizationMessageEntity::getSendMsgRes, result) + .set(OrganizationMessageEntity::getTotalReceiver, totalMsg) + .set(OrganizationMessageEntity::getUpdatedTime,new Date()); + baseDao.update(null, updateWrapper); + } + } + + } \ No newline at end of file diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/OrganizationMessageDao.xml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/OrganizationMessageDao.xml index 742421c739..8e8bd51ad6 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/OrganizationMessageDao.xml +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/OrganizationMessageDao.xml @@ -32,6 +32,8 @@ om.PUBLISH_ORG_ID as publishStaffName, om.PUBLISH_ORG_ID_PATH as publishOrgIdPath, OM.PUBLISH_ORG_NAME as publishOrgName, + om.SEND_MSG_RES as sendMsgRes, + om.TOTAL_RECEIVER as totalReceiver, GROUP_CONCAT(r.ORG_NAME) as publishRangeName from organization_message om left join organization_message_publish_range r diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/RegisterRelationPageFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/RegisterRelationPageFormDTO.java new file mode 100644 index 0000000000..bd1e28d424 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/RegisterRelationPageFormDTO.java @@ -0,0 +1,33 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2023/5/5 9:47 + */ +@Data +public class RegisterRelationPageFormDTO extends PageFormDTO { + /** + * 客户Id (customer.id) + */ + private String customerId; + + /** + * agencyId的所有上级,包含自己 + */ + private String agencyIdPath; + + /** + * 网格Id (customer_grid.id) + */ + private String gridId; + + /** + * 首次注册用户 0表示不参与计数 1表示参与计数 + */ + private String firstRegister; +} + diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index c80eab326e..ddc7a635e7 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -1033,4 +1033,12 @@ public interface EpmetUserOpenFeignClient { */ @PostMapping("/epmetuser/icNat/clearNatRecords") Result clearNatRecords(@RequestBody Map map); + + /** + * 分页查询注册居民 + * @param pageFormDTO + * @return + */ + @PostMapping("/epmetuser/registerrelation/pageQueryRegisterUser") + Result> pageQueryRegisterUser(@RequestBody RegisterRelationPageFormDTO pageFormDTO); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index 4d3d56b76c..3bba7ced02 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -756,4 +756,15 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result clearNatRecords(Map map) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "clearNatRecords", map); } + + /** + * 分页查询注册居民 + * + * @param pageFormDTO + * @return + */ + @Override + public Result> pageQueryRegisterUser(RegisterRelationPageFormDTO pageFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "pageQueryRegisterUser", pageFormDTO); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/RegisterRelationController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/RegisterRelationController.java index d801a5e6e9..77dd78bf9d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/RegisterRelationController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/RegisterRelationController.java @@ -28,6 +28,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.RegisterRelationDTO; import com.epmet.dto.form.AllResiByGridFormDTO; import com.epmet.dto.form.EnterGridFormDTO; +import com.epmet.dto.form.RegisterRelationPageFormDTO; import com.epmet.dto.result.UserInfoOnEnterGridResultDTO; import com.epmet.excel.RegisterRelationExcel; import com.epmet.service.RegisterRelationService; @@ -120,4 +121,21 @@ public class RegisterRelationController { ValidatorUtils.validateEntity(formDTO, AllResiByGridFormDTO.AllResiByGridForm.class); return new Result().ok(registerRelationService.getAllResiByGrid(formDTO)); } + + /** + * 分页查询注册居民信息 + * @param pageFormDTO + * @return + */ + @PostMapping("pageQueryRegisterUser") + public Result> pageQueryRegisterUser(@RequestBody RegisterRelationPageFormDTO pageFormDTO){ + return new Result>().ok(registerRelationService.pageQueryRegisterUser(pageFormDTO.getPageNo(), + pageFormDTO.getPageSize(), + pageFormDTO.getCustomerId(), + pageFormDTO.getGridId(), + pageFormDTO.getAgencyIdPath(), + pageFormDTO.getFirstRegister())); + } + + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RegisterRelationDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RegisterRelationDao.java index f5f4cdfd35..83ac08f940 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RegisterRelationDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RegisterRelationDao.java @@ -71,4 +71,9 @@ public interface RegisterRelationDao extends BaseDao { * @date 2022/10/8 10:48 */ Integer getAllResiByGrid(@Param("gridId")String gridId); + + List pageQueryRegisterUser(@Param("customerId") String customerId, + @Param("gridId") String gridId, + @Param("agencyIdPath") String agencyIdPath, + @Param("firstRegister") String firstRegister); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/RegisterRelationService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/RegisterRelationService.java index 7179b78530..ed39bd6441 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/RegisterRelationService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/RegisterRelationService.java @@ -123,4 +123,16 @@ public interface RegisterRelationService extends BaseService pageQueryRegisterUser(Integer pageNo, Integer pageSize, String customerId, String gridId, String agencyIdPath, String firstRegister); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java index 11cca8346e..6091ab7cdb 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java @@ -48,6 +48,8 @@ import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.service.GridVisitedService; import com.epmet.service.RegisterRelationService; import com.epmet.util.ModuleConstant; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -389,4 +391,22 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl pageQueryRegisterUser(Integer pageNo, Integer pageSize, String customerId, String gridId, String agencyIdPath, String firstRegister) { + PageHelper.startPage(pageNo,pageSize); + List resList=baseDao.pageQueryRegisterUser(customerId,gridId,agencyIdPath,firstRegister); + PageInfo pageInfo = new PageInfo<>(resList); + return new PageData<>(resList, pageInfo.getTotal()); + } } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml index c43cea28cc..f2e0506de3 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml @@ -97,5 +97,20 @@ AND grid_id = #{gridId} - +