forked from angelo/java-retail-app
				
			Compare commits
	
		
			2 Commits
		
	
	
		
			f4f8cbb13f
			...
			90ed09631f
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						90ed09631f | |
| 
							
							
								
								 | 
						721b297cbd | 
| 
						 | 
				
			
			@ -25,5 +25,4 @@ public interface CuMemberTradeMapper extends BaseMapper<CuMemberTrade> {
 | 
			
		|||
     */
 | 
			
		||||
    void batchInsertCuMemberTrade(@Param("cuMemberTradeList") List<?> cuMemberTradeList);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,7 +19,6 @@ public class CuMemberTradeServiceImpl extends ServiceImpl<CuMemberTradeMapper, C
 | 
			
		|||
    @Autowired
 | 
			
		||||
    private CuMemberBonusSettle cuMemberBonusSettle;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<Long> batchQueryCuMemberTradeSeq(Integer rowNum) {
 | 
			
		||||
        return baseMapper.batchQueryCuMemberTradeSeq(rowNum);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,6 @@ import com.hzs.bonus.achieve.param.MemberPeriodParam;
 | 
			
		|||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
 | 
			
		||||
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
 | 
			
		||||
import com.hzs.bonus.bonus.service.IBonusGrantService;
 | 
			
		||||
import com.hzs.bonus.bonus.service.IBonusSettleService;
 | 
			
		||||
import com.hzs.bonus.bonus.service.ICuMemberBonusService;
 | 
			
		||||
import com.hzs.bonus.bonus.vo.MemberSettlePeriodVO;
 | 
			
		||||
import com.hzs.common.core.annotation.AccessPermissions;
 | 
			
		||||
| 
						 | 
				
			
			@ -15,7 +14,6 @@ import com.hzs.common.core.enums.EOperationBusiness;
 | 
			
		|||
import com.hzs.common.core.enums.EOperationMethod;
 | 
			
		||||
import com.hzs.common.core.enums.EOperationModule;
 | 
			
		||||
import com.hzs.common.core.utils.DateUtils;
 | 
			
		||||
import com.hzs.common.core.utils.StringUtils;
 | 
			
		||||
import com.hzs.common.core.web.controller.BaseController;
 | 
			
		||||
import com.hzs.common.core.web.domain.AjaxResult;
 | 
			
		||||
import com.hzs.common.core.web.page.TableDataInfo;
 | 
			
		||||
| 
						 | 
				
			
			@ -37,8 +35,6 @@ public class CuMemberSettleController extends BaseController {
 | 
			
		|||
    @Autowired
 | 
			
		||||
    private ICuMemberBonusService iCuMemberBonusService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private IBonusSettleService iBonusSettleService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberTreeService iCuMemberTreeService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
 | 
			
		||||
| 
						 | 
				
			
			@ -75,7 +71,6 @@ public class CuMemberSettleController extends BaseController {
 | 
			
		|||
    @GetMapping("/settle-bonus")
 | 
			
		||||
    @Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.INSERT)
 | 
			
		||||
    public AjaxResult settleBonus(String settleDate) {
 | 
			
		||||
//        initTable(settleDate);
 | 
			
		||||
        Date startDate = DateUtils.parseStringToDate(settleDate);
 | 
			
		||||
        if (DateUtils.compareDateAfter(DateUtils.beforeDate(6, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.SETTLE_VALIDATE_DATE));
 | 
			
		||||
| 
						 | 
				
			
			@ -85,9 +80,7 @@ public class CuMemberSettleController extends BaseController {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 公布奖金
 | 
			
		||||
     *
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     * 公布奖金 -- 页面使用
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/publish-bonus")
 | 
			
		||||
    @Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.PUBLISH)
 | 
			
		||||
| 
						 | 
				
			
			@ -101,9 +94,7 @@ public class CuMemberSettleController extends BaseController {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 不公布奖金
 | 
			
		||||
     *
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     * 不公布奖金 -- 页面使用
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/no-publish-bonus")
 | 
			
		||||
    @Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.NO_PUBLISH)
 | 
			
		||||
| 
						 | 
				
			
			@ -117,25 +108,44 @@ public class CuMemberSettleController extends BaseController {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 发放奖金
 | 
			
		||||
     *
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     * 发放奖金 -- 页面使用
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/grant-bonus")
 | 
			
		||||
    @Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.GRANT)
 | 
			
		||||
    public AjaxResult grantBonus(String settleDate) {
 | 
			
		||||
        Date startDate = DateUtils.parseStringToDate(settleDate);
 | 
			
		||||
        if (DateUtils.compareDateBefore(DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
 | 
			
		||||
            // 只能发放7天以外的奖金!
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.GRANT_VALIDATE_DATE));
 | 
			
		||||
        }
 | 
			
		||||
        iBonusGrantService.grantBonusByPeriod(SecurityUtils.getPkCountry(), settleDate);
 | 
			
		||||
 | 
			
		||||
        // 发放开始时间
 | 
			
		||||
        String startSettleDate = null;
 | 
			
		||||
        // 发放结束时间
 | 
			
		||||
        String endSettleDate = null;
 | 
			
		||||
        // 发放日期的天
 | 
			
		||||
        int dateDD = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, startDate));
 | 
			
		||||
        // 发放最后一天
 | 
			
		||||
        int monthLast = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, DateUtils.currentMonthLastDate(startDate)));
 | 
			
		||||
        if (dateDD == 15) {
 | 
			
		||||
            // 15号,发 上月24号 到 本月7号
 | 
			
		||||
            startSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(DateUtils.addMonths(startDate, -1), 24));
 | 
			
		||||
            endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(startDate, 24));
 | 
			
		||||
        } else if (dateDD == monthLast) {
 | 
			
		||||
            // 最后一天,发 8号 到 23号
 | 
			
		||||
            startSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(startDate, 8));
 | 
			
		||||
            endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(startDate, 23));
 | 
			
		||||
        }
 | 
			
		||||
        if (null == startSettleDate) {
 | 
			
		||||
            return AjaxResult.error("每月15号和每月最后一天才能发放");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        iBonusGrantService.grantBonusByPeriod(SecurityUtils.getPkCountry(), startSettleDate, endSettleDate);
 | 
			
		||||
        return AjaxResult.success();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 发放奖金
 | 
			
		||||
     *
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     * 发放奖金,指定期数 -- 页面未使用
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/grant-temp-bonus")
 | 
			
		||||
    public AjaxResult grantTempBonus(Integer pkCountry, String settleDate) {
 | 
			
		||||
| 
						 | 
				
			
			@ -144,9 +154,7 @@ public class CuMemberSettleController extends BaseController {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 发放奖金
 | 
			
		||||
     *
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     * 发放奖金,定时任务 -- 页面未使用
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/grant-bonus_all")
 | 
			
		||||
    public AjaxResult grantBonusAll() {
 | 
			
		||||
| 
						 | 
				
			
			@ -155,18 +163,39 @@ public class CuMemberSettleController extends BaseController {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 奖金提现
 | 
			
		||||
     *
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     * 奖金提现 -- 页面使用
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/withdrawal-bonus")
 | 
			
		||||
    @Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.WITHDRAWAL)
 | 
			
		||||
    public AjaxResult withdrawalBonus(String settleDate) {
 | 
			
		||||
        Date startDate = DateUtils.parseStringToDate(settleDate);
 | 
			
		||||
        if (DateUtils.compareDateBefore(DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
 | 
			
		||||
            // 只能提现7天以外的奖金!
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.WITHDRAW_VALIDATE_DATE));
 | 
			
		||||
        }
 | 
			
		||||
        iBonusGrantService.withdrawalBonusByPeriod(SecurityUtils.getPkCountry(), settleDate);
 | 
			
		||||
 | 
			
		||||
        // 发放开始时间
 | 
			
		||||
        String startSettleDate = null;
 | 
			
		||||
        // 发放结束时间
 | 
			
		||||
        String endSettleDate = null;
 | 
			
		||||
        // 发放日期的天
 | 
			
		||||
        int dateDD = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, startDate));
 | 
			
		||||
        // 发放最后一天
 | 
			
		||||
        int monthLast = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, DateUtils.currentMonthLastDate(startDate)));
 | 
			
		||||
        if (dateDD == 15) {
 | 
			
		||||
            // 15号,发 上月24号 到 本月7号
 | 
			
		||||
            startSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(DateUtils.addMonths(startDate, -1), 24));
 | 
			
		||||
            endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(startDate, 24));
 | 
			
		||||
        } else if (dateDD == monthLast) {
 | 
			
		||||
            // 最后一天,发 8号 到 23号
 | 
			
		||||
            startSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(startDate, 8));
 | 
			
		||||
            endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(startDate, 23));
 | 
			
		||||
        }
 | 
			
		||||
        if (null == startSettleDate) {
 | 
			
		||||
            return AjaxResult.error("每月15号和每月最后一天才能发放");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        iBonusGrantService.withdrawalBonusByPeriod(SecurityUtils.getPkCountry(), startSettleDate, endSettleDate);
 | 
			
		||||
        return AjaxResult.success();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,7 +17,15 @@ public interface CuMemberSettlePeriodMapper extends BaseMapper<CuMemberSettlePer
 | 
			
		|||
    /**
 | 
			
		||||
     * 根据日期查询会员结算期间
 | 
			
		||||
     */
 | 
			
		||||
    CuMemberSettlePeriodExt queryMemberSettlePeriod(@Param("pkCountry") Integer pkCountry, @Param("settleDate") Date settleDate);
 | 
			
		||||
    CuMemberSettlePeriodExt queryMemberSettlePeriod(@Param("pkCountry") Integer pkCountry,
 | 
			
		||||
                                                    @Param("settleDate") Date settleDate);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据日期查询对应的期间列表
 | 
			
		||||
     */
 | 
			
		||||
    List<CuMemberSettlePeriodExt> listMemberSettlePeriod(@Param("pkCountry") Integer pkCountry,
 | 
			
		||||
                                                         @Param("settleDate") Date settleDate,
 | 
			
		||||
                                                         @Param("endSettleDate") Date endSettleDate);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询期间
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,6 +29,16 @@ public interface ICuMemberSettlePeriodService extends IService<CuMemberSettlePer
 | 
			
		|||
     */
 | 
			
		||||
    CuMemberSettlePeriodExt getCuMemberSettlePeriod(Integer pkCountry, Date date);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据日期查询对应的期间列表
 | 
			
		||||
     *
 | 
			
		||||
     * @param pkCountry
 | 
			
		||||
     * @param date
 | 
			
		||||
     * @param endDate
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    List<CuMemberSettlePeriodExt> listCuMemberSettlePeriod(Integer pkCountry, Date date, Date endDate);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据国家查询奖金期数返回到前台
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -204,6 +204,11 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl<CuMemberSettleP
 | 
			
		|||
        return baseMapper.queryMemberSettlePeriod(pkCountry, date);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<CuMemberSettlePeriodExt> listCuMemberSettlePeriod(Integer pkCountry, Date date, Date endDate) {
 | 
			
		||||
        return baseMapper.listMemberSettlePeriod(pkCountry, date, endDate);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private CuMemberSettlePeriod getCuMemberSettlePeriod(String date) {
 | 
			
		||||
        LambdaQueryWrapper<CuMemberSettlePeriod> queryWrapper = new LambdaQueryWrapper<>();
 | 
			
		||||
        queryWrapper.eq(CuMemberSettlePeriod::getSettleDate, DateUtils.parseStringToDate(date));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,8 +5,6 @@ import cn.hutool.core.collection.CollectionUtil;
 | 
			
		|||
import com.hzs.bonus.bonus.param.BonusParam;
 | 
			
		||||
import com.hzs.bonus.bonus.service.ICuMemberBonusService;
 | 
			
		||||
import com.hzs.bonus.bonus.vo.*;
 | 
			
		||||
import com.hzs.common.core.enums.EGrantStatus;
 | 
			
		||||
import com.hzs.common.core.utils.ComputeUtil;
 | 
			
		||||
import com.hzs.common.core.utils.DateUtils;
 | 
			
		||||
import com.hzs.common.core.web.controller.BaseController;
 | 
			
		||||
import com.hzs.common.core.web.page.TableDataInfo;
 | 
			
		||||
| 
						 | 
				
			
			@ -34,34 +32,6 @@ public class ApiCuMemberBonusController extends BaseController {
 | 
			
		|||
    @Autowired
 | 
			
		||||
    private ICuMemberBonusService iCuMemberBonusService;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 新零售实时奖金:查询会员实时奖金,当日的奖金
 | 
			
		||||
     */
 | 
			
		||||
    @PostMapping("/query-current-bonus")
 | 
			
		||||
    public TableDataInfo listCurrentBonus(@RequestBody BonusParam bonusParam) {
 | 
			
		||||
        bonusParam.setPkCountry(SecurityUtils.getPkCountry());
 | 
			
		||||
        bonusParam.setPkMember(SecurityUtils.getUserId());
 | 
			
		||||
        bonusParam.setStartDate(DateUtils.currentDate());
 | 
			
		||||
        bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.currentDate()));
 | 
			
		||||
        bonusParam.setGrantStatus(EGrantStatus.SETTLED.getValue());
 | 
			
		||||
 | 
			
		||||
        List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberSecondBonusVoByCondition(bonusParam);
 | 
			
		||||
        List<MemberBonusVO> memberBonusVOList = new ArrayList<>();
 | 
			
		||||
        cuMemberBonusList.forEach(cuMemberBonus -> {
 | 
			
		||||
            if (ComputeUtil.compareValue(cuMemberBonus.getRealIncomeTotal())) {
 | 
			
		||||
                MemberBonusVO memberBonusVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusVO.class, "settleDate");
 | 
			
		||||
                memberBonusVO.setServiceSpend(BigDecimal.ZERO);
 | 
			
		||||
                memberBonusVO.setSettleDate(DateUtils.currentDate());
 | 
			
		||||
                BigDecimal serviceSpend = ComputeUtil.computeSubtract(ComputeUtil.computeAddNum(cuMemberBonus.getRetailRangeIncome(), cuMemberBonus.getRetailSameLevelIncome(),
 | 
			
		||||
                        cuMemberBonus.getRetailAreaIncome()),
 | 
			
		||||
                        cuMemberBonus.getRetailRealSubtotal());
 | 
			
		||||
                memberBonusVO.setBackPoints(serviceSpend);
 | 
			
		||||
                memberBonusVOList.add(memberBonusVO);
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        return getDataTable(memberBonusVOList);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 新零售实时奖金:查询会员奖金列表
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			@ -69,7 +39,18 @@ public class ApiCuMemberBonusController extends BaseController {
 | 
			
		|||
    public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) {
 | 
			
		||||
        setBonusParam(bonusParam);
 | 
			
		||||
 | 
			
		||||
        List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
 | 
			
		||||
        // 当前日期的天
 | 
			
		||||
        int dateDD = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, bonusParam.getEndDate()));
 | 
			
		||||
        if (dateDD < 15) {
 | 
			
		||||
            // 今天日期小于15号,查询上月23号之前的
 | 
			
		||||
            bonusParam.setEndDate(DateUtils.setDays(DateUtils.addMonths(bonusParam.getEndDate(), -1), 23));
 | 
			
		||||
        } else {
 | 
			
		||||
            // 今天日期大于等于15号,查询本月7号之前的
 | 
			
		||||
            bonusParam.setEndDate(DateUtils.setDays(bonusParam.getEndDate(), 7));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 新查询奖金明细
 | 
			
		||||
        List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.listMemberBonus(bonusParam);
 | 
			
		||||
 | 
			
		||||
        List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
 | 
			
		||||
        cuMemberBonusList.forEach(cuMemberBonus -> {
 | 
			
		||||
| 
						 | 
				
			
			@ -85,17 +66,15 @@ public class ApiCuMemberBonusController extends BaseController {
 | 
			
		|||
     */
 | 
			
		||||
    @PostMapping("/query-bonus-total")
 | 
			
		||||
    public TableDataInfo lisBonusTotal(@RequestBody BonusParam bonusParam) {
 | 
			
		||||
        bonusParam.setPkCountry(SecurityUtils.getPkCountry());
 | 
			
		||||
        bonusParam.setPkMember(SecurityUtils.getUserId());
 | 
			
		||||
        bonusParam.setEndDate(DateUtils.currentDate());
 | 
			
		||||
        bonusParam.setStartDate(DateUtils.beforeDate(1, ChronoUnit.DAYS, bonusParam.getEndDate()));
 | 
			
		||||
        setBonusParam(bonusParam);
 | 
			
		||||
 | 
			
		||||
        // 新查询奖金明细
 | 
			
		||||
        List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.listMemberBonus(bonusParam);
 | 
			
		||||
 | 
			
		||||
        List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam);
 | 
			
		||||
        MemberRealIncomeVO memberRealIncomeVO = new MemberRealIncomeVO();
 | 
			
		||||
        if (CollectionUtil.isEmpty(cuMemberBonusList)) {
 | 
			
		||||
            memberRealIncomeVO.setRealIncomeTotal(BigDecimal.ZERO);
 | 
			
		||||
        } else {
 | 
			
		||||
//            memberRealIncomeVO.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonusList.get(0).getRealIncomeTotal(), cuMemberBonusList.get(0).getBackPoints()));
 | 
			
		||||
            memberRealIncomeVO.setRealIncomeTotal(cuMemberBonusList.get(0).getRealIncomeTotal());
 | 
			
		||||
        }
 | 
			
		||||
        return getDataTable(Collections.singletonList(memberRealIncomeVO));
 | 
			
		||||
| 
						 | 
				
			
			@ -116,7 +95,8 @@ public class ApiCuMemberBonusController extends BaseController {
 | 
			
		|||
        bonusParam.setPkCountry(SecurityUtils.getPkCountry());
 | 
			
		||||
        bonusParam.setPkMember(SecurityUtils.getUserId());
 | 
			
		||||
 | 
			
		||||
        Date startDate = DateUtils.beforeDate(15, ChronoUnit.DAYS, DateUtils.currentDate());
 | 
			
		||||
        // 默认查询90天之内的
 | 
			
		||||
        Date startDate = DateUtils.beforeDate(60, ChronoUnit.DAYS, DateUtils.currentDate());
 | 
			
		||||
        if (bonusParam.getStartDate() == null) {
 | 
			
		||||
            bonusParam.setStartDate(startDate);
 | 
			
		||||
        } else if (DateUtils.compareDateBefore(bonusParam.getStartDate(), startDate)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -136,8 +116,7 @@ public class ApiCuMemberBonusController extends BaseController {
 | 
			
		|||
    public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
 | 
			
		||||
        setBonusParam(bonusParam);
 | 
			
		||||
        startPage();
 | 
			
		||||
        TableDataInfo tableDataInfo = iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam);
 | 
			
		||||
        return tableDataInfo;
 | 
			
		||||
        return iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,6 +27,14 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
 | 
			
		|||
     */
 | 
			
		||||
    List<CuMemberBonusExt> queryMemberBonusByCondition(BonusParam bonusParam);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询会员奖金明细
 | 
			
		||||
     *
 | 
			
		||||
     * @param bonusParam
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    List<CuMemberBonusExt> listMemberBonus(BonusParam bonusParam);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据查询条件查询会员奖金
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,6 +10,9 @@ public interface IBonusGrantService {
 | 
			
		|||
     */
 | 
			
		||||
    void publishBonusByPeriodEveryDay();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 每天公放奖金,定时任务
 | 
			
		||||
     */
 | 
			
		||||
    void grantWithdrawBonusByPeriodEveryDay();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			@ -22,10 +25,17 @@ public interface IBonusGrantService {
 | 
			
		|||
    /**
 | 
			
		||||
     * 每天发放奖金
 | 
			
		||||
     *
 | 
			
		||||
     * @param settleDate 日期
 | 
			
		||||
     * @param settleDate    发放开始日期
 | 
			
		||||
     * @param endSettleDate 发放结束日期
 | 
			
		||||
     */
 | 
			
		||||
    Boolean grantBonusByPeriod(Integer pkCountry, String settleDate);
 | 
			
		||||
    Boolean grantBonusByPeriod(Integer pkCountry, String settleDate, String endSettleDate);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 指定期数发放奖金
 | 
			
		||||
     *
 | 
			
		||||
     * @param pkCountry
 | 
			
		||||
     * @param settleDate
 | 
			
		||||
     */
 | 
			
		||||
    void grantBonusByTempPeriod(Integer pkCountry, String settleDate);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			@ -33,6 +43,6 @@ public interface IBonusGrantService {
 | 
			
		|||
     *
 | 
			
		||||
     * @param settleDate 日期
 | 
			
		||||
     */
 | 
			
		||||
    void withdrawalBonusByPeriod(Integer pkCountry, String settleDate);
 | 
			
		||||
    void withdrawalBonusByPeriod(Integer pkCountry, String settleDate, String endSettleDate);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,11 +30,12 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
 | 
			
		|||
    List<CuMemberBonusExt> queryMemberBonusVoByCondition(BonusParam bonusParam);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据查询条件查询会员秒接奖金
 | 
			
		||||
     * 查询会员奖金明细
 | 
			
		||||
     *
 | 
			
		||||
     * @param bonusParam 查询条件
 | 
			
		||||
     * @param bonusParam
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    List<CuMemberBonusExt> queryMemberSecondBonusVoByCondition(BonusParam bonusParam);
 | 
			
		||||
    List<CuMemberBonusExt> listMemberBonus(BonusParam bonusParam);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据查询条件查询会员奖金
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,7 +28,6 @@ import org.springframework.stereotype.Service;
 | 
			
		|||
import org.springframework.transaction.annotation.Transactional;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.time.DayOfWeek;
 | 
			
		||||
import java.time.temporal.ChronoUnit;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -47,13 +46,13 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
 | 
			
		|||
    @Autowired
 | 
			
		||||
    private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private MemberToolsHandler memberToolsHandler;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberTradeService iCuMemberTradeService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberTradeDetailService iCuMemberTradeDetailService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberAccountService iCuMemberAccountService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private MemberToolsHandler memberToolsHandler;
 | 
			
		||||
 | 
			
		||||
    @DubboReference
 | 
			
		||||
    ICountryServiceApi iCountryServiceApi;
 | 
			
		||||
| 
						 | 
				
			
			@ -82,23 +81,41 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
 | 
			
		|||
    @Override
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public void grantWithdrawBonusByPeriodEveryDay() {
 | 
			
		||||
        // 会员只15、30号发:
 | 
			
		||||
        // 24-7 : 15号发
 | 
			
		||||
        // 8-23 : 30号发 (每月最后一天)
 | 
			
		||||
 | 
			
		||||
        // 当前日期
 | 
			
		||||
        Date nowDate = DateUtils.currentDate();
 | 
			
		||||
        // 当前日期的天
 | 
			
		||||
        int dateDD = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, nowDate));
 | 
			
		||||
        // 当月最后一天
 | 
			
		||||
        int monthLast = Integer.parseInt(DateUtils.parseDateTimeToStr(DateUtils.DD, DateUtils.currentMonthLastDate(nowDate)));
 | 
			
		||||
        // 发放开始时间
 | 
			
		||||
        String settleDate = null;
 | 
			
		||||
        // 发放结束时间
 | 
			
		||||
        String endSettleDate = null;
 | 
			
		||||
 | 
			
		||||
        Map<Integer, BdCountry> integerBdCountryMap = iCountryServiceApi.getAllCountryMap().getData();
 | 
			
		||||
        if (integerBdCountryMap.size() > 0) {
 | 
			
		||||
            for (Integer pkCountry : integerBdCountryMap.keySet()) {
 | 
			
		||||
                // 先发放奖金,验证是否是周结,周结发放上周的,直接变为可提现
 | 
			
		||||
                Date grantDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate());
 | 
			
		||||
                String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, grantDay);
 | 
			
		||||
                grantBonusByPeriod(pkCountry, settleDate);
 | 
			
		||||
                // 设置奖金可以提现
 | 
			
		||||
                withdrawalBonusByPeriod(pkCountry, settleDate);
 | 
			
		||||
                if (dateDD == 15) {
 | 
			
		||||
                    // 15号,发 上月24号 到 本月7号
 | 
			
		||||
                    settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(DateUtils.addMonths(nowDate, -1), 24));
 | 
			
		||||
                    endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(nowDate, 24));
 | 
			
		||||
                } else if (dateDD == monthLast) {
 | 
			
		||||
                    // 当月最后一天,发 本月8号 到 本月23号
 | 
			
		||||
                    settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(nowDate, 8));
 | 
			
		||||
                    endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(nowDate, 23));
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                // 周奖发放上周的奖金
 | 
			
		||||
//                CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
 | 
			
		||||
//                Date withdrawDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, grantDay);
 | 
			
		||||
//                if (EExpandCapMethod.WEEK_SETTLE.getValue() == cuMemberSettlePeriod.getSettleCycle() ||
 | 
			
		||||
//                        !CountryConstants.CHINA_COUNTRY.equals(pkCountry)) {
 | 
			
		||||
//                    withdrawDay = grantDay;
 | 
			
		||||
//                }
 | 
			
		||||
                if (null != settleDate) {
 | 
			
		||||
                    // 开始结束时间都有值,才进行发放
 | 
			
		||||
                    // 发放奖金
 | 
			
		||||
                    grantBonusByPeriod(pkCountry, settleDate, endSettleDate);
 | 
			
		||||
                    // 奖金可以提现
 | 
			
		||||
                    withdrawalBonusByPeriod(pkCountry, settleDate, endSettleDate);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -135,27 +152,31 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
 | 
			
		|||
        return cuMemberSettlePeriodByDate;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private List<CuMemberSettlePeriodExt> getCuMemberSettlePeriod(Integer pkCountry, String settleDate, String endSettleDate) {
 | 
			
		||||
        Date nowDate = DateUtils.currentDateTime();
 | 
			
		||||
        List<CuMemberSettlePeriodExt> cuMemberSettlePeriodList = iCuMemberSettlePeriodService.listCuMemberSettlePeriod(pkCountry, DateUtils.parseStringToDate(settleDate), DateUtils.parseStringToDate(endSettleDate));
 | 
			
		||||
        for (CuMemberSettlePeriodExt cuMemberSettlePeriodExt : cuMemberSettlePeriodList) {
 | 
			
		||||
            cuMemberSettlePeriodExt.setPkModified(MagicNumberConstants.PK_ADMIN);
 | 
			
		||||
            cuMemberSettlePeriodExt.setModifiedTime(nowDate);
 | 
			
		||||
        }
 | 
			
		||||
        return cuMemberSettlePeriodList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public Boolean grantBonusByPeriod(Integer pkCountry, String settleDate) {
 | 
			
		||||
        // 奖金发放
 | 
			
		||||
        CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
 | 
			
		||||
        if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsGrant()) {
 | 
			
		||||
            return Boolean.FALSE;
 | 
			
		||||
        }
 | 
			
		||||
        // 验证是否周奖,周奖只能周三发放
 | 
			
		||||
        if (EExpandCapMethod.WEEK_SETTLE.getValue() == cuMemberSettlePeriod.getSettleCycle()) {
 | 
			
		||||
            if (DateUtils.getRecentlyDay(DateUtils.parseStringToDate(settleDate)) != DayOfWeek.WEDNESDAY.getValue()) {
 | 
			
		||||
                return Boolean.FALSE;
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            Date startDate = DateUtils.parseStringToDate(settleDate);
 | 
			
		||||
            if (DateUtils.compareDateBefore(DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
 | 
			
		||||
                return Boolean.FALSE;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        Map<Integer, BdAccount> bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData();
 | 
			
		||||
    public Boolean grantBonusByPeriod(Integer pkCountry, String settleDate, String endSettleDate) {
 | 
			
		||||
        // 奖金发放范围期间
 | 
			
		||||
        List<CuMemberSettlePeriodExt> cuMemberSettlePeriodList = getCuMemberSettlePeriod(pkCountry, settleDate, endSettleDate);
 | 
			
		||||
 | 
			
		||||
        Date currentDateTime = DateUtils.currentDateTime();
 | 
			
		||||
        Map<Integer, BdAccount> bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData();
 | 
			
		||||
 | 
			
		||||
        for (CuMemberSettlePeriodExt cuMemberSettlePeriod : cuMemberSettlePeriodList) {
 | 
			
		||||
            if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsGrant()) {
 | 
			
		||||
                // 已经发放,则跳过
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
            String settleDateStr = DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, cuMemberSettlePeriod.getSettleDate());
 | 
			
		||||
 | 
			
		||||
            // 查询奖金表,查询未发放的奖金明细
 | 
			
		||||
            List<CuMemberBonus> cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
 | 
			
		||||
| 
						 | 
				
			
			@ -163,18 +184,8 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
 | 
			
		|||
                // 新增交易流水
 | 
			
		||||
                List<CuMemberTrade> cuMemberTradeList = new ArrayList<>();
 | 
			
		||||
                cuMemberBonusList.forEach(cuMemberBonus -> {
 | 
			
		||||
                CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(cuMemberBonus.getPkCountry()).getData();
 | 
			
		||||
                    // 奖金币(首购+复购+云代+海粉+嗨粉+店铺)
 | 
			
		||||
                packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate);
 | 
			
		||||
                // 重销币(商城重消+平台服务费)
 | 
			
		||||
//                BigDecimal repeat = ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), cuMemberBonus.getServiceSpend());
 | 
			
		||||
                packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate);
 | 
			
		||||
                // 复购券
 | 
			
		||||
                packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate);
 | 
			
		||||
                // 环球积分
 | 
			
		||||
//                packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.GLOBAL_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getGlobalPoints(), currencyDTO.getOutExchangeRate()), settleDate);
 | 
			
		||||
                // 车奖积分
 | 
			
		||||
//                packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.CAR_AWARD_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getCarAwardPoints(), currencyDTO.getOutExchangeRate()), settleDate);
 | 
			
		||||
                    packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, cuMemberBonus.getRealIncomeTotal(), settleDateStr);
 | 
			
		||||
                });
 | 
			
		||||
                List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
 | 
			
		||||
                // 新增流水明细,记录奖金明细的发放状态、消费明细
 | 
			
		||||
| 
						 | 
				
			
			@ -210,6 +221,7 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
 | 
			
		|||
            cuMemberSettlePeriod.setIsGrant(EYesNo.YES.getIntValue());
 | 
			
		||||
            cuMemberSettlePeriod.setGrantDate(DateUtils.currentDateTime());
 | 
			
		||||
            iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
 | 
			
		||||
        }
 | 
			
		||||
        return Boolean.TRUE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -219,20 +231,16 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
 | 
			
		|||
        CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
 | 
			
		||||
        // 查询奖金表,查询未发放的奖金明细
 | 
			
		||||
        List<CuMemberBonus> cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
 | 
			
		||||
 | 
			
		||||
        Map<Integer, BdAccount> bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData();
 | 
			
		||||
        Date currentDateTime = DateUtils.currentDateTime();
 | 
			
		||||
        CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(pkCountry).getData();
 | 
			
		||||
        if (cuMemberBonusList.size() > 0) {
 | 
			
		||||
            // 新增交易流水
 | 
			
		||||
            List<CuMemberTrade> cuMemberTradeList = new ArrayList<>();
 | 
			
		||||
            cuMemberBonusList.forEach(cuMemberBonus -> {
 | 
			
		||||
                CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(cuMemberBonus.getPkCountry()).getData();
 | 
			
		||||
                // 奖金币(首购+复购+云代+海粉+嗨粉+店铺)
 | 
			
		||||
                packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate);
 | 
			
		||||
                // 重销币(商城重消+平台服务费)
 | 
			
		||||
//                BigDecimal repeat = ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), cuMemberBonus.getServiceSpend());
 | 
			
		||||
                packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate);
 | 
			
		||||
                // 复购券
 | 
			
		||||
                packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate);
 | 
			
		||||
            });
 | 
			
		||||
            List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
 | 
			
		||||
            // 新增流水明细,记录奖金明细的发放状态、消费明细
 | 
			
		||||
| 
						 | 
				
			
			@ -266,8 +274,8 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void packAccountTrade(List<CuMemberTrade> cuMemberTradeList, Map<Integer, BdAccount> bdAccountMap, int accountValue, Date currentDateTime, CuMemberBonus cuMemberBonus, BigDecimal grantValue,
 | 
			
		||||
                                  String settleDate) {
 | 
			
		||||
    private void packAccountTrade(List<CuMemberTrade> cuMemberTradeList, Map<Integer, BdAccount> bdAccountMap, int accountValue, Date currentDateTime,
 | 
			
		||||
                                  CuMemberBonus cuMemberBonus, BigDecimal grantValue, String settleDate) {
 | 
			
		||||
        if (ComputeUtil.compareValue(grantValue) && bdAccountMap.containsKey(accountValue)) {
 | 
			
		||||
            cuMemberTradeList.add(packageMemberTrade(cuMemberBonus, bdAccountMap.get(accountValue).getPkId(), grantValue, currentDateTime, settleDate));
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -275,30 +283,29 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
 | 
			
		|||
 | 
			
		||||
    @Override
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public void withdrawalBonusByPeriod(Integer pkCountry, String settleDate) {
 | 
			
		||||
    public void withdrawalBonusByPeriod(Integer pkCountry, String settleDate, String endSettleDate) {
 | 
			
		||||
        // 奖金可提现
 | 
			
		||||
        CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
 | 
			
		||||
        List<CuMemberSettlePeriodExt> cuMemberSettlePeriodList = getCuMemberSettlePeriod(pkCountry, settleDate, endSettleDate);
 | 
			
		||||
 | 
			
		||||
        for (CuMemberSettlePeriodExt cuMemberSettlePeriod : cuMemberSettlePeriodList) {
 | 
			
		||||
            if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsWithdrawal()) {
 | 
			
		||||
            return;
 | 
			
		||||
                // 已经提现,则跳过
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
        // 验证是否周奖,周奖只能周四提现
 | 
			
		||||
        if (EExpandCapMethod.WEEK_SETTLE.getValue() == cuMemberSettlePeriod.getSettleCycle()) {
 | 
			
		||||
            if (DateUtils.getRecentlyDay(DateUtils.parseStringToDate(settleDate)) != DayOfWeek.THURSDAY.getValue()) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // 批量更新会员账户,更新余额
 | 
			
		||||
            // 批量更新会员账户,更新余额(cu_member_account)
 | 
			
		||||
            iCuMemberAccountService.updateMemberAccountWithdrawalByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry);
 | 
			
		||||
        // 更新交易明细表状态 cu_member_trade_detail
 | 
			
		||||
            // 更新交易明细表状态(cu_member_trade_detail)
 | 
			
		||||
            iCuMemberTradeDetailService.updateCuMemberTradeDetailByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry);
 | 
			
		||||
        // 更新奖金表发放状态
 | 
			
		||||
            // 更新奖金表发放状态(cu_member_bonus)
 | 
			
		||||
            iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.WITHDRAWAL.getValue(), EGrantStatus.GRANT.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
 | 
			
		||||
        // 更新期间表状态
 | 
			
		||||
            // 更新期间表状态(cu_member_settle_period_detail)
 | 
			
		||||
            cuMemberSettlePeriod.setIsWithdrawal(EYesNo.YES.getIntValue());
 | 
			
		||||
            cuMemberSettlePeriod.setWithdrawalDate(DateUtils.currentDateTime());
 | 
			
		||||
            iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 封装会员 消费的 交易流水
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,7 +14,6 @@ import com.hzs.bonus.bonus.service.ICuMemberBonusService;
 | 
			
		|||
import com.hzs.bonus.bonus.vo.MemberBonusDetailSerVO;
 | 
			
		||||
import com.hzs.bonus.bonus.vo.MemberBonusDetailVO;
 | 
			
		||||
import com.hzs.common.core.constant.*;
 | 
			
		||||
import com.hzs.common.core.domain.R;
 | 
			
		||||
import com.hzs.common.core.enums.*;
 | 
			
		||||
import com.hzs.common.core.utils.ComputeUtil;
 | 
			
		||||
import com.hzs.common.core.utils.DateUtils;
 | 
			
		||||
| 
						 | 
				
			
			@ -70,6 +69,11 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
 | 
			
		|||
        return handleMemberBonusPurchase(getCuMemberBonusExtList(bonusParam), bonusParam);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<CuMemberBonusExt> listMemberBonus(BonusParam bonusParam) {
 | 
			
		||||
        return baseMapper.listMemberBonus(bonusParam);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private List<CuMemberBonusExt> handleMemberBonusPurchase(List<CuMemberBonusExt> cuMemberBonusExtList, BonusParam bonusParam) {
 | 
			
		||||
        List<CuMemberBonusExt> memberBonusExtList = new ArrayList<>();
 | 
			
		||||
        Map<String, CuMemberBonusExt> cuMemberBonusExtMap = new HashMap<>();
 | 
			
		||||
| 
						 | 
				
			
			@ -86,36 +90,10 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
 | 
			
		|||
                if (!DateUtils.compareDateEqual(endDate, DateUtils.beforeDate(1, ChronoUnit.DAYS, DateUtils.currentDate()))
 | 
			
		||||
                        || DateUtils.compareDateTimeAfter(DateUtils.currentDateTime(), compareDate)) {
 | 
			
		||||
                    CuMemberBonusExt cuMemberBonusExt = new CuMemberBonusExt();
 | 
			
		||||
                    cuMemberBonusExt.setSettleDate(endDate);
 | 
			
		||||
                    cuMemberBonusExt.setServiceSpend(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setBackPoints(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setDirectIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setExpandIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setCoachIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setShareIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setServiceIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setBackPoints(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setServiceSpend(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setPurRealSubtotal(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRepurPushIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRepurRangeIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRepurExpandIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRepurRealSubtotal(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRepurCoupon(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRepurCouponShare(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRepurCouponSubtotal(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setGlobalPoints(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setCarAwardPoints(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setStoreIncome(BigDecimal.ZERO);
 | 
			
		||||
 | 
			
		||||
                    cuMemberBonusExt.setRetailRangeIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRetailSameLevelIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRetailAreaIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRetailBenefitRangeIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRetailBenefitAvgIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRetailBenefitIncome(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRetailRealSubtotal(BigDecimal.ZERO);
 | 
			
		||||
                    cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO);
 | 
			
		||||
                    memberBonusExtList.add(cuMemberBonusExt);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -124,48 +102,11 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
 | 
			
		|||
        return memberBonusExtList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<CuMemberBonusExt> queryMemberSecondBonusVoByCondition(BonusParam bonusParam) {
 | 
			
		||||
        return getCuMemberBonusExtList(bonusParam);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private List<CuMemberBonusExt> getCuMemberBonusExtList(BonusParam bonusParam) {
 | 
			
		||||
        if (bonusParam.getGrantStatus() == null) {
 | 
			
		||||
            bonusParam.setGrantStatus(EGrantStatus.PUBLISHED.getValue());
 | 
			
		||||
        }
 | 
			
		||||
        List<CuMemberBonusExt> cuMemberBonusExtList = baseMapper.queryMemberBonusByCondition(bonusParam);
 | 
			
		||||
        R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(bonusParam.getPkCountry());
 | 
			
		||||
        // 汇率比例
 | 
			
		||||
        BigDecimal inExchangeRate = currency.getData().getInExchangeRate();
 | 
			
		||||
        for (CuMemberBonusExt cuMemberBonusExt : cuMemberBonusExtList) {
 | 
			
		||||
            cuMemberBonusExt.setDirectIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getDirectIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setExpandIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getExpandIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setCoachIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getCoachIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setShareIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getShareIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setServiceIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getServiceIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setBackPoints(ComputeUtil.computeMultiply(cuMemberBonusExt.getBackPoints(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setServiceSpend(ComputeUtil.computeMultiply(cuMemberBonusExt.getServiceSpend(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setPurRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getPurRealSubtotal(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRepurPushIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurPushIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRepurRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurRangeIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRepurExpandIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurExpandIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRepurRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurRealSubtotal(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRepurCoupon(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurCoupon(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRepurCouponShare(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurCouponShare(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRepurCouponSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurCouponSubtotal(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setGlobalPoints(ComputeUtil.computeMultiply(cuMemberBonusExt.getGlobalPoints(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setCarAwardPoints(ComputeUtil.computeMultiply(cuMemberBonusExt.getCarAwardPoints(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRealIncomeTotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRealIncomeTotal(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setStoreIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getStoreIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRetailRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailRangeIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRetailSameLevelIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailSameLevelIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRetailAreaIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailAreaIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRetailBenefitRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailBenefitRangeIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRetailBenefitAvgIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailBenefitAvgIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRetailBenefitIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailBenefitIncome(), inExchangeRate));
 | 
			
		||||
            cuMemberBonusExt.setRetailRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailRealSubtotal(), inExchangeRate));
 | 
			
		||||
        }
 | 
			
		||||
        return cuMemberBonusExtList;
 | 
			
		||||
        return baseMapper.queryMemberBonusByCondition(bonusParam);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
| 
						 | 
				
			
			@ -424,15 +365,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
 | 
			
		|||
    @Override
 | 
			
		||||
    public List<CuMemberBonus> queryCuMemberBonusByCondition(Integer pkCountry, Integer grantStatus, Integer startPeriod, Integer endPeriod) {
 | 
			
		||||
        QueryWrapper<CuMemberBonus> queryWrapper = new QueryWrapper<>();
 | 
			
		||||
        queryWrapper.select("pk_member,pk_rate,pk_country,sum(direct_income) direct_income,sum(expand_income) expand_income,sum(expand_no_capping) expand_no_capping," +
 | 
			
		||||
                "sum(expand_capping) expand_capping,sum(coach_income) coach_income,sum(share_income) share_income," +
 | 
			
		||||
                "sum(service_income) service_income,sum(back_points) back_points,sum(service_spend) service_spend," +
 | 
			
		||||
                "sum(pur_real_subtotal) pur_real_subtotal,sum(repur_range_income) repur_range_income,sum(repur_expand_income) repur_expand_income," +
 | 
			
		||||
                "sum(repur_real_subtotal) repur_real_subtotal,sum(cloud_direct_income) cloud_direct_income,sum(cloud_pur_income) cloud_pur_income," +
 | 
			
		||||
                "sum(cloud_repur_income) cloud_repur_income,sum(cloud_real_subtotal) cloud_real_subtotal,sum(repur_coupon) repur_coupon," +
 | 
			
		||||
                "sum(REPUR_COUPON_SHARE) REPUR_COUPON_SHARE,sum(REPUR_COUPON_SUBTOTAL) REPUR_COUPON_SUBTOTAL," +
 | 
			
		||||
                "sum(global_points) global_points,sum(car_award_points) car_award_points,sum(hi_fun_income) hi_fun_income," +
 | 
			
		||||
                "sum(real_income_total) real_income_total");
 | 
			
		||||
        queryWrapper.select("pk_member,pk_rate,pk_country,sum(real_income_total) real_income_total");
 | 
			
		||||
        queryWrapper.eq(SystemFieldConstants.PK_COUNTRY, pkCountry);
 | 
			
		||||
        queryWrapper.eq(MemberBonusFieldConstants.GRANT_STATUS, grantStatus);
 | 
			
		||||
        queryWrapper.eq(MemberBonusFieldConstants.INCOME_STATUS, ENormalDisable.NORMAL.getValue());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -73,7 +73,7 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
 | 
			
		|||
//    private BigDecimal repurRealSubtotal;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 新零售直推收益
 | 
			
		||||
     * 直推级差收益
 | 
			
		||||
     */
 | 
			
		||||
    @BigDecimalFormat
 | 
			
		||||
    private BigDecimal retailRangeIncome;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,85 +2,6 @@
 | 
			
		|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 | 
			
		||||
<mapper namespace="com.hzs.bonus.account.mapper.CuMemberTradeMapper">
 | 
			
		||||
 | 
			
		||||
    <!-- 通用查询映射结果 -->
 | 
			
		||||
    <resultMap id="CuMemberTrade" type="com.hzs.common.domain.member.account.CuMemberTrade">
 | 
			
		||||
        <id column="PK_ID" property="pkId"/>
 | 
			
		||||
        <result column="DEL_FLAG" property="delFlag"/>
 | 
			
		||||
        <result column="PK_COUNTRY" property="pkCountry"/>
 | 
			
		||||
        <result column="PK_CREATOR" property="pkCreator"/>
 | 
			
		||||
        <result column="CREATION_TIME" property="creationTime"/>
 | 
			
		||||
        <result column="PK_MODIFIED" property="pkModified"/>
 | 
			
		||||
        <result column="MODIFIED_TIME" property="modifiedTime"/>
 | 
			
		||||
        <result column="PK_MEMBER" property="pkMember"/>
 | 
			
		||||
        <result column="TRADE_CODE" property="tradeCode"/>
 | 
			
		||||
        <result column="PK_ACCOUNT" property="pkAccount"/>
 | 
			
		||||
        <result column="TRADE_TYPE" property="tradeType"/>
 | 
			
		||||
        <result column="TRADE_CLASSIFY" property="tradeClassify"/>
 | 
			
		||||
        <result column="PK_RATE" property="pkRate"/>
 | 
			
		||||
        <result column="TRADE_AMOUNT" property="tradeAmount"/>
 | 
			
		||||
        <result column="TRADE_BALANCE" property="tradeBalance"/>
 | 
			
		||||
        <result column="TRADE_BEFORE_BALANCE" property="tradeBeforeBalance"/>
 | 
			
		||||
        <result column="SOURCE_CODE" property="sourceCode"/>
 | 
			
		||||
        <result column="TRADE_STATUE" property="tradeStatue"/>
 | 
			
		||||
        <result column="REMARKS" property="remarks"/>
 | 
			
		||||
    </resultMap>
 | 
			
		||||
 | 
			
		||||
    <sql id="select_base">
 | 
			
		||||
        select t.*, m.member_code as memberCode, m.member_name as memberName
 | 
			
		||||
        from cu_member_trade t
 | 
			
		||||
                 left join cu_member m
 | 
			
		||||
                           on t.pk_member = m.pk_id
 | 
			
		||||
    </sql>
 | 
			
		||||
 | 
			
		||||
    <sql id="ids_where">
 | 
			
		||||
        <where>
 | 
			
		||||
            t.del_flag='0'
 | 
			
		||||
            and t.pk_id in
 | 
			
		||||
            <foreach collection="pkIds" item="item" open="(" close=")" separator=",">
 | 
			
		||||
                #{item}
 | 
			
		||||
            </foreach>
 | 
			
		||||
        </where>
 | 
			
		||||
    </sql>
 | 
			
		||||
 | 
			
		||||
    <sql id="list_where">
 | 
			
		||||
        <where>
 | 
			
		||||
            t.del_flag='0'
 | 
			
		||||
            <if test="memberName != null and memberName != ''">
 | 
			
		||||
                and m.member_name like #{memberName} || '%'
 | 
			
		||||
            </if>
 | 
			
		||||
            <if test="memberCode != null and memberCode != ''">
 | 
			
		||||
                and m.member_code like #{memberCode} || '%'
 | 
			
		||||
            </if>
 | 
			
		||||
            <if test="tradeAmount != null">
 | 
			
		||||
                and t.TRADE_AMOUNT = #{tradeAmount}
 | 
			
		||||
            </if>
 | 
			
		||||
            <if test="remarks != null and remarks != ''">
 | 
			
		||||
                and m.REMARKS like #{remarks} || '%'
 | 
			
		||||
            </if>
 | 
			
		||||
            <if test="pkAccount != null">
 | 
			
		||||
                and t.PK_ACCOUNT = #{pkAccount}
 | 
			
		||||
            </if>
 | 
			
		||||
            <if test="tradeType != null">
 | 
			
		||||
                and t.TRADE_TYPE = #{tradeType}
 | 
			
		||||
            </if>
 | 
			
		||||
            <if test="sourceCode != null and sourceCode != ''">
 | 
			
		||||
                and t.SOURCE_CODE = #{sourceCode}
 | 
			
		||||
            </if>
 | 
			
		||||
            <if test="pkCountry != null">
 | 
			
		||||
                and t.pk_country = #{pkCountry}
 | 
			
		||||
            </if>
 | 
			
		||||
            <if test="tradeClassify != null">
 | 
			
		||||
                and t.TRADE_CLASSIFY = #{tradeClassify}
 | 
			
		||||
            </if>
 | 
			
		||||
            <if test="startDate != null and startDate != ''">
 | 
			
		||||
                and t.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
 | 
			
		||||
            </if>
 | 
			
		||||
            <if test="endDate != null and endDate != ''">
 | 
			
		||||
                and t.CREATION_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
 | 
			
		||||
            </if>
 | 
			
		||||
        </where>
 | 
			
		||||
    </sql>
 | 
			
		||||
 | 
			
		||||
    <update id="batchInsertCuMemberTrade">
 | 
			
		||||
        merge into cu_member_trade a
 | 
			
		||||
        using (
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,6 +51,20 @@
 | 
			
		|||
        and cp.settle_date = #{settleDate, jdbcType=DATE}
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <select id="listMemberSettlePeriod" resultMap="CuMemberSettlePeriodExt">
 | 
			
		||||
        <include refid="memberPeriod"></include>
 | 
			
		||||
        and cd.pk_country = #{pkCountry}
 | 
			
		||||
        and cp.settle_date >= #{settleDate, jdbcType=DATE}
 | 
			
		||||
        <if test="null == endSettleDate">
 | 
			
		||||
            and cp.settle_date <= #{settleDate, jdbcType=DATE}
 | 
			
		||||
        </if>
 | 
			
		||||
        <if test="null != endSettleDate">
 | 
			
		||||
            and cp.settle_date <= #{endSettleDate, jdbcType=DATE}
 | 
			
		||||
        </if>
 | 
			
		||||
        order by cp.settle_date
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
    <select id="queryMemberSettlePeriodByCondition" resultMap="CuMemberSettlePeriodExt">
 | 
			
		||||
        <include refid="memberPeriod"></include>
 | 
			
		||||
        and cd.pk_country=#{pkCountry}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -185,6 +185,45 @@
 | 
			
		|||
        order by cp.settle_date desc
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
    <!-- 查询会员奖金明细 -->
 | 
			
		||||
    <select id="listMemberBonus" resultMap="CuMemberBonus">
 | 
			
		||||
        select tmp.settle_date,
 | 
			
		||||
        sum(tmp.repur_range_income) repur_range_income,
 | 
			
		||||
        sum(tmp.retail_range_income) retail_range_income,
 | 
			
		||||
        sum(tmp.retail_real_subtotal) retail_real_subtotal,
 | 
			
		||||
        sum(tmp.real_income_total) real_income_total
 | 
			
		||||
        from (select case
 | 
			
		||||
        when EXTRACT(DAY FROM cp.settle_date) >= 24 or
 | 
			
		||||
        EXTRACT(DAY FROM cp.settle_date) < 7 then
 | 
			
		||||
        to_date(to_char(cp.settle_date, 'yyyy-mm') || '-' || 15,
 | 
			
		||||
        'yyyy-mm-dd')
 | 
			
		||||
        else
 | 
			
		||||
        LAST_DAY(cp.settle_date)
 | 
			
		||||
        end settle_date,
 | 
			
		||||
        cb.repur_range_income,
 | 
			
		||||
        cb.retail_range_income,
 | 
			
		||||
        cb.retail_real_subtotal,
 | 
			
		||||
        cb.real_income_total
 | 
			
		||||
        from CU_MEMBER_BONUS cb
 | 
			
		||||
        inner join cu_member_settle_period cp
 | 
			
		||||
        on cb.period = cp.pk_id
 | 
			
		||||
        where cb.del_flag = 0
 | 
			
		||||
        and cb.pk_member = #{pkMember}
 | 
			
		||||
        and cp.del_flag = 0
 | 
			
		||||
        <if test="grantStatus != null">
 | 
			
		||||
            and cb.grant_status >= #{grantStatus}
 | 
			
		||||
        </if>
 | 
			
		||||
        <if test="startDate != null">
 | 
			
		||||
            and cp.settle_date >= #{startDate, jdbcType=DATE}
 | 
			
		||||
        </if>
 | 
			
		||||
        <if test="endDate != null">
 | 
			
		||||
            and cp.settle_date < #{endDate, jdbcType=DATE}
 | 
			
		||||
        </if>
 | 
			
		||||
        ) tmp
 | 
			
		||||
        group by tmp.settle_date
 | 
			
		||||
        order by tmp.settle_date desc
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
    <select id="queryMemberBonusByConditionForServer" resultMap="CuMemberBonus">
 | 
			
		||||
        select cm.member_code, cm.member_name,
 | 
			
		||||
        cm.pk_settle_grade, cm.pk_awards,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 | 
			
		|||
import cn.hutool.core.collection.CollectionUtil;
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 | 
			
		||||
import com.hzs.common.core.constant.*;
 | 
			
		||||
import com.hzs.common.core.constant.msg.MemberMsgConstants;
 | 
			
		||||
import com.hzs.common.core.domain.R;
 | 
			
		||||
| 
						 | 
				
			
			@ -575,6 +576,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
 | 
			
		|||
 | 
			
		||||
        // 处理推荐人等级
 | 
			
		||||
        handleParentLevel(saOrder, currentDateTime);
 | 
			
		||||
        // 删除会员区域
 | 
			
		||||
        iCuMemberRetailRegionService.update(Wrappers.<CuMemberRetailRegion>lambdaUpdate()
 | 
			
		||||
                .eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember())
 | 
			
		||||
                .set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue())
 | 
			
		||||
                .set(CuMemberRetailRegion::getModifiedTime, currentDateTime)
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
 | 
			
		||||
        return true;
 | 
			
		||||
| 
						 | 
				
			
			@ -594,7 +601,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
 | 
			
		|||
            LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
 | 
			
		||||
            updateWrapper.set(CuMember::getMemberCode, CommonUtil.deleteMemberCode(member.getMemberCode()));
 | 
			
		||||
            updateWrapper.set(CuMember::getDelFlag, EDelFlag.DELETE.getValue());
 | 
			
		||||
            updateWrapper.set(CuMember::getModifiedTime, DateUtils.currentDateTime());
 | 
			
		||||
            updateWrapper.set(CuMember::getModifiedTime, currentDateTime);
 | 
			
		||||
            updateWrapper.set(CuMember::getPkModified, saOrder.getPkModified());
 | 
			
		||||
            updateWrapper.eq(CuMember::getPkId, member.getPkId());
 | 
			
		||||
            iCuMemberService.update(updateWrapper);
 | 
			
		||||
| 
						 | 
				
			
			@ -602,7 +609,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
 | 
			
		|||
            // 删除会员注册表
 | 
			
		||||
            LambdaUpdateWrapper<CuMemberRegister> updateWrapperRegister = new LambdaUpdateWrapper<>();
 | 
			
		||||
            updateWrapperRegister.set(CuMemberRegister::getDelFlag, EDelFlag.DELETE.getValue());
 | 
			
		||||
            updateWrapperRegister.set(CuMemberRegister::getModifiedTime, DateUtils.currentDateTime());
 | 
			
		||||
            updateWrapperRegister.set(CuMemberRegister::getModifiedTime, currentDateTime);
 | 
			
		||||
            updateWrapperRegister.set(CuMemberRegister::getPkModified, saOrder.getPkModified());
 | 
			
		||||
            updateWrapperRegister.eq(CuMemberRegister::getPkMember, member.getPkId());
 | 
			
		||||
            iCuMemberRegisterService.update(updateWrapperRegister);
 | 
			
		||||
| 
						 | 
				
			
			@ -610,6 +617,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
 | 
			
		|||
 | 
			
		||||
        // 处理推荐人等级
 | 
			
		||||
        handleParentLevel(saOrder, currentDateTime);
 | 
			
		||||
        // 删除会员区域
 | 
			
		||||
        iCuMemberRetailRegionService.update(Wrappers.<CuMemberRetailRegion>lambdaUpdate()
 | 
			
		||||
                .eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember())
 | 
			
		||||
                .set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue())
 | 
			
		||||
                .set(CuMemberRetailRegion::getModifiedTime, currentDateTime)
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
 | 
			
		||||
        return true;
 | 
			
		||||
| 
						 | 
				
			
			@ -856,14 +869,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
 | 
			
		|||
            // 升级订单
 | 
			
		||||
            // 回退等级
 | 
			
		||||
            iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
 | 
			
		||||
        } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType()) {
 | 
			
		||||
            // 复购订单
 | 
			
		||||
            // 会员等级发生变化,新等级需要处理
 | 
			
		||||
            BdGrade newGrade = saOrder.getNewGrade();
 | 
			
		||||
            if (null != cuMember && null != newGrade) {
 | 
			
		||||
                // 更新会员等级
 | 
			
		||||
                cuMember.setPkSettleGrade(newGrade.getPkId());
 | 
			
		||||
            }
 | 
			
		||||
            // 删除会员区域
 | 
			
		||||
            iCuMemberRetailRegionService.update(Wrappers.<CuMemberRetailRegion>lambdaUpdate()
 | 
			
		||||
                    .eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember())
 | 
			
		||||
                    .set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue())
 | 
			
		||||
                    .set(CuMemberRetailRegion::getModifiedTime, currentDateTime)
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 更新会员标记,如果是则更新会员信息
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -556,7 +556,7 @@ public class ApiOrderController extends BaseController {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 自助撤单w
 | 
			
		||||
     * 自助撤单
 | 
			
		||||
     **/
 | 
			
		||||
    @PostMapping("/self-revoke-order")
 | 
			
		||||
    public AjaxResult selfRevokeOrder(@RequestBody MyOrderVO myOrderVO, HttpServletRequest request) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,7 +40,7 @@ public class BonusMsgConstants {
 | 
			
		|||
    public static final String GRANT_VALIDATE_DATE = "只能发放7天以外的奖金!";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 奖金发放 -- 只能提现14天以外的奖金!
 | 
			
		||||
     * 奖金发放 -- 只能提现7天以外的奖金!
 | 
			
		||||
     */
 | 
			
		||||
    public static final String WITHDRAW_VALIDATE_DATE = "只能提现14天以外的奖金!";
 | 
			
		||||
    public static final String WITHDRAW_VALIDATE_DATE = "只能提现7天以外的奖金!";
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,8 +19,8 @@ import java.util.Date;
 | 
			
		|||
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
 | 
			
		||||
 | 
			
		||||
    public static final String YYYY = "yyyy";
 | 
			
		||||
 | 
			
		||||
    public static final String MM = "MM";
 | 
			
		||||
    public static final String DD = "dd";
 | 
			
		||||
 | 
			
		||||
    public static final String YYYYMM = "yyyyMM";
 | 
			
		||||
    public static final String YYYY_MM = "yyyy-MM";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue