优化配送订单完成结算配送金业务

This commit is contained in:
2026-05-19 17:40:08 +08:00
parent 52af00170a
commit bbb26b44a9
3 changed files with 29 additions and 12 deletions

View File

@@ -19,7 +19,8 @@ public enum ShopDealerCapitalUpdateEnum {
TRANSFER_PAYMENT(30, "转账支出", false), TRANSFER_PAYMENT(30, "转账支出", false),
TRANSFER_INCOME(40, "转账收入", true), TRANSFER_INCOME(40, "转账收入", true),
FREEZE_MONEY_THAW(50, "佣金解冻", true), FREEZE_MONEY_THAW(50, "佣金解冻", true),
DELIVERY_INCOME(60, "配送奖励", true), DELIVERY_REWARD(60, "配送奖励", true),
DELIVERY_INCOME(61, "配送提成", true),
ORDER_REFUND(70, "佣金退回(退单)", false), ORDER_REFUND(70, "佣金退回(退单)", false),
; ;

View File

@@ -23,6 +23,7 @@ import com.gxwebsoft.glt.service.GltUserTicketLogService;
import com.gxwebsoft.glt.service.GltUserTicketService; import com.gxwebsoft.glt.service.GltUserTicketService;
import com.gxwebsoft.shop.dto.ShopDealerUserReduceDto; import com.gxwebsoft.shop.dto.ShopDealerUserReduceDto;
import com.gxwebsoft.shop.entity.*; import com.gxwebsoft.shop.entity.*;
import com.gxwebsoft.shop.mapper.ShopGoodsMapper;
import com.gxwebsoft.shop.mapper.ShopUserAddressMapper; import com.gxwebsoft.shop.mapper.ShopUserAddressMapper;
import com.gxwebsoft.shop.service.ShopDealerCapitalService; import com.gxwebsoft.shop.service.ShopDealerCapitalService;
import com.gxwebsoft.shop.service.ShopDealerUserService; import com.gxwebsoft.shop.service.ShopDealerUserService;
@@ -93,6 +94,9 @@ public class GltTicketOrderServiceImpl extends ServiceImpl<GltTicketOrderMapper,
@Resource @Resource
private OrderNoUtils orderNoUtils; private OrderNoUtils orderNoUtils;
@Resource
private ShopGoodsMapper shopGoodsMapper;
@Override @Override
public PageResult<GltTicketOrder> pageRel(GltTicketOrderParam param) { public PageResult<GltTicketOrder> pageRel(GltTicketOrderParam param) {
PageParam<GltTicketOrder, GltTicketOrderParam> page = new PageParam<>(param); PageParam<GltTicketOrder, GltTicketOrderParam> page = new PageParam<>(param);
@@ -774,9 +778,9 @@ public class GltTicketOrderServiceImpl extends ServiceImpl<GltTicketOrderMapper,
} }
} }
//生成配送师傅可提现账户分佣金额数据 //生成配送师傅可提现账户分佣金额数据【配送奖励(按商品设置)、配送提成(每桶0.1)】
int qty = ticketOrder.getTotalNum() == null ? 0 : ticketOrder.getTotalNum(); int qty = ticketOrder.getTotalNum() == null ? 0 : ticketOrder.getTotalNum();
if (qty > 0) { if (qty > 0) { //配送提成
BigDecimal money = RIDER_UNIT_COMMISSION BigDecimal money = RIDER_UNIT_COMMISSION
.multiply(BigDecimal.valueOf(qty)) .multiply(BigDecimal.valueOf(qty))
.setScale(RIDER_COMMISSION_SCALE, RoundingMode.HALF_UP); .setScale(RIDER_COMMISSION_SCALE, RoundingMode.HALF_UP);
@@ -792,15 +796,26 @@ public class GltTicketOrderServiceImpl extends ServiceImpl<GltTicketOrderMapper,
} }
} }
//查询未完成订单,完成资金解冻 //配送奖励
LambdaQueryWrapper<ShopOrder> orderLambdaQueryWrapper; Integer goodsId = userTicket.getGoodsId();
if(shopOrderId != null){ ShopGoods shopGood = shopGoodsMapper.selectById(goodsId);
orderLambdaQueryWrapper = new LambdaQueryWrapper<ShopOrder>().eq(ShopOrder::getOrderId, shopOrderId).eq(ShopOrder::getOrderStatus, 0); ShopOrder order = shopOrderService.getByOrderNo(userTicket.getOrderNo(), userTicket.getTenantId());
}else{ if(shopGood != null && order != null){
orderLambdaQueryWrapper = new LambdaQueryWrapper<ShopOrder>().eq(ShopOrder::getOrderId, shopOrderNo).eq(ShopOrder::getOrderStatus, 0); BigDecimal money = order.getPayPrice().multiply(shopGood.getDeliveryMoney());
if(money.signum() > 0){
ShopDealerUserReduceDto reduceDto = new ShopDealerUserReduceDto();
reduceDto.setTypeEnum(ShopDealerTypeEnum.WITHDRAW_ACCOUNT);
reduceDto.setUserId(ticketOrder.getRiderId());
reduceDto.setOrderUserId(ticketOrder.getUserId());
reduceDto.setOrderNo(ticketOrder.getNo());
reduceDto.setPrice(money);
reduceDto.setUpdateEnum(ShopDealerCapitalUpdateEnum.DELIVERY_REWARD);
shopDealerUserService.reduceBalance(reduceDto);
}
} }
ShopOrder order = shopOrderService.getOne(orderLambdaQueryWrapper);
if(order != null){ //查询未完成订单,完成资金解冻
if(order != null && order.getOrderStatus() == 0){
ShopDealerUserReduceDto reduceDto = new ShopDealerUserReduceDto(); ShopDealerUserReduceDto reduceDto = new ShopDealerUserReduceDto();
reduceDto.setTypeEnum(ShopDealerTypeEnum.DEFROST); reduceDto.setTypeEnum(ShopDealerTypeEnum.DEFROST);
reduceDto.setOrderUserId(order.getUserId()); reduceDto.setOrderUserId(order.getUserId());

View File

@@ -118,6 +118,7 @@ public class ShopDealerUserServiceImpl extends ServiceImpl<ShopDealerUserMapper,
case DIVIDEND_INCOME: case DIVIDEND_INCOME:
case PROMOTION_INCOME: case PROMOTION_INCOME:
case TRANSFER_INCOME: case TRANSFER_INCOME:
case DELIVERY_REWARD:
case DELIVERY_INCOME:{ case DELIVERY_INCOME:{
break; break;
} }
@@ -279,7 +280,7 @@ public class ShopDealerUserServiceImpl extends ServiceImpl<ShopDealerUserMapper,
.in(ShopDealerCapital::getFlowType, Arrays.asList(ShopDealerCapitalUpdateEnum.DISTRIBUTION_INCOME.getType(), .in(ShopDealerCapital::getFlowType, Arrays.asList(ShopDealerCapitalUpdateEnum.DISTRIBUTION_INCOME.getType(),
ShopDealerCapitalUpdateEnum.MANAGEMENT_INCOME.getType(), ShopDealerCapitalUpdateEnum.DIVIDEND_INCOME.getType(), ShopDealerCapitalUpdateEnum.MANAGEMENT_INCOME.getType(), ShopDealerCapitalUpdateEnum.DIVIDEND_INCOME.getType(),
ShopDealerCapitalUpdateEnum.PROMOTION_INCOME.getType(), ShopDealerCapitalUpdateEnum.FREEZE_MONEY_THAW.getType(), ShopDealerCapitalUpdateEnum.PROMOTION_INCOME.getType(), ShopDealerCapitalUpdateEnum.FREEZE_MONEY_THAW.getType(),
ShopDealerCapitalUpdateEnum.DELIVERY_INCOME.getType())) ShopDealerCapitalUpdateEnum.DELIVERY_INCOME.getType(), ShopDealerCapitalUpdateEnum.DELIVERY_REWARD.getType()))
.isNotNull(ShopDealerCapital::getUserId) .isNotNull(ShopDealerCapital::getUserId)
); );