## 提现个税取值参数修改;

This commit is contained in:
cabbage 2025-04-22 13:26:00 +08:00
parent 632121afec
commit 734ad1d9b5
16 changed files with 175 additions and 392 deletions

View File

@ -1,27 +1,16 @@
package com.hzs.system.config;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.system.config.BdWithdrawalTax;
import com.hzs.common.domain.system.config.ext.BdWithdrawalTaxExt;
import java.util.List;
/**
* @description: 个税明细api
* @author: zhang jing
* @date: 2022/9/27 15:14
* @param:
* @return:
**/
public interface IWithdrawalTaxServiceApi {
/**
* @description: 根据国家查询个税明细
* @author: zhang jing
* @date: 2022/9/27 16:13
* @param: [pkCountry]
* @return: com.hzs.common.core.domain.R<java.util.List<com.hzs.common.domain.system.config.BdWithdrawalTax>>
**/
R<BdWithdrawalTaxExt> queryWithdrawalTax(Integer pkCountry);
}

View File

@ -1,20 +1,12 @@
package com.hzs.bonus.bonus.service;
/**
* @Description: 奖金发放
* @Author: sui q
* @Time: 2023/3/20 17:04
* @Classname: IBonusGrantService
* @PackageName: com.hzs.member.bonus.service
* 奖金发放
*/
public interface IBonusGrantService {
/**
* 每天公布奖金,定时任务
*
* @return: void
* @Author: sui q
* @Date: 2023/3/20 17:06
*/
void publishBonusByPeriodEveryDay();
@ -24,9 +16,6 @@ public interface IBonusGrantService {
* 手动公布奖金
*
* @param settleDate 日期
* @return: void
* @Author: sui q
* @Date: 2023/3/20 17:06
*/
void publishBonusByPeriod(Integer pkCountry, String settleDate);
@ -34,9 +23,6 @@ public interface IBonusGrantService {
* 手动不公布奖金
*
* @param settleDate 日期
* @return: void
* @Author: sui q
* @Date: 2023/3/20 17:06
*/
void noPublishBonusByPeriod(Integer pkCountry, String settleDate);
@ -44,9 +30,6 @@ public interface IBonusGrantService {
* 每天发放奖金
*
* @param settleDate 日期
* @return: void
* @Author: sui q
* @Date: 2023/3/20 17:06
*/
Boolean grantBonusByPeriod(Integer pkCountry, String settleDate);
@ -56,9 +39,6 @@ public interface IBonusGrantService {
* 每天奖金提现
*
* @param settleDate 日期
* @return: void
* @Author: sui q
* @Date: 2023/3/20 17:07
*/
void withdrawalBonusByPeriod(Integer pkCountry, String settleDate);

View File

@ -1,10 +1,9 @@
package com.hzs.bonus.bonus.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.bonus.mapper.BdWaresBonusItemsMapper;
import com.hzs.bonus.bonus.service.IBdWaresBonusItemsService;
import com.hzs.common.core.constant.SystemFieldConstants;
import com.hzs.common.core.enums.EDelFlag;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.bonus.BdWaresBonusItems;
@ -39,15 +38,15 @@ public class BdWaresBonusItemsServiceImpl extends ServiceImpl<BdWaresBonusItemsM
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteWaresBonusItems(List<BdWaresBonusItems> waresBonusItemsList, Long pkWaresBonus, Long userId) {
UpdateWrapper<BdWaresBonusItems> updateWrapper = new UpdateWrapper<>();
LambdaUpdateWrapper<BdWaresBonusItems> updateWrapper = new LambdaUpdateWrapper<>();
if (waresBonusItemsList != null && waresBonusItemsList.size() > 0) {
Set<Long> itemIdList = waresBonusItemsList.stream().map(BdWaresBonusItems::getPkId).collect(Collectors.toSet());
updateWrapper.notIn(SystemFieldConstants.PK_ID, itemIdList);
updateWrapper.notIn(BdWaresBonusItems::getPkId, itemIdList);
}
updateWrapper.eq("PK_WARES_BONUS", pkWaresBonus);
updateWrapper.set(SystemFieldConstants.DEL_FLAG, EDelFlag.DELETE.getValue());
updateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId);
updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, DateUtils.currentDateTime());
updateWrapper.eq(BdWaresBonusItems::getPkWaresBonus, pkWaresBonus);
updateWrapper.set(BdWaresBonusItems::getDelFlag, EDelFlag.DELETE.getValue());
updateWrapper.set(BdWaresBonusItems::getPkModified, userId);
updateWrapper.set(BdWaresBonusItems::getModifiedTime, DateUtils.currentDateTime());
update(updateWrapper);
}

View File

@ -38,11 +38,7 @@ import java.time.temporal.ChronoUnit;
import java.util.*;
/**
* @Description: 奖金发放实现类
* @Author: sui q
* @Time: 2023/3/20 17:05
* @Classname: BonusGrantServiceImpl
* @PackageName: com.hzs.member.bonus.service.impl
* 奖金发放实现类
*/
@Slf4j
@Service
@ -95,28 +91,29 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
Map<Integer, BdCountry> integerBdCountryMap = iCountryServiceApi.getAllCountryMap().getData();
if (integerBdCountryMap.size() > 0) {
for (Integer pkCountry : integerBdCountryMap.keySet()) {
// 先发放奖金验证是否是周结周结发放上周的直接变为可提现
Date grantDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate());
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, grantDay);
grantBonusByPeriod(pkCountry, settleDate);
// 周奖发放上周的奖金
CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate);
Date withdrawDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, grantDay);
if (EExpandCapMethod.WEEK_SETTLE.getValue() == cuMemberSettlePeriod.getSettleCycle() ||
!CountryConstants.CHINA_COUNTRY.equals(pkCountry)) {
if (EExpandCapMethod.WEEK_SETTLE.getValue() == cuMemberSettlePeriod.getSettleCycle()
|| !CountryConstants.CHINA_COUNTRY.equals(pkCountry)) {
withdrawDay = grantDay;
}
withdrawalBonusByPeriod(pkCountry, DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, withdrawDay));
// 设置奖金可以提现
withdrawalBonusByPeriod(pkCountry, DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, withdrawDay));
}
}
}
/*
* @description: 公布奖金
* @author: sui q
* @date: 2023/4/24 14:19
* @param: null null
**/
private void publishBonus(CuMemberSettlePeriodExt cuMemberSettlePeriod) {
if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsPublish()) {

View File

@ -194,6 +194,7 @@ public class ApiCuMemberWithdrawController extends BaseController {
if (null == minAmount || null == maxAmount) {
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.CONFIGURE_WITHDRAWAL_AMOUNT_LIMIT));
}
// 提现金额
BigDecimal cashAmount = cuMemberWithdrawParam.getCashAmount();
if (null == cashAmount) {
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.ENTER_WITHDRAWAL_AMOUNT));

View File

@ -1,6 +1,5 @@
package com.hzs.member.account.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.account.CuMemberWithdraw;
import com.hzs.common.domain.member.account.CuMemberWithdrawExt;
@ -10,9 +9,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员提现表 Mapper 接口
* </p>
*
* @author hzs
* @since 2022-09-06
@ -64,15 +61,6 @@ public interface CuMemberWithdrawMapper extends BaseMapper<CuMemberWithdraw> {
*/
CuMemberWithdrawExt selectMemberWithdrawListTotal(CuMemberWithdrawVO cuMemberWithdrawVO);
/**
* 根据条件查询提现总金额个税
*
* @param cuMemberWithdrawVO
* @return CuMemberWithdrawExt
*/
CuMemberWithdrawExt selectMemberWithdrawListCount(CuMemberWithdrawVO cuMemberWithdrawVO);
/**
* 查询提现信息详情
*
@ -81,7 +69,6 @@ public interface CuMemberWithdrawMapper extends BaseMapper<CuMemberWithdraw> {
*/
CuMemberWithdrawExt queryCuMemberWithdrawDetail(@Param("pkId") Long pkId);
/**
* 打款
*
@ -97,7 +84,6 @@ public interface CuMemberWithdrawMapper extends BaseMapper<CuMemberWithdraw> {
*/
List<CuMemberWithdraw> getWithdrawApproveStateByIds(@Param("pkIds") List<Long> pkIds, @Param("approveState") Integer approveState);
/**
* 提现签呈显示
*

View File

@ -1,6 +1,5 @@
package com.hzs.member.account.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.account.CuMemberAccount;
import com.hzs.common.domain.member.account.CuMemberWithdraw;
@ -13,9 +12,7 @@ import java.math.BigDecimal;
import java.util.List;
/**
* <p>
* 会员提现表 服务类
* </p>
*
* @author hzs
* @since 2022-09-06
@ -29,14 +26,6 @@ public interface ICuMemberWithdrawService extends IService<CuMemberWithdraw> {
*/
List<CuMemberWithdraw> getWithdrawTimes(Long pkMember);
/**
* 根据申请单号查询提现信息
*
* @param code 单号
* @return CuMemberWithdraw
*/
CuMemberWithdraw selectWithdrawByCode(String code);
/**
* 根据批次号查询审核记录
*
@ -112,7 +101,7 @@ public interface ICuMemberWithdrawService extends IService<CuMemberWithdraw> {
* @param pkMember 用户ID
* @param cashAmount 提现金额
* @param pkCountry 国家ID
* @param minAmount 最低提现金额
* @param minAmount 个税下限
* @return BigDecimal
*/
BigDecimal computeIncomeTaxValue(Long pkMember, BigDecimal cashAmount, Integer pkCountry, BigDecimal minAmount);

View File

@ -3,7 +3,7 @@ package com.hzs.member.account.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.MemberFieldConstants;
import com.hzs.common.core.domain.R;
@ -46,16 +46,11 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
* 会员提现表 服务实现类
* </p>
*
* @author hzs
* @since 2022-09-06
@ -64,64 +59,42 @@ import java.util.stream.Collectors;
@Slf4j
public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMapper, CuMemberWithdraw> implements ICuMemberWithdrawService {
@Autowired
private ICuMemberTradeService iCuMemberTradeService;
@Autowired
private ICuMemberAccountService iCuMemberAccountService;
@Autowired
private ICuMemberBaseService iCuMemberBaseService;
@Autowired
private ICuMemberBankService iCuMemberBankService;
@Autowired
private ICuMemberService iCuMemberService;
@DubboReference
IWithdrawalTaxServiceApi withdrawalTaxServiceApi;
@Autowired
ICuMemberTradeService cuMemberTradeService;
@Autowired
ICuMemberAccountService cuMemberAccountService;
@Autowired
ICuMemberBaseService cuMemberBaseService;
@Autowired
ICuMemberBankService cuMemberBankService;
@Autowired
ICuMemberService cuMemberService;
IWithdrawalTaxServiceApi iWithdrawalTaxServiceApi;
@DubboReference
IWithdrawalAutoServiceApi withdrawalAutoServiceApi;
IWithdrawalAutoServiceApi iWithdrawalAutoServiceApi;
@DubboReference
IWithdrawalServiceApi withdrawalServiceApi;
IWithdrawalServiceApi iWithdrawalServiceApi;
@DubboReference
IWithdrawalProcessServiceApi withdrawalProcessServiceApi;
IWithdrawalProcessServiceApi iWithdrawalProcessServiceApi;
@DubboReference
IApprovalServiceApi approvalServiceApi;
IApprovalServiceApi iApprovalServiceApi;
@Override
public List<CuMemberWithdraw> getWithdrawTimes(Long pkMember) {
return baseMapper.getWithdrawTimes(pkMember);
}
@Override
public CuMemberWithdraw selectWithdrawByCode(String code) {
//根据单号查询充值信息
QueryWrapper<CuMemberWithdraw> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("WITHDRAW_CODE", code);
queryWrapper.eq("DEL_FLAG", EDelFlag.UN_DELETE.getValue());
return getOne(queryWrapper);
}
@Override
public List<CuMemberWithdraw> selectWithdrawByBatch(String batchNO) {
//根据单号查询充值信息
QueryWrapper<CuMemberWithdraw> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("BATCH", batchNO);
LambdaQueryWrapper<CuMemberWithdraw> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CuMemberWithdraw::getBatch, batchNO);
return baseMapper.selectList(queryWrapper);
}
private BigDecimal getIncomeTax(BdWithdrawalTaxExt withdrawalTax, Integer pkCountry, BigDecimal curCashAmount) {
private BigDecimal getIncomeTax(BdWithdrawalTaxExt withdrawalTax, BigDecimal curCashAmount, Map<String, BigDecimal> taxAmountMap) {
//个税比例
BigDecimal incomeTax = BigDecimal.ZERO;
//计算类型
@ -135,6 +108,8 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
BigDecimal ratio = bdWithdrawalTaxDeatail.getRatio();
if (curCashAmount.compareTo(upperBound) <= 0 && curCashAmount.compareTo(lowerBound) >= 0) {
incomeTax = ratio;
// 个税下限
taxAmountMap.put("tax", lowerBound);
break;
}
}
@ -160,10 +135,10 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
*/
public Integer updateTradeAndBalancd(CuMemberWithdraw cuMemberWithdraw, EOperationMethod eMethodType) {
CuMemberTrade cuMemberTrade = this.getCuMemberTrade(cuMemberWithdraw, eMethodType);
cuMemberTradeService.save(cuMemberTrade);
iCuMemberTradeService.save(cuMemberTrade);
//更新余额表
Integer pkAccount = cuMemberWithdraw.getPkAccount();
int accountType = cuMemberBaseService.getAccount(pkAccount).getFieldValue();
int accountType = iCuMemberBaseService.getAccount(pkAccount).getFieldValue();
//提现金额
BigDecimal cashAmount = cuMemberWithdraw.getCashAmount();
BigDecimal amount = eMethodType.equals(EOperationMethod.INSERT) ? cashAmount.negate() : cashAmount;
@ -171,7 +146,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
.accountType(accountType).amount(amount).pkModified(cuMemberWithdraw.getPkCreator())
.accountClassify(ETradeClassify.WITHDRAWAL.getValue()).pkCountry(cuMemberWithdraw.getPkCountry())
.transferType(ETransferType.TRANSFER_IN.getValue()).build();
return cuMemberAccountService.updateMemberAccountByMemberCode(param);
return iCuMemberAccountService.updateMemberAccountByMemberCode(param);
}
/**
@ -193,9 +168,9 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
Integer tradeType = eMethodType.equals(EOperationMethod.INSERT) ? ETradeType.WITHDRAW.getValue() : ETradeType.WITHDRAWAL_REFUSED.getValue();
Integer pkAccount = cuMemberWithdraw.getPkAccount();
//账户值
Integer accountValue = cuMemberBaseService.getAccountValueById(pkAccount);
Integer accountValue = iCuMemberBaseService.getAccountValueById(pkAccount);
//查询余额
BigDecimal balance = cuMemberAccountService.selectBalanceByMemberCode(pkMember, accountValue);
BigDecimal balance = iCuMemberAccountService.selectBalanceByMemberCode(pkMember, accountValue);
CuMemberTrade memberTrade = CuMemberTrade.builder().pkMember(pkMember)
.tradeCode(tradeCode)
.pkAccount(pkAccount)
@ -239,8 +214,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
CuMemberWithdrawExt cuMemberWithdrawExt = baseMapper.selectMemberWithdrawListTotal(memberWithdrawVO);
cuMemberWithdrawVoS.add(BeanUtil.copyProperties(cuMemberWithdrawExt, CuMemberWithdrawVO.class));
}
Object[] objects = new Object[]{cuMemberWithdrawExts, cuMemberWithdrawVoS};
return objects;
return new Object[]{cuMemberWithdrawExts, cuMemberWithdrawVoS};
}
@ -256,18 +230,18 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
Integer pkRate = memberWithdraw.getPkRate();
if (null != pkRate) {
//汇率
exchangeRate = cuMemberBaseService.getCurrencyById(memberWithdraw.getPkRate()).getInExchangeRate();
exchangeRate = iCuMemberBaseService.getCurrencyById(memberWithdraw.getPkRate()).getInExchangeRate();
} else {
//取最新的汇率
CurrencyDTO currencyDTO = cuMemberBaseService.getCurrency(cuMemberWithdrawVO.getPkCountry());
CurrencyDTO currencyDTO = iCuMemberBaseService.getCurrency(cuMemberWithdrawVO.getPkCountry());
exchangeRate = currencyDTO.getInExchangeRate();
}
//查询提现账户
Integer pkAccount = memberWithdraw.getPkAccount();
Integer accountsType = cuMemberBaseService.getAccountValueById(pkAccount);
Integer accountsType = iCuMemberBaseService.getAccountValueById(pkAccount);
//查询账户余额
CuMemberAccount cuMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(memberWithdraw.getPkMember());
CuMemberAccount cuMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(memberWithdraw.getPkMember());
BigDecimal availableBalance;
if (accountsType.equals(EAccount.BONUS.getValue())) {
BigDecimal balance = ReflectUtils.invokeGetter(cuMemberAccount, MemberFieldConstants.WITHDRAW_ACCOUNT + accountsType);
@ -299,7 +273,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
cuMemberWithdrawVO.setSettleServiceCharge(settleServiceCharge);
cuMemberWithdrawVO.setSettleCashAmount(settleCashAmount);
cuMemberWithdrawVO.setSettleIssuedAmount(settleIssuedAmount);
cuMemberWithdrawVO.setPkAccount(cuMemberBaseService.translateAccountValue(pkAccount));
cuMemberWithdrawVO.setPkAccount(iCuMemberBaseService.translateAccountValue(pkAccount));
}
@ -340,16 +314,16 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
@Transactional(rollbackFor = Exception.class)
public void autoWithdraw() {
//查询自动配置的信息
List<BdWithdrawal> withdrawalConfigs = withdrawalServiceApi.queryWithdrawalByIsAuto().getData();
List<BdWithdrawal> withdrawalConfigs = iWithdrawalServiceApi.queryWithdrawalByIsAuto().getData();
if (CollUtil.isNotEmpty(withdrawalConfigs)) {
for (BdWithdrawal withdrawal : withdrawalConfigs) {
Integer pkCountry = withdrawal.getPkCountry();
if (Boolean.TRUE.equals(isWithdrawalCycle(pkCountry))) {
//查询提现到的币种
List<BdAccount> bdAccounts = cuMemberBaseService.getAccountByCountry(EAccountProperty.IS_WITHDRAWAL.getValue(), pkCountry);
List<BdAccount> bdAccounts = iCuMemberBaseService.getAccountByCountry(EAccountProperty.IS_WITHDRAWAL.getValue(), pkCountry);
Integer accountsType = bdAccounts.get(0).getFieldValue();
//查询会员币种余额锁定金额
List<CuMemberAccountExt> cuMemberAccountExts = cuMemberAccountService.queryMemberAccountByPkcountry(pkCountry);
List<CuMemberAccountExt> cuMemberAccountExts = iCuMemberAccountService.queryMemberAccountByPkcountry(pkCountry);
memberWithDrawal(withdrawal, cuMemberAccountExts, bdAccounts, accountsType, pkCountry);
}
}
@ -370,7 +344,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
Long pkMember;
Long pkBank;
//余额 锁定金额
BigDecimal balance, lockAccount;
BigDecimal balance;
//最高自动提现金额
BigDecimal upperBound = withdrawal.getUpperBound();
//最低自动提现金额
@ -382,14 +356,12 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
List<CuMemberWithdrawExt> withdrawTimesByPkCountry = baseMapper.getWithdrawTimesByPkCountry(pkCountry);
Map<Long, Integer> withdrawTimes = withdrawTimesByPkCountry.stream().collect(Collectors.toMap(CuMemberWithdrawExt::getPkMember, CuMemberWithdrawExt::getTimes));
//汇率
CurrencyDTO currencyDTO = cuMemberBaseService.getCurrency(pkCountry);
CurrencyDTO currencyDTO = iCuMemberBaseService.getCurrency(pkCountry);
for (CuMemberAccountExt cuMemberAccountExt : cuMemberAccountExts) {
pkBank = cuMemberAccountExt.getPkBank();
//是否绑定银行卡
CuMemberBankVO memberBank = cuMemberBankService.selectCuMemberBankById(pkBank);
log.info("----------是否绑定银行卡");
CuMemberBankVO memberBank = iCuMemberBankService.selectCuMemberBankById(pkBank);
if (null != memberBank) {
log.info("----------绑定银行卡");
pkMember = cuMemberAccountExt.getPkMember();
//获取余额
balance = getAvailableBalance(accountsType, cuMemberAccountExt);
@ -398,7 +370,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
// 提现金额在配置金额之间
if (balance.compareTo(lowerBound) > 0 && balance.compareTo(upperBound) < 0) {
log.info("----------提现开始");
Integer times = withdrawTimes.get(pkMember) == null ? 0 : withdrawTimes.get(pkMember);
int times = withdrawTimes.get(pkMember) == null ? 0 : withdrawTimes.get(pkMember);
//比较正在提现次数与配置的最大提现次数
if (times <= withdrawalNumber) {
//本次应缴个税
@ -407,8 +379,8 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
BigDecimal serviceChargeAmount = computeServiceCharge(pkCountry, balance);
BigDecimal issuedAmount = balance.subtract(payIncomeTax).subtract(serviceChargeAmount);
String code = CommonUtil.createSerialNumber(EOrderPrefix.WITHDRAWAL_CODE.getValue());
CuMember member = cuMemberService.getMember(pkMember);
String remarks = member.getMemberCode() + "自动申请提现" + balance.toString();
CuMember member = iCuMemberService.getMember(pkMember);
String remarks = member.getMemberCode() + "自动申请提现" + balance;
CuMemberWithdraw cuMemberWithdraw = CuMemberWithdraw.builder().pkMember(pkMember)
.pkAccount(bdAccounts.get(0).getPkId()).pkBank(pkBank)
.pkRate(currencyDTO.getPkId()).cashAmount(balance)
@ -483,7 +455,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
DayOfWeek dayOfWeek = localDate.getDayOfWeek();
Integer dayOfWeekNum = dayOfWeek.getValue();
//自动提现配置的提现周期
List<BdWithdrawalAuto> listR = withdrawalAutoServiceApi.queryWithdrawalAuto(pkCountry).getData();
List<BdWithdrawalAuto> listR = iWithdrawalAutoServiceApi.queryWithdrawalAuto(pkCountry).getData();
for (BdWithdrawalAuto withdrawalAuto : listR) {
Integer withdrawalCycle = withdrawalAuto.getWithdrawalCycle();
if (dayOfWeekNum.equals(withdrawalCycle)) {
@ -498,21 +470,22 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
public BigDecimal getBalance(Long pkMember, Integer pkCountry, Integer accountsType) {
//提现账户
if (null == accountsType) {
List<BdAccount> bdAccounts = cuMemberBaseService.getAccountByCountry(EAccountProperty.IS_WITHDRAWAL.getValue(), pkCountry);
List<BdAccount> bdAccounts = iCuMemberBaseService.getAccountByCountry(EAccountProperty.IS_WITHDRAWAL.getValue(), pkCountry);
accountsType = bdAccounts.get(0).getFieldValue();
}
//查询账户余额
return cuMemberAccountService.selectBalanceByMemberCode(pkMember, accountsType);
return iCuMemberAccountService.selectBalanceByMemberCode(pkMember, accountsType);
}
@Override
public BigDecimal computeIncomeTaxValue(Long pkMember, BigDecimal cashAmount, Integer pkCountry, BigDecimal minAmount) {
//获取个税配置
R<BdWithdrawalTaxExt> bdWithdrawalTaxExtR = withdrawalTaxServiceApi.queryWithdrawalTax(pkCountry);
R<BdWithdrawalTaxExt> bdWithdrawalTaxExtR = iWithdrawalTaxServiceApi.queryWithdrawalTax(pkCountry);
BdWithdrawalTaxExt withdrawalTax = bdWithdrawalTaxExtR.getData();
if (null == withdrawalTax) {
return BigDecimal.ZERO;
}
// 提现个税周期
Integer cycle = withdrawalTax.getTaxCycle();
BigDecimal monthCashAmount = BigDecimal.ZERO;
@ -525,11 +498,19 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
}
// 当月提现额度 + 本次提现额度 = 当前提现金额
BigDecimal curCashAmount = monthCashAmount.add(cashAmount);
// 临时map取值个税下限
Map<String, BigDecimal> taxAmountMap = new HashMap<>();
//个税比例
BigDecimal incomeTax = getIncomeTax(withdrawalTax, pkCountry, curCashAmount);
BigDecimal incomeTax = getIncomeTax(withdrawalTax, curCashAmount, taxAmountMap);
// 个税下限
BigDecimal taxAmount = taxAmountMap.get("tax");
if (null == taxAmount) {
// 如果没有个税保留原有逻辑使用提现下限
taxAmount = minAmount;
}
//参加提税的金额(总提税金额-最低提现金额)
BigDecimal taxCashAmount = curCashAmount.subtract(minAmount);
//参加提税的金额(总提税金额-个税下限)
BigDecimal taxCashAmount = curCashAmount.subtract(taxAmount);
//当月总个税 = 当前提现金额*个税比例
BigDecimal totalTax = taxCashAmount.multiply(incomeTax).setScale(4, BigDecimal.ROUND_HALF_UP);
//当总所得税小于当月已缴所得税时本交不交所得税
@ -542,7 +523,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
@Override
public BigDecimal computeServiceCharge(Integer pkCountry, BigDecimal cashAmount) {
BdWithdrawalProcess withdrawalProcess = withdrawalProcessServiceApi.queryBdWithdrawalProcess(pkCountry).getData();
BdWithdrawalProcess withdrawalProcess = iWithdrawalProcessServiceApi.queryBdWithdrawalProcess(pkCountry).getData();
//手续费类型
Integer serviceType = withdrawalProcess.getServiceType();
BigDecimal serviceRatio = withdrawalProcess.getServiceRatio();
@ -555,7 +536,6 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
//手续费金额 = 本次提现金额 * 手续费比例
return cashAmount.multiply(serviceChargeeRatio).setScale(4, BigDecimal.ROUND_HALF_UP);
}
}
@Override
@ -569,13 +549,11 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
return roundIngAmount;
}
@Override
public List<CuMemberWithdraw> getWithdrawApproveStateByIds(List<Long> pkIds, Integer approveState) {
return baseMapper.getWithdrawApproveStateByIds(pkIds, approveState);
}
@Override
public CuMemberPetitionVO showMemberWithdrawPetition(List<Long> pkIds, Integer approveState) {
CuMemberPetitionVO memberPetitionVo = new CuMemberPetitionVO();
@ -612,7 +590,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
List<String> withdrawCodeList = cuMemberWithdrawExts.stream().map(CuMemberWithdrawExt::getWithdrawCode).collect(Collectors.toList());
CuMemberTradeVO memberTradeVO = CuMemberTradeVO.builder().sourceCode(businessNo)
.tradeCodes(withdrawCodeList).pkModified(loginUser.getUserId()).build();
cuMemberTradeService.updateSourceCodeByTradeCode(memberTradeVO);
iCuMemberTradeService.updateSourceCodeByTradeCode(memberTradeVO);
List<CuMemberWithdrawVO> memberWithdrawList = memberPetitionVo.getMemberWithdrawList();
//提交提现用户
@ -625,7 +603,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
.remark(memberPetitionVo.getDescription())
.pkMemberList(pkMembers).build();
//调用审批接口
R<String> submit = approvalServiceApi.submit(approvalSubmitDTO, loginUser);
R<String> submit = iApprovalServiceApi.submit(approvalSubmitDTO, loginUser);
if (!submit.isSuccess()) {
throw new RuntimeException(submit.getMsg());
}
@ -661,7 +639,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
.freeSignFlag(false).build();
}
businessLogDTOList.add(businessLog);
cuMemberBaseService.operationLogMQ(businessLogDTOList);
iCuMemberBaseService.operationLogMQ(businessLogDTOList);
}
}
@ -672,7 +650,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
List<CuMemberWithdrawExt> cuMemberWithdrawList = baseMapper.selectMemberWithdrawListByPkMember(pkMember, pkCountry);
if (CollUtil.isNotEmpty(cuMemberWithdrawList)) {
//查询币种值
List<BdAccount> allAccounts = cuMemberBaseService.getAccountByCountryId(pkCountry);
List<BdAccount> allAccounts = iCuMemberBaseService.getAccountByCountryId(pkCountry);
Map<Integer, BdAccount> map = allAccounts.stream().collect(Collectors.toMap(BdAccount::getPkId, o -> o));
for (CuMemberWithdrawExt ext : cuMemberWithdrawList) {
cuMemberWithdrawVO = BeanUtil.copyProperties(ext, CuMemberWithdrawVO.class);
@ -694,18 +672,18 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
BigDecimal backAmount = cuMemberWithdraw.getCashAmount();
if (backAmount.compareTo(BigDecimal.ZERO) > 0) {
//插入交易明细表
cuMemberTradeService.save(getCuMemberTradeInfo(cuMemberWithdraw));
iCuMemberTradeService.save(getCuMemberTradeInfo(cuMemberWithdraw));
//更新余额表
CuMemberAccount cuMemberAccount = this.getCuMemberAccount(cuMemberWithdraw, backAmount);
cuMemberAccount.setPkCountry(cuMemberWithdraw.getPkCountry());
cuMemberAccountService.updateMemberAccount(cuMemberAccount, pkModified);
iCuMemberAccountService.updateMemberAccount(cuMemberAccount, pkModified);
}
return baseMapper.updateWithdrawStatusByPkId(pkId, pkModified);
}
private CuMemberAccount getCuMemberAccount(CuMemberWithdraw cuMemberWithdraw, BigDecimal backAmount) {
Integer pkAccount = cuMemberWithdraw.getPkAccount();
BdAccount account = cuMemberBaseService.getAccount(pkAccount);
BdAccount account = iCuMemberBaseService.getAccount(pkAccount);
if (account.getFieldValue().equals(EAccount.BONUS.getValue())) {
return CuMemberAccount.builder()
.account4(backAmount)
@ -729,11 +707,11 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
private CuMemberTrade getCuMemberTradeInfo(CuMemberWithdraw cuMemberWithdraw) {
Long pkMember = cuMemberWithdraw.getPkMember();
Integer pkAccount = cuMemberWithdraw.getPkAccount();
BdAccount account = cuMemberBaseService.getAccount(pkAccount);
BdAccount account = iCuMemberBaseService.getAccount(pkAccount);
//交易金额
BigDecimal tradeAmount = cuMemberWithdraw.getCashAmount();
//查询余额
BigDecimal balance = cuMemberAccountService.selectBalanceByMemberCode(pkMember, account.getFieldValue());
BigDecimal balance = iCuMemberAccountService.selectBalanceByMemberCode(pkMember, account.getFieldValue());
CuMemberTrade memberTrade = CuMemberTrade.builder().pkMember(pkMember)
.tradeCode(CommonUtil.createSerialNumber(EOrderPrefix.WITHDRAWAL_CODE.getValue()))
.pkAccount(pkAccount)

View File

@ -294,23 +294,11 @@
group by c.in_exchange_rate
</select>
<select id="queryCuMemberWithdrawDetail" resultType="com.hzs.common.domain.member.account.CuMemberWithdrawExt">
<include refid="select_base"/>
where r.pk_id = #{pkId}
</select>
<select id="selectMemberWithdrawListCount" resultType="com.hzs.common.domain.member.account.CuMemberWithdrawExt">
select NVL(sum(r.cash_amount), 0) as cashAmount,
NVL(sum(r.service_charge), 0) as serviceCharge,
NVL(sum(r.income_tax), 0) as incomeTax,
NVL(sum(r.issued_amount), 0) as issuedAmount
from cu_member_withdraw r
left join cu_member m
on r.pk_member = m.pk_id
<include refid="list_where"></include>
</select>
<update id="withdrawPaymentByPkId">
update cu_member_withdraw
<set>

View File

@ -1,37 +1,27 @@
package com.hzs.system.config.provider;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.system.config.BdWithdrawalTax;
import com.hzs.common.domain.system.config.ext.BdWithdrawalTaxExt;
import com.hzs.system.config.IWithdrawalTaxServiceApi;
import com.hzs.system.config.service.IBdWithdrawalTaxService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
* @Description: 提现配置的dubbo服务类
* @Author: zhang jing
* @Time: 2022/9/9 14:11
* @Classname: GradeServiceProvider
* @PackageName: com.hzs.system.config.provider
*/
@DubboService
public class WithdrawalTaxServiceProvider implements IWithdrawalTaxServiceApi {
@Autowired
private IBdWithdrawalTaxService withdrawalTaxService;
private IBdWithdrawalTaxService iBdWithdrawalTaxService;
/**
* @description: 根据国家查询个税明细
* @author: zhang jing
* @date: 2022/9/27 16:14
* @param: [pkCountry]
* @return: com.hzs.common.core.domain.R<java.util.List<com.hzs.common.domain.system.config.BdWithdrawalTax>>
**/
@Override
public R<BdWithdrawalTaxExt> queryWithdrawalTax(Integer pkCountry) {
return R.ok(withdrawalTaxService.queryWithdrawalTax(pkCountry));
return R.ok(iBdWithdrawalTaxService.queryWithdrawalTax(pkCountry));
}
}

View File

@ -1,6 +1,5 @@
package com.hzs.system.config.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.system.config.BdWithdrawalTax;
import com.hzs.common.domain.system.config.ext.BdWithdrawalTaxExt;
@ -8,9 +7,7 @@ import com.hzs.common.domain.system.config.ext.BdWithdrawalTaxExt;
import java.util.List;
/**
* <p>
* 个税明细表 服务类
* </p>
*
* @author zhangjing
* @since 2022-09-06
@ -19,10 +16,6 @@ public interface IBdWithdrawalTaxService extends IService<BdWithdrawalTax> {
/**
* @description: 根据国家查询个税明细
* @author: zhang jing
* @date: 2022/9/27 16:12
* @param: [pkCountry]
* @return: java.util.List<com.hzs.common.domain.system.config.BdWithdrawalTax>
**/
BdWithdrawalTaxExt queryWithdrawalTax(Integer pkCountry);

View File

@ -2,8 +2,8 @@ package com.hzs.system.config.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.CacheConstants;
import com.hzs.common.core.enums.EDelFlag;
@ -25,103 +25,80 @@ import java.util.Date;
import java.util.List;
/**
* <p>
* 个税明细表 服务实现类
* </p>
*
* @author zhangjing
* @since 2022-09-06
*/
@Service
public class BdWithdrawalTaxServiceImpl extends ServiceImpl<BdWithdrawalTaxMapper, BdWithdrawalTax> implements IBdWithdrawalTaxService {
@Autowired
private RedisService redisService;
@Autowired
public void setRedisService(RedisService redisService) {
this.redisService = redisService;
}
@Autowired
private IBdWithdrawalTaxDetailsService withdrawalTaxDetailsService;
private IBdWithdrawalTaxDetailsService iBdWithdrawalTaxDetailsService;
/**
* @description: 根据国家查询个税明细
* @author: zhang jing
* @date: 2022/9/27 16:04
* @param: [pkCountry]
* @return: java.util.List<com.hzs.common.domain.system.config.BdWithdrawalTax>
**/
@Override
public BdWithdrawalTaxExt queryWithdrawalTax(Integer pkCountry) {
BdWithdrawalTaxExt withdrawalTaxExt = redisService.getCacheObject(CacheConstants.BD_WITHDRAWAL_TAX + pkCountry);
if (StringUtils.isNull(withdrawalTaxExt)) {
QueryWrapper<BdWithdrawalTax> queryWrapper = new QueryWrapper();
queryWrapper.eq("PK_COUNTRY", pkCountry);
queryWrapper.le("EFFECTIVE_DATE",new Date());
queryWrapper.orderByDesc("CREATION_TIME");
LambdaQueryWrapper<BdWithdrawalTax> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdWithdrawalTax::getPkCountry, pkCountry);
queryWrapper.le(BdWithdrawalTax::getEffectiveDate, new Date());
queryWrapper.orderByDesc(BdWithdrawalTax::getCreationTime);
BdWithdrawalTax bwt = baseMapper.selectOne(queryWrapper);
BdWithdrawalTaxExt bwtExt = BeanUtil.copyProperties(bwt, BdWithdrawalTaxExt.class);
if (StringUtils.isNotNull(bwtExt) && StringUtils.isNotNull(bwt)) {
QueryWrapper<BdWithdrawalTaxDetails> queryWrapperDetails = new QueryWrapper();
queryWrapperDetails.eq("PK_COUNTRY",pkCountry);
queryWrapperDetails.eq("PK_WITHDRAWAL_TAX",bwtExt.getPkId());
List<BdWithdrawalTaxDetails> bwtdList =withdrawalTaxDetailsService.list(queryWrapperDetails);
LambdaQueryWrapper<BdWithdrawalTaxDetails> queryWrapperDetails = new LambdaQueryWrapper<>();
queryWrapperDetails.eq(BdWithdrawalTaxDetails::getPkCountry, pkCountry);
queryWrapperDetails.eq(BdWithdrawalTaxDetails::getPkWithdrawalTax, bwtExt.getPkId());
List<BdWithdrawalTaxDetails> bwtdList = iBdWithdrawalTaxDetailsService.list(queryWrapperDetails);
if (CollectionUtil.isNotEmpty(bwtdList)) {
bwtExt.setWithdrawalTaxDetailsList(bwtdList);
} else {
bwtdList=new ArrayList<>();
bwtExt.setWithdrawalTaxDetailsList(bwtdList);
bwtExt.setWithdrawalTaxDetailsList(new ArrayList<>());
}
withdrawalTaxExt = bwtExt;
} else {
bwtExt = new BdWithdrawalTaxExt();
List<BdWithdrawalTaxDetails> bwtdList=new ArrayList<>();
bwtExt.setWithdrawalTaxDetailsList(bwtdList);
bwtExt.setWithdrawalTaxDetailsList(new ArrayList<>());
withdrawalTaxExt = bwtExt;
}
if(null != withdrawalTaxExt){
redisService.setCacheObject(CacheConstants.BD_WITHDRAWAL_TAX + pkCountry, withdrawalTaxExt);
}
}
return withdrawalTaxExt;
}
/**
* @description: 添加或修改提现个税
* @author: zhang jing
* @date: 2022/11/9 9:26
* @param: [withdrawalTaxExt]
* @return: boolean
**/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveWithdrawalTax(BdWithdrawalTaxExt withdrawalTaxExt) {
QueryWrapper<BdWithdrawalTax> queryWrapper = new QueryWrapper();
queryWrapper.eq("PK_COUNTRY",withdrawalTaxExt.getPkCountry());
LambdaQueryWrapper<BdWithdrawalTax> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdWithdrawalTax::getPkCountry, withdrawalTaxExt.getPkCountry());
BdWithdrawalTax bdWithdrawalTax = baseMapper.selectOne(queryWrapper);
if (StringUtils.isNotNull(bdWithdrawalTax)) {
UpdateWrapper<BdWithdrawalTax> updateWrapperWt = new UpdateWrapper();
updateWrapperWt.eq("PK_COUNTRY",withdrawalTaxExt.getPkCountry());
updateWrapperWt.eq("DEL_FLAG", EDelFlag.UN_DELETE.getValue());
updateWrapperWt.set("SERVICE_TYPE",withdrawalTaxExt.getServiceType());
updateWrapperWt.set("TAX_CYCLE",withdrawalTaxExt.getTaxCycle());
updateWrapperWt.set("EFFECTIVE_DATE",withdrawalTaxExt.getEffectiveDate());
LambdaUpdateWrapper<BdWithdrawalTax> updateWrapperWt = new LambdaUpdateWrapper<>();
updateWrapperWt.eq(BdWithdrawalTax::getPkCountry, withdrawalTaxExt.getPkCountry());
updateWrapperWt.eq(BdWithdrawalTax::getDelFlag, EDelFlag.UN_DELETE.getValue());
updateWrapperWt.set(BdWithdrawalTax::getServiceType, withdrawalTaxExt.getServiceType());
updateWrapperWt.set(BdWithdrawalTax::getTaxCycle, withdrawalTaxExt.getTaxCycle());
updateWrapperWt.set(BdWithdrawalTax::getEffectiveDate, withdrawalTaxExt.getEffectiveDate());
baseMapper.update(null, updateWrapperWt);
for (BdWithdrawalTaxDetails bwtd : withdrawalTaxExt.getWithdrawalTaxDetailsList()) {
bwtd.setPkWithdrawalTax(bdWithdrawalTax.getPkId());
if (StringUtils.isNotNull(bwtd.getPkId())) {
withdrawalTaxDetailsService.updateById(bwtd);
iBdWithdrawalTaxDetailsService.updateById(bwtd);
} else {
withdrawalTaxDetailsService.save(bwtd);
iBdWithdrawalTaxDetailsService.save(bwtd);
}
}
} else {
baseMapper.insert(withdrawalTaxExt);
for (BdWithdrawalTaxDetails bwtd : withdrawalTaxExt.getWithdrawalTaxDetailsList()) {
bwtd.setPkWithdrawalTax(withdrawalTaxExt.getPkId());
withdrawalTaxDetailsService.save(bwtd);
iBdWithdrawalTaxDetailsService.save(bwtd);
}
}
redisService.deleteObject(CacheConstants.BD_WITHDRAWAL_TAX + SecurityUtils.getPkCountry());
@ -130,34 +107,30 @@ public class BdWithdrawalTaxServiceImpl extends ServiceImpl<BdWithdrawalTaxMappe
/**
* @description: 删除提现个税
* @author: zhang jing
* @date: 2022/11/7 18:05
* @param: [pkId]
* @return: boolean
**/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean deleteWithdrawalTax(Long pkId) {
QueryWrapper<BdWithdrawalTaxDetails> queryWrapper = new QueryWrapper();
queryWrapper.eq("PK_ID",pkId);
BdWithdrawalTaxDetails withdrawalTaxDetails = withdrawalTaxDetailsService.getOne(queryWrapper);
LambdaQueryWrapper<BdWithdrawalTaxDetails> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdWithdrawalTaxDetails::getPkId, pkId);
BdWithdrawalTaxDetails withdrawalTaxDetails = iBdWithdrawalTaxDetailsService.getOne(queryWrapper);
UpdateWrapper<BdWithdrawalTaxDetails> updateWrapperDetails = new UpdateWrapper<>();
updateWrapperDetails.eq("PK_ID", pkId);
updateWrapperDetails.set("DEL_FLAG", EDelFlag.DELETE.getValue());
updateWrapperDetails.set("PK_MODIFIED", SecurityUtils.getUserId());
updateWrapperDetails.set("MODIFIED_TIME", new Date());
withdrawalTaxDetailsService.update(updateWrapperDetails);
LambdaUpdateWrapper<BdWithdrawalTaxDetails> updateWrapperDetails = new LambdaUpdateWrapper<>();
updateWrapperDetails.eq(BdWithdrawalTaxDetails::getPkId, pkId);
updateWrapperDetails.set(BdWithdrawalTaxDetails::getDelFlag, EDelFlag.DELETE.getValue());
updateWrapperDetails.set(BdWithdrawalTaxDetails::getPkModified, SecurityUtils.getUserId());
updateWrapperDetails.set(BdWithdrawalTaxDetails::getModifiedTime, new Date());
iBdWithdrawalTaxDetailsService.update(updateWrapperDetails);
QueryWrapper<BdWithdrawalTaxDetails> queryWrapperList = new QueryWrapper();
queryWrapperList.eq("PK_WITHDRAWAL_TAX",withdrawalTaxDetails.getPkWithdrawalTax());
List<BdWithdrawalTaxDetails> bwtdList = withdrawalTaxDetailsService.list(queryWrapperList);
LambdaQueryWrapper<BdWithdrawalTaxDetails> queryWrapperList = new LambdaQueryWrapper<>();
queryWrapperList.eq(BdWithdrawalTaxDetails::getPkWithdrawalTax, withdrawalTaxDetails.getPkWithdrawalTax());
List<BdWithdrawalTaxDetails> bwtdList = iBdWithdrawalTaxDetailsService.list(queryWrapperList);
if (CollectionUtil.isEmpty(bwtdList)) {
UpdateWrapper<BdWithdrawalTax> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("PK_ID", withdrawalTaxDetails.getPkWithdrawalTax());
updateWrapper.set("DEL_FLAG", EDelFlag.DELETE.getValue());
updateWrapper.set("PK_MODIFIED", SecurityUtils.getUserId());
updateWrapper.set("MODIFIED_TIME", new Date());
LambdaUpdateWrapper<BdWithdrawalTax> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(BdWithdrawalTax::getPkId, withdrawalTaxDetails.getPkWithdrawalTax());
updateWrapper.set(BdWithdrawalTax::getDelFlag, EDelFlag.DELETE.getValue());
updateWrapper.set(BdWithdrawalTax::getPkModified, SecurityUtils.getUserId());
updateWrapper.set(BdWithdrawalTax::getModifiedTime, new Date());
baseMapper.update(null, updateWrapper);
}
redisService.deleteObject(CacheConstants.BD_WITHDRAWAL_TAX + SecurityUtils.getPkCountry());
@ -166,19 +139,15 @@ public class BdWithdrawalTaxServiceImpl extends ServiceImpl<BdWithdrawalTaxMappe
/**
* @description: 查询单条个税数据
* @author: zhang jing
* @date: 2022/11/9 9:51
* @param: [pkId]
* @return: com.hzs.common.domain.system.config.ext.BdWithdrawalTaxExt
**/
@Override
public BdWithdrawalTaxExt getEithdrawalTaxExt(Long pkId) {
QueryWrapper<BdWithdrawalTaxDetails> queryWrapper = new QueryWrapper();
queryWrapper.eq("PK_ID",pkId);
List<BdWithdrawalTaxDetails> withdrawalTaxDetailsList = withdrawalTaxDetailsService.list(queryWrapper);
QueryWrapper<BdWithdrawalTax> queryWrapperbwt = new QueryWrapper();
queryWrapperbwt.eq("PK_ID", withdrawalTaxDetailsList.get(0).getPkWithdrawalTax());
queryWrapperbwt.eq("PK_COUNTRY", SecurityUtils.getPkCountry());
LambdaQueryWrapper<BdWithdrawalTaxDetails> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdWithdrawalTaxDetails::getPkId, pkId);
List<BdWithdrawalTaxDetails> withdrawalTaxDetailsList = iBdWithdrawalTaxDetailsService.list(queryWrapper);
LambdaQueryWrapper<BdWithdrawalTax> queryWrapperbwt = new LambdaQueryWrapper<>();
queryWrapperbwt.eq(BdWithdrawalTax::getPkId, withdrawalTaxDetailsList.get(0).getPkWithdrawalTax());
queryWrapperbwt.eq(BdWithdrawalTax::getPkCountry, SecurityUtils.getPkCountry());
BdWithdrawalTax bwt = baseMapper.selectOne(queryWrapperbwt);
BdWithdrawalTaxExt bdWithdrawalTaxExt = BeanUtil.copyProperties(bwt, BdWithdrawalTaxExt.class);
bdWithdrawalTaxExt.setWithdrawalTaxDetailsList(withdrawalTaxDetailsList);

View File

@ -4,12 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @description: 封顶方式
* @author: sui q
* @time: 2023/7/15 15:08
* @classname: ExpandCapMethod
* @package_name: com.hzs.common.core.enums
* version 1.0.0
* 封顶方式
*/
@AllArgsConstructor
@Getter

View File

@ -13,9 +13,7 @@ import lombok.experimental.Accessors;
import java.util.Date;
/**
* <p>
* 个税明细表
* </p>
*
* @author zhangjing
* @since 2022-09-06
@ -55,10 +53,4 @@ public class BdWithdrawalTax extends BaseEntity {
private Date effectiveDate;
}

View File

@ -1,41 +1,24 @@
package com.hzs.common.domain.system.config.ext;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.web.domain.BaseEntity;
import com.hzs.common.domain.system.config.BdWithdrawalTax;
import com.hzs.common.domain.system.config.BdWithdrawalTaxDetails;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
import java.util.List;
/**
* <p>
* 个税明细表
* </p>
*
* @author zhangjing
* @since 2022-09-06
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class BdWithdrawalTaxExt extends BdWithdrawalTax {
private static final long serialVersionUID = 1L;
private List<BdWithdrawalTaxDetails> withdrawalTaxDetailsList;
}

View File

@ -12,12 +12,7 @@ import java.time.temporal.ChronoUnit;
import java.util.Date;
/**
* @description: 每日奖金计算定时任务
* @author: sui q
* @time: 2023/4/10 14:19
* @classname: BonusSettleJob
* @package_name: com.hzs.third.job
* version 1.0.0
* 每日奖金计算定时任务
*/
@Component
@Slf4j
@ -29,10 +24,6 @@ public class BonusSettleJob {
/**
* 奖金每天自动结算,计算前一天奖金
*
* @return: void
* @Author: sui q
* @Date: 2023/3/4 13:48
*/
@XxlJob("backSettleBonus")
public void backupsSettleBonusEveryday() {
@ -42,10 +33,6 @@ public class BonusSettleJob {
/**
* 奖金每天自动结算,计算前一天奖金
*
* @return: void
* @Author: sui q
* @Date: 2023/3/4 13:48
*/
@XxlJob("autoSettleBonus")
public void autoSettleBonusEveryday() {
@ -56,10 +43,6 @@ public class BonusSettleJob {
/**
* 奖金每天自动结算,计算前一天奖金
*
* @return: void
* @Author: sui q
* @Date: 2023/3/4 13:48
*/
@XxlJob("autoSettleBonus1")
public void autoSettleBonusEveryday1() {
@ -70,10 +53,6 @@ public class BonusSettleJob {
/**
* 奖金每天自动结算,计算前一天奖金
*
* @return: void
* @Author: sui q
* @Date: 2023/3/4 13:48
*/
@XxlJob("autoSettleBonus2")
public void autoSettleBonusEveryday2() {
@ -84,10 +63,6 @@ public class BonusSettleJob {
/**
* 奖金每天自动结算,计算前一天奖金
*
* @return: void
* @Author: sui q
* @Date: 2023/3/4 13:48
*/
@XxlJob("autoSettleBonus3")
public void autoSettleBonusEveryday3() {
@ -98,10 +73,6 @@ public class BonusSettleJob {
/**
* 奖金每天自动结算,计算前一天奖金
*
* @return: void
* @Author: sui q
* @Date: 2023/3/4 13:48
*/
@XxlJob("autoSettleBonus4")
public void autoSettleBonusEveryday4() {
@ -112,10 +83,6 @@ public class BonusSettleJob {
/**
* 奖金每天自动结算,计算前一天奖金
*
* @return: void
* @Author: sui q
* @Date: 2023/3/4 13:48
*/
@XxlJob("autoSettleBonus5")
public void autoSettleBonusEveryday5() {
@ -126,10 +93,6 @@ public class BonusSettleJob {
/**
* 奖金每天自动结算,计算前一天奖金
*
* @return: void
* @Author: sui q
* @Date: 2023/3/4 13:48
*/
@XxlJob("autoSettleBonus6")
public void autoSettleBonusEveryday6() {
@ -140,9 +103,6 @@ public class BonusSettleJob {
/*
* @description: 自动公布奖金
* @author: sui q
* @date: 2023/4/24 14:26
* @param: null null
**/
@XxlJob("autoPublishBonus")
public void autoPublishBonusEveryday() {
@ -153,9 +113,6 @@ public class BonusSettleJob {
/*
* @description: 自动发放奖金
* @author: sui q
* @date: 2023/4/24 14:26
* @param: null null
**/
@XxlJob("autoGrantBonus")
public void autoGrantBonusEveryday() {
@ -166,9 +123,6 @@ public class BonusSettleJob {
/*
* @description: 自动结算每日业绩每月业绩用于统计分析
* @author: sui q
* @date: 2023/9/1 9:53
* @param: null null
**/
@XxlJob("autoSettleMember")
public void autoSettleMemberAchieveEveryday() {