|
@@ -31,10 +31,7 @@ import org.jeecg.modules.message.websocket.WebSocket;
|
|
|
import org.jeecg.modules.system.entity.SysDepart;
|
|
|
import org.jeecg.modules.system.entity.SysUser;
|
|
|
import org.jeecg.modules.system.model.SysLoginModel;
|
|
|
-import org.jeecg.modules.system.service.ISysDepartService;
|
|
|
-import org.jeecg.modules.system.service.ISysDictService;
|
|
|
-import org.jeecg.modules.system.service.ISysLogService;
|
|
|
-import org.jeecg.modules.system.service.ISysUserService;
|
|
|
+import org.jeecg.modules.system.service.*;
|
|
|
import org.jeecg.modules.system.util.AES;
|
|
|
import org.jeecg.modules.system.util.RandImageUtil;
|
|
|
import org.jeecg.modules.system.util.RestTemplateUtil;
|
|
@@ -69,11 +66,11 @@ public class LoginController {
|
|
|
@Autowired
|
|
|
private ISysLogService logService;
|
|
|
@Autowired
|
|
|
- private RedisUtil redisUtil;
|
|
|
+ private RedisUtil redisUtil;
|
|
|
@Autowired
|
|
|
- private ISysDepartService sysDepartService;
|
|
|
+ private ISysDepartService sysDepartService;
|
|
|
@Autowired
|
|
|
- private ISysDictService sysDictService;
|
|
|
+ private ISysDictService sysDictService;
|
|
|
@Resource
|
|
|
private BaseCommonService baseCommonService;
|
|
|
|
|
@@ -82,7 +79,8 @@ public class LoginController {
|
|
|
|
|
|
@Autowired
|
|
|
private WebSocket webSocket;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ private IWeixinUserService weixinUserService;
|
|
|
|
|
|
|
|
|
private static final String BASE_CHECK_CODES = "qwertyuiplkjhgfdsazxcvbnmQWERTYUPLKJHGFDSAZXCVBNM1234567890";
|
|
@@ -99,12 +97,12 @@ public class LoginController {
|
|
|
|
|
|
|
|
|
|
|
|
- String captcha = sysLoginModel.getCaptcha();
|
|
|
- if(captcha==null){
|
|
|
+ String captcha = sysLoginModel.getCaptcha();
|
|
|
+ if(captcha==null){
|
|
|
|
|
|
|
|
|
- }
|
|
|
- String lowerCaseCaptcha = captcha.toLowerCase();
|
|
|
+ }
|
|
|
+ String lowerCaseCaptcha = captcha.toLowerCase();
|
|
|
String realKey = MD5Util.MD5Encode(lowerCaseCaptcha+sysLoginModel.getCheckKey(), "utf-8");
|
|
|
Object checkCode = redisUtil.get(realKey);
|
|
|
|
|
@@ -113,7 +111,7 @@ public class LoginController {
|
|
|
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
|
|
@@ -124,7 +122,7 @@ public class LoginController {
|
|
|
if(!result.isSuccess()) {
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
|
|
|
String syspassword = sysUser.getPassword();
|
|
@@ -132,17 +130,17 @@ public class LoginController {
|
|
|
result.error500("用户名或密码错误");
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
userInfo(sysUser, result);
|
|
|
|
|
|
LoginUser loginUser = new LoginUser();
|
|
|
BeanUtils.copyProperties(sysUser, loginUser);
|
|
|
baseCommonService.addLog("用户名: " + username + ",登录成功!", CommonConstant.LOG_TYPE_1, null,loginUser);
|
|
|
-
|
|
|
+
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
* 退出登录
|
|
|
* @param request
|
|
@@ -152,32 +150,32 @@ public class LoginController {
|
|
|
@RequestMapping(value = "/logout")
|
|
|
public Result<Object> logout(HttpServletRequest request,HttpServletResponse response) {
|
|
|
|
|
|
- String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN);
|
|
|
- if(oConvertUtils.isEmpty(token)) {
|
|
|
- return Result.error("退出登录失败!");
|
|
|
- }
|
|
|
- String username = JwtUtil.getUsername(token);
|
|
|
+ String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN);
|
|
|
+ if(oConvertUtils.isEmpty(token)) {
|
|
|
+ return Result.error("退出登录失败!");
|
|
|
+ }
|
|
|
+ String username = JwtUtil.getUsername(token);
|
|
|
LoginUser sysUser = sysBaseAPI.getUserByName(username);
|
|
|
- if(sysUser!=null) {
|
|
|
+ if(sysUser!=null) {
|
|
|
|
|
|
baseCommonService.addLog("用户名: "+sysUser.getRealname()+",退出成功!", CommonConstant.LOG_TYPE_1, null,sysUser);
|
|
|
|
|
|
- log.info(" 用户名: "+sysUser.getRealname()+",退出成功! ");
|
|
|
-
|
|
|
- redisUtil.del(CommonConstant.PREFIX_USER_TOKEN + token);
|
|
|
-
|
|
|
+ log.info(" 用户名: "+sysUser.getRealname()+",退出成功! ");
|
|
|
+
|
|
|
+ redisUtil.del(CommonConstant.PREFIX_USER_TOKEN + token);
|
|
|
+
|
|
|
redisUtil.del(CommonConstant.PREFIX_USER_SHIRO_CACHE + sysUser.getId());
|
|
|
|
|
|
redisUtil.del(String.format("%s::%s", CacheConstant.SYS_USERS_CACHE, sysUser.getUsername()));
|
|
|
|
|
|
SecurityUtils.getSubject().logout();
|
|
|
|
|
|
- return Result.ok("退出登录成功!");
|
|
|
- }else {
|
|
|
- return Result.error("Token无效!");
|
|
|
- }
|
|
|
+ return Result.ok("退出登录成功!");
|
|
|
+ }else {
|
|
|
+ return Result.error("Token无效!");
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
* 获取访问量
|
|
|
* @return
|
|
@@ -208,7 +206,7 @@ public class LoginController {
|
|
|
result.success("登录成功");
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
* 获取访问量
|
|
|
* @return
|
|
@@ -218,19 +216,19 @@ public class LoginController {
|
|
|
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);
|
|
|
+ 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
|
|
@@ -255,7 +253,7 @@ public class LoginController {
|
|
|
|
|
|
|
|
|
* 短信登录接口
|
|
|
- *
|
|
|
+ *
|
|
|
* @param jsonObject
|
|
|
* @return
|
|
|
*/
|
|
@@ -281,7 +279,7 @@ public class LoginController {
|
|
|
|
|
|
String captcha = RandomUtil.randomNumbers(6);
|
|
|
JSONObject obj = new JSONObject();
|
|
|
- obj.put("code", captcha);
|
|
|
+ obj.put("code", captcha);
|
|
|
try {
|
|
|
boolean b = false;
|
|
|
|
|
@@ -304,7 +302,7 @@ public class LoginController {
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
* smsmode 短信模板方式 0 .登录模板、1.注册模板、2.忘记密码模板
|
|
|
*/
|
|
@@ -336,11 +334,11 @@ public class LoginController {
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
* 手机号登录接口
|
|
|
- *
|
|
|
+ *
|
|
|
* @param jsonObject
|
|
|
* @return
|
|
|
*/
|
|
@@ -349,14 +347,14 @@ public class LoginController {
|
|
|
public Result<JSONObject> phoneLogin(@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)) {
|
|
@@ -384,7 +382,7 @@ public class LoginController {
|
|
|
String username = sysUser.getUsername();
|
|
|
|
|
|
String token = JwtUtil.sign(username, syspassword);
|
|
|
-
|
|
|
+
|
|
|
redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
|
|
|
redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME*2 / 1000);
|
|
|
|
|
@@ -452,7 +450,48 @@ public class LoginController {
|
|
|
}
|
|
|
return res;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ * app登录
|
|
|
+ * @param
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/mLogins")
|
|
|
+ public Result<JSONObject> mLogins(String code, HttpSession session,HttpServletRequest request) throws Exception {
|
|
|
+ Result<JSONObject> result = new Result<JSONObject>();
|
|
|
+ System.out.println("============code= "+code+"=============");
|
|
|
+ String auts = weixinUserService.auts(code);
|
|
|
+ System.out.println(auts);
|
|
|
+ SysUser byId=null;
|
|
|
+ if (auts!=null){
|
|
|
+ byId = sysUserService.getById(auts);
|
|
|
+ }
|
|
|
+
|
|
|
+ result = sysUserService.checkUserIsEffective(byId);
|
|
|
+ if(!result.isSuccess()) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ String userpassword = PasswordUtil.encrypt(byId.getUsername(), byId.getPassword(), byId.getSalt());
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+
|
|
|
+ obj.put("userInfo", byId);
|
|
|
+
|
|
|
+
|
|
|
+ String token = JwtUtil.sign(byId.getUsername(), userpassword);
|
|
|
+
|
|
|
+ redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
|
|
|
+
|
|
|
+ obj.put("token", token);
|
|
|
+ obj.put("sessionId",session.getId());
|
|
|
+ result.setResult(obj);
|
|
|
+ result.setSuccess(true);
|
|
|
+ result.setCode(200);
|
|
|
+ Map<String,Object>map=new HashMap<>();
|
|
|
+ List<TokenInfo>list=new ArrayList<>();
|
|
|
+ TokenInfo tokenInfo=new TokenInfo();
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
* app登录
|
|
|
* @param sysLoginModel
|
|
@@ -463,45 +502,27 @@ public class LoginController {
|
|
|
public Result<JSONObject> mLogin(@RequestBody SysLoginModel sysLoginModel, HttpSession session,HttpServletRequest request) throws Exception {
|
|
|
Result<JSONObject> result = new Result<JSONObject>();
|
|
|
String username = sysLoginModel.getUsername();
|
|
|
- String password = sysLoginModel.getPassword();
|
|
|
-
|
|
|
-
|
|
|
- SysUser sysUser = sysUserService.getUserByName(username);
|
|
|
- result = sysUserService.checkUserIsEffective(sysUser);
|
|
|
- if(!result.isSuccess()) {
|
|
|
- return result;
|
|
|
+ System.out.println("============code= "+username+"=============");
|
|
|
+ String auts = weixinUserService.auts(username);
|
|
|
+ System.out.println(auts);
|
|
|
+ SysUser byId=null;
|
|
|
+ if (auts!=null){
|
|
|
+ byId = sysUserService.getById(auts);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
|
|
|
- String syspassword = sysUser.getPassword();
|
|
|
- if (!syspassword.equals(userpassword)) {
|
|
|
- result.error500("用户名或密码错误");
|
|
|
+
|
|
|
+ result = sysUserService.checkUserIsEffective(byId);
|
|
|
+ if(!result.isSuccess()) {
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
- String orgCode = sysUser.getOrgCode();
|
|
|
- if(oConvertUtils.isEmpty(orgCode)) {
|
|
|
-
|
|
|
- List<SysDepart> departs = sysDepartService.queryUserDeparts(sysUser.getId());
|
|
|
- if (departs == null || departs.size() == 0) {
|
|
|
- result.error500("用户暂未归属部门,不可登录!");
|
|
|
- return result;
|
|
|
- }
|
|
|
- orgCode = departs.get(0).getOrgCode();
|
|
|
- sysUser.setOrgCode(orgCode);
|
|
|
- this.sysUserService.updateUserDepart(username, orgCode);
|
|
|
- }
|
|
|
+ String userpassword = PasswordUtil.encrypt(byId.getUsername(), byId.getPassword(), byId.getSalt());
|
|
|
JSONObject obj = new JSONObject();
|
|
|
-
|
|
|
- obj.put("userInfo", sysUser);
|
|
|
-
|
|
|
-
|
|
|
- String token = JwtUtil.sign(username, syspassword);
|
|
|
-
|
|
|
+
|
|
|
+ obj.put("userInfo", byId);
|
|
|
+
|
|
|
+
|
|
|
+ String token = JwtUtil.sign(byId.getUsername(), userpassword);
|
|
|
+
|
|
|
redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
|
|
|
- redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME*2 / 1000);
|
|
|
-
|
|
|
|
|
|
obj.put("token", token);
|
|
|
obj.put("sessionId",session.getId());
|
|
@@ -511,7 +532,54 @@ public class LoginController {
|
|
|
Map<String,Object>map=new HashMap<>();
|
|
|
List<TokenInfo>list=new ArrayList<>();
|
|
|
TokenInfo tokenInfo=new TokenInfo();
|
|
|
- baseCommonService.addLog("用户名: " + username + ",登录成功[移动端]!", CommonConstant.LOG_TYPE_1, null);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
return result;
|
|
|
}
|
|
|
|
|
@@ -618,17 +686,17 @@ public class LoginController {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ @RequestMapping(value = "/kjLogin", method = RequestMethod.POST)
|
|
|
+ public Result<JSONObject> kjLogin(@RequestBody WeixinXCX weixinXCX) throws Exception {
|
|
|
+ Result<JSONObject> result = new Result<JSONObject>();
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ String tokenUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code";
|
|
|
+ tokenUrl = tokenUrl.replace("APPID","wx4a24204875735130").replace("SECRET","09316748df749be5f0232c0b280a0f8f").replace("JSCODE", weixinXCX.getCode());
|
|
|
+ ObjectMapper mapper = new ObjectMapper();
|
|
|
+ WeixinXCX weixinXCX1 = mapper.readValue(restTemplateUtil.doGet(tokenUrl).getBody(), new TypeReference<WeixinXCX>() {
|
|
|
+ });
|
|
|
+ String phoneNumber = null;
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -638,8 +706,8 @@ public class LoginController {
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
}
|