diff --git a/yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/bankmanager/BankManagerService.java b/yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/bankmanager/BankManagerService.java index bcbead84..88bcd318 100644 --- a/yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/bankmanager/BankManagerService.java +++ b/yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/bankmanager/BankManagerService.java @@ -11,17 +11,7 @@ import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import com.yxt.supervise.crm.api.bankmanager.*; -import com.yxt.supervise.crm.api.enterpriseinformation.EnterpriseInformation; -import com.yxt.supervise.system.config.DictCommonType; -import com.yxt.supervise.system.dictcommon.DictCommonFeign; -import com.yxt.supervise.system.sysorganization.SysOrganizationFeign; -import com.yxt.supervise.system.sysorganization.SysOrganizationVo; -import com.yxt.supervise.system.sysstafforg.SysStaffOrg; -import com.yxt.supervise.system.sysstafforg.SysStaffOrgFeign; -import com.yxt.supervise.system.sysuser.SysUserFeign; -import com.yxt.supervise.system.sysuser.SysUserInfoVo; -import com.yxt.supervise.system.sysuser.SysUserVo; -import org.apache.commons.lang3.StringUtils; +import com.yxt.supervise.system.sysuser.SysUserDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -31,6 +21,8 @@ import org.springframework.stereotype.Service; */ @Service public class BankManagerService extends MybatisBaseService { + @Autowired + com.yxt.supervise.crm.feign.system.SysUserFeign sysUserFeign; public PagerVo listPageVo(PagerQuery pq) { BankManagerQuery query = pq.getParams(); @@ -58,6 +50,12 @@ public class BankManagerService extends MybatisBaseService loginDetails(HttpServletRequest httpServletRequest); +} diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/reportinventory/ReportInventoryRest.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/reportinventory/ReportInventoryRest.java index 47859326..12f90aed 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/reportinventory/ReportInventoryRest.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/reportinventory/ReportInventoryRest.java @@ -46,6 +46,8 @@ public class ReportInventoryRest implements ReportInventoryDayGatherFeign { if(null==pv){ return rb.success().setData(new ArrayList<>()); } + pv.setDownloadUrl("https://supervise.yxtsoft.com/downfile/kchzb/库存汇总表"+orderDate+".xlsx"); + pv.setTitle("36524质物库存汇总"); return rb.success().setData(pv); } @GetMapping("/getReportInventoryDayStore/{orderDate}") diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/reportinventory/ReportInventoryWxRest.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/reportinventory/ReportInventoryWxRest.java index f5e95dcb..c86a955f 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/reportinventory/ReportInventoryWxRest.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/reportinventory/ReportInventoryWxRest.java @@ -35,7 +35,7 @@ public class ReportInventoryWxRest { if(null==gather){ return rb.success().setData(new ArrayList<>()); } - gather.setDownloadUrl("http://8.130.39.13:7003/upload/kchzb/库存汇总表"+orderDate+".xlsx"); + gather.setDownloadUrl("https://supervise.yxtsoft.com/downfile/kchzb/库存汇总表"+orderDate+".xlsx"); gather.setTitle("36524质物库存汇总"); return rb.success().setData(gather); } diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDayService.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDayService.java index 062e64d9..6fd764c0 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDayService.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDayService.java @@ -118,7 +118,7 @@ public class ReportStockDayService extends ServiceImpl { try { - wechatRest.hcsmSendMessage(projectSid,orderDate); + wechatRest.selectReport(projectSid,orderDate); } catch (Exception e) { throw new RuntimeException(e); } diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/StockDayRest.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/StockDayRest.java index 1df02f54..9cdbc1bc 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/StockDayRest.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/StockDayRest.java @@ -59,7 +59,6 @@ public class StockDayRest { public ResultBean buildReport(@PathVariable("projectSid") String projectSid) { ResultBean rb = ResultBean.fireFail(); ReportStockDay pv = reportStockDayService.buildReportByProjectAndDay(projectSid); - return rb.success().setData(pv); } @GetMapping("/buildExcel/{projectSid}/{orderDate}") diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/wechat/WechatRest.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/wechat/WechatRest.java index 36613fcd..16889dbe 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/wechat/WechatRest.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/wechat/WechatRest.java @@ -76,7 +76,13 @@ public class WechatRest { return token; } - + public void selectReport(String projectSid,String orderDate) throws Exception { + if(projectSid.equals("d8bf7556-6db4-46b1-87eb-f3e9f93d330f")){ + shgfSendMessage(projectSid,orderDate); + }else if(projectSid.equals("236408a1-c36e-416c-9f49-d6caa7671009")){ + hcsmSendMessage(projectSid,orderDate); + } + } @GetMapping(value = "authGet",produces = "text/plain;charset=utf-8") public String authGet(@RequestParam(name = "signature", required = false) String signature, @RequestParam(name = "timestamp", required = false) String timestamp, @@ -98,8 +104,7 @@ public class WechatRest { */ @PostMapping("/collectionSendMessage/{orderDate}") public void collectionSendMessage(@PathVariable("orderDate") String orderDate) throws Exception { - //ReportInventoryDayGatherVo csmCashReportVo=reportInventoryDayGatherMapper.getReportInventoryDayGather(orderDate); - ReportInventoryDayGatherVo reportInventoryDayGatherVo=reportInventoryDayGatherMapper.getReportInventoryDayGather(orderDate); + CsmCashReportVo csmCashReportVo=csmCashReportMapper.getCsmCashReport(orderDate); // 模板参数 Map sendMag = new HashMap(); // 公众号的模板id(也有相应的接口可以查询到) @@ -108,13 +113,14 @@ public class WechatRest { String accessToken=getAccessToken(APP_ID_BIZ,APPSECRETBIZ); String wxUrl = WX_URL_MESSAGE_SEND.replace("ACCESS_TOKEN", accessToken); List openIds=new ArrayList<>(); -// openIds.add("oGdho60xVtWEXUks7nYEAn0tGlDE"); + openIds.add("oGdho60xVtWEXUks7nYEAn0tGlDE"); openIds.add("oGdho66394A-4-NyumcJ1MEaT8Lo"); openIds.add("oGdho68CArVhC_-7ELkG-jX21ruk"); -// openIds.add("oGdho6yYB47f52HVk2NqirrFbRRk"); -// openIds.add("oGdho6-12-ioAKeLhVUDYPucbDb4"); + openIds.add("oGdho6yYB47f52HVk2NqirrFbRRk"); + openIds.add("oGdho6-12-ioAKeLhVUDYPucbDb4"); openIds.add("oGdho668Hew45t0xfBJC84TNGVzI"); openIds.add("oGdho624Cr3j_iZBj-0_HayKLNc4"); + openIds.add("oGdho6-LvwNY6KylgMlEG0C_JMmQ"); String pa=""; JSONObject jsonObject=new JSONObject(); List list=new ArrayList<>(); @@ -122,15 +128,15 @@ public class WechatRest { MessageOpenidDto dto=new MessageOpenidDto(); dto.setOpenId(openId); list.add(dto); - sendMag.put("time1", new Template(reportInventoryDayGatherVo.getOrderDate())); - sendMag.put("thing2", new Template("每日回款审核报告")); + sendMag.put("time1", new Template(csmCashReportVo.getReportDate())); + sendMag.put("thing2", new Template("36524每日回款审核报告")); sendMag.put("thing3", new Template("赵丽晓")); Map miniprogram = new HashMap<>(); //云眼 - //miniprogram.put("appid","wx11565021714ba796"); +// miniprogram.put("appid","wx11565021714ba796"); //云仓 miniprogram.put("appid","wx05604ce2a8bede05");//wx65c2b78fd1452eeb - miniprogram.put("pagepath","pages/index/demoReportKc2?orderDate="+reportInventoryDayGatherVo.getOrderDate()); + miniprogram.put("pagepath","pages/index/auditReport?dataDate="+csmCashReportVo.getDataDate()+"&"+"companyName="+csmCashReportVo.getCompanyName()); pa=miniprogram.get("pagepath"); RestTemplate restTemplate = new RestTemplate(); //拼接base参数 @@ -152,7 +158,7 @@ public class WechatRest { //推送消息之后保存消息日志 MessagePushLogDto logDto=new MessagePushLogDto(); logDto.setContent(sendMag); - logDto.setMessageTime(reportInventoryDayGatherVo.getReportTime()); + logDto.setMessageTime(csmCashReportVo.getDataDate()); logDto.setPagepath(pa); logDto.setMessageOpenidDtos(list); ThreadUtil.execute(() -> { @@ -189,6 +195,7 @@ public class WechatRest { openIds.add("oGdho6-12-ioAKeLhVUDYPucbDb4"); openIds.add("oGdho668Hew45t0xfBJC84TNGVzI"); openIds.add("oGdho624Cr3j_iZBj-0_HayKLNc4"); + openIds.add("oGdho6-LvwNY6KylgMlEG0C_JMmQ"); String pa=""; JSONObject jsonObject=new JSONObject(); List list=new ArrayList<>(); @@ -201,10 +208,10 @@ public class WechatRest { sendMag.put("thing3", new Template("赵丽晓")); Map miniprogram = new HashMap<>(); //云眼 - //miniprogram.put("appid","wx11565021714ba796"); +// miniprogram.put("appid","wx11565021714ba796"); //云仓 miniprogram.put("appid","wx05604ce2a8bede05");//wx65c2b78fd1452eeb - miniprogram.put("pagepath","pages/index/InventorySummary?orderDate="+csmCashReportVo.getOrderDate()); + miniprogram.put("pagepath","pages/index/demoReportKc?orderDate="+csmCashReportVo.getOrderDate()); pa=miniprogram.get("pagepath"); RestTemplate restTemplate = new RestTemplate(); //拼接base参数 @@ -259,13 +266,84 @@ public class WechatRest { openIds.add("oGdho612Vd1p8v_o1Zw2f8rCA9_M"); openIds.add("oGdho615_xBMYYwftEjjBlC6p2uE"); openIds.add("oGdho6ys73QBJ_iM0aHWdvPnl_zs"); - - openIds.add("oGdho66394A-4-NyumcJ1MEaT8Lo"); openIds.add("oGdho68CArVhC_-7ELkG-jX21ruk"); openIds.add("oGdho6yYB47f52HVk2NqirrFbRRk"); openIds.add("oGdho6-12-ioAKeLhVUDYPucbDb4"); openIds.add("oGdho668Hew45t0xfBJC84TNGVzI"); + openIds.add("oGdho6-LvwNY6KylgMlEG0C_JMmQ"); + String pa=""; + JSONObject jsonObject=new JSONObject(); + List list=new ArrayList<>(); + for(String openId:openIds){ + MessageOpenidDto dto=new MessageOpenidDto(); + dto.setOpenId(openId); + list.add(dto); + sendMag.put("time1", new Template(reportStockDay.getReportTime())); + sendMag.put("thing2", new Template("质物库存汇总("+reportStockDay.getProjectName()+")")); + sendMag.put("thing3", new Template("赵丽晓")); + Map miniprogram = new HashMap<>(); + miniprogram.put("appid","wx05604ce2a8bede05"); + miniprogram.put("pagepath","pages/index/InventorySummary?orderDate="+reportStockDay.getOrderDate()+"&"+"projectSid="+reportStockDay.getProjectSid()); + pa=miniprogram.get("pagepath"); + RestTemplate restTemplate = new RestTemplate(); + //拼接base参数 + Map sendBody = new HashMap<>(); + sendBody.put("miniprogram",miniprogram); + sendBody.put("touser", openId); // openId + sendBody.put("url", ""); // 点击模板信息跳转地址 + sendBody.put("topcolor", "#FF0000"); // 顶色 + sendBody.put("data", sendMag); // 模板参数 + sendBody.put("template_id", templateId);// 模板Id + ResponseEntity forEntity = restTemplate.postForEntity(wxUrl, sendBody, String.class); + jsonObject = JSONObject.parseObject(forEntity.getBody()); + } + // 0 + String messageCode = jsonObject.getString("errcode"); + // 2431260672639467520 + String msgId = jsonObject.getString("msgid"); + System.out.println("messageCode : " + messageCode + ", msgId: " +msgId); + //推送消息之后保存消息日志 + MessagePushLogDto logDto=new MessagePushLogDto(); + logDto.setContent(sendMag); + logDto.setMessageTime(reportStockDay.getReportTime()); + logDto.setPagepath(pa); + logDto.setMessageOpenidDtos(list); + ThreadUtil.execute(() -> { + try { + messagePushLogService.save(logDto); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + //return forEntity.getBody(); + } + /** + * 山海光伏库存推送 + * @param orderDate + * @throws Exception + */ + @PostMapping("/shgfSendMessage/{projectSid}/{orderDate}") + public void shgfSendMessage(@PathVariable("projectSid") String projectSid,@PathVariable("orderDate") String orderDate) throws Exception { + ReportStockDay reportStockDay=stockDayRest.getDayGather(projectSid,orderDate).getData(); + // 模板参数 + Map sendMag = new HashMap(); + // 公众号的模板id(也有相应的接口可以查询到) + String templateId = "BT6BHEojCmgWNTcpz1raHNIpJEEISP1E134btP51p_8"; + //微信的基础accessToken + String accessToken=getAccessToken(APP_ID_BIZ,APPSECRETBIZ); + String wxUrl = WX_URL_MESSAGE_SEND.replace("ACCESS_TOKEN", accessToken); + List openIds=new ArrayList<>(); + openIds.add("oGdho60xVtWEXUks7nYEAn0tGlDE"); + openIds.add("oGdho612Vd1p8v_o1Zw2f8rCA9_M"); + openIds.add("oGdho615_xBMYYwftEjjBlC6p2uE"); + openIds.add("oGdho6ys73QBJ_iM0aHWdvPnl_zs"); + openIds.add("oGdho66394A-4-NyumcJ1MEaT8Lo"); + openIds.add("oGdho68CArVhC_-7ELkG-jX21ruk"); + openIds.add("oGdho6yYB47f52HVk2NqirrFbRRk"); + openIds.add("oGdho6-12-ioAKeLhVUDYPucbDb4"); + openIds.add("oGdho668Hew45t0xfBJC84TNGVzI"); + openIds.add("oGdho6-LvwNY6KylgMlEG0C_JMmQ"); String pa=""; JSONObject jsonObject=new JSONObject(); List list=new ArrayList<>(); diff --git a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/SysUser.java b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/SysUser.java index ccd13d67..0fc862da 100644 --- a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/SysUser.java +++ b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/SysUser.java @@ -65,4 +65,6 @@ public class SysUser extends BaseEntity { @ApiModelProperty("用户头像") private String headImage; + private String openId; + private String appletOpenid; } diff --git a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/SysUserDto.java b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/SysUserDto.java index 9e5de19d..5d5299c3 100644 --- a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/SysUserDto.java +++ b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/SysUserDto.java @@ -38,5 +38,7 @@ public class SysUserDto implements Dto { private String deptSid; @ApiModelProperty(value = "岗位sid") private String postSid; - + private String bankMessageSid; + private String openid; + private String sid; } \ No newline at end of file diff --git a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/SysUserVo.java b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/SysUserVo.java index ce27509a..7248effd 100644 --- a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/SysUserVo.java +++ b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/SysUserVo.java @@ -90,4 +90,5 @@ public class SysUserVo implements Vo { private Boolean needResetPsd; @ApiModelProperty("工号") private String jobNumber; + private String openid; } diff --git a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/wx/SmsVerifyCodeQuery.java b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/wx/SmsVerifyCodeQuery.java new file mode 100644 index 00000000..372dfecc --- /dev/null +++ b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/wx/SmsVerifyCodeQuery.java @@ -0,0 +1,15 @@ +package com.yxt.supervise.system.sysuser.wx; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SmsVerifyCodeQuery implements Query { + @ApiModelProperty("手机号码") + private String mobile; + @ApiModelProperty("手机验证码") + private String code; + @ApiModelProperty("调用定位") + String callLocation; +} diff --git a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/wx/SysUserLoginVo.java b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/wx/SysUserLoginVo.java new file mode 100644 index 00000000..dfcedcb0 --- /dev/null +++ b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/wx/SysUserLoginVo.java @@ -0,0 +1,15 @@ +package com.yxt.supervise.system.sysuser.wx; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SysUserLoginVo implements Vo { + @ApiModelProperty(value = "用户Sid") + private String sysUserSid; + @ApiModelProperty(value = "用户登录时随机生成身份验证字符串") + private String token; + @ApiModelProperty(value = "是否登陆") + private Boolean isLogin; +} diff --git a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/wx/SysUserWxBindMobileDto.java b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/wx/SysUserWxBindMobileDto.java new file mode 100644 index 00000000..bb7b0a44 --- /dev/null +++ b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/wx/SysUserWxBindMobileDto.java @@ -0,0 +1,17 @@ +package com.yxt.supervise.system.sysuser.wx; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SysUserWxBindMobileDto implements Dto { + @ApiModelProperty(value = "用户登陆授权Sid") + private String sysUserWxAuthSid; + @ApiModelProperty(value = "手机号") + private String mobile; + @ApiModelProperty(value = "验证码") + private String code; + //微信id + private String openid; +} diff --git a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuserwxauth/SysUserWxAuth.java b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuserwxauth/SysUserWxAuth.java new file mode 100644 index 00000000..39f2bfd0 --- /dev/null +++ b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuserwxauth/SysUserWxAuth.java @@ -0,0 +1,17 @@ +package com.yxt.supervise.system.sysuserwxauth; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@TableName("sys_user_wx_auth") +public class SysUserWxAuth extends BaseEntity { + @ApiModelProperty(value = "关联的用户登陆Sid") + private String sysUserSid; + @ApiModelProperty(value = "openid") + private String openid; + @ApiModelProperty(value = "微信登陆唯一标识") + private String unionid; +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserMapper.xml b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserMapper.xml index d94f7935..0a956660 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserMapper.xml +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserMapper.xml @@ -40,7 +40,13 @@ WHERE user_role.userSid = USER.sid ) roleName, dict.dictValue userType, - user.userType userTypeKey + user.mobile as mobile, + user.openid as openid, + case user.userType + when 1 then "监管人员" + when 2 then "企业人员" + when 3 then "银行人员" + end as userTypeKey FROM sys_user USER LEFT JOIN sys_user_role user_role ON user_role.userSid = USER.sid LEFT JOIN sys_role role ON role.sid = user_role.roleSid diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserRest.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserRest.java index 299f06cb..0ac339c8 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserRest.java +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserRest.java @@ -1,6 +1,7 @@ package com.yxt.supervise.system.sysuser; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.yxt.supervise.system.sysorganization.SysOrganization; import com.yxt.supervise.system.sysorganization.SysOrganizationService; import com.yxt.supervise.system.syspost.SysPost; @@ -21,9 +22,7 @@ import com.yxt.supervise.system.sysuser.app.AppUserOrgInfoVo; import io.swagger.annotations.Api; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.*; @@ -70,7 +69,6 @@ public class SysUserRest implements SysUserFeign { PagerVo pv = sysUserService.listPageVo(pq); return rb.success().setData(pv); } - @Override public ResultBean> listAll(@RequestBody SysUserQuery query) { ResultBean rb = ResultBean.fireFail(); @@ -165,7 +163,88 @@ public class SysUserRest implements SysUserFeign { } return rb.success(); } + @PostMapping("/saveOpenId") + public ResultBean saveOpenId(@RequestBody SysUserDto dto){ + ResultBean rb=new ResultBean(); + SysUser sysUser=sysUserService.getOne(new QueryWrapper().eq("sid",dto.getSid())); + sysUser.setOpenId(dto.getOpenid()); + sysUserService.update(sysUser,new QueryWrapper().eq("sid",dto.getSid())); + return rb.success().setMsg("保存成功"); + } + @PostMapping("/saveBank") + public ResultBean saveBank(@RequestBody SysUserDto dto) { + ResultBean rb = ResultBean.fireFail(); + //手机号 + String mobile = dto.getMobile(); + //姓名 + String name = dto.getName(); + //用户类型 + int userType = dto.getUserType(); + //部门sid +// String deptSid = dto.getDeptSid(); +// //岗位sid +// String postSid = dto.getPostSid(); + //验证码 +// String verificationCode = dto.getVerificationCode(); + if (StringUtils.isBlank(mobile)) { + return new ResultBean().fail().setMsg("手机号不能为空"); + } else { + SysUser one = sysUserService.fetchByUserName(mobile); + if (null != one) { + return new ResultBean().fail().setMsg("手机号重复!`"); + } + } + if (StringUtils.isBlank(name)) { + return new ResultBean().fail().setMsg("姓名不能为空"); + } + if (userType == 0) { + return new ResultBean().fail().setMsg("用户类型不能为空"); + } + //取消验证码 +// if (StringUtils.isBlank(verificationCode)) { +// return new ResultBean().fail().setMsg("验证码不能为空"); +// } else { +// Map stringObjectMap = sysUserService.mobileValidateRegister(mobile, verificationCode); +// String code = stringObjectMap.get("code").toString(); +// String details = stringObjectMap.get("details").toString(); +// if (Tools.CODE_FAIL.equals(code)) { +// return ResultBean.fireFail().setMessage(details).setMsg(details); +// } +// } + //"15097329653"; + String password = mobile.substring(5, 11); + String md5 = Encodes.md5(password); + SysUser su = new SysUser(); + dto.fillEntity(su); + su.setStaffSid(dto.getBankMessageSid()); + su.setUserName(mobile); + su.setPassword(md5); + //su.setIsAdmin("1"); + sysUserService.save(su); +// if (StringUtils.isNotBlank(deptSid)) { +// SysOrganization sysOrganization = sysOrganizationService.fetchBySid(deptSid); +// SysStaffOrg sso = new SysStaffOrg(); +// sso.setOrgName(sysOrganization.getName()); +// sso.setOrgSid(sysOrganization.getSid()); +// sso.setStaffSid(ssi.getSid()); +// sso.setOrgSidPath(sysOrganization.getOrgSidPath()); +// sso.setOrgNamePath(sysOrganization.getName()); +// sso.setManageType("3"); +// sysStaffOrgService.save(sso); +// } +// if (StringUtils.isNotBlank(postSid)) { +// SysPost sysPost = sysPostService.fetchBySid(postSid); +// SysStaffPost ssp = new SysStaffPost(); +// ssp.setStaffSid(ssi.getSid()); +// ssp.setOrgSid(deptSid); +// ssp.setPostSid(postSid); +// ssp.setStartDate(new Date()); +// ssp.setIsDepetHead(0); +// sysStaffPostService.save(ssp); +// } + return rb.success(); + } @Override public ResultBean delSysUserByMobile(String mobile) { int i = sysUserService.delSysUserByMobile(mobile); diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java index e0716860..b4d9b172 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java @@ -2,6 +2,7 @@ package com.yxt.supervise.system.sysuser; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.supervise.system.config.DictCommonType; @@ -26,18 +27,21 @@ import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import com.yxt.supervise.system.sysuser.app.AppUserOrgInfoVo; import com.yxt.supervise.system.sysuser.app.OrgList; -import com.yxt.supervise.system.sysuser.wx.WxHomePageVo; -import com.yxt.supervise.system.sysuser.wx.WxMySysUserInfoVo; -import com.yxt.supervise.system.sysuser.wx.WxSysUserVo; +import com.yxt.supervise.system.sysuser.wx.*; +import com.yxt.supervise.system.sysuserwxauth.SysUserWxAuth; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.client.RestTemplate; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.util.*; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; +import java.util.logging.Logger; import java.util.stream.Collectors; import static java.util.concurrent.Executors.newScheduledThreadPool; @@ -75,6 +79,10 @@ public class SysUserService extends MybatisBaseService { * 手机短信登录验证码时效(秒) */ static final long APP_LOGIN_CODE_TIME_LIMIT = 300L; + String APP_ID = "wx05604ce2a8bede05"; + String SECRET = "3d36e8a61212cf773a2fa4e6c9a83334"; + private static final String WX_URL_LOGIN = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code "; + private static final String WX_EMPOWER_URL_LOGIN = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code"; @Autowired private SysStaffinfoService sysStaffinfoService; @Autowired @@ -554,12 +562,14 @@ public class SysUserService extends MybatisBaseService { public ResultBean sendVerificationCodeForApp(String mobile, String type) { Date date = new Date(); String redisKey = ""; - if (type.equals("1")) { + if (type.equals("1")) { redisKey = "loginCode"; } else if (type.equals("2")) { redisKey = "updatePwdCode"; } else if (type.equals("3")) { redisKey = "resetPwdCode"; + }else if(type.equals("4")){ + redisKey = "binding"; } String codeRedis = redisUtil.get(redisKey + mobile); if (StringUtils.isNotEmpty(codeRedis)) { @@ -581,13 +591,16 @@ public class SysUserService extends MybatisBaseService { } String content = ""; if (type.equals("1")) { - content = "登录验证码:" + verificationCode + ",用于登录App,有效期5分钟,如非本人操作,请忽略该短信。"; - } else { + content = "登录验证码:" + verificationCode + ",有效期5分钟,如非本人操作,请忽略。"; + } else if(type.equals("4")){ + content = "账户绑定验证码:" + verificationCode + ",有效期5分钟,如非本人操作,请忽略。"; + }else { content = "修改密码验证码:" + verificationCode + ",用于修改登录密码,有效期5分钟,如非本人操作,请忽略该短信。"; } - String res = MsgWs.SendWaitWorkMsg(mobile, content); + String res = com.yxt.supervise.utils.MsgWs.SendWaitWorkMsg(mobile, content); // String res = "1"; if (res.equals("1")) { + System.out.println("发送消息"); redisUtil.set(redisKey + mobile, verificationCode + date.getTime(), APP_LOGIN_CODE_TIME_LIMIT); } return ResultBean.fireSuccess().setMsg("发送短信验证码成功"); @@ -755,13 +768,13 @@ public class SysUserService extends MybatisBaseService { /** * @param mobile 手机号 * @param verificationCode 验证码 - * @description: 客户端注册验证验证码是否正确 + * @description: 绑定微信验证验证码是否正确 * @return: * @Author: dimengzhe * @Date: 2021/10/6 11:02 */ public Map mobileValidateWxRegister(String mobile, String verificationCode) { - String key = DictCommonType.WX_REGIST + mobile; + String key = "binding" + mobile; String code = redisUtil.get(key); if (StringUtils.isNotBlank(code)) { code = code.substring(0, 4); @@ -1121,4 +1134,218 @@ public class SysUserService extends MybatisBaseService { public List getPost(String staffSid) { return sysStaffPostService.getPost(staffSid); } + + + /** + * 微信静默登录 + * @param wxCode 临时凭证code值 + * @return ResultBean data:Token + * 登陆成功后data返回用户Sid + * 聂金毅 2022/6/8 20:30 创建 + */ + public ResultBean wxSilentLogin(String wxCode) { + ResultBean rb = ResultBean.fireFail(); + // 通过wxCode获取unionid,失败返回微信的错误提示。 + ResultBean rbJsonObject = wxLogin(wxCode,APP_ID,SECRET); + if (!rbJsonObject.getSuccess()){ + JSONObject jsonObject = rbJsonObject.getData(); + String errcode = jsonObject.get("errcode").toString(); + String errmsg = jsonObject.get("errmsg").toString(); + return rb.setMsg(errmsg).setCode(errcode); + } + // 判断存在不存在unionid,用户在开放平台的唯一标识符,若当前小程序已绑定到微信开放平台帐号下会返回,详见 UnionID 机制说明。、 + JSONObject jsonObject = rbJsonObject.getData(); + if (!jsonObject.containsKey("openid")){ + return rb.setMsg("未获得openid,请参见auth.code2Session"); + } + //String unionid = jsonObject.get("unionid").toString(); + String openid = jsonObject.get("openid").toString(); + // 判断用户登陆授权表是否存在该用户unionid和openid,如果不存在就增加一条返回 + SysUser sysUser=baseMapper.selectOne(new QueryWrapper().eq("appletOpenid",openid)); + + if(sysUser==null){ + return rb.setMsg("此微信没有绑定用户").setCode("100").setData(openid); + }else{ + + } + + // 重置Token失效时间 + // {写代码} + SysUserVo sysUserVo=setUserRedisSessionToken(sysUser); + SysUserLoginVo sysUserLoginVo = new SysUserLoginVo(); + sysUserLoginVo.setSysUserSid(sysUser.getSid()); + sysUserLoginVo.setToken(sysUserVo.getToken()); + sysUserLoginVo.setIsLogin(true); + sysUser.setToken(sysUserVo.getToken()); + return rb.success().setData(sysUser); + } + /** + * 授权登录 + * @param wxCode 临时凭证code值 + * @return ResultBean data:Token + * 登陆成功后data返回用户Sid + * 聂金毅 2022/6/8 20:30 创建 + */ + public ResultBean wxAuthLogin(String wxCode) { + ResultBean rb = ResultBean.fireFail(); + // 通过wxCode获取unionid,失败返回微信的错误提示。 + ResultBean rbJsonObject = wxAuthLogin(wxCode,APP_ID,SECRET); + if (!rbJsonObject.getSuccess()){ + JSONObject jsonObject = rbJsonObject.getData(); + String errcode = jsonObject.get("errcode").toString(); + String errmsg = jsonObject.get("errmsg").toString(); + return rb.setMsg(errmsg).setCode(errcode); + } + // 判断存在不存在unionid,用户在开放平台的唯一标识符,若当前小程序已绑定到微信开放平台帐号下会返回,详见 UnionID 机制说明。、 + JSONObject jsonObject = rbJsonObject.getData(); + if (!jsonObject.containsKey("openid")){ + return rb.setMsg("未获得openid,请参见auth.code2Session"); + } + //String unionid = jsonObject.get("unionid").toString(); + String openid = jsonObject.get("openid").toString(); + // 判断用户登陆授权表是否存在该用户unionid和openid,如果不存在就增加一条返回 + SysUser sysUser=baseMapper.selectOne(new QueryWrapper().eq("appletOpenid",openid)); + + if(sysUser==null){ + return rb.setMsg("此微信没有绑定用户").setCode("100").setData(openid); + }else{ + + } +// //SysUserWxAuth sysUserWxAuth = sysUserWxAuthService.fetchByUnionidAndOpenid(unionid,openid); +// if (null == sysUser) { +// // 添加一个新用户授权记录 +// //sysUser.setUnionid(unionid); +// //sysUser.setOpenid(openid); +// int isSave = baseMapper.insert(sysUser); +// if ( isSave==0 ){ +// return rb.setMsg("登陆:新增用户授权表失败"); +// } +// return rb.setMsg(SysUserWxAuth_Not_Exist.getMsg()).setCode(SysUserWxAuth_Not_Exist.getCode()); +// } +// // 如果用户Sid为空返回 +// String sysUserSid = sysUserWxAuth.getSysUserSid(); +// if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(sysUserSid) || sysUserSid == null){ +// return rb.setMsg(SysUser_Sid_IsEmpty.getMsg()).setCode(SysUser_Sid_IsEmpty.getCode()); +// } +// // 如果未找到用户记录返回 +// SysUser sysUser = fetchBySid(sysUserSid); +// if (sysUser == null){ +// return rb.setMsg(SysUser_Not_Exist.getMsg()).setCode(SysUser_Not_Exist.getCode()); +// } +// // 如果未绑定手机号返回 +// String mobile = sysUser.getMobile(); +// if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(mobile) || mobile == null){ +// return rb.setMsg(SysUser_Mobile_Not_Bind.getMsg()).setCode(SysUser_Mobile_Not_Bind.getCode()); +// } +// // 如果设置为未登陆返回 +// int isLogin = sysUser.getIsLogin(); +// if (isLogin !=1){ +// return rb.setMsg(SysUser_Not_Login.getMsg()).setCode(SysUser_Not_Login.getCode()); +// } + // 获得Token +// String token = sysUser.getToken(); +// if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(token) || token == null){ +// return rb.setMsg("登陆:token为空").setCode("122016"); +// } + // 重置Token失效时间 + // {写代码} + SysUserLoginVo sysUserLoginVo = new SysUserLoginVo(); + sysUserLoginVo.setSysUserSid(sysUser.getSid()); +// sysUserLoginVo.setToken(token); + sysUserLoginVo.setIsLogin(true); + return rb.success().setData(sysUser); + } + public ResultBean wxLogin( String jsCode,String appid, String secret) { + ResultBean rb=new ResultBean(); + String url = WX_URL_LOGIN.replace("APPID", appid).replace("SECRET", secret).replace("JSCODE",jsCode).replace("authorization_code","authorization_code"); + RestTemplate restTemplate = new RestTemplate(); + ResponseEntity forEntity = restTemplate.getForEntity(url,String.class); + JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody()); + System.out.println(jsonObject); + return rb.success().setData(jsonObject); + } + public ResultBean wxAuthLogin( String code,String appid, String secret) { + ResultBean rb=new ResultBean(); + String url = WX_EMPOWER_URL_LOGIN.replace("APPID", appid).replace("SECRET", secret).replace("CODE",code).replace("authorization_code","authorization_code"); + RestTemplate restTemplate = new RestTemplate(); + ResponseEntity forEntity = restTemplate.getForEntity(url,String.class); + JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody()); + System.out.println(jsonObject); + return rb.success().setData(jsonObject); + } + public ResultBean wxBindMobile(SysUserWxBindMobileDto sysUserWxBindMobileDto) { + ResultBean rb = ResultBean.fireFail(); + String mobile = sysUserWxBindMobileDto.getMobile(); + // 校验手机验证码 + String code = sysUserWxBindMobileDto.getCode(); + Map vali = mobileValidateWxRegister(mobile,code); +// if (!rb.getSuccess()){ +// return rb; +// } + if(!vali.get("code").equals("200")){ + return rb.setMsg(vali.get("details").toString()); + } + String sysUserSid = ""; + // 通过手机号查询及添加用户信息 + SysUser sysUser = baseMapper.selectOne(new QueryWrapper().eq("mobile",mobile)); + if (sysUser != null) { + sysUserSid = sysUser.getSid(); + sysUser.setAppletOpenid(sysUserWxBindMobileDto.getOpenid()); + int i= baseMapper.updateById(sysUser); + if (i>0){ + return rb.success().setMsg("绑定成功").setData(sysUser); + } + else{ + return rb.setMsg("绑定失败"); + } + } + // 当用户Sid不为空时更新 +// if(!com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(sysUserWxAuth.getSysUserSid()) && sysUserWxAuth.getSysUserSid() != null){ +// sysUserSid = sysUserWxAuth.getSysUserSid(); +// sysUser = fetchBySid(sysUserSid); +// if (sysUser != null){ +// sysUser.setMobile(mobile); +// boolean isUpdate = updateById(sysUser); +// if (isUpdate){ +// return rb.success().setMsg("绑定成功").setData(sysUserSid); +// } +// else{ +// return rb.setMsg("绑定失败"); +// } +// } +// } + +// // 添加用户信息表 +// SysUserInfoDto sysUserInfoDto = sysUserInfoService.setSysUserInfoDefaultValue(); +// sysUserInfoDto.setMobile(mobile); +// ResultBean isSave = sysUserInfoService.saveSysUserInfo(sysUserInfoDto); +// if (!isSave.getSuccess()){ +// return rb.setMsg("绑定用户新增用户信息表失败"); +// } +// String sysUserInfoSid = isSave.getData().toString(); +// sysUser = new SysUser(); +// sysUser.setSysUserInfoSid(sysUserInfoSid); +// sysUser.setMobile(mobile); +// // 设置登陆名 +// String timeNow = String.valueOf(System.currentTimeMillis()); +// sysUser.setLoginName("user" + timeNow); +// sysUser.setIsLogin(1); +// sysUser.setIsAdmin(2); +// sysUser.setOnlineState(1); +// boolean isSaveSysUser = this.save(sysUser); +// if (!isSaveSysUser){ +// return rb.setMsg("用户表保存失败"); +// } +// // 更新用户微信授权表 +// sysUserSid = sysUser.getSid(); +// sysUserWxAuth.setSysUserSid(sysUserSid); +// boolean isUpdate = sysUserWxAuthService.updateById(sysUserWxAuth); +// if (isUpdate){ +// return rb.success().setMsg("绑定成功").setData(sysUserSid); +// } +// else{ +// return rb.setMsg("绑定失败"); +// } + return rb; + } } \ No newline at end of file diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/wx/WxSysUserRest.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/wx/WxSysUserRest.java index de3d74b2..9c3c3e53 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/wx/WxSysUserRest.java +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/wx/WxSysUserRest.java @@ -15,13 +15,12 @@ import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.utils.*; import com.yxt.common.core.result.ResultBean; 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.http.ResponseEntity; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.*; import org.springframework.web.client.RestTemplate; import javax.crypto.Mac; @@ -42,11 +41,10 @@ import java.util.*; * @date 2021/10/5 13:09 * @description 客户端用户接口 */ -@Controller +@RestController @RequestMapping("v1/wxuser") @Api(tags = "用户表-小程序端") public class WxSysUserRest implements WxSysUserFeign { - private static final String WX_URL_LOGIN = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code "; @Autowired private SysUserService sysUserService; @@ -367,72 +365,30 @@ public class WxSysUserRest implements WxSysUserFeign { } return sb.toString(); } + @ApiOperation(value = "发送验证码") + @GetMapping("/sendVerificationCode/{mobile}/{type}") + public ResultBean sendVerificationCode(@PathVariable("mobile") String mobile,@PathVariable("type") String type){ + return sysUserService.sendVerificationCodeForApp(mobile, type); + } + @ApiOperation(value = "验证验证码是否正确") + @GetMapping("/mobileValidateWxRegister") + public Map mobileValidateWxRegister(String mobile,String verificationCode){ + return sysUserService.mobileValidateWxRegister(mobile, verificationCode); + } + @PostMapping("/wxBindMobile") + @ApiOperation(value = "微信绑定手机") + public ResultBean wxBindMobile(@RequestBody SysUserWxBindMobileDto sysUserWxBindMobileDto){ + return sysUserService.wxBindMobile(sysUserWxBindMobileDto); + } - /** - * 验证码长度 - */ - static final int LENGTH_OF_CODE = 4; - - - /** - * 发送手机端登录验证码 - * - * @param mobile - * @param type 1、登录2、修改密码3、找回密码 - * @return - */ - public ResultBean sendVerificationCodeForApp(String mobile, String type) { - Date date = new Date(); - String redisKey = ""; - if (type.equals("1")) { - redisKey = "loginCode"; - } else if (type.equals("2")) { - redisKey = "updatePwdCode"; - } else if (type.equals("3")) { - redisKey = "resetPwdCode"; - } - String codeRedis = redisUtil.get(redisKey + mobile); - if (StringUtils.isNotEmpty(codeRedis)) { - //查看请求间隔,默认是一分钟,小于一分钟继续等待,超过一分钟发送短信 - String sendTime = codeRedis.substring(4); - long diffSecond = (date.getTime() - Long.parseLong(sendTime)) / 1000; - if (diffSecond < 60) { - return ResultBean.fireFail().setMsg("请等待一分钟后再次重试!"); - } - } - String verificationCode = ""; - for (int i = 0; i < LENGTH_OF_CODE; i++) { - // 定义随机类 - Random random = new Random(); - // 返回[0,10)集合中的整数,注意不包括10 - int result = random.nextInt(10); - // +1后,[0,10)集合变为[1,11)集合,满足要求 - verificationCode = verificationCode + result; - } - String content = ""; - if (type.equals("1")) { - content = "登录验证码:" + verificationCode + ",用于登录App,有效期5分钟,如非本人操作,请忽略。"; - } else { - content = "修改密码验证码:" + verificationCode + ",用于修改登录密码,有效期5分钟,如非本人操作,请忽略。"; - } - String res = MsgWs.SendWaitWorkMsg(mobile, content); - long i=1000; - if (res.equals("1")) { - redisUtil.set(redisKey + mobile, verificationCode + date.getTime(), i); - } - return ResultBean.fireSuccess().setMsg("发送短信验证码成功"); + @ApiOperation(value = "微信静默登录") + @GetMapping("/wxSilentLogin") + public ResultBean wxSilentLogin(@RequestParam(value = "wxCode") String wxCode) { + return sysUserService.wxSilentLogin(wxCode); } - @PostMapping("/wxLogin/{appid}/{secret}/{jsCode}/{grantType}") - public ResultBean wxLogin(@PathVariable("appid") String appid, - @PathVariable("secret")String secret, - @PathVariable("jsCode")String jsCode, - @PathVariable("grantType")String grantType) throws Exception { - ResultBean rb=new ResultBean(); - String url = WX_URL_LOGIN.replace("APPID", appid).replace("SECRET", secret).replace("JSCODE",jsCode).replace("authorization_code",grantType); - RestTemplate restTemplate = new RestTemplate(); - ResponseEntity forEntity = restTemplate.getForEntity(url,String.class); - JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody()); - System.out.println(jsonObject); - return rb.success().setData(jsonObject); + @ApiOperation(value = "微信授权登录") + @GetMapping("/wxAuthLogin") + public ResultBean wxAuthLogin(@RequestParam(value = "wxCode") String wxCode) { + return sysUserService.wxAuthLogin(wxCode); } } diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/utils/MsgWs.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/utils/MsgWs.java index 560ff2d6..d2518fdc 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/utils/MsgWs.java +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/utils/MsgWs.java @@ -13,6 +13,7 @@ import javax.xml.namespace.QName; * @description 发送短信调用接口 */ public class MsgWs { + static String msgSign="【云仓贷后】"; public static String SendWaitWorkMsg(String mobile, String msg) { try { @@ -40,7 +41,7 @@ public class MsgWs { javax.xml.rpc.ParameterMode.IN); // String[] fn01 = {"YXT010045", "yuxintonghygl", mobile, msgtitle+msg+msgSign, "", ""}; // String[] fn01 = {"YXT011852", "yxt_ar230314", mobile, msg+ SmsFeign.msgSign, "", ""}; - String[] fn01 = {"YXT011852", "yxt_ar230314", mobile, msg, "", ""}; + String[] fn01 = {"YXT011836", "yxt_hryl230223", mobile, msg+msgSign, "", ""}; String val = (String) call.invoke(fn01); // String val = "-1";//用于先去掉短信功能,不发短信 return val;