分销订单

This commit is contained in:
lifenlong 2021-05-19 19:11:57 +08:00
parent 4b7be309b2
commit 64c095f20e
16 changed files with 82 additions and 30 deletions

View File

@ -1,4 +1,4 @@
package cn.lili.controller.distribution; package cn.lili.controller.other.distribution;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.ResultUtil; import cn.lili.common.utils.ResultUtil;
@ -13,7 +13,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;

View File

@ -1,4 +1,4 @@
package cn.lili.controller.distribution; package cn.lili.controller.other.distribution;
import cn.lili.common.utils.ResultUtil; import cn.lili.common.utils.ResultUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;

View File

@ -1,4 +1,4 @@
package cn.lili.controller.distribution; package cn.lili.controller.other.distribution;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;

View File

@ -1,4 +1,4 @@
package cn.lili.controller.distribution; package cn.lili.controller.other.distribution;
import cn.lili.common.utils.ResultUtil; import cn.lili.common.utils.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
@ -9,7 +9,6 @@ import cn.lili.modules.distribution.service.DistributionService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;

View File

@ -33,6 +33,7 @@ public class Distribution extends BaseEntity {
this.memberName = memberName; this.memberName = memberName;
this.name = name; this.name = name;
this.idNumber = idNumber; this.idNumber = idNumber;
distributionOrderCount=0;
this.distributionStatus = DistributionStatusEnum.APPLY.name(); this.distributionStatus = DistributionStatusEnum.APPLY.name();
} }
@ -57,6 +58,8 @@ public class Distribution extends BaseEntity {
@ApiModelProperty(value = "冻结金额") @ApiModelProperty(value = "冻结金额")
private Double commissionFrozen = 0D; private Double commissionFrozen = 0D;
@ApiModelProperty(value = "分销订单数")
private Integer distributionOrderCount;
/** /**
* @see DistributionStatusEnum * @see DistributionStatusEnum

View File

@ -14,5 +14,8 @@ import org.apache.ibatis.annotations.Update;
public interface DistributionMapper extends BaseMapper<Distribution> { public interface DistributionMapper extends BaseMapper<Distribution> {
@Update("UPDATE li_distribution set can_rebate = can_rebate+#{canRebate} WHERE id = #{distributionId}") @Update("UPDATE li_distribution set can_rebate = can_rebate+#{canRebate} WHERE id = #{distributionId}")
void updateCanRebate(Double canRebate,String distributionId); void subCanRebate(Double canRebate,String distributionId);
@Update("UPDATE li_distribution set can_rebate = (can_rebate+#{canRebate}) AND rebate_total=(rebate_total+#{canRebate}) AND distribution_order_count=(distribution_order_count+1) WHERE id = #{distributionId}")
void addCanRebate(Double canRebate,String distributionId);
} }

View File

@ -28,6 +28,7 @@ public interface DistributionOrderService extends IService<DistributionOrder> {
* @param orderSn 订单编号 * @param orderSn 订单编号
*/ */
void payOrder(String orderSn); void payOrder(String orderSn);
void test(String orderSn);
/** /**
* 取消订单 * 取消订单

View File

@ -80,6 +80,11 @@ public interface DistributionService extends IService<Distribution> {
* @param canRebate 修改金额 * @param canRebate 修改金额
* @param distributionId 分销员ID * @param distributionId 分销员ID
*/ */
void updateCanRebate(Double canRebate,String distributionId); void subCanRebate(Double canRebate,String distributionId);
/**
* 添加分销金额
* @param rebate
*/
void addRebate(Double rebate,String distributionId);
} }

View File

@ -24,7 +24,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -69,15 +68,17 @@ public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderM
//判断是否为分销订单如果为分销订单则获取分销佣金 //判断是否为分销订单如果为分销订单则获取分销佣金
if (order.getDistributionId() != null) { if (order.getDistributionId() != null) {
//根据订单编号获取有分销金额的店铺流水记录 //根据订单编号获取有分销金额的店铺流水记录
List<StoreFlow> storeFlowList = storeFlowService.list(new LambdaQueryWrapper<StoreFlow>() List<StoreFlow> storeFlowList = storeFlowService.list(new LambdaQueryWrapper<StoreFlow>()
.eq(StoreFlow::getOrderSn, orderSn) .eq(StoreFlow::getOrderSn, orderSn)
.isNotNull(StoreFlow::getDistributionRebate)); .isNotNull(StoreFlow::getDistributionRebate));
Double rebate=0.0;
//循环店铺流水记录判断是否包含分销商品
//包含分销商品则进行记录分销订单计算分销总额
for (StoreFlow storeFlow : storeFlowList) { for (StoreFlow storeFlow : storeFlowList) {
rebate=CurrencyUtil.add(rebate,storeFlow.getDistributionRebate());
DistributionOrder distributionOrder = new DistributionOrder(storeFlow); DistributionOrder distributionOrder = new DistributionOrder(storeFlow);
distributionOrder.setDistributionId(order.getDistributionId()); distributionOrder.setDistributionId(order.getDistributionId());
//分销员信息 //分销员信息
Distribution distribution = distributionService.getById(order.getDistributionId()); Distribution distribution = distributionService.getById(order.getDistributionId());
distributionOrder.setDistributionName(distribution.getMemberName()); distributionOrder.setDistributionName(distribution.getMemberName());
@ -86,12 +87,56 @@ public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderM
Setting setting = settingService.get(SettingEnum.DISTRIBUTION_SETTING.name()); Setting setting = settingService.get(SettingEnum.DISTRIBUTION_SETTING.name());
DistributionSetting distributionSetting = JSONUtil.toBean(setting.getSettingValue(), DistributionSetting.class); DistributionSetting distributionSetting = JSONUtil.toBean(setting.getSettingValue(), DistributionSetting.class);
DateTime dateTime = new DateTime(); DateTime dateTime = new DateTime();
// dateTime.offsetNew(DateField.DAY_OF_MONTH,distributionSetting.getCashDay()); dateTime.offsetNew(DateField.DAY_OF_MONTH,distributionSetting.getCashDay());
dateTime.offsetNew(DateField.DAY_OF_MONTH, 1);
distributionOrder.setSettleCycle(dateTime); distributionOrder.setSettleCycle(dateTime);
this.save(distributionOrder); this.save(distributionOrder);
} }
//如果包含分销商品则记录会员的分销总额
if(rebate!=0.0){
distributionService.addRebate(rebate,order.getDistributionId());
}
} }
}
@Override
public void test(String orderSn) {
//根据订单编号获取订单数据
Order order = orderService.getBySn(orderSn);
//判断是否为分销订单如果为分销订单则获取分销佣金
if (order.getDistributionId() != null) {
//根据订单编号获取有分销金额的店铺流水记录
List<StoreFlow> storeFlowList = storeFlowService.list(new LambdaQueryWrapper<StoreFlow>()
.eq(StoreFlow::getOrderSn, orderSn)
.isNotNull(StoreFlow::getDistributionRebate));
Double rebate=0.0;
//循环店铺流水记录判断是否包含分销商品
//包含分销商品则进行记录分销订单计算分销总额
for (StoreFlow storeFlow : storeFlowList) {
rebate=CurrencyUtil.add(rebate,storeFlow.getDistributionRebate());
DistributionOrder distributionOrder = new DistributionOrder(storeFlow);
distributionOrder.setDistributionId(order.getDistributionId());
//分销员信息
Distribution distribution = distributionService.getById(order.getDistributionId());
distributionOrder.setDistributionName(distribution.getMemberName());
//设置结算天数(解冻日期)
Setting setting = settingService.get(SettingEnum.DISTRIBUTION_SETTING.name());
DistributionSetting distributionSetting = JSONUtil.toBean(setting.getSettingValue(), DistributionSetting.class);
DateTime dateTime = new DateTime();
//默认提现周期一天
dateTime.offsetNew(DateField.DAY_OF_MONTH,1);
//dateTime.offsetNew(DateField.DAY_OF_MONTH,distributionSetting.getCashDay());
distributionOrder.setSettleCycle(dateTime);
this.save(distributionOrder);
}
//如果包含分销商品则记录会员的分销总额
if(rebate!=0.0){
distributionService.addRebate(rebate,order.getDistributionId());
}
}
} }
@Override @Override
@ -126,7 +171,7 @@ public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderM
this.save(backDistributionOrder); this.save(backDistributionOrder);
//修改分销员提成金额 //修改分销员提成金额
distributionService.updateCanRebate(CurrencyUtil.sub(0,storeFlow.getDistributionRebate()),distributionOrder.getDistributionId()); distributionService.subCanRebate(CurrencyUtil.sub(0,storeFlow.getDistributionRebate()),distributionOrder.getDistributionId());
} }
} }
} }

View File

@ -43,10 +43,6 @@ public class DistributionServiceImpl extends ServiceImpl<DistributionMapper, Dis
@Autowired @Autowired
private MemberService memberService; private MemberService memberService;
//分销员
@Autowired
private DistributionMapper distributionMapper;
//缓存 //缓存
@Autowired @Autowired
private Cache cache; private Cache cache;
@ -175,8 +171,13 @@ public class DistributionServiceImpl extends ServiceImpl<DistributionMapper, Dis
} }
@Override @Override
public void updateCanRebate(Double canRebate, String distributionId) { public void subCanRebate(Double canRebate, String distributionId) {
this.distributionMapper.updateCanRebate(canRebate,distributionId); this.baseMapper.subCanRebate(canRebate,distributionId);
}
@Override
public void addRebate(Double rebate, String distributionId) {
this.baseMapper.addCanRebate(rebate,distributionId);
} }
} }

View File

@ -1,4 +1,4 @@
package cn.lili.controller.distribution; package cn.lili.controller.other.distribution;
import cn.lili.common.utils.ResultUtil; import cn.lili.common.utils.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;

View File

@ -1,4 +1,4 @@
package cn.lili.controller.distribution; package cn.lili.controller.other.distribution;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.utils.ResultUtil; import cn.lili.common.utils.ResultUtil;
@ -9,7 +9,6 @@ import cn.lili.modules.distribution.service.DistributionGoodsService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;

View File

@ -1,4 +1,4 @@
package cn.lili.controller.distribution; package cn.lili.controller.other.distribution;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;

View File

@ -1,4 +1,4 @@
package cn.lili.controller.distribution; package cn.lili.controller.other.distribution;
import cn.lili.common.utils.ResultUtil; import cn.lili.common.utils.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
@ -8,7 +8,6 @@ import cn.lili.modules.distribution.service.DistributionOrderService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;

View File

@ -1,4 +1,4 @@
package cn.lili.controller.distribution; package cn.lili.controller.other.distribution;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.utils.ResultUtil; import cn.lili.common.utils.ResultUtil;
@ -14,7 +14,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;

View File

@ -1,4 +1,4 @@
package cn.lili.controller.distribution; package cn.lili.controller.other.distribution;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.ResultUtil; import cn.lili.common.utils.ResultUtil;
@ -9,7 +9,6 @@ import cn.lili.modules.distribution.service.DistributionOrderService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;