获取农户数据去掉重复记录,微信支付的传参、返回值、接口、数据库表金额都以元为单位
21个文件已修改
5个文件已添加
280 ■■■■ 已修改文件
pipIrr-platform/pipIrr-global/pom.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVcRechargeMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVcRecharge.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoOrders.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVcRechargeMapper.xml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener_push.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/util/PayHelper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/VirtualCardSv.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/dto/DtoVirtualCard.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/DtoOrder.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/util/PayHelper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardSv.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVirtualCard.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/dto/DtoOrder.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/dto/RefundRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/pom.xml
@@ -165,6 +165,14 @@
            <artifactId>kaptcha</artifactId>
            <version>2.3.2</version>
        </dependency>
        <!--RocketMQ-->
        <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-spring-boot-starter</artifactId>
            <version>2.2.3</version>
        </dependency>
    </dependencies>
    <build>
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java
@@ -72,7 +72,7 @@
     * @param params
     * @return
     */
    Long getRecordCount(Map<?, ?> params);
    List<VoClient> getRecordCount(Map<?, ?> params);
    /**
     * 根据指定条件获取农户数据
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVcRechargeMapper.java
@@ -48,5 +48,5 @@
     * @param orderNumber
     * @return
     */
    Integer getRechargeAmountByOrderNumber(@Param("orderNumber") String orderNumber);
    Double getRechargeAmountByOrderNumber(@Param("orderNumber") String orderNumber);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVcRecharge.java
@@ -82,7 +82,7 @@
    */
    @Schema(description = "充值金额", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotNull(message = "充值金额不能为空")
    private Integer rechargeAmount;
    private Double rechargeAmount;
    /**
    * 下单时间
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoOrders.java
@@ -33,7 +33,7 @@
    @Schema(description = "充值金额", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotNull(message = "充值金额不能为空")
    @Positive(message = "充值金额必须为大于0的整数")
    private Integer rechargeAmount;
    private Double rechargeAmount;
    /**
     * 充值完成时间
pipIrr-platform/pipIrr-global/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
New file
@@ -0,0 +1 @@
org.apache.rocketmq.spring.autoconfigure.RocketMQAutoConfiguration
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -382,3 +382,25 @@
vc:
    #虚拟卡最低余额报警值
    alarmValue: 10
rocketmq:
    consumer:
        group: consumer_group
        # 一次拉取消息最大值,注意是拉取消息的最大值而非消费最大值
        pull-batch-size: 10
    name-server: 127.0.0.1:9876
    producer:
        # 发送同一类消息的设置为同一个group,保证唯一
        group: producer_group
        # 发送消息超时时间,默认3000
        sendMessageTimeout: 10000
        # 发送消息失败重试次数,默认2
        retryTimesWhenSendFailed: 2
        # 异步消息重试次数,默认2
        retryTimesWhenSendAsyncFailed: 2
        # 消息最大长度,默认1024 * 1024 * 4(默认4M)
        maxMessageSize: 4096
        # 压缩消息阈值,默认4k(1024 * 4)
        compressMessageBodyThreshold: 4096
        # 是否在内部发送失败时重试另一个broker,默认false
        retryNextServer: false
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -302,9 +302,33 @@
  </select>
  <!--根据指定条件获取农户记录数-->
  <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
    SELECT
        COUNT(*) AS recordCount
<!--  <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">-->
  <select id="getRecordCount" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
<!--    SELECT-->
<!--        COUNT(*) AS recordCount-->
    SELECT DISTINCT
        cli.countyId,
        dis_con.name AS countryName,
        cli.townId,
        dis_town.name AS townName,
        cli.villageId,
        dis_village.name AS villageName,
        cli.blockId,
        blo.name AS blockName,
        cli.divideId,
        divi.name AS divideName,
        cli.typeId,
        wat.typeName AS waterTypeName,
        cli.id AS clientId,
        cli.name,
        cli.clientNum,
        cli.phone,
        cli.idCard,
        cli.area,
        (SELECT COUNT(*) FROM se_client_card WHERE clientId = cli.id)+(SELECT COUNT(*) FROM se_virtual_card WHERE client_id = cli.id) AS cardCount,
        cli.address,
        cli.remarks,
        cli.operateDt
    FROM se_client cli
        LEFT JOIN ba_district dis_con ON cli.countyId = dis_con.id
        LEFT JOIN ba_district dis_town ON cli.townId = dis_town.id
@@ -351,7 +375,7 @@
  <!--根据指定条件获取农户数据-->
  <select id="getClients" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
    SELECT
    SELECT DISTINCT
        cli.countyId,
        dis_con.name AS countryName,
        cli.townId,
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVcRechargeMapper.xml
@@ -10,7 +10,7 @@
    <result column="money" jdbcType="FLOAT" property="money" />
    <result column="after_recharge" jdbcType="FLOAT" property="afterRecharge" />
    <result column="order_number" jdbcType="VARCHAR" property="orderNumber" />
    <result column="recharge_amount" jdbcType="INTEGER" property="rechargeAmount" />
    <result column="recharge_amount" jdbcType="FLOAT" property="rechargeAmount" />
    <result column="order_time" jdbcType="TIMESTAMP" property="orderTime" />
    <result column="recharge_time" jdbcType="TIMESTAMP" property="rechargeTime" />
    <result column="order_state" jdbcType="TINYINT" property="orderState" />
@@ -40,7 +40,7 @@
      order_state)
    values (#{id,jdbcType=BIGINT}, #{vcId,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, 
      #{money,jdbcType=FLOAT}, #{afterRecharge,jdbcType=FLOAT}, #{orderNumber,jdbcType=VARCHAR}, 
      #{rechargeAmount,jdbcType=INTEGER}, #{orderTime,jdbcType=TIMESTAMP}, #{rechargeTime,jdbcType=TIMESTAMP},
      #{rechargeAmount,jdbcType=FLOAT}, #{orderTime,jdbcType=TIMESTAMP}, #{rechargeTime,jdbcType=TIMESTAMP},
      #{orderState,jdbcType=TINYINT})
  </insert>
  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVcRecharge">
@@ -98,7 +98,7 @@
        #{orderNumber,jdbcType=VARCHAR},
      </if>
      <if test="rechargeAmount != null">
        #{rechargeAmount,jdbcType=INTEGER},
        #{rechargeAmount,jdbcType=FLOAT},
      </if>
      <if test="orderTime != null">
        #{orderTime,jdbcType=TIMESTAMP},
@@ -131,7 +131,7 @@
        order_number = #{orderNumber,jdbcType=VARCHAR},
      </if>
      <if test="rechargeAmount != null">
        recharge_amount = #{rechargeAmount,jdbcType=INTEGER},
        recharge_amount = #{rechargeAmount,jdbcType=FLOAT},
      </if>
      <if test="orderTime != null">
        order_time = #{orderTime,jdbcType=TIMESTAMP},
@@ -153,7 +153,7 @@
      money = #{money,jdbcType=FLOAT},
      after_recharge = #{afterRecharge,jdbcType=FLOAT},
      order_number = #{orderNumber,jdbcType=VARCHAR},
      recharge_amount = #{rechargeAmount,jdbcType=INTEGER},
      recharge_amount = #{rechargeAmount,jdbcType=FLOAT},
      order_time = #{orderTime,jdbcType=TIMESTAMP},
      recharge_time = #{rechargeTime,jdbcType=TIMESTAMP},
      order_state = #{orderState,jdbcType=TINYINT}
@@ -179,14 +179,14 @@
    <where>
      AND order_state = 2
      <if test = "virtualId != null and virtualId > 0">
        AND vc_id = ${virtualId}
        AND vc_id = #{virtualId}
      </if>
    </where>
    ORDER BY order_number
  </select>
<!--根据订单号获取充值金额-->
  <select id="getRechargeAmountByOrderNumber" resultType="java.lang.Integer">
  <select id="getRechargeAmountByOrderNumber" resultType="java.lang.Double">
    SELECT
        recharge_amount AS rechargeAmount
    FROM se_vc_recharge
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
@@ -210,7 +210,8 @@
    SELECT
        id,
        vc_num AS vcNum,
        ROUND(money / 100,2) AS money,
<!--        ROUND(money / 100,2) AS money,-->
        money,
        in_use AS inUse,
        (CASE
            WHEN in_use = 0 THEN '未使用'
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener.java
New file
@@ -0,0 +1,29 @@
package com.dy.pipIrrApp.workOrder;
import org.apache.rocketmq.spring.annotation.ConsumeMode;
import org.apache.rocketmq.spring.annotation.MessageModel;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
/**
 * @author ZhuBaoMin
 * @date 2024-11-04 11:00
 * @LastEditTime 2024-11-04 11:00
 * @Description
 */
@Component
@RocketMQMessageListener(
        topic = "workOrder",
        consumerGroup = "consumer_group",
        selectorExpression = "*",
        messageModel = MessageModel.CLUSTERING,
        consumeMode = ConsumeMode.CONCURRENTLY
)
public class ConsumerListener implements RocketMQListener<String> {
    @Override
    public void onMessage(String message) {
        System.out.println("ConsumerListener receive message: " + message);
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener_push.java
New file
@@ -0,0 +1,37 @@
package com.dy.pipIrrApp.workOrder;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.message.MessageExt;
import org.springframework.stereotype.Component;
/**
 * @author ZhuBaoMin
 * @date 2024-11-04 15:02
 * @LastEditTime 2024-11-04 15:02
 * @Description
 */
@Component
public class ConsumerListener_push{
    public void receiveMessage () throws MQClientException {
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("consumer_group");
        consumer.setNamesrvAddr("127.0.0.1:9876");
        // 设置消息监听器
        consumer.registerMessageListener((MessageListenerConcurrently) (msgs, context) -> {
            for (MessageExt msg : msgs) {
                System.out.println("ConsumerListener_push receive message: " + new String(msg.getBody()));
            }
            return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
        });
        // 订阅主题和标签
        consumer.subscribe("workOrder", "王五");
        // 启动消费者
        consumer.start();
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java
New file
@@ -0,0 +1,60 @@
package com.dy.pipIrrApp.workOrder;
import com.dy.common.aop.SsoAop;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.nio.charset.StandardCharsets;
/**
 * @author ZhuBaoMin
 * @date 2024-11-04 9:30
 * @LastEditTime 2024-11-04 9:30
 * @Description 工单控制类
 */
@Slf4j
@RestController
@RequestMapping(path = "workOrder")
@RequiredArgsConstructor
public class WorkOrderCtrl {
    private final WorkOrderSv workOrderSv;
    @Autowired
    private RocketMQTemplate rocketMQTemplate;
    @GetMapping("/sendWorkOrder")
    @Transactional(rollbackFor = Exception.class)
    @SsoAop()
    public void sendWorkOrder() throws MQClientException, MQBrokerException, RemotingException, InterruptedException {
        ConsumerListener_push ConsumerListener_push = new ConsumerListener_push();
        ConsumerListener_push.receiveMessage();
        String topic = "workOrder";
        String tag = "王五";
        String key = "11";
        String message = "Hello World";
        //SendResult sendResult = rocketMQTemplate.syncSend(topic + ":" + tag, message);
        //System.out.println("send result:" + sendResult.toString());
        DefaultMQProducer producer = new DefaultMQProducer("producer_group");
        producer.setNamesrvAddr("127.0.0.1:9876");
        producer.start();
        Message msg = new Message(topic,tag,"11",message.getBytes(StandardCharsets.UTF_8));
        SendResult approveSendResult = producer.send(msg);
        System.out.println("send result:" + approveSendResult.toString());
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
New file
@@ -0,0 +1,16 @@
package com.dy.pipIrrApp.workOrder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
 * @author ZhuBaoMin
 * @date 2024-11-04 9:29
 * @LastEditTime 2024-11-04 9:29
 * @Description 工单服务类
 */
@Slf4j
@Service
public class WorkOrderSv {
}
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java
@@ -45,8 +45,8 @@
     */
    public QueryResultVo<List<VoClient>> getClients(QueryVo queryVo){
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo) ;
        Long itemTotal = seClientMapper.getRecordCount(params);
        Long itemTotal = (long)seClientMapper.getRecordCount(params).size();
        QueryResultVo<List<VoClient>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = queryVo.pageSize ;
        rsVo.pageCurr = queryVo.pageCurr ;
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/util/PayHelper.java
@@ -517,8 +517,9 @@
        String refundNo = po.getRefundNo();
        Integer refund = po.getRefund();
        // 生成body
        Integer total = virtualCardSv.getRechargeAmountByOrderNumber(tradeNo);
        // 生成body,金额单位由元改为分
        //Integer total = virtualCardSv.getRechargeAmountByOrderNumber(tradeNo);
        Integer total = (int)(virtualCardSv.getRechargeAmountByOrderNumber(tradeNo)*100);
        RefundRequest.Amount amount = new RefundRequest.Amount();
        amount.setRefund(refund);
        amount.setTotal(total);
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/VirtualCardSv.java
@@ -138,7 +138,7 @@
        String orderNumber = po.getOrderNumber();
        Long virtualId = po.getVirtualId();
        Long clientId = po.getClientId();
        Integer rechargeAmount = po.getRechargeAmount();
        Double rechargeAmount = po.getRechargeAmount();
        // 验证该虚拟卡账户是否存在并取出当前账户余额
        SeVirtualCard seVirtualCard = seVirtualCardMapper.selectByPrimaryKey(virtualId);
@@ -189,7 +189,7 @@
        Long virtualId = seVcRecharge.getVcId();
        Double money = seVcRecharge.getMoney();
        Integer rechargeAmount = seVcRecharge.getRechargeAmount();
        Double rechargeAmount = seVcRecharge.getRechargeAmount();
        Double afterRrecharge = money + rechargeAmount;
        seVcRecharge.setAfterRecharge(afterRrecharge);
@@ -312,7 +312,7 @@
     * @param orderNumber
     * @return
     */
    public Integer getRechargeAmountByOrderNumber(String orderNumber) {
    public Double getRechargeAmountByOrderNumber(String orderNumber) {
        return seVcRechargeMapper.getRechargeAmountByOrderNumber(orderNumber);
    }
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/dto/DtoVirtualCard.java
@@ -43,5 +43,5 @@
     */
    @Schema(description = "充值金额", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotNull(message = "充值金额不能为空")
    private Integer rechargeAmount;
    private Double rechargeAmount;
}
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java
@@ -218,7 +218,7 @@
        // 接收参数:登录态ID、虚拟卡ID、充值金额(分)
        Long sessionId = order.getSessionId();
        Long virtualId = order.getVcId();
        Integer rechargeAmount = order.getRechargeAmount();
        //Integer rechargeAmount = order.getRechargeAmount();
        String prepayId = "";
@@ -240,7 +240,7 @@
        virtualCard.setOrderNumber(orderNumber);
        virtualCard.setClientId(clientId);
        virtualCard.setVirtualId(virtualId);
        virtualCard.setRechargeAmount(rechargeAmount);
        virtualCard.setRechargeAmount(order.getRechargeAmount());
        BaseResponse result = virtualCardSv.insertVCRecharge(virtualCard);
        if(!result.getCode().equals("0001")) {
            return BaseResponseUtils.buildFail(SellResultCode.RECHARGE_ADD_FAIL.getMessage());
@@ -255,7 +255,7 @@
        //订单金额
        JSONObject job_amount = new JSONObject();
        job_amount.put("total", rechargeAmount);
        job_amount.put("total", (int)(order.getRechargeAmount()*100));
        job_amount.put("currency", "CNY");
        job_body.put("amount", job_amount);
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/DtoOrder.java
@@ -35,5 +35,5 @@
     */
    @Schema(description = "支付金额", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotNull(message = "虚支付金额不能为空")
    private Integer rechargeAmount;
    private Double rechargeAmount;
}
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/util/PayHelper.java
@@ -21,8 +21,6 @@
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.*;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
@@ -489,7 +487,7 @@
        Integer refund = po.getRefund();
        // 生成body
        Integer total = virtualCardSv.getRechargeAmountByOrderNumber(tradeNo);
        Double total = virtualCardSv.getRechargeAmountByOrderNumber(tradeNo);
        RefundRequest.Amount amount = new RefundRequest.Amount();
        amount.setRefund(refund);
        amount.setTotal(total);
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardSv.java
@@ -163,7 +163,7 @@
        String orderNumber = po.getOrderNumber();
        Long virtualId = po.getVirtualId();
        Long clientId = po.getClientId();
        Integer rechargeAmount = po.getRechargeAmount();
        Double rechargeAmount = po.getRechargeAmount();
        // 验证该虚拟卡账户是否存在并取出当前账户余额
        SeVirtualCard seVirtualCard = seVirtualCardMapper.selectByPrimaryKey(virtualId);
@@ -216,7 +216,7 @@
        Long virtualId = seVcRecharge.getVcId();
        Double money = seVcRecharge.getMoney();
        Integer rechargeAmount = seVcRecharge.getRechargeAmount();
        Double rechargeAmount = seVcRecharge.getRechargeAmount();
        Double afterRrecharge = money + rechargeAmount;
        seVcRecharge.setAfterRecharge(afterRrecharge);
@@ -339,7 +339,7 @@
     * @param orderNumber
     * @return
     */
    public Integer getRechargeAmountByOrderNumber(String orderNumber) {
    public Double getRechargeAmountByOrderNumber(String orderNumber) {
        return seVcRechargeMapper.getRechargeAmountByOrderNumber(orderNumber);
    }
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVirtualCard.java
@@ -37,5 +37,5 @@
     * 充值金额
     */
    @NotNull(message = "充值金额不能为空")
    private Integer rechargeAmount;
    private Double rechargeAmount;
}
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java
@@ -199,10 +199,10 @@
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        // 接收参数:登录态ID、虚拟卡ID、充值金额(分)
        // 接收参数:登录态ID、虚拟卡ID、充值金额(单位元)
        Long sessionId = order.getSessionId();
        Long virtualId = order.getVcId();
        Integer rechargeAmount = order.getRechargeAmount();
        //Integer rechargeAmount = (int)(order.getRechargeAmount()*100);
        String prepayId = "";
@@ -233,7 +233,8 @@
        virtualCard.setVirtualId(virtualId);
        virtualCard.setClientId(clientId);
        virtualCard.setOrderNumber(orderNumber);
        virtualCard.setRechargeAmount(rechargeAmount);
        //virtualCard.setRechargeAmount(rechargeAmount);
        virtualCard.setRechargeAmount(order.getRechargeAmount());
        // -1:虚拟卡不存在,0:添加充值记录失败
        Long rechargeId = virtualCardSv.insertVCRecharge(virtualCard);
@@ -267,7 +268,7 @@
        //订单金额
        JSONObject job_amount = new JSONObject();
        job_amount.put("total", rechargeAmount);
        job_amount.put("total", (int)(order.getRechargeAmount()*100));
        job_amount.put("currency", "CNY");
        job_body.put("amount", job_amount);
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/dto/DtoOrder.java
@@ -31,9 +31,9 @@
    private Long vcId;
    /**
     * 充值金额金额
     * 充值金额金额,单位元
     */
    @Schema(description = "支付金额", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotNull(message = "虚支付金额不能为空")
    private Integer rechargeAmount;
    private Double rechargeAmount;
}
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/dto/RefundRequest.java
@@ -58,7 +58,7 @@
         */
        @Schema(description = "原订单金额", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
        @NotNull(message = "原订单金额不能为空")
        private Integer total;
        private Double total;
        /**
         * 退款币种,固定为“CNY”