package com.xzx.gc.user.service;
|
|
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.xzx.gc.common.constant.Constants;
|
import com.xzx.gc.common.utils.BusinessUtil;
|
import com.xzx.gc.entity.PartnerAccount;
|
import com.xzx.gc.entity.PartnerAccountLog;
|
import com.xzx.gc.user.mapper.PartnerAccountLogMapper;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.math.BigDecimal;
|
|
@Service
|
@Transactional
|
@Slf4j
|
public class PartnerAccountLogService {
|
|
@Autowired
|
private PartnerAccountLogMapper partnerAccountLogMapper;
|
|
@Autowired
|
private PartnerAccountService partnerAccountService;
|
|
@Autowired
|
private BusinessUtil businessUtil;
|
|
public void add(PartnerAccountLog partnerAccountLog){
|
String now=DateUtil.now();
|
partnerAccountLog.setCreateTime(now);
|
partnerAccountLog.setDelFlag(Constants.DEL_NOT_FLAG);
|
partnerAccountLog.setUpdateTime(now);
|
//未审核
|
partnerAccountLog.setApproverStatus("1");
|
|
PartnerAccount byAccount=partnerAccountLog.getPartnerAccount();
|
|
if(byAccount==null) {
|
|
String accountId = partnerAccountLog.getAccountId();
|
if (StrUtil.isBlank(accountId)) {
|
PartnerAccount byPartnerId = partnerAccountService.findByPartnerId(partnerAccountLog.getPartnerId());
|
if (byPartnerId != null) {
|
partnerAccountLog.setAccountId(byPartnerId.getAccount());
|
}
|
}
|
if (StrUtil.isBlank(partnerAccountLog.getAccountId())) return;
|
|
byAccount = partnerAccountService.findByAccount(partnerAccountLog.getAccountId());
|
}
|
|
if(StrUtil.isNotBlank(partnerAccountLog.getMoney())) {
|
partnerAccountLog.setAccountMoney(businessUtil.changeMoney(byAccount.getHbb()));
|
BigDecimal add = NumberUtil.add(Convert.toBigDecimal(partnerAccountLog.getAccountMoney()), Convert.toBigDecimal(partnerAccountLog.getMoney()));
|
partnerAccountLog.setHbb(businessUtil.changeMoney(add));
|
}
|
|
if(StrUtil.isNotBlank(partnerAccountLog.getManageLimit())) {
|
partnerAccountLog.setOldLimit(businessUtil.changeMoney(byAccount.getOverdraftLimit()));
|
BigDecimal add = NumberUtil.add(Convert.toBigDecimal(partnerAccountLog.getOldLimit()), Convert.toBigDecimal(partnerAccountLog.getManageLimit()));
|
partnerAccountLog.setNewLimit(businessUtil.changeMoney(add));
|
}
|
|
|
if(StrUtil.isNotBlank(partnerAccountLog.getManageLimitFix())) {
|
partnerAccountLog.setOldLimitFix(businessUtil.changeMoney(byAccount.getFixedLimit()));
|
BigDecimal add = NumberUtil.add(Convert.toBigDecimal(partnerAccountLog.getOldLimitFix()), Convert.toBigDecimal(partnerAccountLog.getManageLimitFix()));
|
partnerAccountLog.setNewLimitFix(businessUtil.changeMoney(add));
|
}
|
|
partnerAccountLogMapper.insertSelective(partnerAccountLog);
|
}
|
|
/**
|
* 根据类型和流水号查询
|
* @param type
|
* @param flowNo
|
* @return
|
*/
|
public PartnerAccountLog findByTypeAndFlow(String type,String flowNo){
|
PartnerAccountLog partnerAccount=new PartnerAccountLog();
|
partnerAccount.setType(type);
|
partnerAccount.setFlowNo(flowNo);
|
partnerAccount.setDelFlag(Constants.DEL_NOT_FLAG);
|
PartnerAccountLog partnerAccount1 = partnerAccountLogMapper.selectOne(partnerAccount);
|
return partnerAccount1;
|
}
|
}
|