diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/labour/controller/LabourApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/labour/controller/LabourApiController.java index df1ddfc4..da6780a9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/labour/controller/LabourApiController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/labour/controller/LabourApiController.java @@ -114,11 +114,18 @@ public class LabourApiController extends BaseController { throw new ServiceException(HttpStatusEnum.SINGET_TIMEOUT.getInfo(),HttpStatusEnum.SINGET_TIMEOUT.getCode()); } if (req.getLoginSign(sysApplyConfig.getPrivateKey())) { - Authorization = this.getAppIdLoginToken(req.getAppId(),sysApplyConfig); + String key = "api.labour.getToken:"+req.getAppId(); + String obj = redisCache.getCacheObject(key); + if(StringUtils.isNotEmpty(obj)){ + ajax.put("Authorization", obj); + }else{ + Authorization = this.getAppIdLoginToken(req.getAppId(),sysApplyConfig); + ajax.put("Authorization", Authorization); + redisCache.setCacheObject(key,Authorization,28, TimeUnit.SECONDS); + } } else { throw new ServiceException(HttpStatusEnum.SINGET_ERROR.getInfo(),HttpStatusEnum.SINGET_ERROR.getCode()); } - ajax.put("Authorization", Authorization); return ajax; } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 65204eae..b9f1d13d 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -107,6 +107,54 @@ public class SysLoginService return tokenService.createToken(loginUser); } + /** + * 登录验证 + * + * @param username 用户名 + * @param password 密码 + * @param code 验证码 + * @param uuid 唯一标识 + * @return 结果 + */ + public String wxLogin(String username, String password, String code, String uuid, String openId) + { + // 验证码校验 + validateCaptcha(username, code, uuid); + // 登录前置校验 + loginPreCheck(username, password); + // 用户验证 + Authentication authentication = null; + try + { + UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password); + AuthenticationContextHolder.setContext(authenticationToken); + // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername + authentication = authenticationManager.authenticate(authenticationToken); + } + catch (Exception e) + { + if (e instanceof BadCredentialsException) + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); + throw new UserPasswordNotMatchException(); + } + else + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage())); + throw new ServiceException(e.getMessage()); + } + } + finally + { + AuthenticationContextHolder.clearContext(); + } + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); + LoginUser loginUser = (LoginUser) authentication.getPrincipal(); + recordLoginInfo(loginUser.getUserId()); + // 生成token + return tokenService.createWxToken(loginUser,openId); + } + /** * 登录验证 * diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/FlowTaskExpiredTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/FlowTaskExpiredTask.java index e191a2cb..5ee70b77 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/FlowTaskExpiredTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/FlowTaskExpiredTask.java @@ -170,7 +170,7 @@ public class FlowTaskExpiredTask { //模板数据 WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(this.getMsgId(superviseUser)) - .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_checking/list/index?barProId="+projectId)) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_measure/list/index?barProId="+projectId)) .templateId(TemplateMessageEnum.APPLY_EXPIRED_MY.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing7", projectName)); templateMessage.addWxMpTemplateData(new WxMpTemplateData("character_string8", total)); @@ -214,7 +214,7 @@ public class FlowTaskExpiredTask { //模板数据 WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(this.getMsgId(witnessUser)) - .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_checking/list/index?barProId="+projectId)) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_checkDetection/list/index?barProId="+projectId)) .templateId(TemplateMessageEnum.APPLY_EXPIRED_MY.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing7", projectName)); templateMessage.addWxMpTemplateData(new WxMpTemplateData("character_string8", total)); @@ -258,7 +258,7 @@ public class FlowTaskExpiredTask { //模板数据 WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(this.getMsgId(witnessUser)) - .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_checking/list/index?barProId="+projectId)) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_materialSeal/list/index?barProId="+projectId)) .templateId(TemplateMessageEnum.APPLY_EXPIRED_MY.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing7", projectName)); templateMessage.addWxMpTemplateData(new WxMpTemplateData("character_string8", total)); diff --git a/ruoyi-wechat/src/main/java/com/ruoyi/web/userLogin/controller/WechatUserLoginController.java b/ruoyi-wechat/src/main/java/com/ruoyi/web/userLogin/controller/WechatUserLoginController.java index 3daae7bd..1ccfb73e 100644 --- a/ruoyi-wechat/src/main/java/com/ruoyi/web/userLogin/controller/WechatUserLoginController.java +++ b/ruoyi-wechat/src/main/java/com/ruoyi/web/userLogin/controller/WechatUserLoginController.java @@ -51,8 +51,8 @@ public class WechatUserLoginController extends BaseController { { AjaxResult ajax = AjaxResult.success(); // 生成令牌 - String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), - loginBody.getUuid()); + String token = loginService.wxLogin(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), + loginBody.getUuid(),loginBody.getOpenId()); ajax.put(Constants.TOKEN, token); // 移动端这里刷新token有效期为长期 tokenService.refreshMobileToken(token); @@ -85,7 +85,7 @@ public class WechatUserLoginController extends BaseController { // 移动端这里刷新token有效期为长期 tokenService.refreshMobileToken(token); ajax.put(Constants.TOKEN, token); - redisCache.setCacheObject(key, data, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); + redisCache.setCacheObject(key, data, Constants.CAPTCHA_EXPIRATION*15, TimeUnit.MINUTES); if(data!=null){ ajax.put("data",data); return ajax; diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/wxsetting/service/impl/WeChatMessageServiceImpl.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/wxsetting/service/impl/WeChatMessageServiceImpl.java index 10c5a3d6..4f35bf0e 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/wxsetting/service/impl/WeChatMessageServiceImpl.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/wxsetting/service/impl/WeChatMessageServiceImpl.java @@ -225,6 +225,7 @@ public class WeChatMessageServiceImpl { */ WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(this.getMsgId(surProjectChecking.getCreateBy())) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_checking/list/index?barProId="+surProjectChecking.getProjectId())) .templateId(TemplateMessageEnum.APPLY_DEFAULT.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing14", this.getMsgProName(surProjectChecking.getProjectId()))); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.JPYSSP.getName())); @@ -239,6 +240,7 @@ public class WeChatMessageServiceImpl { */ WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(this.getMsgId(surProjectChecking.getCreateBy())) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_checking/list/index?barProId="+surProjectChecking.getProjectId())) .templateId(TemplateMessageEnum.APPLY_DEFAULT.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing14", this.getMsgProName(surProjectChecking.getProjectId()))); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.JPYSSP.getName())); @@ -266,9 +268,10 @@ public class WeChatMessageServiceImpl { //模板数据 WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(supMsgId) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_measure/list/index?barProId="+surProjectMeasure.getProjectId())) .templateId(TemplateMessageEnum.APPLY_DEFAULT.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing14", this.getMsgProName(surProjectMeasure.getProjectId()))); - templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.JPYSSP.getName())); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.CSCLSP.getName())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing2", "待"+surProjectMeasure.getSuperviseUserName()+"审批")); templateMessage.addWxMpTemplateData(new WxMpTemplateData("time4", DateUtils.getTime())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing10", this.getMsgName(surProjectMeasure.getCreateBy())+"["+this.getMsgDepName(surProjectMeasure.getDeptId())+"]")); @@ -313,9 +316,10 @@ public class WeChatMessageServiceImpl { */ WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(this.getMsgId(surProjectMeasure.getCreateBy())) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_measure/list/index?barProId="+surProjectMeasure.getProjectId())) .templateId(TemplateMessageEnum.APPLY_DEFAULT.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing14", this.getMsgProName(surProjectMeasure.getProjectId()))); - templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.JPYSSP.getName())); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.CSCLSP.getName())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing2", surProjectMeasure.getSuperviseUserName()+"审批通过")); templateMessage.addWxMpTemplateData(new WxMpTemplateData("time4", DateUtils.getTime())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing10", this.getMsgName(surProjectMeasure.getCreateBy())+"["+this.getMsgDepName(surProjectMeasure.getDeptId())+"]")); @@ -327,15 +331,16 @@ public class WeChatMessageServiceImpl { */ WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(this.getMsgId(surProjectMeasure.getCreateBy())) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_measure/list/index?barProId="+surProjectMeasure.getProjectId())) .templateId(TemplateMessageEnum.APPLY_DEFAULT.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing14", this.getMsgProName(surProjectMeasure.getProjectId()))); - templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.JPYSSP.getName())); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.CSCLSP.getName())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing2", surProjectMeasure.getSuperviseUserName()+"审批驳回")); templateMessage.addWxMpTemplateData(new WxMpTemplateData("time4", DateUtils.getTime())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing10", this.getMsgName(surProjectMeasure.getCreateBy())+"["+this.getMsgDepName(surProjectMeasure.getDeptId())+"]")); list.add(templateMessage); } - this.send(list,MessageTypeEnum.JPYSSP.getCode()); + this.send(list,MessageTypeEnum.CSCLSP.getCode()); } /** @@ -354,9 +359,10 @@ public class WeChatMessageServiceImpl { //模板数据 WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(supMsgId) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_materialSeal/list/index?barProId="+surProjectMaterialSeal.getProjectId())) .templateId(TemplateMessageEnum.APPLY_DEFAULT.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing14", this.getMsgProName(surProjectMaterialSeal.getProjectId()))); - templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.JPYSSP.getName())); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.CLFYSP.getName())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing2", surProjectMaterialSeal.getWitnessUserName()+"审批")); templateMessage.addWxMpTemplateData(new WxMpTemplateData("time4", DateUtils.getTime())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing10", this.getMsgName(surProjectMaterialSeal.getCreateBy())+"["+this.getMsgDepName(surProjectMaterialSeal.getDeptId())+"]")); @@ -401,9 +407,10 @@ public class WeChatMessageServiceImpl { */ WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(this.getMsgId(surProjectMaterialSeal.getCreateBy())) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_materialSeal/list/index?barProId="+surProjectMaterialSeal.getProjectId())) .templateId(TemplateMessageEnum.APPLY_DEFAULT.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing14", this.getMsgProName(surProjectMaterialSeal.getProjectId()))); - templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.JPYSSP.getName())); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.CLFYSP.getName())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing2", surProjectMaterialSeal.getWitnessUserName()+"审批通过")); templateMessage.addWxMpTemplateData(new WxMpTemplateData("time4", DateUtils.getTime())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing10", this.getMsgName(surProjectMaterialSeal.getCreateBy())+"["+this.getMsgDepName(surProjectMaterialSeal.getDeptId())+"]")); @@ -415,15 +422,16 @@ public class WeChatMessageServiceImpl { */ WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(this.getMsgId(surProjectMaterialSeal.getCreateBy())) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_materialSeal/list/index?barProId="+surProjectMaterialSeal.getProjectId())) .templateId(TemplateMessageEnum.APPLY_DEFAULT.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing14", this.getMsgProName(surProjectMaterialSeal.getProjectId()))); - templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.JPYSSP.getName())); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.CLFYSP.getName())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing2", surProjectMaterialSeal.getWitnessUserName()+"审批驳回")); templateMessage.addWxMpTemplateData(new WxMpTemplateData("time4", DateUtils.getTime())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing10", this.getMsgName(surProjectMaterialSeal.getCreateBy())+"["+this.getMsgDepName(surProjectMaterialSeal.getDeptId())+"]")); list.add(templateMessage); } - this.send(list,MessageTypeEnum.JPYSSP.getCode()); + this.send(list,MessageTypeEnum.CLFYSP.getCode()); } /** @@ -442,9 +450,10 @@ public class WeChatMessageServiceImpl { //模板数据 WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(supMsgId) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_checkDetection/list/index?barProId="+surProjectCheckDetection.getProjectId())) .templateId(TemplateMessageEnum.APPLY_DEFAULT.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing14", this.getMsgProName(surProjectCheckDetection.getProjectId()))); - templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.JPYSSP.getName())); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.QYFSSP.getName())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing2", surProjectCheckDetection.getWitnessUserName()+"审批")); templateMessage.addWxMpTemplateData(new WxMpTemplateData("time4", DateUtils.getTime())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing10", this.getMsgName(surProjectCheckDetection.getCreateBy())+"["+this.getMsgDepName(surProjectCheckDetection.getDeptId())+"]")); @@ -489,9 +498,10 @@ public class WeChatMessageServiceImpl { */ WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(this.getMsgId(surProjectCheckDetection.getCreateBy())) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_checkDetection/list/index?barProId="+surProjectCheckDetection.getProjectId())) .templateId(TemplateMessageEnum.APPLY_DEFAULT.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing14", this.getMsgProName(surProjectCheckDetection.getProjectId()))); - templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.JPYSSP.getName())); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.QYFSSP.getName())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing2", surProjectCheckDetection.getWitnessUserName()+"审批通过")); templateMessage.addWxMpTemplateData(new WxMpTemplateData("time4", DateUtils.getTime())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing10", this.getMsgName(surProjectCheckDetection.getCreateBy())+"["+this.getMsgDepName(surProjectCheckDetection.getDeptId())+"]")); @@ -503,15 +513,16 @@ public class WeChatMessageServiceImpl { */ WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(this.getMsgId(surProjectCheckDetection.getCreateBy())) + .miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_checkDetection/list/index?barProId="+surProjectCheckDetection.getProjectId())) .templateId(TemplateMessageEnum.APPLY_DEFAULT.getId()).build(); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing14", this.getMsgProName(surProjectCheckDetection.getProjectId()))); - templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.JPYSSP.getName())); + templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing1", MessageTypeEnum.QYFSSP.getName())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing2", surProjectCheckDetection.getWitnessUserName()+"审批驳回")); templateMessage.addWxMpTemplateData(new WxMpTemplateData("time4", DateUtils.getTime())); templateMessage.addWxMpTemplateData(new WxMpTemplateData("thing10", this.getMsgName(surProjectCheckDetection.getCreateBy())+"["+this.getMsgDepName(surProjectCheckDetection.getDeptId())+"]")); list.add(templateMessage); } - this.send(list,MessageTypeEnum.JPYSSP.getCode()); + this.send(list,MessageTypeEnum.QYFSSP.getCode()); } @Autowired