From debe9487dba1c571848a4f79dca95c7278f280c2 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Thu, 9 Apr 2020 15:24:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=AB=AF=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF-=E5=90=8C=E6=AD=A5=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/form/WxUserInfoFormDTO.java | 42 +++++++++++++++++++ .../com/epmet/controller/UserController.java | 16 +++++++ .../java/com/epmet/service/UserService.java | 8 ++++ .../epmet/service/impl/UserServiceImpl.java | 29 ++++++++++++- .../main/resources/mapper/UserWechatDao.xml | 3 +- 5 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/WxUserInfoFormDTO.java diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/WxUserInfoFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/WxUserInfoFormDTO.java new file mode 100644 index 0000000000..2e1fee31da --- /dev/null +++ b/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; + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java index 1f471bcca0..6081d38fe1 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java +++ b/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 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); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java index 887d7ede43..09cd2e5bd1 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java +++ b/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 { * @Date 2020/3/16 15:49 **/ Result selectLoginUserInfoByPassword(PasswordLoginUserInfoFormDTO passwordLoginUserInfoFormDTO); + + /** + * @param wxUserInfoFormDTO + * @Author sun + * @Description 居民端个人信息-同步用户微信信息 + **/ + Result updateWxUserInfo(WxUserInfoFormDTO wxUserInfoFormDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java index 3f84f91f72..ad18ef11d4 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java +++ b/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 implem /** * 根据openId、app查询对应终端用户信息 - * + *

* 居民端用户与政府端用户都在一张表内且都有微信登录的入口 * user_wechat表保存每一个用户和微信(openId)的绑定关系 * @@ -43,7 +46,7 @@ public class UserServiceImpl extends BaseServiceImpl implem */ @Override public Result selecWxLoginUserInfo(WxLoginUserInfoFormDTO formDTO) { - UserDTO userDTO=userWechatDao.selectUserDTOByOpenId(formDTO); + UserDTO userDTO = userWechatDao.selectUserDTOByOpenId(formDTO); return new Result().ok(userDTO); } @@ -90,4 +93,26 @@ public class UserServiceImpl extends BaseServiceImpl implem } return new Result().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(); + } } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserWechatDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserWechatDao.xml index c177b6fe84..08e6a3ad9e 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserWechatDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserWechatDao.xml @@ -31,7 +31,8 @@ SEX = #{sex}, - UPDATED_TIME = sysdate + UPDATED_BY = #{updatedBy}, + UPDATED_TIME = #{updatedTime} WHERE USER_ID = #{userId}