forked from angelo/java-retail-app
## 奖金公布、发放改回日处理;
This commit is contained in:
parent
c515f7e476
commit
7eab829106
|
@ -140,7 +140,7 @@ public class CuMemberSettleController extends BaseController {
|
||||||
return AjaxResult.error("每月15号和每月最后一天才能发放");
|
return AjaxResult.error("每月15号和每月最后一天才能发放");
|
||||||
}
|
}
|
||||||
|
|
||||||
iBonusGrantService.grantBonusByPeriod(SecurityUtils.getPkCountry(), startSettleDate, endSettleDate);
|
iBonusGrantService.grantBonusByPeriod(SecurityUtils.getPkCountry(), startSettleDate);
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,32 +170,9 @@ public class CuMemberSettleController extends BaseController {
|
||||||
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,13 +20,6 @@ public interface CuMemberSettlePeriodMapper extends BaseMapper<CuMemberSettlePer
|
||||||
CuMemberSettlePeriodExt queryMemberSettlePeriod(@Param("pkCountry") Integer pkCountry,
|
CuMemberSettlePeriodExt queryMemberSettlePeriod(@Param("pkCountry") Integer pkCountry,
|
||||||
@Param("settleDate") Date settleDate);
|
@Param("settleDate") Date settleDate);
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据日期查询对应的期间列表
|
|
||||||
*/
|
|
||||||
List<CuMemberSettlePeriodExt> listMemberSettlePeriod(@Param("pkCountry") Integer pkCountry,
|
|
||||||
@Param("settleDate") Date settleDate,
|
|
||||||
@Param("endSettleDate") Date endSettleDate);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询期间
|
* 查询期间
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -29,16 +29,6 @@ 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,11 +204,6 @@ 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));
|
||||||
|
|
|
@ -39,17 +39,6 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) {
|
||||||
setBonusParam(bonusParam);
|
setBonusParam(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<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||||
|
|
||||||
List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
|
List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
|
||||||
|
@ -68,8 +57,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
public TableDataInfo lisBonusTotal(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo lisBonusTotal(@RequestBody BonusParam bonusParam) {
|
||||||
setBonusParam(bonusParam);
|
setBonusParam(bonusParam);
|
||||||
|
|
||||||
// 新查询奖金明细
|
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam);
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.listMemberBonus(bonusParam);
|
|
||||||
|
|
||||||
MemberRealIncomeVO memberRealIncomeVO = new MemberRealIncomeVO();
|
MemberRealIncomeVO memberRealIncomeVO = new MemberRealIncomeVO();
|
||||||
if (CollectionUtil.isEmpty(cuMemberBonusList)) {
|
if (CollectionUtil.isEmpty(cuMemberBonusList)) {
|
||||||
|
|
|
@ -25,10 +25,9 @@ public interface IBonusGrantService {
|
||||||
/**
|
/**
|
||||||
* 每天发放奖金
|
* 每天发放奖金
|
||||||
*
|
*
|
||||||
* @param settleDate 发放开始日期
|
* @param settleDate 发放日期
|
||||||
* @param endSettleDate 发放结束日期
|
|
||||||
*/
|
*/
|
||||||
Boolean grantBonusByPeriod(Integer pkCountry, String settleDate, String endSettleDate);
|
Boolean grantBonusByPeriod(Integer pkCountry, String settleDate);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 指定期数发放奖金
|
* 指定期数发放奖金
|
||||||
|
@ -43,6 +42,6 @@ public interface IBonusGrantService {
|
||||||
*
|
*
|
||||||
* @param settleDate 日期
|
* @param settleDate 日期
|
||||||
*/
|
*/
|
||||||
void withdrawalBonusByPeriod(Integer pkCountry, String settleDate, String endSettleDate);
|
void withdrawalBonusByPeriod(Integer pkCountry, String settleDate);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@ 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.*;
|
||||||
|
|
||||||
|
@ -81,41 +82,15 @@ 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) {
|
// 先发放奖金,验证是否是周结,周结发放上周的,直接变为可提现
|
||||||
// 15号,发 上月24号 到 本月7号
|
Date grantDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate());
|
||||||
settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(DateUtils.addMonths(nowDate, -1), 24));
|
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, grantDay);
|
||||||
endSettleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.setDays(nowDate, 24));
|
grantBonusByPeriod(pkCountry, settleDate);
|
||||||
} else if (dateDD == monthLast) {
|
// 设置奖金可以提现
|
||||||
// 当月最后一天,发 本月8号 到 本月23号
|
withdrawalBonusByPeriod(pkCountry, settleDate);
|
||||||
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) {
|
|
||||||
// 开始结束时间都有值,才进行发放
|
|
||||||
// 发放奖金
|
|
||||||
grantBonusByPeriod(pkCountry, settleDate, endSettleDate);
|
|
||||||
// 奖金可以提现
|
|
||||||
withdrawalBonusByPeriod(pkCountry, settleDate, endSettleDate);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -152,31 +127,27 @@ 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, String endSettleDate) {
|
public Boolean grantBonusByPeriod(Integer pkCountry, String settleDate) {
|
||||||
// 奖金发放范围期间
|
// 奖金发放
|
||||||
List<CuMemberSettlePeriodExt> cuMemberSettlePeriodList = getCuMemberSettlePeriod(pkCountry, settleDate, endSettleDate);
|
CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
|
||||||
|
|
||||||
Date currentDateTime = DateUtils.currentDateTime();
|
|
||||||
Map<Integer, BdAccount> bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData();
|
|
||||||
|
|
||||||
for (CuMemberSettlePeriodExt cuMemberSettlePeriod : cuMemberSettlePeriodList) {
|
|
||||||
if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsGrant()) {
|
if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsGrant()) {
|
||||||
// 已经发放,则跳过
|
return Boolean.FALSE;
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
String settleDateStr = DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, cuMemberSettlePeriod.getSettleDate());
|
// 验证是否周奖,周奖只能周三发放
|
||||||
|
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();
|
||||||
|
|
||||||
// 查询奖金表,查询未发放的奖金明细
|
// 查询奖金表,查询未发放的奖金明细
|
||||||
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());
|
||||||
|
@ -184,8 +155,18 @@ 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, cuMemberBonus.getRealIncomeTotal(), settleDateStr);
|
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);
|
||||||
});
|
});
|
||||||
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
|
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
|
||||||
// 新增流水明细,记录奖金明细的发放状态、消费明细
|
// 新增流水明细,记录奖金明细的发放状态、消费明细
|
||||||
|
@ -221,7 +202,6 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -283,29 +263,30 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void withdrawalBonusByPeriod(Integer pkCountry, String settleDate, String endSettleDate) {
|
public void withdrawalBonusByPeriod(Integer pkCountry, String settleDate) {
|
||||||
// 奖金可提现
|
// 奖金可提现
|
||||||
List<CuMemberSettlePeriodExt> cuMemberSettlePeriodList = getCuMemberSettlePeriod(pkCountry, settleDate, endSettleDate);
|
CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 封装会员 消费的 交易流水
|
* 封装会员 消费的 交易流水
|
||||||
*
|
*
|
||||||
|
|
|
@ -51,20 +51,6 @@
|
||||||
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}
|
||||||
|
|
Loading…
Reference in New Issue