Browse Source

Merge branch 'dev' of http://git.elinkit.com.cn:7070/r/epmet-cloud into dev

dev_shibei_match
wxz 5 years ago
parent
commit
2272119ee9
  1. 2
      epmet-auth/deploy/docker-compose-dev.yml
  2. 2
      epmet-auth/pom.xml
  3. 14
      epmet-auth/src/main/java/com/epmet/controller/PublicUserLoginController.java
  4. 9
      epmet-auth/src/main/java/com/epmet/service/PublicUserLoginService.java
  5. 40
      epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java
  6. 31
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/RegisterResultDTO.java
  7. 15
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdFeignClient.java
  8. 11
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdFeignClientFallback.java
  9. 2
      epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml
  10. 2
      epmet-module/epmet-third/epmet-third-server/pom.xml
  11. 7
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaCustomerController.java
  12. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java
  13. 11
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java
  14. 12
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxLoginServiceImpl.java

2
epmet-auth/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-auth-server:
container_name: epmet-auth-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-auth:0.3.46
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-auth:0.3.47
ports:
- "8081:8081"
network_mode: host # 使用现有网络

2
epmet-auth/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.46</version>
<version>0.3.47</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-cloud</artifactId>

14
epmet-auth/src/main/java/com/epmet/controller/PublicUserLoginController.java

@ -9,6 +9,7 @@ import com.epmet.constant.PublicUserLoginConstant;
import com.epmet.dto.form.LoginByPhoneFormDTO;
import com.epmet.dto.form.PaWxCodeFormDTO;
import com.epmet.dto.form.PublicSendSmsCodeFormDTO;
import com.epmet.dto.form.RegisterFormDTO;
import com.epmet.dto.result.UserTokenResultDTO;
import com.epmet.service.PublicUserLoginService;
import org.springframework.beans.factory.annotation.Autowired;
@ -70,5 +71,18 @@ public class PublicUserLoginController {
return new Result<UserTokenResultDTO>().ok(publicUserLoginService.loginByPhone(tokenDTO, formDTO));
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 公众号-手机号注册
**/
@PostMapping(value = "/register")
public Result<UserTokenResultDTO> register(@LoginUser TokenDto tokenDTO, @RequestBody RegisterFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, RegisterFormDTO.AddUserInternalGroup.class, RegisterFormDTO.AddUserShowGroup.class);
formDTO.setUserId(tokenDTO.getUserId());
return new Result<UserTokenResultDTO>().ok(publicUserLoginService.register(formDTO));
}
}

9
epmet-auth/src/main/java/com/epmet/service/PublicUserLoginService.java

@ -4,6 +4,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.form.LoginByPhoneFormDTO;
import com.epmet.dto.form.PaWxCodeFormDTO;
import com.epmet.dto.form.PublicSendSmsCodeFormDTO;
import com.epmet.dto.form.RegisterFormDTO;
import com.epmet.dto.result.UserTokenResultDTO;
/**
@ -38,4 +39,12 @@ public interface PublicUserLoginService {
**/
UserTokenResultDTO loginByPhone(TokenDto tokenDTO, LoginByPhoneFormDTO formDTO);
/**
* @param formDTO
* @return
* @Author sun
* @Description 公众号-手机号注册
**/
UserTokenResultDTO register(RegisterFormDTO formDTO);
}

40
epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java

@ -1,8 +1,10 @@
package com.epmet.service.impl;
import com.epmet.common.token.constant.LoginConstant;
import com.epmet.commons.tools.constant.NumConstant;
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.security.dto.TokenDto;
import com.epmet.commons.tools.utils.CpUserDetailRedis;
import com.epmet.commons.tools.utils.DateUtils;
@ -14,10 +16,7 @@ import com.epmet.dto.PaCustomerDTO;
import com.epmet.dto.PaUserDTO;
import com.epmet.dto.PaUserWechatDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CustomerUserResultDTO;
import com.epmet.dto.result.SaveUserResultDTO;
import com.epmet.dto.result.SendVerificationCodeResultDTO;
import com.epmet.dto.result.UserTokenResultDTO;
import com.epmet.dto.result.*;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetThirdFeignClient;
import com.epmet.jwt.JwtTokenProperties;
@ -33,8 +32,10 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@ -242,4 +243,35 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService {
return userTokenResultDTO;
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 公众号-手机号注册
**/
@Override
public UserTokenResultDTO register(RegisterFormDTO formDTO) {
//1.调用epmet-third服务,完成信息注册
Result<RegisterResultDTO> result = epmetThirdFeignClient.register(formDTO);
if (!result.success()) {
logger.error("调用epmet_third服务初始化用户信息失败");
throw new RenException(result.getCode());
}
RegisterResultDTO resultDTO = result.getData();
//2.直接生成一个新的token放入缓存中(不管缓存中是否存在旧的token,都重新生成)
//2-1.生成token
String token = this.generateGovWxmpToken(resultDTO.getUserId());
//2-2.token存入redis
String openid = resultDTO.getOpenId();
String unionId = (null == resultDTO.getUnionId() ? "" : resultDTO.getUnionId());
this.saveLatestGovTokenDto("", resultDTO.getUserId(), openid, unionId, token);
//3.返回token
UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO();
userTokenResultDTO.setToken(token);
return userTokenResultDTO;
}
}

31
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/RegisterResultDTO.java

@ -0,0 +1,31 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author sun
* @Description 公众号-手机号注册-接口返参
*/
@Data
public class RegisterResultDTO implements Serializable {
private static final long serialVersionUID = 3253989119352850315L;
/**
* userId
*/
private String userId;
/**
* 用户微信openid
*/
private String openId;
/**
* 用户微信unionId
*/
private String unionId;
}

15
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdFeignClient.java

@ -3,12 +3,10 @@ package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.RegisterFormDTO;
import com.epmet.dto.form.SaveUserVisitedFormDTO;
import com.epmet.dto.form.WxLoginFormDTO;
import com.epmet.dto.result.CustomerUserResultDTO;
import com.epmet.dto.result.InitCustomerResultDTO;
import com.epmet.dto.result.PublicCustomerResultDTO;
import com.epmet.dto.result.SaveUserResultDTO;
import com.epmet.dto.result.*;
import com.epmet.feign.fallback.EpmetThirdFeignClientFallback;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
import org.springframework.cloud.openfeign.FeignClient;
@ -106,4 +104,13 @@ public interface EpmetThirdFeignClient {
**/
@PostMapping(value = "third/customermp/getcustomermsg/{appId}")
Result<PublicCustomerResultDTO> getCustomerMsg(@PathVariable("appId") String appId);
/**
* @param formDTO
* @return
* @Author sun
* @Description 用户登陆新增访问记录数据
**/
@PostMapping(value = "third/pacustomer/register")
Result<RegisterResultDTO> register(@RequestBody RegisterFormDTO formDTO);
}

11
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdFeignClientFallback.java

@ -4,12 +4,10 @@ import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.RegisterFormDTO;
import com.epmet.dto.form.SaveUserVisitedFormDTO;
import com.epmet.dto.form.WxLoginFormDTO;
import com.epmet.dto.result.CustomerUserResultDTO;
import com.epmet.dto.result.InitCustomerResultDTO;
import com.epmet.dto.result.PublicCustomerResultDTO;
import com.epmet.dto.result.SaveUserResultDTO;
import com.epmet.dto.result.*;
import com.epmet.feign.EpmetThirdFeignClient;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
import org.springframework.stereotype.Component;
@ -65,4 +63,9 @@ public class EpmetThirdFeignClientFallback implements EpmetThirdFeignClient {
public Result<PublicCustomerResultDTO> getCustomerMsg(String appId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "getCustomerMsg", appId);
}
@Override
public Result<RegisterResultDTO> register(RegisterFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "register", formDTO);
}
}

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

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-third-server:
container_name: epmet-third-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.50
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.51
ports:
- "8110:8110"
network_mode: host # 使用现有网络

2
epmet-module/epmet-third/epmet-third-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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.0.50</version>
<version>0.0.51</version>
<parent>
<groupId>com.epmet</groupId>

7
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaCustomerController.java

@ -45,11 +45,8 @@ public class PaCustomerController {
* @Description 公众号-手机号注册
**/
@PostMapping("register")
public Result register(@LoginUser TokenDto tokenDTO, @RequestBody RegisterFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, RegisterFormDTO.AddUserInternalGroup.class, RegisterFormDTO.AddUserShowGroup.class);
formDTO.setUserId(tokenDTO.getUserId());
paCustomerService.register(formDTO);
return new Result();
public Result<RegisterResultDTO> register(@RequestBody RegisterFormDTO formDTO) {
return new Result<RegisterResultDTO>().ok(paCustomerService.register(formDTO));
}
/**

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java

@ -105,7 +105,7 @@ public interface PaCustomerService extends BaseService<PaCustomerEntity> {
* @Author sun
* @Description 公众号-手机号注册
**/
void register(RegisterFormDTO formDTO);
RegisterResultDTO register(RegisterFormDTO formDTO);
/**
* @return

11
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java

@ -154,7 +154,8 @@ public class PaCustomerServiceImpl extends BaseServiceImpl<PaCustomerDao, PaCust
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void register(RegisterFormDTO formDTO) {
public RegisterResultDTO register(RegisterFormDTO formDTO) {
RegisterResultDTO resultDTO = new RegisterResultDTO();
//0.校验验证码是否正确
String smsCodeKey = RedisKeys.getLoginSmsCodeKey(LoginConstant.APP_PUBLIC, LoginConstant.CLIENT_MP, formDTO.getPhone());
String rightSmsCode = (String) redisUtils.get(smsCodeKey);
@ -208,7 +209,9 @@ public class PaCustomerServiceImpl extends BaseServiceImpl<PaCustomerDao, PaCust
if (paUserVisitedDao.insert(visitedEntity) < NumConstant.ONE) {
throw new RenException(PaConstant.SAVE_VISITED_EXCEPTION);
}
resultDTO.setUserId(userEntity.getId());
resultDTO.setOpenId(wechatEntity.getWxOpenId());
resultDTO.setUnionId(null == wechatEntity.getUnionId() ? "" : wechatEntity.getUnionId());
}else {
//手机为空说明当前微信用户用第一个手机号注册,更新user表数据
//3-1.pa_user表更新数据
@ -236,8 +239,12 @@ public class PaCustomerServiceImpl extends BaseServiceImpl<PaCustomerDao, PaCust
if (paUserVisitedDao.insert(visitedEntity) < NumConstant.ONE) {
throw new RenException(PaConstant.SAVE_VISITED_EXCEPTION);
}
resultDTO.setUserId(userEntity.getId());
resultDTO.setOpenId(wechatEntity.getWxOpenId());
resultDTO.setUnionId(null == wechatEntity.getUnionId() ? "" : wechatEntity.getUnionId());
}
return resultDTO;
}
/**

12
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxLoginServiceImpl.java

@ -50,9 +50,9 @@ public class WxLoginServiceImpl implements WxLoginService {
map.put("component_access_token", componentAccessToken);
String resultStr = HttpClientManager.getInstance().sendGet(WxLoginConstant.WXCODE_BY_OPENID, map).getData();
HashMap<String, String> hashMap = JSON.parseObject(resultStr, HashMap.class);
if (null != hashMap.get("errorCode")) {
if (null != hashMap.get("errcode")) {
logger.error("wxcode换取openid接口调用失败");
throw new RenException(hashMap.get("errorMsg"));
throw new RenException(hashMap.get("errmsg"));
}
String openid = hashMap.get("openid");
String sessionKey = hashMap.get("session_key");
@ -60,15 +60,19 @@ public class WxLoginServiceImpl implements WxLoginService {
//2.换取用户基本信息
//小程序access_token
Map<String, Object> accessMap = redisUtils.hGetAll(ThirdRedisKeyConstant.AUTH_INFO_REDIS_KEY + ":" + customerId + ":" + clientType);
if(null==accessMap.get("authorizer_access_token")){
logger.error("获取缓存中小程序access_token失败");
throw new RenException("access_token获取失败");
}
Map<String, Object> hash = new HashMap<>();
hash.put("access_token", accessMap.get("authorizer_access_token"));
hash.put("openid", openid);
hash.put("lang", "zh_CN");
String getStr = HttpClientManager.getInstance().sendGet(WxLoginConstant.OPENID_TO_INFORMATION, map).getData();
HashMap<String, String> resultMap = JSON.parseObject(getStr, HashMap.class);
if (null != resultMap.get("errorCode")) {
if (null != resultMap.get("errcode")) {
logger.error("openid和access_token换取微信用户基本信息接口调用失败");
throw new RenException(resultMap.get("errorMsg"));
throw new RenException(resultMap.get("errormsg"));
}
//3.返回结果

Loading…
Cancel
Save