From 5997dc8acfa81a6c867c28810d1c3c9714efc46c Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期六, 29 三月 2025 14:55:42 +0800
Subject: [PATCH] fix: 登录
---
src/main/java/com/mzl/flower/schedule/ScheduleService.java | 121 +++++++++++++++++++++++++++++++++++++---
1 files changed, 111 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/mzl/flower/schedule/ScheduleService.java b/src/main/java/com/mzl/flower/schedule/ScheduleService.java
index 564098f..34e0857 100644
--- a/src/main/java/com/mzl/flower/schedule/ScheduleService.java
+++ b/src/main/java/com/mzl/flower/schedule/ScheduleService.java
@@ -3,36 +3,51 @@
import com.aliyuncs.exceptions.ClientException;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mzl.flower.constant.Constants;
+import com.mzl.flower.constant.LockConstants;
import com.mzl.flower.dto.response.member.MemberGrowthRecordVO;
+import com.mzl.flower.dto.response.payment.OrderSettlementDetailDTO;
import com.mzl.flower.entity.flower.FlowerCategory;
import com.mzl.flower.entity.partner.Partner;
import com.mzl.flower.entity.payment.Order;
import com.mzl.flower.entity.payment.Transfer;
+import com.mzl.flower.entity.wallet.WalletBillRecordDO;
+import com.mzl.flower.entity.wallet.WalletDO;
import com.mzl.flower.mapper.flower.FlowerCategoryMapper;
import com.mzl.flower.mapper.member.MemberGrowthRecordMapper;
import com.mzl.flower.mapper.partner.PartnerMapper;
import com.mzl.flower.mapper.payment.OrderMapper;
+import com.mzl.flower.mapper.payment.OrderSettlementDetailMapper;
+import com.mzl.flower.mapper.wallet.WalletBillRecordMapper;
+import com.mzl.flower.mapper.wallet.WalletMapper;
import com.mzl.flower.service.BaseService;
import com.mzl.flower.service.coupon.CouponRecordService;
import com.mzl.flower.service.coupon.CouponTemplateService2;
import com.mzl.flower.service.flower.FlowerCategoryService;
import com.mzl.flower.service.menber.impl.GrowthValueDealService;
import com.mzl.flower.service.payment.*;
+import com.mzl.flower.service.wallet.WalletBillRecordService;
+import com.mzl.flower.service.wallet.WalletService;
import com.mzl.flower.thread.FlowerCategoryPriceThread;
import com.mzl.flower.utils.SmsUtil;
+import com.mzl.flower.utils.UUIDGenerator;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
+import org.redisson.api.RLock;
+import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.TimeUnit;
@Component
@Slf4j
@@ -49,9 +64,6 @@
@Autowired
private UserPaymentV3Service paymentV3Service;
-
- @Autowired
- private UserPaymentSybService paymentSybService;
@Autowired
private OrderService orderService;
@@ -86,6 +98,25 @@
@Autowired
private BaseService baseService;
+ @Autowired
+ private WalletBillRecordService walletBillRecordService;
+
+ @Autowired
+ private OrderSettlementDetailMapper orderSettlementDetailMapper;
+
+ @Autowired
+ private WalletService walletService;
+
+ @Autowired
+ private RedissonClient redissonClient;
+
+ @Autowired
+ private WalletBillRecordMapper walletBillRecordMapper;
+
+ @Autowired
+ private WalletMapper walletMapper;
+
+
@Scheduled(cron = "1 1 0/2 * * ?")
public void calculateAvePrice() {
log.info("均价计算开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
@@ -113,7 +144,8 @@
log.info("分类加价缓存结束:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
}
- @Scheduled(cron = "0 0/5 * * * ?")
+// @Scheduled(cron = "0 0/5 * * * ?")
+ @Scheduled(cron = "0 0/15 * * * ?")
public void checkPrepayOrder() {//五分钟未付款自动取消
log.info("未付款确认开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
@@ -123,13 +155,12 @@
if(ls != null && ls.size() > 0){
for(Order o : ls){
try {
- LocalDateTime createdTime = o.getCreateTime().plusMinutes(5);
+ LocalDateTime createdTime = o.getCreateTime().plusMinutes(15);
if (createdTime.isBefore(LocalDateTime.now())) {
- /*boolean f = paymentV3Service.checkOrderStatus(o.getId());
+ boolean f = paymentV3Service.checkOrderStatus(o.getId());
if(!f){
paymentV3Service.cancelOrder(o.getId());
- }*/
- paymentSybService.cancelOrder(o.getId());
+ }
}
} catch (Exception e) {
log.error(e.getMessage(), e);
@@ -187,6 +218,8 @@
try {
paymentV3Service.checkTransferStatus(t);
settlementService.updateSettlementStatus(t.getId());
+ //2024-10-24更新钱包提现信息
+ walletBillRecordService.updateTransferStatus(t.getId());
} catch (Exception e) {
log.error(e.getMessage(), e);
}
@@ -275,11 +308,11 @@
LocalDateTime endDateTime = LocalDateTime.of(currentDate, LocalTime.of(17, 0));
System.out.println("开始时间: " + startDateTime);
System.out.println("结束时间: " + endDateTime);
- List<String> sends = orderMapper.getWaitSendMessageInfoBySupplier("SEND", startDateTime, endDateTime);
+ List<String> sends = orderMapper.getWaitSendMessageInfoBySupplier("COLLECTION", startDateTime, endDateTime);
if(CollectionUtils.isNotEmpty(sends)) {
sends.forEach(s -> {
try {
- SmsUtil.sendSms(s, "SMS_474500141", null);
+ SmsUtil.sendSms(s, "SMS_474905508", null);
} catch (ClientException e) {
log.error("发送短信失败,手机号:" + s, e);
}
@@ -288,4 +321,72 @@
log.info("供应商下单供货提示结束:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
}
+ public void dealHistoryAmount() {
+ log.info("处理历史结算金额开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
+ List<OrderSettlementDetailDTO> orderSettlementDetailDTOS = orderSettlementDetailMapper.selectSettlementDetailLists();
+ orderSettlementDetailDTOS.forEach(o->{
+ BigDecimal totalAmount = new BigDecimal(0);//交易合计
+ BigDecimal checkFee = new BigDecimal(0);//降级扣款
+ BigDecimal lackFee = new BigDecimal(0);//缺货扣款
+ BigDecimal replaceFee = new BigDecimal(0);//补货扣款
+ BigDecimal stationFee = new BigDecimal(0);//集货站运费
+ BigDecimal salesFee = new BigDecimal(0);//售后理赔
+
+ totalAmount = totalAmount.add(o.getTotalAmount());
+ checkFee = checkFee.add(o.getCheckFee());
+ lackFee = lackFee.add(o.getLackFee() == null ? new BigDecimal(0): o.getLackFee());
+ replaceFee = replaceFee.add(o.getReplaceFee() == null ? new BigDecimal(0): o.getReplaceFee());
+ stationFee = stationFee.add(o.getStationFee());
+ salesFee = salesFee.add(o.getSalesFee());
+
+ BigDecimal settlementAmount = totalAmount.subtract(checkFee).subtract(lackFee).subtract(replaceFee)
+ .subtract(salesFee).subtract(stationFee);//结算金额
+
+ WalletDO walletDO = walletService.getOrCreateBySupplierId(o.getSupplierId());
+ RLock lock = redissonClient.getLock(String.format(LockConstants.WALLET_ID_KEY, walletDO.getId()));
+ try {
+ if (lock.tryLock(10, 30, TimeUnit.SECONDS)) {
+ try {
+ if(settlementAmount.compareTo(BigDecimal.ZERO) > 0) {
+ WalletBillRecordDO walletBillRecord = new WalletBillRecordDO();
+ walletBillRecord.setId(UUIDGenerator.getUUID());
+ WalletDO walletDOInfo = walletService.getBySupplierId(o.getSupplierId());
+ //增加供应商结算金额保存到钱包
+ walletBillRecord.setSupplierId(o.getSupplierId());
+ walletBillRecord.setWalletId(walletDOInfo.getId());
+ walletBillRecord.setSettlementId(o.getSettlementId());
+ walletBillRecord.setOrderItemId(o.getOrderItemId());
+ //变动金额等于供应商收入
+ walletBillRecord.setTotalAmount(settlementAmount);
+ walletBillRecord.setType(Constants.BILL_CHANGE_TYPE.settlement.name());
+ walletBillRecord.setMethod(Constants.BILL_CHANGE_METHOD.add.name());
+ walletBillRecord.setOriginalAmount(walletDOInfo.getTotalAmount());
+ walletBillRecord.setChangeAmount(settlementAmount);
+ walletBillRecord.setBalance(walletDOInfo.getWithdrawableAmount().add(settlementAmount));
+ Order order = orderMapper.selectById(o.getOrderId());
+ if (!ObjectUtils.isEmpty(order)) {
+ walletBillRecord.setRemark("订单完成(订单号" + order.getOrderNo() + ")" + ",获得收入");
+ walletBillRecord.setOrderNo(order.getOrderNo());
+ }
+ //更新钱包
+ //可提现金额=钱包余额=结算金额
+ walletDOInfo.setWithdrawableAmount(walletDOInfo.getWithdrawableAmount().add(settlementAmount));
+ walletDOInfo.setTotalAmount(walletDOInfo.getWithdrawableAmount());
+ //已结算金额
+ walletDOInfo.setSettledAmount(walletDOInfo.getSettledAmount().add(settlementAmount));
+ walletMapper.updateById(walletDOInfo);
+ walletBillRecord.create();
+ walletBillRecordMapper.insert(walletBillRecord);
+ }
+ } finally {
+ lock.unlock();
+ }
+ }
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ });
+ log.info("处理历史结算金额完成:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
+ }
+
}
--
Gitblit v1.9.3