Переглянути джерело

完善同步收款记录的定时任务逻辑

cgp 2 днів тому
батько
коміт
b4e55380b9

+ 5 - 0
fs-service/src/main/java/com/fs/qw/domain/FsCompanyExternalPayReceipt.java

@@ -36,6 +36,11 @@ public class FsCompanyExternalPayReceipt extends BaseEntity {
      */
     private Long payTime;
 
+    /**
+     * 交易时间(由pay_time转成的年月日-时分秒)
+     */
+    private Date saleTime;
+
     /**
      * 商户单号(外部订单号)
      */

+ 5 - 0
fs-service/src/main/java/com/fs/qw/domain/FsCompanyExternalPayRefund.java

@@ -85,6 +85,11 @@ public class FsCompanyExternalPayRefund extends BaseEntity {
      */
     private Long payTime;
 
+    /**
+     * 交易时间(由pay_time转成的年月日-时分秒)
+     */
+    private Date saleTime;
+
     /**
      * 本地创建时间(自动填充)
      */

+ 19 - 1
fs-service/src/main/java/com/fs/qw/service/impl/FsCompanyExternalPayReceiptServiceImpl.java

@@ -14,7 +14,12 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 import java.util.Collections;
+import java.util.Date;
 import java.util.List;
 
 @Slf4j
@@ -23,8 +28,10 @@ public class FsCompanyExternalPayReceiptServiceImpl implements IFsCompanyExterna
 
     @Autowired
     private WeWorkExternalPayService weWorkPayService;
+
     @Autowired
     private FsCompanyExternalPayReceiptMapper receiptMapper;
+
     @Autowired
     private FsCompanyExternalPayRefundMapper refundMapper;
 
@@ -56,6 +63,7 @@ public class FsCompanyExternalPayReceiptServiceImpl implements IFsCompanyExterna
                         entity.setCorpName(corpName);    // 设置企业名称
                         entity.setTotalFee(MoneyUtils.centToYuan(dto.getTotalFee()));
                         entity.setTotalRefundFee(MoneyUtils.centToYuan(dto.getTotalRefundFee()));
+                        entity.setSaleTime(secondsToDate(dto.getPayTime()));//转成时间戳格式保存
 
                         FsCompanyExternalPayReceipt exist = receiptMapper.selectByTransactionId(dto.getTransactionId());
                         if (exist == null) {
@@ -71,7 +79,7 @@ public class FsCompanyExternalPayReceiptServiceImpl implements IFsCompanyExterna
                         refund.setCorpId(corpId);
                         refund.setCorpName(corpName);
                         refund.setRefundFee(MoneyUtils.centToYuan(dto.getRefundFee()));
-
+                        refund.setSaleTime(secondsToDate(dto.getPayTime()));//转成时间戳格式保存
                         FsCompanyExternalPayRefund existRefund = refundMapper.selectByTransactionId(dto.getTransactionId());
                         if (existRefund == null) {
                             refundMapper.insertRefund(refund);
@@ -89,6 +97,16 @@ public class FsCompanyExternalPayReceiptServiceImpl implements IFsCompanyExterna
         }
     }
 
+    /**
+     * 将秒数(从 1970-01-01 00:00:00 UTC 开始的秒数)转换为 Date 对象
+     * @param seconds 秒数,例如 1780284515
+     * @return Date 对象(对应的时间点为 seconds 秒后的时刻)
+     */
+    public static Date secondsToDate(long seconds) {
+        // 秒转毫秒,直接构造 Date 对象
+        return new Date(seconds * 1000L);
+    }
+
     @Override
     public List<FsCompanyExternalPayReceipt> queryReceipts(FsCompanyExternalPayReceipt receipt) {
         List<FsCompanyExternalPayReceipt> fsCompanyExternalPayReceipts = receiptMapper.selectFsCompanyExternalPayReceiptList(receipt);

+ 11 - 4
fs-service/src/main/resources/mapper/qw/FsCompanyExternalPayReceiptMapper.xml

@@ -9,6 +9,7 @@
         <result property="transactionId"     column="transaction_id"     />
         <result property="tradeState"        column="trade_state"        />
         <result property="payTime"           column="pay_time"           />
+        <result property="saleTime"          column="sale_time"          />
         <result property="outTradeNo"        column="out_trade_no"       />
         <result property="externalUserid"    column="external_userid"    />
         <result property="totalFee"          column="total_fee"          />
@@ -27,7 +28,7 @@
     </resultMap>
 
     <sql id="selectFsCompanyExternalPayReceiptVo">
-        select id, transaction_id, trade_state, pay_time, out_trade_no,
+        select id, transaction_id, trade_state, pay_time,sale_time, out_trade_no,
                external_userid, total_fee, payee_userid, payment_type,
                mch_id, remark, total_refund_fee, commodity_list,
                contact_info, miniprogram_info, create_time, update_time,
@@ -48,6 +49,9 @@
             <if test="payTime != null">
                 and pay_time = #{payTime}
             </if>
+            <if test="saleTime != null">
+                and sale_time = #{saleTime}
+            </if>
             <if test="outTradeNo != null and outTradeNo != ''">
                 and out_trade_no = #{outTradeNo}
             </if>
@@ -101,6 +105,7 @@
             <if test="transactionId != null">transaction_id,</if>
             <if test="tradeState != null">trade_state,</if>
             <if test="payTime != null">pay_time,</if>
+            <if test="saleTime != null">sale_time,</if>
             <if test="outTradeNo != null">out_trade_no,</if>
             <if test="externalUserid != null">external_userid,</if>
             <if test="totalFee != null">total_fee,</if>
@@ -120,6 +125,7 @@
             <if test="transactionId != null">#{transactionId},</if>
             <if test="tradeState != null">#{tradeState},</if>
             <if test="payTime != null">#{payTime},</if>
+            <if test="saleTime != null">#{saleTime},</if>
             <if test="outTradeNo != null">#{outTradeNo},</if>
             <if test="externalUserid != null">#{externalUserid},</if>
             <if test="totalFee != null">#{totalFee},</if>
@@ -137,10 +143,10 @@
         </trim>
     </insert>
 
-    <!-- 批量新增(固定列,允许空值;若需完全跳过空字段,请循环调用单条动态插入) -->
+    <!-- 批量新增 -->
     <insert id="insertBatchFsCompanyExternalPayReceipt" parameterType="list">
         insert into fs_company_external_pay_receipt (
-        transaction_id, trade_state, pay_time, out_trade_no,
+        transaction_id, trade_state, pay_time, sale_time, out_trade_no,
         external_userid, total_fee, payee_userid, payment_type,
         mch_id, remark, total_refund_fee, commodity_list,
         contact_info, miniprogram_info, corp_id, corp_name,
@@ -148,7 +154,7 @@
         ) values
         <foreach collection="list" item="item" separator=",">
             (
-            #{item.transactionId}, #{item.tradeState}, #{item.payTime}, #{item.outTradeNo},
+            #{item.transactionId}, #{item.tradeState}, #{item.payTime}, #{item.saleTime}, #{item.outTradeNo},
             #{item.externalUserid}, #{item.totalFee}, #{item.payeeUserid}, #{item.paymentType},
             #{item.mchId}, #{item.remark}, #{item.totalRefundFee}, #{item.commodityList},
             #{item.contactInfo}, #{item.miniprogramInfo}, #{item.corpId}, #{item.corpName},
@@ -164,6 +170,7 @@
             <if test="transactionId != null">transaction_id = #{transactionId},</if>
             <if test="tradeState != null">trade_state = #{tradeState},</if>
             <if test="payTime != null">pay_time = #{payTime},</if>
+            <if test="saleTime != null">sale_time = #{saleTime},</if>
             <if test="outTradeNo != null">out_trade_no = #{outTradeNo},</if>
             <if test="externalUserid != null">external_userid = #{externalUserid},</if>
             <if test="totalFee != null">total_fee = #{totalFee},</if>

+ 5 - 1
fs-service/src/main/resources/mapper/qw/FsCompanyExternalPayRefundMapper.xml

@@ -17,6 +17,7 @@
         <result property="paymentType"      column="payment_type"      />
         <result property="mchId"            column="mch_id"            />
         <result property="payTime"          column="pay_time"          />
+        <result property="saleTime"         column="sale_time"         />
         <result property="createTime"       column="create_time"       />
         <result property="updateTime"       column="update_time"       />
         <result property="corpId"           column="corp_id"           />
@@ -26,7 +27,7 @@
     <sql id="Base_Column_List">
         select id, transaction_id, out_trade_no, out_refund_no, refund_userid, refund_comment,
                refund_reqtime, refund_status, refund_fee, external_userid, payee_userid,
-               payment_type, mch_id, pay_time, create_time, update_time, corp_id, corp_name
+               payment_type, mch_id, pay_time, sale_time, create_time, update_time, corp_id, corp_name
         from fs_company_external_pay_refund
     </sql>
 
@@ -47,6 +48,7 @@
             <if test="paymentType != null">payment_type,</if>
             <if test="mchId != null">mch_id,</if>
             <if test="payTime != null">pay_time,</if>
+            <if test="saleTime != null">sale_time,</if>
             <if test="corpId != null">corp_id,</if>
             <if test="corpName != null">corp_name,</if>
             create_time, update_time
@@ -65,6 +67,7 @@
             <if test="paymentType != null">#{paymentType},</if>
             <if test="mchId != null">#{mchId},</if>
             <if test="payTime != null">#{payTime},</if>
+            <if test="saleTime != null">#{saleTime},</if>
             <if test="corpId != null">#{corpId},</if>
             <if test="corpName != null">#{corpName},</if>
             sysdate(), sysdate()
@@ -86,6 +89,7 @@
             <if test="paymentType != null">payment_type = #{paymentType},</if>
             <if test="mchId != null">mch_id = #{mchId},</if>
             <if test="payTime != null">pay_time = #{payTime},</if>
+            <if test="saleTime != null">sale_time = #{saleTime},</if>
             <if test="corpId != null">corp_id = #{corpId},</if>
             <if test="corpName != null">corp_name = #{corpName},</if>
             update_time = sysdate()