From 96286178ee1c257c130cb2ad964a781f36c4eee5 Mon Sep 17 00:00:00 2001 From: yn147 <2270338776@qq.com> Date: 星期三, 10 五月 2023 16:23:27 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/com/qxueyou/scc/sys/action/LoginController.java | 420 +++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 277 insertions(+), 143 deletions(-) diff --git a/src/main/java/com/qxueyou/scc/sys/action/LoginController.java b/src/main/java/com/qxueyou/scc/sys/action/LoginController.java index 7207676..e12d6ee 100644 --- a/src/main/java/com/qxueyou/scc/sys/action/LoginController.java +++ b/src/main/java/com/qxueyou/scc/sys/action/LoginController.java @@ -1,19 +1,30 @@ package com.qxueyou.scc.sys.action; +import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.annotation.Resource; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import com.alibaba.fastjson.JSONObject; import com.qxueyou.scc.base.util.*; +import com.qxueyou.scc.wx.service.IWechatService; +import freemarker.template.utility.StringUtil; import org.apache.commons.lang3.StringUtils; +import org.apache.kafka.common.network.LoginType; +import org.apache.tomcat.util.net.openssl.ciphers.Authentication; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Controller; +import org.springframework.util.DigestUtils; import org.springframework.web.bind.annotation.*; import com.qxueyou.scc.admin.teacher.service.ITeacherService; @@ -43,12 +54,12 @@ import io.swagger.annotations.ApiOperation; /** - * 注册controller 提供注册,登录,注销服务 + * 娉ㄥ唽controller 鎻愪緵娉ㄥ唽锛岀櫥褰曪紝娉ㄩ攢鏈嶅姟 * - * @author 德虎 - * @history 2014-11-25 新建 夏德虎 + * @author 寰疯檸 + * @history 2014-11-25 鏂板缓 澶忓痉铏� */ -@Api(tags="登入相关接口") +@Api(tags="鐧诲叆鐩稿叧鎺ュ彛") @Controller @CrossOrigin(origins="*",maxAge=3600) @EnableConfigurationProperties(SccConfig.class) @@ -86,61 +97,167 @@ @Autowired IStudentService studentService; + @Resource + RedisTemplate redisTemplate; + @Autowired private IOrganizationService organizationService; - public static String UUNUMBER="QXYUUNUMBER"; + /** + * 灏忕▼搴廰ppID + */ + @Value("${wx.appId}") + private String appId; - @ApiOperation(value = "登入接口", notes = "") + + /** + * 灏忕▼搴弒ecret + */ + @Value("${wx.secret}") + private String secret; + + /** + * 鍏紬鍙穉ppID + */ + @Value("${wx.app.appId}") + private String wxappId; + + + /** + * 鍏紬鍙穝ecret + */ + @Value("${wx.app.secret}") + private String wxsecret; + + public static String UUNUMBER="QXYUUNUMBER"; + + @Autowired + IWechatService wechatService; + + /** + * 寰俊鐧诲綍 + * + * @param uid + * @throws IOException + */ + + @PostMapping("/wxAccountsLogin") + @ApiOperation("寰俊鍏紬鍙风櫥褰�") + @ResponseBody + public Result wxAccountsLogin(String code) { + JSONObject gettoken = wechatService.gettoken(wxappId, wxsecret); + JSONObject OpenId = wechatService.getSessionKeyOrOpenId(code); + JSONObject user = wechatService.getUser(gettoken.get("access_token").toString(), OpenId.get("openid").toString()); + return new Result(true,"鎴愬姛",user); + } + + + @PostMapping("/wxlogin") + @ApiOperation("寰俊灏忕▼搴忕櫥褰�") + @ResponseBody + public Result wechatLogin(String code,String number) { + JSONObject sessionKeyOrOpenId = wechatService.getSessionKeyOrOpenId(code); + JSONObject gettoken = wechatService.gettoken(appId, secret); + Result phone = wechatService.getNumber(gettoken.get("access_token").toString(), number); + if(phone.getSuccess()){ + String hql = "from User where deleteFlag is false and mobilePhone = ? "; + System.out.println(phone.getData()); + List<Object> params = CollectionUtils.newList(phone.getData()); + User user = commonDAO.findUnique(hql,params, User.class); + if(user==null){ + //鏂板鐢ㄦ埛 + User user1=new User(); + user1.setMobilePhone(phone.getData().toString()); + user1.setOpenId(sessionKeyOrOpenId.get("openid").toString()); + commonDAO.save(user1); + //鏂板鍏宠仈瀛﹀憳 + String addUserSql = "from User where deleteFlag is false and mobilePhone = ? "; + List<Object> newParams = CollectionUtils.newList(phone.getData()); + User newUser = commonDAO.findUnique(addUserSql,newParams, User.class); + StuStudent stuStudent=new StuStudent(); + stuStudent.setStatus(StuStudent.STATUS_REGISTER); + stuStudent.setUserId(newUser.getUserId()); + stuStudent.setMobilePhone(newUser.getMobilePhone()); + commonDAO.save(stuStudent); + } + if(StringUtils.isEmpty(user.getOpenId())){ + user.setOpenId(sessionKeyOrOpenId.get("openid").toString()); + commonDAO.saveOrUpdate(user); + } + String studentSql = "from StuStudent where deleteFlag is false and userId = ? "; + List<Object> stuParams = CollectionUtils.newList(user.getUserId()); + StuStudent stuStudent = commonDAO.findUnique(studentSql, stuParams, StuStudent.class); + CacheParamters param = new CacheParamters(); + param.setUserId(user.getUserId()); + param.setCustomRoleValue(user.getEmail()); + param.setCustomOrgId(user.getImei()); + param.setCacheIpFlag(true); + // 缂撳瓨鍒拌姹傜嚎绋� + UserInfoWrapper wrapper = cacheUserInfo(param, null); + // 瀛樺埌redis + redisTemplate.opsForValue().set(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper); + return new Result(true,"鎺堟潈鎴愬姛",CollectionUtils.newObjectMap("user",user,"ClassId",stuStudent.getClassId())); + } + return phone; + } + + + @ApiOperation(value = "鐧诲叆鎺ュ彛", notes = "") @ApiImplicitParams({ - @ApiImplicitParam(name = "account", value = "账号", required = true, paramType="query", dataType = "String"), - @ApiImplicitParam(name = "password", value = "密码", required = true, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "account", value = "璐﹀彿", required = true, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "password", value = "瀵嗙爜", required = true, paramType="query", dataType = "String"), }) @RequestMapping(value = "beforeLogin", method = RequestMethod.POST) @ResponseBody public Result beforeLogin(@RequestParam("account") String account, @RequestParam("password") String password, HttpServletRequest request, HttpServletResponse response) { if(StringUtils.isEmpty(account)||StringUtils.isEmpty(password)) { - return new Result(false, "用户账号密码不能为空"); + return new Result(false, "鐢ㄦ埛璐﹀彿瀵嗙爜涓嶈兘涓虹┖"); } - // 查询用户信息 + // 鏌ヨ鐢ㄦ埛淇℃伅 String uuNumber=null; String uuReNumber=null; - String hql = "from User where deleteFlag is false and account = ? and password = ? "; - List<Object> params = CollectionUtils.newList(account,password); + String hql = "from User where deleteFlag is false and account = ?"; + List<Object> params = CollectionUtils.newList(account); User user = commonDAO.findUnique(hql,params, User.class); if (user == null ) { - return new Result(false, "用户账户、密码错误"); + return new Result(false, "鐢ㄦ埛璐︽埛銆佸瘑鐮侀敊璇�"); } if (user.getSource() == null || "".equals(user.getSource())) { - return new Result(false, "没有权限"); + return new Result(false, "娌℃湁鏉冮檺"); } if("exam".equals(user.getSource())){ -// //获取Session存入uuNumber +// //鑾峰彇Session瀛樺叆uuNumber // uuNumber = UUIDUtils.generateSpecialUuid(8)+account; // HttpSession session = request.getSession(); -// //设置session自动过期时间 60分钟 +// //璁剧疆session鑷姩杩囨湡鏃堕棿 60鍒嗛挓 // session.setMaxInactiveInterval(60*60); // session.setAttribute("uuNumber", uuNumber); - //uuNumber使用固定 + //uuNumber浣跨敤鍥哄畾 uuNumber=UUNUMBER; }else if("reExam".equals(user.getSource())){ - //获取Session存入uuNumber + //鑾峰彇Session瀛樺叆uuNumber uuReNumber = UUIDUtils.generateSpecialUuid(8)+account; HttpSession session = request.getSession(); - //设置session自动过期时间 60分钟 + //璁剧疆session鑷姩杩囨湡鏃堕棿 60鍒嗛挓 session.setMaxInactiveInterval(60*60); session.setAttribute("uuReNumber", uuReNumber); }else { - return new Result(false, "没有权限"); + return new Result(false, "娌℃湁鏉冮檺"); } - // 插入日志 + // 鎻掑叆鏃ュ織 insertLoginLog(request, user, account, "SYS-LOGIN"); - // 返回 - return new Result(true, "验证成功",CollectionUtils.newObjectMap("uuNumber",uuNumber,"uuReNumber",uuReNumber)); + String salt = user.getSalt(); + String newPassword= DigestUtils.md5DigestAsHex((salt+password).getBytes()); + //姣旇緝鐢ㄦ埛杈撳叆鐨勫瘑鐮佸姞瀵嗗悗鐨勫瓧绗︿覆鏄惁璺熸敞鍐屾椂濉啓鐨勫姞瀵嗗瘑鐮佺浉鍚� + if (!newPassword.equals(user.getPassword())) { + return new Result(false, "鐢ㄦ埛璐︽埛銆佸瘑鐮侀敊璇垨缂哄皯鍑瘉"); + } + // 杩斿洖 + return new Result(true, "楠岃瘉鎴愬姛",CollectionUtils.newObjectMap("uuNumber",uuNumber,"uuReNumber",uuReNumber)); } - @ApiOperation(value = "登入接口", notes = "") + @ApiOperation(value = "鐧诲叆鎺ュ彛", notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "uuNumber", value = "uuNumber", required = true, paramType="query", dataType = "String"), @ApiImplicitParam(name = "uuReNumber", value = "uuReNumber", required = true, paramType="query", dataType = "String"), @@ -150,33 +267,33 @@ public Result examLogin(String uuNumber,String uuReNumber, HttpServletRequest request, HttpServletResponse response) { if(StringUtils.isEmpty(uuNumber)&&StringUtils.isEmpty(uuReNumber)){ - return new Result(false, "验证失败"); + return new Result(false, "楠岃瘉澶辫触"); } if (StringUtils.isNotEmpty(uuNumber)) { - //有uunumber + //鏈塽unumber String uu=ClientUtils.getUserInfo().getInfo("email"); if(StringUtils.isEmpty(uu)||!uuNumber.equals(uu)){ - return new Result(false, "uuNumber验证失败"); + return new Result(false, "uuNumber楠岃瘉澶辫触"); } } else { - //有uurenumber + //鏈塽urenumber HttpSession session = request.getSession(); String uu=(String) session.getAttribute("uuReNumber"); if(StringUtils.isEmpty(uu)||!uuReNumber.equals(uu)){ - return new Result(false, "uuReNumber验证失败"); + return new Result(false, "uuReNumber楠岃瘉澶辫触"); } - //验证后删除 + //楠岃瘉鍚庡垹闄� request.getSession().removeAttribute("uuReNumber"); // String uu=ClientUtils.getUserInfo().getInfo("email"); // if(StringUtils.isEmpty(uu)||!uuReNumber.equals(uu)){ -// return new Result(false, "uuReNumber验证失败"); +// return new Result(false, "uuReNumber楠岃瘉澶辫触"); // } } - // 返回 - return new Result(true, "验证成功"); + // 杩斿洖 + return new Result(true, "楠岃瘉鎴愬姛"); } - @ApiOperation(value = "登入接口", notes = "") + @ApiOperation(value = "鐧诲叆鎺ュ彛", notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "uuNumber", value = "uuNumber", required = true, paramType="query", dataType = "String"), @ApiImplicitParam(name = "uuReNumber", value = "uuReNumber", required = true, paramType="query", dataType = "String"), @@ -185,56 +302,57 @@ @ResponseBody public Result examssLogin(String uuNumber,String uuReNumber, HttpServletRequest request, HttpServletResponse response) { - //两个都为空,表示没有参数 + //涓や釜閮戒负绌猴紝琛ㄧず娌℃湁鍙傛暟 if(StringUtils.isEmpty(uuNumber)&&StringUtils.isEmpty(uuReNumber)){ - return new Result(false, "验证失败"); + return new Result(false, "楠岃瘉澶辫触"); } if (StringUtils.isNotEmpty(uuNumber)) { - //有uunumber + //鏈塽unumber // HttpSession session = request.getSession(); // String uu=(String) session.getAttribute("uuNumber"); String uu=UUNUMBER; if(StringUtils.isEmpty(uu)||!uuNumber.equals(uu)){ - return new Result(false, "uuNumber验证失败"); + return new Result(false, "uuNumber楠岃瘉澶辫触"); } } else { - //有uurenumber + //鏈塽urenumber HttpSession session = request.getSession(); String uu=(String) session.getAttribute("uuReNumber"); if(StringUtils.isEmpty(uu)||!uuReNumber.equals(uu)){ - return new Result(false, "uuReNumber验证失败"); + return new Result(false, "uuReNumber楠岃瘉澶辫触"); } } - // 返回 - return new Result(true, "验证成功"); + // 杩斿洖 + return new Result(true, "楠岃瘉鎴愬姛"); } - //退出登录 清除session + //閫�鍑虹櫥褰� 娓呴櫎session @RequestMapping(value = "khdloginout", method = RequestMethod.POST) @ResponseBody public void khdloginout(HttpServletRequest request, HttpServletResponse response) { - System.out.println("清除session"); + System.out.println("娓呴櫎session"); HttpSession session = request.getSession(); + redisTemplate.delete(UserInfoWrapper.SESSION_USER_INFO_KEY); System.out.println(session.getAttribute("userId")); System.out.println(session.getAttribute("classId")); session.invalidate(); } /** - * 学员端登录 + * 瀛﹀憳绔櫥褰� * - * @param account 账户 - * @param password 密码 + * @param account 璐︽埛 + * @param password 瀵嗙爜 * @return */ - @ApiOperation(value = "登入接口", notes = "") + @ApiOperation(value = "鐧诲叆鎺ュ彛", notes = "") @ApiImplicitParams({ - @ApiImplicitParam(name = "account", value = "账号", required = true, paramType="query", dataType = "String"), - @ApiImplicitParam(name = "password", value = "密码", required = true, paramType="query", dataType = "String"), - @ApiImplicitParam(name = "organizationId", value = "机构id", required = true, paramType="query", dataType = "String"), - @ApiImplicitParam(name = "platForm", value = "登入平台(app,web,qLive,pc,weixin)", required = true, paramType="query", dataType = "String"), - @ApiImplicitParam(name = "logType", value = "登入type(study学员,teacher教师,否则为后台)", required = true, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "account", value = "璐﹀彿", required = true, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "password", value = "瀵嗙爜", required = true, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "organizationId", value = "鏈烘瀯id", required = true, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "platForm", value = "鐧诲叆骞冲彴锛坅pp锛寃eb锛宷Live锛宲c锛寃eixin锛�", required = true, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "logType", value = "鐧诲叆type锛坰tudy瀛﹀憳锛宼eacher鏁欏笀,鍚﹀垯涓哄悗鍙帮級", required = true, paramType="query", dataType = "String"), }) @RequestMapping(value = "studentLogin", method = RequestMethod.POST) @ResponseBody @@ -244,7 +362,7 @@ List<Object> params = null; hql = "from User where deleteFlag is false and userId = ?"; params = CollectionUtils.newList(userId); - // 查询用户信息 + // 鏌ヨ鐢ㄦ埛淇℃伅 User user = commonDAO.findUnique(hql,params, User.class); CacheParamters param = new CacheParamters(); param.setUserId(user.getUserId()); @@ -253,9 +371,12 @@ param.setCacheIpFlag(true); param.setPlatForm(StringUtils.isEmpty(platForm) ? Constants.LOGIN_PLATFORM_WEB : platForm); param.setIp(RequestClientUtils.getRemoteIP(request)); -// 缓存到请求线程 +// 缂撳瓨鍒拌姹傜嚎绋� UserInfoWrapper wrapper = cacheUserInfo(param, null); + // 瀛樺埌redis + redisTemplate.opsForValue().set(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper); request.getSession().setAttribute(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper); + return new Result(true, "success", CollectionUtils.newObjectMap("userId", user.getUserId(), "userName", user.getName(), "imgPath", user.getImgPath(), "orgName", ClientUtils.getOrgName(),"orgId", ClientUtils.getOrgId(), "orgLogo", @@ -265,42 +386,45 @@ } /** - * 后台登录 + * 鍚庡彴鐧诲綍 * - * @param account 账户 - * @param password 密码 + * @param account 璐︽埛 + * @param password 瀵嗙爜 * @return */ - @ApiOperation(value = "登入接口", notes = "") + @ApiOperation(value = "鐧诲叆鎺ュ彛", notes = "") @ApiImplicitParams({ - @ApiImplicitParam(name = "account", value = "账号", required = true, paramType="query", dataType = "String"), - @ApiImplicitParam(name = "password", value = "密码", required = true, paramType="query", dataType = "String"), - @ApiImplicitParam(name = "organizationId", value = "机构id", required = true, paramType="query", dataType = "String"), - @ApiImplicitParam(name = "platForm", value = "登入平台(app,web,qLive,pc,weixin)", required = true, paramType="query", dataType = "String"), - @ApiImplicitParam(name = "logType", value = "登入type(study学员,teacher教师,否则为后台)", required = true, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "account", value = "璐﹀彿", required = true, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "password", value = "瀵嗙爜", required = true, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "organizationId", value = "鏈烘瀯id", required = true, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "platForm", value = "鐧诲叆骞冲彴锛坅pp锛寃eb锛宷Live锛宲c锛寃eixin锛�", required = true, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "logType", value = "鐧诲叆type锛坰tudy瀛﹀憳锛宼eacher鏁欏笀,鍚﹀垯涓哄悗鍙帮級", required = true, paramType="query", dataType = "String"), }) @RequestMapping(value = "platformLogin", method = RequestMethod.POST) @ResponseBody public Result platformLogin(@RequestParam("account") String account, @RequestParam("password") String password,String uuNumber,String uuReNumber, HttpServletRequest request, HttpServletResponse response, String logType,String organizationId, String platForm) { // response.setHeader("Access-Control-Allow-Origin", "*"); - if(StringUtils.isEmpty(account)) { - return new Result(false, "用户账号不能为空"); - } + if (StringUtils.isEmpty(account)) { + return new Result(false, "鐢ㄦ埛璐﹀彿涓嶈兘涓虹┖"); + } // System.out.println(account+password); // System.out.println("-------------------------"+organizationId+"--------------"+platForm+"-----------"+logType); - String hql = null; - List<Object> params = null; + String hql = null; + List<Object> params = null; // boolean flag=true; - if("study".equals(logType)){ - hql = "from User where deleteFlag is false and account = ? and password = ? "; - params = CollectionUtils.newList(account,password); - }else{ + if ("study".equals(logType)) { + hql = "from User where deleteFlag is false and account = ?"; + params = CollectionUtils.newList(account); + }else if("portal".equals(logType)){ + hql = "from User where deleteFlag is false and mobilePhone = ?"; + params = CollectionUtils.newList(account); + }else{ if(StringUtils.isEmpty(password)) { - return new Result(false, "用户密码不能为空"); + return new Result(false, "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖"); } - hql = "from User where deleteFlag is false and account = ? and password = ? "; - params = CollectionUtils.newList(account,password); + hql = "from User where deleteFlag is false and account = ?"; + params = CollectionUtils.newList(account); } if(StringUtils.isNotEmpty(organizationId)){ @@ -308,34 +432,40 @@ params.add(organizationId); } - // 查询用户信息 + // 鏌ヨ鐢ㄦ埛淇℃伅 User user = commonDAO.findUnique(hql,params, User.class); if(uuNumber!=null&&!"".equals(uuNumber)&&!"null".equals(uuNumber)){ - //登录成功存入user里,删除session里的uuNumber,下个人无法使用 + //鐧诲綍鎴愬姛瀛樺叆user閲岋紝鍒犻櫎session閲岀殑uuNumber锛屼笅涓汉鏃犳硶浣跨敤 user.setEmail(uuNumber); // request.getSession().removeAttribute("uuNumber"); } // if(uuReNumber!=null&&!"".equals(uuReNumber)&&!"null".equals(uuReNumber)){ -// //登录成功存入user里,删除session里的uuReNumber,下个人无法使用 +// //鐧诲綍鎴愬姛瀛樺叆user閲岋紝鍒犻櫎session閲岀殑uuReNumber锛屼笅涓汉鏃犳硶浣跨敤 // user.setImei(uuReNumber); // request.getSession().removeAttribute("uuReNumber"); // } - // 插入日志 + if (user == null) { + return new Result(false, "鐢ㄦ埛璐︽埛涓嶅瓨鍦�"); + } + // 鎻掑叆鏃ュ織 insertLoginLog(request, user, account, "SYS-LOGIN"); + String salt = user.getSalt(); + String newPassword= DigestUtils.md5DigestAsHex((salt+password).getBytes()); + //姣旇緝鐢ㄦ埛杈撳叆鐨勫瘑鐮佸姞瀵嗗悗鐨勫瓧绗︿覆鏄惁璺熸敞鍐屾椂濉啓鐨勫姞瀵嗗瘑鐮佺浉鍚� + if("study".equals(logType) || "portal".equals(logType) || "adminis".equals(logType)){ + if (!newPassword.equals(user.getPassword())) { + return new Result(false, "鐢ㄦ埛璐︽埛銆佸瘑鐮侀敊璇垨缂哄皯鍑瘉"); + } + } - //考试登录会控制flag变量 其他登录不会 默认true - if (user == null) { - return new Result(false, "用户账户、密码错误或缺少凭证"); - } - - // 返回用户基本信息 + // 杩斿洖鐢ㄦ埛鍩烘湰淇℃伅 return this.loginValidate(user, 1, request, response, logType, platForm, organizationId); } /** - * 登入验证 + * 鐧诲叆楠岃瘉 * @param user * @param type * @param request @@ -348,7 +478,7 @@ private Result loginValidate(User user, int type, HttpServletRequest request, HttpServletResponse response, String logType, String platForm, String organizationId) { HttpSession session = request.getSession(); - // 缓存用户信息 + // 缂撳瓨鐢ㄦ埛淇℃伅 CacheParamters param = new CacheParamters(); param.setUserId(user.getUserId()); param.setCustomRoleValue(user.getEmail()); @@ -356,31 +486,33 @@ param.setCacheIpFlag(true); param.setPlatForm(StringUtils.isEmpty(platForm) ? Constants.LOGIN_PLATFORM_WEB : platForm); param.setIp(RequestClientUtils.getRemoteIP(request)); -// 缓存到请求线程 +// 缂撳瓨鍒拌姹傜嚎绋� UserInfoWrapper wrapper = cacheUserInfo(param, null); + // 瀛樺埌redis + redisTemplate.opsForValue().set(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper); request.getSession().setAttribute(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper); - if ("study".equals(logType)) { + if ("study".equals(logType) || "portal".equals(logType)) { /*if (StringUtils.isEmpty(ClientUtils.getClassId()) && user.getRoles() == null) { - return new Result(false, "该用户未加入任何班级或未激活,请联系班主任"); + return new Result(false, "璇ョ敤鎴锋湭鍔犲叆浠讳綍鐝骇鎴栨湭婵�娲伙紝璇疯仈绯荤彮涓讳换"); }*/ if (StringUtils.isEmpty(user.getOrganizationId())) { - return new Result(false, "该用户不属于任何机构,无法登入"); + return new Result(false, "璇ョ敤鎴蜂笉灞炰簬浠讳綍鏈烘瀯锛屾棤娉曠櫥鍏�"); } if (StringUtils.isNoneBlank(organizationId) && !user.getOrganizationId().equals(organizationId)) { - return new Result(false, "选择的机构错误,请确认"); + return new Result(false, "閫夋嫨鐨勬満鏋勯敊璇紝璇风‘璁�"); } - //判断是否为学生,如果是学生,判断是否已冻结或移除,冻结或移除的学生不让登录 + //鍒ゆ柇鏄惁涓哄鐢燂紝濡傛灉鏄鐢燂紝鍒ゆ柇鏄惁宸插喕缁撴垨绉婚櫎锛屽喕缁撴垨绉婚櫎鐨勫鐢熶笉璁╃櫥褰� StuStudent stu = this.studentService.getStudentByUserId(user.getUserId()); if(stu!=null && (stu.getDeleteFlag() || stu.getStatus().equalsIgnoreCase(StuStudent.STATUS_DEACTIVE))){ - return new Result(false, "用户账户已经被冻结或移除"); + return new Result(false, "鐢ㄦ埛璐︽埛宸茬粡琚喕缁撴垨绉婚櫎"); } /*if(StringUtils.isEmpty(wrapper.getInfo(UserInfoWrapper.INF_CLASS_ID))) { - return new Result(false, "该用户未加入任何班级,无法登入"); + return new Result(false, "璇ョ敤鎴锋湭鍔犲叆浠讳綍鐝骇锛屾棤娉曠櫥鍏�"); }*/ - // 保存到session中 + // 淇濆瓨鍒皊ession涓� return new Result(true, "success", CollectionUtils.newObjectMap("userId", user.getUserId(), "userName", user.getName(), "imgPath", user.getImgPath(), "orgName", ClientUtils.getOrgName(),"orgId", ClientUtils.getOrgId(), "orgLogo", @@ -389,16 +521,16 @@ }else if("teacher".equals(logType)) { String teacherId = teacherService.getTeacherIdByUserId(user.getUserId()); if (StringUtils.isEmpty(teacherId)) { - return new Result(false, "该账户不是老师角色,无法登入"); + return new Result(false, "璇ヨ处鎴蜂笉鏄�佸笀瑙掕壊锛屾棤娉曠櫥鍏�"); } if (StringUtils.isEmpty(user.getOrganizationId())) { - return new Result(false, "该用户不属于任何机构,无法登入"); + return new Result(false, "璇ョ敤鎴蜂笉灞炰簬浠讳綍鏈烘瀯锛屾棤娉曠櫥鍏�"); } if (StringUtils.isNoneBlank(organizationId) && !user.getOrganizationId().equals(organizationId)) { - return new Result(false, "选择的机构错误,请确认"); + return new Result(false, "閫夋嫨鐨勬満鏋勯敊璇紝璇风‘璁�"); } - //获取用户对应的sessionId是否与保存在redis中的一致,如果不一致则跳转到登录页面 + //鑾峰彇鐢ㄦ埛瀵瑰簲鐨剆essionId鏄惁涓庝繚瀛樺湪redis涓殑涓�鑷达紝濡傛灉涓嶄竴鑷村垯璺宠浆鍒扮櫥褰曢〉闈� // stringRedisTemplate.opsForHash().put(UserInfoWrapper.REDIS_USER_ONLINE_MAP_KEY, user.getUserId(), request.getSession().getId()); return new Result(true, "success", CollectionUtils.newObjectMap("userId", user.getUserId(), "userName", user.getName(), "imgPath", @@ -406,7 +538,8 @@ }else { Result result = privilegeService.getMenus(user); Integer roleType = result.getDataT("roleType"); - // 保存管理员特殊角色信息 + + // 淇濆瓨绠$悊鍛樼壒娈婅鑹蹭俊鎭� if (UserRole.ROLE_TYPE_ADMIN.equals(roleType)) { // boolean a=true; // wrapper.setAdmin(true); @@ -424,12 +557,12 @@ } /** - * 后台:退出登录,后台系统 + * 鍚庡彴锛氶��鍑虹櫥褰�,鍚庡彴绯荤粺 * - * @param account 账户 + * @param account 璐︽埛 * @return */ - @ApiOperation(value = "退出后台系统操作", notes = "") + @ApiOperation(value = "閫�鍑哄悗鍙扮郴缁熸搷浣�", notes = "") @RequestMapping(value = "release", method = RequestMethod.GET) public String release(HttpServletRequest httpRequest, HttpServletResponse response) { doRelease(httpRequest, response); @@ -437,11 +570,11 @@ } /** - * 后台:退出登录,后台系统 + * 鍚庡彴锛氶��鍑虹櫥褰�,鍚庡彴绯荤粺 * * @return */ - @ApiOperation(value = "退出app系统操作", notes = "") + @ApiOperation(value = "閫�鍑篴pp绯荤粺鎿嶄綔", notes = "") @RequestMapping(value = "loginOut", method = RequestMethod.GET) public @ResponseBody Result loginOut(HttpServletRequest httpRequest, HttpServletResponse response) { doRelease(httpRequest, response); @@ -449,7 +582,7 @@ } /** - * 缓存用户信息(班主任 、 学员 角色 缓存后台clientUtils信息) + * 缂撳瓨鐢ㄦ埛淇℃伅(鐝富浠� 銆� 瀛﹀憳 瑙掕壊 缂撳瓨鍚庡彴clientUtils淇℃伅) * * @param userId * @param cookieValue @@ -467,7 +600,7 @@ } /** - * 插入登录日志 + * 鎻掑叆鐧诲綍鏃ュ織 * * @param request * @param lstUser @@ -497,24 +630,25 @@ } /** - * 退出后台系统操作 + * 閫�鍑哄悗鍙扮郴缁熸搷浣� * - * @param account 账户 + * @param account 璐︽埛 * @return */ private void doRelease(HttpServletRequest httpRequest, HttpServletResponse response) { HttpSession se = httpRequest.getSession(); se.removeAttribute(UserInfoWrapper.SESSION_USER_INFO_KEY); + redisTemplate.delete(UserInfoWrapper.SESSION_USER_INFO_KEY); se.invalidate(); } /** - * 用户修改密码 + * 鐢ㄦ埛淇敼瀵嗙爜 */ - @ApiOperation(value = "修改密码", notes = "") + @ApiOperation(value = "淇敼瀵嗙爜", notes = "") @ApiImplicitParams({ - @ApiImplicitParam(name = "usedPass", value = "老密码", required = false, paramType="query", dataType = "String"), - @ApiImplicitParam(name = "pass", value = "新密码", required = false, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "usedPass", value = "鑰佸瘑鐮�", required = false, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "pass", value = "鏂板瘑鐮�", required = false, paramType=" query", dataType = "String"), }) @RequestMapping(value = "updatePassword", method = RequestMethod.POST) @ResponseBody @@ -523,9 +657,9 @@ } /** - * 获取当前用户 + * 鑾峰彇褰撳墠鐢ㄦ埛 */ - @ApiOperation(value = "获取当前用户", notes = "") + @ApiOperation(value = "鑾峰彇褰撳墠鐢ㄦ埛", notes = "") @RequestMapping(value = "getCurrUser", method = RequestMethod.POST) @ResponseBody public Result getCurrUser() { @@ -536,9 +670,9 @@ } /** - * 获取当前用户 + * 鑾峰彇褰撳墠鐢ㄦ埛 */ - @ApiOperation(value = "获取当前教师信息", notes = "") + @ApiOperation(value = "鑾峰彇褰撳墠鏁欏笀淇℃伅", notes = "") @RequestMapping(value = "getCurrTeacher", method = RequestMethod.GET) @ResponseBody public Result getCurrTeacher() { @@ -546,11 +680,11 @@ } /** - * 用户修改密码 + * 鐢ㄦ埛淇敼瀵嗙爜 */ - @ApiOperation(value = "修改头像", notes = "") + @ApiOperation(value = "淇敼澶村儚", notes = "") @ApiImplicitParams({ - @ApiImplicitParam(name = "headPath", value = "头像地址", required = false, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "headPath", value = "澶村儚鍦板潃", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value = "updateUserHead", method = RequestMethod.POST) @ResponseBody @@ -559,11 +693,11 @@ } /** - * 修改用户其他数据 + * 淇敼鐢ㄦ埛鍏朵粬鏁版嵁 */ - @ApiOperation(value = "修改用户其他数据", notes = "") + @ApiOperation(value = "淇敼鐢ㄦ埛鍏朵粬鏁版嵁", notes = "") @ApiImplicitParams({ - @ApiImplicitParam(name = "mobilePhone", value = "老密码", required = false, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "mobilePhone", value = "鑰佸瘑鐮�", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value = "updateUserInfo", method = RequestMethod.POST) @ResponseBody @@ -572,7 +706,7 @@ } /** - * 获取系统当前时间 + * 鑾峰彇绯荤粺褰撳墠鏃堕棿 */ @RequestMapping(value = "currentTime", method = RequestMethod.GET) @ResponseBody @@ -580,7 +714,7 @@ return System.currentTimeMillis(); } - @ApiOperation(value = "获取机构列表", notes = "") + @ApiOperation(value = "鑾峰彇鏈烘瀯鍒楄〃", notes = "") @RequestMapping(value = "getOrgLst", method = RequestMethod.GET) @ResponseBody public Result getOrgLst() { @@ -588,11 +722,11 @@ return new Result(true, "success", orgLst); } - @ApiOperation(value = "获取机构的信息", notes = "包含基本信息和banner图和app信息") + @ApiOperation(value = "鑾峰彇鏈烘瀯鐨勪俊鎭�", notes = "鍖呭惈鍩烘湰淇℃伅鍜宐anner鍥惧拰app淇℃伅") @ApiImplicitParams({ - @ApiImplicitParam(name = "appCode", value = "appcode(android:androidTeacherApp,androidTeacherH5,androidStudentApp, androidStudentH5" - + "IOS:IosTeacherApp,IosStudentApp)", required = false, paramType="query", dataType = "String"), - @ApiImplicitParam(name = "orgId", value = "机构id", required = false, paramType="query", dataType = "String") + @ApiImplicitParam(name = "appCode", value = "appcode锛坅ndroid锛歛ndroidTeacherApp锛宎ndroidTeacherH5锛宎ndroidStudentApp锛� androidStudentH5" + + "IOS:IosTeacherApp,IosStudentApp锛�", required = false, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "orgId", value = "鏈烘瀯id", required = false, paramType="query", dataType = "String") }) @RequestMapping(value = "getOrgInfo", method = RequestMethod.GET) @ResponseBody @@ -601,18 +735,18 @@ } /** - * APP2.0: 获取android APP版本 + * APP2.0: 鑾峰彇android APP鐗堟湰 * * @return| */ - @ApiOperation(value = "获取android APP版本") + @ApiOperation(value = "鑾峰彇android APP鐗堟湰") @ApiImplicitParams({ - @ApiImplicitParam(name = "appName", value = "app名称(android:teacherApp,teacherH5,studentApp, studentH5)", required = false, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "appName", value = "app鍚嶇О锛坅ndroid锛歵eacherApp锛宼eacherH5锛宻tudentApp锛� studentH5锛�", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value="getAndroidAppVersion",method=RequestMethod.GET) public @ResponseBody Result getAppVersion(String appName) { - // 版本号 + // 鐗堟湰鍙� String versionName = ""; String versionTips = ""; String versionCode = ""; @@ -650,17 +784,17 @@ /** - * APP2.0: 获取ios APP版本 + * APP2.0: 鑾峰彇ios APP鐗堟湰 * * @return */ - @ApiOperation(value = "获取ios APP版本") + @ApiOperation(value = "鑾峰彇ios APP鐗堟湰") @ApiImplicitParams({ - @ApiImplicitParam(name = "appName", value = "app名称(ios:teacherApp,studentApp)", required = false, paramType="query", dataType = "String"), + @ApiImplicitParam(name = "appName", value = "app鍚嶇О锛坕os锛歵eacherApp锛宻tudentApp锛�", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value="getIosAppVersion",method=RequestMethod.GET) public @ResponseBody Result getIOSAppVersion(String appName) { - // 版本号 + // 鐗堟湰鍙� String versionCode = ""; String versionNo = ""; String versionTips = ""; @@ -682,15 +816,15 @@ } /** - * APP2.0: 获取ios 版本 + * APP2.0: 鑾峰彇ios 鐗堟湰 * * @return */ - @ApiOperation(value = "获取ios菜单") + @ApiOperation(value = "鑾峰彇ios鑿滃崟") @RequestMapping(value="getIosMenu",method=RequestMethod.GET) public @ResponseBody Result getIOSAppVersion() { - //"课件","考试","作业","直播" - return new Result(true, "", new String[]{"课件","直播","考试","作业"}); + //"璇句欢","鑰冭瘯","浣滀笟","鐩存挱" + return new Result(true, "", new String[]{"璇句欢","鐩存挱","鑰冭瘯","浣滀笟"}); } -- Gitblit v1.8.0