From f93b1617d28c9d353fae628bfb86e0c15fa07579 Mon Sep 17 00:00:00 2001 From: 陶杰 <1378534974@qq.com> Date: 星期四, 31 十月 2024 11:59:21 +0800 Subject: [PATCH] 1.提现-增加明细记录 2.报表-财务报表-增加总销售扎数统计,将原销售扎数改成实际销售扎数 --- src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java | 3 + src/main/java/com/mzl/flower/service/supplier/SupplierService.java | 2 src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java | 14 ++++++- src/main/java/com/mzl/flower/dto/request/wallet/CreateWalletWithdrawRecordDTO.java | 2 src/main/java/com/mzl/flower/dto/response/report/OrderDetailReportResultVO.java | 6 ++ src/main/resources/mapper/report/OrderReportMapper.xml | 1 src/main/java/com/mzl/flower/constant/Constants.java | 18 +++++++++ src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java | 19 +++++++++ src/main/resources/mapper/wallet/WalletBillRecordMapper.xml | 3 + src/main/java/com/mzl/flower/dto/response/wallet/WalletBillRecordVO.java | 7 +++ src/main/java/com/mzl/flower/entity/wallet/WalletBillRecordDO.java | 3 + 11 files changed, 73 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/mzl/flower/constant/Constants.java b/src/main/java/com/mzl/flower/constant/Constants.java index 3419ef4..bbdfc2a 100644 --- a/src/main/java/com/mzl/flower/constant/Constants.java +++ b/src/main/java/com/mzl/flower/constant/Constants.java @@ -589,6 +589,24 @@ return desc; } } + + public enum BILL_WITHDRAW_TYPE { + start("发起提现"), fail("提现失败"), success("提现成功") + ; + + BILL_WITHDRAW_TYPE(String desc) { + this.desc = desc; + } + + private String desc; + + public String getDesc() { + return desc; + } + } + + + public enum BILL_CHANGE_METHOD { add("增加"), reduce("减少"); diff --git a/src/main/java/com/mzl/flower/dto/request/wallet/CreateWalletWithdrawRecordDTO.java b/src/main/java/com/mzl/flower/dto/request/wallet/CreateWalletWithdrawRecordDTO.java index f6ea18a..7b17c28 100644 --- a/src/main/java/com/mzl/flower/dto/request/wallet/CreateWalletWithdrawRecordDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/wallet/CreateWalletWithdrawRecordDTO.java @@ -26,7 +26,7 @@ */ @ApiModelProperty(value = "钱包Id") @NotNull(message = "提现金额不能为空") - @DecimalMin(value = "0.0", message = "提现金额不能小于0") + @DecimalMin(value = "0.01", message = "提现金额不能小于0.01") private BigDecimal amount; /** diff --git a/src/main/java/com/mzl/flower/dto/response/report/OrderDetailReportResultVO.java b/src/main/java/com/mzl/flower/dto/response/report/OrderDetailReportResultVO.java index 1341b16..260211a 100644 --- a/src/main/java/com/mzl/flower/dto/response/report/OrderDetailReportResultVO.java +++ b/src/main/java/com/mzl/flower/dto/response/report/OrderDetailReportResultVO.java @@ -77,7 +77,11 @@ @ApiModelProperty("总包干费") private BigDecimal partnerTotalFeeAmount; - @ApiModelProperty("销售扎数") + + @ApiModelProperty("总销售扎数") + private Integer orderNum; + + @ApiModelProperty("实际销售扎数") private Integer realSaleNum; @ApiModelProperty("利润") diff --git a/src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java b/src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java index 290900a..4fffd79 100644 --- a/src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java +++ b/src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java @@ -67,6 +67,9 @@ @ApiModelProperty("总包干费--暂无") private BigDecimal partnerTotalFeeAmount; + @ApiModelProperty("总销售扎数") + private Integer orderNum; + @ApiModelProperty("实际销售扎数") private Integer realSaleNum; diff --git a/src/main/java/com/mzl/flower/dto/response/wallet/WalletBillRecordVO.java b/src/main/java/com/mzl/flower/dto/response/wallet/WalletBillRecordVO.java index cf9cc2a..d3a7d17 100644 --- a/src/main/java/com/mzl/flower/dto/response/wallet/WalletBillRecordVO.java +++ b/src/main/java/com/mzl/flower/dto/response/wallet/WalletBillRecordVO.java @@ -24,6 +24,10 @@ @DictTrans(target = "typeName",codeType = "BILL_CHANGE_TYPE") private String type; + @ApiModelProperty(value = "账单提现类型") + @DictTrans(target = "withdrawTypeName",codeType = "BILL_WITHDRAW_TYPE") + private String withdrawType; + @ApiModelProperty(value = "类型明细") private String typeDetail; @@ -69,4 +73,7 @@ @ApiModelProperty(value = "变动方式(增加、减少") private String methodName; + @ApiModelProperty(value = "账单提现类型名称(发起提现、提现失败、提现成功)") + private String withdrawTypeName; + } diff --git a/src/main/java/com/mzl/flower/entity/wallet/WalletBillRecordDO.java b/src/main/java/com/mzl/flower/entity/wallet/WalletBillRecordDO.java index 0d87f09..9c3ef1f 100644 --- a/src/main/java/com/mzl/flower/entity/wallet/WalletBillRecordDO.java +++ b/src/main/java/com/mzl/flower/entity/wallet/WalletBillRecordDO.java @@ -28,6 +28,9 @@ @ApiModelProperty(value = "账单变动类型(提现,结算)") private String type; + @ApiModelProperty(value = "账单变动提现类型") + private String withdrawType; + @ApiModelProperty(value = "类型明细") private String typeDetail; diff --git a/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java index 40beec9..1f3d758 100644 --- a/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java @@ -5,6 +5,7 @@ import com.mzl.flower.constant.LockConstants; import com.mzl.flower.dto.request.wallet.QueryWalletAmountDTO; import com.mzl.flower.dto.response.supplier.SupplierDTO; +import com.mzl.flower.entity.supplier.Supplier; import com.mzl.flower.entity.wallet.WalletDO; import com.mzl.flower.enums.TrueOrFalseEnum; import com.mzl.flower.mapper.wallet.WalletMapper; @@ -17,6 +18,7 @@ import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.text.SimpleDateFormat; @@ -76,6 +78,8 @@ @Override public WalletDO getOrCreateBySupplierId(Long supplierId) { + + WalletDO walletDO=getBySupplierId(supplierId); if(null==walletDO){ RLock lock = redissonClient.getLock(String.format(LockConstants.WALLET_SUPPLIER_ID_KEY, supplierId)); @@ -84,9 +88,12 @@ try { walletDO=getBySupplierId(supplierId); if(null!=walletDO) return walletDO; + + final Supplier supplier = supplierService.getSupplierById(supplierId); + // 创建一个钱包 walletDO =new WalletDO(); - walletDO.setUserId(SecurityUtils.getUserId()); + walletDO.setUserId(supplier.getUserId()); walletDO.setSupplierId(supplierId); walletDO.setTotalAmount(BigDecimal.ZERO); walletDO.setWithdrawableAmount(BigDecimal.ZERO); @@ -130,7 +137,10 @@ @Override public BigDecimal getWaittingSettlementAmount(WalletDO walletDO) { - + if(null!=walletDO && !StringUtils.isEmpty(walletDO.getSupplierId()) && StringUtils.isEmpty(walletDO.getUserId())){ + final Supplier supplier = supplierService.getSupplierById(walletDO.getSupplierId()); + walletDO.setUserId(supplier.getUserId()); + } return baseMapper.getWaittingSettlementAmount(walletDO); } diff --git a/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java index 46ccee8..7156e24 100644 --- a/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java @@ -137,6 +137,25 @@ save(withdrawRecordDO); + // 2.新增一条账单明细 + WalletBillRecordDO walletBillRecordDO=new WalletBillRecordDO(); + walletBillRecordDO.setId(UUIDGenerator.getUUID()); + walletBillRecordDO.setSupplierId(supplierDTO.getId()); + walletBillRecordDO.setWalletId(walletDO.getId()); + walletBillRecordDO.setType(Constants.BILL_CHANGE_TYPE.withdraw.name()); + // 发起提现 + walletBillRecordDO.setWithdrawType(Constants.BILL_WITHDRAW_TYPE.start.name()); + walletBillRecordDO.setMethod(Constants.BILL_CHANGE_METHOD.reduce.name()); + walletBillRecordDO.setOriginalAmount(walletDO.getWithdrawableAmount()); + walletBillRecordDO.setChangeAmount(dto.getAmount()); + walletBillRecordDO.setBalance(walletDO.getWithdrawableAmount().subtract(dto.getAmount())); + walletBillRecordDO.create(SecurityUtils.getUserId()); + + // 保存账单明细 + walletBillRecordService.save(walletBillRecordDO); + + + // 3. 钱包更新 // 钱包可提现的钱等于当前钱包可提现的钱-提现的钱 walletDO.setWithdrawableAmount(walletDO.getWithdrawableAmount().subtract(dto.getAmount())); diff --git a/src/main/java/com/mzl/flower/service/supplier/SupplierService.java b/src/main/java/com/mzl/flower/service/supplier/SupplierService.java index 83d1588..0a4582e 100644 --- a/src/main/java/com/mzl/flower/service/supplier/SupplierService.java +++ b/src/main/java/com/mzl/flower/service/supplier/SupplierService.java @@ -214,7 +214,7 @@ supplierMapper.updateById(supplier); } - public Supplier getSupplierById(String supplierId) { + public Supplier getSupplierById(Long supplierId) { return supplierMapper.selectById(supplierId); } } diff --git a/src/main/resources/mapper/report/OrderReportMapper.xml b/src/main/resources/mapper/report/OrderReportMapper.xml index b365647..aee1b7c 100644 --- a/src/main/resources/mapper/report/OrderReportMapper.xml +++ b/src/main/resources/mapper/report/OrderReportMapper.xml @@ -111,6 +111,7 @@ o.create_time as orderDate, o.payment_time, o.status_backend as settleStatus, + vor.order_num as order_num, vor.order_num-vor.order_lack_num as real_sale_num, vor.* from t_order o diff --git a/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml b/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml index ea5b876..d333725 100644 --- a/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml +++ b/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml @@ -13,6 +13,9 @@ <result column="supplier_id" property="supplierId" /> <result column="wallet_id" property="walletId" /> <result column="type" property="type" /> + + <result column="withdraw_type" property="withdrawType" /> + <result column="type_detail" property="typeDetail" /> <result column="transfer_id" property="transferId" /> <result column="method" property="method" /> -- Gitblit v1.9.3