From e6a9e6f750115579c8cc90d7e6d5bf1eebe79b90 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期二, 05 十一月 2024 15:26:24 +0800
Subject: [PATCH] 获取农户数据去掉重复记录,微信支付的传参、返回值、接口、数据库表金额都以元为单位

---
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java                               |   16 +++
 pipIrr-platform/pipIrr-global/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports |    1 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVcRechargeMapper.java                                     |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java                                   |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVcRechargeMapper.xml                                                    |   14 +-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoOrders.java                                                |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener_push.java                     |   37 +++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java                             |   60 ++++++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java                                         |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/DtoOrder.java                            |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/dto/DtoVirtualCard.java                    |    2 
 pipIrr-platform/pipIrr-global/pom.xml                                                                                             |    8 +
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/VirtualCardSv.java                         |    6 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml                                                        |   32 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/dto/RefundRequest.java                   |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml                                                   |    3 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/util/PayHelper.java                                |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/util/PayHelper.java                                    |    5 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java                         |    9 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVcRecharge.java                                          |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java                             |    6 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVirtualCard.java                |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml                                                           |   24 ++++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardSv.java                     |    6 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/dto/DtoOrder.java                        |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener.java                          |   29 +++++
 26 files changed, 240 insertions(+), 42 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/pom.xml b/pipIrr-platform/pipIrr-global/pom.xml
index d18263c..d197ee8 100644
--- a/pipIrr-platform/pipIrr-global/pom.xml
+++ b/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>
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java
index a40d8d6..67e5da8 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java
+++ b/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);
 
     /**
      * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏁版嵁
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVcRechargeMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVcRechargeMapper.java
index 4c96274..3f55816 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVcRechargeMapper.java
+++ b/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);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVcRecharge.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVcRecharge.java
index f692126..7e0aff7 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVcRecharge.java
+++ b/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;
 
     /**
     * 涓嬪崟鏃堕棿
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoOrders.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoOrders.java
index 9a3ea4e..482775e 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoOrders.java
+++ b/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;
 
     /**
      * 鍏呭�煎畬鎴愭椂闂�
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/pipIrr-platform/pipIrr-global/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..c61a5eb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+org.apache.rocketmq.spring.autoconfigure.RocketMQAutoConfiguration
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
index 7564bf5..891eeb3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -381,4 +381,26 @@
 #铏氭嫙鍗¢厤缃弬鏁�
 vc:
     #铏氭嫙鍗℃渶浣庝綑棰濇姤璀﹀��
-    alarmValue: 10
\ No newline at end of file
+    alarmValue: 10
+
+rocketmq:
+    consumer:
+        group: consumer_group
+        # 涓�娆℃媺鍙栨秷鎭渶澶у�硷紝娉ㄦ剰鏄媺鍙栨秷鎭殑鏈�澶у�艰�岄潪娑堣垂鏈�澶у��
+        pull-batch-size: 10
+    name-server: 127.0.0.1:9876
+    producer:
+        # 鍙戦�佸悓涓�绫绘秷鎭殑璁剧疆涓哄悓涓�涓猤roup锛屼繚璇佸敮涓�
+        group: producer_group
+        # 鍙戦�佹秷鎭秴鏃舵椂闂达紝榛樿3000
+        sendMessageTimeout: 10000
+        # 鍙戦�佹秷鎭け璐ラ噸璇曟鏁帮紝榛樿2
+        retryTimesWhenSendFailed: 2
+        # 寮傛娑堟伅閲嶈瘯娆℃暟锛岄粯璁�2
+        retryTimesWhenSendAsyncFailed: 2
+        # 娑堟伅鏈�澶ч暱搴︼紝榛樿1024 * 1024 * 4(榛樿4M)
+        maxMessageSize: 4096
+        # 鍘嬬缉娑堟伅闃堝�硷紝榛樿4k(1024 * 4)
+        compressMessageBodyThreshold: 4096
+        # 鏄惁鍦ㄥ唴閮ㄥ彂閫佸け璐ユ椂閲嶈瘯鍙︿竴涓猙roker锛岄粯璁alse
+        retryNextServer: false
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
index 0172422..91c9588 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
+++ b/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,
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVcRechargeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVcRechargeMapper.xml
index de16e7a..c7f9188 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVcRechargeMapper.xml
+++ b/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
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
index 6fc5c10..d38ce76 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
+++ b/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 '鏈娇鐢�'
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener.java
new file mode 100644
index 0000000..72d46c1
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener.java
@@ -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);
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener_push.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener_push.java
new file mode 100644
index 0000000..db86cf3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/ConsumerListener_push.java
@@ -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();
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java
new file mode 100644
index 0000000..a20b809
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java
@@ -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());
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
new file mode 100644
index 0000000..c635d5e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
@@ -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 {
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java
index 0ae07c7..057c467 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java
+++ b/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 ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/util/PayHelper.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/util/PayHelper.java
index c001dc1..d4180ef 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/util/PayHelper.java
+++ b/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);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/VirtualCardSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/VirtualCardSv.java
index 889b36a..0d259f0 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/VirtualCardSv.java
+++ b/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);
 
     }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/dto/DtoVirtualCard.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/dto/DtoVirtualCard.java
index 381dd41..f9a7c9b 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/dto/DtoVirtualCard.java
+++ b/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;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java
index 49b6ef7..af8e887 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java
@@ -218,7 +218,7 @@
         // 鎺ユ敹鍙傛暟锛氱櫥褰曟�両D銆佽櫄鎷熷崱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);
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/DtoOrder.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/DtoOrder.java
index f4ef320..75a58a0 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/DtoOrder.java
+++ b/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;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/util/PayHelper.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/util/PayHelper.java
index ea8ed6a..db69d4c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/util/PayHelper.java
+++ b/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);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardSv.java
index 9957fdf..7cd6de0 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardSv.java
+++ b/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);
 
     }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVirtualCard.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVirtualCard.java
index 68086f0..c82fd3f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVirtualCard.java
+++ b/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;
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java
index 0833021..7c77eb6 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java
+++ b/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());
         }
 
-        // 鎺ユ敹鍙傛暟锛氱櫥褰曟�両D銆佽櫄鎷熷崱ID銆佸厖鍊奸噾棰濓紙鍒嗭級
+        // 鎺ユ敹鍙傛暟锛氱櫥褰曟�両D銆佽櫄鎷熷崱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);
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/dto/DtoOrder.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/dto/DtoOrder.java
index eee9246..d1d7e9c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/dto/DtoOrder.java
+++ b/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;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/dto/RefundRequest.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/dto/RefundRequest.java
index bf1f6f0..3c9c678 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/dto/RefundRequest.java
+++ b/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;
 
         /**
          * 閫�娆惧竵绉嶏紝鍥哄畾涓衡�淐NY鈥�

--
Gitblit v1.8.0