forked from kidgrow-microservices-platform

zhaoxiaohao
2020-07-10 1e0ed9d181d1c877d635f8f9b2b5a25a6b6f078f
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
@@ -7,6 +7,7 @@
import com.kidgrow.common.context.ClientContextHolder;
import com.kidgrow.common.model.*;
import com.kidgrow.common.utils.ExcelUtil;
import com.kidgrow.common.utils.StringUtils;
import com.kidgrow.log.annotation.AuditLog;
import com.kidgrow.searchcenter.client.service.IQueryService;
import com.kidgrow.searchcenter.model.LogicDelDto;
@@ -15,6 +16,7 @@
import com.kidgrow.usercenter.model.SysUserExcel;
import com.kidgrow.usercenter.model.SysUserLogs;
import com.kidgrow.usercenter.service.ISysUserService;
import com.kidgrow.usercenter.vo.UserRegVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -47,6 +49,7 @@
@Api(tags = "用户模块api")
public class SysUserController {
    private static final String ADMIN_CHANGE_MSG = "超级管理员不给予修改";
    /**
     * 全文搜索逻辑删除Dto
@@ -83,7 +86,6 @@
    @ApiOperation(value = "根据用户名查询用户实体")
    @Cacheable(value = "user", key = "#username")
    public SysUser selectByUsername(@PathVariable String username) {
        return appUserService.selectByUsername(username);
    }
@@ -92,21 +94,22 @@
     */
    @GetMapping(value = "/users-anon/login", params = "username")
    @ApiOperation(value = "根据用户名查询用户")
    public LoginAppUser findByUsername(String username,HttpServletRequest request) {
    public LoginAppUser findByUsername(String username, HttpServletRequest request) {
        LoginAppUser loginAppUser =appUserService.findByUsername(username);
        if(loginAppUser!=null){
            loginLogs(loginAppUser,request);
        LoginAppUser loginAppUser = appUserService.findByUsername(username);
        if (loginAppUser != null) {
            loginLogs(loginAppUser, request);
        }
        return loginAppUser;
    }
    /**
     * 用户登录日志
     *
     * @param sysUser
     * @return
     */
    private int loginLogs(LoginAppUser sysUser,HttpServletRequest request){
    private int loginLogs(LoginAppUser sysUser, HttpServletRequest request) {
        SysUserLogs sysUserLogs = new SysUserLogs();
        sysUserLogs.setClientId(ClientContextHolder.getClient());
        sysUserLogs.setLoginAgentSystem(request.getHeader(CommonConstant.USER_AGENT_SYSTEM));
@@ -152,7 +155,7 @@
     * @param sysUser
     */
    @PutMapping("/users")
    @CachePut(value = "user", key = "#sysUser.username", unless="#result == null")
    @CachePut(value = "user", key = "#sysUser.username", unless = "#result == null")
    @AuditLog(operation = "'更新用户:' + #sysUser")
    public ResultBody updateSysUser(@RequestBody SysUser sysUser) {
        appUserService.updateById(sysUser);
@@ -200,6 +203,21 @@
//        log.info("IP:"+request.getHeader(CommonConstant.USER_AGENT_IP));
        return appUserService.findUsers(params);
    }
    /**
     * 获取医院科室下的所有有效的医生
     * @param hospitalId
     * @param departmentId
     * @return
     */
    @ApiOperation(value = "用户查询列表")
    @GetMapping("/users/HDoctorusers")
    public ResultBody hospitalDoctorList(@RequestParam Long hospitalId, Long departmentId,boolean isIncluddel) {
        if (StringUtils.isNotBlank(hospitalId.toString()) && StringUtils.isNotBlank(departmentId.toString())) {
            return appUserService.hospitalDoctorList(hospitalId, departmentId,isIncluddel);
        } else {
            return ResultBody.failed("查询参数有误");
        }
    }
    /**
     * 修改用户状态
@@ -223,6 +241,7 @@
    /**
     * 管理后台,给用户重置密码
     * 重置密码后,会将新密码返回到data字段。
     *
     * @param id
     */
@@ -232,8 +251,7 @@
        if (checkAdmin(id)) {
            return ResultBody.failed(ADMIN_CHANGE_MSG);
        }
        appUserService.updatePassword(id, null, null);
        return ResultBody.ok().msg("重置成功");
        return appUserService.updatePassword(id, null, null, true);
    }
    /**
@@ -244,8 +262,46 @@
        if (checkAdmin(sysUser.getId())) {
            return ResultBody.failed().msg(ADMIN_CHANGE_MSG);
        }
        appUserService.updatePassword(sysUser.getId(), sysUser.getOldPassword(), sysUser.getNewPassword());
        return ResultBody.ok().msg("重置成功");
        ResultBody resultBody = appUserService.updatePassword(sysUser.getId(), sysUser.getOldPassword(), sysUser.getNewPassword(), false);
        return resultBody;
    }
    /**
     * 用户自己修改密码-后端以外
     */
    @PutMapping(value = "/users/resetpassword")
    public ResultBody resetClientPassword(@RequestParam Map<String, Object> params) {
        Long id = MapUtils.getLong(params, "id");
        String oldPassword = MapUtils.getString(params, "oldPassword");
        String newPassword = MapUtils.getString(params, "newPassword");
        String refPassword = MapUtils.getString(params, "refPassword");
        if (id > 0 && !oldPassword.isEmpty() && !newPassword.isEmpty() && !refPassword.isEmpty()) {
            if (refPassword.equals(newPassword)) {
                return appUserService.updatePassword(id, oldPassword, newPassword, false).data(true).msg("密码修改成功!");
            } else {
                return ResultBody.failed("两次新密码输入不一致!").data(false);
            }
        } else {
            return ResultBody.failed("必须参数有误!").data(false);
        }
    }
    /**
     * 用户修改自己的手机号
     *
     * @param params
     * @return
     */
    @PutMapping(value = "/users/updateusertel")
    public ResultBody updateUserTel(@RequestParam Map<String, Object> params,@LoginUser SysUser sysUser) {
        String oldTel = MapUtils.getString(params, "oldTel");
        if (oldTel==null){
            return ResultBody.failed("请输入原账号");
        }
        if(!sysUser.getUsername().equals(oldTel)){
            return ResultBody.failed("请输入正确的原账号");
        }
        return appUserService.updateUserTel(params);
    }
    /**
@@ -259,8 +315,8 @@
        if (checkAdmin(id)) {
            return ResultBody.failed(ADMIN_CHANGE_MSG);
        }
        appUserService.delUser(id);
        return ResultBody.ok().msg("删除成功");
        boolean v = appUserService.delUser(id);
        return ResultBody.ok().msg("删除成功").data(v);
    }
@@ -275,6 +331,18 @@
    @AuditLog(operation = "'新增或更新用户:' + #sysUser.username")
    public ResultBody saveOrUpdate(@RequestBody SysUser sysUser) {
        return appUserService.saveOrUpdateUser(sysUser);
    }
    /**
     * 用户注册,添加用户
     * @param userRegVo 注册信息
     * @param sysUser  当前登录用户
     * @return
     */
    @PostMapping("/users/doctorUserReg")
    @AuditLog(operation = "'注册/添加用户:' + #userRegVo.mobile")
    public ResultBody doctorUserReg(@RequestBody UserRegVo userRegVo,SysUser sysUser) {
        return appUserService.doctorUserReg(userRegVo,sysUser);
    }
    /**
@@ -294,7 +362,7 @@
    @PostMapping(value = "/users/import")
    public ResultBody importExcl(@RequestParam("file") MultipartFile excl) throws Exception {
        int rowNum = 0;
        if(!excl.isEmpty()) {
        if (!excl.isEmpty()) {
            List<SysUserExcel> list = ExcelUtil.importExcel(excl, 0, 1, SysUserExcel.class);
            rowNum = list.size();
            if (rowNum > 0) {
@@ -309,7 +377,7 @@
                appUserService.saveBatch(users);
            }
        }
        return ResultBody.ok().msg("导入数据成功,一共【"+rowNum+"】行");
        return ResultBody.ok().msg("导入数据成功,一共【" + rowNum + "】行");
    }
    @ApiOperation(value = "用户全文搜索列表")
@@ -332,25 +400,74 @@
    private boolean checkAdmin(long id) {
        return id == 1L;
    }
    @PostMapping("/users/findAll")
    public ResultBody findAll( @RequestBody  Map<String,Object> map) {
    public ResultBody findAll(@RequestBody Map<String, Object> map) {
        return appUserService.findAll(map);
    }
    /**
     * 根据map查询   总个数
     *
     * @param map
     * @return
     */
    @PostMapping("/users/findCountByMap")
    public ResultBody findCountByMap( @RequestBody  Map<String,Object> map) {
    public ResultBody findCountByMap(@RequestBody Map<String, Object> map) {
        return appUserService.findCountByMap(map);
    }
    /**
     * 获取当前用的 组织下的所有人员
     */
    @GetMapping("users/getThisUserOrganizationUser")
    public ResultBody getThisUserOrganizationUser(HttpServletRequest request){
    public ResultBody getThisUserOrganizationUser(HttpServletRequest request) {
        return appUserService.getThisUserOrganizationUser(request);
    }
    /**
     * 通过手机修改密码
     */
    @PutMapping(value = "/users/passwordByPhone")
    public ResultBody passwordByPhone(@RequestBody Map<String, Object> map) {
        return appUserService.passwordByPhone(map);
    }
    /**
     * 通过手机号注册 新用户
     */
    @PutMapping(value = "/users/registerByPhone")
    public ResultBody registerByPhone(@RequestBody Map<String, Object> map) {
        return appUserService.registerByPhone(map);
    }
    /**
     * 更换手机号
     */
    @PutMapping(value = "/users/updatePhone")
    public ResultBody updatePhone(@RequestBody Map<String, Object> map, @LoginUser SysUser sysUser) {
        return appUserService.updatePhone(map, sysUser);
    }
    /**
     * 获取指定用户信息(销售人员和服务人员)
     */
    @GetMapping("users/getAppointUser")
    public ResultBody getAppointUser() {
        String type = request.getParameter("type");
        return appUserService.findAppointUsers(Integer.parseInt(type));
    }
    /**
     * 检查该手机号是否注册 false 未注册  true已经注册
     */
    @GetMapping("users/isRegUser")
    public ResultBody isRegUser(String userTel) {
        if(appUserService.phoneIsUsed(userTel))
        {
            return ResultBody.ok().data(true);
        }
        return ResultBody.failed().data(false);
    }
}