Compare commits
	
		
			No commits in common. "fe382acca8ce20d3bcf0d785089427062696a21d" and "564fb2bf12a7feee844d0c60bb35c7ae860d8343" have entirely different histories.
		
	
	
		
			fe382acca8
			...
			564fb2bf12
		
	
		| 
						 | 
					@ -76,11 +76,11 @@ public class CuMemberBonusController extends BaseController {
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @AccessPermissions("totalBonus")
 | 
					    @AccessPermissions("totalBonus")
 | 
				
			||||||
    @PostMapping("/query-bonus-total")
 | 
					    @PostMapping("/query-bonus-total")
 | 
				
			||||||
    @Log(module = EOperationModule.BONUS_TOTAL, business = EOperationBusiness.BONUS_TOTAL, method = EOperationMethod.SELECT)
 | 
					    @Log(module = EOperationModule.BONUS_TOTAL,business = EOperationBusiness.BONUS_TOTAL , method = EOperationMethod.SELECT)
 | 
				
			||||||
    @ColumnAuthority(perms = "totalBonus")
 | 
					    @ColumnAuthority(perms = "totalBonus")
 | 
				
			||||||
    public TableDataInfo listBonusTotal(@RequestBody BonusParam bonusParam) {
 | 
					    public TableDataInfo listBonusTotal(@RequestBody BonusParam bonusParam){
 | 
				
			||||||
        List<Integer> pkVertex = new ArrayList<>();
 | 
					        List<Integer> pkVertex=new ArrayList<>();
 | 
				
			||||||
        if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) {
 | 
					        if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){
 | 
				
			||||||
            pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
 | 
					            pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
 | 
				
			||||||
                    .map(Integer::parseInt)
 | 
					                    .map(Integer::parseInt)
 | 
				
			||||||
                    .collect(Collectors.toList());
 | 
					                    .collect(Collectors.toList());
 | 
				
			||||||
| 
						 | 
					@ -99,10 +99,10 @@ public class CuMemberBonusController extends BaseController {
 | 
				
			||||||
     * 分页查询会员某个时间段内的奖金汇总
 | 
					     * 分页查询会员某个时间段内的奖金汇总
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @PostMapping("/export-bonus-total")
 | 
					    @PostMapping("/export-bonus-total")
 | 
				
			||||||
    @Log(module = EOperationModule.BONUS_TOTAL, business = EOperationBusiness.BONUS_TOTAL, method = EOperationMethod.EXPORT)
 | 
					    @Log(module = EOperationModule.BONUS_TOTAL,business = EOperationBusiness.BONUS_TOTAL , method = EOperationMethod.EXPORT)
 | 
				
			||||||
    public void exportBonusTotal(HttpServletResponse response, BonusParam bonusParam) {
 | 
					    public void exportBonusTotal(HttpServletResponse response, BonusParam bonusParam){
 | 
				
			||||||
        List<Integer> pkVertex = new ArrayList<>();
 | 
					        List<Integer> pkVertex=new ArrayList<>();
 | 
				
			||||||
        if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) {
 | 
					        if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){
 | 
				
			||||||
            pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
 | 
					            pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
 | 
				
			||||||
                    .map(Integer::parseInt)
 | 
					                    .map(Integer::parseInt)
 | 
				
			||||||
                    .collect(Collectors.toList());
 | 
					                    .collect(Collectors.toList());
 | 
				
			||||||
| 
						 | 
					@ -121,7 +121,7 @@ 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) {
 | 
					            for(String key : CuMemberBonusVO.INCOME_ARRAY){
 | 
				
			||||||
                ReflectUtils.invokeSetter(bonusTotalVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonus, key), cuMemberBonus.getOutExchangeRate()));
 | 
					                ReflectUtils.invokeSetter(bonusTotalVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonus, key), cuMemberBonus.getOutExchangeRate()));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            totalVoList.add(bonusTotalVO);
 | 
					            totalVoList.add(bonusTotalVO);
 | 
				
			||||||
| 
						 | 
					@ -135,9 +135,9 @@ public class CuMemberBonusController extends BaseController {
 | 
				
			||||||
    @AccessPermissions("BonusDetail")
 | 
					    @AccessPermissions("BonusDetail")
 | 
				
			||||||
    @PostMapping("/query-bonus-detail")
 | 
					    @PostMapping("/query-bonus-detail")
 | 
				
			||||||
    @Log(module = EOperationModule.BONUS_DETAIL, method = EOperationMethod.SELECT)
 | 
					    @Log(module = EOperationModule.BONUS_DETAIL, method = EOperationMethod.SELECT)
 | 
				
			||||||
    public TableDataInfo listBonus(@RequestBody BonusParam bonusParam) {
 | 
					    public TableDataInfo listBonus(@RequestBody BonusParam bonusParam){
 | 
				
			||||||
        List<Integer> pkVertex = new ArrayList<>();
 | 
					        List<Integer> pkVertex=new ArrayList<>();
 | 
				
			||||||
        if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) {
 | 
					        if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){
 | 
				
			||||||
            pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
 | 
					            pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
 | 
				
			||||||
                    .map(Integer::parseInt)
 | 
					                    .map(Integer::parseInt)
 | 
				
			||||||
                    .collect(Collectors.toList());
 | 
					                    .collect(Collectors.toList());
 | 
				
			||||||
| 
						 | 
					@ -145,16 +145,16 @@ public class CuMemberBonusController extends BaseController {
 | 
				
			||||||
        bonusParam.setPkVertexList(pkVertex);
 | 
					        bonusParam.setPkVertexList(pkVertex);
 | 
				
			||||||
        bonusParam.setPkCountry(SecurityUtils.getPkCountry());
 | 
					        bonusParam.setPkCountry(SecurityUtils.getPkCountry());
 | 
				
			||||||
        //获取管理员权限《角色地区范围、 体系列表、团队列表)
 | 
					        //获取管理员权限《角色地区范围、 体系列表、团队列表)
 | 
				
			||||||
        Date date = DateUtils.currentDate();
 | 
					        Date date=DateUtils.currentDate();
 | 
				
			||||||
        if (null == bonusParam.getStartDate() || null == bonusParam.getEndDate()) {
 | 
					        if(bonusParam.getStartDate()==null||bonusParam.getEndDate()==null){
 | 
				
			||||||
            bonusParam.setStartDate(DateUtils.currentMonthFirstDate());
 | 
					            bonusParam.setStartDate(DateUtils.currentMonthFirstDate());
 | 
				
			||||||
            bonusParam.setEndDate(DateUtils.beforeDate(1, ChronoUnit.DAYS, date));
 | 
					            bonusParam.setEndDate(DateUtils.beforeDate(1, ChronoUnit.DAYS,date));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        packageBonusParam(bonusParam);
 | 
					        packageBonusParam(bonusParam);
 | 
				
			||||||
        startPage();
 | 
					        startPage();
 | 
				
			||||||
        List<CuMemberBonusExt> cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
 | 
					        List<CuMemberBonusExt> cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
 | 
				
			||||||
        CuMemberBonusExt cmb = cuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam);
 | 
					        CuMemberBonusExt cmb =cuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam);
 | 
				
			||||||
        if (cmb != null) {
 | 
					        if(cmb!=null){
 | 
				
			||||||
            cmb.setMemberCode("合计");
 | 
					            cmb.setMemberCode("合计");
 | 
				
			||||||
            cuMemberBonusExtList.add(cmb);
 | 
					            cuMemberBonusExtList.add(cmb);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -169,9 +169,9 @@ public class CuMemberBonusController extends BaseController {
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @PostMapping("/export-bonus-detail")
 | 
					    @PostMapping("/export-bonus-detail")
 | 
				
			||||||
    @Log(module = EOperationModule.BONUS_DETAIL, method = EOperationMethod.SELECT)
 | 
					    @Log(module = EOperationModule.BONUS_DETAIL, method = EOperationMethod.SELECT)
 | 
				
			||||||
    public void exportBonusDetail(HttpServletResponse response, BonusParam bonusParam) {
 | 
					    public void exportBonusDetail(HttpServletResponse response, BonusParam bonusParam){
 | 
				
			||||||
        List<Integer> pkVertex = new ArrayList<>();
 | 
					        List<Integer> pkVertex=new ArrayList<>();
 | 
				
			||||||
        if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) {
 | 
					        if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){
 | 
				
			||||||
            pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
 | 
					            pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
 | 
				
			||||||
                    .map(Integer::parseInt)
 | 
					                    .map(Integer::parseInt)
 | 
				
			||||||
                    .collect(Collectors.toList());
 | 
					                    .collect(Collectors.toList());
 | 
				
			||||||
| 
						 | 
					@ -182,20 +182,20 @@ public class CuMemberBonusController extends BaseController {
 | 
				
			||||||
        List<CuMemberBonusExt> cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
 | 
					        List<CuMemberBonusExt> cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
 | 
				
			||||||
        CuMemberBonusExt cuMemberBonusExt = cuMemberBonusService.initCuMemberBonus();
 | 
					        CuMemberBonusExt cuMemberBonusExt = cuMemberBonusService.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);
 | 
					                cuMemberBonusService.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 = menuColumnServiceApi.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, "奖金明细导出");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private List<CuMemberBonusVO> getBonusDetail(List<CuMemberBonusExt> cuMemberBonusExtList) {
 | 
					    private List<CuMemberBonusVO>  getBonusDetail(List<CuMemberBonusExt> cuMemberBonusExtList) {
 | 
				
			||||||
        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);
 | 
				
			||||||
| 
						 | 
					@ -203,7 +203,7 @@ public class CuMemberBonusController extends BaseController {
 | 
				
			||||||
            cuMemberBonusVO.setMemberCode(cuMemberBonusExt.getMemberCode());
 | 
					            cuMemberBonusVO.setMemberCode(cuMemberBonusExt.getMemberCode());
 | 
				
			||||||
            cuMemberBonusVO.setMemberName(cuMemberBonusExt.getMemberName());
 | 
					            cuMemberBonusVO.setMemberName(cuMemberBonusExt.getMemberName());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (String key : CuMemberBonusVO.INCOME_ARRAY) {
 | 
					            for(String key :CuMemberBonusVO.INCOME_ARRAY){
 | 
				
			||||||
                ReflectUtils.invokeSetter(cuMemberBonusVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonusExt, key), cuMemberBonusExt.getOutExchangeRate()));
 | 
					                ReflectUtils.invokeSetter(cuMemberBonusVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonusExt, key), cuMemberBonusExt.getOutExchangeRate()));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            cuMemberBonusVoList.add(cuMemberBonusVO);
 | 
					            cuMemberBonusVoList.add(cuMemberBonusVO);
 | 
				
			||||||
| 
						 | 
					@ -217,7 +217,7 @@ public class CuMemberBonusController extends BaseController {
 | 
				
			||||||
    @AccessPermissions("sourceBonus")
 | 
					    @AccessPermissions("sourceBonus")
 | 
				
			||||||
    @PostMapping("/query-bonus-source")
 | 
					    @PostMapping("/query-bonus-source")
 | 
				
			||||||
    @Log(module = EOperationModule.BONUS_SOURCE, business = EOperationBusiness.BONUS_SOURCE, method = EOperationMethod.SELECT)
 | 
					    @Log(module = EOperationModule.BONUS_SOURCE, business = EOperationBusiness.BONUS_SOURCE, method = EOperationMethod.SELECT)
 | 
				
			||||||
    public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
 | 
					    public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam){
 | 
				
			||||||
        bonusParam.setPkCountry(SecurityUtils.getPkCountry());
 | 
					        bonusParam.setPkCountry(SecurityUtils.getPkCountry());
 | 
				
			||||||
        packageBonusParam(bonusParam);
 | 
					        packageBonusParam(bonusParam);
 | 
				
			||||||
        startPage();
 | 
					        startPage();
 | 
				
			||||||
| 
						 | 
					@ -230,7 +230,7 @@ public class CuMemberBonusController extends BaseController {
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @PostMapping("/export-bonus-source")
 | 
					    @PostMapping("/export-bonus-source")
 | 
				
			||||||
    @Log(module = EOperationModule.BONUS_SOURCE, business = EOperationBusiness.BONUS_SOURCE, method = EOperationMethod.EXPORT)
 | 
					    @Log(module = EOperationModule.BONUS_SOURCE, business = EOperationBusiness.BONUS_SOURCE, method = EOperationMethod.EXPORT)
 | 
				
			||||||
    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 = cuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam);
 | 
				
			||||||
| 
						 | 
					@ -239,20 +239,20 @@ public class CuMemberBonusController extends BaseController {
 | 
				
			||||||
        Map<String, String> transactionMap = transactionCommonService.exportEnumTransaction(EOrderType.values(), EBonusIncomeStatus.values());
 | 
					        Map<String, String> transactionMap = transactionCommonService.exportEnumTransaction(EOrderType.values(), EBonusIncomeStatus.values());
 | 
				
			||||||
        Map<Integer, String> transactionLongMap = transactionCommonService.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())) {
 | 
					            if(transactionMap.containsKey(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType().toString())) {
 | 
				
			||||||
                memberBonusDetailSerVO.setOrderTypeVal(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType()));
 | 
					                memberBonusDetailSerVO.setOrderTypeVal(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType()));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (transactionMap.containsKey(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus())) {
 | 
					            if(transactionMap.containsKey(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus())){
 | 
				
			||||||
                memberBonusDetailSerVO.setIncomeStatusVal(transactionMap.get(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()));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (transactionLongMap.containsKey(memberBonusDetailSerVO.getPkAwards())) {
 | 
					            if(transactionLongMap.containsKey(memberBonusDetailSerVO.getPkAwards())){
 | 
				
			||||||
                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,menuColumnServiceApi.queryMenuColumn("sourceBonus", SecurityUtils.getUserId()).getData());
 | 
				
			||||||
        util.exportExcel(response, memberBonusDetailSerVOList, "奖金来源导出");
 | 
					        util.exportExcel(response, memberBonusDetailSerVOList, "奖金来源导出");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,11 +45,11 @@ import java.util.*;
 | 
				
			||||||
public abstract class BonusSettleHandle {
 | 
					public abstract class BonusSettleHandle {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @DubboReference
 | 
					    @DubboReference
 | 
				
			||||||
    ISaOrderServiceApi saOrderServiceApi;
 | 
					    protected ISaOrderServiceApi saOrderServiceApi;
 | 
				
			||||||
    @DubboReference
 | 
					    @DubboReference
 | 
				
			||||||
    IBonusItemsServiceApi bonusItemsServiceApi;
 | 
					    protected IBonusItemsServiceApi bonusItemsServiceApi;
 | 
				
			||||||
    @DubboReference
 | 
					    @DubboReference
 | 
				
			||||||
    ICurrencyServiceApi currencyServiceApi;
 | 
					    private ICurrencyServiceApi currencyServiceApi;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected ICuMemberTreeService cuMemberTreeService;
 | 
					    protected ICuMemberTreeService cuMemberTreeService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -655,12 +655,33 @@ public abstract class BonusSettleHandle {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 获得 直推级差收益的备注
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @param saOrderExt           订单编号
 | 
					     * @param saOrderExt           订单编号
 | 
				
			||||||
     * @param cuMemberBonusRange   报单服务费
 | 
					     * @param cuMemberBonusRange   报单服务费
 | 
				
			||||||
     * @param sourceMemberRangeExt 提供奖金的人
 | 
					     * @param sourceMemberRangeExt 提供奖金的人
 | 
				
			||||||
     * @param targetMemberRangeExt 获得奖金的人
 | 
					     * @param targetMemberRangeExt 获得奖金的人
 | 
				
			||||||
 | 
					     * @Description: 获得 报单服务费收益的备注
 | 
				
			||||||
 | 
					     * @return: String
 | 
				
			||||||
 | 
					     * @Author: sui q
 | 
				
			||||||
 | 
					     * @Date: 2022/11/17 11:22
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    protected void rangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRangeExt sourceMemberRangeExt,
 | 
				
			||||||
 | 
					                               CuMemberRangeExt targetMemberRangeExt) {
 | 
				
			||||||
 | 
					        String remark = String.format(BonusMsgConstants.RANGE, saOrderExt.getOrderCode(),
 | 
				
			||||||
 | 
					                sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(),
 | 
				
			||||||
 | 
					                targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(),
 | 
				
			||||||
 | 
					                cuMemberBonusRange.getCalAchieve(), sourceMemberRangeExt.getRangeAwardsValue(), targetMemberRangeExt.getRangeAwardsValue());
 | 
				
			||||||
 | 
					        cuMemberBonusRange.setRemark(remark);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @param saOrderExt           订单编号
 | 
				
			||||||
 | 
					     * @param cuMemberBonusRange   报单服务费
 | 
				
			||||||
 | 
					     * @param sourceMemberRangeExt 提供奖金的人
 | 
				
			||||||
 | 
					     * @param targetMemberRangeExt 获得奖金的人
 | 
				
			||||||
 | 
					     * @Description: 获得 报单服务费收益的备注
 | 
				
			||||||
 | 
					     * @return: String
 | 
				
			||||||
 | 
					     * @Author: sui q
 | 
				
			||||||
 | 
					     * @Date: 2022/11/17 11:22
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    protected void rangeRetailRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
 | 
					    protected void rangeRetailRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
 | 
				
			||||||
                                     CuMemberRetailRangeExt targetMemberRangeExt) {
 | 
					                                     CuMemberRetailRangeExt targetMemberRangeExt) {
 | 
				
			||||||
| 
						 | 
					@ -689,13 +710,32 @@ public abstract class BonusSettleHandle {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 获得 平级收益的备注
 | 
					     * 获得 报单服务费收益的备注
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param saOrderExt           订单编号
 | 
					     * @param saOrderExt           订单编号
 | 
				
			||||||
     * @param cuMemberBonusRange   报单服务费
 | 
					     * @param cuMemberBonusRange   报单服务费
 | 
				
			||||||
     * @param sourceMemberRangeExt 提供奖金的人
 | 
					     * @param sourceMemberRangeExt 提供奖金的人
 | 
				
			||||||
     * @param targetMemberRangeExt 获得奖金的人
 | 
					     * @param targetMemberRangeExt 获得奖金的人
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					    protected void oriRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRangeExt sourceMemberRangeExt,
 | 
				
			||||||
 | 
					                                  CuMemberRangeExt targetMemberRangeExt) {
 | 
				
			||||||
 | 
					        String remark = String.format(BonusMsgConstants.ORI_RANGE, saOrderExt.getOrderCode(),
 | 
				
			||||||
 | 
					                sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(),
 | 
				
			||||||
 | 
					                targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(),
 | 
				
			||||||
 | 
					                cuMemberBonusRange.getCalAchieve(), targetMemberRangeExt.getRangeAwardsValue());
 | 
				
			||||||
 | 
					        cuMemberBonusRange.setRemark(remark);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @param saOrderExt           订单编号
 | 
				
			||||||
 | 
					     * @param cuMemberBonusRange   报单服务费
 | 
				
			||||||
 | 
					     * @param sourceMemberRangeExt 提供奖金的人
 | 
				
			||||||
 | 
					     * @param targetMemberRangeExt 获得奖金的人
 | 
				
			||||||
 | 
					     * @Description: 获得 报单服务费收益的备注
 | 
				
			||||||
 | 
					     * @return: String
 | 
				
			||||||
 | 
					     * @Author: sui q
 | 
				
			||||||
 | 
					     * @Date: 2022/11/17 11:22
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    protected void oriRetailRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
 | 
					    protected void oriRetailRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
 | 
				
			||||||
                                        CuMemberRetailRangeExt targetMemberRangeExt) {
 | 
					                                        CuMemberRetailRangeExt targetMemberRangeExt) {
 | 
				
			||||||
        String remark = String.format(BonusMsgConstants.ORI_RANGE, saOrderExt.getOrderCode(),
 | 
					        String remark = String.format(BonusMsgConstants.ORI_RANGE, saOrderExt.getOrderCode(),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -77,6 +77,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
        // 会员结算map(key:会员ID,value:结算扩展)
 | 
					        // 会员结算map(key:会员ID,value:结算扩展)
 | 
				
			||||||
        Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
 | 
					        Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 购买升级等级map(key:等级值,value:等级对象)
 | 
				
			||||||
 | 
					        Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
 | 
				
			||||||
        // 团队升级等级map(key:等级值,value:等级对象)
 | 
					        // 团队升级等级map(key:等级值,value:等级对象)
 | 
				
			||||||
        Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
 | 
					        Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
 | 
				
			||||||
        // 等级map(key:等级值,value:等级对象)
 | 
					        // 等级map(key:等级值,value:等级对象)
 | 
				
			||||||
| 
						 | 
					@ -84,6 +86,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
        // 等级列表
 | 
					        // 等级列表
 | 
				
			||||||
        List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
 | 
					        List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
 | 
				
			||||||
        for (BdGrade bdGrade : retaiGradeList) {
 | 
					        for (BdGrade bdGrade : retaiGradeList) {
 | 
				
			||||||
 | 
					            if (bdGrade.getBoxNumber() > 0) {
 | 
				
			||||||
 | 
					                retaiBuyGradeMap.put(bdGrade.getGradeValue(), bdGrade);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            if (bdGrade.getBoxTotal() > 0) {
 | 
					            if (bdGrade.getBoxTotal() > 0) {
 | 
				
			||||||
                retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade);
 | 
					                retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -97,6 +102,28 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
 | 
					        for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
 | 
				
			||||||
            if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
 | 
					            if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
 | 
				
			||||||
 | 
					                // 会员结算map不存在这个会员,则为新会员没处理过,需要处理
 | 
				
			||||||
 | 
					                cuMemberRetailRangeExt.setBuyNum(0);
 | 
				
			||||||
 | 
					                // TODO new 目前一次性补差升级,不需要校验是不是当天了
 | 
				
			||||||
 | 
					                cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
 | 
				
			||||||
 | 
					//                if (cuMemberRetailRangeExt.getPayTime() != null && DateUtils.compareDateEqual(DateUtils.parseStringToDate(settleDate), cuMemberRetailRangeExt.getPayTime())) {
 | 
				
			||||||
 | 
					//                    cuMemberRetailRangeExt.setSameDate(EYesNo.YES.getIntValue());
 | 
				
			||||||
 | 
					//                } else {
 | 
				
			||||||
 | 
					//                    cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
 | 
				
			||||||
 | 
					//                }
 | 
				
			||||||
 | 
					                for (Integer gradeValue : retaiBuyGradeMap.keySet()) {
 | 
				
			||||||
 | 
					                    BdGrade bdGrade = retaiBuyGradeMap.get(gradeValue);
 | 
				
			||||||
 | 
					                    if (bdGrade.getBoxNumber() > 0 && cuMemberRetailRangeExt.getGradeValue().equals(gradeValue)) {
 | 
				
			||||||
 | 
					                        // TODO new 一次性补差,需要下个等级的盒数 - 当前等级盒数???
 | 
				
			||||||
 | 
					                        cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
 | 
				
			||||||
 | 
					//                        if (cuMemberRetailRangeExt.getSameDate().equals(EYesNo.YES.getIntValue())) {
 | 
				
			||||||
 | 
					//                            cuMemberRetailRangeExt.setBuyNum(cuMemberRetailRangeExt.getNewBoxNum());
 | 
				
			||||||
 | 
					//                        } else {
 | 
				
			||||||
 | 
					//                            cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
 | 
				
			||||||
 | 
					//                        }
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
 | 
					                memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -132,7 +159,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
        // 计算团队业绩、盒数,计算等级、奖衔
 | 
					        // 计算团队业绩、盒数,计算等级、奖衔
 | 
				
			||||||
        cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeList));
 | 
					        cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeList));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 奖金处理
 | 
					        // TODO new 奖金处理
 | 
				
			||||||
        List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
 | 
					        List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
 | 
				
			||||||
        if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
 | 
					        if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
 | 
				
			||||||
                || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()
 | 
					                || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()
 | 
				
			||||||
| 
						 | 
					@ -144,8 +171,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                    // 计算直推级差收益 + 平级收益
 | 
					                    // 计算直推级差收益 + 平级收益
 | 
				
			||||||
                    cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, currentPeriod, saOrderItems, saOrderExt));
 | 
					                    cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, currentPeriod, saOrderItems, saOrderExt));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    // 注册、升级 并且有盒数商品,算激活
 | 
					                    if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
 | 
				
			||||||
                    sourceMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue());
 | 
					                            || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
 | 
				
			||||||
 | 
					                        // 注册、升级,计算是否激活
 | 
				
			||||||
 | 
					                        sourceMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue());
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -366,7 +396,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 日结:
 | 
					 | 
				
			||||||
     * 计算新零售团队的奖金,极差、平级、福利、福利分红、区域
 | 
					     * 计算新零售团队的奖金,极差、平级、福利、福利分红、区域
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    void calculateRetailBonusByDay(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, BonusRecordDetailVO bonusRecordDetailVO,
 | 
					    void calculateRetailBonusByDay(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, BonusRecordDetailVO bonusRecordDetailVO,
 | 
				
			||||||
| 
						 | 
					@ -415,7 +444,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
            Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
 | 
					            Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
 | 
				
			||||||
            // 团队升级等级map(key:等级值,value:等级对象)
 | 
					            // 团队升级等级map(key:等级值,value:等级对象)
 | 
				
			||||||
            Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
 | 
					            Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
 | 
				
			||||||
            // 等级map(key:等级值,value:等级对象)
 | 
					 | 
				
			||||||
            Map<Integer, BdGrade> gradeMap = new HashMap<>();
 | 
					            Map<Integer, BdGrade> gradeMap = new HashMap<>();
 | 
				
			||||||
            // 等级map(key:等级ID,value:等级对象)
 | 
					            // 等级map(key:等级ID,value:等级对象)
 | 
				
			||||||
            Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
 | 
					            Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
 | 
				
			||||||
| 
						 | 
					@ -442,11 +470,21 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                    cuMemberRetailRangeExt.setBuyNum(0);
 | 
					                    cuMemberRetailRangeExt.setBuyNum(0);
 | 
				
			||||||
                    // TODO new 目前一次性补差升级,不需要校验是不是当天了
 | 
					                    // TODO new 目前一次性补差升级,不需要校验是不是当天了
 | 
				
			||||||
                    cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
 | 
					                    cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
 | 
				
			||||||
 | 
					//                    if (cuMemberRetailRangeExt.getPayTime() != null && DateUtils.compareDateEqual(DateUtils.parseStringToDate(settleDate), cuMemberRetailRangeExt.getPayTime())) {
 | 
				
			||||||
 | 
					//                        cuMemberRetailRangeExt.setSameDate(EYesNo.YES.getIntValue());
 | 
				
			||||||
 | 
					//                    } else {
 | 
				
			||||||
 | 
					//                        cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
 | 
				
			||||||
 | 
					//                    }
 | 
				
			||||||
                    for (Integer gradeValue : retaiBuyGradeMap.keySet()) {
 | 
					                    for (Integer gradeValue : retaiBuyGradeMap.keySet()) {
 | 
				
			||||||
                        BdGrade bdGrade = retaiBuyGradeMap.get(gradeValue);
 | 
					                        BdGrade bdGrade = retaiBuyGradeMap.get(gradeValue);
 | 
				
			||||||
                        if (bdGrade.getBoxNumber() > 0 && cuMemberRetailRangeExt.getGradeValue().equals(gradeValue)) {
 | 
					                        if (bdGrade.getBoxNumber() > 0 && cuMemberRetailRangeExt.getGradeValue().equals(gradeValue)) {
 | 
				
			||||||
                            // TODO new 一次性补差,需要下个等级的盒数 - 当前等级盒数???
 | 
					                            // TODO new 一次性补差,需要下个等级的盒数 - 当前等级盒数???
 | 
				
			||||||
                            cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
 | 
					                            cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
 | 
				
			||||||
 | 
					//                            if (cuMemberRetailRangeExt.getSameDate().equals(EYesNo.YES.getIntValue())) {
 | 
				
			||||||
 | 
					//                                cuMemberRetailRangeExt.setBuyNum(cuMemberRetailRangeExt.getNewBoxNum());
 | 
				
			||||||
 | 
					//                            } else {
 | 
				
			||||||
 | 
					//                                cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
 | 
				
			||||||
 | 
					//                            }
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
| 
						 | 
					@ -503,6 +541,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                // 计算团队业绩、盒数,计算等级、奖衔
 | 
					                // 计算团队业绩、盒数,计算等级、奖衔
 | 
				
			||||||
                cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, null, boxNum, cuMemberGradeList));
 | 
					                cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, null, boxNum, cuMemberGradeList));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // TODO new 奖金处理
 | 
				
			||||||
                // 计算奖金 直推级差 + 平级收益
 | 
					                // 计算奖金 直推级差 + 平级收益
 | 
				
			||||||
                if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
 | 
					                if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
 | 
				
			||||||
                        || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType())
 | 
					                        || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType())
 | 
				
			||||||
| 
						 | 
					@ -1268,20 +1308,20 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
        CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
 | 
					        CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
 | 
				
			||||||
        // 推荐人
 | 
					        // 推荐人
 | 
				
			||||||
        long pkParent = sourceMemberRangeExt.getPkParent();
 | 
					        long pkParent = sourceMemberRangeExt.getPkParent();
 | 
				
			||||||
 | 
					        // 商品价格(没有乘商品数量)
 | 
				
			||||||
//        // 商品价格
 | 
					 | 
				
			||||||
//        BigDecimal beginBuyPrice = saOrderItems.getWaresPrice();
 | 
					 | 
				
			||||||
//        BigDecimal comBuyPrice = saOrderItems.getWaresPrice();
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//        // 开始计算等级值
 | 
					 | 
				
			||||||
//        int beginGradeValue = sourceMemberRangeExt.getGradeValue();
 | 
					 | 
				
			||||||
//        // 直推级差收益
 | 
					 | 
				
			||||||
//        BigDecimal calBonusIncome = BigDecimal.ZERO;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // 商品最终价格
 | 
					 | 
				
			||||||
        BigDecimal waresPrice = saOrderItems.getWaresPrice();
 | 
					        BigDecimal waresPrice = saOrderItems.getWaresPrice();
 | 
				
			||||||
        // 商品数量
 | 
					        // 商品数量
 | 
				
			||||||
        BigDecimal waresQuantityBig = new BigDecimal(saOrderItems.getWaresQuantity());
 | 
					        Integer waresQuantity = saOrderItems.getWaresQuantity();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 商品价格
 | 
				
			||||||
 | 
					        BigDecimal beginBuyPrice = saOrderItems.getWaresPrice();
 | 
				
			||||||
 | 
					        BigDecimal comBuyPrice = saOrderItems.getWaresPrice();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 开始计算等级值
 | 
				
			||||||
 | 
					        int beginGradeValue = sourceMemberRangeExt.getGradeValue();
 | 
				
			||||||
 | 
					        // 直推级差收益
 | 
				
			||||||
 | 
					        BigDecimal calBonusIncome = BigDecimal.ZERO;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 前一个会员等级
 | 
					        // 前一个会员等级
 | 
				
			||||||
        int beforeGradeValue = 0;
 | 
					        int beforeGradeValue = 0;
 | 
				
			||||||
        // 前一个会员等级的平级收益人数
 | 
					        // 前一个会员等级的平级收益人数
 | 
				
			||||||
| 
						 | 
					@ -1308,8 +1348,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            // 当前会员等级值
 | 
					            // 当前会员等级值
 | 
				
			||||||
            int calGradeValue = targetMemberRangeExt.getGradeValue();
 | 
					            int calGradeValue = targetMemberRangeExt.getGradeValue();
 | 
				
			||||||
            // 当前会员等级
 | 
					 | 
				
			||||||
            BdGrade bdGrade = gradeMap.get(calGradeValue);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // 直推级差税前收益
 | 
					            // 直推级差税前收益
 | 
				
			||||||
            BigDecimal rangeBonusIncome = null;
 | 
					            BigDecimal rangeBonusIncome = null;
 | 
				
			||||||
| 
						 | 
					@ -1320,19 +1358,19 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                // 前一个会员等级为0,肯定为第一次处理,直接处理直推级差收益
 | 
					                // 前一个会员等级为0,肯定为第一次处理,直接处理直推级差收益
 | 
				
			||||||
                if (EGrade.HAI_FAN.getValue() == calGradeValue) {
 | 
					                if (EGrade.HAI_FAN.getValue() == calGradeValue) {
 | 
				
			||||||
                    // VIP,拿1份40
 | 
					                    // VIP,拿1份40
 | 
				
			||||||
                    rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig);
 | 
					                    rangeBonusIncome = RetailConstants.RANGE_BONUS;
 | 
				
			||||||
                } else if (EGrade.YOU_KE.getValue() == calGradeValue) {
 | 
					                } else if (EGrade.YOU_KE.getValue() == calGradeValue) {
 | 
				
			||||||
                    // SVIP,拿2份40
 | 
					                    // SVIP,拿2份40
 | 
				
			||||||
                    rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("2"));
 | 
					                    rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(new BigDecimal("2"));
 | 
				
			||||||
                } else if (EGrade.MAKER.getValue() == calGradeValue) {
 | 
					                } else if (EGrade.MAKER.getValue() == calGradeValue) {
 | 
				
			||||||
                    // 卓越,拿3份40
 | 
					                    // 卓越,拿3份40
 | 
				
			||||||
                    rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("3"));
 | 
					                    rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(new BigDecimal("3"));
 | 
				
			||||||
                } else if (EGrade.VIP.getValue() == calGradeValue) {
 | 
					                } else if (EGrade.VIP.getValue() == calGradeValue) {
 | 
				
			||||||
                    // 首席,拿4份40
 | 
					                    // 首席,拿4份40
 | 
				
			||||||
                    rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("4"));
 | 
					                    rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(new BigDecimal("4"));
 | 
				
			||||||
                } else if (EGrade.S_VIP.getValue() == calGradeValue) {
 | 
					                } else if (EGrade.S_VIP.getValue() == calGradeValue) {
 | 
				
			||||||
                    // 合伙人,拿5份40
 | 
					                    // 合伙人,拿5份40
 | 
				
			||||||
                    rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("5"));
 | 
					                    rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(new BigDecimal("5"));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                // 赋值前一个会员等级
 | 
					                // 赋值前一个会员等级
 | 
				
			||||||
                beforeGradeValue = calGradeValue;
 | 
					                beforeGradeValue = calGradeValue;
 | 
				
			||||||
| 
						 | 
					@ -1342,12 +1380,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                    // V1 没有平级收益
 | 
					                    // V1 没有平级收益
 | 
				
			||||||
                    continue;
 | 
					                    continue;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                if (beforeSameAlgebra >= bdGrade.getAlgebra()) {
 | 
					                if (beforeSameAlgebra >= RetailConstants.SAME_ALGEBRA) {
 | 
				
			||||||
                    // 平级收益已经满10代,不继续处理平级收益
 | 
					                    // 平级收益已经满10代,不继续处理平级收益
 | 
				
			||||||
                    if (EGrade.S_VIP.getValue() == beforeGradeValue) {
 | 
					 | 
				
			||||||
                        // 平级处理等级为最高级V5,则结束处理
 | 
					 | 
				
			||||||
                        break;
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    continue;
 | 
					                    continue;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                // 平级收益(商品价格 * 千分之五) -- 2位小数,四舍五入
 | 
					                // 平级收益(商品价格 * 千分之五) -- 2位小数,四舍五入
 | 
				
			||||||
| 
						 | 
					@ -1361,7 +1395,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                int tmpGradeVal = (calGradeValue - beforeGradeValue) / 10;
 | 
					                int tmpGradeVal = (calGradeValue - beforeGradeValue) / 10;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // 新等级的直推级差收益
 | 
					                // 新等级的直推级差收益
 | 
				
			||||||
                rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal(tmpGradeVal));
 | 
					                rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(new BigDecimal(tmpGradeVal));
 | 
				
			||||||
                // 直推级差收益 = 新等级的直推级差收益 - 上一等级的平级收益
 | 
					                // 直推级差收益 = 新等级的直推级差收益 - 上一等级的平级收益
 | 
				
			||||||
                rangeBonusIncome = rangeBonusIncome.subtract(beforeSameBonus);
 | 
					                rangeBonusIncome = rangeBonusIncome.subtract(beforeSameBonus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1382,8 +1416,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
 | 
					                int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
 | 
				
			||||||
                CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
 | 
					                CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
 | 
				
			||||||
                cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
 | 
					                cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
 | 
				
			||||||
                cuMemberBonusRange.setCalAchieve(waresPrice);
 | 
					                cuMemberBonusRange.setPretaxIncome(rangeBonusIncome.multiply(new BigDecimal(waresQuantity)));
 | 
				
			||||||
                cuMemberBonusRange.setPretaxIncome(rangeBonusIncome);
 | 
					 | 
				
			||||||
                cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
 | 
					                cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
 | 
				
			||||||
                cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
 | 
					                cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
 | 
				
			||||||
                cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
 | 
					                cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
 | 
				
			||||||
| 
						 | 
					@ -1401,9 +1434,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                        targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
 | 
					                        targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
 | 
				
			||||||
                int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
 | 
					                int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
 | 
				
			||||||
                CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
 | 
					                CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
 | 
				
			||||||
                oriMemberBonusRange.setCalValue(RetailConstants.SAME_RATIO);
 | 
					                oriMemberBonusRange.setCalValue(BigDecimal.valueOf(2));
 | 
				
			||||||
                oriMemberBonusRange.setCalAchieve(waresPrice);
 | 
					                oriMemberBonusRange.setPretaxIncome(sameBonusIncome.multiply(new BigDecimal(waresQuantity)));
 | 
				
			||||||
                oriMemberBonusRange.setPretaxIncome(sameBonusIncome);
 | 
					 | 
				
			||||||
                oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
 | 
					                oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
 | 
				
			||||||
                oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
 | 
					                oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
 | 
				
			||||||
                oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
 | 
					                oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
 | 
				
			||||||
| 
						 | 
					@ -1416,127 +1448,135 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                memberBonusRangeList.add(oriMemberBonusRange);
 | 
					                memberBonusRangeList.add(oriMemberBonusRange);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//            // 如果价格是209,代表是第一单激活,只有平级收益,只有V5有平级收益
 | 
					            ///////////////////////////////////////////////////////////////
 | 
				
			||||||
//            if (beginBuyPrice.equals(BigDecimal.valueOf(209))) {
 | 
					
 | 
				
			||||||
//                calGradeValue = EGrade.S_VIP.getValue();
 | 
					
 | 
				
			||||||
//                if (beginGradeValue < EGrade.S_VIP.getValue()) {
 | 
					            // 如果价格是209,代表是第一单激活,只有平级收益,只有V5有平级收益
 | 
				
			||||||
//                    beginGradeValue = EGrade.S_VIP.getValue();
 | 
					            if (beginBuyPrice.equals(BigDecimal.valueOf(209))) {
 | 
				
			||||||
//                }
 | 
					                calGradeValue = EGrade.S_VIP.getValue();
 | 
				
			||||||
//            }
 | 
					                if (beginGradeValue < EGrade.S_VIP.getValue()) {
 | 
				
			||||||
//            BdGrade bdGrade = gradeMap.get(calGradeValue);
 | 
					                    beginGradeValue = EGrade.S_VIP.getValue();
 | 
				
			||||||
//            BigDecimal buyPrice = bdGrade.getBuyPrice();
 | 
					                }
 | 
				
			||||||
//            boolean isRange = Boolean.FALSE;
 | 
					            }
 | 
				
			||||||
//            // 有极差或者有平级
 | 
					            BdGrade bdGrade = gradeMap.get(calGradeValue);
 | 
				
			||||||
//            if (ComputeUtil.compareGreaterThan(beginBuyPrice, buyPrice)) {
 | 
					            BigDecimal buyPrice = bdGrade.getBuyPrice();
 | 
				
			||||||
//                // 计算极差
 | 
					            boolean isRange = Boolean.FALSE;
 | 
				
			||||||
//                CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
 | 
					            // 有极差或者有平级
 | 
				
			||||||
//                        targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
 | 
					            if (ComputeUtil.compareGreaterThan(beginBuyPrice, buyPrice)) {
 | 
				
			||||||
//                int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
 | 
					                // 计算极差
 | 
				
			||||||
//                CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
 | 
					
 | 
				
			||||||
//                cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
 | 
					                CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
 | 
				
			||||||
//                cuMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(ComputeUtil.computeSubtract(ComputeUtil.computeSubtract(beginBuyPrice, buyPrice), calBonusIncome), saOrderItems.getWaresQuantity()), BigDecimal.ONE));
 | 
					                        targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
 | 
				
			||||||
//                cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
 | 
					                int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
 | 
				
			||||||
//                cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
 | 
					                CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
 | 
				
			||||||
//                cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
 | 
					                cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
 | 
				
			||||||
//                rangeRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
 | 
					                cuMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(ComputeUtil.computeSubtract(ComputeUtil.computeSubtract(beginBuyPrice, buyPrice), calBonusIncome), saOrderItems.getWaresQuantity()), BigDecimal.ONE));
 | 
				
			||||||
//                BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
 | 
					                cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
 | 
				
			||||||
//                if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
 | 
					                cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
 | 
				
			||||||
//                    cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
 | 
					                cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
 | 
				
			||||||
//                    setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
 | 
					                rangeRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
 | 
				
			||||||
//                }
 | 
					                BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
 | 
				
			||||||
//                memberBonusRangeList.add(cuMemberBonusRange);
 | 
					                if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
 | 
				
			||||||
//
 | 
					                    cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
 | 
				
			||||||
//                beginBuyPrice = buyPrice;
 | 
					                    setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
 | 
				
			||||||
//                comBuyPrice = buyPrice;
 | 
					                }
 | 
				
			||||||
//                beginGradeValue = calGradeValue;
 | 
					                memberBonusRangeList.add(cuMemberBonusRange);
 | 
				
			||||||
//                sourceMemberRangeExt = targetMemberRangeExt;
 | 
					
 | 
				
			||||||
//                calBonusIncome = BigDecimal.ZERO;
 | 
					                beginBuyPrice = buyPrice;
 | 
				
			||||||
//            } else {
 | 
					                comBuyPrice = buyPrice;
 | 
				
			||||||
//                isRange = Boolean.TRUE;
 | 
					                beginGradeValue = calGradeValue;
 | 
				
			||||||
//                pkParent = targetMemberRangeExt.getPkMember();
 | 
					                sourceMemberRangeExt = targetMemberRangeExt;
 | 
				
			||||||
//            }
 | 
					                calBonusIncome = BigDecimal.ZERO;
 | 
				
			||||||
//            if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
 | 
					            } else {
 | 
				
			||||||
//                if (isRange) {
 | 
					                isRange = Boolean.TRUE;
 | 
				
			||||||
//                    pkParent = targetMemberRangeExt.getPkParent();
 | 
					                pkParent = targetMemberRangeExt.getPkMember();
 | 
				
			||||||
//                }
 | 
					            }
 | 
				
			||||||
//                continue;
 | 
					            if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
 | 
				
			||||||
//            }
 | 
					                if (isRange) {
 | 
				
			||||||
//            if (bdGrade.getAlgebra() > 0) {
 | 
					                    pkParent = targetMemberRangeExt.getPkParent();
 | 
				
			||||||
//                Long lastPkParent = pkParent;
 | 
					                }
 | 
				
			||||||
//                for (int j = 0; j < bdGrade.getAlgebra(); j++) {
 | 
					                continue;
 | 
				
			||||||
//                    targetMemberRangeExt = memberRangeExtMap.get(lastPkParent);
 | 
					            }
 | 
				
			||||||
//                    if (targetMemberRangeExt == null) {
 | 
					            if (bdGrade.getAlgebra() > 0) {
 | 
				
			||||||
//                        if (memberRangeExtMap.get(pkParent) == null) {
 | 
					                Long lastPkParent = pkParent;
 | 
				
			||||||
//                            break;
 | 
					                for (int j = 0; j < bdGrade.getAlgebra(); j++) {
 | 
				
			||||||
//                        }
 | 
					                    targetMemberRangeExt = memberRangeExtMap.get(lastPkParent);
 | 
				
			||||||
//                        pkParent = memberRangeExtMap.get(pkParent).getPkParent();
 | 
					                    if (targetMemberRangeExt == null) {
 | 
				
			||||||
//                        break;
 | 
					                        if (memberRangeExtMap.get(pkParent) == null) {
 | 
				
			||||||
//                    }
 | 
					                            break;
 | 
				
			||||||
//                    calGradeValue = targetMemberRangeExt.getGradeValue();
 | 
					                        }
 | 
				
			||||||
//                    BigDecimal sameBuyPrice = gradeMap.get(calGradeValue).getBuyPrice();
 | 
					                        pkParent = memberRangeExtMap.get(pkParent).getPkParent();
 | 
				
			||||||
//                    // 有平级
 | 
					                        break;
 | 
				
			||||||
//                    if (ComputeUtil.compareGreaterThan(sameBuyPrice, comBuyPrice)) {
 | 
					                    }
 | 
				
			||||||
 | 
					                    calGradeValue = targetMemberRangeExt.getGradeValue();
 | 
				
			||||||
 | 
					                    BigDecimal sameBuyPrice = gradeMap.get(calGradeValue).getBuyPrice();
 | 
				
			||||||
 | 
					                    // 有平级
 | 
				
			||||||
 | 
					//                    if (calGradeValue < beginGradeValue) {
 | 
				
			||||||
 | 
					                    if (ComputeUtil.compareGreaterThan(sameBuyPrice, comBuyPrice)) {
 | 
				
			||||||
 | 
					                        lastPkParent = targetMemberRangeExt.getPkParent();
 | 
				
			||||||
 | 
					                        pkParent = targetMemberRangeExt.getPkParent();
 | 
				
			||||||
 | 
					                        j--;
 | 
				
			||||||
 | 
					                        continue;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    if (ComputeUtil.compareGreaterThan(beginBuyPrice, sameBuyPrice)) {
 | 
				
			||||||
 | 
					                        pkParent = lastPkParent;
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
//                        lastPkParent = targetMemberRangeExt.getPkParent();
 | 
					//                        lastPkParent = targetMemberRangeExt.getPkParent();
 | 
				
			||||||
//                        pkParent = targetMemberRangeExt.getPkParent();
 | 
					 | 
				
			||||||
//                        j--;
 | 
					//                        j--;
 | 
				
			||||||
//                        continue;
 | 
					//                        continue;
 | 
				
			||||||
//                    }
 | 
					                    }
 | 
				
			||||||
//                    if (ComputeUtil.compareGreaterThan(beginBuyPrice, sameBuyPrice)) {
 | 
					                    lastPkParent = targetMemberRangeExt.getPkParent();
 | 
				
			||||||
//                        pkParent = lastPkParent;
 | 
					                    if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus() ||
 | 
				
			||||||
//                        break;
 | 
					                            ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory() ||
 | 
				
			||||||
//                    }
 | 
					                            targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue() ||
 | 
				
			||||||
//                    lastPkParent = targetMemberRangeExt.getPkParent();
 | 
					                            EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
 | 
				
			||||||
//                    if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus() ||
 | 
					                        j--;
 | 
				
			||||||
//                            ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory() ||
 | 
					                        continue;
 | 
				
			||||||
//                            targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue() ||
 | 
					                    }
 | 
				
			||||||
//                            EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
 | 
					                    BigDecimal bonusIncome = BigDecimal.ZERO;
 | 
				
			||||||
//                        j--;
 | 
					                    if (j == 0) {
 | 
				
			||||||
//                        continue;
 | 
					                        bonusIncome = bdGrade.getFirstAlgebra();
 | 
				
			||||||
//                    }
 | 
					                    } else if (j == 1) {
 | 
				
			||||||
//                    BigDecimal bonusIncome = BigDecimal.ZERO;
 | 
					                        bonusIncome = bdGrade.getSecondAlgebra();
 | 
				
			||||||
//                    if (j == 0) {
 | 
					                    } else if (j == 2) {
 | 
				
			||||||
//                        bonusIncome = bdGrade.getFirstAlgebra();
 | 
					                        bonusIncome = bdGrade.getThirdAlgebra();
 | 
				
			||||||
//                    } else if (j == 1) {
 | 
					                    }
 | 
				
			||||||
//                        bonusIncome = bdGrade.getSecondAlgebra();
 | 
					                    if (ComputeUtil.compareEqual(beginBuyPrice, sameBuyPrice)) {
 | 
				
			||||||
//                    } else if (j == 2) {
 | 
					                        CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
 | 
				
			||||||
//                        bonusIncome = bdGrade.getThirdAlgebra();
 | 
					                                targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
 | 
				
			||||||
//                    }
 | 
					                        int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
 | 
				
			||||||
//                    if (ComputeUtil.compareEqual(beginBuyPrice, sameBuyPrice)) {
 | 
					                        CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
 | 
				
			||||||
//                        CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
 | 
					                        oriMemberBonusRange.setCalValue(BigDecimal.valueOf(10));
 | 
				
			||||||
//                                targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
 | 
					                        oriMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(bonusIncome, saOrderItems.getWaresQuantity()), BigDecimal.ONE));
 | 
				
			||||||
//                        int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
 | 
					                        oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
 | 
				
			||||||
//                        CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
 | 
					                        oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
 | 
				
			||||||
//                        oriMemberBonusRange.setCalValue(BigDecimal.valueOf(10));
 | 
					                        oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
 | 
				
			||||||
//                        oriMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(bonusIncome, saOrderItems.getWaresQuantity()), BigDecimal.ONE));
 | 
					                        oriRetailRangeRemark(saOrderExt, oriMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
 | 
				
			||||||
//                        oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
 | 
					                        BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, oriMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
 | 
				
			||||||
//                        oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
 | 
					                        if (EBonusIncomeStatus.NORMAL.getValue() == oriMemberBonusRange.getIncomeStatus()) {
 | 
				
			||||||
//                        oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
 | 
					                            cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), oriMemberBonusRange.getPretaxIncome()));
 | 
				
			||||||
//                        oriRetailRangeRemark(saOrderExt, oriMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
 | 
					                            setRetailTotal(bdBonusDeduct, cuMemberBonus, oriMemberBonusRange);
 | 
				
			||||||
//                        BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, oriMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
 | 
					                        }
 | 
				
			||||||
//                        if (EBonusIncomeStatus.NORMAL.getValue() == oriMemberBonusRange.getIncomeStatus()) {
 | 
					                        memberBonusRangeList.add(oriMemberBonusRange);
 | 
				
			||||||
//                            cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), oriMemberBonusRange.getPretaxIncome()));
 | 
					                        calBonusIncome = ComputeUtil.computeAdd(calBonusIncome, bonusIncome);
 | 
				
			||||||
//                            setRetailTotal(bdBonusDeduct, cuMemberBonus, oriMemberBonusRange);
 | 
					                        pkParent = lastPkParent;
 | 
				
			||||||
//                        }
 | 
					                    } else {
 | 
				
			||||||
//                        memberBonusRangeList.add(oriMemberBonusRange);
 | 
					                        j--;
 | 
				
			||||||
//                        calBonusIncome = ComputeUtil.computeAdd(calBonusIncome, bonusIncome);
 | 
					                    }
 | 
				
			||||||
//                        pkParent = lastPkParent;
 | 
					                    if (j == bdGrade.getAlgebra() - 1) {
 | 
				
			||||||
//                    } else {
 | 
					                        beginGradeValue += 1;
 | 
				
			||||||
//                        j--;
 | 
					                        comBuyPrice = ComputeUtil.computeSubtract(comBuyPrice, BigDecimal.ONE);
 | 
				
			||||||
//                    }
 | 
					                        break;
 | 
				
			||||||
//                    if (j == bdGrade.getAlgebra() - 1) {
 | 
					                    }
 | 
				
			||||||
//                        beginGradeValue += 1;
 | 
					                }
 | 
				
			||||||
//                        comBuyPrice = ComputeUtil.computeSubtract(comBuyPrice, BigDecimal.ONE);
 | 
					            } else {
 | 
				
			||||||
//                        break;
 | 
					                if (isRange) {
 | 
				
			||||||
//                    }
 | 
					                    pkParent = targetMemberRangeExt.getPkParent();
 | 
				
			||||||
//                }
 | 
					                }
 | 
				
			||||||
//            } else {
 | 
					            }
 | 
				
			||||||
//                if (isRange) {
 | 
					            if (beginGradeValue > EGrade.S_VIP.getValue()) {
 | 
				
			||||||
//                    pkParent = targetMemberRangeExt.getPkParent();
 | 
					                break;
 | 
				
			||||||
//                }
 | 
					            }
 | 
				
			||||||
//            }
 | 
					 | 
				
			||||||
//            if (beginGradeValue > EGrade.S_VIP.getValue()) {
 | 
					 | 
				
			||||||
//                break;
 | 
					 | 
				
			||||||
//            }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return memberBonusRangeList;
 | 
					        return memberBonusRangeList;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,11 +9,27 @@ import java.math.BigDecimal;
 | 
				
			||||||
import java.util.Date;
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 奖金明细表
 | 
					 * @description: 奖金明细表
 | 
				
			||||||
 | 
					 * @author: sui q
 | 
				
			||||||
 | 
					 * @time: 2023/5/20 15:31
 | 
				
			||||||
 | 
					 * @classname: CuMemberBonusVO
 | 
				
			||||||
 | 
					 * @package_name: com.hzs.member.bonus.vo
 | 
				
			||||||
 | 
					 * version 1.0.0
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@Data
 | 
					@Data
 | 
				
			||||||
public class CuMemberBonusVO implements Serializable {
 | 
					public class CuMemberBonusVO implements Serializable {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 需要转换人民币的
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    public static final String[] INCOME_ARRAY = new String[]{
 | 
				
			||||||
 | 
					//            "directIncome", "expandIncome", "expandNoCapping", "expandCapping",
 | 
				
			||||||
 | 
					//            "coachIncome", "shareIncome", "serviceIncome", "cloudDirectIncome",
 | 
				
			||||||
 | 
					//            "cloudPurIncome", "cloudRepurIncome", "repurPushIncome", "repurRangeIncome", "repurExpandIncome",
 | 
				
			||||||
 | 
					//            "repurCoupon", "repurCouponShare", "backPoints", "serviceSpend",
 | 
				
			||||||
 | 
					//            "globalPoints", "carAwardPoints", "storeIncome", "hiFunIncome",
 | 
				
			||||||
 | 
					//            "makerDirectIncome", "makerShareIncome", "makerRealSubtotal", "purRealSubtotal",
 | 
				
			||||||
 | 
					//            "cloudRealSubtotal", "repurRealSubtotal", "repurCouponSubtotal", "realIncomeTotal"};
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 主键
 | 
					     * 主键
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
| 
						 | 
					@ -86,60 +102,185 @@ public class CuMemberBonusVO implements Serializable {
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private Integer grantStatus;
 | 
					    private Integer grantStatus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					//    /**
 | 
				
			||||||
     * 需要转换人民币的
 | 
					//     * 直推收益
 | 
				
			||||||
     */
 | 
					//     */
 | 
				
			||||||
    public static final String[] INCOME_ARRAY = new String[]{
 | 
					//    @Excel(name = "直推收益", scale = 2)
 | 
				
			||||||
            "backPoints", "retailRangeIncome", "retailSameLevelIncome", "retailAreaIncome",
 | 
					//    private BigDecimal directIncomeOri;
 | 
				
			||||||
            "retailBenefitRangeIncome", "retailBenefitAvgIncome",
 | 
					//
 | 
				
			||||||
            "retailBenefitIncome", "retailRealSubtotal", "realIncomeTotal"};
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 直推收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
    private BigDecimal retailRangeIncome;
 | 
					//    @Excel(name = "直推收益($)", scale = 2)
 | 
				
			||||||
    /**
 | 
					//    private BigDecimal directIncome;
 | 
				
			||||||
     * 直推收益
 | 
					//
 | 
				
			||||||
     */
 | 
					//    /**
 | 
				
			||||||
    @Excel(name = "直推收益", scale = 2)
 | 
					//     * 拓展收益
 | 
				
			||||||
    private BigDecimal retailRangeIncomeOri;
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "拓展收益", scale = 2)
 | 
				
			||||||
    private BigDecimal retailSameLevelIncome;
 | 
					//    private BigDecimal expandIncomeOri;
 | 
				
			||||||
    /**
 | 
					//
 | 
				
			||||||
     * 平级收益
 | 
					//    /**
 | 
				
			||||||
     */
 | 
					//     * 拓展收益
 | 
				
			||||||
    @Excel(name = "平级收益", scale = 2)
 | 
					//     */
 | 
				
			||||||
    private BigDecimal retailSameLevelIncomeOri;
 | 
					//    @Excel(name = "拓展收益($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal expandIncome;
 | 
				
			||||||
    private BigDecimal retailAreaIncome;
 | 
					//
 | 
				
			||||||
    /**
 | 
					//    /**
 | 
				
			||||||
     * 区域分红
 | 
					//     * 拓展无封 (拓展收益按等级正常比例结算,并 拓展收益按等级正常比例结算 无封顶)
 | 
				
			||||||
     */
 | 
					//     */
 | 
				
			||||||
    @Excel(name = "区域分红", scale = 2)
 | 
					//    private BigDecimal expandNoCapping;
 | 
				
			||||||
    private BigDecimal retailAreaIncomeOri;
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
    /**
 | 
					//     * 拓展封顶 (拓展收益按等级正常比例结算,不按4-N结算,根据配置的封顶值限制最大收益)
 | 
				
			||||||
     * 新零售福利极差收益
 | 
					//     */
 | 
				
			||||||
     */
 | 
					//    private BigDecimal expandCapping;
 | 
				
			||||||
    private BigDecimal retailBenefitRangeIncome;
 | 
					//
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
    @Excel(name = " 福利极差收益", scale = 2)
 | 
					//    /**
 | 
				
			||||||
    private BigDecimal retailBenefitRangeIncomeOri;
 | 
					//     * 拓展无封 (拓展收益按等级正常比例结算,并 拓展收益按等级正常比例结算 无封顶)
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
    /**
 | 
					//    private BigDecimal expandNoCappingOri;
 | 
				
			||||||
     * 新零售福利平均收益
 | 
					//
 | 
				
			||||||
     */
 | 
					//    /**
 | 
				
			||||||
    private BigDecimal retailBenefitAvgIncome;
 | 
					//     * 拓展封顶 (拓展收益按等级正常比例结算,不按4-N结算,根据配置的封顶值限制最大收益)
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
    @Excel(name = " 福利平均收益", scale = 2)
 | 
					//    private BigDecimal expandCappingOri;
 | 
				
			||||||
    private BigDecimal retailBenefitAvgIncomeOri;
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
    /**
 | 
					//     * 辅导收益
 | 
				
			||||||
     * 新零售福利加权收益
 | 
					//     */
 | 
				
			||||||
     */
 | 
					//    @Excel(name = "辅导收益", scale = 2)
 | 
				
			||||||
    private BigDecimal retailBenefitIncome;
 | 
					//    private BigDecimal coachIncomeOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
    @Excel(name = " 福利加权收益", scale = 2)
 | 
					//    /**
 | 
				
			||||||
    private BigDecimal retailBenefitIncomeOri;
 | 
					//     * 辅导收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "辅导收益($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal coachIncome;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 分红收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "分红收益", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal shareIncomeOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 分红收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "分红收益($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal shareIncome;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 报单收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "报单收益", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal serviceIncomeOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 报单收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "服务收益($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal serviceIncome;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 云代直推收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "云代直推收益", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal cloudDirectIncomeOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 云代直推收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "云代直推收益($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal cloudDirectIncome;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 云代首购收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "云代首购收益", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal cloudPurIncomeOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 云代首购收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "云代首购收益($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal cloudPurIncome;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 云代复购收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "云代复购收益", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal cloudRepurIncomeOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 云代复购收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "云代复购收益($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal cloudRepurIncome;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购级差收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购推荐收益", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurPushIncomeOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购级差收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购推荐收益", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurPushIncome;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购级差收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购级差收益", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurRangeIncomeOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购级差收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购级差收益($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurRangeIncome;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购拓展收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购拓展收益", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurExpandIncomeOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购拓展收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购拓展收益($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurExpandIncome;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购卷
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购卷", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurCouponOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购卷
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购卷($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurCoupon;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购券均分收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购券均分", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurCouponShareOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购券均分收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购券均分($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurCouponShare;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 商城重消
 | 
					     * 商城重消
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
| 
						 | 
					@ -149,11 +290,184 @@ public class CuMemberBonusVO implements Serializable {
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 商城重消
 | 
					     * 商城重消
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					    @Excel(name = "商城重消($)", scale = 2)
 | 
				
			||||||
    private BigDecimal backPoints;
 | 
					    private BigDecimal backPoints;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 平台服务费
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "平台服务费", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal serviceSpendOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 平台服务费
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "平台服务费($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal serviceSpend;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 环球积分
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "直推极差", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal globalPointsOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 环球积分
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "直推极差($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal globalPoints;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 车奖积分
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "车奖积分", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal carAwardPointsOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 车奖积分
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "车奖积分($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal carAwardPoints;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 店铺收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "店铺收益", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal storeIncomeOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 店铺收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "店铺收益($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal storeIncome;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 嗨粉推荐收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "嗨粉推荐收益", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal hiFunIncomeOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 嗨粉推荐收益
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "嗨粉推荐收益($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal hiFunIncome;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 首购实发小计
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "首购实发小计", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal purRealSubtotalOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 首购实发小计
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "首购实发小计($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal purRealSubtotal;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 云代实发小计
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "云代实发小计", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal cloudRealSubtotalOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 云代实发小计
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "云代实发小计($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal cloudRealSubtotal;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购实发小计
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购实发小计", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurRealSubtotalOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购实发小计
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购实发小计($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurRealSubtotal;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购券小计
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购券实发小计", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurCouponSubtotalOri;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 复购券小计
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @Excel(name = "复购券实发小计($)", scale = 2)
 | 
				
			||||||
 | 
					//    private BigDecimal repurCouponSubtotal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 需要转换人民币的
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static final String[] INCOME_ARRAY = new String[]{
 | 
				
			||||||
 | 
					            "backPoints","retailRangeIncome", "retailSameLevelIncome", "retailAreaIncome",
 | 
				
			||||||
 | 
					            "retailBenefitRangeIncome","retailBenefitAvgIncome",
 | 
				
			||||||
 | 
					            "retailBenefitIncome","retailRealSubtotal","realIncomeTotal"};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 新零售极差收益
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @Excel(name = "新零售极差收益($)", scale = 2)
 | 
				
			||||||
 | 
					    private BigDecimal retailRangeIncome;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Excel(name = " 新零售极差收益", scale = 2)
 | 
				
			||||||
 | 
					    private BigDecimal retailRangeIncomeOri;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 新零售平级收益
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @Excel(name = "平级收益($)", scale = 2)
 | 
				
			||||||
 | 
					    private BigDecimal retailSameLevelIncome;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Excel(name = " 平级收益", scale = 2)
 | 
				
			||||||
 | 
					    private BigDecimal retailSameLevelIncomeOri;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 新零售区域收益
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @Excel(name = "区域收益($)", scale = 2)
 | 
				
			||||||
 | 
					    private BigDecimal retailAreaIncome;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Excel(name = " 区域收益", scale = 2)
 | 
				
			||||||
 | 
					    private BigDecimal retailAreaIncomeOri;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 新零售福利极差收益
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @Excel(name = "福利极差收益($)", scale = 2)
 | 
				
			||||||
 | 
					    private BigDecimal retailBenefitRangeIncome;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Excel(name = " 福利极差收益", scale = 2)
 | 
				
			||||||
 | 
					    private BigDecimal retailBenefitRangeIncomeOri;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 新零售福利平均收益
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @Excel(name = "福利平均收益($)", scale = 2)
 | 
				
			||||||
 | 
					    private BigDecimal retailBenefitAvgIncome;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Excel(name = " 福利平均收益", scale = 2)
 | 
				
			||||||
 | 
					    private BigDecimal retailBenefitAvgIncomeOri;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 新零售福利加权收益
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @Excel(name = "福利加权收益($)", scale = 2)
 | 
				
			||||||
 | 
					    private BigDecimal retailBenefitIncome;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Excel(name = " 福利加权收益", scale = 2)
 | 
				
			||||||
 | 
					    private BigDecimal retailBenefitIncomeOri;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 新零售收益小计
 | 
					     * 新零售收益小计
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					    @Excel(name = "收益小计($)", scale = 2)
 | 
				
			||||||
    private BigDecimal retailRealSubtotal;
 | 
					    private BigDecimal retailRealSubtotal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Excel(name = " 收益小计", scale = 2)
 | 
					    @Excel(name = " 收益小计", scale = 2)
 | 
				
			||||||
| 
						 | 
					@ -165,8 +479,10 @@ public class CuMemberBonusVO implements Serializable {
 | 
				
			||||||
    @Excel(name = "实发收益总计", scale = 2)
 | 
					    @Excel(name = "实发收益总计", scale = 2)
 | 
				
			||||||
    private BigDecimal realIncomeTotalOri;
 | 
					    private BigDecimal realIncomeTotalOri;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 实发收益总计
 | 
					     * 实发收益总计
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					    @Excel(name = "实发收益总计($)", scale = 2)
 | 
				
			||||||
    private BigDecimal realIncomeTotal;
 | 
					    private BigDecimal realIncomeTotal;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -111,29 +111,28 @@
 | 
				
			||||||
        merge into ${rangeTableName} a
 | 
					        merge into ${rangeTableName} a
 | 
				
			||||||
        using (
 | 
					        using (
 | 
				
			||||||
        <foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
 | 
					        <foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
 | 
				
			||||||
            select #{item.pkMember} pk_member, #{item.pkAwards} pk_awards, #{item.pkGrade} pk_grade,
 | 
					            select #{item.pkMember} pk_member,#{item.pkAwards} pk_awards,#{item.pkGrade} pk_grade,
 | 
				
			||||||
            #{item.consumeBoxNum} consume_box_num, #{item.newBoxNum} new_bosx_num, #{item.pkShareAwards} pk_share_awards,
 | 
					            #{item.consumeBoxNum} consume_box_num,#{item.newBoxNum} new_bosx_num,#{item.pkShareAwards} pk_share_awards,
 | 
				
			||||||
            #{item.teamBoxNum} team_box_num, #{item.monthBoxNum} month_box_num, #{item.teamNewBoxNum} team_new_box_num,
 | 
					            #{item.teamBoxNum} team_box_num,#{item.monthBoxNum} month_box_num,#{item.teamNewBoxNum} team_new_box_num,
 | 
				
			||||||
            #{item.consumePv} consume_pv, #{item.monthConsumePv} month_consume_pv,
 | 
					            #{item.consumePv} consume_pv,#{item.monthConsumePv} month_consume_pv,
 | 
				
			||||||
            #{item.newConsumePv} new_consume_pv, #{item.teamConsumeAmount} team_consume_amount,
 | 
					            #{item.newConsumePv} new_consume_pv,#{item.teamConsumeAmount} team_consume_amount,
 | 
				
			||||||
            #{item.teamMonthAmount} team_month_amount, #{item.teamMonthPv} team_month_pv,
 | 
					            #{item.teamMonthAmount} team_month_amount,#{item.teamMonthPv} team_month_pv,
 | 
				
			||||||
            #{item.teamNewPv} team_new_pv, #{item.teamNewAmount} team_new_amount,
 | 
					            #{item.teamNewPv} team_new_pv,#{item.teamNewAmount} team_new_amount,
 | 
				
			||||||
            #{item.teamConsumePv} team_consume_pv, #{item.newBoxNum} new_box_num,
 | 
					            #{item.teamConsumePv} team_consume_pv,#{item.newBoxNum} new_box_num,
 | 
				
			||||||
            #{item.recommendNum} recommend_num, #{item.teamNum} team_num,
 | 
					            #{item.recommendNum} recommend_num,#{item.teamNum} team_num,#{item.enableStatus} enable_status
 | 
				
			||||||
            #{item.enableStatus} enable_status
 | 
					 | 
				
			||||||
            from dual
 | 
					            from dual
 | 
				
			||||||
        </foreach>
 | 
					        </foreach>
 | 
				
			||||||
        ) b
 | 
					        ) b
 | 
				
			||||||
        on (a.pk_member=b.pk_member)
 | 
					        on (a.pk_member=b.pk_member)
 | 
				
			||||||
        when matched then
 | 
					        when matched then
 | 
				
			||||||
        update set a.pk_awards = b.pk_awards, a.pk_grade = b.pk_grade, a.pk_share_awards = b.pk_share_awards,
 | 
					        update set a.pk_awards=b.pk_awards,a.pk_grade=b.pk_grade,a.pk_share_awards=b.pk_share_awards,
 | 
				
			||||||
        a.consume_box_num = b.consume_box_num, a.new_box_num = b.new_box_num, a.team_box_num = b.team_box_num,
 | 
					        a.consume_box_num=b.consume_box_num,a.new_box_num=b.new_box_num,a.team_box_num=b.team_box_num,
 | 
				
			||||||
        a.month_box_num = b.month_box_num, a.team_new_box_num = b.team_new_box_num,
 | 
					        a.month_box_num=b.month_box_num,a.team_new_box_num=b.team_new_box_num,
 | 
				
			||||||
        a.consume_pv = b.consume_pv, a.month_consume_pv = b.month_consume_pv, a.new_consume_pv = b.new_consume_pv,
 | 
					        a.consume_pv=b.consume_pv,a.month_consume_pv=b.month_consume_pv,a.new_consume_pv=b.new_consume_pv,
 | 
				
			||||||
        a.team_consume_amount = b.team_consume_amount, a.team_consume_pv = b.team_consume_pv,
 | 
					        a.team_consume_amount=b.team_consume_amount,a.team_consume_pv=b.team_consume_pv,
 | 
				
			||||||
        a.team_month_amount = b.team_month_amount, a.team_month_pv = b.team_month_pv,
 | 
					        a.team_month_amount=b.team_month_amount,a.team_month_pv=b.team_month_pv,
 | 
				
			||||||
        a.team_new_amount = b.team_new_amount, a.team_new_pv = b.team_new_pv,
 | 
					        a.team_new_amount=b.team_new_amount,a.team_new_pv=b.team_new_pv,
 | 
				
			||||||
        a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status
 | 
					        a.recommend_num=b.recommend_num,a.team_num=b.team_num,a.enable_status=b.enable_status
 | 
				
			||||||
    </update>
 | 
					    </update>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- 当前网体更新极差秒接表 -->
 | 
					    <!-- 当前网体更新极差秒接表 -->
 | 
				
			||||||
| 
						 | 
					@ -191,18 +190,18 @@
 | 
				
			||||||
        using (
 | 
					        using (
 | 
				
			||||||
        <foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
 | 
					        <foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
 | 
				
			||||||
            select #{item.pkMember} pk_member, #{item.pkGrade} pk_grade, #{item.pkAwards} pk_awards,
 | 
					            select #{item.pkMember} pk_member, #{item.pkGrade} pk_grade, #{item.pkAwards} pk_awards,
 | 
				
			||||||
            #{item.newBoxNum} new_box_num, #{item.newConsumePv} new_consume_pv,
 | 
					            #{item.newConsumePv} new_consume_pv, #{item.teamNewAmount} team_new_amount,
 | 
				
			||||||
            #{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv,
 | 
					            #{item.teamNewPv} team_new_pv, #{item.teamNewBoxNum} team_new_box_num,
 | 
				
			||||||
            #{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status
 | 
					            #{item.newBoxNum} new_box_num, #{item.enableStatus} enable_status
 | 
				
			||||||
            from dual
 | 
					            from dual
 | 
				
			||||||
        </foreach>
 | 
					        </foreach>
 | 
				
			||||||
        ) b
 | 
					        ) b
 | 
				
			||||||
        on (a.pk_member = b.pk_member)
 | 
					        on (a.pk_member = b.pk_member)
 | 
				
			||||||
        when matched then
 | 
					        when matched then
 | 
				
			||||||
        update set a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards,
 | 
					        update set a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards,
 | 
				
			||||||
        a.new_box_num = b.new_box_num, a.new_consume_pv = b.new_consume_pv,
 | 
					        a.new_consume_pv = b.new_consume_pv, a.team_new_amount = b.team_new_amount,
 | 
				
			||||||
        a.team_new_box_num = b.team_new_box_num,a.team_new_pv = b.team_new_pv,
 | 
					        a.team_new_pv = b.team_new_pv, a.team_new_box_num = b.team_new_box_num,
 | 
				
			||||||
        a.team_new_amount = b.team_new_amount,a.enable_status = b.enable_status
 | 
					        a.new_box_num = b.new_box_num, a.enable_status = b.enable_status
 | 
				
			||||||
    </update>
 | 
					    </update>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <update id="mergeMemberRetailGradeByMember">
 | 
					    <update id="mergeMemberRetailGradeByMember">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -298,11 +298,8 @@
 | 
				
			||||||
        </if>
 | 
					        </if>
 | 
				
			||||||
        order by cp.settle_date desc
 | 
					        order by cp.settle_date desc
 | 
				
			||||||
    </select>
 | 
					    </select>
 | 
				
			||||||
 | 
					 | 
				
			||||||
    <select id="queryMemberBonusByConditionForServer" resultMap="CuMemberBonus">
 | 
					    <select id="queryMemberBonusByConditionForServer" resultMap="CuMemberBonus">
 | 
				
			||||||
        select cm.member_code, cm.member_name,
 | 
					        select cm.member_code,cm.member_name,cm.pk_settle_grade,cm.pk_awards,bv.vertex_name,ct.team_name,
 | 
				
			||||||
        cm.pk_settle_grade, cm.pk_awards,
 | 
					 | 
				
			||||||
        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,
 | 
				
			||||||
| 
						 | 
					@ -314,7 +311,9 @@
 | 
				
			||||||
        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,
 | 
				
			||||||
        cm.pk_vertex, cm.service_code, cm.nick_name
 | 
					        cm.pk_vertex,
 | 
				
			||||||
 | 
					        cm.service_code,
 | 
				
			||||||
 | 
					        cm.nick_name
 | 
				
			||||||
        from cu_member_bonus cb
 | 
					        from cu_member_bonus cb
 | 
				
			||||||
        inner join cu_member cm
 | 
					        inner join cu_member cm
 | 
				
			||||||
        on cb.pk_member = cm.pk_id
 | 
					        on cb.pk_member = cm.pk_id
 | 
				
			||||||
| 
						 | 
					@ -326,7 +325,7 @@
 | 
				
			||||||
        on ct.pk_id = cm.pk_team_code
 | 
					        on ct.pk_id = cm.pk_team_code
 | 
				
			||||||
        left join bd_currency bc
 | 
					        left join bd_currency bc
 | 
				
			||||||
        on bc.pk_country = cb.pk_country
 | 
					        on bc.pk_country = cb.pk_country
 | 
				
			||||||
        where cb.del_flag = 0 and cm.del_flag = 0
 | 
					        where cb.del_flag=0 and cm.del_flag=0
 | 
				
			||||||
        and cp.del_flag=0
 | 
					        and cp.del_flag=0
 | 
				
			||||||
        <if test="bonusParam.pkCountry != null">
 | 
					        <if test="bonusParam.pkCountry != null">
 | 
				
			||||||
            and cm.pk_settle_country = #{bonusParam.pkCountry}
 | 
					            and cm.pk_settle_country = #{bonusParam.pkCountry}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,13 +5,14 @@ import com.hzs.common.core.web.controller.BaseController;
 | 
				
			||||||
import com.hzs.common.core.web.domain.AjaxResult;
 | 
					import com.hzs.common.core.web.domain.AjaxResult;
 | 
				
			||||||
import com.hzs.common.core.web.page.TableDataInfo;
 | 
					import com.hzs.common.core.web.page.TableDataInfo;
 | 
				
			||||||
import com.hzs.common.security.utils.SecurityUtils;
 | 
					import com.hzs.common.security.utils.SecurityUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
 | 
					import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
 | 
				
			||||||
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
 | 
					import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
 | 
				
			||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
 | 
					 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.web.bind.annotation.*;
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.math.BigDecimal;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -43,13 +44,7 @@ public class ApiRetailHomePageController extends BaseController {
 | 
				
			||||||
        Long pkMember = SecurityUtils.getUserId();
 | 
					        Long pkMember = SecurityUtils.getUserId();
 | 
				
			||||||
        Integer pkCountry = SecurityUtils.getPkCountry();
 | 
					        Integer pkCountry = SecurityUtils.getPkCountry();
 | 
				
			||||||
        Integer systemType = SecurityUtils.getSystemType();
 | 
					        Integer systemType = SecurityUtils.getSystemType();
 | 
				
			||||||
        CuMemberRetailDataStatisticsResultVO result = retailAchieveService.getRetailDataStatisticsDetail(pkMember, pkCountry, systemType);
 | 
					        return AjaxResult.success(retailAchieveService.selectMemberSmallBox(pkMember, pkCountry, systemType));
 | 
				
			||||||
        CuMemberRetailAchieveVO vo = CuMemberRetailAchieveVO.builder()
 | 
					 | 
				
			||||||
                .totalBox(result.getTotalBoxNum())
 | 
					 | 
				
			||||||
                .smallAreaBox(result.getSmallRangeTotalBoxNum())
 | 
					 | 
				
			||||||
                .build();
 | 
					 | 
				
			||||||
        return AjaxResult.success(vo);
 | 
					 | 
				
			||||||
//        return AjaxResult.success(retailAchieveService.selectMemberSmallBox(pkMember, pkCountry, systemType));
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,6 @@ package com.hzs.retail.member.mapper;
 | 
				
			||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
					import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
				
			||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
 | 
					import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
 | 
				
			||||||
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
 | 
					import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
 | 
				
			||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
 | 
					 | 
				
			||||||
import org.apache.ibatis.annotations.Param;
 | 
					import org.apache.ibatis.annotations.Param;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
| 
						 | 
					@ -167,13 +166,6 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    List<CuMemberRetailAchieveVO> selectMemberSumAchieve(CuMemberRetailAchieveVO cuMemberAchieveVO);
 | 
					    List<CuMemberRetailAchieveVO> selectMemberSumAchieve(CuMemberRetailAchieveVO cuMemberAchieveVO);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 获取会员结算明细
 | 
					 | 
				
			||||||
     * @param cuMemberAchieveVO
 | 
					 | 
				
			||||||
     * @return
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    List<CuMemberRetailDataStatisticsDetailVO> getRetailDataStatisticsDetail(CuMemberRetailAchieveVO cuMemberAchieveVO);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 查询当天自己新增盒数
 | 
					     * 查询当天自己新增盒数
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,11 +3,8 @@ package com.hzs.retail.member.service;
 | 
				
			||||||
import com.baomidou.mybatisplus.extension.service.IService;
 | 
					import com.baomidou.mybatisplus.extension.service.IService;
 | 
				
			||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
 | 
					import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
 | 
				
			||||||
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
 | 
					import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
 | 
				
			||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
 | 
					 | 
				
			||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Map;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
public interface ICuMemberRetailAchieveService extends IService<CuMemberRetailRange> {
 | 
					public interface ICuMemberRetailAchieveService extends IService<CuMemberRetailRange> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -103,12 +100,4 @@ public interface ICuMemberRetailAchieveService extends IService<CuMemberRetailRa
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    List<CuMemberRetailAchieveVO> selectMemberSmallBoxList(CuMemberRetailAchieveVO param);
 | 
					    List<CuMemberRetailAchieveVO> selectMemberSmallBoxList(CuMemberRetailAchieveVO param);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 获取会员结算明细
 | 
					 | 
				
			||||||
     * @param pkMember
 | 
					 | 
				
			||||||
     * @param pkCountry
 | 
					 | 
				
			||||||
     * @param systemType
 | 
					 | 
				
			||||||
     * @return
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    CuMemberRetailDataStatisticsResultVO getRetailDataStatisticsDetail(Long pkMember, Integer pkCountry, Integer systemType);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,26 +1,19 @@
 | 
				
			||||||
package com.hzs.retail.member.service.impl;
 | 
					package com.hzs.retail.member.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.hutool.core.collection.CollUtil;
 | 
					import cn.hutool.core.collection.CollUtil;
 | 
				
			||||||
import cn.hutool.core.util.ObjectUtil;
 | 
					 | 
				
			||||||
import cn.hutool.json.JSONUtil;
 | 
					 | 
				
			||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
					import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
				
			||||||
import com.hzs.common.core.constant.TableNameConstants;
 | 
					import com.hzs.common.core.constant.TableNameConstants;
 | 
				
			||||||
import com.hzs.common.core.enums.EGrade;
 | 
					import com.hzs.common.core.enums.EGrade;
 | 
				
			||||||
import com.hzs.common.core.enums.EYesNo;
 | 
					import com.hzs.common.core.enums.EYesNo;
 | 
				
			||||||
import com.hzs.common.core.utils.DateUtils;
 | 
					import com.hzs.common.core.utils.DateUtils;
 | 
				
			||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
 | 
					import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
 | 
				
			||||||
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
 | 
					 | 
				
			||||||
import com.hzs.common.domain.member.base.CuMember;
 | 
					import com.hzs.common.domain.member.base.CuMember;
 | 
				
			||||||
import com.hzs.common.security.utils.SecurityUtils;
 | 
					 | 
				
			||||||
import com.hzs.member.account.service.ICuMemberBaseService;
 | 
					import com.hzs.member.account.service.ICuMemberBaseService;
 | 
				
			||||||
import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
 | 
					import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
 | 
				
			||||||
import com.hzs.member.base.service.ICuMemberService;
 | 
					import com.hzs.member.base.service.ICuMemberService;
 | 
				
			||||||
import com.hzs.retail.member.mapper.CuMemberRetailRangeMapper;
 | 
					import com.hzs.retail.member.mapper.CuMemberRetailRangeMapper;
 | 
				
			||||||
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
 | 
					import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
 | 
				
			||||||
import com.hzs.retail.member.utils.DataStatisticsUtil;
 | 
					 | 
				
			||||||
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
 | 
					import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
 | 
				
			||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
 | 
					 | 
				
			||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
 | 
					 | 
				
			||||||
import com.hzs.system.config.IGradeServiceApi;
 | 
					import com.hzs.system.config.IGradeServiceApi;
 | 
				
			||||||
import com.hzs.system.config.dto.GradeDTO;
 | 
					import com.hzs.system.config.dto.GradeDTO;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
| 
						 | 
					@ -395,9 +388,9 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
 | 
				
			||||||
        String memberRetailTable = getTableName();
 | 
					        String memberRetailTable = getTableName();
 | 
				
			||||||
        String memberSecondTable = getDayTableName();
 | 
					        String memberSecondTable = getDayTableName();
 | 
				
			||||||
        //查询直推会员
 | 
					        //查询直推会员
 | 
				
			||||||
        List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
 | 
					//        List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
 | 
				
			||||||
        // 2025年6月11日 取伞下 + 自己的ID
 | 
					        // 2025年6月11日 取伞下 + 自己的ID
 | 
				
			||||||
//        List<Long> pkMemberList = baseMapper.selectSubMemberIdByRootMember(pkMember, systemType);
 | 
					        List<Long> pkMemberList = baseMapper.selectSubMemberIdByRootMember(pkMember, systemType);
 | 
				
			||||||
        //根据国家查汇率
 | 
					        //根据国家查汇率
 | 
				
			||||||
        BigDecimal rate = iCuMemberBaseService.getCurrency(pkCountry).getInExchangeRate();
 | 
					        BigDecimal rate = iCuMemberBaseService.getCurrency(pkCountry).getInExchangeRate();
 | 
				
			||||||
        //查询自己业绩
 | 
					        //查询自己业绩
 | 
				
			||||||
| 
						 | 
					@ -493,12 +486,8 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
 | 
				
			||||||
     * @return String
 | 
					     * @return String
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private String getAchieveAndBoxTableName(String date) {
 | 
					    private String getAchieveAndBoxTableName(String date) {
 | 
				
			||||||
        CuMemberSettlePeriod cuMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date);
 | 
					        int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date).getPkId();
 | 
				
			||||||
        if(ObjectUtil.isNotEmpty(cuMemberSettlePeriod)){
 | 
					        return TableNameConstants.CU_MEMBER_AMOUNT_BOX + period;
 | 
				
			||||||
            int period = cuMemberSettlePeriod.getPkId();
 | 
					 | 
				
			||||||
            return TableNameConstants.CU_MEMBER_AMOUNT_BOX + period;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return "";
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
| 
						 | 
					@ -557,25 +546,6 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
 | 
				
			||||||
        return new ArrayList<>();
 | 
					        return new ArrayList<>();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    public CuMemberRetailDataStatisticsResultVO getRetailDataStatisticsDetail(Long pkMember, Integer pkCountry, Integer systemType) {
 | 
					 | 
				
			||||||
        Long userId = SecurityUtils.getUserId();
 | 
					 | 
				
			||||||
        String memberRetailTable = getTableName();
 | 
					 | 
				
			||||||
        String memberSecondTable = getDayTableName();
 | 
					 | 
				
			||||||
        //查询直推会员
 | 
					 | 
				
			||||||
        List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
 | 
					 | 
				
			||||||
        pkMemberList.add(userId);
 | 
					 | 
				
			||||||
        CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder()
 | 
					 | 
				
			||||||
                .memberRetailTable(memberRetailTable)
 | 
					 | 
				
			||||||
                .memberRetailSTable(memberSecondTable)
 | 
					 | 
				
			||||||
                .pkMemberList(pkMemberList).systemType(systemType).build();
 | 
					 | 
				
			||||||
        List<CuMemberRetailDataStatisticsDetailVO> statisticsDetailVOList = baseMapper.getRetailDataStatisticsDetail(memberAchieveVO);
 | 
					 | 
				
			||||||
        CuMemberRetailDataStatisticsResultVO result = DataStatisticsUtil.getCalcMap(statisticsDetailVOList, userId);
 | 
					 | 
				
			||||||
        log.info("statisticsDetailVOList: {}", JSONUtil.toJsonStr(statisticsDetailVOList));
 | 
					 | 
				
			||||||
        log.info("calcMap -> {}", JSONUtil.toJsonStr(result));
 | 
					 | 
				
			||||||
        return result;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 查询会员是否激活
 | 
					     * 查询会员是否激活
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,156 +0,0 @@
 | 
				
			||||||
package com.hzs.retail.member.utils;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import cn.hutool.core.util.ObjectUtil;
 | 
					 | 
				
			||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
 | 
					 | 
				
			||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.math.BigDecimal;
 | 
					 | 
				
			||||||
import java.util.*;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 用户统计数据工具
 | 
					 | 
				
			||||||
 * 主要用户统计用户的业绩/盒数/明细等
 | 
					 | 
				
			||||||
 * 主要处理的类为
 | 
					 | 
				
			||||||
 * @link com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
public class DataStatisticsUtil {
 | 
					 | 
				
			||||||
    private static final Long SELF_VIRTUAL_ID = -1000L;
 | 
					 | 
				
			||||||
    private static final Long BIG_RANGE_VIRTUAL_ID = -2000L;
 | 
					 | 
				
			||||||
    private static final Long SMALL_RANGE_VIRTUAL_ID = -3000L;
 | 
					 | 
				
			||||||
    private static final String SELF_VIRTUAL_NAME = "个人消费虚拟分支";
 | 
					 | 
				
			||||||
    private static final String BIG_RANGE_VIRTUAL_NAME = "注水大区虚拟分支";
 | 
					 | 
				
			||||||
    private static final String SMALL_RANGE_VIRTUAL_NAME = "注水小区虚拟分支";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public static CuMemberRetailDataStatisticsResultVO getCalcMap(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
 | 
					 | 
				
			||||||
        calcDetailVOTotalField(detailVOList);
 | 
					 | 
				
			||||||
        addVirtualBranch(detailVOList, pkId);
 | 
					 | 
				
			||||||
        CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId);
 | 
					 | 
				
			||||||
        CuMemberRetailDataStatisticsDetailVO bigRange = getBigRangeDetailVO(detailVOList, pkId);
 | 
					 | 
				
			||||||
        return CuMemberRetailDataStatisticsResultVO.builder()
 | 
					 | 
				
			||||||
                .totalBoxNum(total.getTotalBoxNum())
 | 
					 | 
				
			||||||
                .totalPv(total.getTotalPv())
 | 
					 | 
				
			||||||
                .bigRangeTotalBoxNum(bigRange.getTotalBoxNum())
 | 
					 | 
				
			||||||
                .bigRangeTotalPv(bigRange.getTotalPv())
 | 
					 | 
				
			||||||
                .smallRangeTotalBoxNum(total.getTotalBoxNum() - bigRange.getTotalBoxNum())
 | 
					 | 
				
			||||||
                .smallRangeTotalPv(total.getTotalPv().subtract(bigRange.getTotalPv()))
 | 
					 | 
				
			||||||
                .build();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 计算集合内数据总数
 | 
					 | 
				
			||||||
     * @param detailVOList
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public static void calcDetailVOTotalField(List<CuMemberRetailDataStatisticsDetailVO> detailVOList){
 | 
					 | 
				
			||||||
        detailVOList.parallelStream().forEach(detailVO -> {
 | 
					 | 
				
			||||||
            detailVO.setTotalBoxNum(
 | 
					 | 
				
			||||||
                    detailVO.getConsumeBoxNum()         // 个人累计消费盒数(日结)
 | 
					 | 
				
			||||||
                     + detailVO.getNewBoxNum()          // 个人新增盒数(日结)
 | 
					 | 
				
			||||||
                     + detailVO.getTeamBoxNum()         // 团队累计消费盒数(日结)
 | 
					 | 
				
			||||||
                     + detailVO.getTeamNewBoxNum()      // 团队新增盒数(日结)
 | 
					 | 
				
			||||||
                     + detailVO.getSNewBoxNum()         // 个人新增消费盒数(秒结)
 | 
					 | 
				
			||||||
                     + detailVO.getSTeamNewBoxNum()     // 团队新增盒数(秒结)
 | 
					 | 
				
			||||||
//                     - detailVO.getBigBoxNum()          // 个人注水大区盒数(日结)
 | 
					 | 
				
			||||||
//                     - detailVO.getSmallBoxNum()        // 个人注水小区盒数(日结)
 | 
					 | 
				
			||||||
            );
 | 
					 | 
				
			||||||
            detailVO.setTotalPv(detailVO.getConsumePv()
 | 
					 | 
				
			||||||
                    .add(detailVO.getNewConsumePv())
 | 
					 | 
				
			||||||
                    .add(detailVO.getTeamConsumePv())
 | 
					 | 
				
			||||||
                    .add(detailVO.getTeamNewPv())
 | 
					 | 
				
			||||||
                    .add(detailVO.getSNewConsumePv())
 | 
					 | 
				
			||||||
                    .add(detailVO.getSTeamNewPv())
 | 
					 | 
				
			||||||
            );
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 增加虚拟分支 主要为
 | 
					 | 
				
			||||||
     * 1.自己的消费总数
 | 
					 | 
				
			||||||
     * 2.注水的大小区
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @param detailVOList
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public static void addVirtualBranch(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
 | 
					 | 
				
			||||||
        CuMemberRetailDataStatisticsDetailVO detailVO = getDetailVOByPKID(detailVOList, pkId);
 | 
					 | 
				
			||||||
        if(ObjectUtil.isNotEmpty(detailVO)){
 | 
					 | 
				
			||||||
            CuMemberRetailDataStatisticsDetailVO selfVirtualDetailVO = getCuMemberRetailDataStatisticsDetailVO(detailVO);
 | 
					 | 
				
			||||||
            detailVOList.add(selfVirtualDetailVO);
 | 
					 | 
				
			||||||
            if(detailVO.getBigBoxNum() >0 || detailVO.getSmallBoxNum() > 0){
 | 
					 | 
				
			||||||
                CuMemberRetailDataStatisticsDetailVO bigRangeVirtualDetailVO = CuMemberRetailDataStatisticsDetailVO.builder()
 | 
					 | 
				
			||||||
                        .pkId(BIG_RANGE_VIRTUAL_ID)
 | 
					 | 
				
			||||||
                        .memberCode(BIG_RANGE_VIRTUAL_NAME)
 | 
					 | 
				
			||||||
                        .totalBoxNum(detailVO.getBigBoxNum())
 | 
					 | 
				
			||||||
                        .totalPv(BigDecimal.ZERO)
 | 
					 | 
				
			||||||
                        .build();
 | 
					 | 
				
			||||||
                CuMemberRetailDataStatisticsDetailVO smallRangeVirtualDetailVO = CuMemberRetailDataStatisticsDetailVO.builder()
 | 
					 | 
				
			||||||
                        .pkId(SMALL_RANGE_VIRTUAL_ID)
 | 
					 | 
				
			||||||
                        .memberCode(SMALL_RANGE_VIRTUAL_NAME)
 | 
					 | 
				
			||||||
                        .totalBoxNum(detailVO.getBigBoxNum())
 | 
					 | 
				
			||||||
                        .totalPv(BigDecimal.ZERO)
 | 
					 | 
				
			||||||
                        .build();
 | 
					 | 
				
			||||||
                detailVOList.add(bigRangeVirtualDetailVO);
 | 
					 | 
				
			||||||
                detailVOList.add(smallRangeVirtualDetailVO);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private static CuMemberRetailDataStatisticsDetailVO getCuMemberRetailDataStatisticsDetailVO(CuMemberRetailDataStatisticsDetailVO detailVO) {
 | 
					 | 
				
			||||||
        return CuMemberRetailDataStatisticsDetailVO.builder()
 | 
					 | 
				
			||||||
                .pkId(SELF_VIRTUAL_ID)
 | 
					 | 
				
			||||||
                .memberCode(SELF_VIRTUAL_NAME)
 | 
					 | 
				
			||||||
                .totalBoxNum(
 | 
					 | 
				
			||||||
                        detailVO.getConsumeBoxNum()
 | 
					 | 
				
			||||||
                        + detailVO.getNewBoxNum()
 | 
					 | 
				
			||||||
                        + detailVO.getSNewBoxNum()
 | 
					 | 
				
			||||||
                )
 | 
					 | 
				
			||||||
                .totalPv(
 | 
					 | 
				
			||||||
                        detailVO.getConsumePv()
 | 
					 | 
				
			||||||
                                .add(detailVO.getNewConsumePv())
 | 
					 | 
				
			||||||
                                .add(detailVO.getSNewConsumePv())
 | 
					 | 
				
			||||||
                )
 | 
					 | 
				
			||||||
                .build();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 移除总数Top1
 | 
					 | 
				
			||||||
     * @param detailVOList
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public static List<CuMemberRetailDataStatisticsDetailVO> getSmallRangeList(List<CuMemberRetailDataStatisticsDetailVO> detailVOList){
 | 
					 | 
				
			||||||
        List<CuMemberRetailDataStatisticsDetailVO> result = new ArrayList<>();
 | 
					 | 
				
			||||||
        Integer maxTotalBoxNum = getMaxTotalBoxNum(detailVOList);
 | 
					 | 
				
			||||||
        if (maxTotalBoxNum == null) {
 | 
					 | 
				
			||||||
            return new ArrayList<>(detailVOList);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        boolean removed = false;
 | 
					 | 
				
			||||||
        for (CuMemberRetailDataStatisticsDetailVO vo : detailVOList) {
 | 
					 | 
				
			||||||
            if (!removed && Objects.equals(vo.getTotalBoxNum(), maxTotalBoxNum)) {
 | 
					 | 
				
			||||||
                removed = true;
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                result.add(vo);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return result;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 根据ID获取对应数据
 | 
					 | 
				
			||||||
     * @param detailVOList
 | 
					 | 
				
			||||||
     * @return
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public static CuMemberRetailDataStatisticsDetailVO getDetailVOByPKID(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
 | 
					 | 
				
			||||||
        return detailVOList.stream().filter(o -> o.getPkId().equals(pkId)).findFirst().orElse(null);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private static Integer getMaxTotalBoxNum(List<CuMemberRetailDataStatisticsDetailVO> detailVOList) {
 | 
					 | 
				
			||||||
        return detailVOList.stream()
 | 
					 | 
				
			||||||
                .map(CuMemberRetailDataStatisticsDetailVO::getTotalBoxNum)
 | 
					 | 
				
			||||||
                .filter(Objects::nonNull)
 | 
					 | 
				
			||||||
                .max(Integer::compare)
 | 
					 | 
				
			||||||
                .orElse(null);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    private static CuMemberRetailDataStatisticsDetailVO getBigRangeDetailVO(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
 | 
					 | 
				
			||||||
        return detailVOList.stream()
 | 
					 | 
				
			||||||
                .filter(vo -> vo.getTotalBoxNum() != null && !vo.getPkId().equals(pkId))
 | 
					 | 
				
			||||||
                .max(Comparator.comparingInt(CuMemberRetailDataStatisticsDetailVO::getTotalBoxNum))
 | 
					 | 
				
			||||||
                .orElse(null);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,104 +0,0 @@
 | 
				
			||||||
package com.hzs.retail.member.vo;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					 | 
				
			||||||
import lombok.Builder;
 | 
					 | 
				
			||||||
import lombok.Data;
 | 
					 | 
				
			||||||
import lombok.NoArgsConstructor;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.io.Serializable;
 | 
					 | 
				
			||||||
import java.math.BigDecimal;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 会员数据统计
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
@Data
 | 
					 | 
				
			||||||
@Builder
 | 
					 | 
				
			||||||
@AllArgsConstructor
 | 
					 | 
				
			||||||
@NoArgsConstructor
 | 
					 | 
				
			||||||
public class CuMemberRetailDataStatisticsDetailVO implements Serializable {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private static final long serialVersionUID = 4225390345989552207L;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 用户主键
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Long pkId;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 用户编号
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private String memberCode;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 日结表-个人累计消费pv
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private BigDecimal consumePv;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 日结表-个人当日新消费PV
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private BigDecimal newConsumePv;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 日结表-个人伞下累计消费pv
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private BigDecimal teamConsumePv;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 日结表-个人伞下新消费pv
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private BigDecimal teamNewPv;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 日结表-个人累计消费盒数
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Integer consumeBoxNum;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 日结表-个人当日新消费盒数
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Integer newBoxNum;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 日结表-个人伞下累计消费盒数
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Integer teamBoxNum;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 日结表-个人伞下新消费盒数
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Integer teamNewBoxNum;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 秒结表-个人新消费盒数
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Integer sNewBoxNum;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 秒结表-团队新消费盒数
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Integer sTeamNewBoxNum;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 秒结表-个人新消费pv
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private BigDecimal sNewConsumePv;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 秒结表-团队新消费pv
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private BigDecimal sTeamNewPv;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private Integer sTeamBoxNum;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 个人总业绩
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private BigDecimal totalPv;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 个人总盒数
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Integer totalBoxNum;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 注水大区
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Integer bigBoxNum;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 注水小区
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Integer smallBoxNum;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,58 +0,0 @@
 | 
				
			||||||
package com.hzs.retail.member.vo;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					 | 
				
			||||||
import lombok.Builder;
 | 
					 | 
				
			||||||
import lombok.Data;
 | 
					 | 
				
			||||||
import lombok.NoArgsConstructor;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.io.Serializable;
 | 
					 | 
				
			||||||
import java.math.BigDecimal;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 会员数据统计
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
@Data
 | 
					 | 
				
			||||||
@Builder
 | 
					 | 
				
			||||||
@AllArgsConstructor
 | 
					 | 
				
			||||||
@NoArgsConstructor
 | 
					 | 
				
			||||||
public class CuMemberRetailDataStatisticsResultVO implements Serializable {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private static final long serialVersionUID = 747472786422852424L;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 用户主键
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Long pkId;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 用户编号
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private String memberCode;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     *  总盒数
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Integer totalBoxNum;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 大区盒数
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Integer bigRangeTotalBoxNum;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 小区盒数
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Integer smallRangeTotalBoxNum;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 总业绩
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private BigDecimal totalPv;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 大区业绩
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private BigDecimal bigRangeTotalPv;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 小区业绩
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private BigDecimal smallRangeTotalPv;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -836,39 +836,4 @@
 | 
				
			||||||
        connect by prior cm.pk_id = cm.pk_parent
 | 
					        connect by prior cm.pk_id = cm.pk_parent
 | 
				
			||||||
        order by level
 | 
					        order by level
 | 
				
			||||||
    </select>
 | 
					    </select>
 | 
				
			||||||
    <select id="getRetailDataStatisticsDetail"
 | 
					 | 
				
			||||||
            resultType="com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO">
 | 
					 | 
				
			||||||
        SELECT
 | 
					 | 
				
			||||||
            cu.pk_id,
 | 
					 | 
				
			||||||
            cu.MEMBER_CODE,
 | 
					 | 
				
			||||||
            NVL( mr.CONSUME_PV, 0 ) consumePv,
 | 
					 | 
				
			||||||
            NVL( mr.NEW_CONSUME_PV, 0 ) newConsumePv,
 | 
					 | 
				
			||||||
            NVL( mr.TEAM_CONSUME_PV, 0 ) teamConsumePv,
 | 
					 | 
				
			||||||
            NVL( mr.TEAM_NEW_PV, 0 ) teamNewPv,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            NVL( mr.CONSUME_BOX_NUM, 0 ) consumeBoxNum,
 | 
					 | 
				
			||||||
            NVL( mr.NEW_BOX_NUM, 0 ) newBoxNum,
 | 
					 | 
				
			||||||
            NVL( mr.TEAM_BOX_NUM, 0 ) teamBoxNum,
 | 
					 | 
				
			||||||
            NVL( mr.TEAM_NEW_BOX_NUM, 0 ) teamNewBoxNum,
 | 
					 | 
				
			||||||
            NVL( mr.BIG_BOX_NUM, 0 ) bigBoxNum,
 | 
					 | 
				
			||||||
            NVL( mr.SMALL_BOX_NUM, 0 ) smallBoxNum,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            NVL( mrs.NEW_BOX_NUM, 0 ) sNewBoxNum,
 | 
					 | 
				
			||||||
            NVL( mrs.TEAM_NEW_BOX_NUM, 0 ) sTeamNewBoxNum,
 | 
					 | 
				
			||||||
            NVL( mrs.NEW_CONSUME_PV, 0 ) sNewConsumePv,
 | 
					 | 
				
			||||||
            NVL( mrs.TEAM_NEW_PV, 0 ) sTeamNewPv
 | 
					 | 
				
			||||||
        FROM
 | 
					 | 
				
			||||||
            cu_member cu
 | 
					 | 
				
			||||||
                left join ${memberRetailTable} mr on cu.PK_ID = mr.PK_MEMBER and mr.CATEGORY = 0
 | 
					 | 
				
			||||||
                left JOIN ${memberRetailSTable} mrs on cu.PK_ID = mrs.PK_MEMBER
 | 
					 | 
				
			||||||
        <where>
 | 
					 | 
				
			||||||
            <if test="pkMemberList != null and pkMemberList.size > 0">
 | 
					 | 
				
			||||||
                cu.pk_id in
 | 
					 | 
				
			||||||
                <foreach collection="pkMemberList" item="pkMember" separator="," open="(" close=")">
 | 
					 | 
				
			||||||
                    #{pkMember}
 | 
					 | 
				
			||||||
                </foreach>
 | 
					 | 
				
			||||||
            </if>
 | 
					 | 
				
			||||||
        </where>
 | 
					 | 
				
			||||||
    </select>
 | 
					 | 
				
			||||||
</mapper>
 | 
					</mapper>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,13 @@
 | 
				
			||||||
package com.hzs.system.config.controller.manage;
 | 
					package com.hzs.system.config.controller.manage;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.hutool.core.bean.BeanUtil;
 | 
					import cn.hutool.core.bean.BeanUtil;
 | 
				
			||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
					import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
				
			||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 | 
					import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 | 
				
			||||||
import com.hzs.common.core.annotation.Log;
 | 
					import com.hzs.common.core.annotation.Log;
 | 
				
			||||||
import com.hzs.common.core.constant.CacheConstants;
 | 
					import com.hzs.common.core.constant.CacheConstants;
 | 
				
			||||||
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
 | 
					import com.hzs.common.core.constant.msg.ConfigMsgConstants;
 | 
				
			||||||
 | 
					import com.hzs.common.core.domain.R;
 | 
				
			||||||
import com.hzs.common.core.enums.*;
 | 
					import com.hzs.common.core.enums.*;
 | 
				
			||||||
import com.hzs.common.core.service.RedisService;
 | 
					import com.hzs.common.core.service.RedisService;
 | 
				
			||||||
import com.hzs.common.core.utils.StringUtils;
 | 
					import com.hzs.common.core.utils.StringUtils;
 | 
				
			||||||
| 
						 | 
					@ -17,8 +19,10 @@ import com.hzs.common.domain.system.config.BdBonusItems;
 | 
				
			||||||
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
 | 
					import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
 | 
				
			||||||
import com.hzs.common.security.utils.SecurityUtils;
 | 
					import com.hzs.common.security.utils.SecurityUtils;
 | 
				
			||||||
import com.hzs.common.util.TransactionUtils;
 | 
					import com.hzs.common.util.TransactionUtils;
 | 
				
			||||||
 | 
					import com.hzs.system.base.ITransactionServiceApi;
 | 
				
			||||||
import com.hzs.system.config.service.IBdBonusItemsService;
 | 
					import com.hzs.system.config.service.IBdBonusItemsService;
 | 
				
			||||||
import com.hzs.system.config.vo.ApiBdBonusItemsVO;
 | 
					import com.hzs.system.config.vo.ApiBdBonusItemsVO;
 | 
				
			||||||
 | 
					import org.apache.dubbo.config.annotation.DubboReference;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.web.bind.annotation.*;
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,7 +32,12 @@ import java.util.Date;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 | 
					 * <p>
 | 
				
			||||||
 * 奖项配置 前端控制器
 | 
					 * 奖项配置 前端控制器
 | 
				
			||||||
 | 
					 * </p>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author zhangjing
 | 
				
			||||||
 | 
					 * @since 2022-11-09
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@RestController
 | 
					@RestController
 | 
				
			||||||
@RequestMapping("/manage/bd-bonus-items")
 | 
					@RequestMapping("/manage/bd-bonus-items")
 | 
				
			||||||
| 
						 | 
					@ -36,63 +45,79 @@ public class BdBonusItemsController extends BaseController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private IBdBonusItemsService bonusItemsService;
 | 
					    private IBdBonusItemsService bonusItemsService;
 | 
				
			||||||
    @Autowired
 | 
					    @DubboReference
 | 
				
			||||||
 | 
					    private ITransactionServiceApi iTransactionServiceApi;
 | 
				
			||||||
    private RedisService redisService;
 | 
					    private RedisService redisService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    public void setRedisService(RedisService redisService) {
 | 
				
			||||||
 | 
					        this.redisService = redisService;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 查询奖项配置列表
 | 
					     * @description: 查询奖项配置列表
 | 
				
			||||||
 | 
					     * @author: zhang jing
 | 
				
			||||||
 | 
					     * @date: 2022/8/30 10:20
 | 
				
			||||||
 | 
					     * @param: [bonusItems]
 | 
				
			||||||
 | 
					     * @return: com.hzs.common.core.web.page.TableDataInfo
 | 
				
			||||||
     **/
 | 
					     **/
 | 
				
			||||||
    @Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
 | 
					    @Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
 | 
				
			||||||
    @GetMapping("/list")
 | 
					    @GetMapping("/list")
 | 
				
			||||||
    public TableDataInfo list(BdBonusItems bonusItems) {
 | 
					    public TableDataInfo list(BdBonusItems bonusItems) {
 | 
				
			||||||
        List<BdBonusItemsExt> listExt = new ArrayList<>();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        startPage();
 | 
					        startPage();
 | 
				
			||||||
        LambdaQueryWrapper<BdBonusItems> queryWrapper = new LambdaQueryWrapper<>();
 | 
					        QueryWrapper<BdBonusItems> queryWrapper = new QueryWrapper();
 | 
				
			||||||
        queryWrapper.eq(BdBonusItems::getPkCountry, SecurityUtils.getPkCountry());
 | 
					        queryWrapper.eq("PK_COUNTRY", SecurityUtils.getPkCountry());
 | 
				
			||||||
        if (StringUtils.isNotNull(bonusItems.getBonusName())) {
 | 
					        if(StringUtils.isNotNull(bonusItems.getBonusName())){
 | 
				
			||||||
            queryWrapper.eq(BdBonusItems::getBonusName, bonusItems.getBonusName());
 | 
					            queryWrapper.eq("BONUS_NAME",bonusItems.getBonusName());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        queryWrapper.orderByAsc(BdBonusItems::getPkId);
 | 
					        queryWrapper.orderByAsc("PK_ID");
 | 
				
			||||||
 | 
					        List<BdBonusItemsExt> listExt = new ArrayList<>();
 | 
				
			||||||
        List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
 | 
					        List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
 | 
				
			||||||
        list.forEach(item -> listExt.add(BeanUtil.copyProperties(item, BdBonusItemsExt.class)));
 | 
					        list.forEach(item -> listExt.add(BeanUtil.copyProperties(item, BdBonusItemsExt.class)));
 | 
				
			||||||
 | 
					 | 
				
			||||||
        TableDataInfo tableDataInfo = getDataTable(list);
 | 
					        TableDataInfo tableDataInfo = getDataTable(list);
 | 
				
			||||||
        tableDataInfo.setRows(listExt);
 | 
					        tableDataInfo.setRows(listExt);
 | 
				
			||||||
        return tableDataInfo;
 | 
					        return tableDataInfo;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 导出
 | 
					     * @description: 导出
 | 
				
			||||||
 | 
					     * @author: zhang jing
 | 
				
			||||||
 | 
					     * @date: 2023/4/4 9:56
 | 
				
			||||||
 | 
					     * @param: [response, bonusItems]
 | 
				
			||||||
 | 
					     * @return: void
 | 
				
			||||||
     **/
 | 
					     **/
 | 
				
			||||||
    @Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.EXPORT)
 | 
					    @Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.EXPORT)
 | 
				
			||||||
    @PostMapping("/export")
 | 
					    @PostMapping("/export")
 | 
				
			||||||
    public void export(HttpServletResponse response, BdBonusItems bonusItems) {
 | 
					    public void export(HttpServletResponse response, BdBonusItems bonusItems) {
 | 
				
			||||||
        LambdaQueryWrapper<BdBonusItems> queryWrapper = new LambdaQueryWrapper<>();
 | 
					        QueryWrapper<BdBonusItems> queryWrapper = new QueryWrapper();
 | 
				
			||||||
        queryWrapper.eq(BdBonusItems::getPkCountry, SecurityUtils.getPkCountry());
 | 
					        queryWrapper.eq("PK_COUNTRY", SecurityUtils.getPkCountry());
 | 
				
			||||||
        if (StringUtils.isNotNull(bonusItems.getBonusName())) {
 | 
					        if(StringUtils.isNotNull(bonusItems.getBonusName())){
 | 
				
			||||||
            queryWrapper.eq(BdBonusItems::getBonusName, bonusItems.getBonusName());
 | 
					            queryWrapper.eq("BONUS_NAME",bonusItems.getBonusName());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        queryWrapper.orderByAsc(BdBonusItems::getPkId);
 | 
					        queryWrapper.orderByAsc("PK_ID");
 | 
				
			||||||
        List<BdBonusItemsExt> listExt = new ArrayList<>();
 | 
					        List<BdBonusItemsExt> listExt = new ArrayList<>();
 | 
				
			||||||
        List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
 | 
					        List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
 | 
				
			||||||
        list.forEach(item -> listExt.add(BeanUtil.copyProperties(item, BdBonusItemsExt.class)));
 | 
					        list.forEach(item -> listExt.add(BeanUtil.copyProperties(item, BdBonusItemsExt.class)));
 | 
				
			||||||
        ExcelUtil<BdBonusItemsExt> util = new ExcelUtil<>(BdBonusItemsExt.class);
 | 
					        ExcelUtil<BdBonusItemsExt> util = new ExcelUtil<>(BdBonusItemsExt.class);
 | 
				
			||||||
        util.exportExcel(response, listExt, "奖项配置");
 | 
					        util.exportExcel(response, listExt, "奖项配置");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 查询奖项配置列表(下拉选)
 | 
					     * @description: 查询奖项配置列表(下拉选)
 | 
				
			||||||
 | 
					     * @author: zhang jing
 | 
				
			||||||
 | 
					     * @date: 2022/8/30 10:20
 | 
				
			||||||
 | 
					     * @param: [bonusItems]
 | 
				
			||||||
 | 
					     * @return: com.hzs.common.core.web.page.TableDataInfo
 | 
				
			||||||
     **/
 | 
					     **/
 | 
				
			||||||
    @Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
 | 
					    @Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
 | 
				
			||||||
    @GetMapping("/listNoPage")
 | 
					    @GetMapping("/listNoPage")
 | 
				
			||||||
    public TableDataInfo listNoPage(BdBonusItems bonusItems) {
 | 
					    public TableDataInfo listNoPage(BdBonusItems bonusItems) {
 | 
				
			||||||
        LambdaQueryWrapper<BdBonusItems> queryWrapper = new LambdaQueryWrapper<>();
 | 
					        QueryWrapper<BdBonusItems> queryWrapper = new QueryWrapper();
 | 
				
			||||||
        queryWrapper.eq(BdBonusItems::getPkCountry, SecurityUtils.getPkCountry());
 | 
					        queryWrapper.eq("PK_COUNTRY", SecurityUtils.getPkCountry());
 | 
				
			||||||
        if (StringUtils.isNotNull(bonusItems.getBonusName())) {
 | 
					        if(StringUtils.isNotNull(bonusItems.getBonusName())){
 | 
				
			||||||
            queryWrapper.eq(BdBonusItems::getBonusName, bonusItems.getBonusName());
 | 
					            queryWrapper.eq("BONUS_NAME",bonusItems.getBonusName());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        queryWrapper.orderByAsc(BdBonusItems::getPkId);
 | 
					        queryWrapper.orderByAsc("PK_ID");
 | 
				
			||||||
        List<ApiBdBonusItemsVO> listVO = new ArrayList<>();
 | 
					        List<ApiBdBonusItemsVO> listVO = new ArrayList<>();
 | 
				
			||||||
        List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
 | 
					        List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
 | 
				
			||||||
        list.forEach(item -> listVO.add(BeanUtil.copyProperties(item, ApiBdBonusItemsVO.class)));
 | 
					        list.forEach(item -> listVO.add(BeanUtil.copyProperties(item, ApiBdBonusItemsVO.class)));
 | 
				
			||||||
| 
						 | 
					@ -100,71 +125,112 @@ public class BdBonusItemsController extends BaseController {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 生成奖项
 | 
					     * @description: 生成奖项
 | 
				
			||||||
 | 
					     * @author: zhang jing
 | 
				
			||||||
 | 
					     * @date: 2022/10/22 9:54
 | 
				
			||||||
 | 
					     * @param: [grade]
 | 
				
			||||||
 | 
					     * @return: com.hzs.common.core.web.domain.AjaxResult
 | 
				
			||||||
     **/
 | 
					     **/
 | 
				
			||||||
    @Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.INSERT)
 | 
					    @Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.INSERT)
 | 
				
			||||||
    @PostMapping("/generate")
 | 
					    @PostMapping("/generate")
 | 
				
			||||||
    public AjaxResult generate(@RequestBody BdBonusItems bonusItems) {
 | 
					    public AjaxResult generate(@RequestBody BdBonusItems bonusItems) {
 | 
				
			||||||
        return AjaxResult.success(bonusItemsService.generate(bonusItems));
 | 
					        return AjaxResult.success(bonusItemsService.generate(bonusItems));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 修改奖项配置
 | 
					     * @description: 修改奖项配置
 | 
				
			||||||
 | 
					     * @author: zhang jing
 | 
				
			||||||
 | 
					     * @date: 2022/8/30 10:21
 | 
				
			||||||
 | 
					     * @param: [bonusItems]
 | 
				
			||||||
 | 
					     * @return: com.hzs.common.core.web.domain.AjaxResult
 | 
				
			||||||
     **/
 | 
					     **/
 | 
				
			||||||
    @Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.UPDATE)
 | 
					    @Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.UPDATE)
 | 
				
			||||||
    @PostMapping("/update")
 | 
					    @PostMapping("/update")
 | 
				
			||||||
    public AjaxResult update(@RequestBody BdBonusItems bonusItems) {
 | 
					    public AjaxResult update(@RequestBody BdBonusItems bonusItems) {
 | 
				
			||||||
        Integer pkCountry = SecurityUtils.getPkCountry();
 | 
					        Integer pkCountry=SecurityUtils.getPkCountry();
 | 
				
			||||||
        if (StringUtils.isEmpty(bonusItems.getBonusName())) {
 | 
					        if(StringUtils.isEmpty(bonusItems.getBonusName())){
 | 
				
			||||||
            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.BONUS_NAME_NOT_NULL));
 | 
					            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.BONUS_NAME_NOT_NULL));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (StringUtils.isNull(bonusItems.getEnableState())) {
 | 
					        if(StringUtils.isNull(bonusItems.getEnableState())){
 | 
				
			||||||
            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.ENABLE_STATE_NOT_NULL));
 | 
					            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.ENABLE_STATE_NOT_NULL));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (StringUtils.isNull(bonusItems.getSettleType())) {
 | 
					        if(StringUtils.isNull(bonusItems.getSettleType())){
 | 
				
			||||||
            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.SETTLE_TYPE_NOT_NULL));
 | 
					            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.SETTLE_TYPE_NOT_NULL));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (StringUtils.isNull(bonusItems.getPublishTime())) {
 | 
					        if(StringUtils.isNull(bonusItems.getPublishTime())){
 | 
				
			||||||
            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.PUBLISH_TIME_NOT_NULL));
 | 
					            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.PUBLISH_TIME_NOT_NULL));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (StringUtils.isNull(bonusItems.getPublishDate())) {
 | 
					        if(StringUtils.isNull(bonusItems.getPublishDate())){
 | 
				
			||||||
            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.PUBLISH_DATE_NOT_NULL));
 | 
					            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.PUBLISH_DATE_NOT_NULL));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (StringUtils.isNull(bonusItems.getGrantDate())) {
 | 
					        if(StringUtils.isNull(bonusItems.getGrantDate())){
 | 
				
			||||||
            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.GRANT_DATE_NOT_NULL));
 | 
					            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.GRANT_DATE_NOT_NULL));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (StringUtils.isNull(bonusItems.getWithdrawalDate())) {
 | 
					        if(StringUtils.isNull(bonusItems.getWithdrawalDate())){
 | 
				
			||||||
            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.WITHDRAWAL_DATE_NOT_NULL));
 | 
					            return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.WITHDRAWAL_DATE_NOT_NULL));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //字段翻译保存到数据库
 | 
				
			||||||
 | 
					        if(null!=bonusItems.getPkTransaction()){
 | 
				
			||||||
 | 
					            R<Boolean> b = iTransactionServiceApi.updateTransaction(pkCountry,
 | 
				
			||||||
 | 
					                    bonusItems.getBonusName(),bonusItems.getPkTransaction(), true);
 | 
				
			||||||
 | 
					        }else{
 | 
				
			||||||
 | 
					            //字段翻译保存到数据库
 | 
				
			||||||
 | 
					            R<Integer> pkTransaction= iTransactionServiceApi.createTransaction(pkCountry, ETransactionKey.BD_BONUS_ITEMS,
 | 
				
			||||||
 | 
					                    bonusItems.getBonusName(), EYesNo.YES, EYesNo.NO);
 | 
				
			||||||
 | 
					            bonusItems.setPkTransaction(pkTransaction.getData());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        bonusItems.setPkModified(SecurityUtils.getUserId());
 | 
					        bonusItems.setPkModified(SecurityUtils.getUserId());
 | 
				
			||||||
        bonusItems.setModifiedTime(new Date());
 | 
					        bonusItems.setModifiedTime(new Date());
 | 
				
			||||||
        redisService.deleteObject(CacheConstants.BD_BONUS_ITEMS + pkCountry);
 | 
					        redisService.deleteObject(CacheConstants.BD_BONUS_ITEMS + pkCountry);
 | 
				
			||||||
        return toAjax(bonusItemsService.updateById(bonusItems));
 | 
					        return toAjax(bonusItemsService.updateById(bonusItems));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 查询单条奖项配置
 | 
					     * @description: 查询单条奖项配置
 | 
				
			||||||
 | 
					     * @author: zhang jing
 | 
				
			||||||
 | 
					     * @date: 2022/8/30 10:21
 | 
				
			||||||
 | 
					     * @param: [pkId]
 | 
				
			||||||
 | 
					     * @return: com.hzs.common.core.web.domain.AjaxResult
 | 
				
			||||||
     **/
 | 
					     **/
 | 
				
			||||||
    @Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
 | 
					    @Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
 | 
				
			||||||
    @GetMapping("/getOne/{pkId}")
 | 
					    @GetMapping("/getOne/{pkId}")
 | 
				
			||||||
    public AjaxResult getOne(@PathVariable Long pkId) {
 | 
					    public AjaxResult getOne(@PathVariable Long pkId) {
 | 
				
			||||||
        BdBonusItems bonusItems = bonusItemsService.getById(pkId);
 | 
					        BdBonusItems bonusItems = bonusItemsService.getById(pkId);
 | 
				
			||||||
        BdBonusItemsExt bonusItemsExt = BeanUtil.copyProperties(bonusItems, BdBonusItemsExt.class);
 | 
					        BdBonusItemsExt bonusItemsExt=BeanUtil.copyProperties(bonusItems, BdBonusItemsExt.class);
 | 
				
			||||||
        return AjaxResult.success(bonusItemsExt);
 | 
					        return AjaxResult.success(bonusItemsExt);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 删除奖项配置
 | 
					     * @description: 删除奖项配置
 | 
				
			||||||
 | 
					     * @author: zhang jing
 | 
				
			||||||
 | 
					     * @date: 2022/8/30 10:21
 | 
				
			||||||
 | 
					     * @param: [pkId]
 | 
				
			||||||
 | 
					     * @return: com.hzs.common.core.web.domain.AjaxResult
 | 
				
			||||||
     **/
 | 
					     **/
 | 
				
			||||||
    @Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.DELETE)
 | 
					    @Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.DELETE)
 | 
				
			||||||
    @DeleteMapping("/{pkId}")
 | 
					    @DeleteMapping("/{pkId}")
 | 
				
			||||||
    public AjaxResult delete(@PathVariable Long pkId) {
 | 
					    public AjaxResult delete(@PathVariable Long pkId) {
 | 
				
			||||||
        LambdaUpdateWrapper<BdBonusItems> updateWrapper = new LambdaUpdateWrapper<>();
 | 
					        UpdateWrapper<BdBonusItems> updateWrapper = new UpdateWrapper<>();
 | 
				
			||||||
        updateWrapper.eq(BdBonusItems::getPkId, pkId);
 | 
					        updateWrapper.eq("PK_ID", pkId);
 | 
				
			||||||
        updateWrapper.set(BdBonusItems::getDelFlag, EDelFlag.DELETE.getValue());
 | 
					        updateWrapper.set("DEL_FLAG", EDelFlag.DELETE.getValue());
 | 
				
			||||||
        updateWrapper.set(BdBonusItems::getPkModified, SecurityUtils.getUserId());
 | 
					        updateWrapper.set("PK_MODIFIED", SecurityUtils.getUserId());
 | 
				
			||||||
        updateWrapper.set(BdBonusItems::getModifiedTime, new Date());
 | 
					        updateWrapper.set("MODIFIED_TIME", new Date());
 | 
				
			||||||
        redisService.deleteObject(CacheConstants.BD_BONUS_ITEMS + SecurityUtils.getPkCountry());
 | 
					        redisService.deleteObject(CacheConstants.BD_BONUS_ITEMS + SecurityUtils.getPkCountry());
 | 
				
			||||||
 | 
					        //删除翻译
 | 
				
			||||||
 | 
					        BdBonusItems bdBonusItems=bonusItemsService.getById(pkId);
 | 
				
			||||||
 | 
					        List<Long> pkIdList=new ArrayList<>();
 | 
				
			||||||
 | 
					        if(null!=bdBonusItems.getPkTransaction()){
 | 
				
			||||||
 | 
					            pkIdList.add(bdBonusItems.getPkTransaction().longValue());
 | 
				
			||||||
 | 
					            R<Boolean> b=iTransactionServiceApi.removeTransactionByPkId(pkIdList);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        return toAjax(bonusItemsService.update(updateWrapper));
 | 
					        return toAjax(bonusItemsService.update(updateWrapper));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,6 +17,15 @@ public class RetailConstants {
 | 
				
			||||||
     * 直推平级收益比例(每代拿商品价格的千分之五)
 | 
					     * 直推平级收益比例(每代拿商品价格的千分之五)
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static final BigDecimal SAME_RATIO = new BigDecimal("0.005");
 | 
					    public static final BigDecimal SAME_RATIO = new BigDecimal("0.005");
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 直推平缓收益代数(每级都是10代)
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static final Integer SAME_ALGEBRA = 10;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 区域分红,每盒2元
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static final BigDecimal AREA_BOX_BONUS = new BigDecimal("2");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 盒数产品列表
 | 
					     * 盒数产品列表
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,10 +52,7 @@ public class BonusMsgConstants {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static String RETAIL_BENEFIT_AVG_INCOME = "获得%f月福利平均收益,结算月%s。";
 | 
					    public static String RETAIL_BENEFIT_AVG_INCOME = "获得%f月福利平均收益,结算月%s。";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    public static String RETAIL_AREA_INCOME = "订单编号%s,%s为%s贡献了区域收益,区域收益%f,收益县%s。";
 | 
				
			||||||
     * 区域分红说明
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public static String RETAIL_AREA_INCOME = "订单编号%s,%s为%s贡献了区域分红,区域分红%f,收益县%s。";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static String RETAIL_BENEFIT_INCOME = "获得%f月福利加权收益,结算月%s。";
 | 
					    public static String RETAIL_BENEFIT_INCOME = "获得%f月福利加权收益,结算月%s。";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -113,16 +110,10 @@ public class BonusMsgConstants {
 | 
				
			||||||
//    public static String SHARE_RANGE = "MSG_BONUS_017";
 | 
					//    public static String SHARE_RANGE = "MSG_BONUS_017";
 | 
				
			||||||
    public static String SHARE_RANGE = "订单编号%s,%s为%s贡献了复购极差收益,计算业绩%f,前一极差等级名称%s,当前极差等级名称%s。";
 | 
					    public static String SHARE_RANGE = "订单编号%s,%s为%s贡献了复购极差收益,计算业绩%f,前一极差等级名称%s,当前极差等级名称%s。";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static String RANGE = "订单编号%s,%s为%s贡献了极差收益,计算业绩%f,前一极差等级名称%s,当前极差等级名称%s。";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static String RETAIL_RANGE = "订单编号%s,%s为%s贡献了福利极差收益,计算业绩%f,前一极差等级名称%s,当前极差等级名称%s。";
 | 
					    public static String RETAIL_RANGE = "订单编号%s,%s为%s贡献了福利极差收益,计算业绩%f,前一极差等级名称%s,当前极差等级名称%s。";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 直推级差收益说明
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public static String RANGE = "订单编号%s,%s为%s贡献了直推级差收益,计算金额%f,前一级差等级名称%s,当前级差等级名称%s。";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 平级收益
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public static String ORI_RANGE = "订单编号%s,%s为%s贡献了平级收益,计算业绩%f,等级名称%s。";
 | 
					    public static String ORI_RANGE = "订单编号%s,%s为%s贡献了平级收益,计算业绩%f,等级名称%s。";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static String LE_SHARE_RANGE = "订单编号%s,%s为%s贡献了复购极差收益,收益%f。";
 | 
					    public static String LE_SHARE_RANGE = "订单编号%s,%s为%s贡献了复购极差收益,收益%f。";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,14 +5,18 @@ import lombok.AllArgsConstructor;
 | 
				
			||||||
import lombok.Getter;
 | 
					import lombok.Getter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 奖金收益状态  奖金明细表
 | 
					 * @Description: 奖金收益状态  奖金明细表
 | 
				
			||||||
 | 
					 * @Author: sui q
 | 
				
			||||||
 | 
					 * @Time: 2022/11/10 16:03
 | 
				
			||||||
 | 
					 * @Classname: EBonusIncomeStatus
 | 
				
			||||||
 | 
					 * @PackageName: com.hzs.common.core.enums
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
@Getter
 | 
					@Getter
 | 
				
			||||||
public enum EBonusIncomeStatus {
 | 
					public enum EBonusIncomeStatus {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 正常
 | 
					     *正常
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    NORMAL(0, "正常", 0, EnumsPrefixConstants.BONUS_INCOME_STATUS + "0"),
 | 
					    NORMAL(0, "正常", 0, EnumsPrefixConstants.BONUS_INCOME_STATUS + "0"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -224,7 +224,7 @@ public class CuMemberBonus extends BaseEntity {
 | 
				
			||||||
    private BigDecimal makerRealSubtotal;
 | 
					    private BigDecimal makerRealSubtotal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 新零售直推收益
 | 
					     * 新零售极差收益
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @TableField("RETAIL_RANGE_INCOME")
 | 
					    @TableField("RETAIL_RANGE_INCOME")
 | 
				
			||||||
    private BigDecimal retailRangeIncome;
 | 
					    private BigDecimal retailRangeIncome;
 | 
				
			||||||
| 
						 | 
					@ -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;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -381,7 +381,7 @@ public class CuBonusVertexStatis extends BaseEntity {
 | 
				
			||||||
    private BigDecimal retailConsumePv;
 | 
					    private BigDecimal retailConsumePv;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 新零售直推收益
 | 
					     * 新零售极差收益
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @TableField("RETAIL_RANGE_INCOME")
 | 
					    @TableField("RETAIL_RANGE_INCOME")
 | 
				
			||||||
    private BigDecimal retailRangeIncome;
 | 
					    private BigDecimal retailRangeIncome;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,12 @@ import lombok.Data;
 | 
				
			||||||
import lombok.EqualsAndHashCode;
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 | 
					 * <p>
 | 
				
			||||||
 * 奖项配置
 | 
					 * 奖项配置
 | 
				
			||||||
 | 
					 * </p>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author zhangjing
 | 
				
			||||||
 | 
					 * @since 2022-11-09
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@Data
 | 
					@Data
 | 
				
			||||||
@EqualsAndHashCode(callSuper = true)
 | 
					@EqualsAndHashCode(callSuper = true)
 | 
				
			||||||
| 
						 | 
					@ -17,25 +22,28 @@ public class BdBonusItemsExt extends BdBonusItems {
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 结算周期
 | 
					     * 结算周期
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @Excel(name = "结算周期", sort = 2)
 | 
					    @Excel(name = "结算周期",sort=2)
 | 
				
			||||||
    private String settleTypeVal;
 | 
					    private String settleTypeVal;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 公布日期
 | 
					     * 公布日期
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @Excel(name = "公布日期", sort = 4)
 | 
					    @Excel(name = "公布日期",sort=4)
 | 
				
			||||||
    private String publishDateVal;
 | 
					    private String publishDateVal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 发布日期
 | 
					     * 发布日期
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @Excel(name = "公布日期", sort = 5)
 | 
					    @Excel(name = "公布日期",sort=5)
 | 
				
			||||||
    private String grantDateVal;
 | 
					    private String grantDateVal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 可提现日期
 | 
					     * 可提现日期
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @Excel(name = "可提现日期", sort = 6)
 | 
					    @Excel(name = "可提现日期",sort=6)
 | 
				
			||||||
    private String withdrawalDateVal;
 | 
					    private String withdrawalDateVal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue