Browse Source

Merge remote-tracking branch 'origin/dev' into release

master
yinzuomei 5 years ago
parent
commit
4eed6d165e
  1. 11
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java
  2. 26
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResiSendSmsCodeFormDTO.java
  3. 6
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResiVolunteerAuthenticateFormDTO.java
  4. 2
      epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml
  5. 2
      epmet-module/epmet-heart/epmet-heart-server/pom.xml
  6. 16
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java
  7. 11
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java
  8. 60
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java
  9. 2
      epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml
  10. 2
      epmet-module/resi-group/resi-group-server/pom.xml
  11. 10
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/GroupInvitationServiceImpl.java

11
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java

@ -277,4 +277,15 @@ public class RedisKeys {
public static String getPointVerificationResultKey(String userId){
return rootPrefix.concat("resi:point:exchange:").concat(userId);
}
/**
* 居民端 - 志愿者认证发送验证码 epmet:smscode:regvolunteer:phone
* @param phone
* @return java.lang.String
* @Author zhangyong
* @Date 10:09 2020-08-10
**/
public static String getVolunteerSmsCodeKey(String phone) {
return String.format(rootPrefix+"smscode:regvolunteer:%s",phone);
}
}

26
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResiSendSmsCodeFormDTO.java

@ -0,0 +1,26 @@
package com.epmet.dto.form.resi;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 居民端-志愿者认证-短信验证码发送接口入参
* @Author zhangyong
* @Date 2020/04/18 10:26
*/
@Data
public class ResiSendSmsCodeFormDTO implements Serializable {
private static final long serialVersionUID = -1852541457359282018L;
/**
* 添加用户操作的用户可见异常分组
* 该分组用于校验需要返回给前端错误信息提示的列需要继承CustomerClientShowGroup
* 返回错误码为8999提示信息为DTO中具体的列的校验注解message的内容
*/
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
@NotBlank(message = "手机号不能为空", groups = {AddUserShowGroup.class})
private String mobile;
}

6
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResiVolunteerAuthenticateFormDTO.java

@ -114,4 +114,10 @@ public class ResiVolunteerAuthenticateFormDTO implements Serializable {
* 志愿者签名
*/
private String volunteerSignature;
/**
* 短信验证码
* 移动端决定是否上送验证码
*/
private String smsCode;
}

2
epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-heart-server:
container_name: epmet-heart-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-heart-server:0.0.45
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-heart-server:0.0.46
ports:
- "8111:8111"
network_mode: host # 使用现有网络

2
epmet-module/epmet-heart/epmet-heart-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.0.45</version>
<version>0.0.46</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-heart</artifactId>

16
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java

@ -21,6 +21,7 @@ import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.resi.ResiSendSmsCodeFormDTO;
import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO;
import com.epmet.dto.result.resi.ResiVolunteerInfoResultDTO;
import com.epmet.service.VolunteerInfoService;
@ -70,4 +71,19 @@ public class ResiVolunteerController {
public Result<ResiVolunteerInfoResultDTO> selectVolunteerInfo(@LoginUser TokenDto tokenDTO){
return volunteerInfoService.selectVolunteerInfoByUserId(tokenDTO);
}
/**
* 志愿者认证 - 发送短信验证码
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author zhangyong
* @Date 09:47 2020-08-10
**/
@PostMapping(value = "sendsmscode")
public Result sendSmsCode(@RequestBody ResiSendSmsCodeFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO,ResiSendSmsCodeFormDTO.AddUserShowGroup.class);
volunteerInfoService.sendSmsCode(formDTO);
return new Result();
}
}

11
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java

@ -22,6 +22,7 @@ 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.VolunteerInfoDTO;
import com.epmet.dto.form.resi.ResiSendSmsCodeFormDTO;
import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO;
import com.epmet.dto.result.resi.ResiVolunteerInfoResultDTO;
import com.epmet.entity.VolunteerInfoEntity;
@ -57,4 +58,14 @@ public interface VolunteerInfoService extends BaseService<VolunteerInfoEntity> {
* @Date 14:05 2020-07-30
**/
Result<ResiVolunteerInfoResultDTO> selectVolunteerInfoByUserId(TokenDto tokenDto);
/**
* 居民端志愿者认证-发送验证码
*
* @param formDTO
* @return void
* @Author zhangyong
* @Date 09:19 2020-08-10
**/
void sendSmsCode(ResiSendSmsCodeFormDTO formDTO);
}

60
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java

@ -24,20 +24,27 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.form.mq.MqBaseMsgDTO;
import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg;
import com.epmet.commons.tools.enums.EventEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
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.commons.tools.utils.SendMqMsgUtils;
import com.epmet.constant.SmsTemplateConstant;
import com.epmet.dao.VolunteerInfoDao;
import com.epmet.dto.HeartUserInfoDTO;
import com.epmet.dto.VolunteerInfoDTO;
import com.epmet.dto.form.SendVerificationCodeFormDTO;
import com.epmet.dto.form.resi.ResiSendSmsCodeFormDTO;
import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO;
import com.epmet.dto.result.ResiUserBaseInfoResultDTO;
import com.epmet.dto.result.SendVerificationCodeResultDTO;
import com.epmet.dto.result.resi.ResiVolunteerInfoResultDTO;
import com.epmet.entity.VolunteerInfoEntity;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.redis.VolunteerInfoRedis;
import com.epmet.service.HeartUserInfoService;
import com.epmet.service.VolunteerInfoService;
import org.apache.logging.log4j.LogManager;
@ -58,9 +65,7 @@ import java.util.List;
@Service
public class VolunteerInfoServiceImpl extends BaseServiceImpl<VolunteerInfoDao, VolunteerInfoEntity> implements VolunteerInfoService {
private Logger logger = LogManager.getLogger(VolunteerInfoServiceImpl.class);
@Autowired
private VolunteerInfoRedis volunteerInfoRedis;
private static final String SEND_SMS_CODE_ERROR = "发送短信验证码异常,手机号[%s],code[%s],msg[%s]";
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@ -68,9 +73,24 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl<VolunteerInfoDao,
@Autowired
private HeartUserInfoService heartUserInfoService;
@Autowired
private RedisUtils redisUtils;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Override
@Transactional(rollbackFor = Exception.class)
public Result authenticate(TokenDto tokenDto, ResiVolunteerAuthenticateFormDTO formDTO) {
// 验证码校验
if (null != formDTO.getSmsCode()){
String smsCodeKey = RedisKeys.getVolunteerSmsCodeKey(formDTO.getMobile());
String rightSmsCode = (String) redisUtils.get(smsCodeKey);
if (!formDTO.getSmsCode().equals(rightSmsCode)) {
logger.error(String.format("验证码错误code[%s],msg[%s]", EpmetErrorCode.MOBILE_CODE_ERROR.getCode(), EpmetErrorCode.MOBILE_CODE_ERROR.getMsg()));
throw new RenException(EpmetErrorCode.MOBILE_CODE_ERROR.getCode());
}
}
formDTO.setUserId(tokenDto.getUserId());
// 检查是否是志愿者
Integer volunteerFlag = baseDao.queryVolunteerFlagByUserId(tokenDto.getUserId());
@ -138,4 +158,36 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl<VolunteerInfoDao,
}
return new Result<ResiVolunteerInfoResultDTO>().ok(resultDTO);
}
@Override
public void sendSmsCode(ResiSendSmsCodeFormDTO formDTO) {
//1、发送短信验证码
SendVerificationCodeFormDTO sendVerificationCodeFormDTO=new SendVerificationCodeFormDTO();
sendVerificationCodeFormDTO.setMobile(formDTO.getMobile());
sendVerificationCodeFormDTO.setAliyunTemplateCode(SmsTemplateConstant.USER_REGISTER);
Result<SendVerificationCodeResultDTO> smsCodeResult=epmetMessageOpenFeignClient.sendVerificationCode(sendVerificationCodeFormDTO);
if (!smsCodeResult.success()) {
logger.error(String.format(SEND_SMS_CODE_ERROR, formDTO.getMobile(), smsCodeResult.getCode(), smsCodeResult.getMsg()));
throw new RenException(smsCodeResult.getCode());
}
//2、保存短信验证码(删除现有短信验证码、将新的短信验证码存入Redis)
this.saveSmsCode(formDTO, smsCodeResult.getData().getCode());
logger.info(String.format("发送短信验证码成功,手机号[%s]", formDTO.getMobile()));
}
/**
* 保存短信验证码(删除现有短信验证码将新的短信验证码存入Redis)
* 过期时长为30分钟
*
* @param sendSmsCodeFormDTO phone
* @param smsCode 验证码
* @return void
* @Author zhangyong
* @Date 09:43 2020-08-10
**/
public void saveSmsCode(ResiSendSmsCodeFormDTO sendSmsCodeFormDTO, String smsCode) {
String smsCodeKey = RedisKeys.getVolunteerSmsCodeKey(sendSmsCodeFormDTO.getMobile());
logger.info(String.format("短信验证码key=%s", smsCodeKey));
redisUtils.set(smsCodeKey, smsCode, RedisUtils.MINUTE_THIRTY_EXPIRE);
}
}

2
epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
resi-group-server:
container_name: resi-group-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/resi-group-server:0.3.62
image: 192.168.1.130:10080/epmet-cloud-dev/resi-group-server:0.3.63
ports:
- "8095:8095"
network_mode: host # 使用现有网络

2
epmet-module/resi-group/resi-group-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.62</version>
<version>0.3.63</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>resi-group</artifactId>

10
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/GroupInvitationServiceImpl.java

@ -199,7 +199,6 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
**/
@Override
public LinkGroupInfoResultDTO getLinkGroupInfo(LinkGroupInfoFormDTO formDTO) {
logger.info(String.format("用户点击群邀请链接,入参%s",JSON.toJSONString(formDTO)));
//0、校验是否存在该邀请连接(判断是会否被删除连接、是否失效、群状态)
GroupInvitationDTO groupInvitationDTO=this.checkLinkValid(formDTO.getInvitationId());
LinkGroupInfoResultDTO linkGroupInfoResultDTO = new LinkGroupInfoResultDTO();
@ -219,14 +218,11 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) {
groupInfo.setLeaderName(groupLeaderUserInfo.getData().getShowName());
} else {
logger.error(String.format("居民端用户【%s】根据链接【%s】查看群邀请信息调用epmet-user-server服务,获取组长信息异常,返参%s",
formDTO.getUserId(),
formDTO.getInvitationId(),
JSON.toJSONString(groupLeaderUserInfo)));
groupInfo.setLeaderName("");
logger.warn("查看群邀请信息调用epmet-user-server服务,获取组长信息异常");
groupInfo.setLeaderName(StrConstant.EPMETY_STR);
}
}else{
logger.error(String.format("根据群邀请连接查询群基本信息异常,groupInfo is null,selectLinkGroupInfo入参groupId=%s",groupInvitationDTO.getResiGroupId()));
logger.warn("根据群邀请连接查询群基本信息异常,groupInfo is null,selectLinkGroupInfo入参groupId="+groupInvitationDTO.getResiGroupId());
linkGroupInfoResultDTO.setGroupInfo(new LinkGroupInfoDTO());
}
//4、记录用户邀请关系

Loading…
Cancel
Save