瀏覽代碼

feature 支付成功回调函数增加支付状态

xiahan 4 月之前
父節點
當前提交
3691001434

+ 4 - 1
zhsw-common/src/main/java/com/rongwei/zhsw/system/dao/SwBillingRecordDao.java

@@ -7,6 +7,8 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Update;
 
+import java.util.Date;
+
 /**
  * 缴费记录(SwBillingRecord)表数据库访问层
  *
@@ -17,6 +19,7 @@ import org.apache.ibatis.annotations.Update;
 public interface SwBillingRecordDao extends BaseMapper<SwBillingRecordDo> {
 
 
-    void updateWeChatPayInfo(@Param("dseKey") String dseKey, @Param("orderNo") String orderNo, @Param("wechatNo") String wechatNo, @Param("desc") String desc);
+    void updateWeChatPayInfo(@Param("dseKey") String dseKey, @Param("orderNo") String orderNo, @Param("wechatNo") String wechatNo,
+                             @Param("desc") String desc,@Param("successTime") Date successTime);
 }
 

+ 13 - 12
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/impl/SwBillingRecordServiceImpl.java

@@ -7,7 +7,6 @@ import com.rongwe.zhsw.system.domain.SwBillManagementUnpaidDo;
 import com.rongwe.zhsw.system.domain.SwBillingRecordDo;
 import com.rongwe.zhsw.system.domain.SwUserManagementDo;
 import com.rongwe.zhsw.system.dto.PaymentRequestDTO;
-import com.rongwei.commonservice.service.impl.RedisServiceImpl;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.base.exception.CustomException;
@@ -122,7 +121,7 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
     }
 
     // 提取公共字段设置
-    public SwBillingRecordDo buildBaseBillingRecord( SysUserVo currentUser, SwUserManagementDo user) {
+    public SwBillingRecordDo buildBaseBillingRecord(SysUserVo currentUser, SwUserManagementDo user) {
         SwBillingRecordDo record = new SwBillingRecordDo();
         //缴费编号
         generateBillingNumber(record);
@@ -174,7 +173,7 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
 
         String id = SecurityUtil.getUUID(); // 批次唯一ID
 
-        SwBillingRecordDo add = buildBaseBillingRecord(currentUser,user);
+        SwBillingRecordDo add = buildBaseBillingRecord(currentUser, user);
         add.setId(id);
         add.setDatasource(paymentRequestDTO.getDatasource());
         add.setPaidin(paymentRequestDTO.getPaidin());
@@ -182,22 +181,20 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
         // 计算费用
         calculateFees(list, add, user);
 
-        if (list != null) {
+        if (list != null && !list.isEmpty()) {
             //生成已缴费账单
             bills = createBills(list, add);
-
         }
 
         // 保存处理结果
         try {
-            swBillingRecordService.saveProcessedData(add,user,bills,paymentRequestDTO.getIds());
-        }catch (Exception e){
-            log.error("生成缴费记录 失败 {}",e.getMessage());
+            swBillingRecordService.saveProcessedData(add, user, bills, paymentRequestDTO.getIds());
+        } catch (Exception e) {
+            log.error("生成缴费记录 失败 {}", e.getMessage());
             throw new Exception(e.getMessage());
         }
 
 
-
     }
 
     /**
@@ -208,9 +205,9 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
      * @param bills
      * @param ids
      */
-     @Override
-     @Transactional(rollbackFor = Exception.class)
-    public void saveProcessedData(SwBillingRecordDo add, SwUserManagementDo user, List<SwBillManagementPaidDo> bills, List<String> ids){
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void saveProcessedData(SwBillingRecordDo add, SwUserManagementDo user, List<SwBillManagementPaidDo> bills, List<String> ids) {
         //账单缴费记录生成
         this.baseMapper.insert(add);
         //已缴费账单生成
@@ -228,6 +225,9 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
     }
 
     public List<SwBillManagementPaidDo> createBills(List<SwBillManagementUnpaidDo> list, SwBillingRecordDo add) {
+        if (list == null || list.isEmpty()) {
+            return Collections.emptyList();
+        }
         List<SwBillManagementPaidDo> paidList = new ArrayList<>();
         SwBillManagementPaidDo paid;
         for (SwBillManagementUnpaidDo unpaid : list) {
@@ -258,6 +258,7 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
 
     /**
      * 设置减免金额 原应缴 滞纳金 账户余额 原余额 余额抵扣 实际应缴 缴费后余额
+     *
      * @param list
      * @param add
      * @param user

+ 2 - 1
zhsw-common/src/main/java/com/rongwei/zhsw/system/wechat/impl/PayMentServiceImpl.java

@@ -172,8 +172,9 @@ public class PayMentServiceImpl implements PayMentService {
         String transactionId = transaction.getTransactionId();
         // 商户号
         String outTradeNo = transaction.getOutTradeNo();
+        Date successTime = transaction.getSuccessTime();
         // 更新缴费记录相关信息
-        swBillingRecordService.getBaseMapper().updateWeChatPayInfo(deKey, outTradeNo, transactionId, analysisStr);
+        swBillingRecordService.getBaseMapper().updateWeChatPayInfo(deKey, outTradeNo, transactionId, analysisStr,successTime);
         return R.ok();
     }
 }

+ 3 - 2
zhsw-common/src/main/java/com/rongwei/zhsw/system/wechat/impl/PaymentRecordServiceImpl.java

@@ -140,7 +140,7 @@ public class PaymentRecordServiceImpl implements PaymentRecordService {
         SwUserManagementDo swUserManagementDo = swUserManagementService.getOne(new LambdaQueryWrapper<SwUserManagementDo>()
                 .eq(SwUserManagementDo::getUsernumber, userNUMBER)
                 .eq(BaseDo::getDeleted, "0"));
-        List<SwBillManagementUnpaidDo> unpaidDoList = null;
+        List<SwBillManagementUnpaidDo> unpaidDoList = new ArrayList<>();
         String zdId = createPaymentRecordVo.getZdId();
         if (StringUtils.isNotBlank(zdId)) {
             unpaidDoList = swBillManagementUnpaidService.getBaseMapper().selectBatchIds(Arrays.asList(zdId.split(",")));
@@ -148,6 +148,7 @@ public class PaymentRecordServiceImpl implements PaymentRecordService {
         // 生成缴费记录
         SwBillingRecordDo swBillingRecordDo = generateRecord(swUserManagementDo, unpaidDoList, createPaymentRecordVo.getPaymentAmount(),
                 createPaymentRecordVo.getOrderNo(), currentWeChatOpenId);
+
         // 待缴账单转为已缴账单
         List<SwBillManagementPaidDo> bills = swBillingRecordService.createBills(unpaidDoList, swBillingRecordDo);
         dataUpdate(swBillingRecordDo,swUserManagementDo,bills,unpaidDoList);
@@ -202,7 +203,7 @@ public class PaymentRecordServiceImpl implements PaymentRecordService {
         swBillingRecordDo.setMerchantpaymentnumber(orderNo);
         swBillingRecordDo.setProductdescription("水费");
         swBillingRecordDo.setAmountpaid(paymentAmount);
-        swBillingRecordDo.setPaymentcompletiontime(now);
+        // swBillingRecordDo.setPaymentcompletiontime(now);
         swBillingRecordDo.setOrdercreationtime(now);
         swBillingRecordDo.setYear(now.getYear());
         swBillingRecordDo.setCreateuserid(openId);

+ 6 - 1
zhsw-common/src/main/resources/mybatis/zhsw/SwBillingRecordDao.xml

@@ -4,6 +4,11 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.rongwei.zhsw.system.dao.SwBillingRecordDao">
         <update id="updateWeChatPayInfo">
-            update ${dseKey}.sw_billing_record set NOTICEDETAILS=#{desc},WECHATPAYORDERNUMBER=#{wechatNo} where MERCHANTPAYMENTNUMBER=#{orderNo}
+            update ${dseKey}.sw_billing_record
+            set NOTICEDETAILS=#{desc},
+                WECHATPAYORDERNUMBER=#{wechatNo},
+                PAYMENTSTATUS="1",
+                PAYMENTCOMPLETIONTIME =#{successTime}
+            where MERCHANTPAYMENTNUMBER = #{orderNo}
         </update>
 </mapper>