package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; 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; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.UserDTO; import com.epmet.dto.UserWechatDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.service.UserService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * @Description * @Author yinzuomei * @Date 2020/3/30 12:42 */ @RestController @RequestMapping("user") public class UserController { @Autowired private UserService userService; /** * @param formDTO * @return com.epmet.commons.tools.utils.Result * @Author yinzuomei * @Description 根据openId、app查询对应终端用户信息 * @Date 2020/3/16 16:15 **/ @PostMapping("selecWxLoginUserInfo") public Result selecWxLoginUserInfo(@RequestBody WxLoginUserInfoFormDTO formDTO){ ValidatorUtils.validateEntity(formDTO); return userService.selecWxLoginUserInfo(formDTO); } /** * @param userWechatDTO * @return 将获取到的居民微信信息,保存到user_wechat表,返回主键 * @Author yinzuomei * @Description * @Date 2020/3/16 15:49 **/ @NoRepeatSubmit @PostMapping("saveOrUpdateUserWechatDTO") public Result saveOrUpdateUserWechatDTO(@RequestBody UserWechatDTO userWechatDTO) { //效验数据 ValidatorUtils.validateEntity(userWechatDTO, AddGroup.class, DefaultGroup.class); return userService.saveOrUpdateUserWechatDTO(userWechatDTO); } /** * @param passwordLoginUserInfoFormDTO * @return com.epmet.commons.tools.utils.Result * @Author yinzuomei * @Description 根据手机号、app获取对应终端用户信息 * @Date 2020/3/16 16:15 **/ @PostMapping("selectLoginUserInfoByPassword") public Result selectLoginUserInfoByPassword(@RequestBody PasswordLoginUserInfoFormDTO passwordLoginUserInfoFormDTO) { //效验数据 ValidatorUtils.validateEntity(passwordLoginUserInfoFormDTO); Result result= userService.selectLoginUserInfoByPassword(passwordLoginUserInfoFormDTO); return result; } /** * @param wxUserInfoFormDTO * @Author sun * @Description 居民端个人信息-同步用户微信信息 **/ @NoRepeatSubmit @PostMapping("updatewxuserinfo") public Result updateWxUserInfo(@LoginUser TokenDto tokenDTO, @RequestBody WxUserInfoFormDTO wxUserInfoFormDTO) { wxUserInfoFormDTO.setUserId(tokenDTO.getUserId()); ValidatorUtils.validateEntity(wxUserInfoFormDTO); return userService.updateWxUserInfo(wxUserInfoFormDTO); } /** * * @Description 查询用户注册时间 * @Author zxc * @CreatedTime 2020/4/27 16:14 */ @PostMapping("selectcreatedtimebyuserid") public Result createdTimeByUserId(@RequestBody CreatedTimeByUserIdFormDTO formDTO){ return new Result().ok(userService.createdTimeByUserId(formDTO)); } /** * @Description 居民端获取个人信息 * @param myResiUserInfoFormDTO * @return MyResiUserInfoResultDTO * @author wangc * @date 2020.05.22 19:24 **/ @PostMapping("resimyselfmsg") public Result resiMyselfMsg(@RequestBody MyResiUserInfoFormDTO myResiUserInfoFormDTO){ ValidatorUtils.validateEntity(myResiUserInfoFormDTO); return new Result().ok(userService.resiMyselfMsg(myResiUserInfoFormDTO)); } /** * 从缓存中查询已登录用户的基本信息以及角色等相关信息 * @return */ @PostMapping("loginuserdetails") public Result getLoginUserDetails(@RequestBody LoginUserDetailsFormDTO dto) { ValidatorUtils.validateEntity(dto, StaffPermCacheFormDTO.GetStaffCurrPermissions.class); LoginUserDetailsResultDTO govTokenDto = userService.getLoginUserDetails(dto.getApp(), dto.getClient(), dto.getUserId()); return new Result().ok(govTokenDto); } /** * @param formDTO * @Author sun * @Description 小程序微信用户登陆,新增或更新用户信息 **/ @NoRepeatSubmit @PostMapping("savewxuser") public Result saveWxUser(@RequestBody WxUserFormDTO formDTO){ return new Result().ok(userService.saveWxUser(formDTO)); } /** * 居民端个人信息-同步用户微信信息 * 供Feign调用 * * @param wxUserInfoFormDTO * @return com.epmet.commons.tools.utils.Result * @Author zhangyong * @Date 14:51 2020-07-23 **/ @NoRepeatSubmit @PostMapping("updateUserBaseAndWxUserInfo") public Result updateUserBaseAndWxUserInfo(@RequestBody WxUserInfoFormDTO wxUserInfoFormDTO) { ValidatorUtils.validateEntity(wxUserInfoFormDTO); return userService.updateWxUserInfo(wxUserInfoFormDTO); } /** * @Author sun * @Description 居民端-查询用户基础信息 返回值只有userId 、openId **/ @PostMapping("getuserbasicinfo") public Result getUserBasicInfo(@RequestBody UserBasicInfoFormDTO formDTO){ ValidatorUtils.validateEntity(formDTO, UserBasicInfoFormDTO.UserBasicInfoGroup.class); return new Result().ok(userService.getUserBasicInfo(formDTO)); } /** * @Description 新增或更新用户信息 * @Param formDTO * @author zxc * @date 2021/1/19 上午10:35 */ @NoRepeatSubmit @PostMapping("saveuserinfo") public Result saveUserInfo(@RequestBody UserInfoFormDTO formDTO){ ValidatorUtils.validateEntity(formDTO, UserInfoFormDTO.UserInfoForm.class); return new Result().ok(userService.saveUserInfo(formDTO)); } /** * 根据userId查询用户所属终端,是居民端的用户还是工作人员,还是运营人员 * * @param userId * @return com.epmet.commons.tools.utils.Result * @author yinzuomei * @date 2021/9/10 8:49 上午 */ @GetMapping("queryUserClient/{userId}") public Result queryUserClient(@PathVariable String userId){ if(StringUtils.isBlank(userId)){ return new Result<>(); } return new Result().ok(userService.queryUserClient(userId)); } /** * 根据身份证号||ic_resi_user.id找居民端小程序里的人 * * * @param formDTO * @return */ @PostMapping("findepmetuser") public Result findEpmetUser(@RequestBody ResiUserFormDTO formDTO){ ValidatorUtils.validateEntity(formDTO,ResiUserFormDTO.AddUserInternalGroup.class); return new Result().ok(userService.findEpmetUser(formDTO)); } /** * 查找居民端小程序里的用户对应ic里的人。以及家属们 * * @param findIcUserFormDTO * @return */ @PostMapping(value = "findicuser") public Result findIcUser(@RequestBody FindIcUserFormDTO findIcUserFormDTO){ ValidatorUtils.validateEntity(findIcUserFormDTO,FindIcUserFormDTO.AddUserInternalGroup.class); return new Result().ok(userService.findIcUser(findIcUserFormDTO)); } }