src/main/java/com/nova/sankuai/infra/utils/MessageSendUtil.java
@@ -29,7 +29,7 @@ private static final String TOTAL_CREDIT = "${totalCredit}"; private final ISmsTemplateService service; private static final Logger logger = LoggerFactory.getLogger("loginLogger"); private static final Logger logger = LoggerFactory.getLogger("smsLogger"); private final SystemParamMapper systemParamMapper; @@ -43,6 +43,7 @@ throw new CommonException("短信模板不能为空"); } String content = template.getContent(); logger.info("登录验证码日志: 短信模板配置参数{}",template); if (StringUtils.isNotBlank(code)) { content = content.replace(LOGIN_CODE, code); } @@ -74,6 +75,7 @@ public boolean sendMessage(String phone, String content) { boolean success = false; SystemParam defaultParam = systemParamMapper.getDefaultParam(); logger.info("登录验证码日志: 系统配置参数{}",defaultParam); if (defaultParam.getMessageSend() == 0) { success = FirstMessage.sendMessage(phone, content); if (!success) { src/main/java/com/nova/sankuai/infra/utils/qinghuayoupin/QingHuaYouPinUtil.java
@@ -1750,4 +1750,52 @@ } return ResponseEntity.ok(resp); } /** * 4.1 返回查询进件结果 */ public RbResponse queryApprovalToWolaidai(String creditNo) { RbResponse resp = new RbResponse(); JSONObject param = new JSONObject(); param.putOpt("partnerOrderNo", creditNo); String logNumber = IdUtil.randomUUID(); log.info("日志编号:" + logNumber + "【青花优品】查询进件结果接口开始"); StringBuilder desKey = new StringBuilder(); String jsonData = QhypUtil.encrypt(orgCode,productCode,String.valueOf(param),publicKey,privateKeySelf,desKey); log.info("日志编号:" + logNumber + " 【青花优品】查询进件结果接口参数:{}, data加密 {}", param, jsonData); String result = null; try { result = HttpClientUtil.getInstance().postJsonData(basicUrl + "/qhyp/api/process/queryApproval", jsonData); } catch (Exception ex) { log.error("日志编号:" + logNumber + "【青花优品】查询进件结果推送失败,传参:{} ex:{}", jsonData, ex, ""); } try { getQhypResponse(resp, logNumber, jsonData, result, "查询进件申请结果接口",desKey.toString()); JSONObject data = resp.getData(); String approvalStatus = (String) data.get("approvalStatus"); CustomerCapitalResultServiceImpl customerCapitalResultService = SpringUtils.getBean(CustomerCapitalResultServiceImpl.class); List<CustomerCapitalResult> capitalResultList = customerCapitalResultService.lambdaQuery() .eq(CustomerCapitalResult::getCreditNo, creditNo) .eq(CustomerCapitalResult::getCapitalInfoId, 4l) .list(); if (CollUtil.isNotEmpty(capitalResultList)){ CustomerCapitalResult capitalResult = capitalResultList.get(0); if ("AUDIT_PASS".equals(approvalStatus)){ capitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_SUCCESS.getCode()); capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_AUDIT_SUCCESS); }else if ("AUDITING".equals(approvalStatus)){ capitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_WAIT.getCode()); capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_AUDIT_WAIT); }else if ("AUDIT_REJECT".equals(approvalStatus)){ capitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_REFUSE.getCode()); capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_AUDIT_FAIL); } customerCapitalResultService.updateById(capitalResult); } } catch (Exception ex) { log.error("日志编号:" + logNumber + " 【青花优品】查询进件申请结果接口推送原始返回参数转换失败,jsonData:{} ex:{}", jsonData, ex, ""); } return resp; } } src/main/java/com/nova/sankuai/infra/utils/sms/FirstMessage.java
@@ -5,6 +5,8 @@ import cn.hutool.json.JSONUtil; import com.nova.sankuai.infra.constants.Constants; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import java.util.HashMap; @@ -15,6 +17,8 @@ */ @Component public class FirstMessage { private static final Logger log = LoggerFactory.getLogger("smsLogger"); // 定义日志对象 private static final String ACCOUNT = "931110"; private static final String PASSWORD = "Q9RHrD"; private static final String EXTNO = "10690"; @@ -33,6 +37,7 @@ paramMap.put("extno", EXTNO); paramMap.put("rt", RT); String result = HttpUtil.post(URL, paramMap, Constants.TIME_OUT); log.info("原短信商日志: 用户手机:{},请求前参数:{},请求返回结果:{}", phone, paramMap, result); if (StringUtils.isNotBlank(result)) { JSONObject jsonResults = JSONUtil.parseObj(result); return Constants.SUCCESS_CODE.equals(jsonResults.getStr(STATUS)); @@ -57,4 +62,22 @@ return false; } public static boolean sendSmsApprovalNotify(String phone, String content) { HashMap<String, Object> paramMap = new HashMap<>(); paramMap.put("action", "send"); paramMap.put("account", "932450"); paramMap.put("password", "Un1iqu6PK"); paramMap.put("content", content); paramMap.put("mobile", phone); paramMap.put("extno", "10690347"); paramMap.put("rt", RT); String result = HttpUtil.post(URL, paramMap, Constants.TIME_OUT); log.info("青花优品进件获取到手机号短信通知日志: 用户手机:" + phone + "原短信商" + "验证码发送返回成功"); if (StringUtils.isNotBlank(result)) { JSONObject jsonResults = JSONUtil.parseObj(result); return Constants.SUCCESS_CODE.equals(jsonResults.getStr(STATUS)); } return false; } } src/main/java/com/nova/sankuai/infra/utils/sms/shandongMessage/ShanDongMessageSendUtil.java
@@ -29,7 +29,7 @@ @AllArgsConstructor public class ShanDongMessageSendUtil { private static final Logger logger = LoggerFactory.getLogger("loginLogger"); private static final Logger logger = LoggerFactory.getLogger("smsLogger"); private static final String appkey = "tGCOUa"; private static final String appsecret = "e2N9oH"; src/main/java/com/nova/sankuai/infra/utils/wolaidai/WolaidaiUtil.java
@@ -17,6 +17,7 @@ import com.nova.sankuai.domain.dto.rongbei.ProfileDictDto; import com.nova.sankuai.domain.dto.rongbei.RongBeBasicDto; // 融贝基础DTO import com.nova.sankuai.domain.entity.*; import com.nova.sankuai.infra.config.CommonException; import com.nova.sankuai.infra.utils.ConstantsUtil; import com.nova.sankuai.infra.utils.eshidai.EsdUtil; import com.nova.sankuai.infra.utils.hht.HhtUtil; @@ -80,6 +81,9 @@ @Value("${rongbei.h5HalfUrl}") private String h5HalfUrl; // 融呗非半流程h5Url @Value("${front.refreshToUrl}") private String refreshToUrl; // 前端跳转地址 @Value("${rongbei.wolaidai.url}") private String wldUrl; // 我来贷URL @@ -394,7 +398,7 @@ JSON.toJSONString(applyDto); decryptStr = JSON.toJSONString(applyDto); //发送短信通知(等待供应商审批短信模板 申请完后在恢复注释) //smsNotify(profileDictDto.getPhone()); smsNotify(profileDictDto.getPhone()); } String bizDataStr = ""; String fBizDataStr = ""; @@ -412,9 +416,22 @@ Long capitalId = customerApplyOrder.getCapitalId(); String h5Url = ""; // 如果是慧钱,随易花,e时贷,好汇推,则转为乐享融的指定id:28 if (capitalId == 12L || capitalId == 41L || capitalId == 36L || capitalId == 25L || capitalId == 4L) { if (capitalId == 12L || capitalId == 41L || capitalId == 36L || capitalId == 25L) { h5Url = h5HalfUrl + "&capitalId="+ capitalId + "&mobile=" + customerApplyOrder.getPhone(); //h5Url = rbH5Url + "&capitalId=28"; }else if(capitalId == 4L){ // com.nova.sankuai.domain.api.zhongzan.RbResponse rbResponse = qingHuaYouPinUtil.queryApprovalToWolaidai(customerApplyOrder.getChnOrderId()); // if (rbResponse != null) { // if (Objects.equals("200",resp.getCode())){ // if (rbResponse.getData() != null){ // JSONObject smsObject = rbResponse.getData(); // String amount = smsObject.get("amount") == null ? "" : String.valueOf(smsObject.get("amount")); // String expireTime = smsObject.get("expireTime") == null ? "" : String.valueOf(smsObject.get("expireTime")); // smsApprovalNotify(amount,expireTime,customerApplyOrder.getPhone()); // } // } // } h5Url = refreshToUrl + "/pages/ys/qh-sign?partnerOrderNo="+ customerApplyOrder.getChnOrderId() + "&capitalId = 28" ; }else{ //h5Url = rbH5Url + "&capitalId="+ capitalId + "&mobile=" + customerApplyOrder.getPhone(); h5Url = rbH5Url + "&capitalId="+ capitalId; @@ -1299,7 +1316,29 @@ * @param phone */ public void smsNotify(String phone) { String content = "您申请的信用额已通过审核,请1小时内查看【" + smsNotifyUrl + "】 过期作废!拒收请回复R"; ShanDongMessageSendUtil.sendSMSContent(phone, content); String content = "【乐享融】您申请的信用额已通过审核,请1小时内查看【" + smsNotifyUrl + "】 过期作废!拒收请回复R"; boolean success = FirstMessage.sendSmsApprovalNotify(phone, content); log.info("进件时手机号短信通知日志: 用户手机:" + phone + "原短信商" + "验证码发送返回成功"); if (!success) { log.info("进件时手机号短信通知日志: 用户手机:" + phone + "原短信商" + "验证码发送返回失败"); throw new CommonException("验证码发送失败"); } } /** * 提供我来贷进件发送短信 * @param phone */ public void smsApprovalNotify(String one,String two,String phone) { // String content = "您申请的信用额已通过审核,请1小时内查看【" + smsNotifyUrl + "】 过期作废!拒收请回复R"; String content = "【乐享融】你申请的信用额度【"+ one +"】于【"+ two +"】已通过审核:前往 【" + smsNotifyUrl + "】 提取贷款,拒收请回复R"; boolean success = FirstMessage.sendSmsApprovalNotify(phone, content); log.info("青花优品进件通过手机号短信通知日志: 用户手机:" + phone + "原短信商" + "验证码发送返回成功"); if (!success) { log.info("青花优品进件通过手机号短信通知日志: 用户手机:" + phone + "原短信商" + "验证码发送返回失败"); throw new CommonException("验证码发送失败"); } } } src/main/resources/application-dld.yml
@@ -28,6 +28,10 @@ publicPath: /usr/local/sankuai/upload/prod/upload_img/public/ imageHost: https://skfq.itech-zwbbg.cn #前端跳转地址 front: refreshToUrl: https://zhitech18967.itech-zwbbg.cn # 新增渠道起始code channelInfo: codeInit: 30000 @@ -158,7 +162,7 @@ url: https://tbapi.tianmiantech.com/traffic/tff/callback/ partner_id: wolaidai publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZj5d24kw+VdMQq6TjUbGBqMFOxI31qc9YuPT5GajboshWoY3FmJLBuxBr9aFNGc9S3dDLfmlzFkEK9S6NDoZZdy4RSLfPVzGEdHG/Ogf7heo9TXH8YQOoLFqEfC3vWrAMsEwKxVu2O6rr6ozLIQQlaWkBkO3NWfsCtjXacnbQ6QIDAQAB sms_notify_url: https://zhitech18967.itech-zwbbg.cn/pages/download-app/withdrawal-in-wld?appId=48af4aa3-4233-4353-b22d-926d618e11c0&capitalId=28 sms_notify_url: http://ew0rw.ensl.cn/18 #商城 shangcheng: ip: https://www.zhxyp.com/index/Income/ src/main/resources/application-jfh.yml
@@ -28,6 +28,10 @@ publicPath: /usr/local/sankuai/upload/prod/upload_img/public/ imageHost: https://skfq.zrgy-bbg.com #前端跳转地址 front: refreshToUrl: https://rbb98765.zrgy-bbg.com # 新增渠道起始code channelInfo: codeInit: 30000 @@ -158,7 +162,7 @@ url: https://tbapi.tianmiantech.com/traffic/tff/callback/ partner_id: wolaidai publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZj5d24kw+VdMQq6TjUbGBqMFOxI31qc9YuPT5GajboshWoY3FmJLBuxBr9aFNGc9S3dDLfmlzFkEK9S6NDoZZdy4RSLfPVzGEdHG/Ogf7heo9TXH8YQOoLFqEfC3vWrAMsEwKxVu2O6rr6ozLIQQlaWkBkO3NWfsCtjXacnbQ6QIDAQAB sms_notify_url: https://zhitech18967.itech-zwbbg.cn/pages/download-app/withdrawal-in-wld?appId=48af4aa3-4233-4353-b22d-926d618e11c0&capitalId=28 sms_notify_url: http://ew0rw.ensl.cn/18 #商城 shangcheng: ip: https://www.zhxyp.com/index/Income/ src/main/resources/application-local-dev.yml
@@ -51,6 +51,10 @@ publicPath: F://workspace//sankuai//server//upload_img//public// imageHost: https://novasoftware.eicp.vip #前端跳转地址 front: refreshToUrl: https://new-h5.zrgy-bbg.com channelInfo: codeInit: 3000 @@ -345,7 +349,7 @@ url: https://tbapi-fat.tianmiantech.com/traffic/tff/callback/ partner_id: wolaidai publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1lQFYxpinYbqnqozpG34TGbrhCRKgS0ENCDUSez/HxI6UOIwnGumASqs2O/CkMyg6xMEMWkaGEsipGYVQ6OCLcpYw4B07eh6AMhaapVikjH0MGMFY9Mkhou9iIDeWxqAa955CakNDkiV2AC8woSWbeXkFUbDA4SLuAVJRjlZmkQIDAQAB sms_notify_url: https://zhitech18967.itech-zwbbg.cn/pages/download-app/withdrawal-in-wld?appId=48af4aa3-4233-4353-b22d-926d618e11c0&capitalId=28 sms_notify_url: http://ew0rw.ensl.cn/18 #商城 shangcheng: ip: https://www.zhxyp.com/index/Income/ src/main/resources/application-test.yml
@@ -45,6 +45,10 @@ publicPath: /usr/local/sankuai/upload/dev/upload_img/public/ imageHost: http://test.zrgy-bbg.com #前端跳转地址 front: refreshToUrl: https://new-h5.zrgy-bbg.com channelInfo: codeInit: 200 @@ -332,7 +336,7 @@ url: https://tbapi-fat.tianmiantech.com/traffic/tff/callback/ partner_id: wolaidai publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1lQFYxpinYbqnqozpG34TGbrhCRKgS0ENCDUSez/HxI6UOIwnGumASqs2O/CkMyg6xMEMWkaGEsipGYVQ6OCLcpYw4B07eh6AMhaapVikjH0MGMFY9Mkhou9iIDeWxqAa955CakNDkiV2AC8woSWbeXkFUbDA4SLuAVJRjlZmkQIDAQAB sms_notify_url: https://zhitech18967.itech-zwbbg.cn/pages/download-app/withdrawal-in-wld?appId=48af4aa3-4233-4353-b22d-926d618e11c0&capitalId=28 sms_notify_url: http://ew0rw.ensl.cn/18 #商城 shangcheng: ip: https://www.zhxyp.com/index/Income/ src/main/resources/application-wh.yml
@@ -28,6 +28,10 @@ publicPath: /usr/local/sankuai/upload/prod/upload_img/public/ imageHost: https://skfq.itech-qg.com #前端跳转地址 front: refreshToUrl: https://new-h5.zrgy-bbg.com # 新增渠道起始code channelInfo: codeInit: 30000 @@ -156,7 +160,7 @@ url: https://tbapi.tianmiantech.com/traffic/tff/callback/ partner_id: wolaidai publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZj5d24kw+VdMQq6TjUbGBqMFOxI31qc9YuPT5GajboshWoY3FmJLBuxBr9aFNGc9S3dDLfmlzFkEK9S6NDoZZdy4RSLfPVzGEdHG/Ogf7heo9TXH8YQOoLFqEfC3vWrAMsEwKxVu2O6rr6ozLIQQlaWkBkO3NWfsCtjXacnbQ6QIDAQAB sms_notify_url: https://zhitech18967.itech-zwbbg.cn/pages/download-app/withdrawal-in-wld?appId=48af4aa3-4233-4353-b22d-926d618e11c0&capitalId=28 sms_notify_url: http://ew0rw.ensl.cn/18 #商城 shangcheng: ip: https://www.zhxyp.com/index/Income/ src/main/resources/application-zh.yml
@@ -29,6 +29,10 @@ publicPath: /usr/local/sankuai/upload/prod/upload_img/public/ imageHost: https://skfq.bbg-fin.com.cn #前端跳转地址 front: refreshToUrl: https://yd1897621j.bbg-fin.com.cn # 新增渠道起始code channelInfo: codeInit: 30000 @@ -159,7 +163,7 @@ url: https://tbapi.tianmiantech.com/traffic/tff/callback/ partner_id: wolaidai publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZj5d24kw+VdMQq6TjUbGBqMFOxI31qc9YuPT5GajboshWoY3FmJLBuxBr9aFNGc9S3dDLfmlzFkEK9S6NDoZZdy4RSLfPVzGEdHG/Ogf7heo9TXH8YQOoLFqEfC3vWrAMsEwKxVu2O6rr6ozLIQQlaWkBkO3NWfsCtjXacnbQ6QIDAQAB sms_notify_url: https://zhitech18967.itech-zwbbg.cn/pages/download-app/withdrawal-in-wld?appId=48af4aa3-4233-4353-b22d-926d618e11c0&capitalId=28 sms_notify_url: http://ew0rw.ensl.cn/18 #商城 shangcheng: ip: https://www.zhxyp.com/index/Income/ src/main/resources/logback-spring.xml
@@ -304,6 +304,22 @@ </rollingPolicy> </appender> <!-- 短信日志 --> <appender name="smsLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--<encoding>UTF-8</encoding>--> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> <encoder> <pattern>%date %level [%thread] %logger [%file:%line] %msg%n</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logPath}/info/sms/sms-%d.log</fileNamePattern> <maxHistory>${maxHistory}</maxHistory> <cleanHistoryOnStart>true</cleanHistoryOnStart> </rollingPolicy> </appender> <logger name="payLogger" level="INFO" additivity="false"> <appender-ref ref="payInfoLog"/> </logger> @@ -349,6 +365,9 @@ <logger name="uploadFileLogger" level="INFO" additivity="false"> <appender-ref ref="uploadFileLog"/> </logger> <logger name="smsLogger" level="INFO" additivity="false"> <appender-ref ref="smsLog"/> </logger> <!-- 根节点,表名基本的日志级别,里面可以由零个或多个<appender-ref>元素,标识那些appender将会添加到这个loger。--> <!-- level="info"代表基础日志级别为info。用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。 -->