Browse Source

志愿者注册自动注册居民

master
yinzuomei 4 years ago
parent
commit
6c8ee748a0
  1. 11
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/VolunteerInfoDTO.java
  2. 37
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResiVolunteerAuthenticateFormDTO.java
  3. 7
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java
  4. 3
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java
  5. 61
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java
  6. 7
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/VolunteerInfoDao.xml
  7. 4
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
  8. 116
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ResiVolunteerAuthenticateFormDTO.java
  9. 103
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VolunteerRegResiFormDTO.java
  10. 10
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  11. 4
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
  12. 12
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBaseInfoController.java
  13. 6
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java
  14. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java
  15. 43
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java
  16. 36
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java
  17. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java
  18. 4
      epmet-user/epmet-user-server/src/main/resources/mapper/UserWechatDao.xml

11
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/VolunteerInfoDTO.java

@ -17,9 +17,10 @@
package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
@ -97,4 +98,12 @@ public class VolunteerInfoDTO implements Serializable {
* 志愿者注册所在网格名称
*/
private String gridName;
/**
* 网格所属的组织id
*/
private String pid;
/**
* 网格的所有上级
*/
private String pids;
}

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

@ -17,80 +17,67 @@ import java.io.Serializable;
public class ResiVolunteerAuthenticateFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
//>>>>>>>>>>>>>>>>>校验分组开始>>>>>>>>>>>>>>>>>>>>>
/**
* 添加用户操作的内部异常分组
* 出现错误会提示给前端7000错误码返回信息为服务器开小差...
*/
public interface AddUserInternalGroup {}
/**
* 添加用户操作的用户可见异常分组
* 该分组用于校验需要返回给前端错误信息提示的列需要继承CustomerClientShowGroup
* 返回错误码为8999提示信息为DTO中具体的列的校验注解message的内容
*/
public interface AddUserShowGroup extends CustomerClientShowGroup {}
// <<<<<<<<<<<<<<<<<<<校验分组结束<<<<<<<<<<<<<<<<<<<<<<<<
/**
* 用户id
*/
@NotBlank(message = "tokenDto中获取userId为空", groups = {AddUserInternalGroup.class })
private String userId;
/**
* 客户id
*/
@NotBlank(message = "客户id不能为空", groups = {AddUserShowGroup.class })
@NotBlank(message = "tokenDto中获取customerId为空", groups = {AddUserInternalGroup.class })
private String customerId;
/**
*
*/
@NotBlank(message = "姓不能为空", groups = {AddUserInternalGroup.class, AddUserShowGroup.class })
@NotBlank(message = "姓不能为空", groups = {AddUserShowGroup.class })
private String surname;
/**
*
*/
@NotBlank(message = "名不能为空", groups = {AddUserInternalGroup.class, AddUserShowGroup.class })
@NotBlank(message = "名不能为空", groups = {AddUserShowGroup.class })
private String name;
/**
* 性别1男2女0未知
*/
@NotBlank(message = "性别不能为空", groups = {AddUserInternalGroup.class, AddUserShowGroup.class })
@NotBlank(message = "性别不能为空", groups = {AddUserShowGroup.class })
private String gender;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空", groups = {AddUserInternalGroup.class, AddUserShowGroup.class })
@NotBlank(message = "手机号不能为空", groups = {AddUserShowGroup.class })
private String mobile;
/**
* 身份证号码
*/
@NotBlank(message = "身份证号码不能为空", groups = {AddUserInternalGroup.class, AddUserShowGroup.class })
@NotBlank(message = "身份证号码不能为空", groups = {AddUserShowGroup.class })
private String idNum;
/**
* 街道
*/
@NotBlank(message = "街道不能为空", groups = {AddUserInternalGroup.class, AddUserShowGroup.class })
@NotBlank(message = "居住地址:街道不能为空", groups = {AddUserShowGroup.class })
private String street;
/**
* 小区名
*/
@NotBlank(message = "小区名不能为空", groups = {AddUserInternalGroup.class, AddUserShowGroup.class })
@NotBlank(message = "居住地址:小区名不能为空", groups = {AddUserShowGroup.class })
private String district;
/**
* 楼栋单元
*/
@NotBlank(message = "楼栋单元不能为空", groups = {AddUserInternalGroup.class, AddUserShowGroup.class })
@NotBlank(message = "居住地址:楼栋单元不能为空", groups = {AddUserShowGroup.class })
private String buildingAddress;
/**
@ -101,13 +88,13 @@ public class ResiVolunteerAuthenticateFormDTO implements Serializable {
/**
* 昵称
*/
@NotBlank(message = "昵称不能为空", groups = {AddUserInternalGroup.class, AddUserShowGroup.class })
@NotBlank(message = "昵称不能为空", groups = {AddUserInternalGroup.class})
private String nickname;
/**
* 头像
*/
@NotBlank(message = "头像不能为空", groups = {AddUserInternalGroup.class, AddUserShowGroup.class })
@NotBlank(message = "头像不能为空", groups = {AddUserInternalGroup.class})
private String avatarUrl;
/**

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

@ -60,8 +60,11 @@ public class ResiVolunteerController {
**/
@PostMapping("authenticate")
public Result authenticate(@LoginUser TokenDto tokenDto, @RequestBody ResiVolunteerAuthenticateFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, ResiVolunteerAuthenticateFormDTO.AddUserInternalGroup.class, ResiVolunteerAuthenticateFormDTO.AddUserShowGroup.class);
return volunteerInfoService.authenticate(tokenDto, formDTO);
formDTO.setUserId(tokenDto.getUserId());
formDTO.setCustomerId(tokenDto.getCustomerId());
ValidatorUtils.validateEntity(formDTO, ResiVolunteerAuthenticateFormDTO.AddUserShowGroup.class, ResiVolunteerAuthenticateFormDTO.AddUserInternalGroup.class);
volunteerInfoService.authenticate(formDTO);
return new Result();
}
/**

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

@ -42,13 +42,12 @@ public interface VolunteerInfoService extends BaseService<VolunteerInfoEntity> {
/**
* 志愿者认证
*
* @param tokenDto
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author zhangyong
* @Date 10:09 2020-07-23
**/
Result authenticate(TokenDto tokenDto, ResiVolunteerAuthenticateFormDTO formDTO);
void authenticate(ResiVolunteerAuthenticateFormDTO formDTO);
/**
* 志愿者认证界面获取用户基础信息+志愿者信息

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

@ -39,10 +39,13 @@ 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.CustomerGridDTO;
import com.epmet.dto.HeartUserInfoDTO;
import com.epmet.dto.VolunteerInfoDTO;
import com.epmet.dto.form.CommonCustomerFormDTO;
import com.epmet.dto.form.CustomerGridFormDTO;
import com.epmet.dto.form.SendVerificationCodeFormDTO;
import com.epmet.dto.form.VolunteerRegResiFormDTO;
import com.epmet.dto.form.resi.ResiSendSmsCodeFormDTO;
import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO;
import com.epmet.dto.result.ResiUserBaseInfoResultDTO;
@ -54,6 +57,7 @@ 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.feign.GovOrgOpenFeignClient;
import com.epmet.service.HeartUserInfoService;
import com.epmet.service.VolunteerInfoService;
import com.github.pagehelper.PageHelper;
@ -94,8 +98,11 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl<VolunteerInfoDao,
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Override
/*@Override
@Transactional(rollbackFor = Exception.class)
public Result authenticate(TokenDto tokenDto, ResiVolunteerAuthenticateFormDTO formDTO) {
// 验证码校验
@ -130,6 +137,58 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl<VolunteerInfoDao,
// 志愿者认证,更新用户基础信息
com.epmet.dto.form.ResiVolunteerAuthenticateFormDTO param = ConvertUtils.sourceToTarget(formDTO, com.epmet.dto.form.ResiVolunteerAuthenticateFormDTO.class);
return epmetUserOpenFeignClient.volunteerBaseInfo(param);
}*/
@Override
@Transactional(rollbackFor = Exception.class)
public void authenticate(ResiVolunteerAuthenticateFormDTO formDTO) {
// 1、验证码校验
if (StringUtils.isNotBlank(formDTO.getSmsCode())) {
String smsCodeKey = RedisKeys.getVolunteerSmsCodeKey(formDTO.getMobile());
String rightSmsCode = (String) redisUtils.get(smsCodeKey);
if (!formDTO.getSmsCode().equals(rightSmsCode)) {
logger.warn(String.format("验证码错误code[%s],msg[%s]", EpmetErrorCode.MOBILE_CODE_ERROR.getCode(), EpmetErrorCode.MOBILE_CODE_ERROR.getMsg()));
throw new RenException(EpmetErrorCode.MOBILE_CODE_ERROR.getCode());
}
}
// 2、检查是否是志愿者
VolunteerInfoDTO originVolunteer = baseDao.selectVolunteerInfoByUserId(formDTO.getUserId());
if (null != originVolunteer) {
//能修改的只有这两个属性,像是网格id,网格名称,pid,pids不允许修改,第一次注册成功后不可修改
originVolunteer.setVolunteerIntroduce(formDTO.getVolunteerIntroduce());
originVolunteer.setVolunteerSignature(formDTO.getVolunteerSignature());
baseDao.updateById(ConvertUtils.sourceToTarget(originVolunteer, VolunteerInfoEntity.class));
} else {
//2.1不是志愿者:插入志愿者信息表
VolunteerInfoEntity insertVolunteer = ConvertUtils.sourceToTarget(formDTO, VolunteerInfoEntity.class);
// 赋值gridName,pid,pids
CustomerGridFormDTO customerGridFormDTO = new CustomerGridFormDTO();
customerGridFormDTO.setGridId(formDTO.getGridId());
Result<CustomerGridDTO> gridInfoRes = govOrgOpenFeignClient.getGridBaseInfoByGridId(customerGridFormDTO);
if (!gridInfoRes.success() || null == gridInfoRes.getData()) {
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "查询网格信息失败");
}
insertVolunteer.setGridName(gridInfoRes.getData().getGridName());
insertVolunteer.setPid(gridInfoRes.getData().getPid());
insertVolunteer.setPids(gridInfoRes.getData().getPids());
baseDao.insert(insertVolunteer);
// 2.2 更新用户信息表的 是否是志愿者标识
HeartUserInfoDTO userInfoDTO = new HeartUserInfoDTO();
userInfoDTO.setUserId(formDTO.getUserId());
userInfoDTO.setVolunteerFlag(true);
heartUserInfoService.updateHeartUserInfoByUserId(userInfoDTO);
// 2.3发送消息 由积分系统消费消息(需要使用规则)
this.grantActPoints(formDTO);
}
//3、志愿者认证,更新用户基础信息user_base_info+自动注册居民
VolunteerRegResiFormDTO param = ConvertUtils.sourceToTarget(formDTO, VolunteerRegResiFormDTO.class);
Result regResi=epmetUserOpenFeignClient.volunteerAutoRegResi(param);
if(!regResi.success()){
logger.warn(String.format("userId:%s,认证志愿者时,自动注册居民失败,返参:%s",formDTO.getUserId(), JSON.toJSONString(regResi)));
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), regResi.getMsg());
}
}
private void grantActPoints(ResiVolunteerAuthenticateFormDTO formDTO){

7
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/VolunteerInfoDao.xml

@ -55,12 +55,7 @@
<select id="selectVolunteerInfoByUserId" parameterType="java.lang.String" resultType="com.epmet.dto.VolunteerInfoDTO">
SELECT
CUSTOMER_ID customerId,
VOLUNTEER_INTRODUCE volunteerIntroduce,
VOLUNTEER_SIGNATURE volunteerSignature,
GRID_ID gridId,
GRID_NAME gridName,
USER_ID as userId
*
FROM volunteer_info
WHERE DEL_FLAG = '0'
AND USER_ID = #{userId}

4
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java

@ -20,8 +20,8 @@ import java.util.Set;
* @author yinzuomei@elink-cn.com
* @date 2020/6/4 13:37
*/
//@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = GovOrgOpenFeignClientFallbackFactory.class, url = "localhost:8092")
@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = GovOrgOpenFeignClientFallbackFactory.class)
@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = GovOrgOpenFeignClientFallbackFactory.class, url = "localhost:8092")
// @FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = GovOrgOpenFeignClientFallbackFactory.class)
public interface GovOrgOpenFeignClient {
/**

116
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ResiVolunteerAuthenticateFormDTO.java

@ -1,116 +0,0 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 志愿者认证 入参
*
* @Auther: zhangyong
* @Date: 2020-07-23 09:57
*/
@Data
public class ResiVolunteerAuthenticateFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 添加用户操作的内部异常分组
* 出现错误会提示给前端7000错误码返回信息为服务器开小差...
*/
/**
* 添加用户操作的用户可见异常分组
* 该分组用于校验需要返回给前端错误信息提示的列需要继承CustomerClientShowGroup
* 返回错误码为8999提示信息为DTO中具体的列的校验注解message的内容
*/
/**
* 用户id
*/
private String userId;
/**
* 客户id
*/
@NotBlank(message = "客户id不能为空")
private String customerId;
/**
*
*/
@NotBlank(message = "姓不能为空")
private String surname;
/**
*
*/
@NotBlank(message = "名不能为空")
private String name;
/**
* 性别1男2女0未知
*/
@NotBlank(message = "性别不能为空")
private String gender;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空")
private String mobile;
/**
* 身份证号码
*/
@NotBlank(message = "身份证号码不能为空")
private String idNum;
/**
* 街道
*/
@NotBlank(message = "街道不能为空")
private String street;
/**
* 小区名
*/
@NotBlank(message = "小区名不能为空")
private String district;
/**
* 楼栋单元
*/
@NotBlank(message = "楼栋单元不能为空")
private String buildingAddress;
/**
* 志愿者自我介绍
*/
private String volunteerIntroduce;
/**
* 昵称
*/
@NotBlank(message = "昵称不能为空")
private String nickname;
/**
* 头像
*/
@NotBlank(message = "头像不能为空")
private String avatarUrl;
/**
* 志愿者签名
*/
private String volunteerSignature;
}

103
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VolunteerRegResiFormDTO.java

@ -0,0 +1,103 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 认证志愿者时保存/修改用户基础信息+自动注册居民
*
* @Auther: zhangyong
* @Date: 2020-07-23 09:57
*/
@Data
public class VolunteerRegResiFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
public interface AddUserInternalGroup {}
public interface AddUserShowGroup extends CustomerClientShowGroup {}
/**
* 用户id
*/
@NotBlank(message = "tokenDto中获取userId为空", groups = {AddUserInternalGroup.class })
private String userId;
/**
* 客户id
*/
@NotBlank(message = "tokenDto中获取customerId为空", groups = {AddUserInternalGroup.class })
private String customerId;
/**
*
*/
@NotBlank(message = "姓不能为空", groups = {AddUserShowGroup.class })
private String surname;
/**
*
*/
@NotBlank(message = "名不能为空", groups = {AddUserShowGroup.class })
private String name;
/**
* 性别1男2女0未知
*/
@NotBlank(message = "性别不能为空", groups = {AddUserShowGroup.class })
private String gender;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空", groups = {AddUserShowGroup.class })
private String mobile;
/**
* 身份证号码
*/
@NotBlank(message = "身份证号码不能为空", groups = {AddUserShowGroup.class })
private String idNum;
/**
* 街道
*/
@NotBlank(message = "居住地址:街道不能为空", groups = {AddUserShowGroup.class })
private String street;
/**
* 小区名
*/
@NotBlank(message = "居住地址:小区名不能为空", groups = {AddUserShowGroup.class })
private String district;
/**
* 楼栋单元
*/
@NotBlank(message = "居住地址:楼栋单元不能为空", groups = {AddUserShowGroup.class })
private String buildingAddress;
/**
* 昵称
*/
@NotBlank(message = "昵称不能为空", groups = {AddUserInternalGroup.class})
private String nickname;
/**
* 头像
*/
@NotBlank(message = "头像不能为空", groups = {AddUserInternalGroup.class})
private String avatarUrl;
/**
* 志愿者注册所在网格ID
*/
@NotBlank(message = "网格ID不能为空", groups = {AddUserShowGroup.class })
private String gridId;
private String pid;
private String pids;
}

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

@ -23,8 +23,8 @@ import java.util.Set;
* @author yinzuomei@elink-cn.com
* @date 2020/6/4 13:09
*/
//@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallbackFactory = EpmetUserOpenFeignClientFallbackFactory.class, url = "localhost:8087")
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallbackFactory = EpmetUserOpenFeignClientFallbackFactory.class)
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallbackFactory = EpmetUserOpenFeignClientFallbackFactory.class, url = "localhost:8087")
//@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallbackFactory = EpmetUserOpenFeignClientFallbackFactory.class)
public interface EpmetUserOpenFeignClient {
/**
@ -241,14 +241,14 @@ public interface EpmetUserOpenFeignClient {
Result<ResiUserBaseInfoResultDTO> selectUserBaseInfo(@RequestBody TokenDto tokenDTO);
/**
* @Description 认证志愿者时保存/修改用户基础信息
* @Description 认证志愿者时保存/修改用户基础信息+自动注册居民
* @param param
* @return
* @author wangc
* @date 2020.07.31 09:38
**/
@PostMapping("/epmetuser/userbaseinfo/volunteerbaseinfo")
Result volunteerBaseInfo(@RequestBody ResiVolunteerAuthenticateFormDTO param);
@PostMapping("/epmetuser/userbaseinfo/volunteerautoregresi")
Result volunteerAutoRegResi(@RequestBody VolunteerRegResiFormDTO param);
/**
* @return

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

@ -174,8 +174,8 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
}
@Override
public Result volunteerBaseInfo(ResiVolunteerAuthenticateFormDTO param) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "volunteerBaseInfo", param);
public Result volunteerAutoRegResi(VolunteerRegResiFormDTO param) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "volunteerAutoRegResi", param);
}
@Override

12
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBaseInfoController.java

@ -30,7 +30,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.UserBaseInfoDTO;
import com.epmet.dto.form.CommonUserIdFormDTO;
import com.epmet.dto.form.IssueInitiatorFormDTO;
import com.epmet.dto.form.ResiVolunteerAuthenticateFormDTO;
import com.epmet.dto.form.VolunteerRegResiFormDTO;
import com.epmet.dto.result.CustomerUserDetailResultDTO;
import com.epmet.dto.result.ExtUserInfoResultDTO;
import com.epmet.dto.result.ResiUserBaseInfoResultDTO;
@ -166,16 +166,16 @@ public class UserBaseInfoController {
}
/**
* @Description 认证志愿者时保存/修改用户基础信息
* @Description 认证志愿者时保存/修改用户基础信息+自动注册居民
* @param param
* @return
* @author wangc
* @date 2020.07.31 09:38
**/
@PostMapping("volunteerbaseinfo")
public Result volunteerBaseInfo(@RequestBody ResiVolunteerAuthenticateFormDTO param){
userBaseInfoService.saveUserBaseInfoWhenAuthVolunteer(param);
return new Result();
@PostMapping("volunteerautoregresi")
public Result volunteerAutoRegResi(@RequestBody VolunteerRegResiFormDTO param){
ValidatorUtils.validateEntity(param,VolunteerRegResiFormDTO.AddUserShowGroup.class,VolunteerRegResiFormDTO.AddUserInternalGroup.class);
return userBaseInfoService.volunteerAutoRegResi(param);
}
/**

6
epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java

@ -22,7 +22,7 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserBaseInfoDTO;
import com.epmet.dto.form.CommonUserIdFormDTO;
import com.epmet.dto.form.ResiVolunteerAuthenticateFormDTO;
import com.epmet.dto.form.VolunteerRegResiFormDTO;
import com.epmet.dto.result.CustomerUserDetailResultDTO;
import com.epmet.dto.result.ExtUserInfoResultDTO;
import com.epmet.dto.result.ResiUserBaseInfoResultDTO;
@ -164,13 +164,13 @@ public interface UserBaseInfoService extends BaseService<UserBaseInfoEntity> {
Result<ResiUserBaseInfoResultDTO> selecUserBaseInfoByUserId(String userId);
/**
* @Description 认证志愿者时保存/修改用户基础信息
* @Description 认证志愿者时保存/修改用户基础信息+自动注册居民
* @param param
* @return
* @author wangc
* @date 2020.07.31 09:38
**/
void saveUserBaseInfoWhenAuthVolunteer(ResiVolunteerAuthenticateFormDTO param);
Result volunteerAutoRegResi(VolunteerRegResiFormDTO param);
/**
* @Description 清除用户缓存信息

8
epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java

@ -115,6 +115,14 @@ public interface UserResiInfoService extends BaseService<UserResiInfoEntity> {
*/
Result submit(UserResiInfoDTO userResiInfoDTO);
/**
* 自动认证居民志愿者注册自动认证居民
*
* @param userResiInfoDTO
* @return
*/
Result autoRegResi(UserResiInfoDTO userResiInfoDTO);
/**
* 居民端-居民注册根据手机号获取验证码
*

43
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java

@ -21,6 +21,7 @@ import com.alibaba.fastjson.JSON;
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.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
@ -33,8 +34,8 @@ import com.epmet.dto.UserBaseInfoDTO;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.CommonUserIdFormDTO;
import com.epmet.dto.form.ResiVolunteerAuthenticateFormDTO;
import com.epmet.dto.form.UserRoleFormDTO;
import com.epmet.dto.form.VolunteerRegResiFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.UserBaseInfoEntity;
import com.epmet.entity.UserWechatEntity;
@ -44,6 +45,7 @@ import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO;
import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient;
import com.epmet.service.RegisterRelationService;
import com.epmet.service.UserBaseInfoService;
import com.epmet.service.UserResiInfoService;
import com.epmet.util.ModuleConstant;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
@ -82,6 +84,8 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl<UserBaseInfoDao, Us
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Autowired
private RegisterRelationService registerRelationService;
@Autowired
private UserResiInfoService userResiInfoService;
@Override
public PageData<UserBaseInfoDTO> page(Map<String, Object> params) {
@ -345,14 +349,20 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl<UserBaseInfoDao, Us
/**
* @Description 认证志愿者时保存/修改用户基础信息
* @Description 认证志愿者时保存/修改用户基础信息+自动注册居民
* @param param
* @return
* @author wangc
* @date 2020.07.31 09:38
**/
@Transactional(rollbackFor = Exception.class)
@Override
public void saveUserBaseInfoWhenAuthVolunteer(ResiVolunteerAuthenticateFormDTO param) {
public Result volunteerAutoRegResi(VolunteerRegResiFormDTO param) {
//1、插入或者更新user_base_info
UserBaseInfoEntity baseInfo = ConvertUtils.sourceToTarget(param,UserBaseInfoEntity.class);
baseInfo.setHeadImgUrl(param.getAvatarUrl());
insertOrUpdate(baseInfo);
//2、更新user_wechat表
UserWechatDTO userWechatDTO = new UserWechatDTO();
userWechatDTO.setUserId(param.getUserId());
userWechatDTO.setNickname(StringUtils.isBlank(param.getNickname()) ? ModuleConstant.EMPTY_STR : param.getNickname());
@ -362,9 +372,30 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl<UserBaseInfoDao, Us
userWechatDTO.setUpdatedTime(new Date());
userWechatDTO.setUpdatedBy(param.getUserId());
userWechatDao.updateByUserId(userWechatDTO);
UserBaseInfoEntity baseInfo = ConvertUtils.sourceToTarget(param,UserBaseInfoEntity.class);
baseInfo.setHeadImgUrl(param.getAvatarUrl());
insertOrUpdate(baseInfo);
//3、查看是否已经注册居民
UserResiInfoDTO userResiInfoDTO = userResiInfoDao.selectByUserId(param.getUserId());
if (null == userResiInfoDTO) {
//4、自动注册居民
// 校验手机号是否可用
UserResiInfoDTO userResiInfoFormDTO=ConvertUtils.sourceToTarget(param,UserResiInfoDTO.class);
userResiInfoFormDTO.setApp(AppClientConstant.APP_RESI);
// userResiInfoFormDTO.setUserId(param.getUserId());
userResiInfoFormDTO.setRegMobile(param.getMobile());
// userResiInfoFormDTO.setSurname(param.getSurname());
// userResiInfoFormDTO.setName(param.getName());
// userResiInfoFormDTO.setIdNum(param.getIdNum());
// userResiInfoFormDTO.setStreet(param.getStreet());
// userResiInfoFormDTO.setDistrict(param.getDistrict());
// userResiInfoFormDTO.setBuildingAddress(param.getBuildingAddress());
// userResiInfoFormDTO.setGridId(param.getGridId());
Result result=userResiInfoService.autoRegResi(userResiInfoFormDTO);
if (!result.success()) {
return result;
}
}
//5、删除用户缓存信息
clearUserCache(Arrays.asList(param.getUserId()));
return new Result();
}
/**

36
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java

@ -33,6 +33,7 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.SmsTemplateConstant;
import com.epmet.constant.UserConstant;
import com.epmet.constant.UserResiRegisterConstant;
import com.epmet.constant.UserRoleConstant;
import com.epmet.dao.UserCustomerDao;
import com.epmet.dao.UserResiInfoDao;
@ -47,6 +48,7 @@ import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.entity.UserBaseInfoEntity;
import com.epmet.entity.UserResiInfoEntity;
import com.epmet.entity.UserResiRegisterVisitEntity;
import com.epmet.entity.UserWechatEntity;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.GovIssueOpenFeignClient;
@ -62,10 +64,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 用户居民端注册信息表 用户在居民端完善的个人信息
@ -497,4 +496,33 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl<UserResiInfoDao, Us
resiGroupClient.checkInviteRelationship(ConvertUtils.sourceToTarget(param, SharableTopicAndInviteeFormDTO.class));
}
/**
* 自动认证居民志愿者注册自动认证居民
*
* @param userResiInfoDTO
* @return
*/
@Override
public Result autoRegResi(UserResiInfoDTO userResiInfoDTO){
//1:再次判断手机号是否在客户下可用
if (!getResiInfoByMobile(userResiInfoDTO.getRegMobile(), userResiInfoDTO.getCustomerId())) {
return new Result().error(EpmetErrorCode.MOBILE_HAS_BEEN_USED.getCode());
}
//2、插入访问记录表
UserResiRegisterVisitEntity userResiRegisterVisitEntity=new UserResiRegisterVisitEntity();
userResiRegisterVisitEntity.setCustomerId(userResiInfoDTO.getCustomerId());
userResiRegisterVisitEntity.setGridId(userResiInfoDTO.getGridId());
userResiRegisterVisitEntity.setUserId(userResiInfoDTO.getUserId());
userResiRegisterVisitEntity.setVisitFrom("auth_volunteer");
userResiRegisterVisitEntity.setLastOperateVisit(UserResiRegisterConstant.SUCCESS);
userResiRegisterVisitEntity.setVisitTime(new Date());
userResiRegisterVisitService.insert(userResiRegisterVisitEntity);
userResiInfoDTO.setResiVisitId(userResiRegisterVisitEntity.getId());
//3:居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一
registerRelationService.saveRegisterRelation(userResiInfoDTO);
//4:校验成功 数据存入居民注册表 更新行为记录表数据
saveUserResiInfo(userResiInfoDTO);
return new Result();
}
}

5
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java

@ -144,7 +144,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
UserBaseInfoEntity baseInfo = new UserBaseInfoEntity();
//UserBaseInfoResultDTO cache = userBaseInfoRedis.get(wxUserInfoFormDTO.getUserId());
UserResiInfoDTO resiInfo = userResiInfoDao.selectByUserId(wxUserInfoFormDTO.getUserId());
// 以下这段注释于21.12.22,只更新微信相关信息就可以
/* UserResiInfoDTO resiInfo = userResiInfoDao.selectByUserId(wxUserInfoFormDTO.getUserId());
if(null != resiInfo && StringUtils.isNotBlank((resiInfo.getId()))) {
baseInfo.setSurname(resiInfo.getSurname());
baseInfo.setName(resiInfo.getName());
@ -152,7 +153,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
baseInfo.setDistrict(resiInfo.getDistrict());
baseInfo.setBuildingAddress(resiInfo.getBuildingAddress());
baseInfo.setMobile(resiInfo.getRegMobile());
}
}*/

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

@ -34,8 +34,8 @@
UPDATED_BY = #{updatedBy},
UPDATED_TIME = #{updatedTime}
</set>
WHERE
USER_ID = #{userId}
WHERE del_flag='0'
and USER_ID = #{userId}
</update>
<!-- 修改user_weChat信息 -->

Loading…
Cancel
Save