diff --git a/yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/userproject/UserProjectRest.java b/yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/userproject/UserProjectRest.java index cdbcfe5a..d53936df 100644 --- a/yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/userproject/UserProjectRest.java +++ b/yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/userproject/UserProjectRest.java @@ -65,7 +65,7 @@ public class UserProjectRest { } @ApiOperation("根据项目sid查询不同类人") @GetMapping("/getUserProjectBySid/{projectSid}") - public ResultBean getWarehouse(@PathVariable String projectSid){ + public ResultBean getWarehouse(@PathVariable("projectSid") String projectSid){ ResultBean rb = ResultBean.fireFail(); return UserProjectService.getUserProjectBySid(projectSid); } @@ -76,7 +76,7 @@ public class UserProjectRest { * @return */ @GetMapping ("/getUserByType/{userType}") - public ResultBean getUserByType (@PathVariable String userType){ + public ResultBean getUserByType (@PathVariable("userType") String userType){ return ProjectInformationService.getUserByType(userType); } @ApiOperation("删除") diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/csmcashreport/CsmCashReportRest.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/csmcashreport/CsmCashReportRest.java index 7faaad49..6adf678b 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/csmcashreport/CsmCashReportRest.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/csmcashreport/CsmCashReportRest.java @@ -16,6 +16,7 @@ import com.yxt.supervise.report.api.reportsalesdaystore.ReportSalesDayStoreDto; import com.yxt.supervise.report.biz.csmcashreportcashedtoday.CsmCashReportCashedTodayService; import com.yxt.supervise.report.biz.csmcashreportsalesyesterday.CsmCashReportSalesYesterdayService; import com.yxt.supervise.report.biz.wechat.WechatRest; +import com.yxt.supervise.report.biz.wechat.WechatService; import io.swagger.annotations.Api; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.junit.Test; @@ -48,7 +49,7 @@ public class CsmCashReportRest { // @Autowired // CsmCashLogService csmCashLogService; @Autowired - WechatRest wechatRest; + WechatService wechatService; private static final String TEMPLATE_FILE_NAME="C:\\Users\\www19\\Desktop\\每日回款审核报告模版.docx"; @Value("${image.upload.path:static/upload/}") @@ -105,7 +106,7 @@ public class CsmCashReportRest { //推送微信消息 // ThreadUtil.execute(() -> { // try { -// wechatRest.collectionSendMessage(dataDate); +// wechatService.collectionSendMessage(dataDate); // } 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/projectdaily/ProjectDaily.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDaily.java index 8503ecb1..8244e3ed 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDaily.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDaily.java @@ -2,6 +2,7 @@ package com.yxt.supervise.report.biz.projectdaily; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.domain.EntityWithId; @@ -43,6 +44,14 @@ public class ProjectDaily extends EntityWithId { private String userName; // 用户(报告人)姓名', private int userType = 1; // 用户(报告人)类型:1监管、2客户、3银行', private String userStaffSid; // 关联人员的Sid', + @TableField(exist = false) + private double bankPledgeRate;//银行规定质押率 + @TableField(exist = false) + private String state="2";//质押状态 + @TableField(exist = false) + private double creditLimit;//授信额度 + @TableField(exist = false) + private double useLimit;//用信额度 /** * 计算出的质押率 diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyMapper.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyMapper.java index 1ef5b06b..eb501eb1 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyMapper.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyMapper.java @@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + @Mapper public interface ProjectDailyMapper extends BaseMapper { diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyMapper.xml b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyMapper.xml index b0c31733..e5d9c0b5 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyMapper.xml +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyMapper.xml @@ -8,4 +8,11 @@ order by orderDate desc + \ No newline at end of file diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyQuery.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyQuery.java index b90953c9..4ecff82f 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyQuery.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyQuery.java @@ -27,4 +27,5 @@ public class ProjectDailyQuery implements Query { private String dataDateStart; // 数据日期 private String dataDateEnd; // 数据日期 + private String userSid; } diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyRest.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyRest.java index 784925c8..ca5de333 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyRest.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyRest.java @@ -27,6 +27,7 @@ import org.springframework.web.client.RestTemplate; import org.springframework.web.multipart.MultipartFile; import java.util.List; +import java.util.Map; @RestController("com.yxt.supervise.report.biz.projectdaily.ProjectDailyRest") @RequestMapping("/projectdaily") @@ -55,7 +56,14 @@ public class ProjectDailyRest { IPage iPage = projectDailyService.listPage(pq); return rb.success().setData(iPage); } - + @ApiOperation("查询条件项目监管报表信息") + @PostMapping("/selectList") + public ResultBean> selectList(@RequestBody ProjectDailyQuery params) { + ResultBean rb = ResultBean.fireFail(); +// PagerVo projectDailyVoPagerVo = projectDailyService.selectListPage(pq); + Map list = projectDailyService.selectList(params); + return rb.success().setData(list); + } @ApiOperation("添加项目监管报表信息") @PostMapping("/saveDaily") public ResultBean saveDaily(@RequestBody ProjectDailyDto dto) { diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyService.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyService.java index 162d0395..325cbb95 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyService.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyService.java @@ -13,14 +13,18 @@ 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.report.biz.wechat.WechatRest; +import com.yxt.supervise.report.biz.wechat.WechatService; +import com.yxt.supervise.report.ds.crm.CrmMapper; +import com.yxt.supervise.report.ds.crm.ProjectInfo; +import com.yxt.supervise.report.ds.crm.UserProject; +import com.yxt.supervise.system.sysuser.ProjectInformationVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; -import java.util.Date; -import java.util.List; +import java.util.*; @Service public class ProjectDailyService extends ServiceImpl { @@ -36,7 +40,9 @@ public class ProjectDailyService extends ServiceImpl selectListPage(PagerQuery pq) { ProjectDailyQuery params = pq.getParams(); @@ -77,7 +83,40 @@ public class ProjectDailyService extends ServiceImpl page = baseMapper.selectPage(iPage, qw); return page; } - + public Map selectList(ProjectDailyQuery params) { + List userProjects=crmMapper.getProjectByUserSid(params.getUserSid()); + List list=new ArrayList<>(); + Map map=new HashMap<>(); + double creditLimitTotal=0; + double useLimitTotal=0; + for(UserProject userProject:userProjects){ + if(StrUtil.isBlank(params.getOrderDate())){ + params.setOrderDate(DateUtil.format(DateUtil.yesterday(),"yyyy-MM-dd"));; + } + ProjectInfo projectInfo= crmMapper.getProjectBySid(userProject.getProjectSid()); + ProjectDaily projectDaily=baseMapper.selectOne(new QueryWrapper() + .eq("projectSid",userProject.getProjectSid()) + .eq("orderDate",params.getOrderDate())); + if(null!=projectInfo){ + creditLimitTotal=creditLimitTotal+projectInfo.getCreditLimit(); + useLimitTotal=useLimitTotal+projectInfo.getUseLimit(); + } + if(null!=projectDaily){ + if(null!=projectInfo) { +// System.out.println(projectDaily.getBankPledgeRate()/100); + projectDaily.setBankPledgeRate(projectInfo.getBankPledgeRate()); + if (projectInfo.getBankPledgeRate() / 100 > projectDaily.getPledgeRate()) { + projectDaily.setState("1"); + } + list.add(projectDaily); + } + } + } + map.put("creditLimitTotal",creditLimitTotal); + map.put("useLimitTotal",useLimitTotal); + map.put("list",list); + return map; + } public ResultBean save(ProjectDailyDto dto) { ResultBean rb = ResultBean.fireFail(); ProjectDaily projectDaily = new ProjectDaily(); @@ -111,7 +150,21 @@ public class ProjectDailyService extends ServiceImpl wq = new QueryWrapper<>(); wq.eq("projectSid",projectSid) .eq("orderDate",orderDate); - return baseMapper.selectOne(wq); + ProjectDaily projectDaily=baseMapper.selectOne(wq); + ProjectInfo projectInfo= crmMapper.getProjectBySid(projectSid); + if(null!=projectDaily){ + if(null!=projectInfo) { + projectDaily.setCreditLimit(projectInfo.getCreditLimit()); + projectDaily.setUseLimit(projectInfo.getUseLimit()); + projectDaily.setBankPledgeRate(projectInfo.getBankPledgeRate()); + if (projectInfo.getBankPledgeRate() / 100 > projectDaily.getPledgeRate()) { + projectDaily.setState("1"); + } + } + }else { + return new ProjectDaily(); + } + return projectDaily; } public void sendMess(String projectSid, String orderDate) { @@ -122,7 +175,7 @@ public class ProjectDailyService extends ServiceImpl { try { - wechatRest.sendMessage(projectSid,orderDate); + wechatService.sendMessage(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/wechat/WechatRest.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/wechat/WechatRest.java index d7bd2560..aef5827c 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 @@ -68,64 +68,21 @@ import static javax.xml.bind.JAXBIntrospector.getValue; @RestController @RequestMapping("v1/wechat") public class WechatRest { - static final long APP_LOGIN_CODE_TIME_LIMIT = 300L; - private static final String WX_URL_ACCESS_TOKEN = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET"; - private static final String WX_URL_MESSAGE_SEND = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN"; - private static final String WX_URL_MESSAGE_BIZ_SEND ="https://api.weixin.qq.com/cgi-bin/message/subscribe/bizsend?access_token=ACCESS_TOKEN"; - private static final String APP_ID="wx1d44e0fcd110351a"; - private static final String APP_ID_BIZ="wxc64c6cf0a06880e5"; - private static final String APPSECRET="4764e32722a7d98656dea6afd9405701"; - private static final String APPSECRETBIZ="eb3a0794da05f12a94c92134030246f1"; @Autowired WechatService wechatService; - @Autowired - private CsmCashReportMapper csmCashReportMapper; - @Autowired - private ReportInventoryDayGatherMapper reportInventoryDayGatherMapper; - @Autowired - MessagePushLogService messagePushLogService; - @Autowired - StockDayRest stockDayRest; - @Autowired - com.yxt.supervise.report.ds.system.systemMapper systemMapper; - @Autowired - CrmMapper crmMapper; - @Autowired - ProjectDailyService projectDailyService; - @Autowired - RedisUtil redisUtil; - @Autowired - WarehouseMapper warehouseMapper; - @Autowired - RmsMapper rmsMapper; - @Autowired - ImgMessagesLogMapper imgMessagesLogMapper; - @Autowired - RiskMessagesLogMapper riskMessagesLogMapper; + @ApiOperation("token") @GetMapping(value = "token") public String wechate(String signature,String timestamp,String nonce,String echostr){ - String token=""; - if (signature != null && WeixinCheckoutUtil.checkSignature(signature, timestamp, nonce)) { - token=wechatService.push(); - } - - return token; + return wechatService.wechate(signature,timestamp,nonce,echostr); } @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, @RequestParam(name = "nonce", required = false) String nonce, @RequestParam(name = "echostr", required = false) String echostr) { - - if (StringUtils.isAnyBlank(signature, timestamp, nonce, echostr)) { - throw new IllegalArgumentException("请求参数非法,请核实!"); - } - if (WeixinCheckoutUtil.checkSignature( signature, timestamp, nonce)) { - return echostr; - } - return "非法请求"; + return wechatService.authGet(signature,timestamp,nonce,echostr); } /** * 回款审核 @@ -134,76 +91,7 @@ public class WechatRest { */ @PostMapping("/collectionSendMessage/{projectSid}/{orderDate}") public void collectionSendMessage(@PathVariable String projectSid,@PathVariable("orderDate") String orderDate) throws Exception { - CsmCashReportVo csmCashReportVo=csmCashReportMapper.getCsmCashReport(orderDate); - List user= crmMapper.suerList(projectSid); - List openIds=new ArrayList<>(); - for(String u:user){ - SysUser sysUser=systemMapper.getAppletOpenidByUsersid(u); - if(null!=sysUser){ - if(com.yxt.common.base.utils.StringUtils.isNotNull(sysUser.getAppletOpenid())){ - openIds.add(sysUser.getAppletOpenid()); - } - } - } - ProjectDaily projectDaily=projectDailyService.fetchByProjectAndDay(projectSid,orderDate); - // 模板参数 - 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); - 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(csmCashReportVo.getReportDate())); -// sendMag.put("thing2", new Template("36524每日回款审核报告")); -// sendMag.put("thing3", new Template("赵丽晓")); - sendMag.put("time1", csmCashReportVo.getReportDate()); - sendMag.put("thing2", "36524每日回款审核报告"); - sendMag.put("thing3", "赵丽晓"); - Map miniprogram = new HashMap<>(); - //云眼 -// miniprogram.put("appid","wx11565021714ba796"); - //云仓 - miniprogram.put("appid","wx05604ce2a8bede05");//wx65c2b78fd1452eeb - miniprogram.put("pagepath","pages/index/auditReport?dataDate="+csmCashReportVo.getDataDate()+"&"+"companyName="+csmCashReportVo.getCompanyName()); - 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(csmCashReportVo.getDataDate()); - logDto.setPagepath(pa); -// logDto.setMessageOpenids(list); - ThreadUtil.execute(() -> { - try { - messagePushLogService.save(logDto); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - //return forEntity.getBody(); + wechatService.collectionSendMessage(projectSid,orderDate); } /** @@ -213,77 +101,7 @@ public class WechatRest { */ @PostMapping("/inventorySendMessage/{orderDate}") public void inventorySendMessage(@PathVariable("orderDate") String orderDate) throws Exception { - Listuser= crmMapper.suerList("983eefd8-6109-4e8e-bc1b-71e16e644170"); - List openIds=new ArrayList<>(); - for(String u:user){ - openIds.add(systemMapper.getOpenId(u)); - } - ReportInventoryDayGatherVo csmCashReportVo=reportInventoryDayGatherMapper.getReportInventoryDayGather(orderDate); - // 模板参数 - Map sendMag = new HashMap(); - // 公众号的模板id(也有相应的接口可以查询到) - String templateId = "BT6BHEojCmgWNTcpz1raHNIpJEEISP1E134btP51p_8"; - //微信的基础accessToken - String accessToken=getAccessToken(APP_ID_BIZ,APPSECRETBIZ); - System.out.println("accessToken"+accessToken); - String wxUrl = WX_URL_MESSAGE_SEND.replace("ACCESS_TOKEN", accessToken); -// List openIds=new ArrayList<>(); -// openIds.add("oGdho60xVtWEXUks7nYEAn0tGlDE"); -// openIds.add("oGdho66394A-4-NyumcJ1MEaT8Lo"); -// openIds.add("oGdho68CArVhC_-7ELkG-jX21ruk"); -// 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<>(); - for(String openId:openIds){ - MessageOpenidDto dto=new MessageOpenidDto(); - dto.setOpenId(openId); - list.add(dto); - sendMag.put("time1", new Template(csmCashReportVo.getOrderDate())); - sendMag.put("thing2", new Template("36524质物库存汇总")); - sendMag.put("thing3", new Template("赵丽晓")); - Map miniprogram = new HashMap<>(); - //云眼 -// miniprogram.put("appid","wx11565021714ba796"); - //云仓 - miniprogram.put("appid","wx05604ce2a8bede05");//wx65c2b78fd1452eeb - miniprogram.put("pagepath","pages/index/demoReportKc?orderDate="+csmCashReportVo.getOrderDate()); - 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(csmCashReportVo.getReportTime()); -// logDto.setPagepath(pa); -// logDto.setMessageOpenidDtos(list); -// ThreadUtil.execute(() -> { -// try { -// messagePushLogService.save(logDto); -// } catch (Exception e) { -// throw new RuntimeException(e); -// } -// }); - //return forEntity.getBody(); + wechatService.inventorySendMessage(orderDate); } /** @@ -293,24 +111,7 @@ public class WechatRest { */ @PostMapping("/SendMessage/{projectSid}/{orderDate}") public void sendMessage(@PathVariable("projectSid") String projectSid,@PathVariable("orderDate") String orderDate){ - RespMessReturn r=new RespMessReturn(); -// List user= crmMapper.suerList(projectSid); - List user= getUser(projectSid,"1"); - List openIds=new ArrayList<>(); - for(String u:user){ - String sysUser=systemMapper.getOpenId(u); - if(null!=sysUser) { - if (com.yxt.common.base.utils.StringUtils.isNotNull(sysUser)) { - openIds.add(sysUser); - } - } - } - ProjectDaily projectDaily=projectDailyService.fetchByProjectAndDay(projectSid,orderDate); -// ProjectInfo projectInfo =crmMapper.getProjectNameBySid(projectSid); - ProjectInfo projectInfo=crmMapper.selectOne(new QueryWrapper().eq("sid",projectSid)); - // 公众号的模板id(也有相应的接口可以查询到) - r= SuperviseWxMessSender.jgsjzlSend(projectInfo.getRegulatoryLeader(),openIds,projectSid,projectDaily.getProjectName(),projectDaily.getReportTime()); - System.out.println(r); + wechatService.sendMessage(projectSid,orderDate); } /** @@ -320,30 +121,7 @@ public class WechatRest { */ @GetMapping("/shMessage") public void shMessage(@RequestParam("shSid") String shSid,@RequestParam("riskSid") String riskSid){ - //String messSid=riskMessagesLogMapper.getRiskByCode(); - RespMessReturn r=new RespMessReturn(); - String projectSid=crmMapper.ProjectSidByshSid(shSid); - List user= getUser(projectSid,"2"); - List openIds=new ArrayList<>(); - List mobiles=new ArrayList<>(); - for(String u:user){ - SysUser sysUser=systemMapper.getAppletOpenidByUsersid(u); - if(null!=sysUser) { - if (com.yxt.common.base.utils.StringUtils.isNotNull(sysUser.getOpenId())) { - openIds.add(sysUser.getOpenId()); - mobiles.add(sysUser.getMobile()); - } - } - } - String shName=warehouseMapper.getNameBySid(shSid); - SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - RiskAlarm riskAlarm=rmsMapper.getRiskByMessSid(riskSid); - String name =cl(riskAlarm.getContent()); - // 公众号的模板id(也有相应的接口可以查询到) - //sendVerificationCode(name,mobiles,"030404"); - System.out.println("推送中"); - r= SuperviseWxMessSender.jkSend(openIds,projectSid,riskSid,name,shName,riskSid,ft.format(new Date())); - System.out.println(r); + wechatService.shMessage(shSid,riskSid); } /** @@ -353,213 +131,27 @@ public class WechatRest { */ @GetMapping("/secureMessage") public void secureMessage(@RequestParam("shSid") String shSid,@RequestParam("riskSid") String riskSid){ - //String messSid=riskMessagesLogMapper.getRiskByCode(); - RespMessReturn r=new RespMessReturn(); -// List user= crmMapper.users(shSid); - String projectSid=crmMapper.ProjectSidByshSid(shSid); - List user= getUser(projectSid,"3"); - List openIds=new ArrayList<>(); - List mobiles=new ArrayList<>(); - for(String u:user){ - SysUser sysUser=systemMapper.getAppletOpenidByUsersid(u); - if(null!=sysUser) { - if (com.yxt.common.base.utils.StringUtils.isNotNull(sysUser.getOpenId())) { - openIds.add(sysUser.getOpenId()); - mobiles.add(sysUser.getMobile()); - } - } - } - String shName=warehouseMapper.getNameBySid(shSid); - SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - RiskAlarm riskAlarm=rmsMapper.getRiskByMessSid(riskSid); - String name =cl(riskAlarm.getContent()); - // 公众号的模板id(也有相应的接口可以查询到) - //sendVerificationCode(name,mobiles,"030404"); - System.out.println("推送中"); - r= SuperviseWxMessSender.secureSend(openIds,projectSid,riskSid,name,shName,riskSid,ft.format(new Date())); - System.out.println(r); + wechatService.secureMessage(shSid,riskSid); } - @Test - public String cl (String w){ - String a=""; - //String w="[Device(name=东北角的摄像头, serialNumber=L28475439, status=断网), Device(name=111, serialNumber=L28475439, status=断网), Device(name=22, serialNumber=L28475439, status=断网), Device(name=33, serialNumber=L28475439, status=断网),Device(name=东北角的摄像头, serialNumber=L28475439, status=断网),Device(name=东北角的摄像头, serialNumber=L28475439, status=断网),Device(name=东北角的摄像头, serialNumber=L28475439, status=断网),Device(name=东北角的摄像头, serialNumber=L28475439, status=断网)]"; - String st=w.substring(1, (w.length() - 1)); - String [] str2 = st.split("Device"); -// List list=new ArrayList<>(); - for (int i = 0; i < str2.length; i++) { - String item = str2[i]; - if(com.yxt.common.base.utils.StringUtils.isNotEmpty(item)){ -// Device device=new Device(); - String [] str3 = item.split(", "); -// device.setName(str3[0].substring(6)); -// device.setSerialNumber(str3[1].substring(13)); -// device.setStatus(str3[2].substring(7,str3[2].length()-1)); - String name=str3[0].substring(6); - if(StringUtils.isEmpty(a)){ - a=a+name; - }else { - a=a+","+name; - } -// list.add(device); - } - } - if(a.length()>=20){ - a=a.substring(0,19)+"…"; - } - System.out.println(a.length()); - System.out.println(a); - return a; - } + /** + * 图片对比消息推送 + * @param shSid + * @param riskSid + */ @GetMapping("/shImgMessage") public void shImgMessage(@RequestParam("shSid") String shSid,@RequestParam("riskSid") String riskSid){ - //String messSid=imgMessagesLogMapper.getImgRiskByCode(); - RespMessReturn r=new RespMessReturn(); - String projectSid=crmMapper.ProjectSidByshSid(shSid); - List user= getUser(projectSid,"4"); - List openIds=new ArrayList<>(); - List mobiles=new ArrayList<>(); - for(String u:user){ - SysUser sysUser=systemMapper.getAppletOpenidByUsersid(u); - if(null!=sysUser) { - if (com.yxt.common.base.utils.StringUtils.isNotNull(sysUser.getOpenId())) { - openIds.add(sysUser.getOpenId()); - mobiles.add(sysUser.getMobile()); - } - } - } - String name=warehouseMapper.getNameBySid(shSid); - SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - // 公众号的模板id(也有相应的接口可以查询到) - //sendVerificationCode(name,mobiles,"030405"); - r= SuperviseWxMessSender.jkImgSend("赵丽晓",openIds,projectSid,riskSid,name,riskSid,ft.format(new Date())); - System.out.println(r); + wechatService.shImgMessage(shSid,riskSid); } + + /** + * 系统异常消息 + * @param shSid + * @param riskSid + */ @GetMapping("/sysErrMessage") public void sysErrMessage(@RequestParam("shSid")String shSid,@RequestParam("riskSid") String riskSid){ - //String messSid=imgMessagesLogMapper.getImgRiskByCode(); - RespMessReturn r=new RespMessReturn(); -// List user= getUser(shSid); - List openIds=new ArrayList<>(); - List mobiles=new ArrayList<>(); - openIds.add("oGdho60xVtWEXUks7nYEAn0tGlDE"); - mobiles.add("15932270269"); - openIds.add("oGdho66394A-4-NyumcJ1MEaT8Lo"); - mobiles.add("18603312020"); - openIds.add("oGdho615_xBMYYwftEjjBlC6p2uE"); - mobiles.add("13513219196"); - openIds.add("oGdho6yYB47f52HVk2NqirrFbRRk"); - mobiles.add("13513211777"); - openIds.add("oGdho668Hew45t0xfBJC84TNGVzI"); - mobiles.add("13623307393"); - openIds.add("oGdho68CArVhC_-7ELkG-jX21ruk"); - mobiles.add("13131170271"); - openIds.add("oGdho69VxJil_NRxv9StYVpQg58U"); - mobiles.add("13333113292"); - openIds.add("oGdho66Wy-Or1UeqoNHU1YL5yAEM"); - mobiles.add("19933133338"); -// for(UserProject u:user){ -// SysUser sysUser=systemMapper.getAppletOpenidByUsersid(u.getUserSid()); -// if(null!=sysUser) { -// if (com.yxt.common.base.utils.StringUtils.isNotNull(sysUser.getAppletOpenid())) { -// openIds.add(sysUser.getAppletOpenid()); -// mobiles.add(sysUser.getMobile()); -// } -// } -// } - String projectSid=crmMapper.ProjectSidByshSid(shSid); - String name=warehouseMapper.getNameBySid(shSid); - SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - // 公众号的模板id(也有相应的接口可以查询到) - //sendVerificationCode(name,mobiles,"030405"); - r= SuperviseWxMessSender.sysErrSend(openIds,riskSid,name,shSid,riskSid,ft.format(new Date())); - System.out.println(r); - } - public List getUser(String projectSid,String templateSid){ - Listlist=crmMapper.getAllByProjectSid(projectSid); - List users=new ArrayList<>(); - for (UserProject userProject:list){ - int count=crmMapper.countByUserProjectSid(userProject.getSid(),templateSid); - if(count>0){ - users.add(userProject.getUserSid()); - } - } - return users; - } - public ResultBean sendVerificationCode(String shName, List users,String type) { - ResultBean rb = new ResultBean().fireFail(); - Date date = new Date(); - for (String mobile : users) { - String codeRedis = redisUtil.get(""+mobile); - if (com.yxt.common.base.utils.StringUtils.isNotEmpty(codeRedis)) { - //查看请求间隔,默认是一分钟,小于一分钟继续等待,超过一分钟发送短信 - String sendTime = codeRedis.substring(4); - long diffSecond = (date.getTime() - Long.parseLong(sendTime)) / 1000; - if (diffSecond < 60) { - return ResultBean.fireFail().setMsg("请等待一分钟后再次重试!"); - } - } - String content=""; - SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - if(type.equals("030404")){ - content= "仓库异常提醒:" + shName + "仓库监控设备于" + ft.format(new Date()) + "发生异常,请及时处理。"; - }else if(type.equals("030405")){ - content = "仓库异常提醒:" + shName + "仓库货物于" + ft.format(new Date()) + "发生图片比对异常,请及时处理。"; - } -// String res = "1"; - - String res = com.yxt.supervise.report.biz.util.MsgWs.SendWaitWorkMsg(mobile, content); - if (res.equals("1")) { - System.out.println("发送消息"); - redisUtil.set(""+mobile,""+date.getTime(), APP_LOGIN_CODE_TIME_LIMIT); - } - } -// String res = "1"; - return ResultBean.fireSuccess().setMsg("发送短信验证码成功"); - } - public ResultBean wwww(String shName, List users,String type) { - String e="http://IP+Port/utf8/SingleCallByTts.aspx?CorpID=*&Pwd=*&Mobile=*&Content=*&TtsCode=*& ShowNumber="; - ResultBean rb = new ResultBean().fireFail(); - Date date = new Date(); - for (String mobile : users) { - String codeRedis = redisUtil.get(""+mobile); - if (com.yxt.common.base.utils.StringUtils.isNotEmpty(codeRedis)) { - //查看请求间隔,默认是一分钟,小于一分钟继续等待,超过一分钟发送短信 - String sendTime = codeRedis.substring(4); - long diffSecond = (date.getTime() - Long.parseLong(sendTime)) / 1000; - if (diffSecond < 60) { - return ResultBean.fireFail().setMsg("请等待一分钟后再次重试!"); - } - } - String content=""; - SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); - if(type.equals("030404")){ - content= "仓库异常提醒:" + shName + "仓库监控设备于" + ft.format(new Date()) + "发生异常,请及时处理。"; - }else if(type.equals("030405")){ - content = "仓库异常提醒:" + shName + "仓库货物于" + ft.format(new Date()) + "发生图片比对异常,请及时处理。"; - } -// String res = "1"; - - String res = com.yxt.supervise.report.biz.util.MsgWs.SendWaitWorkMsg(mobile, content); - if (res.equals("1")) { - System.out.println("发送消息"); - redisUtil.set(""+mobile,""+date.getTime(), APP_LOGIN_CODE_TIME_LIMIT); - } - } -// String res = "1"; - return ResultBean.fireSuccess().setMsg("发送短信验证码成功"); - } - - - - public String getAccessToken(String appId,String appsecret) throws Exception { - String url = WX_URL_ACCESS_TOKEN.replace("APPID", appId).replace("APPSECRET", appsecret); - RestTemplate restTemplate=new RestTemplate(); - String re= restTemplate.getForObject(url,String.class); - JSONObject jsonObject= JSONObject.parseObject(re); - System.out.println(jsonObject); - String at=jsonObject.getString("access_token"); - return at; + wechatService.sysErrMessage(shSid,riskSid); } /** @@ -569,108 +161,11 @@ public class WechatRest { */ @PostMapping("/sendMessages") public void sendMessages(@PathVariable("projectSid") String projectSid,@PathVariable("orderDate") String orderDate) throws Exception { - ReportStockDay reportStockDay=stockDayRest.getDayGather(projectSid,orderDate).getData(); - List user= crmMapper.suerList(projectSid); - List openIds=new ArrayList<>(); - for(String u:user){ - String id=systemMapper.getOpenIdByStatus(u); - openIds.add(id); - } - CsmCashReportVo csmCashReportVo=csmCashReportMapper.getCsmCashReport(orderDate); - // 模板参数 - Map sendMag = new HashMap(); - // 公众号的模板id(也有相应的接口可以查询到) - String templateId = "jvfjnNpuT_4rfhiV1aWW31qK31-CnICoIAp5Bgco8hw"; - //微信的基础accessToken - String accessToken=getAccessToken(APP_ID_BIZ,APPSECRETBIZ); - String wxUrl = WX_URL_MESSAGE_SEND.replace("ACCESS_TOKEN", accessToken); - JSONObject jsonObject=new JSONObject(); - String pa=""; - 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("page", ""); // 点击模板信息跳转地址 - //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()); - System.out.println(sendBody); - } - System.out.println(sendMag); - // 0 - String messageCode = jsonObject.getString("errcode"); - // 2431260672639467520 - String msgId = jsonObject.getString("msgid"); - System.out.println("messageCode : " + messageCode + ", msgId: " +msgId); - //return forEntity.getBody(); - } - public String getAccessTokenBiz(String appId,String appsecret) throws Exception { - String url = WX_URL_ACCESS_TOKEN.replace("APPID", appId).replace("APPSECRET", appsecret); - RestTemplate restTemplate=new RestTemplate(); - String re= restTemplate.getForObject(url,String.class); - JSONObject jsonObject= JSONObject.parseObject(re); - String at=jsonObject.getString("access_token"); - return at; + wechatService.sendMessages(projectSid,orderDate); } @PostMapping("/subscribe") public ResultBean subscribe() throws AesException, IOException, SAXException, ParserConfigurationException { - ResultBean rb =new ResultBean(); - // - // 第三方回复公众平台 - // - // 需要加密的明文 - String encodingAesKey = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFG"; - String token = "pamtest"; - String timestamp = "1409304348"; - String nonce = "xxxxxx"; - String appId = "wxb11529c136998cb6"; - String replyMsg = " 中文1407743423"; - - WXBizMsgCrypt pc = new WXBizMsgCrypt(token, encodingAesKey, appId); - String mingwen = pc.encryptMsg(replyMsg, timestamp, nonce); - System.out.println("加密后: " + mingwen); - - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - DocumentBuilder db = dbf.newDocumentBuilder(); - StringReader sr = new StringReader(mingwen); - InputSource is = new InputSource(sr); - Document document = db.parse(is); - - Element root = document.getDocumentElement(); - NodeList nodelist1 = root.getElementsByTagName("Encrypt"); - NodeList nodelist2 = root.getElementsByTagName("MsgSignature"); - - String encrypt = nodelist1.item(0).getTextContent(); - String msgSignature = nodelist2.item(0).getTextContent(); - - String format = ""; - String fromXML = String.format(format, encrypt); - - // - // 公众平台发送消息给第三方,第三方处理 - // - - // 第三方收到公众号平台发送的消息 - String result2 = pc.decryptMsg(msgSignature, timestamp, nonce, fromXML); - System.out.println("解密后明文: " + result2); - - //pc.verifyUrl(null, null, null, null); - return rb.success().setData("成功"); + return wechatService.subscribe(); } } diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/wechat/WechatService.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/wechat/WechatService.java index e44263b6..52b942f2 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/wechat/WechatService.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/wechat/WechatService.java @@ -1,10 +1,58 @@ package com.yxt.supervise.report.biz.wechat; +import cn.hutool.core.thread.ThreadUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.yxt.common.base.config.RedisUtil; +import com.yxt.common.core.result.ResultBean; +import com.yxt.supervise.report.aes.AesException; +import com.yxt.supervise.report.aes.WXBizMsgCrypt; +import com.yxt.supervise.report.api.csmcashreport.CsmCashReportVo; +import com.yxt.supervise.report.api.messageopenid.MessageOpenidDto; +import com.yxt.supervise.report.api.messagepushlog.MessagePushLogDto; +import com.yxt.supervise.report.api.reportinventorydaygather.ReportInventoryDayGatherVo; +import com.yxt.supervise.report.api.wechat.Template; +import com.yxt.supervise.report.biz.csmcashreport.CsmCashReportMapper; +import com.yxt.supervise.report.biz.imgmessageslog.ImgMessagesLogMapper; +import com.yxt.supervise.report.biz.messagepushlog.MessagePushLogService; +import com.yxt.supervise.report.biz.projectdaily.ProjectDaily; +import com.yxt.supervise.report.biz.projectdaily.ProjectDailyService; +import com.yxt.supervise.report.biz.reportinventory.ReportInventoryDayGatherMapper; +import com.yxt.supervise.report.biz.riskmessageslog.RiskMessagesLogMapper; +import com.yxt.supervise.report.biz.stock.ReportStockDay; +import com.yxt.supervise.report.biz.stock.StockDayRest; +import com.yxt.supervise.report.biz.util.WeixinCheckoutUtil; +import com.yxt.supervise.report.ds.crm.CrmMapper; +import com.yxt.supervise.report.ds.crm.ProjectInfo; +import com.yxt.supervise.report.ds.crm.UserProject; +import com.yxt.supervise.report.ds.rms.RiskAlarm; +import com.yxt.supervise.report.ds.rms.RmsMapper; +import com.yxt.supervise.report.ds.system.SysUser; +import com.yxt.supervise.report.ds.warehouse.WarehouseMapper; +import com.yxt.supervise.report.wx.SuperviseWxMessSender; +import com.yxt.supervise.report.wx.obj.RespMessReturn; import lombok.extern.slf4j.Slf4j; import net.sf.json.JSONObject; +import org.apache.commons.lang3.StringUtils; 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.bind.annotation.RequestParam; +import org.springframework.web.client.RestTemplate; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import java.io.IOException; +import java.io.StringReader; +import java.text.SimpleDateFormat; +import java.util.*; /** * @author wangpengfei @@ -13,8 +61,570 @@ import org.springframework.stereotype.Service; @Service @Slf4j public class WechatService { + + static final long APP_LOGIN_CODE_TIME_LIMIT = 300L; + private static final String WX_URL_ACCESS_TOKEN = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET"; + private static final String WX_URL_MESSAGE_SEND = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN"; + private static final String WX_URL_MESSAGE_BIZ_SEND ="https://api.weixin.qq.com/cgi-bin/message/subscribe/bizsend?access_token=ACCESS_TOKEN"; + private static final String APP_ID="wx1d44e0fcd110351a"; + private static final String APP_ID_BIZ="wxc64c6cf0a06880e5"; + private static final String APPSECRET="4764e32722a7d98656dea6afd9405701"; + private static final String APPSECRETBIZ="eb3a0794da05f12a94c92134030246f1"; + @Autowired + WechatService wechatService; + @Autowired + private CsmCashReportMapper csmCashReportMapper; + @Autowired + private ReportInventoryDayGatherMapper reportInventoryDayGatherMapper; + @Autowired + MessagePushLogService messagePushLogService; + @Autowired + StockDayRest stockDayRest; + @Autowired + com.yxt.supervise.report.ds.system.systemMapper systemMapper; + @Autowired + CrmMapper crmMapper; + @Autowired + ProjectDailyService projectDailyService; + @Autowired + RedisUtil redisUtil; + @Autowired + WarehouseMapper warehouseMapper; @Autowired - private WechatApiService wechatApiService; + RmsMapper rmsMapper; + @Autowired + ImgMessagesLogMapper imgMessagesLogMapper; + @Autowired + RiskMessagesLogMapper riskMessagesLogMapper; + + public String wechate(String signature,String timestamp,String nonce,String echostr){ + String token=""; + if (signature != null && WeixinCheckoutUtil.checkSignature(signature, timestamp, nonce)) { + token=wechatService.push(); + } + return token; + } + public String authGet(@RequestParam(name = "signature", required = false) String signature, + @RequestParam(name = "timestamp", required = false) String timestamp, + @RequestParam(name = "nonce", required = false) String nonce, + @RequestParam(name = "echostr", required = false) String echostr){ + if (StringUtils.isAnyBlank(signature, timestamp, nonce, echostr)) { + throw new IllegalArgumentException("请求参数非法,请核实!"); + } + if (WeixinCheckoutUtil.checkSignature( signature, timestamp, nonce)) { + return echostr; + } + return "非法请求"; + } + + public void collectionSendMessage(@PathVariable String projectSid, @PathVariable("orderDate") String orderDate) throws Exception { + CsmCashReportVo csmCashReportVo=csmCashReportMapper.getCsmCashReport(orderDate); + List user= crmMapper.suerList(projectSid); + List openIds=new ArrayList<>(); + for(String u:user){ + SysUser sysUser=systemMapper.getAppletOpenidByUsersid(u); + if(null!=sysUser){ + if(com.yxt.common.base.utils.StringUtils.isNotNull(sysUser.getAppletOpenid())){ + openIds.add(sysUser.getAppletOpenid()); + } + } + } + ProjectDaily projectDaily=projectDailyService.fetchByProjectAndDay(projectSid,orderDate); + // 模板参数 + 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); + String pa=""; + com.alibaba.fastjson.JSONObject jsonObject=new com.alibaba.fastjson.JSONObject(); + List list=new ArrayList<>(); + for(String openId:openIds){ + MessageOpenidDto dto=new MessageOpenidDto(); + dto.setOpenId(openId); + list.add(dto); +// sendMag.put("time1", new Template(csmCashReportVo.getReportDate())); +// sendMag.put("thing2", new Template("36524每日回款审核报告")); +// sendMag.put("thing3", new Template("赵丽晓")); + sendMag.put("time1", csmCashReportVo.getReportDate()); + sendMag.put("thing2", "36524每日回款审核报告"); + sendMag.put("thing3", "赵丽晓"); + Map miniprogram = new HashMap<>(); + //云眼 +// miniprogram.put("appid","wx11565021714ba796"); + //云仓 + miniprogram.put("appid","wx05604ce2a8bede05");//wx65c2b78fd1452eeb + miniprogram.put("pagepath","pages/index/auditReport?dataDate="+csmCashReportVo.getDataDate()+"&"+"companyName="+csmCashReportVo.getCompanyName()); + 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 = com.alibaba.fastjson.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(csmCashReportVo.getDataDate()); + logDto.setPagepath(pa); +// logDto.setMessageOpenids(list); + ThreadUtil.execute(() -> { + try { + messagePushLogService.save(logDto); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + //return forEntity.getBody(); + + } + + public void inventorySendMessage(@PathVariable("orderDate") String orderDate) throws Exception { + Listuser= crmMapper.suerList("983eefd8-6109-4e8e-bc1b-71e16e644170"); + List openIds=new ArrayList<>(); + for(String u:user){ + openIds.add(systemMapper.getOpenId(u)); + } + ReportInventoryDayGatherVo csmCashReportVo=reportInventoryDayGatherMapper.getReportInventoryDayGather(orderDate); + // 模板参数 + Map sendMag = new HashMap(); + // 公众号的模板id(也有相应的接口可以查询到) + String templateId = "BT6BHEojCmgWNTcpz1raHNIpJEEISP1E134btP51p_8"; + //微信的基础accessToken + String accessToken=getAccessToken(APP_ID_BIZ,APPSECRETBIZ); + System.out.println("accessToken"+accessToken); + String wxUrl = WX_URL_MESSAGE_SEND.replace("ACCESS_TOKEN", accessToken); +// List openIds=new ArrayList<>(); +// openIds.add("oGdho60xVtWEXUks7nYEAn0tGlDE"); +// openIds.add("oGdho66394A-4-NyumcJ1MEaT8Lo"); +// openIds.add("oGdho68CArVhC_-7ELkG-jX21ruk"); +// openIds.add("oGdho6yYB47f52HVk2NqirrFbRRk"); +// openIds.add("oGdho6-12-ioAKeLhVUDYPucbDb4"); +// openIds.add("oGdho668Hew45t0xfBJC84TNGVzI"); +// openIds.add("oGdho624Cr3j_iZBj-0_HayKLNc4"); +// openIds.add("oGdho6-LvwNY6KylgMlEG0C_JMmQ"); + String pa=""; + com.alibaba.fastjson.JSONObject jsonObject=new com.alibaba.fastjson.JSONObject(); + List list=new ArrayList<>(); + for(String openId:openIds){ + MessageOpenidDto dto=new MessageOpenidDto(); + dto.setOpenId(openId); + list.add(dto); + sendMag.put("time1", new Template(csmCashReportVo.getOrderDate())); + sendMag.put("thing2", new Template("36524质物库存汇总")); + sendMag.put("thing3", new Template("赵丽晓")); + Map miniprogram = new HashMap<>(); + //云眼 +// miniprogram.put("appid","wx11565021714ba796"); + //云仓 + miniprogram.put("appid","wx05604ce2a8bede05");//wx65c2b78fd1452eeb + miniprogram.put("pagepath","pages/index/demoReportKc?orderDate="+csmCashReportVo.getOrderDate()); + 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 = com.alibaba.fastjson.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(csmCashReportVo.getReportTime()); +// logDto.setPagepath(pa); +// logDto.setMessageOpenidDtos(list); +// ThreadUtil.execute(() -> { +// try { +// messagePushLogService.save(logDto); +// } catch (Exception e) { +// throw new RuntimeException(e); +// } +// }); + //return forEntity.getBody(); + + } + public void sendMessage(@PathVariable("projectSid") String projectSid,@PathVariable("orderDate") String orderDate){ + RespMessReturn r=new RespMessReturn(); +// List user= crmMapper.suerList(projectSid); + List user= getUser(projectSid,"1"); + List openIds=new ArrayList<>(); + for(String u:user){ + String sysUser=systemMapper.getOpenId(u); + if(null!=sysUser) { + if (com.yxt.common.base.utils.StringUtils.isNotNull(sysUser)) { + openIds.add(sysUser); + } + } + } + ProjectDaily projectDaily=projectDailyService.fetchByProjectAndDay(projectSid,orderDate); +// ProjectInfo projectInfo =crmMapper.getProjectNameBySid(projectSid); + ProjectInfo projectInfo=crmMapper.selectOne(new QueryWrapper().eq("sid",projectSid)); + // 公众号的模板id(也有相应的接口可以查询到) + r= SuperviseWxMessSender.jgsjzlSend(projectInfo.getRegulatoryLeader(),openIds,projectSid,projectDaily.getProjectName(),projectDaily.getReportTime()); + System.out.println(r); + + } + + public void shMessage(@RequestParam("shSid") String shSid, @RequestParam("riskSid") String riskSid){ + //String messSid=riskMessagesLogMapper.getRiskByCode(); + RespMessReturn r=new RespMessReturn(); + String projectSid=crmMapper.ProjectSidByshSid(shSid); + List user= getUser(projectSid,"2"); + List openIds=new ArrayList<>(); + List mobiles=new ArrayList<>(); + for(String u:user){ + SysUser sysUser=systemMapper.getAppletOpenidByUsersid(u); + if(null!=sysUser) { + if (com.yxt.common.base.utils.StringUtils.isNotNull(sysUser.getOpenId())) { + openIds.add(sysUser.getOpenId()); + mobiles.add(sysUser.getMobile()); + } + } + } + String shName=warehouseMapper.getNameBySid(shSid); + SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + RiskAlarm riskAlarm=rmsMapper.getRiskByMessSid(riskSid); + String name =cl(riskAlarm.getContent()); + // 公众号的模板id(也有相应的接口可以查询到) + //sendVerificationCode(name,mobiles,"030404"); + System.out.println("推送中"); + r= SuperviseWxMessSender.jkSend(openIds,projectSid,riskSid,name,shName,riskSid,ft.format(new Date())); + System.out.println(r); + + } + public void secureMessage(@RequestParam("shSid") String shSid,@RequestParam("riskSid") String riskSid){ + //String messSid=riskMessagesLogMapper.getRiskByCode(); + RespMessReturn r=new RespMessReturn(); +// List user= crmMapper.users(shSid); + String projectSid=crmMapper.ProjectSidByshSid(shSid); + List user= getUser(projectSid,"3"); + List openIds=new ArrayList<>(); + List mobiles=new ArrayList<>(); + for(String u:user){ + SysUser sysUser=systemMapper.getAppletOpenidByUsersid(u); + if(null!=sysUser) { + if (com.yxt.common.base.utils.StringUtils.isNotNull(sysUser.getOpenId())) { + openIds.add(sysUser.getOpenId()); + mobiles.add(sysUser.getMobile()); + } + } + } + String shName=warehouseMapper.getNameBySid(shSid); + SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + RiskAlarm riskAlarm=rmsMapper.getRiskByMessSid(riskSid); + String name =cl(riskAlarm.getContent()); + // 公众号的模板id(也有相应的接口可以查询到) + //sendVerificationCode(name,mobiles,"030404"); + System.out.println("推送中"); + r= SuperviseWxMessSender.secureSend(openIds,projectSid,riskSid,name,shName,riskSid,ft.format(new Date())); + System.out.println(r); + + } + public void shImgMessage(@RequestParam("shSid") String shSid,@RequestParam("riskSid") String riskSid){ + //String messSid=imgMessagesLogMapper.getImgRiskByCode(); + RespMessReturn r=new RespMessReturn(); + String projectSid=crmMapper.ProjectSidByshSid(shSid); + List user= getUser(projectSid,"4"); + List openIds=new ArrayList<>(); + List mobiles=new ArrayList<>(); + for(String u:user){ + SysUser sysUser=systemMapper.getAppletOpenidByUsersid(u); + if(null!=sysUser) { + if (com.yxt.common.base.utils.StringUtils.isNotNull(sysUser.getOpenId())) { + openIds.add(sysUser.getOpenId()); + mobiles.add(sysUser.getMobile()); + } + } + } + String name=warehouseMapper.getNameBySid(shSid); + SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + // 公众号的模板id(也有相应的接口可以查询到) + //sendVerificationCode(name,mobiles,"030405"); + r= SuperviseWxMessSender.jkImgSend("赵丽晓",openIds,projectSid,riskSid,name,riskSid,ft.format(new Date())); + System.out.println(r); + + } + public void sysErrMessage(@RequestParam("shSid")String shSid,@RequestParam("riskSid") String riskSid){ + //String messSid=imgMessagesLogMapper.getImgRiskByCode(); + RespMessReturn r=new RespMessReturn(); +// List user= getUser(shSid); + List openIds=new ArrayList<>(); + List mobiles=new ArrayList<>(); + openIds.add("oGdho60xVtWEXUks7nYEAn0tGlDE"); + mobiles.add("15932270269"); + openIds.add("oGdho66394A-4-NyumcJ1MEaT8Lo"); + mobiles.add("18603312020"); + openIds.add("oGdho615_xBMYYwftEjjBlC6p2uE"); + mobiles.add("13513219196"); + openIds.add("oGdho6yYB47f52HVk2NqirrFbRRk"); + mobiles.add("13513211777"); + openIds.add("oGdho668Hew45t0xfBJC84TNGVzI"); + mobiles.add("13623307393"); + openIds.add("oGdho68CArVhC_-7ELkG-jX21ruk"); + mobiles.add("13131170271"); + openIds.add("oGdho69VxJil_NRxv9StYVpQg58U"); + mobiles.add("13333113292"); + openIds.add("oGdho66Wy-Or1UeqoNHU1YL5yAEM"); + mobiles.add("19933133338"); +// for(UserProject u:user){ +// SysUser sysUser=systemMapper.getAppletOpenidByUsersid(u.getUserSid()); +// if(null!=sysUser) { +// if (com.yxt.common.base.utils.StringUtils.isNotNull(sysUser.getAppletOpenid())) { +// openIds.add(sysUser.getAppletOpenid()); +// mobiles.add(sysUser.getMobile()); +// } +// } +// } + String projectSid=crmMapper.ProjectSidByshSid(shSid); + String name=warehouseMapper.getNameBySid(shSid); + SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + // 公众号的模板id(也有相应的接口可以查询到) + //sendVerificationCode(name,mobiles,"030405"); + r= SuperviseWxMessSender.sysErrSend(openIds,riskSid,name,shSid,riskSid,ft.format(new Date())); + System.out.println(r); + + } + public void sendMessages(@PathVariable("projectSid") String projectSid,@PathVariable("orderDate") String orderDate) throws Exception { + ReportStockDay reportStockDay=stockDayRest.getDayGather(projectSid,orderDate).getData(); + List user= crmMapper.suerList(projectSid); + List openIds=new ArrayList<>(); + for(String u:user){ + String id=systemMapper.getOpenIdByStatus(u); + openIds.add(id); + } + CsmCashReportVo csmCashReportVo=csmCashReportMapper.getCsmCashReport(orderDate); + // 模板参数 + Map sendMag = new HashMap(); + // 公众号的模板id(也有相应的接口可以查询到) + String templateId = "jvfjnNpuT_4rfhiV1aWW31qK31-CnICoIAp5Bgco8hw"; + //微信的基础accessToken + String accessToken=getAccessToken(APP_ID_BIZ,APPSECRETBIZ); + String wxUrl = WX_URL_MESSAGE_SEND.replace("ACCESS_TOKEN", accessToken); + com.alibaba.fastjson.JSONObject jsonObject=new com.alibaba.fastjson.JSONObject(); + String pa=""; + 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("page", ""); // 点击模板信息跳转地址 + //sendBody.put("topcolor", "#FF0000"); // 顶色 + sendBody.put("data", sendMag); // 模板参数 + sendBody.put("template_id", templateId);// 模板Id + ResponseEntity forEntity = restTemplate.postForEntity(wxUrl, sendBody, String.class); + jsonObject = com.alibaba.fastjson.JSONObject.parseObject(forEntity.getBody()); + System.out.println(sendBody); + } + System.out.println(sendMag); + // 0 + String messageCode = jsonObject.getString("errcode"); + // 2431260672639467520 + String msgId = jsonObject.getString("msgid"); + System.out.println("messageCode : " + messageCode + ", msgId: " +msgId); + //return forEntity.getBody(); + + } + public ResultBean sendVerificationCode(String shName, List users, String type) { + ResultBean rb = new ResultBean().fireFail(); + Date date = new Date(); + for (String mobile : users) { + String codeRedis = redisUtil.get(""+mobile); + if (com.yxt.common.base.utils.StringUtils.isNotEmpty(codeRedis)) { + //查看请求间隔,默认是一分钟,小于一分钟继续等待,超过一分钟发送短信 + String sendTime = codeRedis.substring(4); + long diffSecond = (date.getTime() - Long.parseLong(sendTime)) / 1000; + if (diffSecond < 60) { + return ResultBean.fireFail().setMsg("请等待一分钟后再次重试!"); + } + } + String content=""; + SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if(type.equals("030404")){ + content= "仓库异常提醒:" + shName + "仓库监控设备于" + ft.format(new Date()) + "发生异常,请及时处理。"; + }else if(type.equals("030405")){ + content = "仓库异常提醒:" + shName + "仓库货物于" + ft.format(new Date()) + "发生图片比对异常,请及时处理。"; + } +// String res = "1"; + + String res = com.yxt.supervise.report.biz.util.MsgWs.SendWaitWorkMsg(mobile, content); + if (res.equals("1")) { + System.out.println("发送消息"); + redisUtil.set(""+mobile,""+date.getTime(), APP_LOGIN_CODE_TIME_LIMIT); + } + } +// String res = "1"; + return ResultBean.fireSuccess().setMsg("发送短信验证码成功"); + } + public ResultBean wwww(String shName, List users,String type) { + String e="http://IP+Port/utf8/SingleCallByTts.aspx?CorpID=*&Pwd=*&Mobile=*&Content=*&TtsCode=*& ShowNumber="; + ResultBean rb = new ResultBean().fireFail(); + Date date = new Date(); + for (String mobile : users) { + String codeRedis = redisUtil.get(""+mobile); + if (com.yxt.common.base.utils.StringUtils.isNotEmpty(codeRedis)) { + //查看请求间隔,默认是一分钟,小于一分钟继续等待,超过一分钟发送短信 + String sendTime = codeRedis.substring(4); + long diffSecond = (date.getTime() - Long.parseLong(sendTime)) / 1000; + if (diffSecond < 60) { + return ResultBean.fireFail().setMsg("请等待一分钟后再次重试!"); + } + } + String content=""; + SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + if(type.equals("030404")){ + content= "仓库异常提醒:" + shName + "仓库监控设备于" + ft.format(new Date()) + "发生异常,请及时处理。"; + }else if(type.equals("030405")){ + content = "仓库异常提醒:" + shName + "仓库货物于" + ft.format(new Date()) + "发生图片比对异常,请及时处理。"; + } +// String res = "1"; + + String res = com.yxt.supervise.report.biz.util.MsgWs.SendWaitWorkMsg(mobile, content); + if (res.equals("1")) { + System.out.println("发送消息"); + redisUtil.set(""+mobile,""+date.getTime(), APP_LOGIN_CODE_TIME_LIMIT); + } + } +// String res = "1"; + return ResultBean.fireSuccess().setMsg("发送短信验证码成功"); + } + public List getUser(String projectSid,String templateSid){ + Listlist=crmMapper.getAllByProjectSid(projectSid); + List users=new ArrayList<>(); + for (UserProject userProject:list){ + int count=crmMapper.countByUserProjectSid(userProject.getSid(),templateSid); + if(count>0){ + users.add(userProject.getUserSid()); + } + } + return users; + } + public String cl (String w){ + String a=""; + //String w="[Device(name=东北角的摄像头, serialNumber=L28475439, status=断网), Device(name=111, serialNumber=L28475439, status=断网), Device(name=22, serialNumber=L28475439, status=断网), Device(name=33, serialNumber=L28475439, status=断网),Device(name=东北角的摄像头, serialNumber=L28475439, status=断网),Device(name=东北角的摄像头, serialNumber=L28475439, status=断网),Device(name=东北角的摄像头, serialNumber=L28475439, status=断网),Device(name=东北角的摄像头, serialNumber=L28475439, status=断网)]"; + String st=w.substring(1, (w.length() - 1)); + String [] str2 = st.split("Device"); +// List list=new ArrayList<>(); + for (int i = 0; i < str2.length; i++) { + String item = str2[i]; + if(com.yxt.common.base.utils.StringUtils.isNotEmpty(item)){ +// Device device=new Device(); + String [] str3 = item.split(", "); +// device.setName(str3[0].substring(6)); +// device.setSerialNumber(str3[1].substring(13)); +// device.setStatus(str3[2].substring(7,str3[2].length()-1)); + String name=str3[0].substring(6); + if(StringUtils.isEmpty(a)){ + a=a+name; + }else { + a=a+","+name; + } +// list.add(device); + } + } + if(a.length()>=20){ + a=a.substring(0,19)+"…"; + } + System.out.println(a.length()); + System.out.println(a); + + return a; + } + + public String getAccessToken(String appId,String appsecret) throws Exception { + String url = WX_URL_ACCESS_TOKEN.replace("APPID", appId).replace("APPSECRET", appsecret); + RestTemplate restTemplate=new RestTemplate(); + String re= restTemplate.getForObject(url,String.class); + com.alibaba.fastjson.JSONObject jsonObject= com.alibaba.fastjson.JSONObject.parseObject(re); + System.out.println(jsonObject); + String at=jsonObject.getString("access_token"); + return at; + } + public String getAccessTokenBiz(String appId,String appsecret) throws Exception { + String url = WX_URL_ACCESS_TOKEN.replace("APPID", appId).replace("APPSECRET", appsecret); + RestTemplate restTemplate=new RestTemplate(); + String re= restTemplate.getForObject(url,String.class); + com.alibaba.fastjson.JSONObject jsonObject= com.alibaba.fastjson.JSONObject.parseObject(re); + String at=jsonObject.getString("access_token"); + return at; + } + public ResultBean subscribe() throws AesException, ParserConfigurationException, IOException, SAXException { + ResultBean rb=new ResultBean(); + // + // 第三方回复公众平台 + // + // 需要加密的明文 + String encodingAesKey = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFG"; + String token = "pamtest"; + String timestamp = "1409304348"; + String nonce = "xxxxxx"; + String appId = "wxb11529c136998cb6"; + String replyMsg = " 中文1407743423"; + + WXBizMsgCrypt pc = new WXBizMsgCrypt(token, encodingAesKey, appId); + String mingwen = pc.encryptMsg(replyMsg, timestamp, nonce); + System.out.println("加密后: " + mingwen); + + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + DocumentBuilder db = dbf.newDocumentBuilder(); + StringReader sr = new StringReader(mingwen); + InputSource is = new InputSource(sr); + Document document = db.parse(is); + + Element root = document.getDocumentElement(); + NodeList nodelist1 = root.getElementsByTagName("Encrypt"); + NodeList nodelist2 = root.getElementsByTagName("MsgSignature"); + + String encrypt = nodelist1.item(0).getTextContent(); + String msgSignature = nodelist2.item(0).getTextContent(); + + String format = ""; + String fromXML = String.format(format, encrypt); + + // + // 公众平台发送消息给第三方,第三方处理 + // + + // 第三方收到公众号平台发送的消息 + String result2 = pc.decryptMsg(msgSignature, timestamp, nonce, fromXML); + System.out.println("解密后明文: " + result2); + + //pc.verifyUrl(null, null, null, null); + return rb.success().setData("成功"); + } public String push() { boolean flag = true; // SysAppletSet appletSet = memberService.getSysAppletSet(0); diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/CrmMapper.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/CrmMapper.java index 9540f9d4..f4030bed 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/CrmMapper.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/CrmMapper.java @@ -29,10 +29,14 @@ public interface CrmMapper extends BaseMapper { @Select("select * from storehouse_project where projectSid = #{projectSid} ") List listStoreHouseByProjectSid(@Param("projectSid") String projectSid); @Select("select * from project_information where sid = #{sid}") - ProjectInfo getProjectNameBySid(@Param("sid") String sid); + ProjectInfo getProjectBySid(@Param("sid") String sid); @Select("select * from user_project where projectSid = #{sid}") List getAllByProjectSid(@Param("sid") String sid); @Select("select count(*) from project_template where userProjectSid = #{userProjectSid} and templateSid=#{templateSid}") int countByUserProjectSid(@Param("userProjectSid") String userProjectSid,@Param("templateSid") String templateSid); + + + @Select("select * from user_project where userSid=#{userSid}") + List getProjectByUserSid(@Param("userSid") String userSid); } diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/ProjectInfo.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/ProjectInfo.java index deaea714..63d20335 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/ProjectInfo.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/ProjectInfo.java @@ -9,4 +9,8 @@ public class ProjectInfo { private String sid; private String entryName; private String regulatoryLeader; + private double creditLimit=0; + private double useLimit=0; + private double bankPledgeRate=0; + private double bankPledgeRateNew=0; } diff --git a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysorganization/SysOrganizationVo.java b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysorganization/SysOrganizationVo.java index 24862db6..f474aed9 100644 --- a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysorganization/SysOrganizationVo.java +++ b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysorganization/SysOrganizationVo.java @@ -85,6 +85,8 @@ public class SysOrganizationVo implements Vo { @ApiModelProperty("管理层级value") private String orgLevelValue; @ApiModelProperty("其他编码") + //是否是部门级别 1是 2不是 + private String isOrg="2"; private String otherCode; private String mobile; private String isOpenId; diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysorganization/SysOrganizationService.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysorganization/SysOrganizationService.java index 06d20280..3d5aad3a 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysorganization/SysOrganizationService.java +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysorganization/SysOrganizationService.java @@ -284,6 +284,7 @@ public class SysOrganizationService extends MybatisBaseService listChildren = baseMapper.selectChildernList(sid); str.setChildren(listChildren); + str.setIsOrg("1"); getChildList(listChildren); }); }