|
|
@@ -3,14 +3,15 @@ package com.ydtech.modules.admin.service.impl;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.ydtech.core.page.HttpResult;
|
|
|
import com.ydtech.modules.admin.dao.SysUserAccountMapper;
|
|
|
+import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
|
|
|
import com.ydtech.modules.admin.model.po.SysUserAccount;
|
|
|
import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
|
|
|
import com.ydtech.modules.admin.model.po.SysUserBankCard;
|
|
|
import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
|
|
|
-import com.ydtech.modules.admin.service.SysUserAccountHistoryService;
|
|
|
-import com.ydtech.modules.admin.service.SysUserAccountService;
|
|
|
-import com.ydtech.modules.admin.service.SysUserService;
|
|
|
+import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
|
|
|
+import com.ydtech.modules.admin.service.*;
|
|
|
import com.ydtech.modules.esm.model.EsmUserReferrer;
|
|
|
import com.ydtech.modules.esm.service.EsmUserReferrerService;
|
|
|
import com.ydtech.modules.order.entity.BasePageResult;
|
|
|
@@ -22,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.util.Date;
|
|
|
|
|
|
/**
|
|
|
* @author Administrator
|
|
|
@@ -35,6 +37,11 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
|
|
|
private SysUserAccountHistoryService sysUserAccountHistoryService;
|
|
|
@Autowired
|
|
|
private EsmUserReferrerService esmUserReferrerService;
|
|
|
+ @Autowired
|
|
|
+ private SysAmountAuditingService sysAmountAuditingService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysUserBankCardService sysUserBankCardService;
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
@@ -85,7 +92,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
|
|
|
if (sysUserAccountEntity.getPromotion() == null) {
|
|
|
sysUserAccountEntity.setPromotion(handlingFee);
|
|
|
} else {
|
|
|
- remainingAmount = remainingAmount.add(sysUserAccountEntity.getPromotion());
|
|
|
+ remainingAmount = remainingAmount.add(sysUserAccountEntity.getPromotion());
|
|
|
|
|
|
}
|
|
|
sysUserAccountEntity.setHandlingFee(sysUserAccount.getHandlingFee().add(sysUserAccountEntity.getHandlingFee()));
|
|
|
@@ -119,11 +126,80 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
|
|
|
Page<SysUserAccount> page = new Page<>(sysUserAccountVo.getPageNum(), sysUserAccountVo.getPageSize());
|
|
|
QueryWrapper<SysUserAccount> wrapper = new QueryWrapper<>();
|
|
|
|
|
|
- Page<SysUserAccount> sysUserAccountHistoryPage = baseMapper.queryPageOrder(sysUserAccountVo,page);
|
|
|
+ Page<SysUserAccount> sysUserAccountHistoryPage = baseMapper.queryPageOrder(sysUserAccountVo, page);
|
|
|
return new BasePageResult<>(sysUserAccountVo.getPageNum(), page.getSize(), sysUserAccountHistoryPage.getTotal(), page.getPages(),
|
|
|
sysUserAccountHistoryPage.getRecords());
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public HttpResult<Object> inert(SysUserAccountVo sysUserAccountVo) {
|
|
|
+ String userId = sysUserAccountVo.getUserId();
|
|
|
+ BigDecimal zero = BigDecimal.ZERO;
|
|
|
+ BigDecimal beforeAmount;
|
|
|
+ BigDecimal afterAmount;
|
|
|
+// 用户当前金额
|
|
|
+ BigDecimal amount = sysUserAccountVo.getAmount();
|
|
|
+// 扣减后金额更改
|
|
|
+ SysUserAccountHistory sysUserAccountHistory = new SysUserAccountHistory(); // 记录
|
|
|
+ sysUserAccountHistory.setDocumentary(1); // 1提现
|
|
|
+ sysUserAccountHistory.setUserId(sysUserAccountVo.getUserId());
|
|
|
+ SysAmountAuditingEntity sysAmountAuditingEntity = new SysAmountAuditingEntity();//审核记录表
|
|
|
+ sysAmountAuditingEntity.setUserId(sysUserAccountVo.getUserId());
|
|
|
+ sysAmountAuditingEntity.setAmount(sysUserAccountVo.getAmount());
|
|
|
+ SysAmountAuditingEntity judge = sysAmountAuditingService.getByUserId(userId);
|
|
|
+ if(ObjectUtils.isNotEmpty(judge)){
|
|
|
+ return HttpResult.ok("有未提现审核单据, 请审核完成之后再提现");
|
|
|
+ }
|
|
|
+// 获取银行卡
|
|
|
+ HttpResult<SysUserBankCardVO> byUserId = sysUserBankCardService.getByUserId(userId);
|
|
|
+ if(byUserId!=null && byUserId.getData()!=null ){
|
|
|
+ SysUserBankCardVO data = byUserId.getData();
|
|
|
+ if(ObjectUtils.isNotEmpty(data)){
|
|
|
+ sysAmountAuditingEntity.setBankNumber( data.getBankNumber());
|
|
|
+ sysUserAccountHistory.setFromBankCard( data.getBankNumber());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (StringUtils.isNotEmpty(userId)) {
|
|
|
+ SysUserAccount sysUserAccount = baseMapper.getById(userId);
|
|
|
+
|
|
|
+ if (StringUtils.isNotEmpty(sysUserAccountVo.getAmountStatus())) {
|
|
|
+ sysUserAccountHistory.setProperty(Integer.valueOf(sysUserAccountVo.getAmountStatus())); //金额类型
|
|
|
+
|
|
|
+ if ("1".equals(sysUserAccountVo.getAmountStatus())) {
|
|
|
+// 用户当前费用金
|
|
|
+ beforeAmount = sysUserAccount.getHandlingFee();
|
|
|
+ afterAmount = beforeAmount.subtract(amount);
|
|
|
+ } else if ("2".equals(sysUserAccountVo.getAmountStatus())) {
|
|
|
+// 用户当前 非跟单佣金
|
|
|
+ beforeAmount = sysUserAccount.getDocumentary();
|
|
|
+ afterAmount = beforeAmount.subtract(amount);
|
|
|
+ } else {
|
|
|
+ beforeAmount = sysUserAccount.getPromotion();
|
|
|
+ afterAmount = beforeAmount.subtract(amount);
|
|
|
+ }
|
|
|
+// 用户相差
|
|
|
+ if (beforeAmount.compareTo(zero) == 0 || afterAmount.compareTo(zero) < 0) {
|
|
|
+ return HttpResult.ok("余额不足");
|
|
|
+ }
|
|
|
+ sysUserAccountHistory.setAmount(amount); // 金额
|
|
|
+ sysUserAccountHistory.setSurplusAmount(afterAmount); // 剩余金额
|
|
|
+ sysAmountAuditingEntity.setCreateTime(new Date());
|
|
|
+ sysAmountAuditingEntity.setAuditingStatus("2"); // 2 为待审核 3 审核通过
|
|
|
+ sysAmountAuditingEntity.setAmountStatus(sysUserAccountVo.getAmountStatus());
|
|
|
+// 新增金额记录
|
|
|
+ sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
|
|
|
+ sysAmountAuditingService.save(sysAmountAuditingEntity);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return HttpResult.ok("提现成功,等待审核");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
private void judgeLevel(String userId, SysUserAccount sysUserAccountEntity, SysUserAccount newAccount) {
|
|
|
if (!ObjectUtils.isNotEmpty(sysUserAccountEntity)) {
|
|
|
sysUserAccountEntity = newAccount;
|
|
|
@@ -159,7 +235,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
|
|
|
sysUserAccountHistory.setSurplusAmount(byId.getPromotion() == null ? BigDecimal.ZERO.add(sysUserAccountEntity.getPromotion()) : byId.getPromotion().add(sysUserAccountEntity.getPromotion()));
|
|
|
}
|
|
|
}
|
|
|
- if(sysUserAccountHistory.getAmount().compareTo(BigDecimal.ZERO ) ==1){
|
|
|
+ if (sysUserAccountHistory.getAmount().compareTo(BigDecimal.ZERO) == 1) {
|
|
|
sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
|
|
|
}
|
|
|
}
|