You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

213 lines
7.2 KiB

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<UserDTO> 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<UserDTO> saveOrUpdateUserWechatDTO(@RequestBody UserWechatDTO userWechatDTO) {
//效验数据
ValidatorUtils.validateEntity(userWechatDTO, AddGroup.class, DefaultGroup.class);
return userService.saveOrUpdateUserWechatDTO(userWechatDTO);
}
/**
* @param passwordLoginUserInfoFormDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.PasswordLoginUserInfoResultDTO>
* @Author yinzuomei
* @Description 根据手机号、app获取对应终端用户信息
* @Date 2020/3/16 16:15
**/
@PostMapping("selectLoginUserInfoByPassword")
public Result<PasswordLoginUserInfoResultDTO> selectLoginUserInfoByPassword(@RequestBody PasswordLoginUserInfoFormDTO passwordLoginUserInfoFormDTO) {
//效验数据
ValidatorUtils.validateEntity(passwordLoginUserInfoFormDTO);
Result<PasswordLoginUserInfoResultDTO> 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<CreatedTimeByUserIdResultDTO> createdTimeByUserId(@RequestBody CreatedTimeByUserIdFormDTO formDTO){
return new Result<CreatedTimeByUserIdResultDTO>().ok(userService.createdTimeByUserId(formDTO));
}
/**
* @Description 居民端获取个人信息
* @param myResiUserInfoFormDTO
* @return MyResiUserInfoResultDTO
* @author wangc
* @date 2020.05.22 19:24
**/
@PostMapping("resimyselfmsg")
public Result<MyResiUserInfoResultDTO> resiMyselfMsg(@RequestBody MyResiUserInfoFormDTO myResiUserInfoFormDTO){
ValidatorUtils.validateEntity(myResiUserInfoFormDTO);
return new Result<MyResiUserInfoResultDTO>().ok(userService.resiMyselfMsg(myResiUserInfoFormDTO));
}
/**
* 从缓存中查询已登录用户的基本信息以及角色等相关信息
* @return
*/
@PostMapping("loginuserdetails")
public Result<LoginUserDetailsResultDTO> getLoginUserDetails(@RequestBody LoginUserDetailsFormDTO dto) {
ValidatorUtils.validateEntity(dto, StaffPermCacheFormDTO.GetStaffCurrPermissions.class);
LoginUserDetailsResultDTO govTokenDto = userService.getLoginUserDetails(dto.getApp(), dto.getClient(), dto.getUserId());
return new Result<LoginUserDetailsResultDTO>().ok(govTokenDto);
}
/**
* @param formDTO
* @Author sun
* @Description 小程序微信用户登陆,新增或更新用户信息
**/
@NoRepeatSubmit
@PostMapping("savewxuser")
public Result<UserDTO> saveWxUser(@RequestBody WxUserFormDTO formDTO){
return new Result<UserDTO>().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<UserBasicInfo> getUserBasicInfo(@RequestBody UserBasicInfoFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, UserBasicInfoFormDTO.UserBasicInfoGroup.class);
return new Result<UserBasicInfo>().ok(userService.getUserBasicInfo(formDTO));
}
/**
* @Description 新增或更新用户信息
* @Param formDTO
* @author zxc
* @date 2021/1/19 上午10:35
*/
@NoRepeatSubmit
@PostMapping("saveuserinfo")
public Result<UserDTO> saveUserInfo(@RequestBody UserInfoFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, UserInfoFormDTO.UserInfoForm.class);
return new Result<UserDTO>().ok(userService.saveUserInfo(formDTO));
}
/**
* 根据userId查询用户所属终端,是居民端的用户还是工作人员,还是运营人员
*
* @param userId
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.UserDTO>
* @author yinzuomei
* @date 2021/9/10 8:49 上午
*/
@GetMapping("queryUserClient/{userId}")
public Result<UserDTO> queryUserClient(@PathVariable String userId){
if(StringUtils.isBlank(userId)){
return new Result<>();
}
return new Result<UserDTO>().ok(userService.queryUserClient(userId));
}
/**
* 根据身份证号||ic_resi_user.id找居民端小程序里的人
*
*
* @param formDTO
* @return
*/
@PostMapping("findepmetuser")
public Result<ResiUserResDTO> findEpmetUser(@RequestBody ResiUserFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,ResiUserFormDTO.AddUserInternalGroup.class);
return new Result<ResiUserResDTO>().ok(userService.findEpmetUser(formDTO));
}
/**
* 查找居民端小程序里的用户对应ic里的人。以及家属们
*
* @param findIcUserFormDTO
* @return
*/
@PostMapping(value = "findicuser")
public Result<EpmetUserFamilyDTO> findIcUser(@RequestBody FindIcUserFormDTO findIcUserFormDTO){
ValidatorUtils.validateEntity(findIcUserFormDTO,FindIcUserFormDTO.AddUserInternalGroup.class);
return new Result<EpmetUserFamilyDTO>().ok(userService.findIcUser(findIcUserFormDTO));
}
}