From 774c0b57de71a09c1965a89a1a08f9196b23fcd5 Mon Sep 17 00:00:00 2001
From: liulin <lin.liu@88.com>
Date: 星期五, 04 七月 2025 16:45:25 +0800
Subject: [PATCH] 修改支付接口

---
 src/main/java/com/lunhan/water/service/RechargeRecordsService.java |   83 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 74 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/lunhan/water/service/RechargeRecordsService.java b/src/main/java/com/lunhan/water/service/RechargeRecordsService.java
index 54418cd..bc49f12 100644
--- a/src/main/java/com/lunhan/water/service/RechargeRecordsService.java
+++ b/src/main/java/com/lunhan/water/service/RechargeRecordsService.java
@@ -24,11 +24,22 @@
 
 import com.lunhan.water.common.*;
 import com.lunhan.water.common.enums.*;
+import com.lunhan.water.common.jwt.LoginUserDTO;
 import com.lunhan.water.common.model.Tuple;
 import com.lunhan.water.common.util.*;
+import com.lunhan.water.entity.enums.EPayState;
+import com.lunhan.water.entity.enums.EPayType;
+import com.lunhan.water.entity.request.rechargerecords.Recharge;
+import com.lunhan.water.repository.impl.RechargeOrderMapperImpl;
+import com.lunhan.water.repository.impl.UserLoginMapperImpl;
+import com.lunhan.water.repository.po.RechargeOrderPO;
+import com.lunhan.water.repository.po.UserLoginPO;
+import com.lunhan.water.repository.vo.PaymentRecordsVO;
 import org.apache.commons.lang3.BooleanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 import com.lunhan.water.repository.impl.RechargeRecordsMapperImpl;
@@ -38,6 +49,7 @@
 import com.lunhan.water.entity.search.SearchRechargeRecords;
 import com.lunhan.water.repository.vo.RechargeRecordsVO;
 import com.lunhan.water.service.convert.RechargeRecordsConvert;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 充值记录
@@ -47,6 +59,10 @@
 public class RechargeRecordsService extends BaseService {
     @Autowired
     private RechargeRecordsMapperImpl mapper;
+    @Autowired
+    private UserLoginMapperImpl userLoginMapper;
+    @Autowired
+    private RechargeOrderMapperImpl rechargeOrderMapper;
 
     public ExecutedResult<Long> create(ReqCreateRechargeRecords request) {
         // 转换po
@@ -193,24 +209,73 @@
         }
         return ExecutedResult.success(result);
     }
-
+    /**
+     * 充值订单
+     *
+     * @param request
+     * @param loginUser
+     * @return
+     */
+    public ExecutedResult<String> recharge(Recharge request, LoginUserDTO loginUser) {
+        Long now = LocalDateTimeUtil.nowTimeStamp();
+        // 修改用户余额
+        UserLoginPO userLoginPO = userLoginMapper.get4Openid(loginUser.getUserId());
+        if (Objects.isNull(userLoginPO)) {
+            return ExecutedResult.failed("用户信息不存在!");
+        }
+        RechargeOrderPO orderPO=new RechargeOrderPO();
+        orderPO.setUserId(userLoginPO.getId());
+        orderPO.setOrderNo("CZ"+SnowFlakeUtil.getId());
+        orderPO.setOrderAmount(request.getRechargeAmount());
+        orderPO.setDiscountAmount(BigDecimal.ZERO);
+        orderPO.setPaymentAmount(request.getRechargeAmount());
+        orderPO.setPayType(EPayType.WX_PAY.getValue());
+        orderPO.setPayState(EPayState.WAITING.getValue());
+        orderPO.setCreateTime(now);
+        orderPO.setRemark("后台充值");
+        int insert = rechargeOrderMapper.insert(orderPO);
+        if(insert>0){
+            return ExecutedResult.success(orderPO.getOrderNo());
+        }
+        return ExecutedResult.failed("提交充值订单失败!");
+    }
     public ExecutedResult<PagerResult<RechargeRecordsVO>> search(SearchRechargeRecords search) {
         // 处理创建时间范围-查询参数
-        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
-        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
-            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
+        if(search.getDateType()!=null&&search.getDateType()>0){
+            Long beginTime=0L;
+            Long endTime=0L;
+            switch (search.getDateType()){
+                case 1:
+                    beginTime=LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.todayStartTime()).getTime();
+                    endTime=LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.todayEndTime()).getTime();
+                    break;
+                case 2:
+                    beginTime=LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.weekStartTime()).getTime();
+                    endTime=LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.weekEndTime()).getTime();
+                    break;
+                case 3:
+                    beginTime=LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.monthStartTime()).getTime();
+                    endTime=LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.monthEndTime()).getTime();
+                    break;
+                case 4:
+                    beginTime=LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.yearStartTime()).getTime();
+                    endTime=LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.yearEndTime()).getTime();
+                    break;
+            }
+            if (beginTime>0) {
+                search.setCreateTimeStart(beginTime);
+            }
+            if (endTime>0) {
+                search.setCreateTimeEnd(endTime);
+            }
         }
-        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
-            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
-        }
-
         PagerResult<RechargeRecordsPO> pageList = mapper.search(search);
         List<RechargeRecordsVO> listVo = new ArrayList<>();
         List<RechargeRecordsPO> list = pageList.getList();
         if (ListUtil.isNotNullOrEmpty(list)) {
             pageList.setLastId(list.get(list.size() - 1).getId());
             // 转换vo
-            listVo = RechargeRecordsConvert.INSTANCE.toVo(list);
+            listVo =  CopierUtil.mapTo(list, RechargeRecordsVO.class);
         }
         PagerResult<RechargeRecordsVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
         result.setLastId(pageList.getLastId());

--
Gitblit v1.9.3