|
@@ -39,291 +39,298 @@ import java.util.*;
|
|
|
*/
|
|
|
@RestController
|
|
|
@RequestMapping("/sys")
|
|
|
-@Api(tags="用户登录")
|
|
|
+@Api(tags = "用户登录")
|
|
|
@Slf4j
|
|
|
public class LoginController {
|
|
|
- @Autowired
|
|
|
- private ISysUserService sysUserService;
|
|
|
- @Autowired
|
|
|
- private ISysBaseAPI sysBaseAPI;
|
|
|
- @Autowired
|
|
|
- private ISysLogService logService;
|
|
|
- @Autowired
|
|
|
+ @Autowired
|
|
|
+ private ISysUserService sysUserService;
|
|
|
+ @Autowired
|
|
|
+ private ISysBaseAPI sysBaseAPI;
|
|
|
+ @Autowired
|
|
|
+ private ISysLogService logService;
|
|
|
+ @Autowired
|
|
|
private RedisUtil redisUtil;
|
|
|
- @Autowired
|
|
|
+ @Autowired
|
|
|
private ISysDepartService sysDepartService;
|
|
|
|
|
|
- @RequestMapping(value = "/login", method = RequestMethod.POST)
|
|
|
- @ApiOperation("登录接口")
|
|
|
- public Result<JSONObject> login(@RequestBody SysLoginModel sysLoginModel) throws Exception {
|
|
|
- Result<JSONObject> result = new Result<JSONObject>();
|
|
|
- String username = sysLoginModel.getUsername();
|
|
|
- String password = sysLoginModel.getPassword();
|
|
|
- //步骤1:TODO 前端密码加密,后端进行密码解密,防止传输密码篡改等问题,不配就直接提示密码错误,并记录日志后期进行统计分析是否锁定
|
|
|
- password = AesEncryptUtil.desEncrypt(sysLoginModel.getPassword()).trim();//密码解密
|
|
|
- //1. 校验用户是否有效
|
|
|
- SysUser sysUser = sysUserService.getUserByName(username);
|
|
|
- result = sysUserService.checkUserIsEffective(sysUser);
|
|
|
- if(!result.isSuccess()) {
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- //2. 校验用户名或密码是否正确
|
|
|
- String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
|
|
|
- String syspassword = sysUser.getPassword();
|
|
|
- if (!syspassword.equals(userpassword)) {
|
|
|
- result.error500("用户名或密码错误");
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- //用户登录信息
|
|
|
- userInfo(sysUser, result);
|
|
|
- sysBaseAPI.addLog("用户名: " + username + ",登录成功!", CommonConstant.LOG_TYPE_1, null);
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 退出登录
|
|
|
- * @param request
|
|
|
- * @param response
|
|
|
- * @return
|
|
|
- */
|
|
|
- @RequestMapping(value = "/logout")
|
|
|
- public Result<Object> logout(HttpServletRequest request,HttpServletResponse response) {
|
|
|
- //用户退出逻辑
|
|
|
- Subject subject = SecurityUtils.getSubject();
|
|
|
- LoginUser sysUser = (LoginUser)subject.getPrincipal();
|
|
|
- sysBaseAPI.addLog("用户名: "+sysUser.getRealname()+",退出成功!", CommonConstant.LOG_TYPE_1, null);
|
|
|
- log.info(" 用户名: "+sysUser.getRealname()+",退出成功! ");
|
|
|
- subject.logout();
|
|
|
+ @RequestMapping(value = "/login", method = RequestMethod.POST)
|
|
|
+ @ApiOperation("登录接口")
|
|
|
+ public Result<JSONObject> login(@RequestBody SysLoginModel sysLoginModel) throws Exception {
|
|
|
+ Result<JSONObject> result = new Result<JSONObject>();
|
|
|
+ String username = sysLoginModel.getUsername();
|
|
|
+ String password = sysLoginModel.getPassword();
|
|
|
+ //步骤1:TODO 前端密码加密,后端进行密码解密,防止传输密码篡改等问题,不配就直接提示密码错误,并记录日志后期进行统计分析是否锁定
|
|
|
+ password = AesEncryptUtil.desEncrypt(sysLoginModel.getPassword()).trim();//密码解密
|
|
|
+ //1. 校验用户是否有效
|
|
|
+ SysUser sysUser = sysUserService.getUserByName(username);
|
|
|
+ String departId = sysDepartService.selectIdByOrdCode(sysUser.getOrgCode());
|
|
|
+ sysUser.setDepartId(departId);
|
|
|
+ result = sysUserService.checkUserIsEffective(sysUser);
|
|
|
+ if (!result.isSuccess()) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
- String token = request.getHeader(DefContants.X_ACCESS_TOKEN);
|
|
|
- //清空用户Token缓存
|
|
|
- redisUtil.del(CommonConstant.PREFIX_USER_TOKEN + token);
|
|
|
- //清空用户权限缓存:权限Perms和角色集合
|
|
|
- redisUtil.del(CommonConstant.LOGIN_USER_CACHERULES_ROLE + sysUser.getUsername());
|
|
|
- redisUtil.del(CommonConstant.LOGIN_USER_CACHERULES_PERMISSION + sysUser.getUsername());
|
|
|
- return Result.ok("退出登录成功!");
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取访问量
|
|
|
- * @return
|
|
|
- */
|
|
|
- @GetMapping("loginfo")
|
|
|
- public Result<JSONObject> loginfo() {
|
|
|
- Result<JSONObject> result = new Result<JSONObject>();
|
|
|
- JSONObject obj = new JSONObject();
|
|
|
- //update-begin--Author:zhangweijian Date:20190428 for:传入开始时间,结束时间参数
|
|
|
- // 获取一天的开始和结束时间
|
|
|
- Calendar calendar = new GregorianCalendar();
|
|
|
- calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
- calendar.set(Calendar.MINUTE, 0);
|
|
|
- calendar.set(Calendar.SECOND, 0);
|
|
|
- calendar.set(Calendar.MILLISECOND, 0);
|
|
|
- Date dayStart = calendar.getTime();
|
|
|
- calendar.add(Calendar.DATE, 1);
|
|
|
- Date dayEnd = calendar.getTime();
|
|
|
- // 获取系统访问记录
|
|
|
- Long totalVisitCount = logService.findTotalVisitCount();
|
|
|
- obj.put("totalVisitCount", totalVisitCount);
|
|
|
- Long todayVisitCount = logService.findTodayVisitCount(dayStart,dayEnd);
|
|
|
- obj.put("todayVisitCount", todayVisitCount);
|
|
|
- Long todayIp = logService.findTodayIp(dayStart,dayEnd);
|
|
|
- //update-end--Author:zhangweijian Date:20190428 for:传入开始时间,结束时间参数
|
|
|
- obj.put("todayIp", todayIp);
|
|
|
- result.setResult(obj);
|
|
|
- result.success("登录成功");
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取访问量
|
|
|
- * @return
|
|
|
- */
|
|
|
- @GetMapping("visitInfo")
|
|
|
- public Result<List<Map<String,Object>>> visitInfo() {
|
|
|
- Result<List<Map<String,Object>>> result = new Result<List<Map<String,Object>>>();
|
|
|
- Calendar calendar = new GregorianCalendar();
|
|
|
- calendar.set(Calendar.HOUR_OF_DAY,0);
|
|
|
- calendar.set(Calendar.MINUTE,0);
|
|
|
- calendar.set(Calendar.SECOND,0);
|
|
|
- calendar.set(Calendar.MILLISECOND,0);
|
|
|
+ //2. 校验用户名或密码是否正确
|
|
|
+ String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
|
|
|
+ String syspassword = sysUser.getPassword();
|
|
|
+ if (!syspassword.equals(userpassword)) {
|
|
|
+ result.error500("用户名或密码错误");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ //用户登录信息
|
|
|
+ userInfo(sysUser, result);
|
|
|
+ sysBaseAPI.addLog("用户名: " + username + ",登录成功!", CommonConstant.LOG_TYPE_1, null);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 退出登录
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * @param response
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/logout")
|
|
|
+ public Result<Object> logout(HttpServletRequest request, HttpServletResponse response) {
|
|
|
+ //用户退出逻辑
|
|
|
+ Subject subject = SecurityUtils.getSubject();
|
|
|
+ LoginUser sysUser = (LoginUser) subject.getPrincipal();
|
|
|
+ sysBaseAPI.addLog("用户名: " + sysUser.getRealname() + ",退出成功!", CommonConstant.LOG_TYPE_1, null);
|
|
|
+ log.info(" 用户名: " + sysUser.getRealname() + ",退出成功! ");
|
|
|
+ subject.logout();
|
|
|
+
|
|
|
+ String token = request.getHeader(DefContants.X_ACCESS_TOKEN);
|
|
|
+ //清空用户Token缓存
|
|
|
+ redisUtil.del(CommonConstant.PREFIX_USER_TOKEN + token);
|
|
|
+ //清空用户权限缓存:权限Perms和角色集合
|
|
|
+ redisUtil.del(CommonConstant.LOGIN_USER_CACHERULES_ROLE + sysUser.getUsername());
|
|
|
+ redisUtil.del(CommonConstant.LOGIN_USER_CACHERULES_PERMISSION + sysUser.getUsername());
|
|
|
+ return Result.ok("退出登录成功!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取访问量
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @GetMapping("loginfo")
|
|
|
+ public Result<JSONObject> loginfo() {
|
|
|
+ Result<JSONObject> result = new Result<JSONObject>();
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ //update-begin--Author:zhangweijian Date:20190428 for:传入开始时间,结束时间参数
|
|
|
+ // 获取一天的开始和结束时间
|
|
|
+ Calendar calendar = new GregorianCalendar();
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
+ calendar.set(Calendar.MILLISECOND, 0);
|
|
|
+ Date dayStart = calendar.getTime();
|
|
|
+ calendar.add(Calendar.DATE, 1);
|
|
|
+ Date dayEnd = calendar.getTime();
|
|
|
+ // 获取系统访问记录
|
|
|
+ Long totalVisitCount = logService.findTotalVisitCount();
|
|
|
+ obj.put("totalVisitCount", totalVisitCount);
|
|
|
+ Long todayVisitCount = logService.findTodayVisitCount(dayStart, dayEnd);
|
|
|
+ obj.put("todayVisitCount", todayVisitCount);
|
|
|
+ Long todayIp = logService.findTodayIp(dayStart, dayEnd);
|
|
|
+ //update-end--Author:zhangweijian Date:20190428 for:传入开始时间,结束时间参数
|
|
|
+ obj.put("todayIp", todayIp);
|
|
|
+ result.setResult(obj);
|
|
|
+ result.success("登录成功");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取访问量
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @GetMapping("visitInfo")
|
|
|
+ public Result<List<Map<String, Object>>> visitInfo() {
|
|
|
+ Result<List<Map<String, Object>>> result = new Result<List<Map<String, Object>>>();
|
|
|
+ Calendar calendar = new GregorianCalendar();
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
+ calendar.set(Calendar.MILLISECOND, 0);
|
|
|
calendar.add(Calendar.DAY_OF_MONTH, 1);
|
|
|
Date dayEnd = calendar.getTime();
|
|
|
calendar.add(Calendar.DAY_OF_MONTH, -7);
|
|
|
Date dayStart = calendar.getTime();
|
|
|
- List<Map<String,Object>> list = logService.findVisitCount(dayStart, dayEnd);
|
|
|
- result.setResult(oConvertUtils.toLowerCasePageList(list));
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 登陆成功选择用户当前部门
|
|
|
- * @param user
|
|
|
- * @return
|
|
|
- */
|
|
|
- @RequestMapping(value = "/selectDepart", method = RequestMethod.PUT)
|
|
|
- public Result<?> selectDepart(@RequestBody SysUser user) {
|
|
|
- String username = user.getUsername();
|
|
|
- if(oConvertUtils.isEmpty(username)) {
|
|
|
- LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
|
|
|
- username = sysUser.getUsername();
|
|
|
- }
|
|
|
- String orgCode= user.getOrgCode();
|
|
|
- this.sysUserService.updateUserDepart(username, orgCode);
|
|
|
- return Result.ok();
|
|
|
- }
|
|
|
+ List<Map<String, Object>> list = logService.findVisitCount(dayStart, dayEnd);
|
|
|
+ result.setResult(oConvertUtils.toLowerCasePageList(list));
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 登陆成功选择用户当前部门
|
|
|
+ *
|
|
|
+ * @param user
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/selectDepart", method = RequestMethod.PUT)
|
|
|
+ public Result<?> selectDepart(@RequestBody SysUser user) {
|
|
|
+ String username = user.getUsername();
|
|
|
+ if (oConvertUtils.isEmpty(username)) {
|
|
|
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+ username = sysUser.getUsername();
|
|
|
+ }
|
|
|
+ String orgCode = user.getOrgCode();
|
|
|
+ this.sysUserService.updateUserDepart(username, orgCode);
|
|
|
+ return Result.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 短信登录接口
|
|
|
+ *
|
|
|
+ * @param jsonObject
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @PostMapping(value = "/sms")
|
|
|
+ public Result<String> sms(@RequestBody JSONObject jsonObject) {
|
|
|
+ Result<String> result = new Result<String>();
|
|
|
+ String mobile = jsonObject.get("mobile").toString();
|
|
|
+ String smsmode = jsonObject.get("smsmode").toString();
|
|
|
+ log.info(mobile);
|
|
|
+ Object object = redisUtil.get(mobile);
|
|
|
+ if (object != null) {
|
|
|
+ result.setMessage("验证码10分钟内,仍然有效!");
|
|
|
+ result.setSuccess(false);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ //随机数
|
|
|
+ String captcha = RandomUtil.randomNumbers(6);
|
|
|
+ try {
|
|
|
+ boolean b = false;
|
|
|
+ //注册模板
|
|
|
+ if (CommonConstant.SMS_TPL_TYPE_1.equals(smsmode)) {
|
|
|
+ SysUser sysUser = sysUserService.getUserByPhone(mobile);
|
|
|
+ if (sysUser != null) {
|
|
|
+ result.error500(" 手机号已经注册,请直接登录!");
|
|
|
+ sysBaseAPI.addLog("手机号已经注册,请直接登录!", CommonConstant.LOG_TYPE_1, null);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ b = DySmsHelper.sendSms(mobile, captcha, DySmsHelper.REGISTER_TEMPLATE_CODE);
|
|
|
+ } else {
|
|
|
+ //登录模式,校验用户有效性
|
|
|
+ SysUser sysUser = sysUserService.getUserByPhone(mobile);
|
|
|
+ result = sysUserService.checkUserIsEffective(sysUser);
|
|
|
+ if (!result.isSuccess()) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * smsmode 短信模板方式 0 .登录模板、1.注册模板、2.忘记密码模板
|
|
|
+ */
|
|
|
+ if (CommonConstant.SMS_TPL_TYPE_0.equals(smsmode)) {
|
|
|
+ //登录模板
|
|
|
+ b = DySmsHelper.sendSms(mobile, captcha, DySmsHelper.LOGIN_TEMPLATE_CODE);
|
|
|
+ } else if (CommonConstant.SMS_TPL_TYPE_2.equals(smsmode)) {
|
|
|
+ //忘记密码模板
|
|
|
+ b = DySmsHelper.sendSms(mobile, captcha, DySmsHelper.FORGET_PASSWORD_TEMPLATE_CODE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (b == false) {
|
|
|
+ result.setMessage("短信验证码发送失败,请稍后重试");
|
|
|
+ result.setSuccess(false);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ //验证码10分钟内有效
|
|
|
+ redisUtil.set(mobile, captcha, 600);
|
|
|
+ result.setResult(captcha);
|
|
|
+ result.setSuccess(true);
|
|
|
|
|
|
- /**
|
|
|
- * 短信登录接口
|
|
|
- *
|
|
|
- * @param jsonObject
|
|
|
- * @return
|
|
|
- */
|
|
|
- @PostMapping(value = "/sms")
|
|
|
- public Result<String> sms(@RequestBody JSONObject jsonObject) {
|
|
|
- Result<String> result = new Result<String>();
|
|
|
- String mobile = jsonObject.get("mobile").toString();
|
|
|
- String smsmode=jsonObject.get("smsmode").toString();
|
|
|
- log.info(mobile);
|
|
|
- Object object = redisUtil.get(mobile);
|
|
|
- if (object != null) {
|
|
|
- result.setMessage("验证码10分钟内,仍然有效!");
|
|
|
- result.setSuccess(false);
|
|
|
- return result;
|
|
|
- }
|
|
|
+ } catch (ClientException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
- //随机数
|
|
|
- String captcha = RandomUtil.randomNumbers(6);
|
|
|
- try {
|
|
|
- boolean b = false;
|
|
|
- //注册模板
|
|
|
- if (CommonConstant.SMS_TPL_TYPE_1.equals(smsmode)) {
|
|
|
- SysUser sysUser = sysUserService.getUserByPhone(mobile);
|
|
|
- if(sysUser!=null) {
|
|
|
- result.error500(" 手机号已经注册,请直接登录!");
|
|
|
- sysBaseAPI.addLog("手机号已经注册,请直接登录!", CommonConstant.LOG_TYPE_1, null);
|
|
|
- return result;
|
|
|
- }
|
|
|
- b = DySmsHelper.sendSms(mobile, captcha, DySmsHelper.REGISTER_TEMPLATE_CODE);
|
|
|
- }else {
|
|
|
- //登录模式,校验用户有效性
|
|
|
- SysUser sysUser = sysUserService.getUserByPhone(mobile);
|
|
|
- result = sysUserService.checkUserIsEffective(sysUser);
|
|
|
- if(!result.isSuccess()) {
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * smsmode 短信模板方式 0 .登录模板、1.注册模板、2.忘记密码模板
|
|
|
- */
|
|
|
- if (CommonConstant.SMS_TPL_TYPE_0.equals(smsmode)) {
|
|
|
- //登录模板
|
|
|
- b = DySmsHelper.sendSms(mobile, captcha, DySmsHelper.LOGIN_TEMPLATE_CODE);
|
|
|
- } else if(CommonConstant.SMS_TPL_TYPE_2.equals(smsmode)) {
|
|
|
- //忘记密码模板
|
|
|
- b = DySmsHelper.sendSms(mobile, captcha, DySmsHelper.FORGET_PASSWORD_TEMPLATE_CODE);
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- if (b == false) {
|
|
|
- result.setMessage("短信验证码发送失败,请稍后重试");
|
|
|
- result.setSuccess(false);
|
|
|
- return result;
|
|
|
- }
|
|
|
- //验证码10分钟内有效
|
|
|
- redisUtil.set(mobile, captcha, 600);
|
|
|
- result.setResult(captcha);
|
|
|
- result.setSuccess(true);
|
|
|
+ /**
|
|
|
+ * 手机号登录接口
|
|
|
+ *
|
|
|
+ * @param jsonObject
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @PostMapping("/phoneLogin")
|
|
|
+ public Result<JSONObject> login(@RequestBody JSONObject jsonObject) {
|
|
|
+ Result<JSONObject> result = new Result<JSONObject>();
|
|
|
+ String phone = jsonObject.getString("mobile");
|
|
|
|
|
|
- } catch (ClientException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
+ //校验用户有效性
|
|
|
+ SysUser sysUser = sysUserService.getUserByPhone(phone);
|
|
|
+ result = sysUserService.checkUserIsEffective(sysUser);
|
|
|
+ if (!result.isSuccess()) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 手机号登录接口
|
|
|
- *
|
|
|
- * @param jsonObject
|
|
|
- * @return
|
|
|
- */
|
|
|
- @PostMapping("/phoneLogin")
|
|
|
- public Result<JSONObject> login(@RequestBody JSONObject jsonObject) {
|
|
|
- Result<JSONObject> result = new Result<JSONObject>();
|
|
|
- String phone = jsonObject.getString("mobile");
|
|
|
-
|
|
|
- //校验用户有效性
|
|
|
- SysUser sysUser = sysUserService.getUserByPhone(phone);
|
|
|
- result = sysUserService.checkUserIsEffective(sysUser);
|
|
|
- if(!result.isSuccess()) {
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- String smscode = jsonObject.getString("captcha");
|
|
|
- Object code = redisUtil.get(phone);
|
|
|
- if (!smscode.equals(code)) {
|
|
|
- result.setMessage("手机验证码错误");
|
|
|
- return result;
|
|
|
- }
|
|
|
- //用户信息
|
|
|
- userInfo(sysUser, result);
|
|
|
- //添加日志
|
|
|
- sysBaseAPI.addLog("用户名: " + sysUser.getUsername() + ",登录成功!", CommonConstant.LOG_TYPE_1, null);
|
|
|
+ String smscode = jsonObject.getString("captcha");
|
|
|
+ Object code = redisUtil.get(phone);
|
|
|
+ if (!smscode.equals(code)) {
|
|
|
+ result.setMessage("手机验证码错误");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ //用户信息
|
|
|
+ userInfo(sysUser, result);
|
|
|
+ //添加日志
|
|
|
+ sysBaseAPI.addLog("用户名: " + sysUser.getUsername() + ",登录成功!", CommonConstant.LOG_TYPE_1, null);
|
|
|
|
|
|
- return result;
|
|
|
- }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- /**
|
|
|
- * 用户信息
|
|
|
- *
|
|
|
- * @param sysUser
|
|
|
- * @param result
|
|
|
- * @return
|
|
|
- */
|
|
|
- private Result<JSONObject> userInfo(SysUser sysUser, Result<JSONObject> result) {
|
|
|
- String syspassword = sysUser.getPassword();
|
|
|
- String username = sysUser.getUsername();
|
|
|
- // 生成token
|
|
|
- String token = JwtUtil.sign(username, syspassword);
|
|
|
- redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
|
|
|
- // 设置超时时间
|
|
|
- redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 1000);
|
|
|
+ /**
|
|
|
+ * 用户信息
|
|
|
+ *
|
|
|
+ * @param sysUser
|
|
|
+ * @param result
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Result<JSONObject> userInfo(SysUser sysUser, Result<JSONObject> result) {
|
|
|
+ String syspassword = sysUser.getPassword();
|
|
|
+ String username = sysUser.getUsername();
|
|
|
+ // 生成token
|
|
|
+ String token = JwtUtil.sign(username, syspassword);
|
|
|
+ redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
|
|
|
+ // 设置超时时间
|
|
|
+ redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 1000);
|
|
|
|
|
|
- // 获取用户部门信息
|
|
|
- JSONObject obj = new JSONObject();
|
|
|
- List<SysDepart> departs = sysDepartService.queryUserDeparts(sysUser.getId());
|
|
|
- obj.put("departs", departs);
|
|
|
- if (departs == null || departs.size() == 0) {
|
|
|
- obj.put("multi_depart", 0);
|
|
|
- } else if (departs.size() == 1) {
|
|
|
- sysUserService.updateUserDepart(username, departs.get(0).getOrgCode());
|
|
|
- obj.put("multi_depart", 1);
|
|
|
- } else {
|
|
|
- obj.put("multi_depart", 2);
|
|
|
- }
|
|
|
- obj.put("token", token);
|
|
|
- obj.put("userInfo", sysUser);
|
|
|
- result.setResult(obj);
|
|
|
- result.success("登录成功");
|
|
|
- return result;
|
|
|
- }
|
|
|
+ // 获取用户部门信息
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ List<SysDepart> departs = sysDepartService.queryUserDeparts(sysUser.getId());
|
|
|
+ obj.put("departs", departs);
|
|
|
+ if (departs == null || departs.size() == 0) {
|
|
|
+ obj.put("multi_depart", 0);
|
|
|
+ } else if (departs.size() == 1) {
|
|
|
+ sysUserService.updateUserDepart(username, departs.get(0).getOrgCode());
|
|
|
+ obj.put("multi_depart", 1);
|
|
|
+ } else {
|
|
|
+ obj.put("multi_depart", 2);
|
|
|
+ }
|
|
|
+ obj.put("token", token);
|
|
|
+ obj.put("userInfo", sysUser);
|
|
|
+ result.setResult(obj);
|
|
|
+ result.success("登录成功");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 获取加密字符串
|
|
|
- * @return
|
|
|
- */
|
|
|
- @GetMapping(value = "/getEncryptedString")
|
|
|
- public Result<Map<String,String>> getEncryptedString(){
|
|
|
- Result<Map<String,String>> result = new Result<Map<String,String>>();
|
|
|
- Map<String,String> map = new HashMap<String,String>();
|
|
|
- map.put("key", EncryptedString.key);
|
|
|
- map.put("iv",EncryptedString.iv);
|
|
|
- result.setResult(map);
|
|
|
- return result;
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 获取加密字符串
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @GetMapping(value = "/getEncryptedString")
|
|
|
+ public Result<Map<String, String>> getEncryptedString() {
|
|
|
+ Result<Map<String, String>> result = new Result<Map<String, String>>();
|
|
|
+ Map<String, String> map = new HashMap<String, String>();
|
|
|
+ map.put("key", EncryptedString.key);
|
|
|
+ map.put("iv", EncryptedString.iv);
|
|
|
+ result.setResult(map);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|