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;
@@ -84,7 +86,6 @@
    @ApiOperation(value = "根据用户名查询用户实体")
    @Cacheable(value = "user", key = "#username")
    public SysUser selectByUsername(@PathVariable String username) {
        return appUserService.selectByUsername(username);
    }
@@ -93,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));
@@ -153,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);
@@ -201,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("查询参数有误");
        }
    }
    /**
     * 修改用户状态
@@ -224,7 +241,8 @@
    /**
     * 管理后台,给用户重置密码
     *重置密码后,会将新密码返回到data字段。
     * 重置密码后,会将新密码返回到data字段。
     *
     * @param id
     */
    @PutMapping(value = "/users/{id}/password")
@@ -233,7 +251,7 @@
        if (checkAdmin(id)) {
            return ResultBody.failed(ADMIN_CHANGE_MSG);
        }
        return appUserService.updatePassword(id, null, null,true);
        return appUserService.updatePassword(id, null, null, true);
    }
    /**
@@ -244,43 +262,48 @@
        if (checkAdmin(sysUser.getId())) {
            return ResultBody.failed().msg(ADMIN_CHANGE_MSG);
        }
        appUserService.updatePassword(sysUser.getId(), sysUser.getOldPassword(), sysUser.getNewPassword(),false);
        return ResultBody.ok().data(true).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()) {
        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 appUserService.updatePassword(id, oldPassword, newPassword, false).data(true).msg("密码修改成功!");
            } else {
                return ResultBody.failed("两次新密码输入不一致!").data(false);
            }
        }
        else
        {
        } else {
            return ResultBody.failed("必须参数有误!").data(false);
        }
    }
    /**
     * 用户修改自己的手机号
     *
     * @param params
     * @return
     */
    @PutMapping(value="/users/updateusertel")
    public ResultBody updateUserTel(@RequestParam Map<String,Object> params)
    {
    @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);
    }
    /**
     * 删除用户
     *
@@ -292,8 +315,8 @@
        if (checkAdmin(id)) {
            return ResultBody.failed(ADMIN_CHANGE_MSG);
        }
        appUserService.delUser(id);
        return ResultBody.ok().msg("删除成功").data(true);
        boolean v = appUserService.delUser(id);
        return ResultBody.ok().msg("删除成功").data(v);
    }
@@ -308,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);
    }
    /**
@@ -327,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) {
@@ -342,7 +377,7 @@
                appUserService.saveBatch(users);
            }
        }
        return ResultBody.ok().msg("导入数据成功,一共【"+rowNum+"】行");
        return ResultBody.ok().msg("导入数据成功,一共【" + rowNum + "】行");
    }
    @ApiOperation(value = "用户全文搜索列表")
@@ -365,56 +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) {
    public ResultBody passwordByPhone(@RequestBody Map<String, Object> map) {
        return appUserService.passwordByPhone(map);
    }
    /**
     * 通过手机号注册 新用户
     */
    @PutMapping(value = "/users/registerByPhone")
    public ResultBody registerByPhone(@RequestBody Map<String,Object> map) {
    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);
    public ResultBody updatePhone(@RequestBody Map<String, Object> map, @LoginUser SysUser sysUser) {
        return appUserService.updatePhone(map, sysUser);
    }
    /**
     * 获取指定用户信息(销售人员和服务人员)
     */
    @GetMapping("users/getAppointUser")
    public ResultBody 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);
    }
}