diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java index 5962ea22a2..aa77bd8eae 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java @@ -23,7 +23,6 @@ import com.epmet.modules.feign.ResiGroupFeignClient; import com.epmet.modules.partymember.entity.*; import com.epmet.modules.partymember.redis.PartymemberInfoRedis; import com.epmet.modules.partymember.service.*; -import com.epmet.modules.warmhearted.constant.ResiWarmUserMessageConstant; import com.epmet.modules.warmhearted.constant.ResiWarmheartedConstant; import com.epmet.modules.warmhearted.constant.ResiWarmheartedVisitConstant; import com.epmet.redis.ResiPartyMemberRedis; @@ -250,6 +249,8 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService resiGroupFeignClient.updateWhenAuditedResiRole(identityParam); //addby jianjun 2020-07-31 之前没有成功的返回结果 result = new Result<>().ok("注册成功"); + //添加党员徽章信息 + this.addUserPartyBadge(partyMemberInfoDTO.getUserId()); } //将自动认证结果存入党员认证自动审核表 @@ -280,6 +281,7 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService baseInfo.setName(partyMemberInfoDTO.getName()); epmetUserOpenFeignClient.saveUserBaseInfo(baseInfo); + return result; } @@ -346,11 +348,13 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService identityParam.setPartyFlag(NumConstant.ONE_STR); resiGroupFeignClient.updateWhenAuditedResiRole(identityParam); //如果是自动匹配失败的,人工审核他是党员,需要记录党员库-居民的认证关系 - PartymemberConfirmAutoDTO partymemberConfirmAutoDTO=partymemberConfirmAutoService.get(fromDTO.getAutoId()); - if(partymemberConfirmAutoDTO!=null){ - log.info(String.format("自动匹配失败,人工审核是党员,保存partymember_auth_record,userId=%s,党员库id=%s",partyMemberInfoEntity.getUserId(),partymemberConfirmAutoDTO.getPatryMemberBaseInfoId())); - partymemberAuthRecordService.insert(partyMemberInfoEntity,partymemberConfirmAutoDTO.getPatryMemberBaseInfoId()); + PartymemberConfirmAutoDTO partymemberConfirmAutoDTO = partymemberConfirmAutoService.get(fromDTO.getAutoId()); + if (partymemberConfirmAutoDTO != null) { + log.info(String.format("自动匹配失败,人工审核是党员,保存partymember_auth_record,userId=%s,党员库id=%s", partyMemberInfoEntity.getUserId(), partymemberConfirmAutoDTO.getPatryMemberBaseInfoId())); + partymemberAuthRecordService.insert(partyMemberInfoEntity, partymemberConfirmAutoDTO.getPatryMemberBaseInfoId()); } + //在徽章记录表中添加 徽章记录 表明此时已经认证通过可以点亮徽章了 + addUserPartyBadge(partyMemberInfoEntity.getUserId()); } else { auditMessageToResi(partyMemberInfoEntity, PartyMemberMessageConstant.AUDIT_REJECT_MSG); } @@ -359,6 +363,16 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService return new Result(); } + private void addUserPartyBadge(String partyUserId) { + if (StringUtils.isBlank(partyUserId)) { + throw new RenException("addUserPartyBadge,用户Id不能为空"); + } + Result result = epmetUserOpenFeignClient.initBadge(partyUserId); + if (result == null || !result.success()) { + throw new RenException("初始化党员徽章信息失败"); + } + } + @Override public Result auditingDetail(AuditingDetailFromDTO fromDTO) { AuditingDetailResultDTO resultDTO = new AuditingDetailResultDTO(); diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberUserIdsResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberUserIdsResultDTO.java new file mode 100644 index 0000000000..7bd50bea61 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberUserIdsResultDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/18 下午1:47 + */ +@Data +public class PartyMemberUserIdsResultDTO implements Serializable { + + private static final long serialVersionUID = -6932505684417996587L; + + private String userId; + + private Boolean reStatus; + + public PartyMemberUserIdsResultDTO() { + this.reStatus = false; + } +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserResiInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserResiInfoResultDTO.java index 6bdc1f6d2f..c5482e05ba 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserResiInfoResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserResiInfoResultDTO.java @@ -12,11 +12,6 @@ import java.io.Serializable; @Data public class UserResiInfoResultDTO implements Serializable { - /** - * 唯一标识 - */ - private String id; - /** * 用户Id(主键) user.id */ @@ -61,4 +56,6 @@ public class UserResiInfoResultDTO implements Serializable { * 用户头像 */ private String headPhoto; + + private String nickName; } 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 5030b289fc..340019d2b8 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 @@ -430,15 +430,15 @@ public interface EpmetUserOpenFeignClient { * @date 2020.11.10 15:59 */ @PostMapping("/epmetuser/badge/usershowbadge") - Result>> userShowBadge(@RequestBody UserGroupFormDTO param); + Result>> userShowBadge(@RequestBody UserGroupFormDTO param); /** * @param gridIdList * @author yinzuomei - * @description 根据网格id,查询每个网格有多少个徽章申请 + * @description 根据网格id, 查询每个网格有多少个徽章申请 * @Date 2020/11/12 15:41 **/ - @PostMapping(value = "/epmetuser/badge/querygridauditingbadgecount",consumes = MediaType.APPLICATION_JSON_VALUE) + @PostMapping(value = "/epmetuser/badge/querygridauditingbadgecount", consumes = MediaType.APPLICATION_JSON_VALUE) Result> queryGridAuditingBadgeCount(@RequestBody List gridIdList); /** @@ -457,4 +457,13 @@ public interface EpmetUserOpenFeignClient { */ @PostMapping("/epmetuser/govstaffrole/list-roles-by-rolekey/{role-key}") Result> listRolesByRoleKey(@PathVariable("role-key") String roleKey); + + /** + * @param userId + * @author yinzuomei + * @description 党员认证成功后 添加userBadge记录到数据库 + * @Date 2020/11/12 15:41 + **/ + @PostMapping(value = "/epmetuser/more/badge/initbadge") + Result initBadge(@RequestParam String userId); } 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 82588c5eb9..103fe5d066 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 @@ -321,4 +321,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result> listRolesByRoleKey(String roleKey) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "listRolesByRoleKey", roleKey); } + + @Override + public Result initBadge(String partyUserId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "initBadge", partyUserId); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java index 5841af3353..f4e2c3feee 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java @@ -176,20 +176,4 @@ public class BadgeController { public Result> queryGridAuditingBadgeCount(@RequestBody List gridIdList) { return new Result>().ok(badgeService.queryGridAuditingBadgeCount(gridIdList)); } - - /** - * desc: 党员认证通过后,添加党员 徽章记录 - * - * @param tokenDto - * @param formDTO - * @return com.epmet.commons.tools.utils.Result - * @author LiuJanJun - * @date 2020/11/18 10:28 上午 - */ - @PostMapping("adduserpartybadgerecord") - public Result audit(@LoginUser TokenDto tokenDto, @RequestBody AddUserPartyBadgeFormDTO formDTO) { - ValidatorUtils.validateEntity(formDTO); - badgeService.addUserPartyBadgeRecord(tokenDto, formDTO); - return new Result(); - } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBadgeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBadgeController.java index a901d9202f..3cfab36c41 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBadgeController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBadgeController.java @@ -11,10 +11,7 @@ import com.epmet.dto.result.UserBadgeListResultDTO; import com.epmet.dto.result.UserOperListResultDTO; import com.epmet.service.UserBadgeService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -107,9 +104,20 @@ public class UserBadgeController { * @date 2020/11/4 5:47 下午 */ @PostMapping("openedorclosed") - public Result openedOrClosed(@RequestBody OpenedOrClosedFormDTO openedOrClosedFormDTO){ + public Result openedOrClosed(@RequestBody OpenedOrClosedFormDTO openedOrClosedFormDTO) { userBadgeService.openedOrClosed(openedOrClosedFormDTO); return new Result(); } + /** + * @Description 初始化党员徽章 或 党员认证通过后,添加党员 徽章记录 + * @Param userId + * @author zxc + * @date 2020/11/18 下午3:03 + */ + @PostMapping("initbadge") + public Result initPartyMemberBadge(@RequestParam(required = false) String userId) { + userBadgeService.initPartyMemberBadge(userId); + return new Result(); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/ResiUserBadgeDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/ResiUserBadgeDao.java index 0448b16cee..0ff7ee2c0d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/ResiUserBadgeDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/ResiUserBadgeDao.java @@ -18,8 +18,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.ResiUserBadgeDTO; import com.epmet.entity.ResiUserBadgeEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 用户徽章关系表 @@ -29,5 +33,16 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ResiUserBadgeDao extends BaseDao { - + + /** + * @Description 初始化党员徽章插入 + * @Param userIds + * @Param badgeId + * @author zxc + * @date 2020/11/18 上午10:56 + */ + void insertResiUserBadge(@Param("badges")List badges); + + List selectUserIds(); + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java index 3801f0fcf4..a9d2f1bded 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java @@ -22,6 +22,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.UserRoleDTO; import com.epmet.dto.form.GetRoleKeyListFormDTO; import com.epmet.dto.form.UserRoleFormDTO; +import com.epmet.dto.result.PartyMemberUserIdsResultDTO; import com.epmet.dto.result.UserRoleResultDTO; import com.epmet.entity.UserRoleEntity; import org.apache.ibatis.annotations.Mapper; @@ -72,4 +73,12 @@ public interface UserRoleDao extends BaseDao { * @Description 居民端-查询用户角色key列表 **/ List selectUserRoleKeyList(GetRoleKeyListFormDTO formDTO); + + /** + * @Description 查询所有党员UserId + * @Param + * @author zxc + * @date 2020/11/18 上午10:50 + */ + List selectPartyMemberUserIds(); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java index c62354b135..b409d5709b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java @@ -21,7 +21,10 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dto.BadgeDTO; -import com.epmet.dto.form.*; +import com.epmet.dto.form.AddBadgeFormDTO; +import com.epmet.dto.form.BadgeAuditFormDTO; +import com.epmet.dto.form.BadgeFormDTO; +import com.epmet.dto.form.EditBadgeFormDTO; import com.epmet.dto.result.*; import com.epmet.entity.BadgeEntity; @@ -184,15 +187,4 @@ public interface BadgeService extends BaseService { * @Date 2020/11/12 15:56 **/ List queryGridAuditingBadgeCount(List gridIdList); - - /** - * desc: 添加用户党员徽章记录 - * - * @param tokenDto - * @param formDTO - * @return java.lang.Boolean - * @author LiuJanJun - * @date 2020/11/18 10:32 上午 - */ - Boolean addUserPartyBadgeRecord(TokenDto tokenDto, AddUserPartyBadgeFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBadgeService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBadgeService.java index a905bb2f9b..08147de433 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBadgeService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBadgeService.java @@ -90,12 +90,20 @@ public interface UserBadgeService { List getUserSortedBadge(String userId,String customerId); /** - * @Description 批量获取用户显示徽章 * @param customerId * @param userIds - * @return java.util.Map> + * @return java.util.Map> + * @Description 批量获取用户显示徽章 * @author wangc * @date 2020.11.10 15:12 */ Map> getBatchUserSortedBadge(String customerId, List userIds); + + /** + * @Description 初始化党员徽章 或审核通过后 添加用户党员徽章记录 + * @Param userId + * @author zxc + * @date 2020/11/18 下午3:03 + */ + void initPartyMemberBadge(String userId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java index bf5cf90e67..07acf1138b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java @@ -101,8 +101,17 @@ public interface UserBaseInfoService extends BaseService { void delete(String[] ids); /** - * @return java.util.List + * @param userId + * @return com.epmet.dto.result.UserBaseInfoResultDTO + * @author yinzuomei + * @description 先从缓存获取 缓存没有获取db + * @Date 2020/11/18 19:35 + **/ + UserBaseInfoResultDTO queryUserBaseInfoFromCache(String userId); + + /** * @param userIdList + * @return java.util.List * @author yinzuomei * @description 传入用户id集合,返回用户的基本信息(包含微信基本信息) * @Date 2020/7/22 9:35 diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java index a0b24549e3..01ee9463d0 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java @@ -78,8 +78,7 @@ public class BadgeServiceImpl extends BaseServiceImpl imp @Autowired private MessageFeignClient messageFeignClient; @Autowired - private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; - + private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; @Override @@ -426,19 +425,4 @@ public class BadgeServiceImpl extends BaseServiceImpl imp return baseDao.queryGridAuditingBadgeCount(gridIdList); } - /** - * desc: 添加用户党员徽章记录 - * - * @param tokenDto - * @param formDTO - * @return java.lang.Boolean - * @author LiuJanJun - * @date 2020/11/18 10:32 上午 - */ - @Override - public Boolean addUserPartyBadgeRecord(TokenDto tokenDto, AddUserPartyBadgeFormDTO formDTO) { - String badgeId = baseDao.getPartyBadgeId(tokenDto.getCustomerId()); - return null; - } - } \ 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 0cd383f980..67962815c1 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 @@ -20,14 +20,17 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.UserCustomerConstant; import com.epmet.dao.*; -import com.epmet.dto.*; +import com.epmet.dto.CustomerGridDTO; +import com.epmet.dto.RegisterRelationDTO; +import com.epmet.dto.UserResiInfoDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.UserInfoOnEnterGridResultDTO; import com.epmet.dto.result.UserResiInfoResultDTO; @@ -36,10 +39,10 @@ import com.epmet.entity.RegisterRelationEntity; import com.epmet.entity.UserCustomerEntity; import com.epmet.entity.UserWechatEntity; import com.epmet.feign.GovOrgFeignClient; -import com.epmet.redis.RegisterRelationRedis; import com.epmet.service.GridVisitedService; import com.epmet.service.RegisterRelationService; import com.epmet.util.ModuleConstant; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -243,6 +246,11 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl userWechatEntityList=userWechatDao.selectByUserId(enterGridFormDTO.getUserId()); + if(CollectionUtils.isNotEmpty(userWechatEntityList)){ + resultObj.setNickname(StringUtils.isNotBlank(userWechatEntityList.get(0).getNickname())?userWechatEntityList.get(0).getNickname(): StrConstant.EPMETY_STR); + resultObj.setUserHeadPhoto(StringUtils.isNotBlank(userWechatEntityList.get(0).getHeadImgUrl())?userWechatEntityList.get(0).getHeadImgUrl(): StrConstant.EPMETY_STR); + } } //3.获取权限 diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java index 3386d421e8..ce39a81ebc 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java @@ -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 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); - }else { - badgeIsOpenedList.forEach(b -> { - if (ub.getBadgeId().equals(b.getBadgeId())){ - ub.setIsLighted(b.getIsOpened().equals(NumConstant.ZERO_STR) ? BadgeConstant.NO : BadgeConstant.YES); + }); + return userOperListResultDTOS; + } + + /** + * @Description 初始化党员徽章 + * @Param userId + * @author zxc + * @date 2020/11/18 下午3:04 + */ + @Override + public void initPartyMemberBadge(String userId){ + List userIds = resiUserBadgeDao.selectUserIds(); + List badges = new ArrayList<>(); + String partyBadgeId = badgeDao.getPartyBadgeId(null); + if (StringUtils.isEmpty(userId)) { + List 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 reUserIds = partyMemberUserIds.stream().filter(p -> !p.getReStatus()).map(p -> p.getUserId()).collect(Collectors.toList()); + List 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 { + List oneUserIds = new ArrayList<>(); + oneUserIds.add(userId); + List userBaseInfoResultDTOS = userBaseInfoService.queryUserBaseInfo(oneUserIds); + if (!CollectionUtils.isEmpty(userIds)) { + AtomicReference 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> + * @return java.util.Map> * @author wangc * @date 2020.11.10 15:12 */ @Override public Map> getBatchUserSortedBadge(String customerId, List userIds) { - List badges = userBadgeDao.selectBatchUserSortedBadge(customerId,userIds); - if(CollectionUtils.isEmpty(badges)) return Collections.EMPTY_MAP; - return badges.stream().collect(Collectors.groupingBy(UserBadgeInfoResultDTO :: getUserId)); + List badges = userBadgeDao.selectBatchUserSortedBadge(customerId, userIds); + if (CollectionUtils.isEmpty(badges)) return Collections.EMPTY_MAP; + return badges.stream().collect(Collectors.groupingBy(UserBadgeInfoResultDTO::getUserId)); } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java index 326e74912d..7a961e6fd9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java @@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; @@ -46,6 +47,7 @@ import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import java.util.*; @@ -127,6 +129,26 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl + * @author yinzuomei + * @description 传入用户id集合,返回用户的基本信息(包含微信基本信息) + * @Date 2020/7/22 9:35 + **/ + @Override + public UserBaseInfoResultDTO queryUserBaseInfoFromCache(String userId) { + if (StringUtils.isBlank(userId)) { + throw new RenException("用户Id不能为空"); + } + List userBaseInfoResultDTOS = this.queryUserBaseInfo(Arrays.asList(userId)); + if (CollectionUtils.isEmpty(userBaseInfoResultDTOS)) { + logger.warn("queryUserBaseInfo return empty,userId:{}", userId); + return null; + } + return userBaseInfoResultDTOS.get(0); + } + /** * @param userIdList * @return java.util.List @@ -136,10 +158,10 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl queryUserBaseInfo(List userIdList) { - if(null==userIdList||userIdList.size()<1){ + if (null == userIdList || userIdList.size() < 1) { return new ArrayList<>(); } - List userBaseInfoList=new ArrayList<>(); + List userBaseInfoList = new ArrayList<>(); /* for(String userId:userIdList){ UserBaseInfoResultDTO userBaseInfoResultDTO=baseDao.selectListByUserIdList(userId); if(null!=userBaseInfoResultDTO){ @@ -152,7 +174,7 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl userWechatDTOList=userWechatDao.selectNotInUserBaseInfoTemp(); + List userWechatDTOList = userWechatDao.selectNotInUserBaseInfoTemp(); List userIdList=new ArrayList<>(); for(UserWechatDTO userWechatDTO:userWechatDTOList){ userIdList.add(userWechatDTO.getUserId()); diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.8__alter_useradvice_pids.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.8__alter_useradvice_pids.sql new file mode 100644 index 0000000000..0c2dbc28b1 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.8__alter_useradvice_pids.sql @@ -0,0 +1,4 @@ +ALTER TABLE `user_advice` DROP COLUMN `AGENCY_PIDS`; + +ALTER TABLE `user_advice` +ADD COLUMN `AGENCY_PIDS` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL AFTER `AGENCY_ID`; diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml index faf3ef9c00..3ca95c71d4 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml @@ -275,7 +275,13 @@ badge WHERE DEL_FLAG = '0' + AND (CUSTOMER_ID = #{customerId,jdbcType=VARCHAR} OR CUSTOMER_ID = 'default') + + + AND CUSTOMER_ID = 'default' + + AND FIXATION_BADGE_TYPE = 'party' order by CREATED_TIME desc LIMIT 1 \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/ResiUserBadgeDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/ResiUserBadgeDao.xml index 221c9c3d3f..82243c17cc 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/ResiUserBadgeDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/ResiUserBadgeDao.xml @@ -3,21 +3,43 @@ - - - - - - - - - - - - - - - + + + INSERT INTO resi_user_badge + ( + ID, + CUSTOMER_ID, + GRID_ID, + USER_ID, + BADGE_ID, + IS_OPENED, + CERTIFICATION_AUTID_STATUS, + DEL_FLAG, + REVISION, + CREATED_TIME, + UPDATED_TIME + ) + VALUES + + ( + REPLACE(UUID(),'-',''), + #{b.customerId}, + #{b.gridId}, + #{b.userId}, + #{b.badgeId}, + #{b.isOpened}, + #{b.certificationAutidStatus}, + #{b.delFlag}, + #{b.revision}, + NOW(), + NOW(), + ) + + + + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml index 8377839e72..3709525bb5 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml @@ -64,12 +64,12 @@ SELECT CUSTOMER_ID, BADGE_ID, - CERTIFICATION_IMG, - AUDIT_STATUS - FROM user_badge_certificate_record + CERTIFICATION_AUTID_STATUS AS auditStatus, + IS_OPENED + FROM resi_user_badge WHERE DEL_FLAG = 0 - AND IS_LAST = 'yes' - AND USER_ID = #{userId} + AND CERTIFICATION_AUTID_STATUS = 'approved' + AND USER_ID = #{userId} diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml index c1f0edfce6..3e6adef055 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml @@ -66,7 +66,8 @@ ubi.SURNAME, ( CASE WHEN ubi.GENDER = '1' THEN '先生' WHEN ubi.GENDER = '2' THEN '女士' ELSE '先生/女士' END ) ) AS show_name, - ubi.HEAD_IMG_URL AS head_photo + ubi.HEAD_IMG_URL AS head_photo, + ubi.NICKNAME as nickName FROM user_base_info ubi LEFT JOIN user_resi_info uri ON ( ubi.USER_ID = uri.USER_ID AND uri.DEL_FLAG = '0' ) @@ -88,12 +89,10 @@ ) AS show_name FROM user_resi_info uri - LEFT JOIN user_wechat uw ON (uri.USER_ID = uw.USER_ID) + LEFT JOIN user_wechat uw ON (uri.USER_ID = uw.USER_ID AND uw.DEL_FLAG = '0' AND uw.USER_ID = #{userId}) WHERE uri.DEL_FLAG = '0' - AND uw.DEL_FLAG = '0' AND uri.USER_ID = #{userId} - AND uw.USER_ID = #{userId} SELECT - uri.id, - uri.USER_ID, + ubi.USER_ID, uri.REG_MOBILE, - uri.SURNAME, - uri.`NAME`, - uri.STREET, - uri.DISTRICT, - uri.BUILDING_ADDRESS, + ubi.SURNAME, + ubi.`NAME`, + ubi.STREET, + ubi.DISTRICT, + ubi.BUILDING_ADDRESS, CONCAT( - uri.STREET, + ubi.STREET, '-', - uri.SURNAME, - ( CASE WHEN uri.GENDER = '1' THEN '先生' WHEN uri.GENDER = '2' THEN '女士' ELSE '先生/女士' END ) + ubi.SURNAME, + ( CASE WHEN ubi.GENDER = '1' THEN '先生' WHEN ubi.GENDER = '2' THEN '女士' ELSE '先生/女士' END ) ) AS show_name, - uri.HEAD_IMG_URL as head_photo - FROM user_resi_info uri - WHERE uri.DEL_FLAG = '0' - AND uri.USER_ID in + ubi.HEAD_IMG_URL as head_photo + FROM user_base_info ubi + left join user_resi_info uri on(ubi.user_id=uri.user_id and uri.del_flag='0') + WHERE ubi.DEL_FLAG = '0' + AND ubi.USER_ID in #{userId} diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml index d7726d3b7b..4472c48b77 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml @@ -100,4 +100,16 @@ AND ur.user_id = #{userId} AND ( ur.grid_id = #{gridId} OR ur.grid_id = 'all' ) + + + +