forked from angelo/java-retail-app
## 奖金发放处理;
This commit is contained in:
parent
721b297cbd
commit
90ed09631f
|
@ -25,5 +25,4 @@ public interface CuMemberTradeMapper extends BaseMapper<CuMemberTrade> {
|
||||||
*/
|
*/
|
||||||
void batchInsertCuMemberTrade(@Param("cuMemberTradeList") List<?> cuMemberTradeList);
|
void batchInsertCuMemberTrade(@Param("cuMemberTradeList") List<?> cuMemberTradeList);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,6 @@ public class CuMemberTradeServiceImpl extends ServiceImpl<CuMemberTradeMapper, C
|
||||||
@Autowired
|
@Autowired
|
||||||
private CuMemberBonusSettle cuMemberBonusSettle;
|
private CuMemberBonusSettle cuMemberBonusSettle;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Long> batchQueryCuMemberTradeSeq(Integer rowNum) {
|
public List<Long> batchQueryCuMemberTradeSeq(Integer rowNum) {
|
||||||
return baseMapper.batchQueryCuMemberTradeSeq(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.ICuMemberSettlePeriodService;
|
||||||
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
|
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
|
||||||
import com.hzs.bonus.bonus.service.IBonusGrantService;
|
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.service.ICuMemberBonusService;
|
||||||
import com.hzs.bonus.bonus.vo.MemberSettlePeriodVO;
|
import com.hzs.bonus.bonus.vo.MemberSettlePeriodVO;
|
||||||
import com.hzs.common.core.annotation.AccessPermissions;
|
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.EOperationMethod;
|
||||||
import com.hzs.common.core.enums.EOperationModule;
|
import com.hzs.common.core.enums.EOperationModule;
|
||||||
import com.hzs.common.core.utils.DateUtils;
|
import com.hzs.common.core.utils.DateUtils;
|
||||||
import com.hzs.common.core.utils.StringUtils;
|
|
||||||
import com.hzs.common.core.web.controller.BaseController;
|
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;
|
||||||
|
@ -37,8 +35,6 @@ public class CuMemberSettleController extends BaseController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberBonusService iCuMemberBonusService;
|
private ICuMemberBonusService iCuMemberBonusService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBonusSettleService iBonusSettleService;
|
|
||||||
@Autowired
|
|
||||||
private ICuMemberTreeService iCuMemberTreeService;
|
private ICuMemberTreeService iCuMemberTreeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||||
|
@ -75,7 +71,6 @@ public class CuMemberSettleController extends BaseController {
|
||||||
@GetMapping("/settle-bonus")
|
@GetMapping("/settle-bonus")
|
||||||
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.INSERT)
|
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.INSERT)
|
||||||
public AjaxResult settleBonus(String settleDate) {
|
public AjaxResult settleBonus(String settleDate) {
|
||||||
// initTable(settleDate);
|
|
||||||
Date startDate = DateUtils.parseStringToDate(settleDate);
|
Date startDate = DateUtils.parseStringToDate(settleDate);
|
||||||
if (DateUtils.compareDateAfter(DateUtils.beforeDate(6, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
|
if (DateUtils.compareDateAfter(DateUtils.beforeDate(6, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
|
||||||
return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.SETTLE_VALIDATE_DATE));
|
return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.SETTLE_VALIDATE_DATE));
|
||||||
|
@ -85,9 +80,7 @@ public class CuMemberSettleController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 公布奖金
|
* 公布奖金 -- 页面使用
|
||||||
*
|
|
||||||
* @return AjaxResult
|
|
||||||
*/
|
*/
|
||||||
@GetMapping("/publish-bonus")
|
@GetMapping("/publish-bonus")
|
||||||
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.PUBLISH)
|
@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")
|
@GetMapping("/no-publish-bonus")
|
||||||
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.NO_PUBLISH)
|
@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")
|
@GetMapping("/grant-bonus")
|
||||||
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.GRANT)
|
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.GRANT)
|
||||||
public AjaxResult grantBonus(String settleDate) {
|
public AjaxResult grantBonus(String settleDate) {
|
||||||
Date startDate = DateUtils.parseStringToDate(settleDate);
|
Date startDate = DateUtils.parseStringToDate(settleDate);
|
||||||
if (DateUtils.compareDateBefore(DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
|
if (DateUtils.compareDateBefore(DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
|
||||||
|
// 只能发放7天以外的奖金!
|
||||||
return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.GRANT_VALIDATE_DATE));
|
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.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发放奖金
|
* 发放奖金,指定期数 -- 页面未使用
|
||||||
*
|
|
||||||
* @return AjaxResult
|
|
||||||
*/
|
*/
|
||||||
@GetMapping("/grant-temp-bonus")
|
@GetMapping("/grant-temp-bonus")
|
||||||
public AjaxResult grantTempBonus(Integer pkCountry, String settleDate) {
|
public AjaxResult grantTempBonus(Integer pkCountry, String settleDate) {
|
||||||
|
@ -144,9 +154,7 @@ public class CuMemberSettleController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发放奖金
|
* 发放奖金,定时任务 -- 页面未使用
|
||||||
*
|
|
||||||
* @return AjaxResult
|
|
||||||
*/
|
*/
|
||||||
@GetMapping("/grant-bonus_all")
|
@GetMapping("/grant-bonus_all")
|
||||||
public AjaxResult grantBonusAll() {
|
public AjaxResult grantBonusAll() {
|
||||||
|
@ -155,18 +163,39 @@ public class CuMemberSettleController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 奖金提现
|
* 奖金提现 -- 页面使用
|
||||||
*
|
|
||||||
* @return AjaxResult
|
|
||||||
*/
|
*/
|
||||||
@GetMapping("/withdrawal-bonus")
|
@GetMapping("/withdrawal-bonus")
|
||||||
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.WITHDRAWAL)
|
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.WITHDRAWAL)
|
||||||
public AjaxResult withdrawalBonus(String settleDate) {
|
public AjaxResult withdrawalBonus(String settleDate) {
|
||||||
Date startDate = DateUtils.parseStringToDate(settleDate);
|
Date startDate = DateUtils.parseStringToDate(settleDate);
|
||||||
if (DateUtils.compareDateBefore(DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
|
if (DateUtils.compareDateBefore(DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()), startDate)) {
|
||||||
|
// 只能提现7天以外的奖金!
|
||||||
return AjaxResult.error(TransactionUtils.getContent(BonusMsgConstants.WITHDRAW_VALIDATE_DATE));
|
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();
|
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);
|
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);
|
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) {
|
private CuMemberSettlePeriod getCuMemberSettlePeriod(String date) {
|
||||||
LambdaQueryWrapper<CuMemberSettlePeriod> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<CuMemberSettlePeriod> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(CuMemberSettlePeriod::getSettleDate, DateUtils.parseStringToDate(date));
|
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.param.BonusParam;
|
||||||
import com.hzs.bonus.bonus.service.ICuMemberBonusService;
|
import com.hzs.bonus.bonus.service.ICuMemberBonusService;
|
||||||
import com.hzs.bonus.bonus.vo.*;
|
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.utils.DateUtils;
|
||||||
import com.hzs.common.core.web.controller.BaseController;
|
import com.hzs.common.core.web.controller.BaseController;
|
||||||
import com.hzs.common.core.web.page.TableDataInfo;
|
import com.hzs.common.core.web.page.TableDataInfo;
|
||||||
|
@ -34,34 +32,6 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberBonusService iCuMemberBonusService;
|
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) {
|
public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) {
|
||||||
setBonusParam(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<>();
|
List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||||
|
@ -85,17 +66,15 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@PostMapping("/query-bonus-total")
|
@PostMapping("/query-bonus-total")
|
||||||
public TableDataInfo lisBonusTotal(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo lisBonusTotal(@RequestBody BonusParam bonusParam) {
|
||||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
setBonusParam(bonusParam);
|
||||||
bonusParam.setPkMember(SecurityUtils.getUserId());
|
|
||||||
bonusParam.setEndDate(DateUtils.currentDate());
|
// 新查询奖金明细
|
||||||
bonusParam.setStartDate(DateUtils.beforeDate(1, ChronoUnit.DAYS, bonusParam.getEndDate()));
|
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.listMemberBonus(bonusParam);
|
||||||
|
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam);
|
|
||||||
MemberRealIncomeVO memberRealIncomeVO = new MemberRealIncomeVO();
|
MemberRealIncomeVO memberRealIncomeVO = new MemberRealIncomeVO();
|
||||||
if (CollectionUtil.isEmpty(cuMemberBonusList)) {
|
if (CollectionUtil.isEmpty(cuMemberBonusList)) {
|
||||||
memberRealIncomeVO.setRealIncomeTotal(BigDecimal.ZERO);
|
memberRealIncomeVO.setRealIncomeTotal(BigDecimal.ZERO);
|
||||||
} else {
|
} else {
|
||||||
// memberRealIncomeVO.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonusList.get(0).getRealIncomeTotal(), cuMemberBonusList.get(0).getBackPoints()));
|
|
||||||
memberRealIncomeVO.setRealIncomeTotal(cuMemberBonusList.get(0).getRealIncomeTotal());
|
memberRealIncomeVO.setRealIncomeTotal(cuMemberBonusList.get(0).getRealIncomeTotal());
|
||||||
}
|
}
|
||||||
return getDataTable(Collections.singletonList(memberRealIncomeVO));
|
return getDataTable(Collections.singletonList(memberRealIncomeVO));
|
||||||
|
@ -116,7 +95,8 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||||
bonusParam.setPkMember(SecurityUtils.getUserId());
|
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) {
|
if (bonusParam.getStartDate() == null) {
|
||||||
bonusParam.setStartDate(startDate);
|
bonusParam.setStartDate(startDate);
|
||||||
} else if (DateUtils.compareDateBefore(bonusParam.getStartDate(), startDate)) {
|
} else if (DateUtils.compareDateBefore(bonusParam.getStartDate(), startDate)) {
|
||||||
|
@ -136,8 +116,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
|
||||||
setBonusParam(bonusParam);
|
setBonusParam(bonusParam);
|
||||||
startPage();
|
startPage();
|
||||||
TableDataInfo tableDataInfo = iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam);
|
return iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam);
|
||||||
return tableDataInfo;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,14 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
|
||||||
*/
|
*/
|
||||||
List<CuMemberBonusExt> queryMemberBonusByCondition(BonusParam bonusParam);
|
List<CuMemberBonusExt> queryMemberBonusByCondition(BonusParam bonusParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询会员奖金明细
|
||||||
|
*
|
||||||
|
* @param bonusParam
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<CuMemberBonusExt> listMemberBonus(BonusParam bonusParam);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据查询条件查询会员奖金
|
* 根据查询条件查询会员奖金
|
||||||
*
|
*
|
||||||
|
|
|
@ -10,6 +10,9 @@ public interface IBonusGrantService {
|
||||||
*/
|
*/
|
||||||
void publishBonusByPeriodEveryDay();
|
void publishBonusByPeriodEveryDay();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每天公放奖金,定时任务
|
||||||
|
*/
|
||||||
void grantWithdrawBonusByPeriodEveryDay();
|
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);
|
void grantBonusByTempPeriod(Integer pkCountry, String settleDate);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -33,6 +43,6 @@ public interface IBonusGrantService {
|
||||||
*
|
*
|
||||||
* @param settleDate 日期
|
* @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);
|
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 org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.DayOfWeek;
|
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
@ -47,13 +46,13 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemberToolsHandler memberToolsHandler;
|
|
||||||
@Autowired
|
|
||||||
private ICuMemberTradeService iCuMemberTradeService;
|
private ICuMemberTradeService iCuMemberTradeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberTradeDetailService iCuMemberTradeDetailService;
|
private ICuMemberTradeDetailService iCuMemberTradeDetailService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberAccountService iCuMemberAccountService;
|
private ICuMemberAccountService iCuMemberAccountService;
|
||||||
|
@Autowired
|
||||||
|
private MemberToolsHandler memberToolsHandler;
|
||||||
|
|
||||||
@DubboReference
|
@DubboReference
|
||||||
ICountryServiceApi iCountryServiceApi;
|
ICountryServiceApi iCountryServiceApi;
|
||||||
|
@ -82,23 +81,41 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void grantWithdrawBonusByPeriodEveryDay() {
|
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();
|
Map<Integer, BdCountry> integerBdCountryMap = iCountryServiceApi.getAllCountryMap().getData();
|
||||||
if (integerBdCountryMap.size() > 0) {
|
if (integerBdCountryMap.size() > 0) {
|
||||||
for (Integer pkCountry : integerBdCountryMap.keySet()) {
|
for (Integer pkCountry : integerBdCountryMap.keySet()) {
|
||||||
// 先发放奖金,验证是否是周结,周结发放上周的,直接变为可提现
|
if (dateDD == 15) {
|
||||||
Date grantDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate());
|
// 15号,发 上月24号 到 本月7号
|
||||||
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, grantDay);
|
settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(DateUtils.addMonths(nowDate, -1), 24));
|
||||||
grantBonusByPeriod(pkCountry, settleDate);
|
endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(nowDate, 24));
|
||||||
// 设置奖金可以提现
|
} else if (dateDD == monthLast) {
|
||||||
withdrawalBonusByPeriod(pkCountry, settleDate);
|
// 当月最后一天,发 本月8号 到 本月23号
|
||||||
|
settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(nowDate, 8));
|
||||||
|
endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(nowDate, 23));
|
||||||
|
}
|
||||||
|
|
||||||
// 周奖发放上周的奖金
|
if (null != settleDate) {
|
||||||
// CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
|
// 开始结束时间都有值,才进行发放
|
||||||
// Date withdrawDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, grantDay);
|
// 发放奖金
|
||||||
// if (EExpandCapMethod.WEEK_SETTLE.getValue() == cuMemberSettlePeriod.getSettleCycle() ||
|
grantBonusByPeriod(pkCountry, settleDate, endSettleDate);
|
||||||
// !CountryConstants.CHINA_COUNTRY.equals(pkCountry)) {
|
// 奖金可以提现
|
||||||
// withdrawDay = grantDay;
|
withdrawalBonusByPeriod(pkCountry, settleDate, endSettleDate);
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -135,27 +152,31 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
||||||
return cuMemberSettlePeriodByDate;
|
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
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean grantBonusByPeriod(Integer pkCountry, String settleDate) {
|
public Boolean grantBonusByPeriod(Integer pkCountry, String settleDate, String endSettleDate) {
|
||||||
// 奖金发放
|
// 奖金发放范围期间
|
||||||
CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
|
List<CuMemberSettlePeriodExt> cuMemberSettlePeriodList = getCuMemberSettlePeriod(pkCountry, settleDate, endSettleDate);
|
||||||
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();
|
|
||||||
Date currentDateTime = DateUtils.currentDateTime();
|
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());
|
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<>();
|
List<CuMemberTrade> cuMemberTradeList = new ArrayList<>();
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
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);
|
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, cuMemberBonus.getRealIncomeTotal(), settleDateStr);
|
||||||
// 重销币(商城重消+平台服务费)
|
|
||||||
// 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);
|
|
||||||
});
|
});
|
||||||
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
|
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
|
||||||
// 新增流水明细,记录奖金明细的发放状态、消费明细
|
// 新增流水明细,记录奖金明细的发放状态、消费明细
|
||||||
|
@ -210,6 +221,7 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
||||||
cuMemberSettlePeriod.setIsGrant(EYesNo.YES.getIntValue());
|
cuMemberSettlePeriod.setIsGrant(EYesNo.YES.getIntValue());
|
||||||
cuMemberSettlePeriod.setGrantDate(DateUtils.currentDateTime());
|
cuMemberSettlePeriod.setGrantDate(DateUtils.currentDateTime());
|
||||||
iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
||||||
|
}
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -219,20 +231,16 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
||||||
CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
|
CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
|
||||||
// 查询奖金表,查询未发放的奖金明细
|
// 查询奖金表,查询未发放的奖金明细
|
||||||
List<CuMemberBonus> cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
List<CuMemberBonus> cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||||
|
|
||||||
Map<Integer, BdAccount> bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData();
|
Map<Integer, BdAccount> bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData();
|
||||||
Date currentDateTime = DateUtils.currentDateTime();
|
Date currentDateTime = DateUtils.currentDateTime();
|
||||||
|
CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(pkCountry).getData();
|
||||||
if (cuMemberBonusList.size() > 0) {
|
if (cuMemberBonusList.size() > 0) {
|
||||||
// 新增交易流水
|
// 新增交易流水
|
||||||
List<CuMemberTrade> cuMemberTradeList = new ArrayList<>();
|
List<CuMemberTrade> cuMemberTradeList = new ArrayList<>();
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
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);
|
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());
|
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,
|
private void packAccountTrade(List<CuMemberTrade> cuMemberTradeList, Map<Integer, BdAccount> bdAccountMap, int accountValue, Date currentDateTime,
|
||||||
String settleDate) {
|
CuMemberBonus cuMemberBonus, BigDecimal grantValue, String settleDate) {
|
||||||
if (ComputeUtil.compareValue(grantValue) && bdAccountMap.containsKey(accountValue)) {
|
if (ComputeUtil.compareValue(grantValue) && bdAccountMap.containsKey(accountValue)) {
|
||||||
cuMemberTradeList.add(packageMemberTrade(cuMemberBonus, bdAccountMap.get(accountValue).getPkId(), grantValue, currentDateTime, settleDate));
|
cuMemberTradeList.add(packageMemberTrade(cuMemberBonus, bdAccountMap.get(accountValue).getPkId(), grantValue, currentDateTime, settleDate));
|
||||||
}
|
}
|
||||||
|
@ -275,30 +283,29 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@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()) {
|
if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsWithdrawal()) {
|
||||||
return;
|
// 已经提现,则跳过
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
// 验证是否周奖,周奖只能周四提现
|
// 批量更新会员账户,更新余额(cu_member_account)
|
||||||
if (EExpandCapMethod.WEEK_SETTLE.getValue() == cuMemberSettlePeriod.getSettleCycle()) {
|
|
||||||
if (DateUtils.getRecentlyDay(DateUtils.parseStringToDate(settleDate)) != DayOfWeek.THURSDAY.getValue()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 批量更新会员账户,更新余额
|
|
||||||
iCuMemberAccountService.updateMemberAccountWithdrawalByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry);
|
iCuMemberAccountService.updateMemberAccountWithdrawalByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry);
|
||||||
// 更新交易明细表状态 cu_member_trade_detail
|
// 更新交易明细表状态(cu_member_trade_detail)
|
||||||
iCuMemberTradeDetailService.updateCuMemberTradeDetailByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry);
|
iCuMemberTradeDetailService.updateCuMemberTradeDetailByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry);
|
||||||
// 更新奖金表发放状态
|
// 更新奖金表发放状态(cu_member_bonus)
|
||||||
iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.WITHDRAWAL.getValue(), EGrantStatus.GRANT.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.WITHDRAWAL.getValue(), EGrantStatus.GRANT.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||||
// 更新期间表状态
|
// 更新期间表状态(cu_member_settle_period_detail)
|
||||||
cuMemberSettlePeriod.setIsWithdrawal(EYesNo.YES.getIntValue());
|
cuMemberSettlePeriod.setIsWithdrawal(EYesNo.YES.getIntValue());
|
||||||
cuMemberSettlePeriod.setWithdrawalDate(DateUtils.currentDateTime());
|
cuMemberSettlePeriod.setWithdrawalDate(DateUtils.currentDateTime());
|
||||||
iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
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.MemberBonusDetailSerVO;
|
||||||
import com.hzs.bonus.bonus.vo.MemberBonusDetailVO;
|
import com.hzs.bonus.bonus.vo.MemberBonusDetailVO;
|
||||||
import com.hzs.common.core.constant.*;
|
import com.hzs.common.core.constant.*;
|
||||||
import com.hzs.common.core.domain.R;
|
|
||||||
import com.hzs.common.core.enums.*;
|
import com.hzs.common.core.enums.*;
|
||||||
import com.hzs.common.core.utils.ComputeUtil;
|
import com.hzs.common.core.utils.ComputeUtil;
|
||||||
import com.hzs.common.core.utils.DateUtils;
|
import com.hzs.common.core.utils.DateUtils;
|
||||||
|
@ -70,6 +69,11 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
return handleMemberBonusPurchase(getCuMemberBonusExtList(bonusParam), bonusParam);
|
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) {
|
private List<CuMemberBonusExt> handleMemberBonusPurchase(List<CuMemberBonusExt> cuMemberBonusExtList, BonusParam bonusParam) {
|
||||||
List<CuMemberBonusExt> memberBonusExtList = new ArrayList<>();
|
List<CuMemberBonusExt> memberBonusExtList = new ArrayList<>();
|
||||||
Map<String, CuMemberBonusExt> cuMemberBonusExtMap = new HashMap<>();
|
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()))
|
if (!DateUtils.compareDateEqual(endDate, DateUtils.beforeDate(1, ChronoUnit.DAYS, DateUtils.currentDate()))
|
||||||
|| DateUtils.compareDateTimeAfter(DateUtils.currentDateTime(), compareDate)) {
|
|| DateUtils.compareDateTimeAfter(DateUtils.currentDateTime(), compareDate)) {
|
||||||
CuMemberBonusExt cuMemberBonusExt = new CuMemberBonusExt();
|
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.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.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.setRetailRealSubtotal(BigDecimal.ZERO);
|
||||||
|
cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO);
|
||||||
memberBonusExtList.add(cuMemberBonusExt);
|
memberBonusExtList.add(cuMemberBonusExt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -124,48 +102,11 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
return memberBonusExtList;
|
return memberBonusExtList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<CuMemberBonusExt> queryMemberSecondBonusVoByCondition(BonusParam bonusParam) {
|
|
||||||
return getCuMemberBonusExtList(bonusParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<CuMemberBonusExt> getCuMemberBonusExtList(BonusParam bonusParam) {
|
private List<CuMemberBonusExt> getCuMemberBonusExtList(BonusParam bonusParam) {
|
||||||
if (bonusParam.getGrantStatus() == null) {
|
if (bonusParam.getGrantStatus() == null) {
|
||||||
bonusParam.setGrantStatus(EGrantStatus.PUBLISHED.getValue());
|
bonusParam.setGrantStatus(EGrantStatus.PUBLISHED.getValue());
|
||||||
}
|
}
|
||||||
List<CuMemberBonusExt> cuMemberBonusExtList = baseMapper.queryMemberBonusByCondition(bonusParam);
|
return 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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -424,15 +365,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
@Override
|
@Override
|
||||||
public List<CuMemberBonus> queryCuMemberBonusByCondition(Integer pkCountry, Integer grantStatus, Integer startPeriod, Integer endPeriod) {
|
public List<CuMemberBonus> queryCuMemberBonusByCondition(Integer pkCountry, Integer grantStatus, Integer startPeriod, Integer endPeriod) {
|
||||||
QueryWrapper<CuMemberBonus> queryWrapper = new QueryWrapper<>();
|
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," +
|
queryWrapper.select("pk_member,pk_rate,pk_country,sum(real_income_total) real_income_total");
|
||||||
"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.eq(SystemFieldConstants.PK_COUNTRY, pkCountry);
|
queryWrapper.eq(SystemFieldConstants.PK_COUNTRY, pkCountry);
|
||||||
queryWrapper.eq(MemberBonusFieldConstants.GRANT_STATUS, grantStatus);
|
queryWrapper.eq(MemberBonusFieldConstants.GRANT_STATUS, grantStatus);
|
||||||
queryWrapper.eq(MemberBonusFieldConstants.INCOME_STATUS, ENormalDisable.NORMAL.getValue());
|
queryWrapper.eq(MemberBonusFieldConstants.INCOME_STATUS, ENormalDisable.NORMAL.getValue());
|
||||||
|
|
|
@ -73,7 +73,7 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
|
||||||
// private BigDecimal repurRealSubtotal;
|
// private BigDecimal repurRealSubtotal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售直推收益
|
* 直推级差收益
|
||||||
*/
|
*/
|
||||||
@BigDecimalFormat
|
@BigDecimalFormat
|
||||||
private BigDecimal retailRangeIncome;
|
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">
|
<!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">
|
<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">
|
<update id="batchInsertCuMemberTrade">
|
||||||
merge into cu_member_trade a
|
merge into cu_member_trade a
|
||||||
using (
|
using (
|
||||||
|
|
|
@ -51,6 +51,20 @@
|
||||||
and cp.settle_date = #{settleDate, jdbcType=DATE}
|
and cp.settle_date = #{settleDate, jdbcType=DATE}
|
||||||
</select>
|
</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">
|
<select id="queryMemberSettlePeriodByCondition" resultMap="CuMemberSettlePeriodExt">
|
||||||
<include refid="memberPeriod"></include>
|
<include refid="memberPeriod"></include>
|
||||||
and cd.pk_country=#{pkCountry}
|
and cd.pk_country=#{pkCountry}
|
||||||
|
|
|
@ -185,6 +185,45 @@
|
||||||
order by cp.settle_date desc
|
order by cp.settle_date desc
|
||||||
</select>
|
</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 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,
|
cm.pk_settle_grade, cm.pk_awards,
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class BonusMsgConstants {
|
||||||
public static final String GRANT_VALIDATE_DATE = "只能发放7天以外的奖金!";
|
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 class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
|
|
||||||
public static final String YYYY = "yyyy";
|
public static final String YYYY = "yyyy";
|
||||||
|
|
||||||
public static final String MM = "MM";
|
public static final String MM = "MM";
|
||||||
|
public static final String DD = "dd";
|
||||||
|
|
||||||
public static final String YYYYMM = "yyyyMM";
|
public static final String YYYYMM = "yyyyMM";
|
||||||
public static final String YYYY_MM = "yyyy-MM";
|
public static final String YYYY_MM = "yyyy-MM";
|
||||||
|
|
Loading…
Reference in New Issue