Browse Source

loginbywxcode接口修改:encryptedData、iv不必填

dev
yinzuomei 6 years ago
parent
commit
2d5f732402
  1. 52
      epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java
  2. 2
      epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/dto/form/LoginByWxCodeFormDTO.java
  3. 7
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerUserDTO.java
  4. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerUserEntity.java
  5. 20
      epmet-user/epmet-user-server/src/main/resources/mapper/CustomerUserDao.xml

52
epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java

@ -124,29 +124,35 @@ public class LoginServiceImpl implements LoginService {
* @since 2020/3/14 19:34 * @since 2020/3/14 19:34
*/ */
private String getUserId(LoginByWxCodeFormDTO formDTO, WxMaJscode2SessionResult wxMaJscode2SessionResult) { private String getUserId(LoginByWxCodeFormDTO formDTO, WxMaJscode2SessionResult wxMaJscode2SessionResult) {
WxLoginUserInfoFormDTO wxLoginUserInfoFormDTO=new WxLoginUserInfoFormDTO(); WxLoginUserInfoFormDTO wxLoginUserInfoFormDTO = new WxLoginUserInfoFormDTO();
wxLoginUserInfoFormDTO.setApp(formDTO.getApp()); wxLoginUserInfoFormDTO.setApp(formDTO.getApp());
wxLoginUserInfoFormDTO.setOpenId(wxMaJscode2SessionResult.getOpenid()); wxLoginUserInfoFormDTO.setOpenId(wxMaJscode2SessionResult.getOpenid());
Result<String> userResult=epmetUserFeignClient.selecWxLoginUserInfo(wxLoginUserInfoFormDTO); Result<String> userResult = epmetUserFeignClient.selecWxLoginUserInfo(wxLoginUserInfoFormDTO);
String userId=""; String userId = "";
if(!userResult.success()){ if (!userResult.success()) {
throw new RenException("获取用户信息失败"+userResult.getMsg()); throw new RenException("获取用户信息失败" + userResult.getMsg());
} }
userId= (String) userResult.getData(); userId = (String) userResult.getData();
if (StringUtils.isBlank(userId)&&LoginConstant.APP_GOV.equals(formDTO.getApp())) { if (StringUtils.isBlank(userId) && LoginConstant.APP_GOV.equals(formDTO.getApp())) {
//查询customer_staff待完善 //查询customer_staff待完善
} else if (StringUtils.isBlank(userId)&&LoginConstant.APP_OPER.equals(formDTO.getApp())) { } else if (StringUtils.isBlank(userId) && LoginConstant.APP_OPER.equals(formDTO.getApp())) {
//查询oper_user待完善 //查询oper_user待完善
} else if (StringUtils.isBlank(userId)&&LoginConstant.APP_RESI.equals(formDTO.getApp())) { } else if (StringUtils.isBlank(userId) && LoginConstant.APP_RESI.equals(formDTO.getApp())) {
//查询customer_user //查询customer_user
WxMaUserInfo wxMaUserInfo = wxMaServiceUtils.resiWxMaService().getUserService() CustomerUserDTO customerUserDTO = new CustomerUserDTO();
.getUserInfo(wxMaJscode2SessionResult.getSessionKey(), if (StringUtils.isNotBlank(formDTO.getIv()) && StringUtils.isNotBlank(formDTO.getEncryptedData())) {
formDTO.getEncryptedData(), WxMaUserInfo wxMaUserInfo = wxMaServiceUtils.resiWxMaService().getUserService()
formDTO.getIv()); .getUserInfo(wxMaJscode2SessionResult.getSessionKey(),
CustomerUserDTO customerUserDTO=this.packageCustomerUserDTO(wxMaUserInfo); formDTO.getEncryptedData(),
Result<String> saveCustomerUserResult=epmetUserFeignClient.saveCustomerUser(customerUserDTO); formDTO.getIv());
if(!saveCustomerUserResult.success()){ customerUserDTO = this.packageCustomerUserDTO(wxMaUserInfo);
throw new RenException("创建用户失败"+userResult.getMsg()); } else {
customerUserDTO.setWxOpenId(wxMaJscode2SessionResult.getOpenid());
customerUserDTO.setUnionId(wxMaJscode2SessionResult.getUnionid());
}
Result<String> saveCustomerUserResult = epmetUserFeignClient.saveCustomerUser(customerUserDTO);
if (!saveCustomerUserResult.success()) {
throw new RenException("创建用户失败" + userResult.getMsg());
} }
userId = saveCustomerUserResult.getData(); userId = saveCustomerUserResult.getData();
} }
@ -222,22 +228,22 @@ public class LoginServiceImpl implements LoginService {
public Result<UserTokenResultDTO> loginByPassword(LoginByPassWordFormDTO formDTO) { public Result<UserTokenResultDTO> loginByPassword(LoginByPassWordFormDTO formDTO) {
//1、验证码是否正确 //1、验证码是否正确
boolean flag = captchaService.validate(formDTO.getUuid(), formDTO.getCaptcha()); boolean flag = captchaService.validate(formDTO.getUuid(), formDTO.getCaptcha());
if(!flag){ if (!flag) {
return new Result<UserTokenResultDTO>().error(ErrorCode.CAPTCHA_ERROR); return new Result<UserTokenResultDTO>().error(ErrorCode.CAPTCHA_ERROR);
} }
//2、账号是否存在 //2、账号是否存在
//获取用户信息 //获取用户信息
PasswordLoginUserInfoFormDTO passwordLoginUserInfoFormDTO=new PasswordLoginUserInfoFormDTO(); PasswordLoginUserInfoFormDTO passwordLoginUserInfoFormDTO = new PasswordLoginUserInfoFormDTO();
passwordLoginUserInfoFormDTO.setApp(formDTO.getApp()); passwordLoginUserInfoFormDTO.setApp(formDTO.getApp());
passwordLoginUserInfoFormDTO.setPhone(formDTO.getPhone()); passwordLoginUserInfoFormDTO.setPhone(formDTO.getPhone());
Result<PasswordLoginUserInfoResultDTO> userInfoResult=epmetUserFeignClient.selectLoginUserInfoByPassword(passwordLoginUserInfoFormDTO); Result<PasswordLoginUserInfoResultDTO> userInfoResult = epmetUserFeignClient.selectLoginUserInfoByPassword(passwordLoginUserInfoFormDTO);
logger.info(userInfoResult.getCode()+userInfoResult.getMsg()); logger.info(userInfoResult.getCode() + userInfoResult.getMsg());
if(!userInfoResult.success()||null==userInfoResult.getData()){ if (!userInfoResult.success() || null == userInfoResult.getData()) {
return new Result<UserTokenResultDTO>().error("账号不存在"); return new Result<UserTokenResultDTO>().error("账号不存在");
} }
//3、密码是否正确 //3、密码是否正确
//密码错误 //密码错误
if(!PasswordUtils.matches(formDTO.getPassword(),userInfoResult.getData().getPassWord())){ if (!PasswordUtils.matches(formDTO.getPassword(), userInfoResult.getData().getPassWord())) {
throw new RenException(ErrorCode.ACCOUNT_PASSWORD_ERROR); throw new RenException(ErrorCode.ACCOUNT_PASSWORD_ERROR);
} }
//4、生成token返回,且将TokenDto存到redis //4、生成token返回,且将TokenDto存到redis

2
epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/dto/form/LoginByWxCodeFormDTO.java

@ -23,12 +23,10 @@ public class LoginByWxCodeFormDTO extends LoginCommonFormDTO implements Serializ
/** /**
* 用户信息 * 用户信息
*/ */
@NotBlank(message = "用户信息不能为空")
private String encryptedData; private String encryptedData;
/** /**
* 加密算法的初始向量 * 加密算法的初始向量
*/ */
@NotBlank(message = "初始向量不能为空")
private String iv; private String iv;
} }

7
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerUserDTO.java

@ -48,6 +48,11 @@ public class CustomerUserDTO implements Serializable {
*/ */
private String wxOpenId; private String wxOpenId;
/**
* 微信unionId
*/
private String unionId;
/** /**
* 手机号 * 手机号
*/ */
@ -118,4 +123,4 @@ public class CustomerUserDTO implements Serializable {
*/ */
private Date updatedTime; private Date updatedTime;
} }

5
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerUserEntity.java

@ -48,6 +48,11 @@ public class CustomerUserEntity extends BaseEpmetEntity {
*/ */
private String wxOpenId; private String wxOpenId;
/**
* 微信unionId
*/
private String unionId;
/** /**
* 手机号 * 手机号
*/ */

20
epmet-user/epmet-user-server/src/main/resources/mapper/CustomerUserDao.xml

@ -3,26 +3,6 @@
<mapper namespace="com.epmet.dao.CustomerUserDao"> <mapper namespace="com.epmet.dao.CustomerUserDao">
<resultMap type="com.epmet.entity.CustomerUserEntity" id="customerUserMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="wxOpenId" column="WX_OPEN_ID"/>
<result property="mobile" column="MOBILE"/>
<result property="nickname" column="NICKNAME"/>
<result property="sex" column="SEX"/>
<result property="headImgUrl" column="HEAD_IMG_URL"/>
<result property="country" column="COUNTRY"/>
<result property="province" column="PROVINCE"/>
<result property="city" column="CITY"/>
<result property="language" column="LANGUAGE"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<!-- 根据openId查询居民用户信息 --> <!-- 根据openId查询居民用户信息 -->
<select id="selectCustomerIdByOpenId" parameterType="java.lang.String" resultType="java.lang.String"> <select id="selectCustomerIdByOpenId" parameterType="java.lang.String" resultType="java.lang.String">
SELECT SELECT

Loading…
Cancel
Save