From 08f1b1f1804a8bd833d42f257908d80e88387b55 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 14 三月 2025 11:27:47 +0800 Subject: [PATCH] 3.5增加登录验证、修改密码、人员列表调整 --- flower_city/src/main/java/com/dg/core/controller/UserController.java | 271 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 228 insertions(+), 43 deletions(-) diff --git a/flower_city/src/main/java/com/dg/core/controller/UserController.java b/flower_city/src/main/java/com/dg/core/controller/UserController.java index 48deac4..b831eec 100644 --- a/flower_city/src/main/java/com/dg/core/controller/UserController.java +++ b/flower_city/src/main/java/com/dg/core/controller/UserController.java @@ -4,20 +4,21 @@ import com.dg.core.HttpStatus; import com.dg.core.ResultData; import com.dg.core.annotation.Authorization; +import com.dg.core.annotation.CurrentUser; +import com.dg.core.db.gen.entity.HuaChengSysUser; import com.dg.core.db.gen.entity.SysUser; import com.dg.core.manager.TokenManager; +import com.dg.core.service.IHuaChengSysUserService; import com.dg.core.util.SmsUtil; +import com.dg.core.util.Snowflake; import com.dg.core.util.TableDataInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.repository.query.Param; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.time.LocalDateTime; import java.util.HashMap; @@ -27,17 +28,21 @@ @Api(tags = {"用户接口"}) @RestController @RequestMapping("/user") -public class UserController extends BaseController{ +public class UserController extends BaseController { @Autowired com.dg.core.service.ISysUserService IUserService; @Autowired SmsUtil smsUtil; - - @Autowired TokenManager tokenManager; + + /** + * 花城e+用户接口 + */ + @Autowired + IHuaChengSysUserService iHuaChengSysUserService; @ApiOperation("登录接口") @PostMapping(path = "/login") @@ -45,31 +50,112 @@ Assert.notNull(account, "username can not be empty"); Assert.notNull(password, "password can not be empty"); - SysUser user = IUserService.getUserByAccount(account); - if (user == null || !password.equals(user.getPassword())) { - //提示用户名或密码错误 - return ResultData.fail(HttpStatus.UNAUTHORIZED, "用户名或密码错误"); + SysUser user=null; + //管理员登录 + user= IUserService.getUserByAccount(account); + + if(user==null) + { + List<HuaChengSysUser> list=iHuaChengSysUserService.selectData("",account,""); + HuaChengSysUser huaChengSysUser=null; + + if(list!=null && list.size()>0 ) + { + huaChengSysUser=list.get(0); + } + + if(huaChengSysUser==null || !password.equals(huaChengSysUser.getPassword())) + { + //提示用户名或密码错误 + return ResultData.fail(HttpStatus.UNAUTHORIZED, "用户名或密码错误"); + } + + //本地表查询用户 + user = IUserService.selectData(huaChengSysUser.getUserId()+"",null,null); + if (user == null) { + //本地没有此用户 新用户 + SysUser newSysUser=new SysUser(); + //默认 1系统后台用户 + newSysUser.setUserType("3"); + newSysUser.setPhonenumber(huaChengSysUser.getPhone()); + newSysUser.setUserId(huaChengSysUser.getUserId()); + newSysUser.setUserName(huaChengSysUser.getNickName()); + newSysUser.setSex(huaChengSysUser.getSex()); + newSysUser.setAvatar(huaChengSysUser.getImageUrl()); + newSysUser.setCreateTime(LocalDateTime.now()); + newSysUser.setUpdateTime(LocalDateTime.now()); + newSysUser.setOpenid(huaChengSysUser.getOpenid()); + IUserService.insertConfig(newSysUser); + } + + user = IUserService.selectData(huaChengSysUser.getUserId()+"",null,null); + + if (user == null) { + return ResultData.error("用户不存在!请联系管理员"); + } + + String token = tokenManager.getTokenByUserId(user.getUserId()); + System.out.println("token "+token); + if (token == null) { + //生成一个token,保存用户登录状态 + token = tokenManager.createToken(user.getUserId(), user.getUserId()); + } + + user.setLoginDate(LocalDateTime.now()); + //更新登录时间 + IUserService.updateConfig(user); + + Map<String, Object> map = new HashMap<>(); + map.put("token", token); + map.put("userId", user.getUserId()); + map.put("userName", user.getUserName()); + map.put("permission", user.getPermission()); + map.put("userType", user.getUserType()); + map.put("departmentId", user.getDepartmentId()); + map.put("departmentName", user.getDepartmentName()); + map.put("moreDepartmentIds", user.getMoreDepartmentIds()); + + return ResultData.success(map); + } + else + { + if(StringUtils.equals("4",user.getUserType())) + { + //提示用户名或密码错误 + return ResultData.fail(HttpStatus.UNAUTHORIZED, "账户不存在"); + } + + if(!password.equals(user.getPassword())) + { + //提示用户名或密码错误 + return ResultData.fail(HttpStatus.UNAUTHORIZED, "用户名或密码错误"); + } + String token = tokenManager.getTokenByUserId(user.getUserId()); + System.out.println("token "+token); + if (token == null) { + //生成一个token,保存用户登录状态 + token = tokenManager.createToken(user.getUserId(), user.getUserId()); + } + + user.setLoginDate(LocalDateTime.now()); + //更新登录时间 + IUserService.updateConfig(user); + + Map<String, Object> map = new HashMap<>(); + map.put("token", token); + map.put("userId", user.getUserId()); + map.put("userName", user.getUserName()); + map.put("permission", user.getPermission()); + map.put("userType", user.getUserType()); + map.put("departmentId", user.getDepartmentId()); + map.put("departmentName", user.getDepartmentName()); + map.put("moreDepartmentIds", user.getMoreDepartmentIds()); + + return ResultData.success(map); } - String token = tokenManager.getTokenByUserId(user.getUserId()); -// String token = tokenManager.createToken(user.getUserId(), user.getRoleId()); - System.out.println("token "+token); - if (token == null) { - //生成一个token,保存用户登录状态 - token = tokenManager.createToken(user.getUserId(), user.getUserId()); - } - - user.setLoginDate(LocalDateTime.now()); - //更新登录时间 - IUserService.updateConfig(user); - - Map<String, Object> map = new HashMap<>(); - map.put("token", token); - map.put("userId", user.getUserId()); - map.put("userName", user.getUserName()); - - return ResultData.success(map); } + @ApiOperation("发送登录短信验证码") @PostMapping(value = "/sendSms", consumes = "application/json") @@ -77,10 +163,23 @@ return IUserService.smsSend(user); } + @ApiOperation("账号密码验证登录") @GetMapping(value = "/loginByAccount") public ResultData loginByAccount(@RequestParam String phonenumber,@RequestParam String code) { return IUserService.loginByAccount(phonenumber,code); + } + + + @ApiOperation("通过手机号获取用户信息 登录") + @PostMapping(value = "/loginPhionne") + public ResultData loginPhionne(@RequestParam String phonenumber) + { + if(StringUtils.isEmpty(phonenumber)) + { + return ResultData.error("请输入手机号"); + } + return IUserService.loginByPhonenumber(phonenumber); } /** @@ -92,14 +191,15 @@ @GetMapping("/getlist") @Authorization public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum, - @RequestParam(value = "pageSize",required = false) Integer pageSize) + @RequestParam(value = "pageSize",required = false) Integer pageSize, + @RequestParam(value = "keyword",required = false) String keyword) { Assert.notNull(pageNum, "pageNum can not be empty"); Assert.notNull(pageSize, "pageSize can not be empty"); Page<SysUser> pageParam = new Page<>(pageNum,pageSize); - List<SysUser> list = IUserService.selectConfigList(pageParam,pageSize,"1"); + List<SysUser> list = IUserService.selectConfigList(pageParam,pageSize,null,keyword,null,"1"); - int num=IUserService.selectNum("1"); + int num=IUserService.selectNum(null,keyword,null,"1"); return getDataTable(list,num); } @@ -113,7 +213,7 @@ @ApiOperation("新增用户接口") @PostMapping("/add") @Authorization - public ResultData insertConfig(@RequestBody SysUser config) + public ResultData insertConfig(@RequestBody SysUser config, @CurrentUser SysUser sysUser) { Assert.notNull(config, "parameter can not be empty"); @@ -132,14 +232,68 @@ return error("昵称不能为空"); } - SysUser user = IUserService.getUserByAccount(config.getLoginName()); - if (user != null) { - //提示用户名或密码错误 - return error("该账户已存在!"); + if(StringUtils.isEmpty(config.getPhonenumber())) + { + return error("手机号不能为空"); } - config.setUserType("1"); + + + SysUser user = IUserService.selectData("",config.getPhonenumber(),""); + SysUser user2 = IUserService.selectData("","",config.getLoginName()); + if (user != null) { + if(StringUtils.equals("4",user.getUserType())) + { + config.setUserId(user.getUserId()); + config.setCreateBy(user.getUserId()+""); + config.setUserType("3"); + config.setIsDivisionHead("1"); + config.setUpdateTime(LocalDateTime.now()); + config.setMasterIds(user2.getMasterIds()); + config.setDepartmentIds(config.getDepartmentIds()); + config.setDepartmentIdStr(config.getDepartmentIdStr()); + config.setMattersIds(config.getMattersIds()); + config.setMasterNames(config.getMasterNames()); + config.setMattersNames(config.getMattersNames()); + return toAjax(IUserService.updateConfig(config)); + } + else + { + //提示用户名或密码错误 + return error("该用户已存在!"); + } + } + + if(user2 != null) + { + if(StringUtils.equals("4",user2.getUserType())) + { + config.setUserId(user2.getUserId()); + config.setCreateBy(user2.getUserId()+""); + config.setUserType("3"); + config.setIsDivisionHead("1"); + config.setUpdateTime(LocalDateTime.now()); + config.setMasterIds(user2.getMasterIds()); + config.setDepartmentIds(config.getDepartmentIds()); + config.setDepartmentIdStr(config.getDepartmentIdStr()); + config.setMattersIds(config.getMattersIds()); + config.setMasterNames(config.getMasterNames()); + config.setMattersNames(config.getMattersNames()); + return toAjax(IUserService.updateConfig(config)); + } + else + { + //提示用户名或密码错误 + return error("该用户已存在!"); + } + } + + config.setCreateBy(sysUser.getUserId()+""); + config.setUserId(Snowflake.getId()+""); + config.setUserType("3"); + config.setIsDivisionHead("1"); + config.setMoreDepartmentIds(config.getDepartmentId()); config.setCreateTime(LocalDateTime.now()); config.setUpdateTime(LocalDateTime.now()); @@ -155,11 +309,11 @@ @ApiOperation("修改用户接口") @PostMapping("/update") @Authorization - public ResultData updateConfig(@RequestBody SysUser config) + public ResultData updateConfig(@RequestBody SysUser config,@CurrentUser SysUser sys) { - if(config.getUserId()==null) + if(config.getId()==null) { - return error("userId不能为空"); + return error("Id不能为空"); } if(StringUtils.isEmpty(config.getLoginName())) @@ -167,7 +321,14 @@ return error("账户不能为空"); } - config.setUserType("1"); + if(StringUtils.isEmpty(config.getDepartmentId())) + { + return error("请选择部门"); + } + + config.setMoreDepartmentIds(config.getDepartmentId()); + config.setPassword(null); + config.setUpdateBy(sys.getUserId()+""); return toAjax(IUserService.updateConfig(config)); } @@ -206,7 +367,7 @@ return error("userId不能为空"); } - SysUser sysUser=IUserService.getUserById(Long.valueOf(userId)); + SysUser sysUser=IUserService.selectData(userId,null,null); //删除标志(0代表存在 2代表删除) sysUser.setDelFlag("2"); return toAjax(IUserService.updateConfig(sysUser)); @@ -234,7 +395,7 @@ return error("密码不能为空"); } - SysUser sysUser=IUserService.getUserById(config.getUserId()); + SysUser sysUser=IUserService.selectData(config.getUserId()+"",null,null); if(sysUser==null) { return error("用户不存在"); @@ -249,6 +410,30 @@ } + /** + * 获取登录人员信息 + * + * @return 结果 + */ + @ApiOperation(value = "获取登录人员信息,userType=1 为超级管理员 isDivisionHead=1 为部门领导",response = SysUser.class) + @PostMapping("/getLoginInformation") + @Authorization + public ResultData getLoginInformation(@CurrentUser SysUser sysUse) + { + return ResultData.success(sysUse); + } + + + + + @ApiOperation("切换部门接口") + @GetMapping(value = "/switch/department") + public ResultData switchDepartment(@RequestParam(value = "departmentId",required = false) String departmentId, + @CurrentUser SysUser sysUse) + { + sysUse.setDepartmentId(departmentId); + return toAjax(IUserService.updateConfig(sysUse)); + } -- Gitblit v1.7.1