添加支付宝以及微信公众号配置参数

This commit is contained in:
张松
2025-03-07 17:56:34 +08:00
parent 11d6916935
commit c40257a099
6 changed files with 113 additions and 16 deletions

View File

@@ -1,28 +1,99 @@
package com.czg.service.order.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.czg.order.entity.OrderInfo;
import com.czg.order.service.OrderInfoService;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.order.entity.ShopOrderStatistic;
import com.czg.order.service.ShopOrderStatisticService;
import com.czg.service.order.mapper.ShopOrderStatisticMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
/**
* 服务层实现。
* 服务层实现。
*
* @author zs
* @since 2025-03-07
*/
@Service
public class ShopOrderStatisticServiceImpl extends ServiceImpl<ShopOrderStatisticMapper, ShopOrderStatistic> implements ShopOrderStatisticService{
public class ShopOrderStatisticServiceImpl extends ServiceImpl<ShopOrderStatisticMapper, ShopOrderStatistic> implements ShopOrderStatisticService {
@Resource
private OrderInfoService orderInfoService;
@Override
public void statistic() {
// 获取前一天
DateTime yesterday = DateUtil.yesterday();
// 获取前一天的开始时间00:00:00
DateTime startOfDay = DateUtil.beginOfDay(yesterday);
// 获取前一天的结束时间23:59:59
DateTime endOfDay = DateUtil.endOfDay(yesterday);
List<OrderInfo> orderInfos = orderInfoService.list(new QueryWrapper()
.ge(OrderInfo::getCreateTime, startOfDay)
.le(OrderInfo::getCreateTime, endOfDay)
.ne(OrderInfo::getStatus, "unpaid").ne(OrderInfo::getStatus, "cancelled"));
HashMap<Long, ShopOrderStatistic> countInfo = new HashMap<>();
for (OrderInfo item : orderInfos) {
ShopOrderStatistic statisticTask = countInfo.get(item.getShopId());
if (statisticTask == null) {
countInfo.put(item.getShopId(), statisticTask = new ShopOrderStatistic());
}
if ("refunding".equals(item.getStatus()) || "refund".equals(item.getStatus()) || "part-refund".equals(item.getStatus())) {
statisticTask.setRefundAmount(statisticTask.getRefundAmount().add(item.getRefundAmount()));
statisticTask.setRefundCount(statisticTask.getRefundCount() + 1);
if (item.getRefundAmount().compareTo(item.getPayAmount()) < 0) {
statisticTask.setSaleAmount(statisticTask.getSaleAmount().add(item.getPayAmount().subtract(item.getRefundAmount())));
}
} else {
statisticTask.setSaleCount(statisticTask.getSaleCount() + 1);
statisticTask.setSaleAmount(statisticTask.getSaleAmount().add(item.getPayAmount()));
}
switch (item.getPayType()) {
case "wechat-mini":
statisticTask.setWechatPayAmount(statisticTask.getWechatPayAmount().add(item.getPayAmount()));
statisticTask.setWechatPayCount(statisticTask.getWechatPayCount() + 1);
break;
case "main-scan", "back-scan":
statisticTask.setScanPayAmount(statisticTask.getScanPayAmount().add(item.getPayAmount()));
statisticTask.setScanPayCount(statisticTask.getScanPayCount() + 1);
break;
case "alipay-mini":
statisticTask.setAliPayAmount(statisticTask.getAliPayAmount().add(item.getPayAmount()));
statisticTask.setAliPayCount(statisticTask.getAliPayCount() + 1);
break;
case "vip-pay":
statisticTask.setMemberPayAmount(statisticTask.getMemberPayAmount().add(item.getPayAmount()));
statisticTask.setMemberPayCount(statisticTask.getMemberPayCount() + 1);
break;
case "credit-pay":
statisticTask.setCreditPayAmount(statisticTask.getCreditPayAmount().add(item.getPayAmount()));
statisticTask.setCreditPayCount(statisticTask.getCreditPayCount() + 1);
break;
case "cash-pay":
statisticTask.setCashPayAmount(statisticTask.getCashPayAmount().add(item.getPayAmount()));
statisticTask.setCashPayCount(statisticTask.getCashPayCount() + 1);
}
countInfo.forEach((shopId, info) -> {
ShopOrderStatistic statistic = getOne(new QueryWrapper().eq(ShopOrderStatistic::getShopId, shopId).eq(ShopOrderStatistic::getCreateDay, yesterday.toSqlDate()));
if (statistic == null) {
statistic = new ShopOrderStatistic();
}
BeanUtil.copyProperties(info, statistic);
saveOrUpdate(statistic);
});
}
}
}