Browse Source

徽章修改

master
zxc 5 years ago
parent
commit
473342fd54
  1. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/constant/BadgeConstant.java
  2. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserBadgeListResultDTO.java
  3. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserOperListResultDTO.java
  4. 3
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  5. 5
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
  6. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/BadgeDao.java
  7. 14
      epmet-user/epmet-user-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java
  8. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java
  9. 93
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java
  10. 12
      epmet-user/epmet-user-server/src/main/java/com/epmet/util/ModuleConstant.java
  11. 11
      epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml
  12. 4
      epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml

2
epmet-user/epmet-user-client/src/main/java/com/epmet/constant/BadgeConstant.java

@ -36,7 +36,7 @@ public interface BadgeConstant {
String GET_BADGE_NAME_FAILURE = "获取徽章名称失败......";
String MESSAGE_CONTENT = "您好,您的%s因认证失败未成功点亮,请查看";
String MESSAGE_CONTENT = "%s申请认证%s,请审核";
String READ_FLAG = "unread";

2
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserBadgeListResultDTO.java

@ -39,6 +39,8 @@ public class UserBadgeListResultDTO implements Serializable {
private String fixationBadgeType;
@JsonIgnore
private Boolean status;
@JsonIgnore
private Integer sort;
public UserBadgeListResultDTO() {
this.badgeId = "";

2
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserOperListResultDTO.java

@ -55,6 +55,8 @@ public class UserOperListResultDTO implements Serializable {
private String isOpened;
@JsonIgnore
private String auditStatus;
@JsonIgnore
private Integer sort;
public UserOperListResultDTO() {
this.badgeId = "";

3
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java

@ -449,4 +449,7 @@ public interface EpmetUserOpenFeignClient {
**/
@PostMapping(value = "/epmetuser/more/badge/initbadge")
Result<Boolean> initBadge(@RequestParam String userId);
@PostMapping(value = "epmetuser/staffrole/specificrolesstaffs", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<List<String>> specificRolesStaffs(RolesUsersListFormDTO rolesUsersListFormDTO);
}

5
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java

@ -316,4 +316,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
public Result<Boolean> initBadge(String partyUserId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "initBadge", partyUserId);
}
@Override
public Result<List<String>> specificRolesStaffs(RolesUsersListFormDTO rolesUsersListFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "specificRolesStaffs", rolesUsersListFormDTO);
}
}

9
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/BadgeDao.java

@ -178,6 +178,15 @@ public interface BadgeDao extends BaseDao<BadgeEntity> {
*/
String getPartyBadgeId(@Param("customerId") String customerId);
/**
* @Description 查询徽章名称
* @Param customerId
* @Param badgeId
* @author zxc
* @date 2020/11/19 上午9:49
*/
String selectBadgeName(@Param("customerId") String customerId,@Param("badgeId") String badgeId);
/**
* desc: 获取下一次排序号
*

14
epmet-user/epmet-user-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java

@ -3,10 +3,14 @@ package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.form.CommonGridIdFormDTO;
import com.epmet.dto.form.CustomerGridFormDTO;
import com.epmet.feign.fallback.GovOrgFeignClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* @Description 居民端陌生人导览 调用gov-org服务
@ -25,4 +29,14 @@ public interface GovOrgFeignClient {
@PostMapping("/gov/org/customergrid/getcustomergridbygridid")
Result<CustomerGridDTO> getCustomerGridByGridId(CustomerGridFormDTO formDTO);
/**
* @Description 查询一个网格下的所有工作人员[copy wangc]
* @param gridIdFormDTO
* @return Result<List<String>>
* @author zxc
* @date 2020.04.29 22:59
**/
@PostMapping("/gov/org/customerstaffgrid/getgridstaffs")
Result<List<String>> getGridStaffs(@RequestBody CommonGridIdFormDTO gridIdFormDTO);
}

8
epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java

@ -4,10 +4,13 @@ import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.form.CommonGridIdFormDTO;
import com.epmet.dto.form.CustomerGridFormDTO;
import com.epmet.feign.GovOrgFeignClient;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Description 居民端-陌生人导览 调用gov-org服务
* @Author sun
@ -20,4 +23,9 @@ public class GovOrgFeignClientFallBack implements GovOrgFeignClient {
public Result<CustomerGridDTO> getCustomerGridByGridId(CustomerGridFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getcustomergridbygridid", formDTO);
}
@Override
public Result<List<String>> getGridStaffs(CommonGridIdFormDTO gridIdFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridStaffs", gridIdFormDTO);
}
}

93
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java

@ -10,6 +10,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.PhoneValidatorUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constant.BadgeConstant;
import com.epmet.constant.ReadFlagConstant;
import com.epmet.constant.SmsTemplateConstant;
import com.epmet.dao.*;
import com.epmet.dto.ResiUserBadgeDTO;
@ -17,9 +18,12 @@ import com.epmet.dto.UserBadgeCertificateRecordDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgFeignClient;
import com.epmet.redis.UserBadgeRedis;
import com.epmet.service.UserBadgeService;
import com.epmet.service.UserBaseInfoService;
import com.epmet.util.ModuleConstant;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -56,6 +60,10 @@ public class UserBadgeServiceImpl implements UserBadgeService {
@Autowired
private BadgeDao badgeDao;
@Autowired
private GovOrgFeignClient govOrgFeignClient;
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired
private BadgeCertificationConfigDao badgeCertificationConfigDao;
/**
@ -74,7 +82,7 @@ public class UserBadgeServiceImpl implements UserBadgeService {
List<UserBadgeListResultDTO> redisUserBadgeList = JSON.parseArray(userBadge.toString(), UserBadgeListResultDTO.class);
List<UserBadgeListResultDTO> userBadgeListResultDTOS = userBadgeDao.selectBadgeList(userBadgeListFormDTO);
if (CollectionUtils.isEmpty(userBadgeListResultDTOS)){
return redisUserBadgeList;
return redisUserBadgeList.stream().sorted(Comparator.comparing(UserBadgeListResultDTO::getSort)).collect(Collectors.toList());
}
redisUserBadgeList.forEach(u -> {
userBadgeListResultDTOS.forEach(badge -> {
@ -84,11 +92,13 @@ public class UserBadgeServiceImpl implements UserBadgeService {
}
});
});
List<UserBadgeListResultDTO> noOpenBadge = new ArrayList<>();
redisUserBadgeList.forEach(u -> {
if (!u.getStatus()){
userBadgeListResultDTOS.add(u);
noOpenBadge.add(u);
}
});
userBadgeListResultDTOS.addAll(noOpenBadge.stream().sorted(Comparator.comparing(UserBadgeListResultDTO::getSort)).collect(Collectors.toList()));
return userBadgeListResultDTOS;
}
@ -121,7 +131,14 @@ public class UserBadgeServiceImpl implements UserBadgeService {
}
});
});
return userOperListResultDTOS.stream().sorted(Comparator.comparing(UserOperListResultDTO::getBadgeName)).collect(Collectors.toList());
Map<String, List<UserOperListResultDTO>> collect = userOperListResultDTOS.stream().collect(Collectors.groupingBy(UserOperListResultDTO::getIsLighted));
List<UserOperListResultDTO> result = collect.get(BadgeConstant.YES);
List<UserOperListResultDTO> noLight = collect.get(BadgeConstant.NO);
if (CollectionUtils.isEmpty(noLight)){
return result;
}
result.addAll(noLight.stream().sorted(Comparator.comparing(UserOperListResultDTO::getSort)).collect(Collectors.toList()));
return result;
}
/**
@ -241,8 +258,9 @@ public class UserBadgeServiceImpl implements UserBadgeService {
log.info(JSON.toJSONString(form));
userBadgeDao.insertUserBadgeCertificateRecord(form);
//TODO 站内信发送 您好,您的xxx徽章因认证失败未成功点亮,请查看
this.sendMessageByUser(form);
//TODO 站内信发送
String badgeName = badgeDao.selectBadgeName(form.getCustomerId(), form.getBadgeId());
sendMessage(BadgeConstant.AUTH_TITLE,String.format(BadgeConstant.READ_FLAG,userBaseInfoResultDTOS.get(NumConstant.ZERO).getDistrict().concat(userBaseInfoResultDTOS.get(NumConstant.ZERO).getRealName()),badgeName),form.getGridId(),form.getUserId(),form.getCustomerId());
return new Result();
}
@ -407,4 +425,69 @@ public class UserBadgeServiceImpl implements UserBadgeService {
return badges.stream().collect(Collectors.groupingBy(UserBadgeInfoResultDTO::getUserId));
}
/**
* @Description 发送站内信
* @Param title 标题
* @Param msg 信息
* @Param gridId 网格ID
* @Param userId 用户ID
* @Param customerId 客户ID
* @author zxc
* @date 2020/11/19 上午9:16
*/
public void sendMessage(String title,String msg,String gridId,String userId,String customerId){
//1.查询加入当前网格下的人员 customer_staff_grid
CommonGridIdFormDTO commonGridIdFormDTO = new CommonGridIdFormDTO();
commonGridIdFormDTO.setGridId(gridId);
commonGridIdFormDTO.setUserId(userId);
Result<List<String>> gridstaffs =
govOrgFeignClient.getGridStaffs(commonGridIdFormDTO);
//2.查询这些人是否有管理员身份且未被禁用 staff_role customer_staff
if(gridstaffs.success() && null != gridstaffs.getData() && gridstaffs.getData().size() > 0){
RolesUsersListFormDTO rolesUsersListFormDTO = new RolesUsersListFormDTO();
rolesUsersListFormDTO.setCustomerId(customerId);
List<String> roleKeys = new ArrayList<String>();
roleKeys.add(ModuleConstant.STAFF_ROLE_GRID_MANAGER);
rolesUsersListFormDTO.setRoleKeys(roleKeys);
rolesUsersListFormDTO.setUserIds(gridstaffs.getData());
Result<List<String>> staffRoles =
epmetUserOpenFeignClient.specificRolesStaffs(rolesUsersListFormDTO);
//3.发送消息
if(staffRoles.success() && null != staffRoles.getData() && staffRoles.getData().size() > 0){
List<UserMessageFormDTO> msgList = new ArrayList<>();
List<WxSubscribeMessageFormDTO> subscribeList = new ArrayList<>();
for(String to : staffRoles.getData()){
//站内信
UserMessageFormDTO msgObj = new UserMessageFormDTO();
msgObj.setApp(ModuleConstant.APP_GOV);
msgObj.setCustomerId(customerId);
msgObj.setGridId(gridId);
msgObj.setMessageContent(msg);
msgObj.setReadFlag(ReadFlagConstant.UN_READ);
msgObj.setTitle(title);
msgObj.setUserId(to);
msgList.add(msgObj);
//微信订阅
WxSubscribeMessageFormDTO subscribeDTO = new WxSubscribeMessageFormDTO();
subscribeDTO.setClientType(ModuleConstant.APP_GOV);
subscribeDTO.setGridId(gridId);
subscribeDTO.setCustomerId(customerId);
subscribeDTO.setUserId(to);
subscribeDTO.setBehaviorType(ModuleConstant.BADGE_AUDIT_MESSAGE);
subscribeDTO.setMessageContent(msg);
subscribeDTO.setMessageTime(new Date());
subscribeList.add(subscribeDTO);
}
if (subscribeList.size() > NumConstant.ZERO){
epmetMessageOpenFeignClient.sendWxSubscribeMessage(subscribeList);
}
Result result = epmetMessageOpenFeignClient.saveUserMessageList(msgList);
if(result.success()){
return;
}
}
}
}
}

12
epmet-user/epmet-user-server/src/main/java/com/epmet/util/ModuleConstant.java

@ -34,4 +34,16 @@ public interface ModuleConstant {
String GENDER_UNKNOWN = "未知";
/**
* 工作人员角色key网格长
* */
String STAFF_ROLE_GRID_MANAGER = "grid_manager";
/**
* APP 政府端
* */
String APP_GOV = "gov";
String BADGE_AUDIT_MESSAGE = "徽章审核消息";
}

11
epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml

@ -294,4 +294,15 @@
DEL_FLAG = '0'
AND (CUSTOMER_ID = #{customerId,jdbcType=VARCHAR} OR CUSTOMER_ID = 'default')
</select>
<!-- 查询徽章名称 -->
<select id="selectBadgeName" resultType="java.lang.String">
SELECT
BADGE_NAME
FROM badge
WHERE DEL_FLAG = 0
AND (CUSTOMER_ID = 'default' OR CUSTOMER_ID = #{customerId})
ORDER BY CREATED_TIME DESC
LIMIT 1
</select>
</mapper>

4
epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml

@ -46,7 +46,8 @@
CUSTOMER_ID,
BADGE_NAME,
BADGE_ICON,
FIXATION_BADGE_TYPE AS badgeType
FIXATION_BADGE_TYPE AS badgeType,
sort
FROM (
SELECT * FROM badge
WHERE CUSTOMER_ID = #{customerId} AND DEL_FLAG = '0'
@ -70,6 +71,7 @@
WHERE DEL_FLAG = 0
AND CERTIFICATION_AUTID_STATUS = 'approved'
AND USER_ID = #{userId}
order by created_time desc
</select>
<!-- 根据UserId查询个人徽章点亮信息 -->

Loading…
Cancel
Save