Browse Source

更新用户微信信息接口 init

dev
liuchuang 7 years ago
parent
commit
30c1185923
  1. 36
      esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserMaInfoFormDTO.java
  2. 15
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java
  3. 12
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
  4. 5
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
  5. 12
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java
  6. 55
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
  7. 15
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java

36
esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserMaInfoFormDTO.java

@ -0,0 +1,36 @@
package com.elink.esua.epdc.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
*
* 更新用户微信信息Form DTO
*
* @Authorliuchuang
* @Date2019/10/25 15:55
*/
@Data
public class EpdcAppUserMaInfoFormDTO implements Serializable {
private static final long serialVersionUID = 201029992792275120L;
/**
* 微信code
*/
@NotBlank(message = "微信code不能为空")
private String wxCode;
/**
* 用户信息
*/
@NotBlank(message = "用户信息不能为空")
private String encryptedData;
/**
* 加密算法的初始向量
*/
@NotBlank(message = "初始向量不能为空")
private String iv;
}

15
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java

@ -198,6 +198,21 @@ public class ApiAppUserController {
return appUserService.getMaV2Token(formDto);
}*/
/**
*
* 更新用户微信信息
*
* @params [tokenDto, formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/28 9:58
*/
@PostMapping("user/ma/updateWxInfo")
public Result updateWxInfo(@LoginUser TokenDto tokenDto, EpdcAppUserMaInfoFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return appUserService.updateWxInfo(tokenDto, formDto);
}
/**
* 用户完善个人信息-保存
*

12
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java

@ -238,4 +238,16 @@ public interface UserFeignClient {
*/
@PostMapping("app-user/epdc-app/user/registerOrBindGrid")
Result<EpdcUserRegisterInfoResultDTO> registerOrBindGrid(EpdcUserRegisterBindGridFormDTO formDto);
/**
*
* 更新用户微信信息
*
* @params [userDTO]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/25 17:07
*/
@PostMapping("app-user/epdc-app/user/updateWxInfo")
Result updateWxInfo(UserDTO userDTO);
}

5
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java

@ -115,4 +115,9 @@ public class UserFeignClientFallback implements UserFeignClient {
public Result<EpdcUserRegisterInfoResultDTO> registerOrBindGrid(EpdcUserRegisterBindGridFormDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "registerOrBindGrid", formDto);
}
@Override
public Result updateWxInfo(UserDTO userDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "updateWxInfo", userDTO);
}
}

12
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java

@ -81,7 +81,6 @@ public interface AppUserService {
* @author yujintao
* @date 2019/9/10 20:34
*/
@Deprecated
Result<EpdcAppAuthorizationDTO> getMaToken(EpdcAppUserMaTokenFormDTO formDto);
/**
@ -155,6 +154,17 @@ public interface AppUserService {
*/
Result<EpdcAppAuthorizationDTO> getMaV2Token(EpdcAppUserRegisterFormDTO formDto);
/**
*
* 更新用户微信信息
*
* @params [userDetail, formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/25 16:26
*/
Result updateWxInfo(TokenDto userDetail, EpdcAppUserMaInfoFormDTO formDto);
/**
* 用户完善个人信息-保存
*

55
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java

@ -645,7 +645,6 @@ public class AppUserServiceImpl implements AppUserService {
TokenDto tokenDto = ConvertUtils.sourceToTarget(userResult.getUserDTO(), TokenDto.class);
tokenDto.setUserId(userResult.getUserDTO().getId());
EpdcAppAuthorizationDTO authorization = this.packageEpdcAppAuthorization(tokenDto, userResult.getGrid(), userResult.getUserDTO().getState());
authorization.setUserState(userResult.getUserDTO().getState());
return new Result<EpdcAppAuthorizationDTO>().ok(authorization);
}
@ -796,7 +795,61 @@ public class AppUserServiceImpl implements AppUserService {
gridRelationDTO.setGrid(completeDept.getGrid());
gridRelationDTO.setGridId(completeDept.getGridId());
gridRelationDTO.setSwitchedTime(new Date());
gridRelationDTO.setLeaderFlag(NumConstant.ZERO_STR);
return gridRelationDTO;
}
@Override
public Result updateWxInfo(TokenDto userDetail, EpdcAppUserMaInfoFormDTO formDto) {
if (null == userDetail || StringUtils.isEmpty(userDetail.getUserId())) {
return new Result().error("获取用户信息失败");
}
String sessionKey = this.getUserSessionKey(formDto.getWxCode());
WxMaUserInfo wxMaUserInfo = wxMaService.getUserService().getUserInfo(sessionKey, formDto.getEncryptedData(), formDto.getIv());
UserDTO userDTO = new UserDTO();
userDTO.setId(userDetail.getUserId());
userDTO.setNickname(wxMaUserInfo.getNickName());
userDTO.setFaceImg(wxMaUserInfo.getAvatarUrl());
userDTO.setSex(wxMaUserInfo.getGender());
Result updateWxInfoResult = userFeignClient.updateWxInfo(userDTO);
if (!updateWxInfoResult.success()) {
return new Result().error("更新用户信息失败");
}
// 更新用户缓存信息
TokenDto tokenDto = ConvertUtils.sourceToTarget(userDTO, TokenDto.class);
tokenDto.setUserId(userDetail.getUserId());
tokenDto.setGridId(userDetail.getGridId());
tokenDto.setMobile(userDetail.getMobile());
tokenDto.setPartyFlag(userDetail.getPartyFlag());
tokenDto.setRealName(userDetail.getRealName());
long expire = cpUserDetailRedis.getExpire(userDetail.getUserId());
cpUserDetailRedis.logout(userDetail.getUserId());
cpUserDetailRedis.set(tokenDto, expire);
return new Result();
}
/**
*
* 根据微信code获取session_key
*
* @params [code]
* @return java.lang.String
* @author liuchuang
* @since 2019/10/25 16:31
*/
private String getUserSessionKey(String code) {
try {
WxMaJscode2SessionResult wxMaJscode2SessionResult = wxMaService.jsCode2SessionInfo(code);
if (wxMaJscode2SessionResult != null) {
return wxMaJscode2SessionResult.getSessionKey();
}
} catch (WxErrorException e) {
e.printStackTrace();
throw new RenException(e.getError().getErrorMsg());
}
return null;
}
}

15
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java

@ -185,6 +185,21 @@ public class EpdcAppUserController {
return userService.saveUserOrBindGrid(fromDto);
}
/**
*
* 更新用户微信信息
*
* @params [userDTO]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/25 17:10
*/
@PostMapping("updateWxInfo")
public Result updateWxInfo(@RequestBody UserDTO userDTO) {
userService.update(userDTO);
return new Result();
}
/**
* 验证用户完善个人信息时提交的数据
*

Loading…
Cancel
Save