## 复购配送收益;复购分公司级差收益;
This commit is contained in:
parent
50b9786a33
commit
22963fd03c
|
@ -5,6 +5,7 @@ import com.hzs.common.domain.member.base.CuMember;
|
||||||
import com.hzs.common.domain.member.base.CuMemberRegister;
|
import com.hzs.common.domain.member.base.CuMemberRegister;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
|
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||||
|
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
import com.hzs.common.domain.sale.order.SaOrder;
|
import com.hzs.common.domain.sale.order.SaOrder;
|
||||||
import com.hzs.member.account.dto.BusinessCommissionDTO;
|
import com.hzs.member.account.dto.BusinessCommissionDTO;
|
||||||
|
@ -14,6 +15,7 @@ import com.hzs.member.base.dto.ZeroElementRevokeDTO;
|
||||||
import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam;
|
import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -381,4 +383,12 @@ public interface IMemberServiceApi {
|
||||||
*/
|
*/
|
||||||
R<?> otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag);
|
R<?> otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效区域列表
|
||||||
|
*
|
||||||
|
* @param queryDate
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
R<Map<Integer, CuMemberRetailRegion>> listEffectiveRegion(Date queryDate);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,14 +10,11 @@ import com.hzs.bonus.bonus.vo.MemberBonusDetailSerVO;
|
||||||
import com.hzs.common.core.annotation.AccessPermissions;
|
import com.hzs.common.core.annotation.AccessPermissions;
|
||||||
import com.hzs.common.core.annotation.ColumnAuthority;
|
import com.hzs.common.core.annotation.ColumnAuthority;
|
||||||
import com.hzs.common.core.annotation.Log;
|
import com.hzs.common.core.annotation.Log;
|
||||||
import com.hzs.common.core.constant.BonusFieldConstants;
|
|
||||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||||
import com.hzs.common.core.enums.*;
|
import com.hzs.common.core.enums.*;
|
||||||
import com.hzs.common.core.utils.ComputeUtil;
|
|
||||||
import com.hzs.common.core.utils.DateUtils;
|
import com.hzs.common.core.utils.DateUtils;
|
||||||
import com.hzs.common.core.utils.StringUtils;
|
import com.hzs.common.core.utils.StringUtils;
|
||||||
import com.hzs.common.core.utils.poi.ExcelUtil;
|
import com.hzs.common.core.utils.poi.ExcelUtil;
|
||||||
import com.hzs.common.core.utils.reflect.ReflectUtils;
|
|
||||||
import com.hzs.common.core.web.controller.BaseController;
|
import com.hzs.common.core.web.controller.BaseController;
|
||||||
import com.hzs.common.core.web.page.TableDataInfo;
|
import com.hzs.common.core.web.page.TableDataInfo;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberBonusExt;
|
import com.hzs.common.domain.member.ext.CuMemberBonusExt;
|
||||||
|
@ -46,14 +43,14 @@ import java.util.stream.Collectors;
|
||||||
public class CuMemberBonusController extends BaseController {
|
public class CuMemberBonusController extends BaseController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberBonusService cuMemberBonusService;
|
private ICuMemberBonusService iCuMemberBonusService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ITransactionCommonService transactionCommonService;
|
private ITransactionCommonService iTransactionCommonService;
|
||||||
|
|
||||||
@DubboReference
|
@DubboReference
|
||||||
IUserServiceApi userServiceApi;
|
IUserServiceApi iUserServiceApi;
|
||||||
@DubboReference
|
@DubboReference
|
||||||
IMenuColumnServiceApi menuColumnServiceApi;
|
IMenuColumnServiceApi iMenuColumnServiceApi;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询会员某个时间段内的奖金汇总
|
* 分页查询会员某个时间段内的奖金汇总
|
||||||
|
@ -73,7 +70,7 @@ public class CuMemberBonusController extends BaseController {
|
||||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||||
packageBonusParam(bonusParam);
|
packageBonusParam(bonusParam);
|
||||||
startPage();
|
startPage();
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam);
|
||||||
TableDataInfo dataTable = getDataTable(cuMemberBonusList);
|
TableDataInfo dataTable = getDataTable(cuMemberBonusList);
|
||||||
dataTable.setRows(getBonusTotalVoS(cuMemberBonusList));
|
dataTable.setRows(getBonusTotalVoS(cuMemberBonusList));
|
||||||
return dataTable;
|
return dataTable;
|
||||||
|
@ -94,9 +91,9 @@ public class CuMemberBonusController extends BaseController {
|
||||||
bonusParam.setPkVertexList(pkVertex);
|
bonusParam.setPkVertexList(pkVertex);
|
||||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||||
packageBonusParam(bonusParam);
|
packageBonusParam(bonusParam);
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam);
|
||||||
List<BonusTotalVO> bonusTotalVoList = getBonusTotalVoS(cuMemberBonusList);
|
List<BonusTotalVO> bonusTotalVoList = getBonusTotalVoS(cuMemberBonusList);
|
||||||
Map<String, Integer> sourceBonusList = menuColumnServiceApi.queryMenuColumn("totalBonus", SecurityUtils.getUserId()).getData();
|
Map<String, Integer> sourceBonusList = iMenuColumnServiceApi.queryMenuColumn("totalBonus", SecurityUtils.getUserId()).getData();
|
||||||
ExcelUtil<BonusTotalVO> util = new ExcelUtil<>(BonusTotalVO.class, sourceBonusList);
|
ExcelUtil<BonusTotalVO> util = new ExcelUtil<>(BonusTotalVO.class, sourceBonusList);
|
||||||
util.exportExcel(response, bonusTotalVoList, "奖金汇总导出");
|
util.exportExcel(response, bonusTotalVoList, "奖金汇总导出");
|
||||||
}
|
}
|
||||||
|
@ -105,9 +102,6 @@ public class CuMemberBonusController extends BaseController {
|
||||||
List<BonusTotalVO> totalVoList = new ArrayList<>();
|
List<BonusTotalVO> totalVoList = new ArrayList<>();
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||||
BonusTotalVO bonusTotalVO = BeanUtil.copyProperties(cuMemberBonus, BonusTotalVO.class);
|
BonusTotalVO bonusTotalVO = BeanUtil.copyProperties(cuMemberBonus, BonusTotalVO.class);
|
||||||
for (String key : CuMemberBonusVO.INCOME_ARRAY) {
|
|
||||||
ReflectUtils.invokeSetter(bonusTotalVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonus, key), cuMemberBonus.getOutExchangeRate()));
|
|
||||||
}
|
|
||||||
totalVoList.add(bonusTotalVO);
|
totalVoList.add(bonusTotalVO);
|
||||||
});
|
});
|
||||||
return totalVoList;
|
return totalVoList;
|
||||||
|
@ -136,8 +130,8 @@ public class CuMemberBonusController extends BaseController {
|
||||||
}
|
}
|
||||||
packageBonusParam(bonusParam);
|
packageBonusParam(bonusParam);
|
||||||
startPage();
|
startPage();
|
||||||
List<CuMemberBonusExt> cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusExtList = iCuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
|
||||||
CuMemberBonusExt cmb = cuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam);
|
CuMemberBonusExt cmb = iCuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam);
|
||||||
if (cmb != null) {
|
if (cmb != null) {
|
||||||
cmb.setMemberCode("合计");
|
cmb.setMemberCode("合计");
|
||||||
cuMemberBonusExtList.add(cmb);
|
cuMemberBonusExtList.add(cmb);
|
||||||
|
@ -163,18 +157,18 @@ public class CuMemberBonusController extends BaseController {
|
||||||
bonusParam.setPkVertexList(pkVertex);
|
bonusParam.setPkVertexList(pkVertex);
|
||||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||||
packageBonusParam(bonusParam);
|
packageBonusParam(bonusParam);
|
||||||
List<CuMemberBonusExt> cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusExtList = iCuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
|
||||||
CuMemberBonusExt cuMemberBonusExt = cuMemberBonusService.initCuMemberBonus();
|
CuMemberBonusExt cuMemberBonusExt = iCuMemberBonusService.initCuMemberBonus();
|
||||||
cuMemberBonusExt.setMemberCode("小计:");
|
cuMemberBonusExt.setMemberCode("合计:");
|
||||||
if (CollectionUtil.isNotEmpty(cuMemberBonusExtList)) {
|
if (CollectionUtil.isNotEmpty(cuMemberBonusExtList)) {
|
||||||
cuMemberBonusExt.setOutExchangeRate(cuMemberBonusExtList.get(0).getOutExchangeRate());
|
cuMemberBonusExt.setOutExchangeRate(cuMemberBonusExtList.get(0).getOutExchangeRate());
|
||||||
for (CuMemberBonusExt memberBonusExt : cuMemberBonusExtList) {
|
for (CuMemberBonusExt memberBonusExt : cuMemberBonusExtList) {
|
||||||
cuMemberBonusService.calculateBonusTotal(cuMemberBonusExt, memberBonusExt);
|
iCuMemberBonusService.calculateBonusTotal(cuMemberBonusExt, memberBonusExt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cuMemberBonusExtList.add(cuMemberBonusExt);
|
cuMemberBonusExtList.add(cuMemberBonusExt);
|
||||||
List<CuMemberBonusVO> cuMemberBonusVoList = getBonusDetail(cuMemberBonusExtList);
|
List<CuMemberBonusVO> cuMemberBonusVoList = getBonusDetail(cuMemberBonusExtList);
|
||||||
Map<String, Integer> bonusDetail = menuColumnServiceApi.queryMenuColumn("BonusDetail", SecurityUtils.getUserId()).getData();
|
Map<String, Integer> bonusDetail = iMenuColumnServiceApi.queryMenuColumn("BonusDetail", SecurityUtils.getUserId()).getData();
|
||||||
ExcelUtil<CuMemberBonusVO> util = new ExcelUtil<>(CuMemberBonusVO.class, bonusDetail);
|
ExcelUtil<CuMemberBonusVO> util = new ExcelUtil<>(CuMemberBonusVO.class, bonusDetail);
|
||||||
util.exportExcel(response, cuMemberBonusVoList, "奖金明细导出");
|
util.exportExcel(response, cuMemberBonusVoList, "奖金明细导出");
|
||||||
}
|
}
|
||||||
|
@ -183,13 +177,8 @@ public class CuMemberBonusController extends BaseController {
|
||||||
List<CuMemberBonusVO> cuMemberBonusVoList = new ArrayList<>(cuMemberBonusExtList.size());
|
List<CuMemberBonusVO> cuMemberBonusVoList = new ArrayList<>(cuMemberBonusExtList.size());
|
||||||
for (CuMemberBonusExt cuMemberBonusExt : cuMemberBonusExtList) {
|
for (CuMemberBonusExt cuMemberBonusExt : cuMemberBonusExtList) {
|
||||||
CuMemberBonusVO cuMemberBonusVO = BeanUtil.copyProperties(cuMemberBonusExt, CuMemberBonusVO.class);
|
CuMemberBonusVO cuMemberBonusVO = BeanUtil.copyProperties(cuMemberBonusExt, CuMemberBonusVO.class);
|
||||||
|
|
||||||
cuMemberBonusVO.setMemberCode(cuMemberBonusExt.getMemberCode());
|
cuMemberBonusVO.setMemberCode(cuMemberBonusExt.getMemberCode());
|
||||||
cuMemberBonusVO.setMemberName(cuMemberBonusExt.getMemberName());
|
cuMemberBonusVO.setMemberName(cuMemberBonusExt.getMemberName());
|
||||||
|
|
||||||
for (String key : CuMemberBonusVO.INCOME_ARRAY) {
|
|
||||||
ReflectUtils.invokeSetter(cuMemberBonusVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonusExt, key), cuMemberBonusExt.getOutExchangeRate()));
|
|
||||||
}
|
|
||||||
cuMemberBonusVoList.add(cuMemberBonusVO);
|
cuMemberBonusVoList.add(cuMemberBonusVO);
|
||||||
}
|
}
|
||||||
return cuMemberBonusVoList;
|
return cuMemberBonusVoList;
|
||||||
|
@ -205,7 +194,7 @@ public class CuMemberBonusController extends BaseController {
|
||||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||||
packageBonusParam(bonusParam);
|
packageBonusParam(bonusParam);
|
||||||
startPage();
|
startPage();
|
||||||
return cuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam);
|
return iCuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -217,18 +206,14 @@ public class CuMemberBonusController extends BaseController {
|
||||||
public void exportBonusSource(HttpServletResponse response, BonusParam bonusParam) {
|
public void exportBonusSource(HttpServletResponse response, BonusParam bonusParam) {
|
||||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||||
packageBonusParam(bonusParam);
|
packageBonusParam(bonusParam);
|
||||||
TableDataInfo tableDataInfo = cuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam);
|
TableDataInfo tableDataInfo = iCuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam);
|
||||||
List<MemberBonusDetailSerVO> memberBonusDetailSerVOList = (List<MemberBonusDetailSerVO>) tableDataInfo.getRows();
|
List<MemberBonusDetailSerVO> memberBonusDetailSerVOList = (List<MemberBonusDetailSerVO>) tableDataInfo.getRows();
|
||||||
// 获取需要翻译的枚举翻译
|
// 获取需要翻译的枚举翻译
|
||||||
Map<String, String> transactionMap = transactionCommonService.exportEnumTransaction(EOrderType.values(), EBonusIncomeStatus.values());
|
Map<Integer, String> transactionLongMap = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD);
|
||||||
Map<Integer, String> transactionLongMap = transactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD);
|
|
||||||
for (MemberBonusDetailSerVO memberBonusDetailSerVO : memberBonusDetailSerVOList) {
|
for (MemberBonusDetailSerVO memberBonusDetailSerVO : memberBonusDetailSerVOList) {
|
||||||
if (transactionMap.containsKey(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType().toString())) {
|
memberBonusDetailSerVO.setOrderTypeVal(EOrderType.getLabelByValue(memberBonusDetailSerVO.getOrderType()));
|
||||||
memberBonusDetailSerVO.setOrderTypeVal(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType()));
|
memberBonusDetailSerVO.setIncomeStatusVal(EBonusIncomeStatus.getLabelByValue(memberBonusDetailSerVO.getIncomeStatus()));
|
||||||
}
|
|
||||||
if (transactionMap.containsKey(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus())) {
|
|
||||||
memberBonusDetailSerVO.setIncomeStatusVal(transactionMap.get(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus()));
|
|
||||||
}
|
|
||||||
if (transactionLongMap.containsKey(memberBonusDetailSerVO.getPkSettleGrade())) {
|
if (transactionLongMap.containsKey(memberBonusDetailSerVO.getPkSettleGrade())) {
|
||||||
memberBonusDetailSerVO.setPkSettleGradeVal(transactionLongMap.get(memberBonusDetailSerVO.getPkSettleGrade()));
|
memberBonusDetailSerVO.setPkSettleGradeVal(transactionLongMap.get(memberBonusDetailSerVO.getPkSettleGrade()));
|
||||||
}
|
}
|
||||||
|
@ -236,12 +221,12 @@ public class CuMemberBonusController extends BaseController {
|
||||||
memberBonusDetailSerVO.setPkAwardsVal(transactionLongMap.get(memberBonusDetailSerVO.getPkAwards()));
|
memberBonusDetailSerVO.setPkAwardsVal(transactionLongMap.get(memberBonusDetailSerVO.getPkAwards()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ExcelUtil<MemberBonusDetailSerVO> util = new ExcelUtil<>(MemberBonusDetailSerVO.class, menuColumnServiceApi.queryMenuColumn("sourceBonus", SecurityUtils.getUserId()).getData());
|
ExcelUtil<MemberBonusDetailSerVO> util = new ExcelUtil<>(MemberBonusDetailSerVO.class, iMenuColumnServiceApi.queryMenuColumn("sourceBonus", SecurityUtils.getUserId()).getData());
|
||||||
util.exportExcel(response, memberBonusDetailSerVOList, "奖金来源导出");
|
util.exportExcel(response, memberBonusDetailSerVOList, "奖金来源导出");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void packageBonusParam(BonusParam bonusParam) {
|
private void packageBonusParam(BonusParam bonusParam) {
|
||||||
UserAuthorityDTO userAuthorityDto = userServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData();
|
UserAuthorityDTO userAuthorityDto = iUserServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData();
|
||||||
bonusParam.setVertexList(userAuthorityDto.getUserVertexList());
|
bonusParam.setVertexList(userAuthorityDto.getUserVertexList());
|
||||||
bonusParam.setTeamList(userAuthorityDto.getUserTeamList());
|
bonusParam.setTeamList(userAuthorityDto.getUserTeamList());
|
||||||
bonusParam.setSystemType(SecurityUtils.getSystemType());
|
bonusParam.setSystemType(SecurityUtils.getSystemType());
|
||||||
|
|
|
@ -57,7 +57,7 @@ public abstract class BonusSettleHandle {
|
||||||
* 获得 复购级差收益的备注
|
* 获得 复购级差收益的备注
|
||||||
*
|
*
|
||||||
* @param saOrderExt 订单编号
|
* @param saOrderExt 订单编号
|
||||||
* @param cuMemberBonusRange 报单服务费
|
* @param cuMemberBonusRange
|
||||||
* @param sourceMemberRangeExt 提供奖金的人
|
* @param sourceMemberRangeExt 提供奖金的人
|
||||||
* @param targetMemberRangeExt 获得奖金的人
|
* @param targetMemberRangeExt 获得奖金的人
|
||||||
*/
|
*/
|
||||||
|
@ -70,6 +70,22 @@ public abstract class BonusSettleHandle {
|
||||||
cuMemberBonusRange.setRemark(remark);
|
cuMemberBonusRange.setRemark(remark);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得 复购配送收益的备注
|
||||||
|
*
|
||||||
|
* @param saOrderExt 订单编号
|
||||||
|
* @param cuMemberBonusDetail
|
||||||
|
* @param sourceMemberRangeExt 提供奖金的人
|
||||||
|
* @param targetMemberRangeExt 获得奖金的人
|
||||||
|
*/
|
||||||
|
protected void regionRepurRetailRemark(SaOrderExt saOrderExt, CuMemberBonusDetail cuMemberBonusDetail, CuMemberRetailRangeExt sourceMemberRangeExt,
|
||||||
|
CuMemberRetailRangeExt targetMemberRangeExt) {
|
||||||
|
String remark = String.format(BonusMsgConstants.REPUR_REGION, saOrderExt.getOrderCode(),
|
||||||
|
sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(),
|
||||||
|
targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName());
|
||||||
|
cuMemberBonusDetail.setRemark(remark);
|
||||||
|
}
|
||||||
|
|
||||||
protected CuMemberBonus getCuMemberBonus(Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
protected CuMemberBonus getCuMemberBonus(Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||||
Long pkMember, Integer incomeStatus, Integer pkCountry, Integer pkRate) {
|
Long pkMember, Integer incomeStatus, Integer pkCountry, Integer pkRate) {
|
||||||
if (cuMemberBonusMap.containsKey(pkMember)) {
|
if (cuMemberBonusMap.containsKey(pkMember)) {
|
||||||
|
|
|
@ -15,9 +15,12 @@ import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||||
import com.hzs.common.domain.member.bonus.*;
|
import com.hzs.common.domain.member.bonus.*;
|
||||||
import com.hzs.common.domain.member.detail.CuMemberLevel;
|
import com.hzs.common.domain.member.detail.CuMemberLevel;
|
||||||
import com.hzs.common.domain.member.detail.CuMemberServiceLog;
|
import com.hzs.common.domain.member.detail.CuMemberServiceLog;
|
||||||
|
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
|
import com.hzs.common.domain.sale.ext.SaOrderWaresExt;
|
||||||
import com.hzs.common.domain.sale.order.SaOrder;
|
import com.hzs.common.domain.sale.order.SaOrder;
|
||||||
import com.hzs.common.domain.system.config.BdGrade;
|
import com.hzs.common.domain.system.config.BdGrade;
|
||||||
|
import com.hzs.member.base.IMemberServiceApi;
|
||||||
import com.hzs.member.detail.ICuMemberServiceLogServiceApi;
|
import com.hzs.member.detail.ICuMemberServiceLogServiceApi;
|
||||||
import com.hzs.system.config.dto.BonusConfigDTO;
|
import com.hzs.system.config.dto.BonusConfigDTO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
@ -46,6 +49,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
|
|
||||||
@DubboReference
|
@DubboReference
|
||||||
ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi;
|
ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi;
|
||||||
|
@DubboReference
|
||||||
|
IMemberServiceApi iMemberServiceApi;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 日结:
|
* 日结:
|
||||||
|
@ -94,18 +99,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
List<CuMemberLevel> autoLevelList = iCuMemberGradeService.listAutoLevel(settleStartDate, settleEndDate);
|
List<CuMemberLevel> autoLevelList = iCuMemberGradeService.listAutoLevel(settleStartDate, settleEndDate);
|
||||||
autoLevelList.forEach(tmpLevel -> autoLevelMap.put(tmpLevel.getPkOrder(), tmpLevel));
|
autoLevelList.forEach(tmpLevel -> autoLevelMap.put(tmpLevel.getPkOrder(), tmpLevel));
|
||||||
|
|
||||||
// 按照血缘,查询该会员所有伞上会员
|
|
||||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
|
|
||||||
|
|
||||||
// 会员结算map(key:会员ID,value:结算扩展)
|
// 会员结算map(key:会员ID,value:结算扩展)
|
||||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||||
// 等级map(key:等级ID,value:等级对象)
|
// 按照血缘,查询该会员所有伞上会员
|
||||||
Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
|
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
|
||||||
// 等级列表
|
|
||||||
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
|
|
||||||
for (BdGrade bdGrade : retaiGradeList) {
|
|
||||||
gradeIdMap.put(bdGrade.getPkId(), bdGrade);
|
|
||||||
}
|
|
||||||
// 结算会员map处理
|
// 结算会员map处理
|
||||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
||||||
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||||
|
@ -113,8 +110,21 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 级差收益
|
// 等级map(key:等级ID,value:等级对象)
|
||||||
|
Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
|
||||||
|
// 等级列表
|
||||||
|
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
|
||||||
|
for (BdGrade bdGrade : retaiGradeList) {
|
||||||
|
gradeIdMap.put(bdGrade.getPkId(), bdGrade);
|
||||||
|
}
|
||||||
|
// 配送收益配置
|
||||||
|
Map<Integer, CuMemberRetailRegion> regionMap = iMemberServiceApi.listEffectiveRegion(settleStartDate).getData();
|
||||||
|
|
||||||
|
|
||||||
|
// 直推、复购级差收益
|
||||||
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
||||||
|
// 复购配送收益
|
||||||
|
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
||||||
|
|
||||||
// 上面更新网体,按会员表是否激活进行处理
|
// 上面更新网体,按会员表是否激活进行处理
|
||||||
for (SaOrderExt saOrderExt : retailOrderList) {
|
for (SaOrderExt saOrderExt : retailOrderList) {
|
||||||
|
@ -181,10 +191,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
tmpMemberRetailRange.setGradeName(bdGrade.getGradeName());
|
tmpMemberRetailRange.setGradeName(bdGrade.getGradeName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
|
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||||
&& boxNum > 0) {
|
// 复购订单
|
||||||
// 复购订单,计算复购级差
|
if (boxNum > 0) {
|
||||||
cuMemberBonusRangeList.addAll(calculateRetailRepurRangeBonus(memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period, saOrderExt));
|
// 存在盒数商品,计算复购级差
|
||||||
|
cuMemberBonusRangeList.addAll(calculateRetailRepurRangeBonus(memberRangeExtMap, cuMemberBonusMap,
|
||||||
|
bonusConfigDTO, period, saOrderExt));
|
||||||
|
}
|
||||||
|
// 计算配送收益
|
||||||
|
if (regionMap.size() != 0) {
|
||||||
|
cuMemberBonusDetailList.addAll(calculateRetailRepurRegionBonus(memberRangeExtMap, cuMemberBonusMap,
|
||||||
|
bonusConfigDTO, period, saOrderExt, regionMap));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (cuMemberBonusRangeList.size() > 0) {
|
if (cuMemberBonusRangeList.size() > 0) {
|
||||||
|
@ -194,6 +212,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
bonusRecordDetailVO.getCuMemberBonusRangeList().addAll(cuMemberBonusRangeList);
|
bonusRecordDetailVO.getCuMemberBonusRangeList().addAll(cuMemberBonusRangeList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (cuMemberBonusDetailList.size() > 0) {
|
||||||
|
if (bonusRecordDetailVO.getCuMemberBonusDetailList() == null) {
|
||||||
|
bonusRecordDetailVO.setCuMemberBonusDetailList(cuMemberBonusDetailList);
|
||||||
|
} else {
|
||||||
|
bonusRecordDetailVO.getCuMemberBonusDetailList().addAll(cuMemberBonusDetailList);
|
||||||
|
}
|
||||||
|
}
|
||||||
// 更新网体
|
// 更新网体
|
||||||
iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
|
iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
|
||||||
}
|
}
|
||||||
|
@ -563,6 +588,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 商品盒数
|
// 商品盒数
|
||||||
BigDecimal boxNum = new BigDecimal(saOrderExt.getBoxNum());
|
BigDecimal boxNum = new BigDecimal(saOrderExt.getBoxNum());
|
||||||
|
|
||||||
|
// 2025.08.13 添加分公司级差收益,每1盒(4个产品)第一分公司4元,第二分公司4元,公司6元,总拨出14元
|
||||||
|
int branch = 0;
|
||||||
|
|
||||||
// 前一个会员等级
|
// 前一个会员等级
|
||||||
int beforeGradeValue = 0;
|
int beforeGradeValue = 0;
|
||||||
// 前面累计奖金
|
// 前面累计奖金
|
||||||
|
@ -678,21 +706,72 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
memberBonusRangeList.add(cuMemberBonusRange);
|
memberBonusRangeList.add(cuMemberBonusRange);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 2025.08.13 添加分公司级差收益,每1盒(4个产品)第一分公司4元,第二分公司4元,公司6元,总拨出14元
|
||||||
|
if (EGrade.BRANCH_COMPANY.getValue() == targetMemberRangeExt.getGradeValue() && branch < 2) {
|
||||||
|
// 等级是分公司 并且 发放次数小于2
|
||||||
|
this.calculateRetailRepurCompanyRangeBonus(sourceMemberRangeExt, targetMemberRangeExt, cuMemberBonusMap, bonusConfigDTO,
|
||||||
|
period, saOrderExt, boxNum, memberBonusRangeList, branch);
|
||||||
|
branch++;
|
||||||
|
} else if (EGrade.COMPANY.getValue() == targetGradeValue && branch != 3) {
|
||||||
|
// 等级是总公司
|
||||||
|
this.calculateRetailRepurCompanyRangeBonus(sourceMemberRangeExt, targetMemberRangeExt, cuMemberBonusMap, bonusConfigDTO,
|
||||||
|
period, saOrderExt, boxNum, memberBonusRangeList, branch);
|
||||||
|
branch = 3;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return memberBonusRangeList;
|
return memberBonusRangeList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void calculateRetailRepurCompanyRangeBonus(CuMemberRetailRangeExt sourceMemberRangeExt, CuMemberRetailRangeExt targetMemberRangeExt,
|
||||||
|
Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, Integer period,
|
||||||
|
SaOrderExt saOrderExt, BigDecimal boxNum, List<CuMemberBonusRange> memberBonusRangeList,
|
||||||
|
int branch) {
|
||||||
|
// 2025.08.13 二级分公司,一级总公司复购级差
|
||||||
|
BigDecimal calValue = BigDecimal.ZERO;
|
||||||
|
if (EGrade.BRANCH_COMPANY.getValue() == targetMemberRangeExt.getGradeValue()) {
|
||||||
|
// 分公司奖金
|
||||||
|
calValue = RetailConstants.BRANCH;
|
||||||
|
} else if (EGrade.COMPANY.getValue() == targetMemberRangeExt.getGradeValue()) {
|
||||||
|
// 总公司奖金 = 总拨出奖金 - (分公司奖金 * 分公司数量)
|
||||||
|
calValue = RetailConstants.COMPANY_TOTAL.subtract(RetailConstants.BRANCH.multiply(new BigDecimal(branch)));
|
||||||
|
}
|
||||||
|
BigDecimal bonusIncome = calValue.multiply(boxNum);
|
||||||
|
|
||||||
|
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
|
||||||
|
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
|
||||||
|
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_REPURCHASE_INCOME.getValue());
|
||||||
|
// 会员级差
|
||||||
|
CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
||||||
|
cuMemberBonusRange.setCalAchieve(saOrderExt.getOrderAmount());
|
||||||
|
cuMemberBonusRange.setCalValue(calValue);
|
||||||
|
cuMemberBonusRange.setPretaxIncome(bonusIncome);
|
||||||
|
cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
||||||
|
cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
||||||
|
cuMemberBonusRange.setPkOrder(saOrderExt.getPkId());
|
||||||
|
cuMemberBonusRange.setPkOrderItems(0L);
|
||||||
|
rangeRepurRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
|
||||||
|
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
||||||
|
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
|
||||||
|
cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
|
||||||
|
setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
|
||||||
|
}
|
||||||
|
memberBonusRangeList.add(cuMemberBonusRange);
|
||||||
|
}
|
||||||
|
|
||||||
private CuMemberBonusRange getCuMemberRetailBonusRange(SaOrder saOrderExt, CuMemberRetailRangeExt targetMemberRangeExt,
|
private CuMemberBonusRange getCuMemberRetailBonusRange(SaOrder saOrderExt, CuMemberRetailRangeExt targetMemberRangeExt,
|
||||||
CuMemberBonus cuMemberBonus, Integer pkBonusItems) {
|
CuMemberBonus cuMemberBonus, Integer pkBonusItems) {
|
||||||
CuMemberBonusRange cuMemberBonusRange = CuMemberBonusRange.builder()
|
CuMemberBonusRange cuMemberBonusRange = CuMemberBonusRange.builder()
|
||||||
.incomeStatus(targetMemberRangeExt.getIncomeStatus())
|
|
||||||
.pkOrder(saOrderExt.getPkId())
|
.pkOrder(saOrderExt.getPkId())
|
||||||
.pkBonusItems(pkBonusItems)
|
.pkBonusItems(pkBonusItems)
|
||||||
.pkBonus(cuMemberBonus.getPkId())
|
.pkBonus(cuMemberBonus.getPkId())
|
||||||
// 正常还是烧伤
|
.incomeStatus(targetMemberRangeExt.getIncomeStatus())
|
||||||
.calAchieve(saOrderExt.getOrderAchieve())
|
.calAchieve(saOrderExt.getOrderAchieve())
|
||||||
.calType(ECalType.VALUE.getValue())
|
.calType(ECalType.VALUE.getValue())
|
||||||
.calValue(BigDecimal.ZERO)
|
.calValue(BigDecimal.ZERO)
|
||||||
|
.pretaxIncome(BigDecimal.ZERO)
|
||||||
|
.incomeTax(BigDecimal.ZERO)
|
||||||
|
.realIncome(BigDecimal.ZERO)
|
||||||
.incomeRatio(BigDecimal.ZERO)
|
.incomeRatio(BigDecimal.ZERO)
|
||||||
.incomeDialRatio(BigDecimal.ZERO)
|
.incomeDialRatio(BigDecimal.ZERO)
|
||||||
.orderDialRatio(BigDecimal.ZERO)
|
.orderDialRatio(BigDecimal.ZERO)
|
||||||
|
@ -702,6 +781,83 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
return cuMemberBonusRange;
|
return cuMemberBonusRange;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算复购配送区域收益
|
||||||
|
*/
|
||||||
|
List<CuMemberBonusDetail> calculateRetailRepurRegionBonus(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||||
|
BonusConfigDTO bonusConfigDTO, Integer period, SaOrderExt saOrderExt, Map<Integer, CuMemberRetailRegion> regionMap) {
|
||||||
|
// 复购配送区域返回数据
|
||||||
|
List<CuMemberBonusDetail> memberBonusDetailList = new ArrayList<>();
|
||||||
|
|
||||||
|
// 订单下单人自己
|
||||||
|
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||||
|
|
||||||
|
// 配送区域配置
|
||||||
|
CuMemberRetailRegion retailRegion = regionMap.get(saOrderExt.getRecCounty());
|
||||||
|
if (null != retailRegion) {
|
||||||
|
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(retailRegion.getPkMember());
|
||||||
|
// 复购配送区域收益
|
||||||
|
BigDecimal bonusIncome = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
List<Integer> pkWaresList = new ArrayList<>();
|
||||||
|
for (SaOrderWaresExt saOrderWaresExt : saOrderExt.getOrderWaresExtList()) {
|
||||||
|
if (!pkWaresList.contains(saOrderWaresExt.getPkWares())) {
|
||||||
|
// 商品没有处理过,则进行处理
|
||||||
|
pkWaresList.add(saOrderWaresExt.getPkWares());
|
||||||
|
// 复购区分收益 * 商品数量
|
||||||
|
bonusIncome = bonusIncome.add(saOrderWaresExt.getAreaIncome().multiply(new BigDecimal(saOrderWaresExt.getWaresQuantity())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bonusIncome.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
|
// 处理复购级差收益
|
||||||
|
// 会员奖金
|
||||||
|
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
|
||||||
|
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
|
||||||
|
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_REPURCHASE_DELIVERY_INCOME.getValue());
|
||||||
|
// 会员配送区域收益
|
||||||
|
CuMemberBonusDetail cuMemberBonusDetail = getCuMemberBonusDetail(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
||||||
|
cuMemberBonusDetail.setCalValue(BigDecimal.ZERO);
|
||||||
|
cuMemberBonusDetail.setCalAchieve(BigDecimal.ZERO);
|
||||||
|
cuMemberBonusDetail.setPretaxIncome(bonusIncome);
|
||||||
|
cuMemberBonusDetail.setPkOrder(saOrderExt.getPkId());
|
||||||
|
// 备注
|
||||||
|
regionRepurRetailRemark(saOrderExt, cuMemberBonusDetail, sourceMemberRangeExt, targetMemberRangeExt);
|
||||||
|
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusDetail, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
||||||
|
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()) {
|
||||||
|
cuMemberBonus.setRetailAreaIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailAreaIncome(), cuMemberBonusDetail.getPretaxIncome()));
|
||||||
|
setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusDetail);
|
||||||
|
}
|
||||||
|
memberBonusDetailList.add(cuMemberBonusDetail);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return memberBonusDetailList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private CuMemberBonusDetail getCuMemberBonusDetail(SaOrder saOrderExt, CuMemberRetailRangeExt targetMemberRangeExt,
|
||||||
|
CuMemberBonus cuMemberBonus, Integer pkBonusItems) {
|
||||||
|
CuMemberBonusDetail cuMemberBonusDetail = CuMemberBonusDetail.builder()
|
||||||
|
.pkOrder(saOrderExt.getPkId())
|
||||||
|
.pkBonusItems(pkBonusItems)
|
||||||
|
.pkBonus(cuMemberBonus.getPkId())
|
||||||
|
.incomeStatus(targetMemberRangeExt.getIncomeStatus())
|
||||||
|
.calAchieve(saOrderExt.getOrderAchieve())
|
||||||
|
.calType(ECalType.VALUE.getValue())
|
||||||
|
.calValue(BigDecimal.ZERO)
|
||||||
|
.pretaxIncome(BigDecimal.ZERO)
|
||||||
|
.incomeTax(BigDecimal.ZERO)
|
||||||
|
.realIncome(BigDecimal.ZERO)
|
||||||
|
.incomeRatio(BigDecimal.ZERO)
|
||||||
|
.incomeDialRatio(BigDecimal.ZERO)
|
||||||
|
.orderDialRatio(BigDecimal.ZERO)
|
||||||
|
.build();
|
||||||
|
cuMemberBonusDetail.setPkCountry(targetMemberRangeExt.getPkSettleCountry());
|
||||||
|
cuMemberBonusDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||||
|
return cuMemberBonusDetail;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取手动激活map
|
* 获取手动激活map
|
||||||
*
|
*
|
||||||
|
|
|
@ -140,6 +140,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
cuMemberBonusExt.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonusExt.getRealIncomeTotal(), memberBonusExt.getRealIncomeTotal()));
|
cuMemberBonusExt.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonusExt.getRealIncomeTotal(), memberBonusExt.getRealIncomeTotal()));
|
||||||
cuMemberBonusExt.setStoreIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getStoreIncome(), memberBonusExt.getStoreIncome()));
|
cuMemberBonusExt.setStoreIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getStoreIncome(), memberBonusExt.getStoreIncome()));
|
||||||
cuMemberBonusExt.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRetailRangeIncome(), memberBonusExt.getRetailRangeIncome()));
|
cuMemberBonusExt.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRetailRangeIncome(), memberBonusExt.getRetailRangeIncome()));
|
||||||
|
cuMemberBonusExt.setRetailAreaIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRetailAreaIncome(), memberBonusExt.getRetailAreaIncome()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -180,6 +181,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
cuMemberBonusExt.setHiFunIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setHiFunIncome(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setHaiFunIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setHaiFunIncome(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRetailRangeIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setRetailRangeIncome(BigDecimal.ZERO);
|
||||||
|
cuMemberBonusExt.setRetailAreaIncome(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO);
|
cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO);
|
||||||
return cuMemberBonusExt;
|
return cuMemberBonusExt;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ public class BonusRecordDetailVO implements Serializable {
|
||||||
private List<CuMemberBonusCoach> cuMemberBonusCoachList;
|
private List<CuMemberBonusCoach> cuMemberBonusCoachList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 服务奖 嗨粉推荐奖金 创客空间直推 创客空间分享
|
* 服务奖
|
||||||
*/
|
*/
|
||||||
private List<CuMemberBonusDetail> cuMemberBonusDetailList;
|
private List<CuMemberBonusDetail> cuMemberBonusDetailList;
|
||||||
|
|
||||||
|
|
|
@ -31,149 +31,29 @@ public class BonusTotalVO implements Serializable {
|
||||||
*/
|
*/
|
||||||
private Integer pkCountry;
|
private Integer pkCountry;
|
||||||
|
|
||||||
/**
|
|
||||||
* 直推收益
|
|
||||||
*/
|
|
||||||
private BigDecimal directIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 拓展收益
|
|
||||||
*/
|
|
||||||
private BigDecimal expandIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 拓展无封 (拓展收益按等级正常比例结算,并 拓展收益按等级正常比例结算 无封顶)
|
|
||||||
*/
|
|
||||||
private BigDecimal expandNoCappingOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 拓展封顶 (拓展收益按等级正常比例结算,不按4-N结算,根据配置的封顶值限制最大收益)
|
|
||||||
*/
|
|
||||||
private BigDecimal expandCappingOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 辅导收益
|
|
||||||
*/
|
|
||||||
private BigDecimal coachIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分红收益
|
|
||||||
*/
|
|
||||||
private BigDecimal shareIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 报单收益
|
|
||||||
*/
|
|
||||||
private BigDecimal serviceIncomeOri;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 云代直推收益
|
|
||||||
*/
|
|
||||||
private BigDecimal cloudDirectIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 云代首购收益
|
|
||||||
*/
|
|
||||||
private BigDecimal cloudPurIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 云代复购收益
|
|
||||||
*/
|
|
||||||
private BigDecimal cloudRepurIncomeOri;
|
|
||||||
|
|
||||||
private BigDecimal repurPushIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 直推级差收益
|
|
||||||
*/
|
|
||||||
private BigDecimal retailRangeIncome;
|
|
||||||
/**
|
/**
|
||||||
* 直推级差收益
|
* 直推级差收益
|
||||||
*/
|
*/
|
||||||
@Excel(name = "直推级差收益", scale = 2)
|
@Excel(name = "直推级差收益", scale = 2)
|
||||||
private BigDecimal retailRangeIncomeOri;
|
private BigDecimal retailRangeIncome;
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购级差收益
|
|
||||||
*/
|
|
||||||
private BigDecimal repurRangeIncome;
|
|
||||||
/**
|
/**
|
||||||
* 复购级差收益
|
* 复购级差收益
|
||||||
*/
|
*/
|
||||||
@Excel(name = "复购级差收益", scale = 2)
|
@Excel(name = "复购级差收益", scale = 2)
|
||||||
private BigDecimal repurRangeIncomeOri;
|
private BigDecimal repurRangeIncome;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 复购拓展收益
|
* 复购配送收益
|
||||||
*/
|
*/
|
||||||
private BigDecimal repurExpandIncomeOri;
|
@Excel(name = "复购配送收益", scale = 2)
|
||||||
|
private BigDecimal retailAreaIncome;
|
||||||
/**
|
|
||||||
* 复购券
|
|
||||||
*/
|
|
||||||
private BigDecimal repurCouponOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购券均分收益
|
|
||||||
*/
|
|
||||||
private BigDecimal repurCouponShareOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 商城重消
|
|
||||||
*/
|
|
||||||
private BigDecimal backPointsOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 平台服务费
|
|
||||||
*/
|
|
||||||
private BigDecimal serviceSpendOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 环球积分
|
|
||||||
*/
|
|
||||||
private BigDecimal globalPointsOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 车奖积分
|
|
||||||
*/
|
|
||||||
private BigDecimal carAwardPointsOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 店铺收益
|
|
||||||
*/
|
|
||||||
private BigDecimal storeIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 嗨粉推荐收益
|
|
||||||
*/
|
|
||||||
private BigDecimal hiFunIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 首购实发小计
|
|
||||||
*/
|
|
||||||
private BigDecimal purRealSubtotalOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 云代实发小计
|
|
||||||
*/
|
|
||||||
private BigDecimal cloudRealSubtotalOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购实发小计
|
|
||||||
*/
|
|
||||||
private BigDecimal repurRealSubtotalOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购券小计
|
|
||||||
*/
|
|
||||||
private BigDecimal repurCouponSubtotalOri;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实发收益总计
|
* 实发收益总计
|
||||||
*/
|
*/
|
||||||
@Excel(name = "实发收益总计", scale = 2)
|
@Excel(name = "实发收益总计", scale = 2)
|
||||||
private BigDecimal realIncomeTotalOri;
|
private BigDecimal realIncomeTotal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 直推收益
|
* 直推收益
|
||||||
|
@ -293,10 +173,6 @@ public class BonusTotalVO implements Serializable {
|
||||||
*/
|
*/
|
||||||
private BigDecimal repurCouponSubtotal;
|
private BigDecimal repurCouponSubtotal;
|
||||||
|
|
||||||
/**
|
|
||||||
* 实发收益总计
|
|
||||||
*/
|
|
||||||
private BigDecimal realIncomeTotal;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 结算日期
|
* 结算日期
|
||||||
|
|
|
@ -86,67 +86,41 @@ public class CuMemberBonusVO implements Serializable {
|
||||||
*/
|
*/
|
||||||
private Integer grantStatus;
|
private Integer grantStatus;
|
||||||
|
|
||||||
/**
|
|
||||||
* 需要转换人民币的
|
|
||||||
*/
|
|
||||||
public static final String[] INCOME_ARRAY = new String[]{
|
|
||||||
"backPoints", "retailRangeIncome", "retailSameLevelIncome", "retailAreaIncome",
|
|
||||||
"retailBenefitRangeIncome", "retailBenefitAvgIncome", "repurRangeIncome",
|
|
||||||
"retailBenefitIncome", "retailRealSubtotal", "realIncomeTotal"};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 直推级差收益
|
* 直推级差收益
|
||||||
*/
|
*/
|
||||||
private BigDecimal retailRangeIncome;
|
|
||||||
@Excel(name = "直推级差收益", scale = 2)
|
@Excel(name = "直推级差收益", scale = 2)
|
||||||
private BigDecimal retailRangeIncomeOri;
|
private BigDecimal retailRangeIncome;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 复购级差收益
|
* 复购级差收益
|
||||||
*/
|
*/
|
||||||
private BigDecimal repurRangeIncome;
|
|
||||||
@Excel(name = "复购级差收益", scale = 2)
|
@Excel(name = "复购级差收益", scale = 2)
|
||||||
private BigDecimal repurRangeIncomeOri;
|
private BigDecimal repurRangeIncome;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 复购配送收益
|
||||||
|
*/
|
||||||
|
@Excel(name = "复购配送收益", scale = 2)
|
||||||
|
private BigDecimal retailAreaIncome;
|
||||||
|
|
||||||
private BigDecimal retailSameLevelIncome;
|
private BigDecimal retailSameLevelIncome;
|
||||||
|
|
||||||
/**
|
|
||||||
* 平级收益
|
|
||||||
*/
|
|
||||||
private BigDecimal retailSameLevelIncomeOri;
|
|
||||||
|
|
||||||
private BigDecimal retailAreaIncome;
|
|
||||||
/**
|
|
||||||
* 区域分红
|
|
||||||
*/
|
|
||||||
private BigDecimal retailAreaIncomeOri;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售福利极差收益
|
* 新零售福利极差收益
|
||||||
*/
|
*/
|
||||||
private BigDecimal retailBenefitRangeIncome;
|
private BigDecimal retailBenefitRangeIncome;
|
||||||
|
|
||||||
private BigDecimal retailBenefitRangeIncomeOri;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售福利平均收益
|
* 新零售福利平均收益
|
||||||
*/
|
*/
|
||||||
private BigDecimal retailBenefitAvgIncome;
|
private BigDecimal retailBenefitAvgIncome;
|
||||||
|
|
||||||
private BigDecimal retailBenefitAvgIncomeOri;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售福利加权收益
|
* 新零售福利加权收益
|
||||||
*/
|
*/
|
||||||
private BigDecimal retailBenefitIncome;
|
private BigDecimal retailBenefitIncome;
|
||||||
|
|
||||||
private BigDecimal retailBenefitIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 商城重消
|
|
||||||
*/
|
|
||||||
private BigDecimal backPointsOri;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商城重消
|
* 商城重消
|
||||||
*/
|
*/
|
||||||
|
@ -157,16 +131,10 @@ public class CuMemberBonusVO implements Serializable {
|
||||||
*/
|
*/
|
||||||
private BigDecimal retailRealSubtotal;
|
private BigDecimal retailRealSubtotal;
|
||||||
|
|
||||||
private BigDecimal retailRealSubtotalOri;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实发收益总计
|
* 实发收益总计
|
||||||
*/
|
*/
|
||||||
@Excel(name = "实发收益总计", scale = 2)
|
@Excel(name = "实发收益总计", scale = 2)
|
||||||
private BigDecimal realIncomeTotalOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 实发收益总计
|
|
||||||
*/
|
|
||||||
private BigDecimal realIncomeTotal;
|
private BigDecimal realIncomeTotal;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,12 +83,12 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
|
||||||
// */
|
// */
|
||||||
// @BigDecimalFormat
|
// @BigDecimalFormat
|
||||||
// private BigDecimal retailSameLevelIncome;
|
// private BigDecimal retailSameLevelIncome;
|
||||||
//
|
|
||||||
// /**
|
/**
|
||||||
// * 新零售区域分红
|
* 复购配送收益
|
||||||
// */
|
*/
|
||||||
// @BigDecimalFormat
|
@BigDecimalFormat
|
||||||
// private BigDecimal retailAreaIncome;
|
private BigDecimal retailAreaIncome;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售收益小计
|
* 新零售收益小计
|
||||||
|
|
|
@ -61,6 +61,9 @@
|
||||||
<result column="PK_VERTEX" property="pkVertex"/>
|
<result column="PK_VERTEX" property="pkVertex"/>
|
||||||
<result column="SERVICE_CODE" property="serviceCode"/>
|
<result column="SERVICE_CODE" property="serviceCode"/>
|
||||||
<result column="NICK_NAME" property="nickName"/>
|
<result column="NICK_NAME" property="nickName"/>
|
||||||
|
<result column="retail_range_income" property="retailRangeIncome"/>
|
||||||
|
<result column="retail_area_income" property="retailAreaIncome"/>
|
||||||
|
<result column="retail_real_subtotal" property="retailRealSubtotal"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<update id="updateCuMemberBonusStatus">
|
<update id="updateCuMemberBonusStatus">
|
||||||
|
@ -83,7 +86,7 @@
|
||||||
|
|
||||||
<insert id="batchInsertCuMemberBonus">
|
<insert id="batchInsertCuMemberBonus">
|
||||||
merge into cu_member_bonus cb
|
merge into cu_member_bonus cb
|
||||||
using(
|
using (
|
||||||
select pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
|
select pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
|
||||||
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
|
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
|
||||||
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal,
|
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal,
|
||||||
|
@ -92,8 +95,10 @@
|
||||||
car_award_points,store_income,hi_fun_income,hai_fun_income,
|
car_award_points,store_income,hi_fun_income,hai_fun_income,
|
||||||
maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total,
|
maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total,
|
||||||
pk_country,pk_creator,grant_status,income_status,retail_range_income,retail_same_level_income,
|
pk_country,pk_creator,grant_status,income_status,retail_range_income,retail_same_level_income,
|
||||||
retail_area_income,retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income,
|
retail_area_income,
|
||||||
retail_real_subtotal from(
|
retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income,
|
||||||
|
retail_real_subtotal
|
||||||
|
from (
|
||||||
<foreach item="item" index="index" collection="cuMemberBonusList" separator=" union ">
|
<foreach item="item" index="index" collection="cuMemberBonusList" separator=" union ">
|
||||||
select #{item.pkId} pk_id,#{item.pkMember} pk_member,#{item.period} period,#{item.pkRate,jdbcType=INTEGER} pk_rate,
|
select #{item.pkId} pk_id,#{item.pkMember} pk_member,#{item.period} period,#{item.pkRate,jdbcType=INTEGER} pk_rate,
|
||||||
#{item.directIncome} direct_income,#{item.expandIncome} expand_income,#{item.expandNoCapping} expand_no_capping,
|
#{item.directIncome} direct_income,#{item.expandIncome} expand_income,#{item.expandNoCapping} expand_no_capping,
|
||||||
|
@ -110,13 +115,14 @@
|
||||||
#{item.makerShareIncome} maker_share_income,#{item.makerRealSubtotal} maker_real_subtotal,#{item.realIncomeTotal} real_income_total,
|
#{item.makerShareIncome} maker_share_income,#{item.makerRealSubtotal} maker_real_subtotal,#{item.realIncomeTotal} real_income_total,
|
||||||
#{item.pkCountry} pk_country,#{item.pkCreator} pk_creator,#{item.grantStatus} grant_status,#{item.incomeStatus} income_status,
|
#{item.pkCountry} pk_country,#{item.pkCreator} pk_creator,#{item.grantStatus} grant_status,#{item.incomeStatus} income_status,
|
||||||
#{item.retailRangeIncome} retail_range_income,#{item.retailSameLevelIncome} retail_same_level_income,
|
#{item.retailRangeIncome} retail_range_income,#{item.retailSameLevelIncome} retail_same_level_income,
|
||||||
#{item.retailAreaIncome} retail_area_income,#{item.retailBenefitRangeIncome} retail_benefit_range_income,
|
#{item.retailAreaIncome} retail_area_income,
|
||||||
|
#{item.retailBenefitRangeIncome} retail_benefit_range_income,
|
||||||
#{item.retailBenefitAvgIncome} retail_benefit_avg_income,#{item.retailBenefitIncome} retail_benefit_income,
|
#{item.retailBenefitAvgIncome} retail_benefit_avg_income,#{item.retailBenefitIncome} retail_benefit_income,
|
||||||
#{item.retailRealSubtotal} retail_real_subtotal from dual
|
#{item.retailRealSubtotal} retail_real_subtotal from dual
|
||||||
</foreach>) )b
|
</foreach>) )b
|
||||||
on (cb.pk_member=b.pk_member and cb.period=b.period)
|
on (cb.pk_member=b.pk_member and cb.period=b.period)
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert(pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
|
insert (pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
|
||||||
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
|
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
|
||||||
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal,
|
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal,
|
||||||
cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal,
|
cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal,
|
||||||
|
@ -124,9 +130,10 @@
|
||||||
car_award_points,store_income,hi_fun_income,hai_fun_income,
|
car_award_points,store_income,hi_fun_income,hai_fun_income,
|
||||||
maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total,
|
maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total,
|
||||||
pk_country,pk_creator,grant_status,income_status,retail_range_income,retail_same_level_income,
|
pk_country,pk_creator,grant_status,income_status,retail_range_income,retail_same_level_income,
|
||||||
retail_area_income,retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income,
|
retail_area_income,
|
||||||
|
retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income,
|
||||||
retail_real_subtotal)
|
retail_real_subtotal)
|
||||||
values(b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.expand_income,b.expand_no_capping,
|
values (b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.expand_income,b.expand_no_capping,
|
||||||
b.expand_capping,b.coach_income,b.share_income,b.service_income,b.back_points,b.service_spend,
|
b.expand_capping,b.coach_income,b.share_income,b.service_income,b.back_points,b.service_spend,
|
||||||
b.pur_real_subtotal,b.repur_push_income,b.repur_range_income,b.repur_expand_income,b.repur_real_subtotal,
|
b.pur_real_subtotal,b.repur_push_income,b.repur_range_income,b.repur_expand_income,b.repur_real_subtotal,
|
||||||
b.cloud_direct_income,b.cloud_pur_income,b.cloud_repur_income,b.cloud_real_subtotal,
|
b.cloud_direct_income,b.cloud_pur_income,b.cloud_repur_income,b.cloud_real_subtotal,
|
||||||
|
@ -134,7 +141,8 @@
|
||||||
b.car_award_points,b.store_income,b.hi_fun_income,b.hai_fun_income,
|
b.car_award_points,b.store_income,b.hi_fun_income,b.hai_fun_income,
|
||||||
b.maker_direct_income,b.maker_share_income,b.maker_real_subtotal,b.real_income_total,
|
b.maker_direct_income,b.maker_share_income,b.maker_real_subtotal,b.real_income_total,
|
||||||
b.pk_country,b.pk_creator,b.grant_status,b.income_status,b.retail_range_income,b.retail_same_level_income,
|
b.pk_country,b.pk_creator,b.grant_status,b.income_status,b.retail_range_income,b.retail_same_level_income,
|
||||||
b.retail_area_income,b.retail_benefit_range_income,b.retail_benefit_avg_income,b.retail_benefit_income,
|
b.retail_area_income,
|
||||||
|
b.retail_benefit_range_income,b.retail_benefit_avg_income,b.retail_benefit_income,
|
||||||
b.retail_real_subtotal)
|
b.retail_real_subtotal)
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
@ -190,6 +198,7 @@
|
||||||
select tmp.settle_date,
|
select tmp.settle_date,
|
||||||
sum(tmp.repur_range_income) repur_range_income,
|
sum(tmp.repur_range_income) repur_range_income,
|
||||||
sum(tmp.retail_range_income) retail_range_income,
|
sum(tmp.retail_range_income) retail_range_income,
|
||||||
|
sum(tmp.retail_area_income) retail_area_income,
|
||||||
sum(tmp.retail_real_subtotal) retail_real_subtotal,
|
sum(tmp.retail_real_subtotal) retail_real_subtotal,
|
||||||
sum(tmp.real_income_total) real_income_total
|
sum(tmp.real_income_total) real_income_total
|
||||||
from (select case
|
from (select case
|
||||||
|
@ -202,6 +211,7 @@
|
||||||
end settle_date,
|
end settle_date,
|
||||||
cb.repur_range_income,
|
cb.repur_range_income,
|
||||||
cb.retail_range_income,
|
cb.retail_range_income,
|
||||||
|
cb.retail_area_income,
|
||||||
cb.retail_real_subtotal,
|
cb.retail_real_subtotal,
|
||||||
cb.real_income_total
|
cb.real_income_total
|
||||||
from CU_MEMBER_BONUS cb
|
from CU_MEMBER_BONUS cb
|
||||||
|
@ -230,12 +240,16 @@
|
||||||
bv.vertex_name, ct.team_name,
|
bv.vertex_name, ct.team_name,
|
||||||
cb.period,cp.settle_date,cb.direct_income,cb.expand_income,cb.expand_no_capping,
|
cb.period,cp.settle_date,cb.direct_income,cb.expand_income,cb.expand_no_capping,
|
||||||
cb.expand_capping,cb.coach_income,cb.share_income,cb.service_income,cb.back_points,cb.service_spend,
|
cb.expand_capping,cb.coach_income,cb.share_income,cb.service_income,cb.back_points,cb.service_spend,
|
||||||
cb.pur_real_subtotal,cb.repur_push_income,cb.repur_range_income,cb.repur_expand_income,cb.repur_real_subtotal,
|
cb.pur_real_subtotal,cb.repur_push_income,
|
||||||
|
cb.repur_range_income,
|
||||||
|
cb.repur_expand_income,cb.repur_real_subtotal,
|
||||||
cb.cloud_direct_income,cb.cloud_pur_income,cb.cloud_repur_income,cb.cloud_real_subtotal,
|
cb.cloud_direct_income,cb.cloud_pur_income,cb.cloud_repur_income,cb.cloud_real_subtotal,
|
||||||
cb.repur_coupon,cb.repur_coupon_share,cb.repur_coupon_subtotal,cb.store_income,
|
cb.repur_coupon,cb.repur_coupon_share,cb.repur_coupon_subtotal,cb.store_income,
|
||||||
cb.maker_direct_income,cb.maker_share_income,cb.maker_real_subtotal,cb.hai_fun_income,
|
cb.maker_direct_income,cb.maker_share_income,cb.maker_real_subtotal,cb.hai_fun_income,
|
||||||
cb.global_points,cb.car_award_points,cb.hi_fun_income,cb.pk_rate,bc.out_exchange_rate,
|
cb.global_points,cb.car_award_points,cb.hi_fun_income,cb.pk_rate,bc.out_exchange_rate,
|
||||||
cb.retail_range_income,cb.retail_same_level_income,cb.retail_area_income,
|
cb.retail_range_income,
|
||||||
|
cb.retail_area_income,
|
||||||
|
cb.retail_same_level_income,
|
||||||
cb.retail_benefit_range_income,cb.retail_benefit_avg_income,
|
cb.retail_benefit_range_income,cb.retail_benefit_avg_income,
|
||||||
cb.retail_benefit_income,cb.retail_real_subtotal,
|
cb.retail_benefit_income,cb.retail_real_subtotal,
|
||||||
cb.real_income_total,
|
cb.real_income_total,
|
||||||
|
@ -324,7 +338,6 @@
|
||||||
nvl(sum(cb.service_spend),0) service_spend,
|
nvl(sum(cb.service_spend),0) service_spend,
|
||||||
nvl(sum(cb.pur_real_subtotal),0) pur_real_subtotal,
|
nvl(sum(cb.pur_real_subtotal),0) pur_real_subtotal,
|
||||||
nvl(sum(cb.repur_push_income),0) repur_push_income,
|
nvl(sum(cb.repur_push_income),0) repur_push_income,
|
||||||
nvl(sum(cb.repur_range_income),0) repur_range_income,
|
|
||||||
nvl(sum(cb.repur_expand_income),0) repur_expand_income,
|
nvl(sum(cb.repur_expand_income),0) repur_expand_income,
|
||||||
nvl(sum(cb.repur_real_subtotal),0) repur_real_subtotal,
|
nvl(sum(cb.repur_real_subtotal),0) repur_real_subtotal,
|
||||||
nvl(sum(cb.cloud_direct_income),0) cloud_direct_income,
|
nvl(sum(cb.cloud_direct_income),0) cloud_direct_income,
|
||||||
|
@ -342,7 +355,9 @@
|
||||||
nvl(sum(cb.global_points),0) global_points,
|
nvl(sum(cb.global_points),0) global_points,
|
||||||
nvl(sum(cb.car_award_points),0) car_award_points,
|
nvl(sum(cb.car_award_points),0) car_award_points,
|
||||||
nvl(sum(cb.hi_fun_income),0) hi_fun_income,
|
nvl(sum(cb.hi_fun_income),0) hi_fun_income,
|
||||||
|
nvl(sum(cb.repur_range_income),0) repur_range_income,
|
||||||
nvl(sum(cb.retail_range_income),0) retail_range_income,
|
nvl(sum(cb.retail_range_income),0) retail_range_income,
|
||||||
|
nvl(sum(cb.retail_area_income),0) retail_area_income,
|
||||||
bc.out_exchange_rate,
|
bc.out_exchange_rate,
|
||||||
nvl(sum(cb.real_income_total),0) real_income_total
|
nvl(sum(cb.real_income_total),0) real_income_total
|
||||||
from cu_member_bonus cb
|
from cu_member_bonus cb
|
||||||
|
@ -419,17 +434,18 @@
|
||||||
sum(cb.expand_no_capping) expand_no_capping,sum(cb.expand_capping) expand_capping,sum(cb.coach_income) coach_income,
|
sum(cb.expand_no_capping) expand_no_capping,sum(cb.expand_capping) expand_capping,sum(cb.coach_income) coach_income,
|
||||||
sum(cb.share_income) share_income,sum(cb.service_income) service_income,sum(cb.back_points) back_points,
|
sum(cb.share_income) share_income,sum(cb.service_income) service_income,sum(cb.back_points) back_points,
|
||||||
sum(cb.service_spend) service_spend,sum(cb.pur_real_subtotal) pur_real_subtotal,
|
sum(cb.service_spend) service_spend,sum(cb.pur_real_subtotal) pur_real_subtotal,
|
||||||
sum(cb.repur_push_income) repur_push_income,sum(cb.repur_range_income) repur_range_income,
|
sum(cb.repur_push_income) repur_push_income,
|
||||||
sum(cb.repur_expand_income) repur_expand_income,sum(cb.repur_real_subtotal) repur_real_subtotal,sum(cb.cloud_direct_income)
|
sum(cb.repur_range_income) repur_range_income,
|
||||||
cloud_direct_income,
|
sum(cb.repur_expand_income) repur_expand_income,sum(cb.repur_real_subtotal) repur_real_subtotal,sum(cb.cloud_direct_income) cloud_direct_income,
|
||||||
sum(cb.cloud_pur_income) cloud_pur_income,sum(cb.cloud_repur_income) cloud_repur_income,sum(cb.cloud_real_subtotal) cloud_real_subtotal,
|
sum(cb.cloud_pur_income) cloud_pur_income,sum(cb.cloud_repur_income) cloud_repur_income,sum(cb.cloud_real_subtotal) cloud_real_subtotal,
|
||||||
sum(cb.repur_coupon) repur_coupon,sum(repur_coupon_share) repur_coupon_share,
|
sum(cb.repur_coupon) repur_coupon,sum(repur_coupon_share) repur_coupon_share,
|
||||||
sum(cb.repur_coupon_subtotal) repur_coupon_subtotal,sum(cb.global_points) global_points,
|
sum(cb.repur_coupon_subtotal) repur_coupon_subtotal,sum(cb.global_points) global_points,
|
||||||
sum(cb.car_award_points) car_award_points,sum(cb.hi_fun_income) hi_fun_income,
|
sum(cb.car_award_points) car_award_points,sum(cb.hi_fun_income) hi_fun_income,
|
||||||
sum(store_income) store_income,sum(cb.maker_direct_income) maker_direct_income,
|
sum(store_income) store_income,sum(cb.maker_direct_income) maker_direct_income,
|
||||||
sum(cb.maker_share_income) maker_share_income,sum(cb.maker_real_subtotal) maker_real_subtotal,
|
sum(cb.maker_share_income) maker_share_income,sum(cb.maker_real_subtotal) maker_real_subtotal,
|
||||||
sum(cb.retail_range_income) retail_range_income,sum(cb.retail_same_level_income) retail_same_level_income,
|
sum(cb.retail_range_income) retail_range_income,
|
||||||
sum(cb.retail_area_income) retail_area_income,
|
sum(cb.retail_area_income) retail_area_income,
|
||||||
|
sum(cb.retail_same_level_income) retail_same_level_income,
|
||||||
sum(cb.retail_benefit_range_income) retail_benefit_range_income,sum(cb.retail_benefit_avg_income) retail_benefit_avg_income,
|
sum(cb.retail_benefit_range_income) retail_benefit_range_income,sum(cb.retail_benefit_avg_income) retail_benefit_avg_income,
|
||||||
sum(cb.retail_benefit_income) retail_benefit_income,sum(cb.retail_real_subtotal) retail_real_subtotal,
|
sum(cb.retail_benefit_income) retail_benefit_income,sum(cb.retail_real_subtotal) retail_real_subtotal,
|
||||||
sum(cb.real_income_total) real_income_total from cu_member_bonus cb
|
sum(cb.real_income_total) real_income_total from cu_member_bonus cb
|
||||||
|
|
|
@ -124,6 +124,67 @@
|
||||||
left join bd_wares bw
|
left join bd_wares bw
|
||||||
on bw.pk_id = st.pk_wares and bw.del_flag = 0
|
on bw.pk_id = st.pk_wares and bw.del_flag = 0
|
||||||
where so.order_status = 1
|
where so.order_status = 1
|
||||||
|
and so.order_type in (41, 42)
|
||||||
|
<if test="orderCode != null and orderCode != ''">
|
||||||
|
and so.order_code=#{orderCode}
|
||||||
|
</if>
|
||||||
|
and so.pay_time >= #{startDate}
|
||||||
|
and so.pay_time < #{endDate}
|
||||||
|
union
|
||||||
|
select so.pk_id,
|
||||||
|
so.pk_member,
|
||||||
|
so.order_code,
|
||||||
|
so.order_type,
|
||||||
|
so.pk_rate,
|
||||||
|
so.rec_province,
|
||||||
|
so.rec_city,
|
||||||
|
so.rec_county,
|
||||||
|
so.order_amount,
|
||||||
|
so.order_achieve,
|
||||||
|
so.order_ass_achieve,
|
||||||
|
so.upload_achieve,
|
||||||
|
so.pk_reference,
|
||||||
|
so.pk_vertex,
|
||||||
|
so.pk_country,
|
||||||
|
so.del_flag,
|
||||||
|
so.pay_time,
|
||||||
|
so.pk_creator,
|
||||||
|
so.consume_amount,
|
||||||
|
so.box_num,
|
||||||
|
0 pk_grade,
|
||||||
|
soi.items_id,
|
||||||
|
soi.pk_order,
|
||||||
|
soi.pk_wares,
|
||||||
|
soi.wares_price,
|
||||||
|
nvl(bw.wares_code, '~') wares_code,
|
||||||
|
soi.wares_quantity,
|
||||||
|
nvl(bw.area_income, 0) area_income
|
||||||
|
from sa_order so
|
||||||
|
left join (
|
||||||
|
select max(soi.pk_id) items_id,
|
||||||
|
nvl(soi.pk_order, 0) pk_order,
|
||||||
|
nvl(soi.pk_wares, 0) pk_wares,
|
||||||
|
sum(soi.achievement * soi.quantity) wares_price,
|
||||||
|
max(soi.wares_quantity) wares_quantity
|
||||||
|
from sa_order so
|
||||||
|
left join sa_order_items soi
|
||||||
|
on soi.pk_order = so.pk_id
|
||||||
|
and soi.is_gift = 1
|
||||||
|
where so.order_status = 1
|
||||||
|
and so.order_type in (43)
|
||||||
|
<if test="orderCode != null and orderCode != ''">
|
||||||
|
and so.order_code=#{orderCode}
|
||||||
|
</if>
|
||||||
|
and so.pay_time >= #{startDate}
|
||||||
|
and so.pay_time < #{endDate}
|
||||||
|
group by soi.pk_order, soi.pk_wares
|
||||||
|
) soi
|
||||||
|
on soi.pk_order = so.pk_id
|
||||||
|
left join bd_wares bw
|
||||||
|
on bw.pk_id = soi.pk_wares
|
||||||
|
and bw.del_flag = 0
|
||||||
|
where so.order_status = 1
|
||||||
|
and so.order_type in (43)
|
||||||
<if test="orderCode != null and orderCode != ''">
|
<if test="orderCode != null and orderCode != ''">
|
||||||
and so.order_code=#{orderCode}
|
and so.order_code=#{orderCode}
|
||||||
</if>
|
</if>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.hzs.member.base.provider;
|
package com.hzs.member.base.provider;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.hzs.common.core.domain.R;
|
import com.hzs.common.core.domain.R;
|
||||||
import com.hzs.common.core.enums.ELoginType;
|
import com.hzs.common.core.enums.ELoginType;
|
||||||
import com.hzs.common.core.utils.StringUtils;
|
import com.hzs.common.core.utils.StringUtils;
|
||||||
|
@ -7,6 +8,7 @@ import com.hzs.common.domain.member.base.CuMember;
|
||||||
import com.hzs.common.domain.member.base.CuMemberRegister;
|
import com.hzs.common.domain.member.base.CuMemberRegister;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
|
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||||
|
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
import com.hzs.common.domain.sale.order.SaOrder;
|
import com.hzs.common.domain.sale.order.SaOrder;
|
||||||
import com.hzs.member.account.dto.BusinessCommissionDTO;
|
import com.hzs.member.account.dto.BusinessCommissionDTO;
|
||||||
|
@ -17,11 +19,14 @@ import com.hzs.member.base.service.*;
|
||||||
import com.hzs.member.base.IMemberServiceApi;
|
import com.hzs.member.base.IMemberServiceApi;
|
||||||
import com.hzs.member.empty.service.ICuMemberEmptyCodeService;
|
import com.hzs.member.empty.service.ICuMemberEmptyCodeService;
|
||||||
import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam;
|
import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam;
|
||||||
|
import com.hzs.retail.member.service.ICuMemberRetailRegionService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.dubbo.config.annotation.DubboService;
|
import org.apache.dubbo.config.annotation.DubboService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -40,6 +45,8 @@ public class MemberServiceProvider implements IMemberServiceApi {
|
||||||
private ICuMemberRegisterService iCuMemberRegisterService;
|
private ICuMemberRegisterService iCuMemberRegisterService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberEmptyCodeService iCuMemberEmptyCodeService;
|
private ICuMemberEmptyCodeService iCuMemberEmptyCodeService;
|
||||||
|
@Autowired
|
||||||
|
private ICuMemberRetailRegionService iCuMemberRetailRegionService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public R<LoginMember> getMemberInfo(String memberCode) {
|
public R<LoginMember> getMemberInfo(String memberCode) {
|
||||||
|
@ -362,4 +369,18 @@ public class MemberServiceProvider implements IMemberServiceApi {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Map<Integer, CuMemberRetailRegion>> listEffectiveRegion(Date queryDate) {
|
||||||
|
Map<Integer, CuMemberRetailRegion> regionMap = new HashMap<>();
|
||||||
|
|
||||||
|
List<CuMemberRetailRegion> retailRegionList = iCuMemberRetailRegionService.listEffectiveRegion(queryDate);
|
||||||
|
if (CollectionUtil.isNotEmpty(retailRegionList)) {
|
||||||
|
for (CuMemberRetailRegion retailRegion : retailRegionList) {
|
||||||
|
regionMap.put(retailRegion.getCounty(), retailRegion);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return R.ok(regionMap);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import com.hzs.common.domain.system.base.BdArea;
|
||||||
import com.hzs.retail.member.vo.UnboundAreaVO;
|
import com.hzs.retail.member.vo.UnboundAreaVO;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -25,9 +26,11 @@ public interface CuMemberRetailRegionMapper extends BaseMapper<CuMemberRetailReg
|
||||||
CuMemberRetailRegionExt getRegionByMember(@Param("pkMember") Long pkMember,
|
CuMemberRetailRegionExt getRegionByMember(@Param("pkMember") Long pkMember,
|
||||||
@Param("gradeValue") Integer gradeValue,
|
@Param("gradeValue") Integer gradeValue,
|
||||||
@Param("systemType") Integer systemType);
|
@Param("systemType") Integer systemType);
|
||||||
|
|
||||||
List<CuMemberRetailRegionExt> getRegionByMemberList(@Param("pkMember") Long pkMember,
|
List<CuMemberRetailRegionExt> getRegionByMemberList(@Param("pkMember") Long pkMember,
|
||||||
@Param("gradeValue") Integer gradeValue,
|
@Param("gradeValue") Integer gradeValue,
|
||||||
@Param("systemType") Integer systemType);
|
@Param("systemType") Integer systemType);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 插入收益区域
|
* 插入收益区域
|
||||||
*
|
*
|
||||||
|
@ -47,18 +50,6 @@ public interface CuMemberRetailRegionMapper extends BaseMapper<CuMemberRetailReg
|
||||||
**/
|
**/
|
||||||
List<CuMemberRetailRegionExt> memberretailRegList(CuMemberRetailRegionExt mrrExt);
|
List<CuMemberRetailRegionExt> memberretailRegList(CuMemberRetailRegionExt mrrExt);
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员购买订单数量
|
|
||||||
*
|
|
||||||
* @param pkMember 会员ID
|
|
||||||
* @param systemType 系统类型
|
|
||||||
* @param waresCodeList 商品列表
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
int getOrderCount(@Param("pkMember") Long pkMember,
|
|
||||||
@Param("systemType") Integer systemType,
|
|
||||||
@Param("waresCodeList") List<String> waresCodeList);
|
|
||||||
|
|
||||||
List<BdArea> getRegionTreeList(@Param("queryType") String queryType, @Param("userId") Long userId);
|
List<BdArea> getRegionTreeList(@Param("queryType") String queryType, @Param("userId") Long userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -69,4 +60,12 @@ public interface CuMemberRetailRegionMapper extends BaseMapper<CuMemberRetailReg
|
||||||
*/
|
*/
|
||||||
int mergeMemberRetailRegion(@Param("retailRegion") CuMemberRetailRegion retailRegion);
|
int mergeMemberRetailRegion(@Param("retailRegion") CuMemberRetailRegion retailRegion);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效区域列表
|
||||||
|
*
|
||||||
|
* @param queryDate
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<CuMemberRetailRegion> listEffectiveRegion(@Param("queryDate") Date queryDate);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import com.hzs.common.domain.system.base.BdArea;
|
||||||
import com.hzs.retail.member.param.RetailMemberRegionParam;
|
import com.hzs.retail.member.param.RetailMemberRegionParam;
|
||||||
import com.hzs.retail.member.vo.UnboundAreaVO;
|
import com.hzs.retail.member.vo.UnboundAreaVO;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -44,16 +45,6 @@ public interface ICuMemberRetailRegionService extends IService<CuMemberRetailReg
|
||||||
**/
|
**/
|
||||||
List<CuMemberRetailRegionExt> memberretailRegList(CuMemberRetailRegionExt mrrExt);
|
List<CuMemberRetailRegionExt> memberretailRegList(CuMemberRetailRegionExt mrrExt);
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员购买订单数量
|
|
||||||
*
|
|
||||||
* @param pkMember 会员ID
|
|
||||||
* @param systemType 系统类型
|
|
||||||
* @param waresCodeList 商品列表
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
int getOrderCount(Long pkMember, Integer systemType, List<String> waresCodeList);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询可选收益区域树结构 入参常量为 RetailRegionTreeQueryConstants
|
* 查询可选收益区域树结构 入参常量为 RetailRegionTreeQueryConstants
|
||||||
*
|
*
|
||||||
|
@ -72,4 +63,12 @@ public interface ICuMemberRetailRegionService extends IService<CuMemberRetailReg
|
||||||
*/
|
*/
|
||||||
int mergeMemberRetailRegion(CuMemberRetailRegion retailRegion);
|
int mergeMemberRetailRegion(CuMemberRetailRegion retailRegion);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效区域列表
|
||||||
|
*
|
||||||
|
* @param queryDate
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<CuMemberRetailRegion> listEffectiveRegion(Date queryDate);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,6 @@ 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;
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -97,11 +96,6 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl<CuMemberRetailR
|
||||||
return baseMapper.memberretailRegList(mrrExt);
|
return baseMapper.memberretailRegList(mrrExt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getOrderCount(Long pkMember, Integer systemType, List<String> waresCodeList) {
|
|
||||||
return baseMapper.getOrderCount(pkMember, systemType, waresCodeList);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Tree<String>> getRegionTreeList(String queryType, Long pkMember) {
|
public List<Tree<String>> getRegionTreeList(String queryType, Long pkMember) {
|
||||||
List<BdArea> areaList = baseMapper.getRegionTreeList(queryType, pkMember);
|
List<BdArea> areaList = baseMapper.getRegionTreeList(queryType, pkMember);
|
||||||
|
@ -173,4 +167,9 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl<CuMemberRetailR
|
||||||
return baseMapper.mergeMemberRetailRegion(retailRegion);
|
return baseMapper.mergeMemberRetailRegion(retailRegion);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<CuMemberRetailRegion> listEffectiveRegion(Date queryDate) {
|
||||||
|
return baseMapper.listEffectiveRegion(queryDate);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -175,29 +175,6 @@
|
||||||
order by CRR.CREATION_TIME desc
|
order by CRR.CREATION_TIME desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 会员购买订单数量 -->
|
|
||||||
<select id="getOrderCount" resultType="int">
|
|
||||||
select count(1)
|
|
||||||
from sa_order so
|
|
||||||
left join sa_order_items soi
|
|
||||||
on soi.pk_order = so.pk_id
|
|
||||||
and soi.del_flag = 0
|
|
||||||
and soi.is_gift = 1
|
|
||||||
left join bd_wares bw
|
|
||||||
on bw.pk_id = soi.pk_wares
|
|
||||||
and bw.del_flag = 0
|
|
||||||
and bw.system_type = so.system_type
|
|
||||||
where so.del_flag = 0
|
|
||||||
and so.order_status = 1
|
|
||||||
and so.pk_member = #{pkMember}
|
|
||||||
and so.order_type in (41, 42, 43)
|
|
||||||
and so.system_type = #{systemType}
|
|
||||||
and bw.wares_code in
|
|
||||||
<foreach collection="waresCodeList" item="item" open="(" separator="," close=")">
|
|
||||||
#{item}
|
|
||||||
</foreach>
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="getRegionTreeList" resultType="com.hzs.common.domain.system.base.BdArea">
|
<select id="getRegionTreeList" resultType="com.hzs.common.domain.system.base.BdArea">
|
||||||
SELECT
|
SELECT
|
||||||
pr.*,
|
pr.*,
|
||||||
|
@ -307,4 +284,14 @@
|
||||||
tmp.pk_member)
|
tmp.pk_member)
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<!-- 有效区域列表 -->
|
||||||
|
<select id="listEffectiveRegion" resultType="com.hzs.common.domain.retail.member.CuMemberRetailRegion">
|
||||||
|
select cmrr.*
|
||||||
|
from CU_MEMBER_RETAIL_REGION cmrr
|
||||||
|
where cmrr.del_flag = 0
|
||||||
|
and cmrr.effective = 0
|
||||||
|
and cmrr.business_type = 2
|
||||||
|
and cmrr.effective_end_date >= #{queryDate}
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -665,7 +665,7 @@ public class ApiOrderController extends BaseController {
|
||||||
myOrder.setRecCounty(recCounty);
|
myOrder.setRecCounty(recCounty);
|
||||||
}
|
}
|
||||||
myOrder.setAddress(saOrder.getRecAddress());
|
myOrder.setAddress(saOrder.getRecAddress());
|
||||||
myOrder.setOrderTypeVal(EOrderType.getEnumLabelByValue(myOrder.getOrderType()));
|
myOrder.setOrderTypeVal(EOrderType.getLabelByValue(myOrder.getOrderType()));
|
||||||
myOrder.setOrderStatusVal(EOrderStatus.getLabelByValue(saOrderItems.getOrderStatus()));
|
myOrder.setOrderStatusVal(EOrderStatus.getLabelByValue(saOrderItems.getOrderStatus()));
|
||||||
|
|
||||||
// 处理订单明细
|
// 处理订单明细
|
||||||
|
|
|
@ -561,10 +561,6 @@ public class EnumsInitController {
|
||||||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
initList.add(this.createData(value.getKey(), value.getLabel()));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (EBonusIncomeStatus value : EBonusIncomeStatus.values()) {
|
|
||||||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 数据类型(推荐)
|
// 数据类型(推荐)
|
||||||
for (ERecommendDadaType value : ERecommendDadaType.values()) {
|
for (ERecommendDadaType value : ERecommendDadaType.values()) {
|
||||||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
initList.add(this.createData(value.getKey(), value.getLabel()));
|
||||||
|
|
|
@ -44,9 +44,4 @@ public class BonusFieldConstants {
|
||||||
|
|
||||||
public static final String IS_WITHDRAWAL = "IS_WITHDRAWAL";
|
public static final String IS_WITHDRAWAL = "IS_WITHDRAWAL";
|
||||||
|
|
||||||
/**
|
|
||||||
* 人民币收益后缀
|
|
||||||
*/
|
|
||||||
public static final String INCOME_SUFFIX = "Ori";
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,17 @@ public class RetailConstants {
|
||||||
*/
|
*/
|
||||||
public static final Integer PICK_BASE = 4;
|
public static final Integer PICK_BASE = 4;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 2025.08.13 添加分公司级差收益,每1盒(4个产品)
|
||||||
|
* 第一分公司4元
|
||||||
|
* 第二分公司4元
|
||||||
|
* 公司6元
|
||||||
|
* 总拨出14元
|
||||||
|
*/
|
||||||
|
public static final BigDecimal BRANCH = new BigDecimal("4");
|
||||||
|
public static final BigDecimal COMPANY_TOTAL = new BigDecimal("14");
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员 推 会员 60
|
* 会员 推 会员 60
|
||||||
* VIP 推 会员 80
|
* VIP 推 会员 80
|
||||||
|
|
|
@ -20,6 +20,11 @@ public class BonusMsgConstants {
|
||||||
*/
|
*/
|
||||||
public static String REPUR_RANGE = "订单编号%s,%s为%s贡献了复购级差收益,计算金额%f,前一级差等级名称%s,当前级差等级名称%s。";
|
public static String REPUR_RANGE = "订单编号%s,%s为%s贡献了复购级差收益,计算金额%f,前一级差等级名称%s,当前级差等级名称%s。";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 复购配送收益说明
|
||||||
|
*/
|
||||||
|
public static String REPUR_REGION = "订单编号%s,%s为%s贡献了复购配送收益。";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 奖金重算 -- 只能重算7天内的奖金!
|
* 奖金重算 -- 只能重算7天内的奖金!
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.hzs.common.core.enums;
|
package com.hzs.common.core.enums;
|
||||||
|
|
||||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@ -14,17 +13,17 @@ public enum EBonusIncomeStatus {
|
||||||
/**
|
/**
|
||||||
* 正常
|
* 正常
|
||||||
*/
|
*/
|
||||||
NORMAL(0, "正常", 0, EnumsPrefixConstants.BONUS_INCOME_STATUS + "0"),
|
NORMAL(0, "正常", 0),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 停收
|
* 停收
|
||||||
*/
|
*/
|
||||||
STOP_INCOME(1, "停收", 0, EnumsPrefixConstants.BONUS_INCOME_STATUS + "1"),
|
STOP_INCOME(1, "停收", 0),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 烧伤
|
* 烧伤
|
||||||
*/
|
*/
|
||||||
FIRE_BURN(2, "烧伤", 0, EnumsPrefixConstants.BONUS_INCOME_STATUS + "2"),
|
FIRE_BURN(2, "烧伤", 0),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -40,8 +39,17 @@ public enum EBonusIncomeStatus {
|
||||||
* 是否启用(0=是,1=否) -- 来源EYesNo
|
* 是否启用(0=是,1=否) -- 来源EYesNo
|
||||||
*/
|
*/
|
||||||
private final int enable;
|
private final int enable;
|
||||||
/**
|
|
||||||
* 国际化翻译key值
|
public static String getLabelByValue(Integer value) {
|
||||||
*/
|
if (null == value) {
|
||||||
private final String key;
|
return "";
|
||||||
|
}
|
||||||
|
for (EOrderType enums : EOrderType.values()) {
|
||||||
|
if (enums.getValue() == value) {
|
||||||
|
return enums.getLabel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.hzs.common.core.enums;
|
package com.hzs.common.core.enums;
|
||||||
|
|
||||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@ -59,13 +58,17 @@ public enum EBonusItems {
|
||||||
////////////////////////////////////////////////// 新奖项 //////////////////////////////////////////////////
|
////////////////////////////////////////////////// 新奖项 //////////////////////////////////////////////////
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 直推级差收益 -- 秒结,日奖
|
* 直推级差收益 -- 日奖
|
||||||
*/
|
*/
|
||||||
RETAIL_RANGE_INCOME(25, "直推级差收益", 0),
|
RETAIL_RANGE_INCOME(25, "直推级差收益", 0),
|
||||||
/**
|
/**
|
||||||
* 复购级差收益 -- 秒结,日奖
|
* 复购级差收益 -- 日奖
|
||||||
*/
|
*/
|
||||||
RETAIL_REPURCHASE_INCOME(35, "复购级差收益", 0),
|
RETAIL_REPURCHASE_INCOME(35, "复购级差收益", 0),
|
||||||
|
/**
|
||||||
|
* 复购配送收益 -- 日奖
|
||||||
|
*/
|
||||||
|
RETAIL_REPURCHASE_DELIVERY_INCOME(36, "复购配送收益", 0),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,6 @@ import lombok.Getter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算类型
|
* 计算类型
|
||||||
*
|
|
||||||
* @author: sui q
|
|
||||||
* @time: 2022/8/25 15:09
|
|
||||||
* @description:
|
|
||||||
* @classname: ECalType
|
|
||||||
* @package_name: com.hzs.common.core.enums
|
|
||||||
*/
|
*/
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Getter
|
@Getter
|
||||||
|
|
|
@ -104,21 +104,6 @@ public enum EOrderType {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据值返回显示
|
|
||||||
*
|
|
||||||
* @param value
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static String getEnumLabelByValue(int value) {
|
|
||||||
for (EOrderType eOrderType : EOrderType.values()) {
|
|
||||||
if (eOrderType.getValue() == value) {
|
|
||||||
return eOrderType.getLabel();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<EOrderType> getOrderTypeSpecial() {
|
public static List<EOrderType> getOrderTypeSpecial() {
|
||||||
List<EOrderType> resultList = new ArrayList<>();
|
List<EOrderType> resultList = new ArrayList<>();
|
||||||
resultList.add(EOrderType.REGISTER_ORDER);
|
resultList.add(EOrderType.REGISTER_ORDER);
|
||||||
|
@ -126,6 +111,7 @@ public enum EOrderType {
|
||||||
resultList.add(EOrderType.REPURCHASE_ORDER);
|
resultList.add(EOrderType.REPURCHASE_ORDER);
|
||||||
return resultList;
|
return resultList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getLabelByValue(Integer value) {
|
public static String getLabelByValue(Integer value) {
|
||||||
if (null == value) {
|
if (null == value) {
|
||||||
return "";
|
return "";
|
||||||
|
|
|
@ -236,7 +236,7 @@ public class CuMemberBonus extends BaseEntity {
|
||||||
private BigDecimal retailSameLevelIncome;
|
private BigDecimal retailSameLevelIncome;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售区域分红
|
* 复购配送收益
|
||||||
*/
|
*/
|
||||||
@TableField("RETAIL_AREA_INCOME")
|
@TableField("RETAIL_AREA_INCOME")
|
||||||
private BigDecimal retailAreaIncome;
|
private BigDecimal retailAreaIncome;
|
||||||
|
|
Loading…
Reference in New Issue