|
@@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.sckw.core.common.enums.NumberConstant;
|
|
import com.sckw.core.common.enums.NumberConstant;
|
|
|
import com.sckw.core.exception.BusinessException;
|
|
import com.sckw.core.exception.BusinessException;
|
|
|
-import com.sckw.core.exception.SuccessBusinessException;
|
|
|
|
|
import com.sckw.core.model.constant.Global;
|
|
import com.sckw.core.model.constant.Global;
|
|
|
import com.sckw.core.model.page.PageRes;
|
|
import com.sckw.core.model.page.PageRes;
|
|
|
import com.sckw.core.utils.CollectionUtils;
|
|
import com.sckw.core.utils.CollectionUtils;
|
|
@@ -20,11 +19,13 @@ import com.sckw.payment.dao.KwpWalletRefundMapper;
|
|
|
import com.sckw.payment.dao.KwpWalletTransferMapper;
|
|
import com.sckw.payment.dao.KwpWalletTransferMapper;
|
|
|
import com.sckw.payment.job.AsyncPool;
|
|
import com.sckw.payment.job.AsyncPool;
|
|
|
import com.sckw.payment.model.KwpWalletRefund;
|
|
import com.sckw.payment.model.KwpWalletRefund;
|
|
|
|
|
+import com.sckw.payment.model.KwpWalletRelation;
|
|
|
import com.sckw.payment.model.KwpWalletTransfer;
|
|
import com.sckw.payment.model.KwpWalletTransfer;
|
|
|
import com.sckw.payment.model.constant.RefundEnum;
|
|
import com.sckw.payment.model.constant.RefundEnum;
|
|
|
import com.sckw.payment.model.constant.TransferEnum;
|
|
import com.sckw.payment.model.constant.TransferEnum;
|
|
|
import com.sckw.payment.model.constant.WalletChannelEnum;
|
|
import com.sckw.payment.model.constant.WalletChannelEnum;
|
|
|
import com.sckw.payment.model.dto.WalletInfoDto;
|
|
import com.sckw.payment.model.dto.WalletInfoDto;
|
|
|
|
|
+import com.sckw.payment.model.dto.WalletRelationDto;
|
|
|
import com.sckw.payment.model.dto.common.BusinessNo;
|
|
import com.sckw.payment.model.dto.common.BusinessNo;
|
|
|
import com.sckw.payment.model.dto.page.CashPage;
|
|
import com.sckw.payment.model.dto.page.CashPage;
|
|
|
import com.sckw.payment.model.dto.page.PrePayWalletPage;
|
|
import com.sckw.payment.model.dto.page.PrePayWalletPage;
|
|
@@ -36,6 +37,7 @@ import com.sckw.redis.config.RedisLockUtil;
|
|
|
import com.sckw.redis.constant.RedisLockKey;
|
|
import com.sckw.redis.constant.RedisLockKey;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.system.api.model.dto.res.EntCacheResDto;
|
|
import com.sckw.system.api.model.dto.res.EntCacheResDto;
|
|
|
|
|
+import com.sckw.system.api.model.dto.res.EntCertificateResDto;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -63,6 +65,7 @@ import java.util.stream.Collectors;
|
|
|
public class WalletService {
|
|
public class WalletService {
|
|
|
private final PayCenterService payCenterService;
|
|
private final PayCenterService payCenterService;
|
|
|
private final KwpWalletRelationService walletRelationService;
|
|
private final KwpWalletRelationService walletRelationService;
|
|
|
|
|
+ private final WalletOrderService walletOrderService;
|
|
|
private final KwpWalletRefundMapper kwpWalletRefundMapper;
|
|
private final KwpWalletRefundMapper kwpWalletRefundMapper;
|
|
|
private final KwpWalletTransferMapper kwpWalletTransferMapper;
|
|
private final KwpWalletTransferMapper kwpWalletTransferMapper;
|
|
|
private final RedisLockUtil redisLockUtil;
|
|
private final RedisLockUtil redisLockUtil;
|
|
@@ -156,21 +159,11 @@ public class WalletService {
|
|
|
*/
|
|
*/
|
|
|
private void refundMoney(PrePayWallet prePayWallet, PrePayWalletVo prePayWalletVo, boolean change) {
|
|
private void refundMoney(PrePayWallet prePayWallet, PrePayWalletVo prePayWalletVo, boolean change) {
|
|
|
DecimalFormat df = new DecimalFormat("0.00");
|
|
DecimalFormat df = new DecimalFormat("0.00");
|
|
|
- LambdaQueryWrapper<KwpWalletRefund> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
- //预收时,切换预收预付的双方人员
|
|
|
|
|
- if (change) {
|
|
|
|
|
- wrapper.eq(KwpWalletRefund::getUid, prePayWallet.getFilter()).eq(KwpWalletRefund::getFilter, prePayWallet.getUid());
|
|
|
|
|
- } else {
|
|
|
|
|
- wrapper.eq(KwpWalletRefund::getUid, prePayWallet.getUid()).eq(KwpWalletRefund::getFilter, prePayWallet.getFilter());
|
|
|
|
|
- }
|
|
|
|
|
- wrapper.eq(KwpWalletRefund::getChannel, prePayWallet.getChannel()).orderByDesc(KwpWalletRefund::getCreateTime).last("limit 1");
|
|
|
|
|
- KwpWalletRefund kwpWalletRefund = kwpWalletRefundMapper.selectOne(wrapper);
|
|
|
|
|
|
|
+ KwpWalletRefund kwpWalletRefund = walletOrderService.query(change, prePayWallet.getUid(), prePayWallet.getFilter(), prePayWallet.getChannel());
|
|
|
if (Objects.nonNull(kwpWalletRefund)) {
|
|
if (Objects.nonNull(kwpWalletRefund)) {
|
|
|
prePayWalletVo.setRefundApMoney(df.format(kwpWalletRefund.getActualMoney()));
|
|
prePayWalletVo.setRefundApMoney(df.format(kwpWalletRefund.getActualMoney()));
|
|
|
- prePayWalletVo.setAction(RefundEnum.getDesc(kwpWalletRefund.getStatus()));
|
|
|
|
|
} else {
|
|
} else {
|
|
|
prePayWalletVo.setRefundApMoney("0.00");
|
|
prePayWalletVo.setRefundApMoney("0.00");
|
|
|
- prePayWalletVo.setAction("");
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -181,9 +174,7 @@ public class WalletService {
|
|
|
*/
|
|
*/
|
|
|
private void refundMoney2(FundVo fundVo) {
|
|
private void refundMoney2(FundVo fundVo) {
|
|
|
DecimalFormat df = new DecimalFormat("0.00");
|
|
DecimalFormat df = new DecimalFormat("0.00");
|
|
|
- LambdaQueryWrapper<KwpWalletRefund> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
- wrapper.eq(KwpWalletRefund::getUid, fundVo.getUid()).eq(KwpWalletRefund::getFilter, fundVo.getFilter()).eq(KwpWalletRefund::getChannel, fundVo.getChannel()).eq(KwpWalletRefund::getStatus, RefundEnum.REFUNDING.getStatus()).last("limit 1");
|
|
|
|
|
- KwpWalletRefund kwpWalletRefund = kwpWalletRefundMapper.selectOne(wrapper);
|
|
|
|
|
|
|
+ KwpWalletRefund kwpWalletRefund = walletOrderService.queryOne(fundVo.getUid(), fundVo.getFilter(), fundVo.getChannel(), RefundEnum.REFUNDING);
|
|
|
if (Objects.nonNull(kwpWalletRefund)) {
|
|
if (Objects.nonNull(kwpWalletRefund)) {
|
|
|
fundVo.setRefundMoney(df.format(kwpWalletRefund.getActualMoney()));
|
|
fundVo.setRefundMoney(df.format(kwpWalletRefund.getActualMoney()));
|
|
|
} else {
|
|
} else {
|
|
@@ -260,8 +251,7 @@ public class WalletService {
|
|
|
Long entId = LoginUserHolder.getEntId();
|
|
Long entId = LoginUserHolder.getEntId();
|
|
|
String uid = walletRelationService.getRelation(entId);
|
|
String uid = walletRelationService.getRelation(entId);
|
|
|
if (StringUtils.isBlank(uid)) {
|
|
if (StringUtils.isBlank(uid)) {
|
|
|
- throw new SuccessBusinessException("暂未开通电子钱包");
|
|
|
|
|
-// return new WalletDetail(LoginUserHolder.getEntName(), "-", "-", "-", 0, new ArrayList<>());
|
|
|
|
|
|
|
+ return new WalletDetail(LoginUserHolder.getEntName(), "-", "-", "-", 0, new ArrayList<>());
|
|
|
}
|
|
}
|
|
|
//钱包总览信息
|
|
//钱包总览信息
|
|
|
R<WalletOverview> wallet = payCenterService.general(uid);
|
|
R<WalletOverview> wallet = payCenterService.general(uid);
|
|
@@ -327,28 +317,26 @@ public class WalletService {
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
public Object channel() {
|
|
public Object channel() {
|
|
|
- Long entId = LoginUserHolder.getEntId();
|
|
|
|
|
- String uid = walletRelationService.getRelation(entId);
|
|
|
|
|
- if (StringUtils.isBlank(uid)) {
|
|
|
|
|
- throw new BusinessException("暂未开通电子钱包");
|
|
|
|
|
- }
|
|
|
|
|
- R<WalletOverview> wallet = payCenterService.general(uid);
|
|
|
|
|
- if (wallet.getStatus()) {
|
|
|
|
|
- WalletOverview data = wallet.getData();
|
|
|
|
|
- //已开通的渠道
|
|
|
|
|
- List<String> channels = data.getChannels();
|
|
|
|
|
|
|
+ String uid = walletRelationService.getRelation(LoginUserHolder.getEntId());
|
|
|
|
|
+ if (StringUtils.isNotBlank(uid)) {
|
|
|
|
|
+ R<WalletOverview> wallet = payCenterService.general(uid);
|
|
|
|
|
+ if (wallet.getStatus()) {
|
|
|
|
|
+ WalletOverview data = wallet.getData();
|
|
|
|
|
+ //已开通的渠道
|
|
|
|
|
+ List<String> channels = data.getChannels();
|
|
|
|
|
|
|
|
- List<ChannelDetail> res = new ArrayList<>();
|
|
|
|
|
- for (WalletChannelEnum value : WalletChannelEnum.channelEnumList()) {
|
|
|
|
|
- ChannelDetail channelDetail = new ChannelDetail();
|
|
|
|
|
- channelDetail.setChannel(value.getChannel());
|
|
|
|
|
- channelDetail.setName(value.getDesc());
|
|
|
|
|
- channelDetail.setMoney("-");
|
|
|
|
|
- channelDetail.setTotalMoney("-");
|
|
|
|
|
- channelDetail.setOpenFlag(channels.contains(value.getChannel()));
|
|
|
|
|
- res.add(channelDetail);
|
|
|
|
|
|
|
+ List<ChannelDetail> res = new ArrayList<>();
|
|
|
|
|
+ for (WalletChannelEnum value : WalletChannelEnum.channelEnumList()) {
|
|
|
|
|
+ ChannelDetail channelDetail = new ChannelDetail();
|
|
|
|
|
+ channelDetail.setChannel(value.getChannel());
|
|
|
|
|
+ channelDetail.setName(value.getDesc());
|
|
|
|
|
+ channelDetail.setMoney("-");
|
|
|
|
|
+ channelDetail.setTotalMoney("-");
|
|
|
|
|
+ channelDetail.setOpenFlag(channels.contains(value.getChannel()));
|
|
|
|
|
+ res.add(channelDetail);
|
|
|
|
|
+ }
|
|
|
|
|
+ return res;
|
|
|
}
|
|
}
|
|
|
- return res;
|
|
|
|
|
}
|
|
}
|
|
|
return WalletChannelEnum.channelEnumList().stream().map(a -> {
|
|
return WalletChannelEnum.channelEnumList().stream().map(a -> {
|
|
|
ChannelDetail channelDetail = new ChannelDetail();
|
|
ChannelDetail channelDetail = new ChannelDetail();
|
|
@@ -972,12 +960,6 @@ public class WalletService {
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
public Object applyRefund(RefundReq refundReq) {
|
|
public Object applyRefund(RefundReq refundReq) {
|
|
|
- LambdaQueryWrapper<KwpWalletRefund> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
- wrapper.eq(KwpWalletRefund::getChannel, refundReq.getChannel()).eq(KwpWalletRefund::getUid, refundReq.getUid()).eq(KwpWalletRefund::getFilter, refundReq.getFilter()).eq(KwpWalletRefund::getStatus, RefundEnum.APPLY.getStatus()).last("limit 1");
|
|
|
|
|
- KwpWalletRefund kwpWalletRefund = kwpWalletRefundMapper.selectOne(wrapper);
|
|
|
|
|
- if (Objects.nonNull(kwpWalletRefund)) {
|
|
|
|
|
- throw new BusinessException("存在未完成的退款订单");
|
|
|
|
|
- }
|
|
|
|
|
ChannelEnum channelEnum = ChannelEnum.getByChannel(refundReq.getChannel());
|
|
ChannelEnum channelEnum = ChannelEnum.getByChannel(refundReq.getChannel());
|
|
|
if (Objects.isNull(channelEnum)) {
|
|
if (Objects.isNull(channelEnum)) {
|
|
|
throw new BusinessException("支付通道不存在");
|
|
throw new BusinessException("支付通道不存在");
|
|
@@ -1014,10 +996,7 @@ public class WalletService {
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
public Object launchRefund(RefundReq refundReq) {
|
|
public Object launchRefund(RefundReq refundReq) {
|
|
|
- LambdaQueryWrapper<KwpWalletRefund> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
- wrapper.eq(KwpWalletRefund::getChannel, refundReq.getChannel());
|
|
|
|
|
- wrapper.eq(KwpWalletRefund::getUid, refundReq.getUid()).eq(KwpWalletRefund::getFilter, refundReq.getFilter()).eq(KwpWalletRefund::getStatus, RefundEnum.APPLY.getStatus()).last("limit 1");
|
|
|
|
|
- KwpWalletRefund kwpWalletRefund = kwpWalletRefundMapper.selectOne(wrapper);
|
|
|
|
|
|
|
+ KwpWalletRefund kwpWalletRefund = walletOrderService.queryOne(refundReq.getUid(), refundReq.getFilter(), refundReq.getChannel(), RefundEnum.APPLY);
|
|
|
if (Objects.isNull(kwpWalletRefund)) {
|
|
if (Objects.isNull(kwpWalletRefund)) {
|
|
|
throw new BusinessException("未找到待完成的退款订单");
|
|
throw new BusinessException("未找到待完成的退款订单");
|
|
|
}
|
|
}
|
|
@@ -1125,11 +1104,6 @@ public class WalletService {
|
|
|
*/
|
|
*/
|
|
|
public Object createUser(CreateUserReq createUserReq) {
|
|
public Object createUser(CreateUserReq createUserReq) {
|
|
|
Long entId = LoginUserHolder.getEntId();
|
|
Long entId = LoginUserHolder.getEntId();
|
|
|
- String uid = walletRelationService.getRelation(entId);
|
|
|
|
|
- if (StringUtils.isBlank(uid)) {
|
|
|
|
|
- throw new BusinessException("您暂未开通电子钱包");
|
|
|
|
|
- }
|
|
|
|
|
- //字典
|
|
|
|
|
ChannelEnum channelEnum = ChannelEnum.getByChannel(createUserReq.getChannel());
|
|
ChannelEnum channelEnum = ChannelEnum.getByChannel(createUserReq.getChannel());
|
|
|
if (Objects.isNull(channelEnum)) {
|
|
if (Objects.isNull(channelEnum)) {
|
|
|
throw new BusinessException("支付通道不存在");
|
|
throw new BusinessException("支付通道不存在");
|
|
@@ -1139,22 +1113,34 @@ public class WalletService {
|
|
|
throw new BusinessException("未找到企业信息");
|
|
throw new BusinessException("未找到企业信息");
|
|
|
}
|
|
}
|
|
|
MemberCreate memberCreate = new MemberCreate();
|
|
MemberCreate memberCreate = new MemberCreate();
|
|
|
|
|
+ List<EntCertificateResDto> certificateInfo = entCacheResDto.getCertificateInfo();
|
|
|
|
|
+ Map<Integer, String> certMap = new HashMap<>();
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(certificateInfo)) {
|
|
|
|
|
+ certMap = certificateInfo.stream().collect(Collectors.toMap(EntCertificateResDto::getType, EntCertificateResDto::getCode, (a, b) -> a));
|
|
|
|
|
+ }
|
|
|
memberCreate.setCompanyName(entCacheResDto.getFirmName());
|
|
memberCreate.setCompanyName(entCacheResDto.getFirmName());
|
|
|
- memberCreate.setLicense(entCacheResDto.getBusiness());
|
|
|
|
|
- memberCreate.setLegalName("");
|
|
|
|
|
- memberCreate.setLegalPhone("");
|
|
|
|
|
- memberCreate.setLegalIds("");
|
|
|
|
|
|
|
+ memberCreate.setLicense(certMap.get(3));
|
|
|
|
|
+ memberCreate.setLegalName(entCacheResDto.getLegalName());
|
|
|
|
|
+ memberCreate.setLegalPhone(entCacheResDto.getLegalPhone());
|
|
|
|
|
+ //法人身份证号
|
|
|
|
|
+ memberCreate.setLegalIds(certMap.get(2));
|
|
|
memberCreate.setAccountNo("");
|
|
memberCreate.setAccountNo("");
|
|
|
memberCreate.setParentBankName("");
|
|
memberCreate.setParentBankName("");
|
|
|
memberCreate.setUnionBank("");
|
|
memberCreate.setUnionBank("");
|
|
|
memberCreate.setBankName("");
|
|
memberCreate.setBankName("");
|
|
|
- memberCreate.setChannel("");
|
|
|
|
|
|
|
+ memberCreate.setChannel(createUserReq.getChannel());
|
|
|
//开通用户
|
|
//开通用户
|
|
|
R<MemberRes> memberResR = payCenterService.memberIndex(memberCreate);
|
|
R<MemberRes> memberResR = payCenterService.memberIndex(memberCreate);
|
|
|
if (!memberResR.getStatus()) {
|
|
if (!memberResR.getStatus()) {
|
|
|
throw new BusinessException(StringUtils.isNotBlank(memberResR.getMsg()) ? memberResR.getMsg() : "开户失败");
|
|
throw new BusinessException(StringUtils.isNotBlank(memberResR.getMsg()) ? memberResR.getMsg() : "开户失败");
|
|
|
}
|
|
}
|
|
|
- return memberResR.getData();
|
|
|
|
|
|
|
+ MemberRes data = memberResR.getData();
|
|
|
|
|
+ WalletRelationDto walletRelationDto = new WalletRelationDto(entId, data.getUid());
|
|
|
|
|
+ KwpWalletRelation query = walletRelationService.query(walletRelationDto);
|
|
|
|
|
+ if (Objects.isNull(query)) {
|
|
|
|
|
+ walletRelationService.save(walletRelationDto);
|
|
|
|
|
+ }
|
|
|
|
|
+ return data;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|