diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aop/NoRepeatSubmitAop.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aop/NoRepeatSubmitAop.java index ff41a7747c..2c391d6b81 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aop/NoRepeatSubmitAop.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aop/NoRepeatSubmitAop.java @@ -35,41 +35,35 @@ public class NoRepeatSubmitAop { private DistributedLock distributedLock; @Around("@annotation(noRepeatSubmit)") - public Object around(ProceedingJoinPoint pjp, NoRepeatSubmit noRepeatSubmit) { + public Object around(ProceedingJoinPoint pjp, NoRepeatSubmit noRepeatSubmit) throws Throwable { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + assert attributes != null; + HttpServletRequest request = attributes.getRequest(); + String internalToken = request.getHeader(AUTHORIZATION_TOKEN_HEADER_KEY); + String key = getKey(request.getRequestURI(), internalToken); + // 如果缓存中有这个url视为重复提交 + Object result = null; + RLock lock = null; try { - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - assert attributes != null; - HttpServletRequest request = attributes.getRequest(); - String internalToken = request.getHeader(AUTHORIZATION_TOKEN_HEADER_KEY); - String key = getKey(request.getRequestURI(), internalToken); - // 如果缓存中有这个url视为重复提交 - Object result = null; - RLock lock = null; - try { - long leaseTime = noRepeatSubmit.leaseTime(); - //如果获取不到锁等待0秒直接返回 持锁时间为leaseTime - lock = distributedLock.getLock(RedisKeys.getNoRepeatSubmitKey(key), leaseTime, NumConstant.ZERO_L, TimeUnit.MILLISECONDS); - } catch (Exception e) { - log.warn("noRepeatSubmit key:{},msg:{}", key, e.getMessage()); - //"未获取到锁,重复提交了 - throw new RenException(EpmetErrorCode.REPEAT_SUBMIT.getCode()); - } - try { - //因为getLock如果获取失败抛异常 所以不做锁状态的判断 - result = pjp.proceed(); - } finally { - distributedLock.unLock(lock); - } + long leaseTime = noRepeatSubmit.leaseTime(); + //如果获取不到锁等待0秒直接返回 持锁时间为leaseTime + lock = distributedLock.getLock(RedisKeys.getNoRepeatSubmitKey(key), leaseTime, NumConstant.ZERO_L, TimeUnit.MILLISECONDS); + } catch (Exception e) { + log.warn("noRepeatSubmit key:{},msg:{}", key, e.getMessage()); + //"未获取到锁,重复提交了 + throw new RenException(EpmetErrorCode.REPEAT_SUBMIT.getCode()); + } + try { + //因为getLock如果获取失败抛异常 所以不做锁状态的判断 + result = pjp.proceed(); + } finally { + distributedLock.unLock(lock); + } - return result; - } catch (RenException e) { - throw e; - } catch (Throwable e) { - log.error("验证重复提交时出现未知异常!"); - throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); - } + return result; + } private String getKey(String keyExpress, String token) { diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/UserMessageTypeConstant.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/UserMessageTypeConstant.java new file mode 100644 index 0000000000..1dcdce9821 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/UserMessageTypeConstant.java @@ -0,0 +1,24 @@ +package com.epmet.constant; + + +/** + * @author yinzuomei + * @dscription + * @date 2021/08/27 14:22 + */ +public interface UserMessageTypeConstant { + + //上传下达 + /** + * 工作端发送消息,通知接收人 + */ + String INFO="info"; + + /** + * 居民端提交热心居民申请,通知网格长 + */ + String WARMHEARTED_APPLY="warmhearted_apply"; + + + +} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/UserMessageConstans.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/UserMessageConstans.java index 7c20b668a6..6b4fa8c2ed 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/UserMessageConstans.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/UserMessageConstans.java @@ -20,6 +20,5 @@ public interface UserMessageConstans { String INFO_TITLE="您有一条新消息"; - String MESSAGE_TYPE_INFO="info"; String INFO_CONTENT_TEMP="您有一条【%s】的新消息,请您查看"; } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/InfoGroupReceiversDao.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/InfoGroupReceiversDao.java index 5ddcf73e9c..e2b275a750 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/InfoGroupReceiversDao.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/InfoGroupReceiversDao.java @@ -20,6 +20,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.entity.InfoGroupReceiversEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.Set; @@ -40,5 +41,5 @@ public interface InfoGroupReceiversDao extends BaseDao * @author yinzuomei * @date 2021/8/19 10:51 上午 */ - Set selectStaffIds(Set groupIdList); + Set selectStaffIds(@Param("groupIdList") Set groupIdList); } \ No newline at end of file diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/InfoServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/InfoServiceImpl.java index ba3712ccca..1dbb43ad80 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/InfoServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/InfoServiceImpl.java @@ -27,6 +27,7 @@ import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.UserMessageConstans; +import com.epmet.constant.UserMessageTypeConstant; import com.epmet.dao.*; import com.epmet.dto.form.*; import com.epmet.dto.result.AddReceiverGroupResultDTO; @@ -159,7 +160,7 @@ public class InfoServiceImpl extends BaseServiceImpl implem infoEntity.getContent().length() > NumConstant.FIFTY ? StringUtils.substring(infoEntity.getContent(), NumConstant.ZERO,NumConstant.FORTY_NINE) : infoEntity.getContent())); userMessageEntity.setReadFlag(UserMessageConstans.UNREAD); - userMessageEntity.setMessageType(UserMessageConstans.MESSAGE_TYPE_INFO); + userMessageEntity.setMessageType(UserMessageTypeConstant.INFO); userMessageEntity.setTargetId(infoEntity.getId()); userMessageEntity.setCreatedBy(formDTO.getUserId()); userMessageEntity.setUpdatedBy(formDTO.getUserId()); diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/InfoGroupReceiversDao.xml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/InfoGroupReceiversDao.xml index d8aefa0520..e57f5bbaf8 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/InfoGroupReceiversDao.xml +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/InfoGroupReceiversDao.xml @@ -11,9 +11,13 @@ info_group_receivers igr WHERE igr.DEL_FLAG = '0' - AND igr.info_receiver_group_id IN ( - '1','2' + + AND igr.info_receiver_group_id IN + + #{groupId} + ) + diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/MineResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/MineResultDTO.java index de4bf27a47..69e4ff630d 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/MineResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/MineResultDTO.java @@ -55,4 +55,8 @@ public class MineResultDTO implements Serializable { * 手机号 */ private String mobile; + /** + * 根组织 + */ + private String rootAgencyId; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java index 00b787aca5..ceab225169 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java @@ -1,6 +1,7 @@ package com.epmet.service.impl; 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.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; @@ -229,6 +230,15 @@ public class StaffServiceImpl implements StaffService { //用户所属机关名称 result.setMyAgencyName(customerAgencyDTO.getOrganizationName()); } + //2021.08.27 zhaoqf start + //获取根组织 + CustomerAgencyDTO agency = customerAgencyService.get(customerStaffAgency.getAgencyId()); + if (StringUtils.isNotBlank(agency.getPids())) { + result.setRootAgencyId(agency.getPids().split(StrConstant.COLON)[0]); + } else { + result.setRootAgencyId(customerStaffAgency.getAgencyId()); + } + //2021.08.27 zhaoqf end return result; }