|  |  | @ -10,7 +10,11 @@ import com.epmet.commons.tools.utils.Result; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.commons.tools.validator.PhoneValidatorUtils; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.constant.BadgeConstant; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.constant.SmsTemplateConstant; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.dao.BadgeDao; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.dao.ResiUserBadgeDao; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.dao.UserBadgeDao; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.dao.UserRoleDao; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.dto.ResiUserBadgeDTO; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.dto.UserBadgeCertificateRecordDTO; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.dto.form.*; | 
			
		
	
		
			
				
					|  |  |  | import com.epmet.dto.result.*; | 
			
		
	
	
		
			
				
					|  |  | @ -29,6 +33,7 @@ import java.util.ArrayList; | 
			
		
	
		
			
				
					|  |  |  | import java.util.Collections; | 
			
		
	
		
			
				
					|  |  |  | import java.util.List; | 
			
		
	
		
			
				
					|  |  |  | import java.util.Map; | 
			
		
	
		
			
				
					|  |  |  | import java.util.concurrent.atomic.AtomicReference; | 
			
		
	
		
			
				
					|  |  |  | import java.util.stream.Collectors; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  | @ -49,6 +54,12 @@ public class UserBadgeServiceImpl implements UserBadgeService { | 
			
		
	
		
			
				
					|  |  |  |     private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; | 
			
		
	
		
			
				
					|  |  |  |     @Autowired | 
			
		
	
		
			
				
					|  |  |  |     private EpmetMessageOpenFeignClient messageFeignClient; | 
			
		
	
		
			
				
					|  |  |  |     @Autowired | 
			
		
	
		
			
				
					|  |  |  |     private UserRoleDao userRoleDao; | 
			
		
	
		
			
				
					|  |  |  |     @Autowired | 
			
		
	
		
			
				
					|  |  |  |     private ResiUserBadgeDao resiUserBadgeDao; | 
			
		
	
		
			
				
					|  |  |  |     @Autowired | 
			
		
	
		
			
				
					|  |  |  |     private BadgeDao badgeDao; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |      * @Description  查询已经点亮的徽章 | 
			
		
	
	
		
			
				
					|  |  | @ -104,25 +115,90 @@ public class UserBadgeServiceImpl implements UserBadgeService { | 
			
		
	
		
			
				
					|  |  |  |             }); | 
			
		
	
		
			
				
					|  |  |  |             return userOperListResultDTOS; | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |         List<UserOperListResultDTO> badgeIsOpenedList = userBadgeDao.selectBadgeByUserId(userOperListFormDTO.getUserId()); | 
			
		
	
		
			
				
					|  |  |  |         userOperListResultDTOS.forEach(ub -> { | 
			
		
	
		
			
				
					|  |  |  |             userAuthBadgeList.forEach(u -> { | 
			
		
	
		
			
				
					|  |  |  |                 if (ub.getBadgeId().equals(u.getBadgeId())){ | 
			
		
	
		
			
				
					|  |  |  |                     ub.setIsReject(u.getAuditStatus().equals(BadgeConstant.REJECTED) ? true : false); | 
			
		
	
		
			
				
					|  |  |  |                     ub.setIsCertificated(u.getAuditStatus().equals(BadgeConstant.APPROVED) ? BadgeConstant.YES : BadgeConstant.NO); | 
			
		
	
		
			
				
					|  |  |  |                     ub.setIsLighted(u.getIsOpened().equals(NumConstant.ZERO_STR) ? BadgeConstant.NO : BadgeConstant.YES); | 
			
		
	
		
			
				
					|  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |             }); | 
			
		
	
		
			
				
					|  |  |  |             if (CollectionUtils.isEmpty(badgeIsOpenedList)){ | 
			
		
	
		
			
				
					|  |  |  |                 ub.setIsLighted(BadgeConstant.NO); | 
			
		
	
		
			
				
					|  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |         return userOperListResultDTOS; | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |      * @Description  初始化党员徽章 | 
			
		
	
		
			
				
					|  |  |  |      * @Param userId | 
			
		
	
		
			
				
					|  |  |  |      * @author zxc | 
			
		
	
		
			
				
					|  |  |  |      * @date 2020/11/18 下午3:04 | 
			
		
	
		
			
				
					|  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |     public void initPartyMemberBadge(String userId){ | 
			
		
	
		
			
				
					|  |  |  |         List<String> userIds = resiUserBadgeDao.selectUserIds(); | 
			
		
	
		
			
				
					|  |  |  |         List<ResiUserBadgeDTO> badges = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |         String partyBadgeId = badgeDao.getPartyBadgeId(null); | 
			
		
	
		
			
				
					|  |  |  |         if (StringUtils.isEmpty(userId)) { | 
			
		
	
		
			
				
					|  |  |  |             List<PartyMemberUserIdsResultDTO> partyMemberUserIds = userRoleDao.selectPartyMemberUserIds(); | 
			
		
	
		
			
				
					|  |  |  |             if (CollectionUtils.isEmpty(partyMemberUserIds)) { | 
			
		
	
		
			
				
					|  |  |  |                 return; | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |             if (!CollectionUtils.isEmpty(userIds)) { | 
			
		
	
		
			
				
					|  |  |  |                 userIds.stream().forEach(u -> partyMemberUserIds.stream().filter(p -> u.equals(p.getUserId())).forEach(p -> p.setReStatus(true))); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |             List<String> reUserIds = partyMemberUserIds.stream().filter(p -> !p.getReStatus()).map(p -> p.getUserId()).collect(Collectors.toList()); | 
			
		
	
		
			
				
					|  |  |  |             List<UserBaseInfoResultDTO> userBaseInfoResultDTOS = userBaseInfoService.queryUserBaseInfo(reUserIds); | 
			
		
	
		
			
				
					|  |  |  |             if (CollectionUtils.isEmpty(userBaseInfoResultDTOS)) { | 
			
		
	
		
			
				
					|  |  |  |                 log.error("未查询到党员基本信息......"); | 
			
		
	
		
			
				
					|  |  |  |                 throw new RenException("未查询到党员基本信息......"); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |             userBaseInfoResultDTOS.forEach(u -> { | 
			
		
	
		
			
				
					|  |  |  |                 ResiUserBadgeDTO dto = new ResiUserBadgeDTO(); | 
			
		
	
		
			
				
					|  |  |  |                 dto.setBadgeId(partyBadgeId); | 
			
		
	
		
			
				
					|  |  |  |                 dto.setCertificationAutidStatus("approved"); | 
			
		
	
		
			
				
					|  |  |  |                 dto.setCustomerId(u.getCustomerId()); | 
			
		
	
		
			
				
					|  |  |  |                 dto.setGridId(u.getRegisteredGridId()); | 
			
		
	
		
			
				
					|  |  |  |                 dto.setIsOpened(NumConstant.ZERO); | 
			
		
	
		
			
				
					|  |  |  |                 badges.add(dto); | 
			
		
	
		
			
				
					|  |  |  |             }); | 
			
		
	
		
			
				
					|  |  |  |             resiUserBadgeDao.insertResiUserBadge(badges); | 
			
		
	
		
			
				
					|  |  |  |         }else { | 
			
		
	
		
			
				
					|  |  |  |                 badgeIsOpenedList.forEach(b -> { | 
			
		
	
		
			
				
					|  |  |  |                     if (ub.getBadgeId().equals(b.getBadgeId())){ | 
			
		
	
		
			
				
					|  |  |  |                         ub.setIsLighted(b.getIsOpened().equals(NumConstant.ZERO_STR) ? BadgeConstant.NO : BadgeConstant.YES); | 
			
		
	
		
			
				
					|  |  |  |             List<String> oneUserIds = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |             oneUserIds.add(userId); | 
			
		
	
		
			
				
					|  |  |  |             List<UserBaseInfoResultDTO> userBaseInfoResultDTOS = userBaseInfoService.queryUserBaseInfo(oneUserIds); | 
			
		
	
		
			
				
					|  |  |  |             if (!CollectionUtils.isEmpty(userIds)) { | 
			
		
	
		
			
				
					|  |  |  |                 AtomicReference<Boolean> status = new AtomicReference<>(true); | 
			
		
	
		
			
				
					|  |  |  |                 userIds.forEach(u -> { | 
			
		
	
		
			
				
					|  |  |  |                     if(u.equals(userId)){ | 
			
		
	
		
			
				
					|  |  |  |                         status.set(false); | 
			
		
	
		
			
				
					|  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |                 }); | 
			
		
	
		
			
				
					|  |  |  |                 if (status.get()==false){ | 
			
		
	
		
			
				
					|  |  |  |                     return; | 
			
		
	
		
			
				
					|  |  |  |                 }else { | 
			
		
	
		
			
				
					|  |  |  |                     userBaseInfoResultDTOS.forEach(u -> { | 
			
		
	
		
			
				
					|  |  |  |                         ResiUserBadgeDTO dto = new ResiUserBadgeDTO(); | 
			
		
	
		
			
				
					|  |  |  |                         dto.setBadgeId(partyBadgeId); | 
			
		
	
		
			
				
					|  |  |  |                         dto.setCertificationAutidStatus("approved"); | 
			
		
	
		
			
				
					|  |  |  |                         dto.setCustomerId(u.getCustomerId()); | 
			
		
	
		
			
				
					|  |  |  |                         dto.setGridId(u.getRegisteredGridId()); | 
			
		
	
		
			
				
					|  |  |  |                         dto.setIsOpened(NumConstant.ZERO); | 
			
		
	
		
			
				
					|  |  |  |                         badges.add(dto); | 
			
		
	
		
			
				
					|  |  |  |                     }); | 
			
		
	
		
			
				
					|  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |             }else { | 
			
		
	
		
			
				
					|  |  |  |                 userBaseInfoResultDTOS.forEach(u -> { | 
			
		
	
		
			
				
					|  |  |  |                     ResiUserBadgeDTO dto = new ResiUserBadgeDTO(); | 
			
		
	
		
			
				
					|  |  |  |                     dto.setBadgeId(partyBadgeId); | 
			
		
	
		
			
				
					|  |  |  |                     dto.setCertificationAutidStatus("approved"); | 
			
		
	
		
			
				
					|  |  |  |                     dto.setCustomerId(u.getCustomerId()); | 
			
		
	
		
			
				
					|  |  |  |                     dto.setGridId(u.getRegisteredGridId()); | 
			
		
	
		
			
				
					|  |  |  |                     dto.setIsOpened(NumConstant.ZERO); | 
			
		
	
		
			
				
					|  |  |  |                     badges.add(dto); | 
			
		
	
		
			
				
					|  |  |  |                 }); | 
			
		
	
		
			
				
					|  |  |  |         return userOperListResultDTOS; | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |             resiUserBadgeDao.insertResiUserBadge(badges); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
	
		
			
				
					|  |  | @ -297,15 +373,15 @@ public class UserBadgeServiceImpl implements UserBadgeService { | 
			
		
	
		
			
				
					|  |  |  |      * @Description 批量获取用户显示徽章 | 
			
		
	
		
			
				
					|  |  |  |      * @param customerId | 
			
		
	
		
			
				
					|  |  |  |      * @param userIds | 
			
		
	
		
			
				
					|  |  |  |      * @return java.util.Map<java.lang.String,java.util.List< com.epmet.dto.result.UserBadgeInfoResultDTO>> | 
			
		
	
		
			
				
					|  |  |  |      * @return java.util.Map<java.lang.String, java.util.List < com.epmet.dto.result.UserBadgeInfoResultDTO>> | 
			
		
	
		
			
				
					|  |  |  |      * @author wangc | 
			
		
	
		
			
				
					|  |  |  |      * @date 2020.11.10 15:12 | 
			
		
	
		
			
				
					|  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |     public Map<String, List<UserBadgeInfoResultDTO>> getBatchUserSortedBadge(String customerId, List<String> userIds) { | 
			
		
	
		
			
				
					|  |  |  |         List<UserBadgeInfoResultDTO> badges = userBadgeDao.selectBatchUserSortedBadge(customerId,userIds); | 
			
		
	
		
			
				
					|  |  |  |         if(CollectionUtils.isEmpty(badges)) return Collections.EMPTY_MAP; | 
			
		
	
		
			
				
					|  |  |  |         return badges.stream().collect(Collectors.groupingBy(UserBadgeInfoResultDTO :: getUserId)); | 
			
		
	
		
			
				
					|  |  |  |         List<UserBadgeInfoResultDTO> badges = userBadgeDao.selectBatchUserSortedBadge(customerId, userIds); | 
			
		
	
		
			
				
					|  |  |  |         if (CollectionUtils.isEmpty(badges)) return Collections.EMPTY_MAP; | 
			
		
	
		
			
				
					|  |  |  |         return badges.stream().collect(Collectors.groupingBy(UserBadgeInfoResultDTO::getUserId)); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
	
		
			
				
					|  |  | 
 |