2021与蓝度共同重构项目,服务端
liuhaonan
2022-06-27 a648f3e08210a1ed04bf819cccedc56e5afc24c3
支付配置
已修改9个文件
277 ■■■■■ 文件已修改
dao/src/main/java/com/sandu/ximon/dao/domain/C3mOrder.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/mapper/C3mOrderMapper.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/resources/mapper/C3mOrderMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/param/PayParam.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/pay/wx/WxFastPayService.java 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/pay/wxpay/UsrWxPayConfigService.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mOrderService.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/resources/application-local.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/domain/C3mOrder.java
@@ -1,16 +1,12 @@
package com.sandu.ximon.dao.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sandu.ximon.dao.enums.OrderStatus;
import com.sandu.ximon.dao.enums.OrderType;
import lombok.Data;
import org.springframework.core.annotation.OrderUtils;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import lombok.Data;
/**
 * C3订单表
@@ -19,7 +15,6 @@
@TableName(value ="c3_order")
@Data
public class C3mOrder implements Serializable {
    public static String REQUEST_URL = "http://www.ximonsmart.com/charge/#/charge/";
    /**
@@ -114,7 +109,7 @@
    private Long stopChargingTimestamp;
    /**
     * 订单状态:// 未支付(0),已支付(1),已退款(2),退款中(3),退款失败(4),订单完成(5)
     * 订单状态:// 已支付(1),已退款(3),退款中(2),退款失败5),订单完成(4)
     */
    private Integer orderStatus;
@@ -128,7 +123,16 @@
     */
    private String poleName;
    /**
     * 0 充电中   1充电结束
     */
    private Integer changingStates;
    /**
     * 用户标识
     */
    private String userCode;
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
dao/src/main/java/com/sandu/ximon/dao/mapper/C3mOrderMapper.java
@@ -8,8 +8,11 @@
import org.apache.ibatis.annotations.Update;
/**
 * @Entity com.sandu.ximon.dao.domain.C3mOrder
 */
* @author Administrator
* @description 针对表【c3_order(C3订单表)】的数据库操作Mapper
* @createDate 2022-06-27 12:11:23
* @Entity com.sandu.ximon.dao.domain.C3mOrder
*/
@Mapper
public interface C3mOrderMapper extends BaseMapper<C3mOrder> {
dao/src/main/resources/mapper/C3mOrderMapper.xml
@@ -11,9 +11,9 @@
            <result property="poleMac" column="pole_mac" jdbcType="VARCHAR"/>
            <result property="outTradeNo" column="out_trade_no" jdbcType="VARCHAR"/>
            <result property="orderType" column="order_type" jdbcType="VARCHAR"/>
            <result property="totalAmount" column="total_amount" jdbcType="DOUBLE"/>
            <result property="receiptAmount" column="receipt_amount" jdbcType="DOUBLE"/>
            <result property="refundAmount" column="refund_amount" jdbcType="DOUBLE"/>
            <result property="totalAmount" column="total_amount" jdbcType="DECIMAL"/>
            <result property="receiptAmount" column="receipt_amount" jdbcType="DECIMAL"/>
            <result property="refundAmount" column="refund_amount" jdbcType="DECIMAL"/>
            <result property="aliBuyerLogonId" column="ali_buyer_logon_id" jdbcType="VARCHAR"/>
            <result property="subscribeChargingCapacity" column="subscribe_charging_capacity" jdbcType="INTEGER"/>
            <result property="actualChargingCapacity" column="actual_charging_capacity" jdbcType="DOUBLE"/>
@@ -26,6 +26,8 @@
            <result property="orderStatus" column="order_status" jdbcType="INTEGER"/>
            <result property="c3Name" column="c3_name" jdbcType="VARCHAR"/>
            <result property="poleName" column="pole_name" jdbcType="VARCHAR"/>
            <result property="changingStates" column="changing_states" jdbcType="INTEGER"/>
            <result property="userCode" column="user_code" jdbcType="VARCHAR"/>
    </resultMap>
    <sql id="Base_Column_List">
@@ -35,6 +37,7 @@
        ali_buyer_logon_id,subscribe_charging_capacity,actual_charging_capacity,
        create_timestamp,pay_timestamp,refund_timestamp,
        refund_msg,start_charging_timestamp,stop_charging_timestamp,
        order_status,c3_name,pole_name
        order_status,c3_name,pole_name,
        changing_states,user_code
    </sql>
</mapper>
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java
@@ -28,7 +28,6 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.SortedMap;
@@ -68,15 +67,15 @@
     */
    @PostMapping("/advancePay")
    public ResponseVO<Object> advancePayOrder(@RequestBody PayParam param) {
        if (param.getTotalAmount() == 0d) {
            throw new BusinessException("金额不能为0");
        if (param.getTotalAmount() < 0) {
            throw new BusinessException("金额必须大于0");
        }
        //  C3充电桩实体
        C3mCharging c3m = c3mService.getC3mByPoleId(param.getPoleId());
        if (null == c3m) {
            throw new BusinessException("未找到当前充电桩");
        }
        C3mOrder c3mOrderEntity = c3mOrderService.advancePayOrder(param.getPoleId(), c3m, param.getOrderType()
        C3mOrder c3mOrderEntity = c3mOrderService.advancePayOrder(param.getPoleId(), c3m, "wxpay"
                , param.getTotalAmount(), param.getSubscribeChargingCapacity());
        if (null == c3mOrderEntity) {
            throw new BusinessException("该充电桩正被使用!");
@@ -84,10 +83,11 @@
//        return R.ok().put("outTradeNo",c3mOrderEntity.getOutTradeNo())
//                .put("totalAmount",totalAmount);
        Map map = new HashMap();
        map.put("outTradeNo", c3mOrderEntity.getOutTradeNo());
        map.put("totalAmount", param.getTotalAmount());
        return ResponseUtil.success(map);
        param.setOutTradeNo(c3mOrderEntity.getOutTradeNo());
        param.setTotalAmount(c3mOrderEntity.getTotalAmount());
        String s = WxFastPayService.parseWxAmount(param.getTotalAmount().toString());
        SortedMap<Object, Object> result = wxPayService.miniAppPay("扫码充电支付(C3充电桩)", param.getOutTradeNo(),Integer.valueOf(s) , param.getPoleId());
        return ResponseUtil.success(result);
    }
@@ -151,52 +151,14 @@
        return ResponseUtil.success("支付完成");
    }
    @RequestMapping("/wxpay")
    public ResponseVO<Object> c3Wxpay(@RequestBody PayParam param) {
        //String result = wxPayService.miniAppPay(outTradeNo, totalAmount, streetlightId);
        SortedMap<Object, Object> result = wxPayService.appPay("扫码充电支付(C3充电桩)", param.getOutTradeNo(), param.getWxPayTotalAmount(), param.getPoleId());
        return ResponseUtil.success(result);
    }
    public ResponseVO<Object> queryPayStates(@RequestBody PayParam param) {
//    @RequestMapping("/wxpay")
//    public ResponseVO<Object> c3Wxpay(@RequestBody PayParam param) {
//
//        //String result = wxPayService.miniAppPay(outTradeNo, totalAmount, streetlightId);
////支付宝交易号
//        String trade_no = WIDtrade_no.Text.Trim();
////支付宝交易号与商户网站订单号不能同时为空
////商户订单号
//        String out_trade_no = WIDout_trade_no.Text.Trim();
////把请求参数打包成数组
//        SortedMap<Object, Object> result = wxPayService.appPay("扫码充电支付(C3充电桩)", param.getOutTradeNo(), param.getWxPayTotalAmount(), param.getPoleId(),c3mOrderEntity);
//
//        SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>();
//        sParaTemp.Add("partner", Config.Partner);
//        sParaTemp.Add("_input_charset", Config.Input_charset.ToLower());
//        sParaTemp.Add("service", "single_trade_query");
//        sParaTemp.Add("trade_no", trade_no);
//        sParaTemp.Add("out_trade_no", out_trade_no);
////建立请求
//        string sHtmlText = Submit.BuildRequest(sParaTemp);
//
////请在这里加上商户的业务逻辑程序代码
//
////——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
//
//        XmlDocument xmlDoc = new XmlDocument();
//        try
//        {
//            xmlDoc.LoadXml(sHtmlText);
//            string strXmlResponse = xmlDoc.SelectSingleNode("/alipay").InnerText;
//            Response.Write(strXmlResponse);
//        }
//        catch (Exception exp)
//        {
//            Response.Write(sHtmlText);
//        }
        return ResponseUtil.success(null);
    }
//        return ResponseUtil.success(result);
//    }
    @RequestMapping("/queryOrder")
ximon-admin/src/main/java/com/sandu/ximon/admin/param/PayParam.java
@@ -18,8 +18,14 @@
    private Double totalAmount;
    /**
     * 微信支付金额
     */
    private Integer WxPayTotalAmount;
    /**
     * 预计充电量
     */
    private Integer subscribeChargingCapacity;
    private String outTradeNo;
ximon-admin/src/main/java/com/sandu/ximon/admin/pay/wx/WxFastPayService.java
@@ -12,7 +12,6 @@
import com.github.binarywang.wxpay.bean.result.WxPayUnifiedOrderResult;
import com.github.binarywang.wxpay.constant.WxPayConstants;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.WxPayService;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.util.IpUtil;
import com.sandu.ximon.admin.dto.wxquerydto.WxOrderDto;
@@ -21,6 +20,7 @@
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
@@ -36,15 +36,12 @@
public class WxFastPayService {
    private final com.github.binarywang.wxpay.service.WxPayService wxPayService;
    //private final WxPayProperties wxPayProperties;
//    public static final String WECHAT_ORDER_PAY_CALLBACK_URL = "http://49.235.239.118:20012/callback/pay/wechatCallback";
    public static final String WECHAT_ORDER_PAY_CALLBACK_URL = "http://49.235.239.118:20012/callback/pay/wechatCallback";
    //微信订单状态查询
    public static final String WECHAT_ORDER_QUETY_URL = "https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/";
    public static final String WECHAT_ORDER_QUETY = "?mchid=";
    private final UsrWxPayConfigService wxPayConfigService;
    /**
@@ -57,28 +54,24 @@
     */
    public SortedMap<Object, Object> appPay(String body, String orderSn, int totalFee, Long poleId) {
        WxConfigEntity wxConfig = wxPayConfigService.getConfigByPoleId(poleId);
        wxConfig.setMchId(wxConfig.getMchId().trim());
        WxPayUnifiedOrderRequest wxPayUnifiedOrderRequest = new WxPayUnifiedOrderRequest();
        wxPayUnifiedOrderRequest.setBody(body);
        wxPayUnifiedOrderRequest.setOutTradeNo(orderSn);
        wxPayUnifiedOrderRequest.setTotalFee(totalFee);
        wxPayUnifiedOrderRequest.setOpenid("otiM54x_hc_5gbhMY5aZxo7UByNo");
        //wxPayUnifiedOrderRequest.setSignType(WxPayConstants.SignType.MD5);
        wxPayUnifiedOrderRequest.setSignType(WxPayConstants.SignType.MD5);
        wxPayUnifiedOrderRequest.setSpbillCreateIp(IpUtil.getRealIp());
        wxPayUnifiedOrderRequest.setNotifyUrl(WECHAT_ORDER_PAY_CALLBACK_URL);
        wxPayUnifiedOrderRequest.setTradeType(WxPayConstants.TradeType.APP);
        wxPayUnifiedOrderRequest.setTradeType(WxPayConstants.TradeType.JSAPI);
        try {
            WxPayUnifiedOrderResult wxPayUnifiedOrderResult = wxPayService.unifiedOrder(wxPayUnifiedOrderRequest);
            System.out.println("********************************");
            String time = String.valueOf(System.currentTimeMillis() / 1000);
            if (WxPayConstants.ResultCode.SUCCESS.equals(wxPayUnifiedOrderResult.getResultCode())) {
                SortedMap<Object, Object> parameters = new TreeMap<>();
                /*hashMap.put("appId", wxPayUnifiedOrderResult.getAppid());
                hashMap.put("nonceStr", wxPayUnifiedOrderResult.getNonceStr());
                hashMap.put("prepayId", wxPayUnifiedOrderResult.getPrepayId());
                //  hashMap.put("package", "prepay_id=" + wxPayUnifiedOrderResult.getPrepayId());
                hashMap.put("signType", WxPayConstants.SignType.MD5);
                hashMap.put("timeStamp", time);
                hashMap.put("partnerid", wxPayProperties.getMchId());*/
                parameters.put("appid", wxPayUnifiedOrderResult.getAppid());
                parameters.put("noncestr", wxPayUnifiedOrderResult.getNonceStr()); // 随机字符串
@@ -89,7 +82,7 @@
                parameters.put("package", "Sign=WXPay");
                parameters.put("timestamp", time);
                String sign = createSign(parameters, wxConfig.getPrivateKey());
                String sign = createSign(wxConfig.getPrivateKey(), parameters);
                //hashMap.put("paySign", wechatSign);
                parameters.put("Sign", sign);
@@ -123,22 +116,23 @@
    /**
     * 微信订单状态查询
     *
     * @param poleId
     * @param outTradeNo
     * @return
     */
    public boolean WxOrderQuery(Long poleId,String outTradeNo){
    public boolean WxOrderQuery(Long poleId, String outTradeNo) {
        WxConfigEntity wxConfig = wxPayConfigService.getConfigByPoleId(poleId);
        if(wxConfig==null){
        if (wxConfig == null) {
            throw new BusinessException("获取微信支付配置失败");
        }
        String s = HttpUtil.get(WECHAT_ORDER_QUETY_URL + outTradeNo + WECHAT_ORDER_QUETY + wxConfig.getMchId());//WxOrderDto
        WxOrderDto wxOrderDto = JSON.parseObject(s, WxOrderDto.class);
        if(("SUCCESS").equals(wxOrderDto.getTrade_state())){
        if (("SUCCESS").equals(wxOrderDto.getTrade_state())) {
            return true;
        }
        return  false;
        return false;
    }
    /**
@@ -146,7 +140,7 @@
     * @return
     */
    @SuppressWarnings("rawtypes")
    private String createSign(SortedMap<Object, Object> parameters, String Key) {
    private String createSign(String Key, SortedMap<Object, Object> parameters) {
        StringBuffer sb = new StringBuffer();
        Set es = parameters.entrySet();// 所有参与传参的参数按照accsii排序(升序)
        Iterator it = es.iterator();
@@ -173,7 +167,7 @@
        }
    }
    public WxPayRefundNotifyResult parseRefundNotifyResult( String xmlData) {
    public WxPayRefundNotifyResult parseRefundNotifyResult(String xmlData) {
        try {
            return wxPayService.parseRefundNotifyResult(xmlData);
        } catch (WxPayException e) {
@@ -185,13 +179,12 @@
    /**
     * 订单退款 只能退款一次
     *
     * @param wxPayService
     * @param orderId
     * @param refundFee
     * @param callbackUrl
     * @return
     */
    public boolean refundOrder( String orderId, String refundSn, Integer refundFee, String callbackUrl) {
    public boolean refundOrder(String orderId, String refundSn, Integer refundFee, String callbackUrl) {
        WxPayRefundRequest refundRequest = new WxPayRefundRequest();
        refundRequest.setOutTradeNo(orderId);
        refundRequest.setOutRefundNo(refundSn);
@@ -216,7 +209,7 @@
    /**
     * 生成二维码付款
     */
    public String generateQRCodePay( String body,
    public String generateQRCodePay(String body,
                                    String orderId, int totalFee, String callbackUrl) {
        WxPayUnifiedOrderRequest wxPayUnifiedOrderRequest = new WxPayUnifiedOrderRequest();
        wxPayUnifiedOrderRequest.setBody(body);
@@ -292,4 +285,52 @@
        return amount;
    }
    @Transactional(rollbackFor = Exception.class)
    public SortedMap<Object, Object> miniAppPay(String body,
                                                String orderId, int totalFee, Long poleId) {
        WxConfigEntity wxConfig = wxPayConfigService.getConfigByPoleId(poleId);
        wxConfig.setMchId(wxConfig.getMchId().trim());
        WxPayUnifiedOrderRequest wxPayUnifiedOrderRequest = new WxPayUnifiedOrderRequest();
        wxPayUnifiedOrderRequest.setBody(body);
        wxPayUnifiedOrderRequest.setOutTradeNo(orderId);
        wxPayUnifiedOrderRequest.setTotalFee(totalFee);
        wxPayUnifiedOrderRequest.setOpenid("otiM54x_hc_5gbhMY5aZxo7UByNo");
        wxPayUnifiedOrderRequest.setSignType(WxPayConstants.SignType.MD5);
        wxPayUnifiedOrderRequest.setSpbillCreateIp(IpUtil.getRealIp());
        wxPayUnifiedOrderRequest.setNotifyUrl(WECHAT_ORDER_PAY_CALLBACK_URL);
        wxPayUnifiedOrderRequest.setTradeType(WxPayConstants.TradeType.JSAPI);
        System.out.println("-----------"+wxPayUnifiedOrderRequest);
        try {
            WxPayUnifiedOrderResult wxPayUnifiedOrderResult = wxPayService.unifiedOrder(wxPayUnifiedOrderRequest);
            String time = String.valueOf(System.currentTimeMillis() / 1000);
            if (WxPayConstants.ResultCode.SUCCESS.equals(wxPayUnifiedOrderResult.getResultCode())) {
                SortedMap<Object, Object> parameters = new TreeMap<>();
                parameters.put("appid", wxPayUnifiedOrderResult.getAppid());
                parameters.put("noncestr", wxPayUnifiedOrderResult.getNonceStr()); // 随机字符串
                parameters.put("partnerid", wxConfig.getMchId()); // 商户id
                //  parameters.put("out_trade_no", orderId);//商户订单号
                parameters.put("prepayid", wxPayUnifiedOrderResult.getPrepayId());
                parameters.put("package", "Sign=WXPay");
                parameters.put("timestamp", time);
                String sign = createSign(wxConfig.getPrivateKey(), parameters);
                //hashMap.put("paySign", wechatSign);
                parameters.put("Sign", sign);
                return parameters;
            } else {
                log.error("微信支付失败,{}", wxPayUnifiedOrderResult.getErrCodeDes());
                throw new BusinessException("微信支付失败," + wxPayUnifiedOrderResult);
            }
        } catch (WxPayException e) {
            log.error("微信支付失败,{}", e.getErrCodeDes());
            throw new BusinessException("微信支付失败," + e.getErrCodeDes());
        }
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/pay/wxpay/UsrWxPayConfigService.java
@@ -41,10 +41,10 @@
        }
        WxConfigEntity config;
        //未设置支付参数,则使用默认支付参数
        if (pole.getClientId() == null) {
            config = getById(0);
        }
        config = getOne(Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getClientId, pole.getClientId()).eq(WxConfigEntity::getState, 1));
        if (pole.getClientId() == null) {
            config = getById(15);  // todo 暂时写死,后续需要改成配置文件
        }
        if (config == null) {
            throw new BusinessException("用户未配置支付配置,请配置后重试");
        }
@@ -69,6 +69,9 @@
            } else {
                config.setClientId(SecurityUtils.getUserId());
            }
        } else {
            config.setClientId(SecurityUtils.getUserId());
            config.setCreateUserId(SecurityUtils.getUserId());
        }
        return save(config);
    }
@@ -99,15 +102,19 @@
        LambdaQueryWrapper<WxConfigEntity> wrapper = new LambdaQueryWrapper<>();
        System.out.println("----------------------------" + clientService.findClientId());
        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
        if (SecurityUtils.getClientId() != null) {//客户
            if (clientService.findClientId()) {//二级客户
        if (SecurityUtils.getClientId() != null) {
            //客户
            if (clientService.findClientId()) {
                //二级客户
                PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
                wrapper = Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getCreateUserId, SecurityUtils.getUserId());
            } else if (!clientService.findClientId()) {//一级客户
            } else if (!clientService.findClientId()) {
                //一级客户
                PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
                wrapper = Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getClientId, SecurityUtils.getUserId());
            }
        } else {//管理
        } else {
            //管理
            PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
            wrapper = Wrappers.lambdaQuery(WxConfigEntity.class);
        }
@@ -155,28 +162,38 @@
        /**
         * 获取当前用户所有的wx支付配置
         */
        List<WxConfigEntity> configList;
        if (SecurityUtils.getClientId() != null) {
            //客户
            List<WxConfigEntity> configList = list(Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getClientId, SecurityUtils.getUserId())
            configList = list(Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getClientId, SecurityUtils.getUserId())
                    .or(
                            user -> {
                                user.eq(WxConfigEntity::getCreateUserId, SecurityUtils.getUserId());
                            }
                    ));
            if (configList.size() == 1 && state == 0) {
                throw new BusinessException("当前用户只有一个支付配置,不能停用");
            }
            //设置当前用户所有的支付配置为停用
            configList.forEach(
                    wxConfigEntity -> {
                        wxConfigEntity.setState(0);
                    }
            );
            boolean b = updateBatchById(configList);
            if (!b) {
                throw new BusinessException("更新失败");
            }
        } else {
            //管理
            configList = list(Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getClientId, byId.getCreateUserId())
                    .or(
                            user -> {
                                user.eq(WxConfigEntity::getCreateUserId, SecurityUtils.getUserId());
                            }
                    ));
        }
        if (configList.size() == 1 && state == 0) {
            throw new BusinessException("当前用户只有一个支付配置,不能停用");
        }
        //设置当前用户所有的支付配置为停用
        configList.forEach(
                wxConfigEntity -> {
                    wxConfigEntity.setState(0);
                }
        );
        boolean b = updateBatchById(configList);
        if (!b) {
            throw new BusinessException("更新失败");
        }
        WxConfigEntity config = new WxConfigEntity();
        config.setConfigId(id);
        config.setState(state);
ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mOrderService.java
@@ -138,9 +138,9 @@
        );
        //  推送到自动查询模块,进行扫描启动
        orderQueryListener.startScan(OrderScanType.C3M.getType());
        if(b){
            save(c3mOrderEntity);
        }
//        if(b){
//            save(c3mOrderEntity);
//        }
        return b ? c3mOrderEntity : null;
    }
@@ -151,6 +151,7 @@
        WxPayOrderNotifyResult wxPayOrderNotifyResult = fastPayService.parseOrderNotifyResult(xmlData);
        String orderSn = wxPayOrderNotifyResult.getOutTradeNo();
        String transactionId = wxPayOrderNotifyResult.getOutTradeNo();
        Integer totalFee = wxPayOrderNotifyResult.getTotalFee();
        C3mOrder userOrder = getByOrderSn(orderSn);
        if (userOrder == null) {
            return WxPayNotifyResponse.fail("订单不存在 sn=" + orderSn);
@@ -166,14 +167,6 @@
        if (!updateById(userOrder)) {
            return WxPayNotifyResponse.fail("更新数据已失效");
        }
//        UserPayRecord userPayRecord = new UserPayRecord();
//        userPayRecord.setOrderId(userOrder.getId());
//        userPayRecord.setPayAmount(userOrder.getTotalPrice());
//        userPayRecord.setPayType(PayTypeEnums.WECHAT.getCode());
//        userPayRecord.setPayDate(userOrder.getPayTime());
//        userPayRecord.setUserId(userOrder.getUserId());
//        userPayRecordService.save(userPayRecord);
        return WxPayNotifyResponse.success("更新数据成功");
    }
ximon-admin/src/main/resources/application-local.yml
@@ -39,7 +39,7 @@
    enable: true
listenter:
  isOpen: true
  isOpen: false
minio:
  endpoint: 47.106.172.9