Sunshine
2024-11-04 177f10973fd9bc1f0930369bb086ad9f0053440c
我来贷->青花优品 短信通知,以及h5跳转
12 files modified
179 ■■■■■ changed files
src/main/java/com/nova/sankuai/infra/utils/MessageSendUtil.java 4 ●●● patch | view | raw | blame | history
src/main/java/com/nova/sankuai/infra/utils/qinghuayoupin/QingHuaYouPinUtil.java 48 ●●●●● patch | view | raw | blame | history
src/main/java/com/nova/sankuai/infra/utils/sms/FirstMessage.java 23 ●●●●● patch | view | raw | blame | history
src/main/java/com/nova/sankuai/infra/utils/sms/shandongMessage/ShanDongMessageSendUtil.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/nova/sankuai/infra/utils/wolaidai/WolaidaiUtil.java 47 ●●●●● patch | view | raw | blame | history
src/main/resources/application-dld.yml 6 ●●●● patch | view | raw | blame | history
src/main/resources/application-jfh.yml 6 ●●●● patch | view | raw | blame | history
src/main/resources/application-local-dev.yml 6 ●●●● patch | view | raw | blame | history
src/main/resources/application-test.yml 6 ●●●● patch | view | raw | blame | history
src/main/resources/application-wh.yml 6 ●●●● patch | view | raw | blame | history
src/main/resources/application-zh.yml 6 ●●●● patch | view | raw | blame | history
src/main/resources/logback-spring.xml 19 ●●●●● patch | view | raw | blame | history
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,代表强制执行上级的级别。 -->