From 371591d64d37a57e2866e6f0729cf7054b8744ba Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期四, 25 一月 2024 14:29:58 +0800
Subject: [PATCH] 2024-01-25 朱宝民 总账生成功能、总账审核功能

---
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeCtrl.java |  159 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 149 insertions(+), 10 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeCtrl.java
index d4b5e3a..449dc2d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeCtrl.java
@@ -5,23 +5,28 @@
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.common.webUtil.ResultCodeMsg;
-import com.dy.pipIrrGlobal.pojoSe.VoRecharge;
+import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
+import com.dy.pipIrrGlobal.pojoSe.SeRecharge;
+import com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory;
+import com.dy.pipIrrGlobal.voSe.VoRecharge;
+import com.dy.pipIrrSell.clientCard.ClientCardSv;
+import com.dy.pipIrrSell.clientCard.LastOperateENUM;
+import com.dy.pipIrrSell.result.SellResultCode;
 import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
+import java.util.*;
 
 @Slf4j
 @Tag(name = "鍏呭�肩鐞�", description = "鍏呭�兼搷浣�")
@@ -30,6 +35,7 @@
 @RequiredArgsConstructor
 public class RechargeCtrl {
     private final RechargeSv rechargeSv;
+    private final ClientCardSv clientCardSv;
 
     @Operation(summary = "鑾峰緱涓�椤靛厖鍊艰褰�", description = "杩斿洖涓�椤靛厖鍊兼暟鎹�")
     @ApiResponses(value = {
@@ -40,9 +46,10 @@
                             schema = @Schema(implementation = VoRecharge.class))}
             )
     })
-    @GetMapping(path = "/getRecharges", consumes = MediaType.APPLICATION_JSON_VALUE)
-    @SsoAop("-1")
-    public BaseResponse<QueryResultVo<List<VoRecharge>>> get(@RequestBody @Parameter(description = "鏌ヨform琛ㄥ崟json鏁版嵁", required = true) QueryVo vo){
+    //@GetMapping(path = "/getRecharges", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @GetMapping(path = "/getRecharges")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoRecharge>>> get(QueryVo vo){
         try {
             QueryResultVo<List<VoRecharge>> res = rechargeSv.getRecharges(vo);
             return BaseResponseUtils.buildSuccess(res);
@@ -52,4 +59,136 @@
         }
     }
 
+    @Operation(summary = "鍏呭��", description = "鍏呭��")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = Boolean.class))}
+            )
+    })
+    @PostMapping(path = "add", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> add(@RequestBody @Valid DtoRecharge po, BindingResult bindingResult){
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        return addRecharge(po);
+    }
+
+    /**
+     * 娣诲姞鍏呭�艰褰�
+     * @param po
+     * @return
+     */
+    public BaseResponse<Boolean> addRecharge(DtoRecharge po){
+        /**
+         * cardId           姘村崱缂栧彿锛堟彃鍏ヨ褰曞悗鐢熸垚锛�
+         * cardAddr         姘村崱鍦板潃锛堜粎浠呭啓鍏ワ紝鏃犱笟鍔★級
+         * clientNum        鍐滄埛缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛屾坊鍔犲厖鍊间娇鐢級
+         * money            鍗$墖浣欓
+         * amount           鍏呭�奸噾棰�
+         * gift             璧犻�侀噾棰�
+         * afterRecharge    鍏呭�煎悗浣欓
+         * paymentId        鏀粯鏂瑰紡缂栧彿
+         * price            姘翠环
+         * remarks          澶囨敞
+         * operator         鎿嶄綔浜虹紪鍙�
+         * rechargeTime     鍏呭�兼椂闂�
+         */
+        Long cardId = 0L;
+        String cardNum = po.getCardNum();
+        String clientNum = "";
+        //Long clientId = po.getClientId();
+        Long clientId = 0L;
+        Float money = po.getMoney();
+        Float amount = po.getAmount();
+        Float gift = po.getGift();
+        Float afterRecharge = money + amount + gift;
+        Long paymentId = po.getPaymentId();
+        Float price = po.getPrice();
+        String remarks = po.getRemarks();
+        Long operator = po.getOperator();
+        Date rechargeTime = new Date();
+
+        /**
+         * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿
+         */
+        Map map = Optional.ofNullable(clientCardSv.getCardIdAndClientNum(cardNum)).orElse(new HashMap());
+        if(map == null || map.size() <= 0) {
+            return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_MISTAKE.getMessage());
+        }
+        cardId = Long.parseLong(map.get("cardId").toString());
+        clientNum = map.get("clientNum").toString();
+        clientId = Long.parseLong(map.get("clientId").toString());
+
+        /**
+         * 淇敼鍐滄埛鍗′俊鎭細
+         *      琛ュ崱鏃堕棿
+         *      鏈�鍚庢搷浣滅被鍨�-2
+         */
+        SeClientCard seClientCard = new SeClientCard();
+        seClientCard.setId(cardId);
+        seClientCard.setMoney(afterRecharge);
+        seClientCard.setRechargedt(rechargeTime);
+        seClientCard.setLastoper(LastOperateENUM.RECHARGE.getCode ());
+        Integer rec_updateClientCard = Optional.ofNullable(clientCardSv.UpdateClientCard(seClientCard)).orElse(0);
+        if(rec_updateClientCard == 0) {
+            return BaseResponseUtils.buildFail(SellResultCode.RECHARGE_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage());
+        }
+
+        /**
+         * 鍒犻櫎鍏呭�艰〃璇ュ崱鐨勫厖鍊艰褰�
+         */
+        Integer rec_deleteRecharge = Optional.ofNullable(rechargeSv.deleteByCardId(cardId)).orElse(0);
+        /**
+         * 娣诲姞鍏呭�艰褰�
+         */
+        SeRecharge seRecharge = new SeRecharge();
+        //seRecharge.setCardnum(cardNum);
+        //seRecharge.setClientnum(clientNum);
+
+        seRecharge.setCardid(cardId);
+        seRecharge.setClientid(clientId);
+        seRecharge.setMoney(money);
+        seRecharge.setAmount(amount);
+        seRecharge.setGift(gift);
+        seRecharge.setAfterrecharge(afterRecharge);
+        seRecharge.setPaymentid(paymentId);
+        seRecharge.setPrice(price);
+        seRecharge.setRemarks(remarks);
+        seRecharge.setOperator(operator);
+        seRecharge.setOperatedt(rechargeTime);
+        Long rec = Optional.ofNullable(rechargeSv.add(seRecharge)).orElse(0L);
+        if(rec == 0) {
+            return BaseResponseUtils.buildFail(SellResultCode.REPLACE_FAIL_WRITE_RECHARGE_ERROR.getMessage());
+        }
+
+        /**
+         * 娣诲姞琛ュ崱鍘嗗彶璁板綍
+         */
+        SeRechargeHistory seRechargeHistory = new SeRechargeHistory();
+        //seRechargeHistory.setCardnum(cardNum);
+        //seRechargeHistory.setClientnum(clientNum);
+        seRechargeHistory.setCardid(cardId);
+        seRechargeHistory.setClientid(clientId);
+        seRechargeHistory.setMoney(money);
+        seRechargeHistory.setAmount(amount);
+        seRechargeHistory.setGift(gift);
+        seRechargeHistory.setAfterrecharge(afterRecharge);
+        seRechargeHistory.setPaymentid(paymentId);
+        seRechargeHistory.setPrice(price);
+        seRechargeHistory.setRemarks(remarks);
+        seRechargeHistory.setOperator(operator);
+        seRechargeHistory.setOperatedt(rechargeTime);
+
+        Long rec_history = Optional.ofNullable(rechargeSv.addHistory(seRechargeHistory)).orElse(0L);
+        if(rec_history == 0) {
+            return BaseResponseUtils.buildFail(SellResultCode.RECHARGE_FAIL_WRITE_RECHARGE_HISTORY_ERROR.getMessage());
+        }
+
+        return BaseResponseUtils.buildSuccess(true) ;
+    }
 }

--
Gitblit v1.8.0