diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/ProductOrderController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/ProductOrderController.java index 2a5f26b..3000ed6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/ProductOrderController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/ProductOrderController.java @@ -1,12 +1,15 @@ package org.dromara.system.controller.system; +import java.util.Date; import java.util.List; import cn.dev33.satoken.annotation.SaIgnore; +import cn.hutool.core.date.DateUtil; import com.github.binarywang.wxpay.exception.WxPayException; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.domain.bo.OrderQrConfirmBo; @@ -39,6 +42,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; @Validated @RestController @RequestMapping("/system/order") +@Slf4j public class ProductOrderController extends BaseController { @Resource private IProductOrderService productOrderService; @@ -173,4 +177,11 @@ public class ProductOrderController extends BaseController { return R.ok( productOrderService.wxQueryOrder(orderNo)); } + @GetMapping("settlement") + @SaIgnore + public void settlement(){ + log.info("订单结算...开始:{}", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); + productOrderService.settlement(); + log.info("订单结算...结束:{}", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/ProductOrder.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/ProductOrder.java index 1678873..22305d0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/ProductOrder.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/ProductOrder.java @@ -73,7 +73,7 @@ public class ProductOrder extends BaseEntity { private Long num; /** - * 状态 0待支付,1支付完成,2派送中,3取消,4已评价 + * 状态(0待支付,1已支付,2派送,3取消,4已完成,5已评价,8,售后,9已退款)', */ private String status; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/ProductOrderMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/ProductOrderMapper.java index 3664b9f..7bd4277 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/ProductOrderMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/ProductOrderMapper.java @@ -1,5 +1,7 @@ package org.dromara.system.mapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; @@ -12,6 +14,7 @@ import org.dromara.system.domain.vo.ProductOrderVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import java.math.BigDecimal; +import java.util.List; /** * 商品订单Mapper接口 @@ -40,4 +43,6 @@ public interface ProductOrderMapper extends BaseMapperPlus selectSettlementList(@Param("ew") QueryWrapper lqw); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/ProductOrderServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/ProductOrderServiceImpl.java index a8b1d4d..840414c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/ProductOrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/ProductOrderServiceImpl.java @@ -876,6 +876,7 @@ public class ProductOrderServiceImpl implements IProductOrderService { if(status.equals("4")){ updateWrapper.set(ProductOrder::getFinishDate, new Date()); updateWrapper.set(ProductOrder::getSettlement, 1L); + updateWrapper.eq(ProductOrder::getSettlement, 0L); ProductOrderPriceVo productOrderPriceVo = productOrderPriceMapper.selectVoById(id); BigDecimal settlementCurrentPrice = productOrderPriceVo.getSettlementCurrentPrice(); if (productOrderVo.getSettlement() == 0L) { @@ -910,21 +911,28 @@ public class ProductOrderServiceImpl implements IProductOrderService { } - + /** + * 完成订单以后 结算settlement 0-> 1 + */ @Override @Transactional public void settlement() { String settlementDay = sysConfigService.selectConfigByKey("finish.order.settlement.day"); Integer day = Integer.parseInt(settlementDay); Date jdkDate = DateUtil.offsetDay(new Date(), -day).toJdkDate(); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(ProductOrder::getSettlement, 1L); - //结算时间小于jdkDate - lqw.lt(ProductOrder::getFinishDate, jdkDate); - List productOrderVos = baseMapper.selectVoList(lqw); + QueryWrapper lqw = new QueryWrapper<>(); + //待结算 + lqw.eq("po.settlement", 1L); + // lqw.in(ProductOrder::getStatus, "4", "5"); + //完成时间小于设定时间 + lqw.lt("po.finish_date", jdkDate); + lqw.eq("po.del_flag", "0"); + lqw.eq("sb.del_flag", "0"); + List productOrderVos = baseMapper.selectSettlementList(lqw); productOrderVos.forEach(productOrderVo -> { ProductOrderPriceVo productOrderPriceVo = productOrderPriceService.queryById(productOrderVo.getId()); BigDecimal settlementCurrentPrice = productOrderPriceVo.getSettlementCurrentPrice(); + log.info("结算金额:{}", settlementCurrentPrice); sysBusinessBalanceService.addBalance(settlementCurrentPrice, productOrderVo.getBusinessId(), "冻结转入余额", productOrderVo.getId(), "order"); sysBusinessBalanceService.subFrozenBalance(settlementCurrentPrice, productOrderVo.getBusinessId(), diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ProductOrderMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ProductOrderMapper.xml index ed589ca..22ffb9c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ProductOrderMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ProductOrderMapper.xml @@ -360,4 +360,10 @@ +