分销订单

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.utils.ResultUtil;
@ -13,7 +13,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
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.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.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.vo.ResultMessage;
@ -9,7 +9,6 @@ import cn.lili.modules.distribution.service.DistributionService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

View File

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

View File

@ -14,5 +14,8 @@ import org.apache.ibatis.annotations.Update;
public interface DistributionMapper extends BaseMapper<Distribution> {
@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 订单编号
*/
void payOrder(String orderSn);
void test(String orderSn);
/**
* 取消订单

View File

@ -80,6 +80,11 @@ public interface DistributionService extends IService<Distribution> {
* @param canRebate 修改金额
* @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.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -69,15 +68,17 @@ public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderM
//判断是否为分销订单如果为分销订单则获取分销佣金
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());
@ -86,14 +87,58 @@ public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderM
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,distributionSetting.getCashDay());
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
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
public void cancelOrder(String orderSn) {
this.update(new LambdaUpdateWrapper<DistributionOrder>().eq(DistributionOrder::getOrderSn, orderSn)
@ -126,7 +171,7 @@ public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderM
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
private MemberService memberService;
//分销员
@Autowired
private DistributionMapper distributionMapper;
//缓存
@Autowired
private Cache cache;
@ -175,8 +171,13 @@ public class DistributionServiceImpl extends ServiceImpl<DistributionMapper, Dis
}
@Override
public void updateCanRebate(Double canRebate, String distributionId) {
this.distributionMapper.updateCanRebate(canRebate,distributionId);
public void subCanRebate(Double canRebate, String 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.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.utils.ResultUtil;
@ -9,7 +9,6 @@ import cn.lili.modules.distribution.service.DistributionGoodsService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
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.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.vo.ResultMessage;
@ -8,7 +8,6 @@ import cn.lili.modules.distribution.service.DistributionOrderService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
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.utils.ResultUtil;
@ -14,7 +14,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
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.utils.ResultUtil;
@ -9,7 +9,6 @@ import cn.lili.modules.distribution.service.DistributionOrderService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;