From cd9bd57600aeda42a7b06e015ea1e0b94dd37b75 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 07 四月 2025 17:32:33 +0800
Subject: [PATCH] 虚拟卡余额小于100时提示用户余额不足
---
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java | 280 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 280 insertions(+), 0 deletions(-)
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java
new file mode 100644
index 0000000..1a4f417
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java
@@ -0,0 +1,280 @@
+package com.dy.pipIrrSell.general;
+
+import com.alibaba.excel.EasyExcel;
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrGlobal.excel.CellWriteHandler;
+import com.dy.pipIrrGlobal.excel.ExcelUtil;
+import com.dy.pipIrrGlobal.pojoBa.BaClient;
+import com.dy.pipIrrGlobal.pojoSe.SeAudits;
+import com.dy.pipIrrGlobal.pojoSe.SeGeneral;
+import com.dy.pipIrrGlobal.voSe.VoGeneral;
+import com.dy.pipIrrGlobal.voSe.VoTradeDetails;
+import com.dy.pipIrrSell.general.dto.DtoGeneral;
+import com.dy.pipIrrSell.general.qo.QoGeneral;
+import com.dy.pipIrrSell.general.qo.QoSummary;
+import com.dy.pipIrrSell.general.qo.QoToAudit;
+import com.dy.pipIrrSell.result.SellResultCode;
+import io.swagger.v3.oas.annotations.Operation;
+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.servlet.http.HttpServletResponse;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.time.LocalDate;
+import java.util.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-24 19:01
+ * @LastEditTime 2024-01-24 19:01
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "鎬昏处绠$悊", description = "鎬昏处绠$悊")
+@RestController
+@RequestMapping(path="general")
+@RequiredArgsConstructor
+public class GeneralCtrl {
+ private final GeneralSv generalSv;
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鎬昏处璁板綍
+ * 鏌ヨ鍓嶅厛鐢熸垚鏈敓鎴愮殑鎬昏处璁板綍
+ * @param vo
+ * @return
+ */
+ @Operation(summary = "鑾峰彇鎬昏处璁板綍", description = "鑾峰彇鎬昏处璁板綍")
+ @ApiResponses(value = {
+ @ApiResponse(
+ responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+ description = "杩斿洖涓�椤靛啘鎴锋暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
+ content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+ schema = @Schema(implementation = BaClient.class))}
+ )
+ })
+ @GetMapping(path = "get_generals")
+ @SsoAop()
+ public BaseResponse<QueryResultVo<List<VoGeneral>>> getOperates(QoGeneral vo){
+ try {
+ add_general();
+ QueryResultVo<List<VoGeneral>> res = generalSv.getGenerals(vo);
+ return BaseResponseUtils.buildSuccess(res);
+ } catch (Exception e) {
+ log.error("鏌ヨ浜ゆ槗璁板綍寮傚父", e);
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
+ }
+
+ /**
+ * 瀵煎嚭鎬昏处璁板綍
+ * @param response
+ * @param vo
+ */
+ @SneakyThrows(IOException.class)
+ @RequestMapping(value = "/export_general", method = RequestMethod.GET)
+ @SsoAop()
+ public void exportGeneral(HttpServletResponse response, QoGeneral vo) {
+ ExcelUtil.setExcelRespProp(response, "鎬昏处" + LocalDate.now());
+ List<VoGeneral> generalList = generalSv.exportGenerals(vo).getObj();
+
+ EasyExcel.write(response.getOutputStream(), VoGeneral.class)
+ .registerWriteHandler(new CellWriteHandler("璐㈠姟瀵硅处-鎬昏处"))
+ .sheet("鎬昏处")
+ .doWrite(generalList);
+ }
+
+ /**
+ * 鐢熸垚鎬昏处
+ * 鑾峰彇鏈敓鎴愭�昏处鐨勪氦鏄撴棩鏈熷垪琛紙褰撳ぉ鐨勪氦鏄撹褰曚笉鐢熸垚鎬昏处锛�
+ * 灏嗘寚瀹氭棩鏈熺殑浜ゆ槗璁板綍姹囨�诲埌鎬昏处琛�
+ * @return
+ */
+ public void add_general(){
+ //鍒犻櫎浠婂ぉ鐨勬�昏处
+ generalSv.deleteTodayGeneral();
+ // 鑾峰彇鏈敓鎴愭�昏处鐨勪氦鏄撴棩鏈熷垪琛紙褰撳ぉ鐨勪氦鏄撹褰曚笉鐢熸垚鎬昏处锛�
+ List<Map<String, Object>> list_operateDate = Optional.ofNullable(generalSv.getDatesOfNotInGenerals()).orElse(new ArrayList<>());
+ if(list_operateDate.size() > 0) {
+ for(int i = 0; i < list_operateDate.size(); i++) {
+ String operateDate = list_operateDate.get(i).get("operateDate").toString();
+ // 鏍规嵁浜ゆ槗鏃ユ湡鑾峰彇鎬昏处璁板綍鍒楄〃锛堝緟鐢熸垚鐨勶級
+ List<SeGeneral> list_general = Optional.ofNullable(generalSv.getGeneralByOperateDate(operateDate)).orElse(new ArrayList<>());
+ if(list_general.size() > 0) {
+ for(int j = 0; j < list_general.size(); j++) {
+ SeGeneral general = list_general.get(j);
+ generalSv.addGeneral(general);
+ }
+ }
+
+ }
+ }
+ }
+
+ /**
+ * 瀹℃牳鎬昏处
+ * 1. 淇敼鎬昏处瀹℃牳鐘舵��
+ * 2. 娣诲姞鎬昏处瀹℃牳璁板綍
+ * @param po
+ * @param bindingResult
+ * @return
+ */
+ @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 = "audit", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @Transactional(rollbackFor = Exception.class)
+ @SsoAop()
+ public BaseResponse<Boolean> audit(@RequestBody @Valid DtoGeneral po, BindingResult bindingResult){
+ if(bindingResult != null && bindingResult.hasErrors()){
+ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+ Long generalId = po.getGeneralId();
+ Byte auditStatus = po.getAuditStatus();
+ String auditOpinion = po.getAuditOpinion();
+ Long operator = po.getOperator();
+ Date auditTime = new Date();
+
+ if(generalId == null) {
+ return BaseResponseUtils.buildFail(SellResultCode.GENERAL_ID_CANNOT_BE_NULL.getMessage());
+ }
+
+ /**
+ * 鍒ゆ柇鎬昏处鏄惁瀛樺湪
+ */
+ if(generalSv.getGeneralById(generalId) == null) {
+ return BaseResponseUtils.buildFail(SellResultCode.GENERAL_NOT_EXIST.getMessage());
+ }
+
+ /**
+ * 淇敼鎬昏处瀹℃牳鐘舵��
+ */
+ SeGeneral seGeneral = new SeGeneral();
+ seGeneral.setId(generalId);
+ seGeneral.setAuditStatus(auditStatus);
+ Integer rec_updateGeneral = Optional.ofNullable(generalSv.updateGeneral(seGeneral)).orElse(0);
+ if(rec_updateGeneral == 0) {
+ return BaseResponseUtils.buildFail(SellResultCode.GENERAL_AUDIT_FAIL.getMessage());
+ }
+
+ /**
+ * 娣诲姞鎬昏处瀹℃牳璁板綍
+ */
+ SeAudits seAudits = new SeAudits();
+ seAudits.setGeneralId(generalId);
+ seAudits.setAuditStatus(auditStatus);
+ seAudits.setAuditOpinion(auditOpinion);
+ seAudits.setOperator(operator);
+ seAudits.setOperateDt(auditTime);
+ Integer rec_addAucits = Optional.ofNullable(generalSv.addAudits(seAudits)).orElse(0);
+ if(rec_addAucits == 0) {
+ return BaseResponseUtils.buildFail(SellResultCode.AUDITS_ADD_FAIL.getMessage());
+ }
+
+ return BaseResponseUtils.buildSuccess() ;
+ }
+
+
+ /**
+ * 寮�鍗$郴缁熶氦鏄撴眹鎬绘煡璇笌瀵硅处绯荤粺浜ゆ槗姹囨�绘煡璇㈠叡鐢ㄦ帴鍙�
+ * 寮�鍗$郴缁熷弬鏁帮細鏀堕摱鍛業D銆佹煡璇㈣捣姝㈡棩鏈�
+ * 瀵硅处绯荤粺鍙傛暟锛氭敹閾跺憳ID銆佷氦鏄撴棩鏈�
+ * @param vo
+ * @return
+ */
+ @Operation(summary = "鑾峰緱寮�鍗$郴缁熶氦鏄撶粺璁¤褰�", description = "杩斿洖寮�鍗$郴缁熶氦鏄撶粺璁¤褰�")
+ @ApiResponses(value = {
+ @ApiResponse(
+ responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+ description = "杩斿洖涓�椤靛啘鎴锋暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
+ content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+ schema = @Schema(implementation = BaClient.class))}
+ )
+ })
+ @GetMapping(path = "getSummaries")
+ @SsoAop()
+ public BaseResponse<Map> getSummaries( @Valid QoSummary vo, BindingResult bindingResult){
+ if(bindingResult != null && bindingResult.hasErrors()){
+ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+ try {
+ Map res = generalSv.getSummaries(vo);
+ return BaseResponseUtils.buildSuccess(res);
+ } catch (Exception e) {
+ log.error("鏌ヨ浜ゆ槗姹囨�昏褰曞紓甯�", e);
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
+ }
+
+ /**
+ * 鑾峰彇璐㈠姟瀵硅处_浜ゆ槗鏄庣粏
+ * @param vo
+ * @return
+ */
+ @Operation(summary = "鑾峰彇璐㈠姟瀵硅处_浜ゆ槗鏄庣粏", description = "鑾峰彇璐㈠姟瀵硅处_浜ゆ槗鏄庣粏")
+ @ApiResponses(value = {
+ @ApiResponse(
+ responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+ description = "杩斿洖涓�椤靛啘鎴锋暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
+ content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+ schema = @Schema(implementation = BaClient.class))}
+ )
+ })
+ @GetMapping(path = "get_trade_details")
+ @SsoAop()
+ public BaseResponse<Map> getTradeDetails(QoToAudit vo){
+ try {
+ return BaseResponseUtils.buildSuccess(generalSv.getTradeDetails(vo));
+ } catch (Exception e) {
+ log.error("鏌ヨ浜ゆ槗璁板綍寮傚父", e);
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
+ }
+
+ /**
+ * 瀵煎嚭璐㈠姟瀵硅处_浜ゆ槗鏄庣粏
+ * @param response
+ * @param vo
+ */
+ @SneakyThrows(IOException.class)
+ @RequestMapping(value = "/export_trade_details", method = RequestMethod.GET)
+ @SsoAop()
+ public void exportTradeDetails(HttpServletResponse response, QoToAudit vo) {
+ ExcelUtil.setExcelRespProp(response, "浜ゆ槗鏄庣粏" + LocalDate.now());
+
+ Map map_result = generalSv.exportTradeDetails(vo);
+ Map map_record = (Map) map_result.get("records");
+ List<VoTradeDetails> list = (List<VoTradeDetails>) map_record.get("list");
+ Double totalTradeAmount = Double.parseDouble(map_result.get("totalTradeAmount").toString());
+ VoTradeDetails po = new VoTradeDetails();
+ po.setTradeAmount(totalTradeAmount);
+ list.add(po);
+
+ EasyExcel.write(response.getOutputStream(), VoTradeDetails.class)
+ .registerWriteHandler(new CellWriteHandler("璐㈠姟瀵硅处-浜ゆ槗鏄庣粏"))
+ .sheet("浜ゆ槗鏄庣粏")
+ .doWrite(list);
+ }
+
+}
--
Gitblit v1.8.0