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号和每月最后一天才能发放");
|
||||
}
|
||||
|
||||
iBonusGrantService.grantBonusByPeriod(SecurityUtils.getPkCountry(), startSettleDate, endSettleDate);
|
||||
iBonusGrantService.grantBonusByPeriod(SecurityUtils.getPkCountry(), startSettleDate);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
@ -170,32 +170,9 @@ public class CuMemberSettleController extends BaseController {
|
|||
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));
|
||||
}
|
||||
|
||||
// 发放开始时间
|
||||
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);
|
||||
iBonusGrantService.withdrawalBonusByPeriod(SecurityUtils.getPkCountry(), settleDate);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
|
|
@ -20,13 +20,6 @@ public interface CuMemberSettlePeriodMapper extends BaseMapper<CuMemberSettlePer
|
|||
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,16 +29,6 @@ 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,11 +204,6 @@ 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));
|
||||
|
|
|
@ -39,17 +39,6 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam 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<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
|
||||
|
@ -68,8 +57,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
public TableDataInfo lisBonusTotal(@RequestBody BonusParam bonusParam) {
|
||||
setBonusParam(bonusParam);
|
||||
|
||||
// 新查询奖金明细
|
||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.listMemberBonus(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam);
|
||||
|
||||
MemberRealIncomeVO memberRealIncomeVO = new MemberRealIncomeVO();
|
||||
if (CollectionUtil.isEmpty(cuMemberBonusList)) {
|
||||
|
|
|
@ -25,10 +25,9 @@ public interface IBonusGrantService {
|
|||
/**
|
||||
* 每天发放奖金
|
||||
*
|
||||
* @param settleDate 发放开始日期
|
||||
* @param endSettleDate 发放结束日期
|
||||
* @param settleDate 发放日期
|
||||
*/
|
||||
Boolean grantBonusByPeriod(Integer pkCountry, String settleDate, String endSettleDate);
|
||||
Boolean grantBonusByPeriod(Integer pkCountry, String settleDate);
|
||||
|
||||
/**
|
||||
* 指定期数发放奖金
|
||||
|
@ -43,6 +42,6 @@ public interface IBonusGrantService {
|
|||
*
|
||||
* @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 java.math.BigDecimal;
|
||||
import java.time.DayOfWeek;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
|
||||
|
@ -81,41 +82,15 @@ 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()) {
|
||||
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));
|
||||
}
|
||||
|
||||
if (null != settleDate) {
|
||||
// 开始结束时间都有值,才进行发放
|
||||
// 发放奖金
|
||||
grantBonusByPeriod(pkCountry, settleDate, endSettleDate);
|
||||
// 奖金可以提现
|
||||
withdrawalBonusByPeriod(pkCountry, settleDate, endSettleDate);
|
||||
}
|
||||
// 先发放奖金,验证是否是周结,周结发放上周的,直接变为可提现
|
||||
Date grantDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate());
|
||||
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, grantDay);
|
||||
grantBonusByPeriod(pkCountry, settleDate);
|
||||
// 设置奖金可以提现
|
||||
withdrawalBonusByPeriod(pkCountry, settleDate);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -152,76 +127,81 @@ 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, 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());
|
||||
if (cuMemberBonusList.size() > 0) {
|
||||
// 新增交易流水
|
||||
List<CuMemberTrade> cuMemberTradeList = new ArrayList<>();
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
// 奖金币(首购+复购+云代+海粉+嗨粉+店铺)
|
||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, cuMemberBonus.getRealIncomeTotal(), settleDateStr);
|
||||
});
|
||||
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
|
||||
// 新增流水明细,记录奖金明细的发放状态、消费明细
|
||||
List<CuMemberTradeDetail> cuMemberTradeDetailList = new ArrayList<>();
|
||||
Map<Integer, BdAccount> bdAccountMap = iAccountServiceApi.getAccountListByCountry(pkCountry).getData();
|
||||
for (int i = 0; i < cuMemberTradeList.size(); i++) {
|
||||
CuMemberTrade cuMemberTrade = cuMemberTradeList.get(i);
|
||||
cuMemberTrade.setPkId(seqList.get(i));
|
||||
if (bdAccountMap.containsKey(cuMemberTrade.getPkAccount()) && EAccount.BONUS.getValue() == bdAccountMap.get(cuMemberTrade.getPkAccount()).getFieldValue()) {
|
||||
// 验证有奖金币的记录发放记录
|
||||
CuMemberTradeDetail cuMemberTradeDetail = CuMemberTradeDetail.builder()
|
||||
.period(cuMemberSettlePeriod.getPkId())
|
||||
.pkMemberTrade(cuMemberTrade.getPkId())
|
||||
.grantMoney(cuMemberTrade.getTradeAmount())
|
||||
.consumeMoney(cuMemberTrade.getTradeAmount())
|
||||
.build();
|
||||
cuMemberTradeDetail.setPkCountry(cuMemberTrade.getPkCountry());
|
||||
cuMemberTradeDetail.setPkCreator(cuMemberTrade.getPkCreator());
|
||||
cuMemberTradeDetail.setCreationTime(cuMemberTrade.getCreationTime());
|
||||
cuMemberTradeDetailList.add(cuMemberTradeDetail);
|
||||
}
|
||||
}
|
||||
// 批量保存交易流水,交易流水明细
|
||||
iCuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList);
|
||||
iCuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList);
|
||||
// 批量更新会员账户,更新余额
|
||||
iCuMemberAccountService.updateMemberAccountGrantByPeriod(pkCountry, cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
// 更新奖金表发放状态
|
||||
iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.GRANT.getValue(), EGrantStatus.PUBLISHED.getValue(),
|
||||
cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
}
|
||||
// 更新期间表状态
|
||||
cuMemberSettlePeriod.setIsGrant(EYesNo.YES.getIntValue());
|
||||
cuMemberSettlePeriod.setGrantDate(DateUtils.currentDateTime());
|
||||
iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
||||
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();
|
||||
Date currentDateTime = DateUtils.currentDateTime();
|
||||
|
||||
// 查询奖金表,查询未发放的奖金明细
|
||||
List<CuMemberBonus> cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
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);
|
||||
// 环球积分
|
||||
// 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<CuMemberTradeDetail> cuMemberTradeDetailList = new ArrayList<>();
|
||||
Map<Integer, BdAccount> bdAccountMap = iAccountServiceApi.getAccountListByCountry(pkCountry).getData();
|
||||
for (int i = 0; i < cuMemberTradeList.size(); i++) {
|
||||
CuMemberTrade cuMemberTrade = cuMemberTradeList.get(i);
|
||||
cuMemberTrade.setPkId(seqList.get(i));
|
||||
if (bdAccountMap.containsKey(cuMemberTrade.getPkAccount()) && EAccount.BONUS.getValue() == bdAccountMap.get(cuMemberTrade.getPkAccount()).getFieldValue()) {
|
||||
// 验证有奖金币的记录发放记录
|
||||
CuMemberTradeDetail cuMemberTradeDetail = CuMemberTradeDetail.builder()
|
||||
.period(cuMemberSettlePeriod.getPkId())
|
||||
.pkMemberTrade(cuMemberTrade.getPkId())
|
||||
.grantMoney(cuMemberTrade.getTradeAmount())
|
||||
.consumeMoney(cuMemberTrade.getTradeAmount())
|
||||
.build();
|
||||
cuMemberTradeDetail.setPkCountry(cuMemberTrade.getPkCountry());
|
||||
cuMemberTradeDetail.setPkCreator(cuMemberTrade.getPkCreator());
|
||||
cuMemberTradeDetail.setCreationTime(cuMemberTrade.getCreationTime());
|
||||
cuMemberTradeDetailList.add(cuMemberTradeDetail);
|
||||
}
|
||||
}
|
||||
// 批量保存交易流水,交易流水明细
|
||||
iCuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList);
|
||||
iCuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList);
|
||||
// 批量更新会员账户,更新余额
|
||||
iCuMemberAccountService.updateMemberAccountGrantByPeriod(pkCountry, cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
// 更新奖金表发放状态
|
||||
iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.GRANT.getValue(), EGrantStatus.PUBLISHED.getValue(),
|
||||
cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
}
|
||||
// 更新期间表状态
|
||||
cuMemberSettlePeriod.setIsGrant(EYesNo.YES.getIntValue());
|
||||
cuMemberSettlePeriod.setGrantDate(DateUtils.currentDateTime());
|
||||
iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
@ -283,27 +263,28 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
|
||||
@Override
|
||||
@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);
|
||||
|
||||
for (CuMemberSettlePeriodExt cuMemberSettlePeriod : cuMemberSettlePeriodList) {
|
||||
if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsWithdrawal()) {
|
||||
// 已经提现,则跳过
|
||||
continue;
|
||||
}
|
||||
// 批量更新会员账户,更新余额(cu_member_account)
|
||||
iCuMemberAccountService.updateMemberAccountWithdrawalByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry);
|
||||
// 更新交易明细表状态(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);
|
||||
CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
|
||||
if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsWithdrawal()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 验证是否周奖,周奖只能周四提现
|
||||
if (EExpandCapMethod.WEEK_SETTLE.getValue() == cuMemberSettlePeriod.getSettleCycle()) {
|
||||
if (DateUtils.getRecentlyDay(DateUtils.parseStringToDate(settleDate)) != DayOfWeek.THURSDAY.getValue()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
// 批量更新会员账户,更新余额
|
||||
iCuMemberAccountService.updateMemberAccountWithdrawalByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry);
|
||||
// 更新交易明细表状态 cu_member_trade_detail
|
||||
iCuMemberTradeDetailService.updateCuMemberTradeDetailByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry);
|
||||
// 更新奖金表发放状态
|
||||
iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.WITHDRAWAL.getValue(), EGrantStatus.GRANT.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
|
||||
// 更新期间表状态
|
||||
cuMemberSettlePeriod.setIsWithdrawal(EYesNo.YES.getIntValue());
|
||||
cuMemberSettlePeriod.setWithdrawalDate(DateUtils.currentDateTime());
|
||||
iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -51,20 +51,6 @@
|
|||
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}
|
||||
|
|
Loading…
Reference in New Issue