Browse Source

居民端个人信息-同步用户微信信息接口

dev
sunyuchao 5 years ago
parent
commit
debe9487db
  1. 42
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/WxUserInfoFormDTO.java
  2. 16
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java
  3. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java
  4. 29
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java
  5. 3
      epmet-user/epmet-user-server/src/main/resources/mapper/UserWechatDao.xml

42
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/WxUserInfoFormDTO.java

@ -0,0 +1,42 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 同步用户微信信息接口入参DTO
* @Author sun
*/
@Data
public class WxUserInfoFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
//@NotBlank(message = "用户Id不能为空")
private String userId;
//@NotBlank(message = "昵称不能为空")
private String nickName;
/**
* 性别0未知1男性2女性
*/
@NotBlank(message = "性别不能为空")
private String gender;
@NotBlank(message = "头像不能为空")
private String avatarUrl;
//@NotBlank(message = "所在省份不能为空")
private String province;
//@NotBlank(message = "所在国家不能为空")
private String country;
//@NotBlank(message = "所在城市不能为空")
private String city;
}

16
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java

@ -1,5 +1,7 @@
package com.epmet.controller;
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.commons.tools.validator.group.AddGroup;
@ -8,6 +10,7 @@ import com.epmet.dto.UserDTO;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.PasswordLoginUserInfoFormDTO;
import com.epmet.dto.form.WxLoginUserInfoFormDTO;
import com.epmet.dto.form.WxUserInfoFormDTO;
import com.epmet.dto.result.PasswordLoginUserInfoResultDTO;
import com.epmet.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
@ -70,4 +73,17 @@ public class UserController {
Result<PasswordLoginUserInfoResultDTO> result= userService.selectLoginUserInfoByPassword(passwordLoginUserInfoFormDTO);
return result;
}
/**
* @param wxUserInfoFormDTO
* @Author sun
* @Description 居民端个人信息-同步用户微信信息
**/
@PostMapping("updatewxuserinfo")
public Result updateWxUserInfo(@LoginUser TokenDto tokenDTO, @RequestBody WxUserInfoFormDTO wxUserInfoFormDTO) {
wxUserInfoFormDTO.setUserId(tokenDTO.getUserId());
ValidatorUtils.validateEntity(wxUserInfoFormDTO);
return userService.updateWxUserInfo(wxUserInfoFormDTO);
}
}

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

@ -7,6 +7,7 @@ import com.epmet.dto.UserDTO;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.PasswordLoginUserInfoFormDTO;
import com.epmet.dto.form.WxLoginUserInfoFormDTO;
import com.epmet.dto.form.WxUserInfoFormDTO;
import com.epmet.dto.result.PasswordLoginUserInfoResultDTO;
import com.epmet.entity.UserEntity;
@ -47,4 +48,11 @@ public interface UserService extends BaseService<UserEntity> {
* @Date 2020/3/16 15:49
**/
Result<PasswordLoginUserInfoResultDTO> selectLoginUserInfoByPassword(PasswordLoginUserInfoFormDTO passwordLoginUserInfoFormDTO);
/**
* @param wxUserInfoFormDTO
* @Author sun
* @Description 居民端个人信息-同步用户微信信息
**/
Result updateWxUserInfo(WxUserInfoFormDTO wxUserInfoFormDTO);
}

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

@ -11,6 +11,7 @@ import com.epmet.dto.UserDTO;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.PasswordLoginUserInfoFormDTO;
import com.epmet.dto.form.WxLoginUserInfoFormDTO;
import com.epmet.dto.form.WxUserInfoFormDTO;
import com.epmet.dto.result.PasswordLoginUserInfoResultDTO;
import com.epmet.entity.UserEntity;
import com.epmet.entity.UserWechatEntity;
@ -19,6 +20,8 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* @Description
@ -33,7 +36,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
/**
* 根据openIdapp查询对应终端用户信息
*
* <p>
* 居民端用户与政府端用户都在一张表内且都有微信登录的入口
* user_wechat表保存每一个用户和微信(openId)的绑定关系
*
@ -43,7 +46,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
*/
@Override
public Result<UserDTO> selecWxLoginUserInfo(WxLoginUserInfoFormDTO formDTO) {
UserDTO userDTO=userWechatDao.selectUserDTOByOpenId(formDTO);
UserDTO userDTO = userWechatDao.selectUserDTOByOpenId(formDTO);
return new Result<UserDTO>().ok(userDTO);
}
@ -90,4 +93,26 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
}
return new Result<PasswordLoginUserInfoResultDTO>().ok(passwordLoginUserInfoResultDTO);
}
/**
* @param wxUserInfoFormDTO
* @Author sun
* @Description 居民端个人信息-同步用户微信信息
**/
@Override
public Result updateWxUserInfo(WxUserInfoFormDTO wxUserInfoFormDTO) {
UserWechatDTO userWechatDTO = new UserWechatDTO();
//前台和后台已有实体字段不对于 需要挨个赋值
userWechatDTO.setUserId(wxUserInfoFormDTO.getUserId());
userWechatDTO.setNickname(wxUserInfoFormDTO.getNickName() == null ? null : wxUserInfoFormDTO.getNickName());
userWechatDTO.setSex(Integer.parseInt(wxUserInfoFormDTO.getGender()));
userWechatDTO.setHeadImgUrl(wxUserInfoFormDTO.getAvatarUrl());
userWechatDTO.setCountry(wxUserInfoFormDTO.getCountry() == null ? null : wxUserInfoFormDTO.getCountry());
userWechatDTO.setProvince(wxUserInfoFormDTO.getProvince() == null ? null : wxUserInfoFormDTO.getProvince());
userWechatDTO.setCity(wxUserInfoFormDTO.getCity() == null ? null : wxUserInfoFormDTO.getCity());
userWechatDTO.setUpdatedTime(new Date());
userWechatDTO.setUpdatedBy(wxUserInfoFormDTO.getUserId());
userWechatDao.updateByUserId(userWechatDTO);
return new Result();
}
}

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

@ -31,7 +31,8 @@
<if test='null != sex and "" != sex '>
SEX = #{sex},
</if>
UPDATED_TIME = sysdate
UPDATED_BY = #{updatedBy},
UPDATED_TIME = #{updatedTime}
</set>
WHERE
USER_ID = #{userId}

Loading…
Cancel
Save