## 去掉自动提现定时任务逻辑;

This commit is contained in:
cabbage 2025-07-25 13:58:36 +08:00
parent 056dfed220
commit fd40966f15
21 changed files with 28 additions and 480 deletions

View File

@ -21,11 +21,4 @@ public interface IMemberJobServiceApi {
*/
R<?> deleteAccountDetailByMonth();
/**
* 自动提现
*
* @return
*/
R<?> automaticWithdrawal();
}

View File

@ -3,8 +3,6 @@ package com.hzs.system.config;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.system.config.BdWithdrawal;
import java.util.List;
/**
* 根据国家查询提现配置明细列表api
**/
@ -15,8 +13,4 @@ public interface IWithdrawalServiceApi {
**/
R<BdWithdrawal> queryWithdrawal(Integer pkCountry, Integer pkAccount);
/**
* 查询所有自动提现的配置
**/
R<List<BdWithdrawal>> queryWithdrawalByIsAuto();
}

View File

@ -292,12 +292,6 @@ public class ApiCuMemberWithdrawController extends BaseController {
return balance;
}
@PostMapping("/auto")
public AjaxResult autoWithdrawInfo() {
iCuMemberWithdrawService.autoWithdraw();
return AjaxResult.success();
}
/**
* 是否为整数值
*

View File

@ -10,11 +10,7 @@ import java.io.Serializable;
import java.util.Date;
/**
* @Description: 用户账户审核信息
* @Author: ljc
* @Time: 2022/9/20 16:20
* @Classname: MemberAccountAudit
* @Package_name: com.hzs.member.account.dto
* 用户账户审核信息
*/
@Data
@Accessors(chain = true)
@ -22,8 +18,8 @@ import java.util.Date;
@AllArgsConstructor
@NoArgsConstructor
public class MemberAccountAudit implements Serializable {
private static final long serialVersionUID = -4475012780690337432L;
private static final long serialVersionUID = -4475012780690337432L;
/**
* 审核状态(1=待提交,2=已提交,3=审核中,4=已驳回,5=已完成,6=已归档)

View File

@ -28,7 +28,6 @@ public interface CuMemberAccountMapper extends BaseMapper<CuMemberAccount> {
*/
List<CuMemberAccountExt> queryMemberAccountByCondition(CuMemberAccount cuMemberAccount);
/**
* 根据会员编码获取余额
*
@ -45,15 +44,6 @@ public interface CuMemberAccountMapper extends BaseMapper<CuMemberAccount> {
*/
Integer updateMemberAccount(CuMemberAccount cuMemberAccount);
/**
* 根据国家查询余额与银行卡信息
*
* @param pkCountry 国家ID
* @return List<CuMemberAccountExt>
*/
List<CuMemberAccountExt> queryMemberAccountByPkCountry(@Param("pkCountry") Integer pkCountry);
/**
* 根据用户编号查询账户余额 行转列
*
@ -75,7 +65,6 @@ public interface CuMemberAccountMapper extends BaseMapper<CuMemberAccount> {
*/
Boolean updateBatchMemberAccountByPkmember(@Param("batch") String batch, @Param("pkModified") Long pkModified, @Param("type") int type);
/**
* 根据用户编号集查询余额余额字段
*
@ -101,7 +90,6 @@ public interface CuMemberAccountMapper extends BaseMapper<CuMemberAccount> {
*/
List<CuMemberAccountExt> selectMemberAccountList(CuMemberWalletDetailVO memberWalletDetailVO);
/**
* 查询默认钱包明细不包括血缘代数安置层数
*
@ -110,7 +98,6 @@ public interface CuMemberAccountMapper extends BaseMapper<CuMemberAccount> {
*/
List<CuMemberAccountExt> selectDefaultMemberAccountList(CuMemberWalletDetailVO memberWalletDetailVO);
/**
* 根据用户编号查询用户ID
*
@ -128,7 +115,6 @@ public interface CuMemberAccountMapper extends BaseMapper<CuMemberAccount> {
*/
Integer updateFrozenAmountInfo(CuMemberAccountExt cuMemberAccount);
/**
* 根据用户ID集查询余额
*
@ -137,7 +123,6 @@ public interface CuMemberAccountMapper extends BaseMapper<CuMemberAccount> {
*/
List<CuMemberAccountExt> queryMemberAccountByPkMember(@Param(value = "pkMembers") List<MemberAmountDTO> pkMembers);
/**
* 批量更新账户余额不同账户同一账户
*
@ -174,14 +159,6 @@ public interface CuMemberAccountMapper extends BaseMapper<CuMemberAccount> {
*/
List<CuMemberAccount> selectMemberAccountByPkMember(@Param(value = "pkMembers") List<Long> pkMembers);
/**
* 查询会员账户以及会员信息
*
* @param memberIdList 会员ID列表
* @return
*/
List<CuMemberAccountExt> queryAccountAndMemberInfo(@Param("memberIdList") List<Long> memberIdList);
/**
* 根据用户ID查询钱包余额
*
@ -190,7 +167,6 @@ public interface CuMemberAccountMapper extends BaseMapper<CuMemberAccount> {
*/
List<CuMemberRechargeAccountParam> queryWalletBalanceByPkMember(@Param("pkMember") Long pkMember);
/**
* 根据会员姓名与会员编号查询账户信息
*
@ -199,33 +175,6 @@ public interface CuMemberAccountMapper extends BaseMapper<CuMemberAccount> {
*/
List<CuMemberAccountExt> queryMemberAccountByMemberCodeAndName(CuMemberAccountVO cuMemberAccountVO);
/**
* 奖金发放根据期间发放奖金更新奖金余额
*
* @param startPeriod 期间
*/
void updateMemberAccountGrantByPeriod(@Param("pkCountry") Integer pkCountry, @Param("startPeriod") Integer startPeriod,
@Param("endPeriod") Integer endPeriod);
/**
* 奖金可提现根据期间更新可提现金额减少可消费金额
*
* @param startPeriod 期间
*/
void updateMemberAccountWithdrawalByPeriod(@Param("startPeriod") Integer startPeriod, @Param("endPeriod") Integer endPeriod, @Param("pkCountry") Integer pkCountry);
/**
* 批量更新奖金账号
*
* @param bonusList 奖金账号参数
* @param operateType 操作类型
* @param operateType 修改人
* @return Boolean
*/
Boolean batchUpdateBonusAccountByPkMember(@Param("bonusList") List<CuMemberBonusAccountParam> bonusList,
@Param("operateType") int operateType,
@Param("pkModified") Long pkModified);
/**
* 根据来源单号查询奖金账号信息
*

View File

@ -10,9 +10,6 @@ import java.util.List;
/**
* 会员提现表 Mapper 接口
*
* @author hzs
* @since 2022-09-06
*/
public interface CuMemberWithdrawMapper extends BaseMapper<CuMemberWithdraw> {

View File

@ -3,7 +3,6 @@ package com.hzs.member.account.provider;
import com.hzs.common.core.domain.R;
import com.hzs.member.account.IMemberJobServiceApi;
import com.hzs.member.account.service.ICuMemberAccountDetailService;
import com.hzs.member.account.service.ICuMemberWithdrawService;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
@ -17,8 +16,6 @@ public class IMemberJobServiceProvider implements IMemberJobServiceApi {
@Autowired
private ICuMemberAccountDetailService iCuMemberAccountDetailService;
@Autowired
private ICuMemberWithdrawService iCuMemberWithdrawService;
@Override
public R<?> insertAccountDetail() {
@ -42,15 +39,4 @@ public class IMemberJobServiceProvider implements IMemberJobServiceApi {
return R.ok();
}
@Override
public R<?> automaticWithdrawal() {
try {
iCuMemberWithdrawService.autoWithdraw();
} catch (Exception e) {
log.info("自动提现报错:", e);
return R.fail(e.getMessage());
}
return R.ok();
}
}

View File

@ -33,7 +33,6 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
*/
BigDecimal selectBalanceByMemberCode(Long pkMember, Integer accountType);
/**
* 更新用户余额
*
@ -91,14 +90,6 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
*/
List<CuMemberAccountShowVO> selectAccountDetail(Long pkMember, Integer pkCountry);
/**
* 根据国家查询余额与银行卡信息
*
* @param pkCountry 国家ID
* @return List<CuMemberAccountExt>
*/
List<CuMemberAccountExt> queryMemberAccountByPkcountry(Integer pkCountry);
/**
* 根据用户编号查询账户余额 行转列
*
@ -137,7 +128,6 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
*/
List<CuMemberAccountExt> queryMemberAccountByMemberCodes(List<CuMemberRechargeVO> memberCodes, List<String> memberCodeStrs);
/**
* 根据用户编号集查询余额(所有字段)
*
@ -146,7 +136,6 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
*/
List<CuMemberWalletDetailVO> queryMemberAccountAllByMemberCodes(List<String> memberCodes, Integer pkCountry);
/**
* 查询钱包明细
*
@ -155,7 +144,6 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
*/
Object[] selectMemberAccountList(CuMemberWalletDetailVO memberWalletDetailVO);
/**
* 根据用户编号查询用户ID
*
@ -189,7 +177,6 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
*/
List<CuMemberAccountExt> queryMemberAccountByPkMember(List<MemberAmountDTO> pkMembers);
/**
* 批量更新账户余额不同用户相同账户
*
@ -199,7 +186,6 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
*/
Boolean batchUpdateMemberAccountByPkmember(List<MemberAmountDTO> pkMemberList, int pkAccount, Integer isWithdraw);
/**
* 更新账户余额不同用户不同账户
*
@ -209,7 +195,6 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
*/
Boolean batchUpdateMemberAccountByPkMemberCountry(List<MemberAmountDTO> pkMemberList, Integer isWithdraw);
/**
* 批理更新会员的钱包状态
*
@ -228,14 +213,6 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
*/
List<CuMemberAccount> selectMemberAccountByPkMember(List<Long> pkMembers);
/**
* 查询会员账户以及会员信息
*
* @param memberIdList 会员ID列表
* @return
*/
List<CuMemberAccountExt> queryAccountAndMemberInfo(List<Long> memberIdList);
/**
* 根据会员姓名与会员编号查询账户信息
*
@ -247,20 +224,6 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
List<CuMemberAccountExportVO> selectFrozenAmountExport(CuMemberAccountVO cuMemberAccountVO);
/**
* 奖金发放根据期间发放奖金更新奖金余额
*
* @param startPeriod 期间
*/
void updateMemberAccountGrantByPeriod(Integer pkCountry, Integer startPeriod, Integer endPeriod);
/**
* 奖金可提现根据期间更新可提现金额减少可消费金额
*
* @param startPeriod 期间
*/
void updateMemberAccountWithdrawalByPeriod(Integer startPeriod, Integer endPeriod, Integer pkCountry);
/**
* 根据用户ID查询账户余额信息
*
@ -270,16 +233,6 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
*/
CuMemberRechargeAccountParam findMemberBalanceById(Integer pkAccount, Long pkMember);
/**
* 批量更新奖金账号
*
* @param bonusList 奖金账号参数
* @param operateType 操作类型
* @param operateType 修改人
* @return Boolean
*/
Boolean batchUpdateBonusAccountByPkMember(List<CuMemberBonusAccountParam> bonusList, int operateType, Long pkModified);
/**
* 根据来源单号查询奖金账号信息
*

View File

@ -119,11 +119,6 @@ public interface ICuMemberWithdrawService extends IService<CuMemberWithdraw> {
*/
BigDecimal computeRounding(BdWithdrawal bdWithdrawal, BigDecimal cashAmount);
/**
* 自动提现
*/
void autoWithdraw();
/**
* 获取账户余额
*
@ -195,6 +190,7 @@ public interface ICuMemberWithdrawService extends IService<CuMemberWithdraw> {
/**
* 提现驳回
*
* @param param
*/
void withdrawReject(CuMemberWithdrawRejectParam param);

View File

@ -4,12 +4,11 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.common.core.constant.EnumsPrefixConstants;
import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.core.constant.MemberFieldConstants;
import com.hzs.common.core.constant.SystemFieldConstants;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.utils.CommonUtil;
@ -324,11 +323,6 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
return memberAccountShowVOList;
}
@Override
public List<CuMemberAccountExt> queryMemberAccountByPkcountry(Integer pkCountry) {
return baseMapper.queryMemberAccountByPkCountry(pkCountry);
}
@Override
public List<CuMemberRechargeAccountParam> queryMemberAccountByMemberCode(String memberCode, List<Integer> accountTypes, Integer pkCountry) {
List<Integer> pkAccounts = new ArrayList<>();
@ -382,7 +376,6 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
return memberWalletDetailVOList;
}
@Override
public Object[] selectMemberAccountList(CuMemberWalletDetailVO memberWalletDetailVO) {
List<CuMemberAccountExt> cuMemberAccountExts;
@ -397,7 +390,6 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
}
convertCuMemberAccountVO(memberWalletDetailVOList, cuMemberAccountExts, memberWalletDetailVO.getPkCountry());
return new Object[]{cuMemberAccountExts, memberWalletDetailVOList};
}
/**
@ -494,7 +486,6 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
return baseMapper.updateFrozenAmountInfo(memberAccount);
}
/**
* 组装锁定账户信息
*
@ -545,7 +536,6 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
if (StringUtils.isNotEmpty(remarks)) {
ReflectUtils.invokeSetter(cuMemberAccount, MemberFieldConstants.ACCOUNT + accountValue + MemberFieldConstants.ACCOUNT_REMARKS, remarks);
}
}
}
return cuMemberAccount;
@ -568,12 +558,10 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
R<String> submit = iApprovalServiceApi.submit(approvalSubmitDTO, cuMemberFrozenParam.getLoginUser());
if (!submit.isSuccess()) {
log.error("====" + submit.getData());
throw new RuntimeException(submit.getMsg());
}
}
/**
* 获取充值用户主键信息
*
@ -589,7 +577,6 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
return baseMapper.queryMemberAccountByPkMember(pkMembers);
}
@Override
public Boolean batchUpdateMemberAccountByPkmember(List<MemberAmountDTO> pkMemberList, int pkAccount, Integer isWithdraw) {
return baseMapper.batchUpdateMemberAccountByPkMember(pkMemberList, pkAccount, isWithdraw);
@ -610,12 +597,6 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
return baseMapper.selectMemberAccountByPkMember(pkMembers);
}
@Override
public List<CuMemberAccountExt> queryAccountAndMemberInfo(List<Long> memberIdList) {
return baseMapper.queryAccountAndMemberInfo(memberIdList);
}
@Override
public Object[] queryMemberAccountByMemberCodeAndName(CuMemberAccountVO cuMemberAccountVO) {
CuMemberAccountExtVO cuMemberAccountExtVO;
@ -662,7 +643,6 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
return memberAccountExportVOList;
}
/**
* 根据前端选择的币种返回显示内容
*
@ -716,7 +696,6 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
ReflectUtils.invokeSetter(memberAccountExportVO, MemberFieldConstants.SETTLE_AVAILABLE_ACCOUNT + pkAccount, settleAvailableAccount);
}
}
return memberAccountExportVO;
}
@ -784,28 +763,12 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
return cuMemberAccountExtVO;
}
@Override
public void updateMemberAccountGrantByPeriod(Integer pkCountry, Integer startPeriod, Integer endPeriod) {
baseMapper.updateMemberAccountGrantByPeriod(pkCountry, startPeriod, endPeriod);
}
@Override
public void updateMemberAccountWithdrawalByPeriod(Integer startPeriod, Integer endPeriod, Integer pkCountry) {
baseMapper.updateMemberAccountWithdrawalByPeriod(startPeriod, endPeriod, pkCountry);
}
@Override
public CuMemberRechargeAccountParam findMemberBalanceById(Integer pkAccount, Long pkMember) {
List<CuMemberRechargeAccountParam> cuMemberRechargeAccountParams = baseMapper.queryMemberAccountByMemberCode(null, Collections.singletonList(pkAccount), pkMember);
return CollUtil.isNotEmpty(cuMemberRechargeAccountParams) ? cuMemberRechargeAccountParams.get(0) : null;
}
@Override
public Boolean batchUpdateBonusAccountByPkMember(List<CuMemberBonusAccountParam> bonusList, int operateType, Long pkModified) {
return baseMapper.batchUpdateBonusAccountByPkMember(bonusList, operateType, pkModified);
}
@Override
public List<CuMemberAccountRechargeExt> selectMemberBonusAccountBySourceCode(String sourceCode) {
return baseMapper.selectMemberBonusAccountBySourceCode(sourceCode);
@ -813,11 +776,11 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
@Override
public void deleteCuMemberAccountByPkMember(Long pkMember, Long pkApprove, Date currentDateTime) {
UpdateWrapper<CuMemberAccount> updateWrapper = new UpdateWrapper<>();
updateWrapper.set(SystemFieldConstants.DEL_FLAG, EYesNo.NO.getIntValue());
updateWrapper.set(SystemFieldConstants.PK_MODIFIED, pkApprove);
updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, currentDateTime);
updateWrapper.eq(MemberFieldConstants.PK_MEMBER, pkMember);
LambdaUpdateWrapper<CuMemberAccount> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(CuMemberAccount::getDelFlag, EYesNo.NO.getIntValue());
updateWrapper.set(CuMemberAccount::getPkModified, pkApprove);
updateWrapper.set(CuMemberAccount::getModifiedTime, currentDateTime);
updateWrapper.eq(CuMemberAccount::getPkMember, pkMember);
update(updateWrapper);
}

View File

@ -17,8 +17,6 @@ import com.hzs.common.domain.member.account.CuMemberAccount;
import com.hzs.common.domain.member.account.CuMemberTrade;
import com.hzs.common.domain.member.account.CuMemberWithdraw;
import com.hzs.common.domain.member.account.CuMemberWithdrawExt;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
import com.hzs.common.domain.system.config.*;
import com.hzs.common.domain.system.config.ext.BdWithdrawalTaxExt;
import com.hzs.common.security.utils.SecurityUtils;
@ -28,15 +26,12 @@ import com.hzs.member.account.dto.MemberAccountAudit;
import com.hzs.member.account.mapper.CuMemberWithdrawMapper;
import com.hzs.member.account.param.CuMemberWithdrawRejectParam;
import com.hzs.member.account.service.*;
import com.hzs.member.account.vo.CuMemberBankVO;
import com.hzs.member.account.vo.CuMemberPetitionVO;
import com.hzs.member.account.vo.CuMemberTradeVO;
import com.hzs.member.account.vo.CuMemberWithdrawVO;
import com.hzs.member.base.service.ICuMemberService;
import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.system.config.IWithdrawalAutoServiceApi;
import com.hzs.system.config.IWithdrawalProcessServiceApi;
import com.hzs.system.config.IWithdrawalServiceApi;
import com.hzs.system.config.IWithdrawalTaxServiceApi;
import com.hzs.system.sys.IApprovalServiceApi;
import com.hzs.system.sys.dto.ApprovalSubmitDTO;
@ -52,7 +47,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@ -70,10 +64,6 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
@Autowired
private ICuMemberBaseService iCuMemberBaseService;
@Autowired
private ICuMemberBankService iCuMemberBankService;
@Autowired
private ICuMemberService iCuMemberService;
@Autowired
private ICuMemberTradeService cuMemberTradeService;
@DubboReference
@ -81,8 +71,6 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
@DubboReference
IWithdrawalAutoServiceApi iWithdrawalAutoServiceApi;
@DubboReference
IWithdrawalServiceApi iWithdrawalServiceApi;
@DubboReference
IWithdrawalProcessServiceApi iWithdrawalProcessServiceApi;
@DubboReference
IApprovalServiceApi iApprovalServiceApi;
@ -310,95 +298,6 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
return row;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void autoWithdraw() {
//查询自动配置的信息
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 = iCuMemberBaseService.getAccountByCountry(EAccountProperty.IS_WITHDRAWAL.getValue(), pkCountry);
Integer accountsType = bdAccounts.get(0).getFieldValue();
//查询会员币种余额锁定金额
List<CuMemberAccountExt> cuMemberAccountExts = iCuMemberAccountService.queryMemberAccountByPkcountry(pkCountry);
memberWithDrawal(withdrawal, cuMemberAccountExts, bdAccounts, accountsType, pkCountry);
}
}
}
}
/**
* 会员提现
*
* @param withdrawal 提现配置信息
* @param cuMemberAccountExts 会员币种表
* @param bdAccounts 币种信息
* @param accountsType 配置的提现币种
* @param pkCountry 国家ID
*/
public void memberWithDrawal(BdWithdrawal withdrawal, List<CuMemberAccountExt> cuMemberAccountExts, List<BdAccount> bdAccounts, Integer accountsType, Integer pkCountry) {
//会员ID 银行卡ID
Long pkMember;
Long pkBank;
//余额 锁定金额
BigDecimal balance;
//最高自动提现金额
BigDecimal upperBound = withdrawal.getUpperBound();
//最低自动提现金额
BigDecimal lowerBound = withdrawal.getLowerBound();
//配置文件中的提现次数
Integer withdrawalNumber = withdrawal.getWithdrawalNumber();
if (CollUtil.isNotEmpty(cuMemberAccountExts)) {
//查询每个会员正在参与审核的次数
List<CuMemberWithdrawExt> withdrawTimesByPkCountry = baseMapper.getWithdrawTimesByPkCountry(pkCountry);
Map<Long, Integer> withdrawTimes = withdrawTimesByPkCountry.stream().collect(Collectors.toMap(CuMemberWithdrawExt::getPkMember, CuMemberWithdrawExt::getTimes));
//汇率
CurrencyDTO currencyDTO = iCuMemberBaseService.getCurrency(pkCountry);
for (CuMemberAccountExt cuMemberAccountExt : cuMemberAccountExts) {
pkBank = cuMemberAccountExt.getPkBank();
//是否绑定银行卡
CuMemberBankVO memberBank = iCuMemberBankService.selectCuMemberBankById(pkBank);
if (null != memberBank) {
pkMember = cuMemberAccountExt.getPkMember();
//获取余额
balance = getAvailableBalance(accountsType, cuMemberAccountExt);
//是否取整
balance = computeRounding(withdrawal, balance);
// 提现金额在配置金额之间
if (balance.compareTo(lowerBound) > 0 && balance.compareTo(upperBound) < 0) {
int times = withdrawTimes.get(pkMember) == null ? 0 : withdrawTimes.get(pkMember);
//比较正在提现次数与配置的最大提现次数
if (times <= withdrawalNumber) {
//本次应缴个税
BigDecimal payIncomeTax = computeIncomeTaxValue(pkMember, balance, pkCountry, lowerBound);
//手续费金额
BigDecimal serviceChargeAmount = computeServiceCharge(pkCountry, balance);
BigDecimal issuedAmount = balance.subtract(payIncomeTax).subtract(serviceChargeAmount);
String code = CommonUtil.createSerialNumber(EOrderPrefix.WITHDRAWAL_CODE.getValue());
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)
.serviceCharge(serviceChargeAmount).incomeTax(payIncomeTax)
.issuedAmount(issuedAmount).withdrawCode(code).remarks(remarks).build();
cuMemberWithdraw.setApproveState(EApproveStatus.WAIT_SUBMIT.getValue());
cuMemberWithdraw.setDelFlag(EDelFlag.UN_DELETE.getValue());
cuMemberWithdraw.setPkCountry(pkCountry);
cuMemberWithdraw.setPkCreator(pkMember);
//保存提现交易流水余额信息
baseMapper.insert(cuMemberWithdraw);
this.updateTradeAndBalancd(cuMemberWithdraw, EOperationMethod.INSERT);
}
}
}
}
}
}
/**
* 获取余额
*
@ -733,13 +632,13 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
@Override
public void withdrawReject(CuMemberWithdrawRejectParam param) {
if(ObjectUtil.isEmpty(param)){
if (ObjectUtil.isEmpty(param)) {
throw new ServiceException("参数异常!");
}
if(CollUtil.isEmpty(param.getIdList())){
if (CollUtil.isEmpty(param.getIdList())) {
throw new ServiceException("请选择需要驳回的数据!");
}
if(StrUtil.isEmpty(param.getRejectRemark())){
if (StrUtil.isEmpty(param.getRejectRemark())) {
throw new ServiceException("请录入驳回原因!");
}
LambdaQueryWrapper<CuMemberWithdraw> wrapper = new LambdaQueryWrapper<>();
@ -752,7 +651,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
baseMapper.update(withdraw, wrapper);
List<CuMemberWithdraw> cuMemberWithdrawList = baseMapper.selectList(wrapper);
Integer pkCountry = SecurityUtils.getPkCountry();
if(CollUtil.isNotEmpty(cuMemberWithdrawList)){
if (CollUtil.isNotEmpty(cuMemberWithdrawList)) {
for (CuMemberWithdraw cuMemberWithdraw : cuMemberWithdrawList) {
BusinessCommissionDTO businessCommissionDTO = BusinessCommissionDTO.builder()
.tradeCode(cuMemberWithdraw.getWithdrawCode()).pkCountry(pkCountry)

View File

@ -7,22 +7,17 @@ import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 会员银行卡VO
* @Description:
* @Author: ljc
* @Time: 2023/2/9 15:31
* @Classname: CuMemberBankVO
* @Package_name: com.hzs.member.account.vo
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CuMemberBankVO implements Serializable {
/**
* 银行主键
*/
@ -66,5 +61,5 @@ public class CuMemberBankVO implements Serializable {
/**
* logo图片
*/
private String logo;
private String logo;
}

View File

@ -235,19 +235,6 @@
</if>
</update>
<select id="queryMemberAccountByPkCountry" resultType="com.hzs.common.domain.member.ext.CuMemberAccountExt">
select a.*, b.pk_id pkBank
from cu_member_account a,
cu_member_bank b
where a.pk_member = b.pk_member
and a.del_flag = 0
and b.del_flag = 0
and b.default_card = 1
and a.is_withdraw = 0
and a.pk_country = #{pkCountry}
</select>
<select id="queryMemberAccountByMemberCode" resultType="com.hzs.member.account.dto.CuMemberRechargeAccountParam">
select pk_id, pk_member, account_name, decode(account_name, 'ACCOUNT4',
WITHDRAW_ACCOUNT4-lock_withdraw_account4, 0) withdrawBalance,
@ -987,53 +974,6 @@
#{item.pkMember}
</foreach>
</update>
<update id="updateMemberAccountGrantByPeriod">
merge into cu_member_account a
using (select pk_member,
sum(real_income_total * bc.out_exchange_rate) account4,
sum(back_points * bc.out_exchange_rate) account5,
sum(repur_coupon_subtotal * bc.out_exchange_rate) account8,
sum(global_points * bc.out_exchange_rate) account9,
sum(car_award_points * bc.out_exchange_rate) account10
from cu_member_bonus cb
inner join bd_currency bc
on cb.pk_country = bc.pk_country
where cb.del_flag = 0
and cb.pk_country = #{pkCountry}
and period between #{startPeriod} and #{endPeriod}
and cb.grant_status = 2
group by pk_member
) b
on (a.pk_member = b.pk_member)
when matched then
update set a.account4 = a.account4 + b.account4,
a.consume_account4 = a.consume_account4 + b.account4,
a.account5 = a.account5 + b.account5,
a.account8 = a.account8 + b.account8
</update>
<update id="updateMemberAccountWithdrawalByPeriod">
merge into cu_member_account a
using (
select a.pk_member, (case when CONSUME_ACCOUNT4 >= a.consume_money then a.consume_money else CONSUME_ACCOUNT4 end) consume_money
from (select ct.pk_member, sum(cd.consume_money) consume_money
from cu_member_trade ct
inner join cu_member_trade_detail cd
on cd.pk_member_trade = ct.pk_id
where cd.del_flag = 0
and ct.del_flag = 0
and cd.trade_statue = 1
and cd.period between #{startPeriod} and #{endPeriod}
and ct.pk_country = #{pkCountry}
group by ct.pk_member) a
inner join cu_member_account ca
on a.pk_member = ca.pk_member
where ca.CONSUME_ACCOUNT4 > 0
) b
on (a.pk_member = b.pk_member)
when matched then
update set a.withdraw_account4 = a.withdraw_account4 + b.consume_money,
a.consume_account4 = a.consume_account4 - b.consume_money
</update>
<select id="selectMemberAccountByPkMember" resultType="com.hzs.common.domain.member.account.CuMemberAccount">
select a.pk_member,
@ -1062,25 +1002,6 @@
</if>
</select>
<!-- 查询会员账户以及会员信息 -->
<select id="queryAccountAndMemberInfo" resultType="com.hzs.common.domain.member.ext.CuMemberAccountExt">
select cm.member_code,
cm.member_name,
cm.pk_parent,
cm.pk_place_parent,
cma.*
from cu_member cm
inner join cu_member_account cma
on cm.pk_id = cma.pk_member
where cm.del_flag = 0
<if test="memberIdList != null and memberIdList.size > 0">
and cm.pk_id in
<foreach collection="memberIdList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</select>
<select id="queryWalletBalanceByPkMember" resultType="com.hzs.member.account.dto.CuMemberRechargeAccountParam">
select pk_id,
decode(account_name, 'ACCOUNT4', WITHDRAW_ACCOUNT4 - lock_withdraw_account4, 0) withdrawBalance,
@ -1214,52 +1135,6 @@
</if>
</select>
<update id="batchUpdateBonusAccountByPkMember">
MERGE INTO cu_member_account m
USING
(
<foreach collection="bonusList" item="item" index="index" separator="union">
select #{item.pkMember} pk_member,
<if test='operateType == "1"'>
#{item.account4} account4,
#{item.consumeAccount4} consumeAccount4,
</if>
<if test='operateType == "2"'>
#{item.account4} account4,
#{item.withdrawAccount4} withdrawAccount4,
</if>
<if test='pkAccount == "3"'>
#{item.account4} account4,
#{item.consumeAccount4} consumeAccount4,
#{item.withdrawAccount4} withdrawAccount4,
</if>
FROM DUAL
</foreach>
) t
ON ( t.pk_member=m.pk_member and m.pk_member in
<foreach collection="bonusList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>)
WHEN MATCHED THEN
UPDATE SET
<if test='operateType == "1"'>
m.account4 = NVL(t.account4, 0) + m.account4,
m.consume_account4 = NVL(t.consumeAccount4, 0) + m.consume_account4,
</if>
<if test='operateType == "2"'>
m.account4 = NVL(t.account4, 0) + m.account4,
m.withdraw_account4 = NVL(t.withdrawAccount4, 0) + m.withdraw_account4,
</if>
<if test='operateType == "3"'>
m.account4 = NVL(t.account4, 0) + m.account4,
m.consume_account4 = NVL(t.consumeAccount4, 0) + m.consume_account4,
m.withdraw_account4 = NVL(t.withdrawAccount4, 0) + m.withdraw_account4,
</if>
m.MODIFIED_TIME = sysdate,m.pk_modified = #{pkModified}
</update>
<select id="selectMemberBonusAccountBySourceCode" resultType="com.hzs.common.domain.member.account.CuMemberAccountRechargeExt">
SELECT r.pk_member pkMember,
ma.account4 account4,

View File

@ -7,8 +7,6 @@ import com.hzs.system.config.service.IBdWithdrawalService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
* 提现配置的dubbo服务类
*/
@ -23,9 +21,4 @@ public class WithdrawalServiceProvider implements IWithdrawalServiceApi {
return R.ok(iBdWithdrawalService.queryWithdrawal(pkCountry, pkAccount));
}
@Override
public R<List<BdWithdrawal>> queryWithdrawalByIsAuto() {
return R.ok(iBdWithdrawalService.queryWithdrawalByIsAuto());
}
}

View File

@ -12,7 +12,6 @@ import java.util.List;
*/
public interface IBdWithdrawalService extends IService<BdWithdrawal> {
/**
* 根据国家查询提现配置明细列表
**/
@ -33,11 +32,6 @@ public interface IBdWithdrawalService extends IService<BdWithdrawal> {
**/
List<BdWithdrawalAutoExt> getWithdrawalAutoList(BdWithdrawalAutoExt withdrawalAutoExt);
/**
* 查询配置自动提现的配置
**/
List<BdWithdrawal> queryWithdrawalByIsAuto();
/**
* 查询会员提价表是否有数据
**/

View File

@ -1,14 +1,11 @@
package com.hzs.system.config.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.CacheConstants;
import com.hzs.common.core.enums.EDelFlag;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.core.service.RedisService;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.system.config.BdWithdrawal;
import com.hzs.common.domain.system.config.BdWithdrawalAuto;
import com.hzs.common.domain.system.config.ext.BdWithdrawalAutoExt;
@ -45,14 +42,6 @@ public class BdWithdrawalServiceImpl extends ServiceImpl<BdWithdrawalMapper, BdW
return withdrawal;
}
@Override
public List<BdWithdrawal> queryWithdrawalByIsAuto() {
LambdaQueryWrapper<BdWithdrawal> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdWithdrawal::getIsAuto, EYesNo.YES.getIntValue());
queryWrapper.le(BdWithdrawal::getEffectiveDate, DateUtils.currentDateTime());
return baseMapper.selectList(queryWrapper);
}
@Override
public Integer checkWithdraw(BdWithdrawalAutoExt withdrawalAutoExt) {
return baseMapper.checkWithdraw(withdrawalAutoExt);

View File

@ -12,12 +12,7 @@ import lombok.*;
import lombok.experimental.Accessors;
/**
* <p>
* 会员账户信息
* </p>
*
* @author hzs
* @since 2022-08-11
*/
@Data
@Builder
@ -249,7 +244,7 @@ public class CuMemberAccount extends BaseEntity {
private BigDecimal lockTransferAccount8;
/**
*复购券账户备注
* 复购券账户备注
*/
@TableField("ACCOUNT8_REMARKS")
private String account8Remarks;

View File

@ -14,12 +14,7 @@ import lombok.*;
import lombok.experimental.Accessors;
/**
* <p>
* 会员提现表
* </p>
*
* @author hzs
* @since 2022-09-06
*/
@Data
@Builder

View File

@ -101,9 +101,9 @@ public class BonusSettleJob {
memberBonusSettleApi.autoCalculateBonus(startDate);
}
/*
* @description: 自动公布奖金
**/
/**
* 自动公布奖金
*/
@XxlJob("autoPublishBonus")
public void autoPublishBonusEveryday() {
log.info("开始进行奖金公布");
@ -111,9 +111,9 @@ public class BonusSettleJob {
log.info("奖金公布完成");
}
/*
* @description: 自动发放奖金
**/
/**
* 自动发放奖金
*/
@XxlJob("autoGrantBonus")
public void autoGrantBonusEveryday() {
log.info("开始进行奖金发放");
@ -121,9 +121,9 @@ public class BonusSettleJob {
log.info("奖金发放完成");
}
/*
* @description: 自动结算每日业绩每月业绩用于统计分析
**/
/**
* 自动结算每日业绩每月业绩用于统计分析
*/
@XxlJob("autoSettleMember")
public void autoSettleMemberAchieveEveryday() {
log.info("开始进行会员业绩计算");

View File

@ -42,14 +42,6 @@ public class CuMemberJob {
iMemberJobServiceApi.deleteAccountDetailByMonth();
}
/**
* 自动提现
*/
@XxlJob("automaticWithdrawal")
public void automaticWithdrawal() {
iMemberJobServiceApi.automaticWithdrawal();
}
@XxlJob("sendPlaceErrorMsg")
public void sendPlaceErrorMsg() {
List<CuMemberExt> cuMemberList = iMemberServiceApi.queryPlaceErrorCode().getData();

View File

@ -22,7 +22,7 @@ import java.util.Date;
public class MemberJob {
@DubboReference
IMemberServiceApi memberServiceApi;
IMemberServiceApi iMemberServiceApi;
@DubboReference
ICuBonusStatisServiceApi iCuBonusStatisServiceApi;
@DubboReference
@ -108,7 +108,7 @@ public class MemberJob {
@XxlJob("clear-member-empty-code")
public void clearMemberEmptyCode() {
log.info("clear-member-empty-code 开始执行!");
Integer dataCount = memberServiceApi.clearMemberEmptyCode().getData();
Integer dataCount = iMemberServiceApi.clearMemberEmptyCode().getData();
log.info("clear-member-empty-code 开始结束! 共处理:{}", dataCount);
}
@ -117,7 +117,7 @@ public class MemberJob {
*/
@XxlJob("member-expire-data")
public void memberExpireData() {
R<?> resultR = memberServiceApi.handleExpireDate(MagicNumberConstants.PK_ADMIN, CountryConstants.CHINA_COUNTRY);
R<?> resultR = iMemberServiceApi.handleExpireDate(MagicNumberConstants.PK_ADMIN, CountryConstants.CHINA_COUNTRY);
if (!resultR.isSuccess()) {
log.error("处理会员续约状态出现异常,{}", resultR.getMsg());
}