现金、积分分润逻辑实现
This commit is contained in:
@@ -41,7 +41,7 @@ public class OrderResult {
|
||||
@ApiModelProperty(value = "支付时间")
|
||||
private Date paymentTime;
|
||||
|
||||
@ApiModelProperty(value = "支付类型: 1->支付宝;2->微信;3->线下支付;4->积分支付")
|
||||
@ApiModelProperty(value = "支付类型: 1->支付宝;2->微信;3->线下支付;4->积分支付; 5->余额支付")
|
||||
private Integer payType;
|
||||
|
||||
@ApiModelProperty(value = "支付类型名称")
|
||||
|
||||
@@ -9,7 +9,6 @@ import com.buy507.mall.model.UmsMember;
|
||||
public interface MemberCommissionService {
|
||||
/**
|
||||
* 开始冻结金额到账,等级升级
|
||||
* @param order
|
||||
* @param currentMember
|
||||
*/
|
||||
void computeCommission(UmsMember currentMember);
|
||||
|
||||
@@ -0,0 +1,403 @@
|
||||
package com.buy507.mall.portal.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.buy507.mall.mapper.*;
|
||||
import com.buy507.mall.model.*;
|
||||
import com.buy507.mall.portal.service.MemberCommissionService;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.*;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class MemberPointsSplitProfitService{
|
||||
|
||||
@Resource
|
||||
private UmsMemberMapper memberMapper;
|
||||
/**
|
||||
* 会员分成流水
|
||||
*/
|
||||
@Resource
|
||||
private UmsMemberAccountTransactionMapper umsMemberAccountTransactionMapper;
|
||||
|
||||
/**
|
||||
* 会员上下关系
|
||||
*/
|
||||
@Resource
|
||||
private UmsMemberRelationTreeMapper umsMemberRelationTreeMapper;
|
||||
/**
|
||||
* 会员等级
|
||||
*/
|
||||
@Resource
|
||||
private UmsMemberLevelMapper umsMemberLevelMapper;
|
||||
|
||||
@Autowired
|
||||
private OmsOrderMapper orderMapper;
|
||||
|
||||
@Value("${becomeVipAmount}")
|
||||
private String becomeVipAmount;
|
||||
|
||||
@Value("${sameLevelProfit}")
|
||||
private String sameLevelProfit;
|
||||
|
||||
/**
|
||||
* 积分分润入口
|
||||
* @param order
|
||||
*/
|
||||
public void pointsSplit(OmsOrder order) {
|
||||
|
||||
UmsMember member = memberMapper.selectByPrimaryKey(order.getMemberId());
|
||||
//找到上级会员
|
||||
UmsMember higherLevelMember = this.findInOrderQueueMember(member.getId());;
|
||||
if(higherLevelMember != null){
|
||||
//进行订单分润
|
||||
this.splitProfitFroMember(member, higherLevelMember, order);
|
||||
}
|
||||
//计算会员等级
|
||||
UmsMemberRelationTree relationTree = this.getUpLevelRelationTreeById(member.getId());
|
||||
if(relationTree == null){
|
||||
return;
|
||||
}
|
||||
//上级为空或者为普通用户
|
||||
UmsMember higherMember = memberMapper.selectByPrimaryKey(relationTree.getHigherLevelId());
|
||||
if(higherMember == null && higherMember.getMemberLevel().equals(MemberLevel.Member)){
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 为订单上级进行分润
|
||||
* @param member
|
||||
* @param higherLevelMember
|
||||
* @param order
|
||||
*/
|
||||
private void splitProfitFroMember(UmsMember member, UmsMember higherLevelMember, OmsOrder order) {
|
||||
|
||||
//新订单及直属上级分润,返回的分润金额
|
||||
Integer revenuePoints = this.newMemberSplitProfit(member, higherLevelMember, order);
|
||||
|
||||
UmsMember moreHigherMember = new UmsMember();
|
||||
//如果上级是vip会员
|
||||
if(higherLevelMember.getMemberLevel().equals(MemberLevel.Consumer)) {
|
||||
moreHigherMember = this.findNextHigherLevelMemberByType(higherLevelMember.getId(), MemberLevel.Consumer);
|
||||
}
|
||||
//没有更高的上级退出分润
|
||||
if(moreHigherMember == null){
|
||||
return;
|
||||
}
|
||||
//给三个级别代理分润
|
||||
this.twoLevelSplitProfit(higherLevelMember, moreHigherMember, order, revenuePoints);
|
||||
|
||||
this.threeLevelSplitProfit(higherLevelMember, moreHigherMember, order, revenuePoints);
|
||||
|
||||
this.fourLevelSplitProfit(higherLevelMember, moreHigherMember, order, revenuePoints);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询到下一个级别的上级会员
|
||||
* @param id
|
||||
* @param consumer
|
||||
* @return
|
||||
*/
|
||||
private UmsMember findNextHigherLevelMemberByType(Long id, MemberLevel consumer) {
|
||||
//找到上级
|
||||
UmsMember moreHigherMember = this.findInOrderQueueMember(id);
|
||||
if(moreHigherMember == null){
|
||||
return null;
|
||||
}
|
||||
while (moreHigherMember != null){
|
||||
if(moreHigherMember.getMemberLevel().getValue() > consumer.getValue()){
|
||||
return moreHigherMember;
|
||||
}
|
||||
moreHigherMember = this.findInOrderQueueMember(moreHigherMember.getId());
|
||||
if(moreHigherMember == null){
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return moreHigherMember;
|
||||
}
|
||||
|
||||
/**
|
||||
* 寻找上级
|
||||
*/
|
||||
private UmsMember findInOrderQueueMember(Long id) {
|
||||
UmsMemberRelationTree relationTree = this.getUpLevelRelationTreeById(id);
|
||||
if(relationTree == null){
|
||||
return null;
|
||||
}
|
||||
UmsMember higherMember = memberMapper.selectByPrimaryKey(relationTree.getHigherLevelId());
|
||||
if(higherMember == null){
|
||||
return null;
|
||||
}
|
||||
return higherMember;
|
||||
}
|
||||
|
||||
/**
|
||||
* 会员分润
|
||||
* @param currentMember
|
||||
* @param higherLevelMember
|
||||
* @param order
|
||||
*/
|
||||
private Integer newMemberSplitProfit(UmsMember currentMember, UmsMember higherLevelMember, OmsOrder order){
|
||||
|
||||
//直推会员分润比例
|
||||
String ratio = "0."+ 3;
|
||||
|
||||
Integer revenuePoints = order.getPayAmount().multiply(new BigDecimal(ratio)).intValue();
|
||||
UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction();
|
||||
accountTransaction.setMemberId(higherLevelMember.getId());
|
||||
accountTransaction.setOrderId(order.getId());
|
||||
accountTransaction.setRemarks("直推VIP积分分润");
|
||||
accountTransaction.setTransactionState(UmsMemberAccountTransaction.TRANSACTION_STATE_YES);
|
||||
accountTransaction.setRevenuePoints(revenuePoints);
|
||||
accountTransaction.setTransferPaymentTime(DateUtil.date());
|
||||
umsMemberAccountTransactionMapper.insert(accountTransaction);
|
||||
log.info("new Account Transaction {}" , JSONUtil.toJsonStr(accountTransaction));
|
||||
|
||||
//会员积分到账
|
||||
higherLevelMember.setIntegration(revenuePoints + (higherLevelMember.getIntegration() == null ? 0 : higherLevelMember.getIntegration()));
|
||||
memberMapper.updateByPrimaryKey(higherLevelMember);
|
||||
|
||||
|
||||
return revenuePoints;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 二级店长分润
|
||||
* @param lowerMember
|
||||
* @param higherMember
|
||||
* @param order
|
||||
*/
|
||||
private void twoLevelSplitProfit(UmsMember lowerMember, UmsMember higherMember, OmsOrder order,
|
||||
Integer revenuePoints){
|
||||
//先判断是否为店长
|
||||
if(higherMember.getMemberLevel().equals(MemberLevel.Partner)){
|
||||
//上下级关系
|
||||
if(higherMember.getMemberLevel().getValue() > lowerMember.getMemberLevel().getValue()){
|
||||
|
||||
UmsMemberLevel lowerLevel = umsMemberLevelMapper.selectByPrimaryKey(lowerMember.getMemberLevelId());
|
||||
UmsMemberLevel higherLevel = umsMemberLevelMapper.selectByPrimaryKey(higherMember.getMemberLevelId());
|
||||
|
||||
Integer profitRatio = 0;
|
||||
if(higherLevel.getPointsRatio() != null && lowerLevel.getPointsRatio() != null){
|
||||
profitRatio = higherLevel.getPointsRatio() - lowerLevel.getPointsRatio();
|
||||
}
|
||||
String ratioStr = profitRatio < 10 ? "0.0" + profitRatio : "0."+profitRatio;
|
||||
//计算上级的分积分分润
|
||||
Integer pointsCommission = order.getPayAmount().multiply(new BigDecimal(ratioStr)).intValue();
|
||||
|
||||
UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction();
|
||||
accountTransaction.setCommissionRatio(profitRatio);
|
||||
accountTransaction.setMemberId(higherMember.getId());
|
||||
accountTransaction.setOrderId(order.getId());
|
||||
accountTransaction.setRemarks("二级店长上级积分分润");
|
||||
accountTransaction.setRevenuePoints(pointsCommission);
|
||||
//即时到账
|
||||
accountTransaction.setTransferPaymentTime(DateUtil.date());
|
||||
umsMemberAccountTransactionMapper.insert(accountTransaction);
|
||||
|
||||
//会员金额到账
|
||||
higherMember.setIntegration(pointsCommission + (higherMember.getIntegration() == null ? 0 : higherMember.getIntegration()));
|
||||
memberMapper.updateByPrimaryKeySelective(higherMember);
|
||||
|
||||
//查询上级
|
||||
UmsMember next = this.findInOrderQueueMember(higherMember.getId());
|
||||
|
||||
if(next != null){
|
||||
if (next.getMemberLevel().equals(higherMember.getMemberLevel())){
|
||||
twoLevelSplitProfit(higherMember, next, order, pointsCommission);
|
||||
}else {
|
||||
threeLevelSplitProfit(higherMember, next, order, pointsCommission);
|
||||
fourLevelSplitProfit(higherMember, next, order, pointsCommission);
|
||||
}
|
||||
}
|
||||
//平级关系
|
||||
}else if(lowerMember.getMemberLevel().equals(lowerMember.getMemberLevel())){
|
||||
Integer pointsCommission = revenuePoints * (new BigDecimal("0."+sameLevelProfit)).intValue();
|
||||
|
||||
UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction();
|
||||
accountTransaction.setCommissionRatio(Integer.valueOf(sameLevelProfit));
|
||||
accountTransaction.setMemberId(higherMember.getId());
|
||||
accountTransaction.setOrderId(order.getId());
|
||||
accountTransaction.setRemarks("二级店长平级积分分润");
|
||||
accountTransaction.setRevenuePoints(pointsCommission);
|
||||
//即时到账
|
||||
accountTransaction.setTransferPaymentTime(DateUtil.date());
|
||||
umsMemberAccountTransactionMapper.insert(accountTransaction);
|
||||
|
||||
//会员金额到账
|
||||
higherMember.setIntegration(pointsCommission + (higherMember.getIntegration() == null ? 0 : higherMember.getIntegration()));
|
||||
memberMapper.updateByPrimaryKeySelective(higherMember);
|
||||
|
||||
//查询比当前级别大的会员
|
||||
UmsMember next = this.findNextHigherLevelMemberByType(higherMember.getId(), MemberLevel.Partner);
|
||||
if(next != null){
|
||||
threeLevelSplitProfit(higherMember, next, order, pointsCommission);
|
||||
fourLevelSplitProfit(higherMember, next, order, pointsCommission);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 三级代理分润
|
||||
* @param lowerMember
|
||||
* @param higherMember
|
||||
* @param order
|
||||
*/
|
||||
private void threeLevelSplitProfit(UmsMember lowerMember, UmsMember higherMember, OmsOrder order, Integer revenuePoints){
|
||||
if(higherMember.getMemberLevel().equals(MemberLevel.Diamond)){
|
||||
//上下级关系
|
||||
if(higherMember.getMemberLevel().getValue() > lowerMember.getMemberLevel().getValue()){
|
||||
|
||||
UmsMemberLevel lowerLevel = umsMemberLevelMapper.selectByPrimaryKey(lowerMember.getMemberLevelId());
|
||||
UmsMemberLevel higherLevel = umsMemberLevelMapper.selectByPrimaryKey(higherMember.getMemberLevelId());
|
||||
|
||||
Integer profitRatio = 0;
|
||||
if(higherLevel.getPointsRatio() != null && lowerLevel.getPointsRatio() != null){
|
||||
profitRatio = higherLevel.getPointsRatio() - lowerLevel.getPointsRatio();
|
||||
}
|
||||
|
||||
String ratioStr = profitRatio < 10 ? "0.0" + profitRatio : "0."+profitRatio;
|
||||
//计算上级的分积分分润
|
||||
Integer pointsCommission = order.getPayAmount().multiply(new BigDecimal(ratioStr)).intValue();
|
||||
UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction();
|
||||
accountTransaction.setCommissionRatio(profitRatio);
|
||||
accountTransaction.setMemberId(higherMember.getId());
|
||||
accountTransaction.setOrderId(order.getId());
|
||||
accountTransaction.setRemarks("三级代理上级积分分润");
|
||||
accountTransaction.setRevenuePoints(pointsCommission);
|
||||
accountTransaction.setTransferPaymentTime(DateUtil.date());
|
||||
umsMemberAccountTransactionMapper.insert(accountTransaction);
|
||||
|
||||
//会员金额到账
|
||||
higherMember.setIntegration(pointsCommission + (higherMember.getIntegration() == null ? 0 : higherMember.getIntegration()));
|
||||
memberMapper.updateByPrimaryKeySelective(higherMember);
|
||||
|
||||
//查询上级
|
||||
UmsMember next = this.findInOrderQueueMember(higherMember.getId());
|
||||
|
||||
if(next != null){
|
||||
if (next.getMemberLevel().equals(higherMember.getMemberLevel())){
|
||||
threeLevelSplitProfit(higherMember, next, order, pointsCommission);
|
||||
}else {
|
||||
fourLevelSplitProfit(higherMember, next, order, pointsCommission);
|
||||
}
|
||||
}
|
||||
//平级关系
|
||||
}else if(lowerMember.getMemberLevel().equals(lowerMember.getMemberLevel())){
|
||||
Integer pointsCommission = revenuePoints * (new BigDecimal("0."+sameLevelProfit)).intValue();
|
||||
UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction();
|
||||
accountTransaction.setCommissionRatio(Integer.valueOf(sameLevelProfit));
|
||||
accountTransaction.setMemberId(higherMember.getId());
|
||||
accountTransaction.setOrderId(order.getId());
|
||||
accountTransaction.setRemarks("三级代理平级积分分润");
|
||||
accountTransaction.setRevenuePoints(pointsCommission);
|
||||
//24小时后到账
|
||||
accountTransaction.setTransferPaymentTime(DateUtil.tomorrow());
|
||||
umsMemberAccountTransactionMapper.insert(accountTransaction);
|
||||
|
||||
//会员金额到账
|
||||
higherMember.setIntegration(pointsCommission + (higherMember.getIntegration() == null ? 0 : higherMember.getIntegration()));
|
||||
memberMapper.updateByPrimaryKeySelective(higherMember);
|
||||
|
||||
UmsMember next = this.findNextHigherLevelMemberByType(higherMember.getId(), MemberLevel.Diamond);
|
||||
if(next != null){
|
||||
fourLevelSplitProfit(higherMember, next, order, pointsCommission);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* 四级市代分润
|
||||
* @param lowerMember
|
||||
* @param higherMember
|
||||
* @param order
|
||||
*/
|
||||
private void fourLevelSplitProfit(UmsMember lowerMember, UmsMember higherMember, OmsOrder order, Integer revenuePoints){
|
||||
if(higherMember.getMemberLevel().equals(MemberLevel.OneDiamond)){
|
||||
//上下级关系
|
||||
if(higherMember.getMemberLevel().getValue() > lowerMember.getMemberLevel().getValue()){
|
||||
|
||||
UmsMemberLevel lowerLevel = umsMemberLevelMapper.selectByPrimaryKey(lowerMember.getMemberLevelId());
|
||||
UmsMemberLevel higherLevel = umsMemberLevelMapper.selectByPrimaryKey(higherMember.getMemberLevelId());
|
||||
|
||||
Integer profitRatio = 0;
|
||||
if(higherLevel.getPointsRatio() != null && lowerLevel.getPointsRatio() != null){
|
||||
profitRatio = higherLevel.getPointsRatio() - lowerLevel.getPointsRatio();
|
||||
}
|
||||
String ratioStr = profitRatio < 10 ? "0.0" + profitRatio : "0."+profitRatio;
|
||||
//计算上级的分积分分润
|
||||
Integer pointsCommission = order.getPayAmount().multiply(new BigDecimal(ratioStr)).intValue();
|
||||
UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction();
|
||||
accountTransaction.setCommissionRatio(profitRatio);
|
||||
accountTransaction.setMemberId(higherMember.getId());
|
||||
accountTransaction.setOrderId(order.getId());
|
||||
accountTransaction.setRemarks("四级市代理上级积分分润");
|
||||
accountTransaction.setRevenuePoints(pointsCommission);
|
||||
//24小时后到账
|
||||
accountTransaction.setTransferPaymentTime(DateUtil.date());
|
||||
umsMemberAccountTransactionMapper.insert(accountTransaction);
|
||||
|
||||
//会员金额到账
|
||||
higherMember.setIntegration(pointsCommission + (higherMember.getIntegration() == null ? 0 : higherMember.getIntegration()));
|
||||
memberMapper.updateByPrimaryKeySelective(higherMember);
|
||||
|
||||
//查询上级
|
||||
UmsMember next = this.findInOrderQueueMember(higherMember.getId());
|
||||
|
||||
if(next != null && next.getMemberLevel().equals(higherMember.getMemberLevel())){
|
||||
fourLevelSplitProfit(higherMember, next, order, pointsCommission);
|
||||
}
|
||||
//平级关系
|
||||
}else if(lowerMember.getMemberLevel().equals(lowerMember.getMemberLevel())){
|
||||
Integer pointsCommission = revenuePoints * (new BigDecimal("0."+sameLevelProfit)).intValue();
|
||||
UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction();
|
||||
accountTransaction.setCommissionRatio(Integer.valueOf(sameLevelProfit));
|
||||
accountTransaction.setMemberId(higherMember.getId());
|
||||
accountTransaction.setOrderId(order.getId());
|
||||
accountTransaction.setRemarks("四级市代理平级积分分润");
|
||||
accountTransaction.setRevenuePoints(pointsCommission);
|
||||
|
||||
//会员金额到账
|
||||
higherMember.setIntegration(pointsCommission + (higherMember.getIntegration() == null ? 0 : higherMember.getIntegration()));
|
||||
memberMapper.updateByPrimaryKeySelective(higherMember);
|
||||
|
||||
//24小时后到账
|
||||
accountTransaction.setTransferPaymentTime(DateUtil.tomorrow());
|
||||
umsMemberAccountTransactionMapper.insert(accountTransaction);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会员的上级关系
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
private UmsMemberRelationTree getUpLevelRelationTreeById(Long id) {
|
||||
UmsMemberRelationTree relationTree = null;
|
||||
UmsMemberRelationTreeExample relationTreeExample = new UmsMemberRelationTreeExample();
|
||||
relationTreeExample.createCriteria().andMemberIdEqualTo(id);
|
||||
List<UmsMemberRelationTree> relationTreeList = umsMemberRelationTreeMapper.selectByExample(relationTreeExample);
|
||||
if(!relationTreeList.isEmpty()) {
|
||||
//找到上级关系
|
||||
relationTree = relationTreeList.get(0);
|
||||
}
|
||||
return relationTree;
|
||||
}
|
||||
}
|
||||
@@ -63,42 +63,6 @@ public class MemberSplitProfitService{
|
||||
|
||||
public void updateOderAndMemberInfo(OmsOrder order) {
|
||||
|
||||
/*UmsMember member = memberMapper.selectByPrimaryKey(order.getMemberId());
|
||||
//找到上级会员
|
||||
UmsMember higherLevelMember = this.findInOrderQueueMember(member.getId());;
|
||||
*
|
||||
* 先验证该订单是否是五联单加速,如果不是则普通计算上级提成
|
||||
* 如果是提成,则全额给上级
|
||||
|
||||
|
||||
|
||||
boolean splitForFiveQueue = false; //是否加速完成
|
||||
//在此判断是否是首单新用户
|
||||
UmsMemberOrderQueueExample orderQueueExample1 = new UmsMemberOrderQueueExample();
|
||||
orderQueueExample1.createCriteria().andMemberIdEqualTo(order.getMemberId());
|
||||
long memberOrderCount = umsMemberOrderQueueMapper.countByExample(orderQueueExample1);
|
||||
if(memberOrderCount == 1){
|
||||
splitForFiveQueue = fiveQuickQueueBusiness(order, member, higherLevelMember);
|
||||
}
|
||||
|
||||
//未进行满5联单分润,开始进行普通分润流程
|
||||
if(!splitForFiveQueue && higherLevelMember != null){
|
||||
//进行订单分润
|
||||
this.splitProfitFroMember(member, higherLevelMember, order);
|
||||
}
|
||||
|
||||
//计算会员等级
|
||||
UmsMemberRelationTree relationTree = this.getUpLevelRelationTreeById(member.getId());
|
||||
if(relationTree == null){
|
||||
return;
|
||||
}
|
||||
//上级为空或者为普通用户
|
||||
UmsMember higherMember = memberMapper.selectByPrimaryKey(relationTree.getHigherLevelId());
|
||||
if(higherMember == null && higherMember.getMemberLevel().equals(MemberLevel.Member)){
|
||||
return;
|
||||
}
|
||||
memberCommissionService.computeCommission(higherMember);*/
|
||||
|
||||
UmsMember member = memberMapper.selectByPrimaryKey(order.getMemberId());
|
||||
//找到上级会员
|
||||
UmsMember higherLevelMember = this.findInOrderQueueMember(member.getId());;
|
||||
@@ -280,10 +244,6 @@ public class MemberSplitProfitService{
|
||||
if(higherQueue != null){
|
||||
return splitMark;
|
||||
}
|
||||
//添加帮助加速的订单号
|
||||
/*UmsMemberOrderQueue orderQ = umsMemberOrderQueueMapper.selectByExample(orderQueueExample);
|
||||
orderQ.setAccelerateOrderId(higherQueue.getOrderId());
|
||||
umsMemberOrderQueueMapper.updateByPrimaryKeySelective(orderQ);*/
|
||||
|
||||
//查找上级还有多少下级(查看同级别的用户)
|
||||
UmsMemberRelationTreeExample umrtExample = new UmsMemberRelationTreeExample();
|
||||
@@ -431,16 +391,6 @@ public class MemberSplitProfitService{
|
||||
umsMemberOrderQueueMapper.insert(record);
|
||||
log.info("new Order Queue {}" , JSONUtil.toJsonStr(record));
|
||||
|
||||
/*UmsMemberLevel higherLevel = umsMemberLevelMapper.selectByPrimaryKey(higherLevelMember.getMemberLevelId());
|
||||
//直推会员分润
|
||||
String ratio = "0."+higherLevel.getCommissionRatio();
|
||||
BigDecimal revenueAmount = order.getPayAmount().multiply(new BigDecimal(ratio)).setScale(2, RoundingMode.HALF_UP);
|
||||
UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction();
|
||||
accountTransaction.setCommissionRatio(higherLevel.getCommissionRatio());*/
|
||||
|
||||
//UmsMemberLevel higherLevel = umsMemberLevelMapper.selectByPrimaryKey(higherLevelMember.getMemberLevelId());
|
||||
//直推会员分润
|
||||
//String ratio = "0."+higherLevel.getCommissionRatio(); mcoo Integer()
|
||||
String ratio = "0."+ 2;
|
||||
BigDecimal revenueAmount = order.getPayAmount().multiply(new BigDecimal(ratio)).setScale(2, RoundingMode.HALF_UP);
|
||||
UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction();
|
||||
@@ -688,14 +638,6 @@ public class MemberSplitProfitService{
|
||||
if(higherMember == null){
|
||||
return null;
|
||||
}
|
||||
/* if(higherMember.getOrderStatus() == 0){
|
||||
UmsMember nextMember = this.findInOrderQueueMember(higherMember.getId());
|
||||
if(nextMember != null){
|
||||
return nextMember;
|
||||
}
|
||||
}else if(higherMember.getOrderStatus() == 1){
|
||||
return higherMember;
|
||||
}*/
|
||||
if( higherMember.getOrderStatus() == 1){
|
||||
return higherMember;
|
||||
}
|
||||
@@ -715,7 +657,4 @@ public class MemberSplitProfitService{
|
||||
}
|
||||
return relationTree;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -144,6 +144,15 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
||||
@Autowired
|
||||
private UmsDevelopmentFundMapper umsDevelopmentFundMapper;
|
||||
|
||||
@Autowired
|
||||
private UmsMemberRelationTreeMapper memberRelationTreeMapper;
|
||||
|
||||
@Autowired
|
||||
private UmsMemberLevelMapper memberLevelMapper;
|
||||
|
||||
@Autowired
|
||||
private MemberPointsSplitProfitService memberPointsSplitProfitService;
|
||||
|
||||
|
||||
@Value("${kuaidi100.url}")
|
||||
private String KUAIDI100_URL;
|
||||
@@ -1830,6 +1839,8 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
||||
if (list != null && !list.isEmpty()) {
|
||||
OmsOrder order = list.get(0);
|
||||
|
||||
// 获取下单用户信息
|
||||
UmsMember member = memberMapper.selectByPrimaryKey(order.getMemberId());
|
||||
//获取订单实付金额
|
||||
BigDecimal payAmount = order.getPayAmount();
|
||||
//获取商品信息
|
||||
@@ -1844,8 +1855,6 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
||||
if (pmsProduct.getPointsAreaStatus() == 1) {
|
||||
//奖励积分是购买的价格的100%
|
||||
int rewardPoints = order.getPayAmount().intValue();
|
||||
// 获取用户信息
|
||||
UmsMember member = memberMapper.selectByPrimaryKey(order.getMemberId());
|
||||
// 增加用户积分
|
||||
if (member != null) {
|
||||
|
||||
@@ -1860,6 +1869,9 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
||||
//增加基金积分
|
||||
int fundPoints = (int)(rewardPoints * 0.05);
|
||||
umsDevelopmentFundMapper.updatePoints(fundPoints);
|
||||
|
||||
//积分分润
|
||||
memberPointsSplitProfitService.pointsSplit(order);
|
||||
}
|
||||
}
|
||||
//订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单
|
||||
@@ -1877,12 +1889,8 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
||||
order.setPaymentTime(date);
|
||||
orderMapper.updateByPrimaryKey(order);
|
||||
|
||||
|
||||
/**
|
||||
* 会员分润,升级逻辑
|
||||
*/
|
||||
//会员现金分润,升级逻辑
|
||||
memberSplitProfitService.updateOderAndMemberInfo(order);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user