From 24a841a0a766b34fdd354415ad65a1ea53c981ab Mon Sep 17 00:00:00 2001 From: zhangyongzhangyong <2012005003@qq.coom> Date: Fri, 24 Jul 2020 18:56:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=88=B1=E5=BF=83=E4=BA=92=E5=8A=A9=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=B0=83=E6=95=B4-=E4=B8=80=E6=B3=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/resi/ResiActInsertLiveFormDTO.java | 5 + .../com/epmet/feign/EpmetUserFeignClient.java | 11 --- .../EpmetUserFeignClientFallBack.java | 4 - .../java/com/epmet/dao/ActLiveRecDao.java | 12 ++- .../java/com/epmet/dao/ActSignInRecDao.java | 15 ++- .../com/epmet/service/ActLiveRecService.java | 7 -- .../epmet/service/ActSignInRecService.java | 5 - .../service/impl/ActLiveRecServiceImpl.java | 40 ++++---- .../service/impl/ActSignInRecServiceImpl.java | 58 +++++------ .../impl/ActUserRelationServiceImpl.java | 95 ++++++++++++++----- .../impl/HeartUserInfoServiceImpl.java | 58 ++++++----- .../com/epmet/utils/ValidityVerification.java | 6 +- .../src/main/resources/mapper/ActInfoDao.xml | 12 +-- .../main/resources/mapper/ActLiveRecDao.xml | 31 ++++++ .../main/resources/mapper/ActSignInRecDao.xml | 37 +++++++- .../resources/mapper/HeartUserInfoDao.xml | 3 +- .../epmet/feign/EpmetUserOpenFeignClient.java | 11 +++ .../EpmetUserOpenFeignClientFallback.java | 5 + .../epmet/controller/UserRoleController.java | 4 +- 19 files changed, 275 insertions(+), 144 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResiActInsertLiveFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResiActInsertLiveFormDTO.java index d84b3b4698..42ee3576fe 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResiActInsertLiveFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResiActInsertLiveFormDTO.java @@ -90,4 +90,9 @@ public class ResiActInsertLiveFormDTO implements Serializable { * 用户id */ private String userId; + + /** + * id + */ + private String id; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetUserFeignClient.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetUserFeignClient.java index c8e1660cd3..55455d5122 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetUserFeignClient.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetUserFeignClient.java @@ -36,17 +36,6 @@ public interface EpmetUserFeignClient { @PostMapping("epmetuser/userbaseinfo/queryuserbaseinfo") Result> heartQueryUserBaseInfo(@RequestBody List userIds); - /** - * 根据用户ID,查询用户所属角色: 多种身份 - * - * @param userId - * @return com.epmet.commons.tools.utils.Result> - * @Author zhangyong - * @Date 14:13 2020-07-23 - **/ - @PostMapping(value = "epmetuser/userrole/getuserroleinfobyuserid/{userId}", consumes = MediaType.APPLICATION_JSON_VALUE) - Result> getUserRoleInfoByUserId(@PathVariable("userId") String userId); - /** * 同步-居民基础信息、用户微信信息 * diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java index 1238fceed5..37beeef602 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java @@ -25,10 +25,6 @@ public class EpmetUserFeignClientFallBack implements EpmetUserFeignClient { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "heartQueryUserBaseInfo", userIds); } - @Override - public Result> getUserRoleInfoByUserId(String userId) { - return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserRoleInfoByUserId", userId); - } @Override public Result updateUserBaseAndWxUserInfo(WxUserInfoFormDTO formDTO) { diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/ActLiveRecDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/ActLiveRecDao.java index 61d04aa888..ce9999af87 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/ActLiveRecDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/ActLiveRecDao.java @@ -20,7 +20,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.ActLivePicDTO; import com.epmet.dto.ActLiveRecDTO; -import com.epmet.dto.form.resi.ResiActContentFormDTO; +import com.epmet.dto.form.resi.ResiActInsertLiveFormDTO; import com.epmet.entity.ActLiveRecEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -55,4 +55,14 @@ public interface ActLiveRecDao extends BaseDao { * @Date 17:04 2020-07-22 **/ List selectListActLiveImg(@Param("liveId") List liveIds); + + /** + * 插入活动实况表 + * + * @param formDTO + * @return void + * @Author zhangyong + * @Date 18:05 2020-07-24 + **/ + void insertActLiveRec(ResiActInsertLiveFormDTO formDTO); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/ActSignInRecDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/ActSignInRecDao.java index 04c13f13cd..ca383df81f 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/ActSignInRecDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/ActSignInRecDao.java @@ -18,6 +18,8 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.ActSignInRecDTO; +import com.epmet.dto.form.resi.ResiActSignInFormDTO; import com.epmet.entity.ActSignInRecEntity; import org.apache.ibatis.annotations.Mapper; @@ -29,5 +31,14 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ActSignInRecDao extends BaseDao { - -} \ No newline at end of file + + /** + * 插入活动签到记录表 + * + * @param dto + * @return void + * @Author zhangyong + * @Date 18:05 2020-07-24 + **/ + void insertActSignInRec(ActSignInRecDTO dto); +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActLiveRecService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActLiveRecService.java index 4185eedf75..79d95ce9e7 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActLiveRecService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActLiveRecService.java @@ -18,19 +18,12 @@ package com.epmet.service; 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.commons.tools.utils.Result; -import com.epmet.dto.ActLiveRecDTO; -import com.epmet.dto.form.resi.ResiActContentFormDTO; import com.epmet.dto.form.resi.ResiActInsertLiveFormDTO; -import com.epmet.dto.form.resi.ResiActSignInFormDTO; import com.epmet.dto.result.resi.ResiActLiveRecResultDTO; import com.epmet.entity.ActLiveRecEntity; -import java.util.List; -import java.util.Map; - /** * 活动实况记录 * diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActSignInRecService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActSignInRecService.java index 84aec10141..c2ba4124ce 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActSignInRecService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActSignInRecService.java @@ -18,16 +18,11 @@ package com.epmet.service; 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.commons.tools.utils.Result; -import com.epmet.dto.ActSignInRecDTO; import com.epmet.dto.form.resi.ResiActSignInFormDTO; import com.epmet.entity.ActSignInRecEntity; -import java.util.List; -import java.util.Map; - /** * 活动签到记录 * diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActLiveRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActLiveRecServiceImpl.java index b5038ce2ab..79d8a52dbe 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActLiveRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActLiveRecServiceImpl.java @@ -20,11 +20,10 @@ package com.epmet.service.impl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.ActLivePicDao; import com.epmet.dao.ActLiveRecDao; -import com.epmet.dao.ActUserLogDao; -import com.epmet.dao.ActUserRelationDao; import com.epmet.dto.ActLivePicDTO; import com.epmet.dto.ActLiveRecDTO; import com.epmet.dto.form.resi.ResiActInsertLiveFormDTO; @@ -32,9 +31,11 @@ import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.dto.result.resi.ResiActLiveRecResultDTO; import com.epmet.entity.ActLivePicEntity; import com.epmet.entity.ActLiveRecEntity; +import com.epmet.entity.ActSignInRecEntity; import com.epmet.feign.EpmetUserFeignClient; import com.epmet.redis.ActLiveRecRedis; import com.epmet.service.ActLiveRecService; +import com.epmet.utils.ValidityVerification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -99,26 +100,29 @@ public class ActLiveRecServiceImpl extends BaseServiceImpl inSertlive(TokenDto tokenDto, ResiActInsertLiveFormDTO formDTO) { formDTO.setUserId(tokenDto.getUserId()); + // 文本校验 + ValidityVerification verification = new ValidityVerification(); + verification.textScanVerification(formDTO.getDesc(),"添加实况-文本内容审核失败"); + // 图片校验 + verification.imgScanVerification(formDTO.getImages(),"添加实况-图片审核失败"); + // 存储活动实况记录表 - ActLiveRecEntity actLiveRecEntity = new ActLiveRecEntity(); - actLiveRecEntity.setActId(formDTO.getActId()); - actLiveRecEntity.setUserId(formDTO.getUserId()); - actLiveRecEntity.setLongitude(formDTO.getLongitude()); - actLiveRecEntity.setLatitude(formDTO.getLatitude()); - actLiveRecEntity.setAddress(formDTO.getAddress()); - actLiveRecEntity.setDesc(formDTO.getDesc()); - baseDao.insert(actLiveRecEntity); + String uuid = UUID.randomUUID().toString().replaceAll("-",""); + formDTO.setId(uuid); + baseDao.insertActLiveRec(formDTO); //存储活动实况图片 List imgList = formDTO.getImages(); - for (int i = 0; i < imgList.size(); i++) { - String imgUrl = imgList.get(i); - ActLivePicEntity actLivePicEntity = new ActLivePicEntity(); - actLivePicEntity.setLiveId(actLiveRecEntity.getId()); - actLivePicEntity.setPicUrl(imgUrl); - actLivePicEntity.setSort(i + NumConstant.ONE); - actLivePicDao.insert(actLivePicEntity); + if (null != imgList){ + for (int i = 0; i < imgList.size(); i++) { + String imgUrl = imgList.get(i); + ActLivePicEntity actLivePicEntity = new ActLivePicEntity(); + actLivePicEntity.setLiveId(uuid); + actLivePicEntity.setPicUrl(imgUrl); + actLivePicEntity.setSort(i + NumConstant.ONE); + actLivePicDao.insert(actLivePicEntity); + } } - return new Result().ok(actLiveRecEntity.getId()); + return new Result().ok(uuid); } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActSignInRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActSignInRecServiceImpl.java index 5cc716d8b4..4bd516e4f9 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActSignInRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActSignInRecServiceImpl.java @@ -25,22 +25,23 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.constant.ActConstant; import com.epmet.dao.ActSignInPicDao; import com.epmet.dao.ActSignInRecDao; -import com.epmet.dao.ActUserLogDao; import com.epmet.dao.ActUserRelationDao; +import com.epmet.dto.ActSignInRecDTO; import com.epmet.dto.ActUserRelationDTO; import com.epmet.dto.form.resi.ResiActInsertLiveFormDTO; import com.epmet.dto.form.resi.ResiActSignInFormDTO; import com.epmet.entity.ActSignInPicEntity; import com.epmet.entity.ActSignInRecEntity; -import com.epmet.entity.ActUserLogEntity; import com.epmet.redis.ActSignInRecRedis; import com.epmet.service.ActLiveRecService; import com.epmet.service.ActSignInRecService; +import com.epmet.utils.ValidityVerification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.UUID; /** * 活动签到记录 @@ -57,9 +58,6 @@ public class ActSignInRecServiceImpl extends BaseServiceImpl inSertlive = actLiveRecService.inSertlive(tokenDto, liveFormDTO); - liveId = inSertlive.getData(); + //实况id, 当sync_live=1时此列有值 + dto.setLiveId(inSertlive.getData()); } - // 存储活动签到记录表 - ActSignInRecEntity actSignInRecEntity = new ActSignInRecEntity(); - actSignInRecEntity.setActId(formDTO.getActId()); - actSignInRecEntity.setUserId(formDTO.getUserId()); - actSignInRecEntity.setLongitude(formDTO.getLongitude()); - actSignInRecEntity.setLatitude(formDTO.getLatitude()); - actSignInRecEntity.setAddress(formDTO.getAddress()); - actSignInRecEntity.setDesc(formDTO.getDesc()); - actSignInRecEntity.setSyncLive(formDTO.getSyncLive()); - actSignInRecEntity.setLiveId(liveId); - baseDao.insert(actSignInRecEntity); + String uuid = UUID.randomUUID().toString().replaceAll("-",""); + dto.setId(uuid); + baseDao.insertActSignInRec(dto); //存储活动签到图片 List imgList = formDTO.getImages(); - for (int i = 0; i < imgList.size(); i++) { - String imgUrl = imgList.get(i); - ActSignInPicEntity actLivePicEntity = new ActSignInPicEntity(); - actLivePicEntity.setSignInId(actSignInRecEntity.getId()); - actLivePicEntity.setPicUrl(imgUrl); - actLivePicEntity.setSort(i + NumConstant.ONE); - actSignInPicDao.insert(actLivePicEntity); + if (null != imgList){ + for (int i = 0; i < imgList.size(); i++) { + String imgUrl = imgList.get(i); + ActSignInPicEntity actLivePicEntity = new ActSignInPicEntity(); + actLivePicEntity.setSignInId(uuid); + actLivePicEntity.setPicUrl(imgUrl); + actLivePicEntity.setSort(i + NumConstant.ONE); + actSignInPicDao.insert(actLivePicEntity); + } } return new Result(); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActUserRelationServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActUserRelationServiceImpl.java index d1782fc0f8..53bc8a11f0 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActUserRelationServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActUserRelationServiceImpl.java @@ -42,7 +42,7 @@ import com.epmet.dto.result.UserRoleResultDTO; import com.epmet.entity.ActUserLogEntity; import com.epmet.entity.ActUserRelationEntity; import com.epmet.entity.HeartUserInfoEntity; -import com.epmet.feign.EpmetUserFeignClient; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.redis.ActUserRelationRedis; import com.epmet.service.ActInfoService; import com.epmet.service.ActUserLogService; @@ -76,7 +76,7 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl0 当前用户是志愿者 + Integer volunteerFlag = volunteerInfoDao.queryVolunteerFlagByUserId(formDTO.getActId()); if (actInfoDTO.getVolunteerLimit()){ - // 活动只能志愿者参加 - Integer volunteerFlag = volunteerInfoDao.queryVolunteerFlagByUserId(formDTO.getUserId()); - if (volunteerFlag > NumConstant.ZERO){ - satisfy = true; - } else { - logger.info("活动报名失败,请先认证志愿者"); - throw new RenException(EpmetErrorCode.NON_CERTIFIED_VOLUNTEER.getCode()); - } + // 活动只能志愿者参加, 当前用户是否满足条件 + satisfy = this.volunteerParticipationAct(volunteerFlag); } else { - // 活动不限制志愿者身份,但要求是 居民身份 - Result> userRoleInfo = epmetUserFeignClient.getUserRoleInfoByUserId(formDTO.getUserId()); - for (UserRoleResultDTO roleResultDTO :userRoleInfo.getData()){ - if (EpmetRoleKeyConstant.REGISTERED_RESI.equals(roleResultDTO.getRoleKey())){ - satisfy = true; - } - } - if (!satisfy){ - logger.info("活动报名失败,请完善居民信息"); - throw new RenException(EpmetErrorCode.CANNOT_AUDIT_WARM.getCode()); - } + // 活动不限制志愿者身份,但要求是 居民身份, 当前用户是否满足条件 + satisfy = this.resiParticipationAct(formDTO.getUserId()); } if (satisfy){ - this.actStartSignUp(actInfoDTO, formDTO); + // 开始报名 + this.actStartSignUp(actInfoDTO, formDTO, volunteerFlag); } return new Result(); } - private void actStartSignUp(ActInfoDTO actInfoDTO, ResiActRegistrationFormDTO formDTO){ + /** + * 开始报名活动 + * + * @param actInfoDTO 活动详情 + * @param formDTO 接口请求入参 + * @param volunteerFlag >0 当前用户是志愿者 + * @return void + * @Author zhangyong + * @Date 15:31 2020-07-24 + **/ + private void actStartSignUp(ActInfoDTO actInfoDTO, ResiActRegistrationFormDTO formDTO, Integer volunteerFlag){ boolean signUp = true; Integer auditingNum = actUserLogService.countActTimesOfParticipation(formDTO.getUserId()); if (auditingNum > NumConstant.ZERO){ @@ -246,7 +244,7 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl NumConstant.ZERO); entity.setKindnessTime(NumConstant.ZERO); entity.setParticipationNum(NumConstant.ZERO); entity.setObtainPointNum(NumConstant.ZERO); @@ -264,8 +262,53 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl NumConstant.ZERO){ + satisfy = true; + return satisfy; + } else { + logger.info("活动报名失败,请先认证志愿者"); + throw new RenException(EpmetErrorCode.NON_CERTIFIED_VOLUNTEER.getCode()); + } + } + + /** + * 活动报名,不限制志愿者身份,但要求是 居民身份。当前用户是否符合 + * @param userId + * @return boolean + * @Author zhangyong + * @Date 15:04 2020-07-24 + **/ + private boolean resiParticipationAct(String userId){ + boolean satisfy = false; + // 活动不限制志愿者身份,但要求是 居民身份 + Result> userRoleInfo = epmetUserOpenFeignClient.getUserRoleInfoByUserId(userId); + if (userRoleInfo.success()){ + for (UserRoleResultDTO roleResultDTO :userRoleInfo.getData()){ + if (EpmetRoleKeyConstant.REGISTERED_RESI.equals(roleResultDTO.getRoleKey())){ + satisfy = true; + } + } + } + if (!satisfy){ + logger.info("活动报名失败,请完善居民信息"); + throw new RenException(EpmetErrorCode.CANNOT_AUDIT_WARM.getCode()); + } else { + return satisfy; + } + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/HeartUserInfoServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/HeartUserInfoServiceImpl.java index fead42e055..a8d0dfacfe 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/HeartUserInfoServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/HeartUserInfoServiceImpl.java @@ -20,21 +20,24 @@ 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.exception.RenException; 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.dao.HeartUserInfoDao; import com.epmet.dto.HeartUserInfoDTO; -import com.epmet.dto.UserWechatDTO; import com.epmet.dto.form.resi.ResiActBaseFormDTO; import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.dto.result.resi.ResiLeaderboardResultDTO; import com.epmet.entity.HeartUserInfoEntity; -import com.epmet.feign.EpmetUserFeignClient; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.redis.HeartUserInfoRedis; import com.epmet.service.HeartUserInfoService; import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -52,11 +55,11 @@ import java.util.Map; */ @Service public class HeartUserInfoServiceImpl extends BaseServiceImpl implements HeartUserInfoService { - + private Logger logger = LogManager.getLogger(HeartUserInfoServiceImpl.class); @Autowired private HeartUserInfoRedis heartUserInfoRedis; @Autowired - private EpmetUserFeignClient epmetUserFeignClient; + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; @Override public PageData page(Map params) { @@ -124,28 +127,35 @@ public class HeartUserInfoServiceImpl extends BaseServiceImpl> leaderboard(ResiActBaseFormDTO formDTO) { + List resultDTOS = new ArrayList<>(); // 获取排好序的 排行榜 List leaderboardList = baseDao.selectListLeaderboard(formDTO); - // 根据用户ID获取微信昵称、头像 - List userIds = new ArrayList<>(); - for (HeartUserInfoDTO list : leaderboardList){ - userIds.add(list.getUserId()); - } - // 查询用户微信基础信息 - Result> userWxInfos = epmetUserFeignClient.heartQueryUserBaseInfo(userIds); - - List resultDTOS = new ArrayList<>(); - for (HeartUserInfoDTO list : leaderboardList){ - ResiLeaderboardResultDTO dto = new ResiLeaderboardResultDTO(); - dto.setKindnessTime(list.getKindnessTime()); - dto.setVolunteerFlag(list.getVolunteerFlag()); - dto.setParticipationNum(list.getParticipationNum()); - List wxInfo = userWxInfos.getData(); - for (UserBaseInfoResultDTO wx : wxInfo){ - if (list.getUserId().equals(wx.getUserId())){ - dto.setHeadImg(wx.getHeadImgUrl()); - dto.setNickname(wx.getNickname()); + if (leaderboardList.size() > NumConstant.ZERO){ + // 根据用户ID获取微信昵称、头像 + List userIds = new ArrayList<>(); + for (HeartUserInfoDTO list : leaderboardList){ + userIds.add(list.getUserId()); + } + // 查询用户微信基础信息 + Result> userWxInfos = epmetUserOpenFeignClient.queryUserBaseInfo(userIds); + if (userWxInfos.success() && userWxInfos.getData().size() > NumConstant.ZERO){ + for (HeartUserInfoDTO list : leaderboardList){ + ResiLeaderboardResultDTO dto = new ResiLeaderboardResultDTO(); + dto.setKindnessTime(list.getKindnessTime()); + dto.setVolunteerFlag(list.getVolunteerFlag()); + dto.setParticipationNum(list.getParticipationNum()); + List wxInfo = userWxInfos.getData(); + for (UserBaseInfoResultDTO wx : wxInfo){ + if (list.getUserId().equals(wx.getUserId())){ + dto.setHeadImg(wx.getHeadImgUrl()); + dto.setNickname(wx.getNickname()); + } + } + resultDTOS.add(dto); } + } else { + logger.info("查询用户基本信息接口返回失败"); + throw new RenException("查询用户基本信息失败"); } } return new Result>().ok(resultDTOS); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/utils/ValidityVerification.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/utils/ValidityVerification.java index 2b56bdc176..48deaa99b9 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/utils/ValidityVerification.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/utils/ValidityVerification.java @@ -64,11 +64,13 @@ public class ValidityVerification { /** * 图片列表校验 * @param imgList 被校验的图片列表 + * @param businessEnum 业务枚举,定义校验失败后,输出的日志信息 + * * @return void * @auther zhangyong * @Date 14:42 2020-07-15 **/ - public void imgScanVerification(List imgList){ + public void imgScanVerification(List imgList, String businessEnum){ if (NumConstant.ZERO != imgList.size()){ ImgScanParamDTO imgScanParamDTO = new ImgScanParamDTO(); imgList.forEach(url -> { @@ -82,6 +84,8 @@ public class ValidityVerification { throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); } else { if (!imgScanResult.getData().isAllPass()) { + // 业务枚举:例如:评论话题失败,评论内容为:%s" + log.error(String.format(businessEnum)); throw new RenException(EpmetErrorCode.IMG_SCAN_FAILED.getCode()); } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml index 380e0197a7..41545a7269 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml @@ -450,12 +450,12 @@ resultType="java.lang.Integer"> SELECT COUNT(1) - FROM act_info - WHERE DEL_FLAG = '0' - AND USER_ID = #{userId} - AND ACT_STATUS = 'published' - AND ((#{actStartTime} BETWEEN ACT_START_TIME AND ACT_END_TIME OR #{actEndTime} BETWEEN ACT_START_TIME AND ACT_END_TIME) - or (ACT_START_TIME BETWEEN #{actStartTime} AND #{actEndTime} OR ACT_END_TIME BETWEEN #{actStartTime} AND #{actEndTime})); + FROM act_info i LEFT JOIN act_user_relation r ON i.ID = r.ACT_ID + WHERE i.DEL_FLAG = '0' + AND r.USER_ID = #{userId} + AND i.ACT_STATUS = 'published' + AND ((#{actStartTime} BETWEEN i.ACT_START_TIME AND i.ACT_END_TIME OR #{actEndTime} BETWEEN i.ACT_START_TIME AND i.ACT_END_TIME) + or (i.ACT_START_TIME BETWEEN #{actStartTime} AND #{actEndTime} OR i.ACT_END_TIME BETWEEN #{actStartTime} AND #{actEndTime})); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActLiveRecDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActLiveRecDao.xml index 6e0281baf5..6b3c8d92ea 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActLiveRecDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActLiveRecDao.xml @@ -48,4 +48,35 @@ order by SORT asc + + + INSERT INTO act_live_rec ( + ID, + ACT_ID, + USER_ID, + LONGITUDE, + LATITUDE, + ADDRESS, + `DESC`, + DEL_FLAG, + REVISION, + CREATED_BY, + CREATED_TIME, + UPDATED_BY, + UPDATED_TIME) + VALUES + ( #{id}, + #{actId}, + #{userId}, + #{longitude}, + #{latitude}, + #{address}, + #{desc}, + 0, + 0, + #{userId}, + now(), + #{userId}, + now()) + diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActSignInRecDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActSignInRecDao.xml index 6ac88d72a1..c1e6956935 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActSignInRecDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActSignInRecDao.xml @@ -21,5 +21,38 @@ - - \ No newline at end of file + + INSERT INTO act_sign_in_rec ( + ID, + ACT_ID, + USER_ID, + LONGITUDE, + LATITUDE, + ADDRESS, + `DESC`, + SYNC_LIVE, + LIVE_ID, + DEL_FLAG, + REVISION, + CREATED_BY, + CREATED_TIME, + UPDATED_BY, + UPDATED_TIME) + VALUES + ( #{id}, + #{actId}, + #{userId}, + #{longitude}, + #{latitude}, + #{address}, + #{desc}, + #{syncLive}, + #{liveId}, + 0, + 0, + #{userId}, + now(), + #{userId}, + now()) + + diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/HeartUserInfoDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/HeartUserInfoDao.xml index 107007c2dc..3a9473fa15 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/HeartUserInfoDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/HeartUserInfoDao.xml @@ -45,8 +45,7 @@ resultType="com.epmet.dto.HeartUserInfoDTO"> SELECT ui.USER_ID userId, - volunteerFlag, - IF(ui.VOLUNTEER_FLAG = 1, true , false ) + ui.VOLUNTEER_FLAG volunteerFlag, ui.KINDNESS_TIME kindnessTime, ui.PARTICIPATION_NUM participationNum FROM heart_user_info ui 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 8a4de9898e..e9f080a3b5 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 @@ -148,4 +148,15 @@ public interface EpmetUserOpenFeignClient { **/ @PostMapping("/epmetuser/userbaseinfo/queryuserbaseinfo") Result> queryUserBaseInfo(@RequestBody List userIdList); + + /** + * 根据用户ID,查询用户所属角色: 多种身份 + * + * @param userId + * @return com.epmet.commons.tools.utils.Result> + * @Author zhangyong + * @Date 14:13 2020-07-23 + **/ + @GetMapping(value = "epmetuser/userrole/getuserroleinfobyuserid/{userId}") + Result> getUserRoleInfoByUserId(@PathVariable("userId") 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 bb2cbe9d77..1eafedfbd2 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 @@ -98,4 +98,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result> queryUserBaseInfo(List userIdList) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "queryUserBaseInfo", userIdList); } + + @Override + public Result> getUserRoleInfoByUserId(String userId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserRoleInfoByUserId", userId); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserRoleController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserRoleController.java index f73fc1b52f..7a1bbbe99d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserRoleController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserRoleController.java @@ -128,8 +128,8 @@ public class UserRoleController { * @Author zhangyong * @Date 14:24 2020-07-23 **/ - @PostMapping("getuserroleinfobyuserid/{userId}") - public Result> getUserRoleInfoByUserId(@PathVariable String userId) { + @GetMapping("getuserroleinfobyuserid/{userId}") + public Result> getUserRoleInfoByUserId(@PathVariable("userId") String userId) { return userRoleService.getUserRoleInfoByUserId(userId); } }