## 优化去掉部分不使用接口和定时任务;

This commit is contained in:
cabbage 2025-05-30 10:35:22 +08:00
parent 502576abcb
commit c5cf7ec1e5
3 changed files with 2 additions and 122 deletions

View File

@ -1,9 +1,6 @@
package com.hzs.member.account;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.account.CuMemberRecharge;
import java.util.Date;
/**
* 会员模块定时任务
@ -31,13 +28,4 @@ public interface IMemberJobServiceApi {
*/
R<?> automaticWithdrawal();
/**
* 查询充值金额总和
*
* @param startDate 开始时暗
* @param endDate 结速时间
* @return R<CuMemberRecharge>
*/
R<CuMemberRecharge> selectRechargeTotalAmount(Date startDate, Date endDate);
}

View File

@ -1,17 +1,13 @@
package com.hzs.member.account.provider;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.account.CuMemberRecharge;
import com.hzs.member.account.IMemberJobServiceApi;
import com.hzs.member.account.service.ICuMemberAccountDetailService;
import com.hzs.member.account.service.ICuMemberRechargeService;
import com.hzs.member.account.service.ICuMemberWithdrawService;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Date;
/**
* 会员模块定时任务服务提供
*/
@ -23,8 +19,6 @@ public class IMemberJobServiceProvider implements IMemberJobServiceApi {
private ICuMemberAccountDetailService iCuMemberAccountDetailService;
@Autowired
private ICuMemberWithdrawService iCuMemberWithdrawService;
@Autowired
private ICuMemberRechargeService iCuMemberRechargeService;
@Override
public R<?> insertAccountDetail() {
@ -59,10 +53,4 @@ public class IMemberJobServiceProvider implements IMemberJobServiceApi {
return R.ok();
}
@Override
public R<CuMemberRecharge> selectRechargeTotalAmount(Date startDate, Date endDate) {
return R.ok(iCuMemberRechargeService.selectRechargeTotalAmount(startDate, endDate));
}
}

View File

@ -1,122 +1,26 @@
package com.hzs.third.job;
import cn.hutool.core.collection.CollectionUtil;
import com.hzs.common.core.constant.CountryConstants;
import com.hzs.common.core.enums.EOrderType;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.core.utils.ComputeUtil;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.account.CuMemberRecharge;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.member.account.IMemberJobServiceApi;
import com.hzs.sale.order.ISaOrderServiceApi;
import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.dto.CurrencyDTO;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.temporal.ChronoUnit;
import java.util.*;
@Slf4j
@ConditionalOnProperty(name = "xxl-job.start", havingValue = "true")
@Component
public class OrderJob {
@DubboReference
ISaOrderServiceApi orderServiceApi;
@DubboReference
ICurrencyServiceApi currencyServiceApi;
@DubboReference
IMemberJobServiceApi memberJobServiceApi;
ISaOrderServiceApi iSaOrderServiceApi;
/**
* 定时关单 订单三十分钟未支付自动关闭
*/
@XxlJob("autoCloseOrder")
public void timingCloseOrder() {
orderServiceApi.closeOrder();
}
/*
* @description: 定时发送业绩短信
**/
@XxlJob("sendOrderAchieve")
public void sendOrderAchieveMsg() {
Date startDate = DateUtils.currentDate();
Date endDate = DateUtils.afterDate(1, ChronoUnit.DAYS);
List<SaOrderExt> saOrderExtList = orderServiceApi.listSaOrderByDay(startDate, endDate, null).getData();
if (CollectionUtil.isNotEmpty(saOrderExtList)) {
BigDecimal registerAchieve = BigDecimal.ZERO;
BigDecimal updateAchieve = BigDecimal.ZERO;
BigDecimal repurchaseAchieve = BigDecimal.ZERO;
BigDecimal haiFunAchieve = BigDecimal.ZERO;
BigDecimal directSupplyAchieve = BigDecimal.ZERO;
Map<Integer, CurrencyDTO> currencyDtoMap = new HashMap<>();
for (SaOrderExt saOrderExt : saOrderExtList) {
if (EYesNo.NO.getIntValue() == saOrderExt.getDelFlag()) {
continue;
}
BigDecimal orderAmount = saOrderExt.getOrderAmount();
if (!Objects.equals(CountryConstants.CHINA_COUNTRY, saOrderExt.getPkCountry())) {
BigDecimal outRate;
if (currencyDtoMap.containsKey(saOrderExt.getPkRate())) {
outRate = currencyDtoMap.get(saOrderExt.getPkRate()).getInExchangeRate();
} else {
CurrencyDTO currencyDTO = currencyServiceApi.getCurrencyByPkId(saOrderExt.getPkRate()).getData();
outRate = currencyDTO.getInExchangeRate();
currencyDtoMap.put(saOrderExt.getPkCountry(), currencyDTO);
}
orderAmount = ComputeUtil.computeMultiply(ComputeUtil.computeDivide(orderAmount, outRate), 1);
}
if (Objects.equals(EOrderType.REGISTER_ORDER.getValue(), saOrderExt.getOrderType()) ||
Objects.equals(EOrderType.SPECIAL_UPGRADE_ORDER.getValue(), saOrderExt.getOrderType())) {
registerAchieve = ComputeUtil.computeAdd(registerAchieve, orderAmount);
} else if (Objects.equals(EOrderType.UPGRADE_ORDER.getValue(), saOrderExt.getOrderType()) ||
Objects.equals(EOrderType.SPECIAL_REGISTER_ORDER.getValue(), saOrderExt.getOrderType())) {
updateAchieve = ComputeUtil.computeAdd(updateAchieve, orderAmount);
} else {
if (Objects.equals(EOrderType.CONSUME_ORDER.getValue(), saOrderExt.getOrderType())) {
orderAmount = ComputeUtil.computeSubtract(orderAmount, saOrderExt.getConsumeAmount());
}
repurchaseAchieve = ComputeUtil.computeAdd(repurchaseAchieve, orderAmount);
}
}
BigDecimal rechargeTotalAmount = selectRechargeTotalAmount(startDate, endDate);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("尊敬的董事长您好今日A=").append(calculateAchieve(registerAchieve))
.append("B=").append(calculateAchieve(updateAchieve))
.append("C=").append(calculateAchieve(repurchaseAchieve))
.append("D=").append(calculateAchieve(haiFunAchieve))
.append(",合计=").append(calculateAchieve(registerAchieve.add(updateAchieve)
.add(repurchaseAchieve).add(haiFunAchieve).add(directSupplyAchieve))).append("Q=").append(calculateAchieve(rechargeTotalAmount)).append("");
}
}
/**
* 查询充值现金币的总金额
*
* @param startDate 开始时间
* @param endDate 结束时间
* @return BigDecimal
*/
private BigDecimal selectRechargeTotalAmount(Date startDate, Date endDate) {
CuMemberRecharge cuMemberRecharge = memberJobServiceApi.selectRechargeTotalAmount(startDate, endDate).getData();
if (null != cuMemberRecharge) {
return cuMemberRecharge.getRechargeAmount();
} else {
return BigDecimal.ZERO;
}
}
private BigDecimal calculateAchieve(BigDecimal achieve) {
return ComputeUtil.computeDivide(achieve, BigDecimal.valueOf(10000)).setScale(2, RoundingMode.HALF_UP);
iSaOrderServiceApi.closeOrder();
}
}