Browse Source

结算调整对订单删除,与商家删除的不结算

master
wengding 2 weeks ago
parent
commit
80d21565ef
  1. 11
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/ProductOrderController.java
  2. 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/ProductOrder.java
  3. 5
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/ProductOrderMapper.java
  4. 20
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/ProductOrderServiceImpl.java
  5. 6
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ProductOrderMapper.xml

11
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"));
}
}

2
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;

5
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<ProductOrder, Product
ProductOrderVo selectSysVoId(Long id);
ProductOrderPriceVo querySysPageStatistics(@Param("bo") ProductOrderBo bo);
List<ProductOrderVo> selectSettlementList(@Param("ew") QueryWrapper<ProductOrder> lqw);
}

20
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<ProductOrder> lqw = new LambdaQueryWrapper<>();
lqw.eq(ProductOrder::getSettlement, 1L);
//结算时间小于jdkDate
lqw.lt(ProductOrder::getFinishDate, jdkDate);
List<ProductOrderVo> productOrderVos = baseMapper.selectVoList(lqw);
QueryWrapper<ProductOrder> 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<ProductOrderVo> 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(),

6
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ProductOrderMapper.xml

@ -360,4 +360,10 @@
</select>
<select id="selectSettlementList" resultMap="ProductOrderResult"
>
select po.id, po.business_id
from product_order po left join sys_business sb on po.business_id = sb.id
${ew.customSqlSegment}
</select>
</mapper>

Loading…
Cancel
Save