Commit 3cf88a69 authored by tangf's avatar tangf

保存资金流水和商户余额MQ拆分

parent 9f4ec4ff
......@@ -21,4 +21,11 @@ public interface CompanyMoneyDao extends BaseDao {
*/
CompanyMoneyVo findReport(CompanyMoneyReqVo req);
/**
* 修改商户资金流水
* @param req
* @return
*/
Integer updateCompanyMoney(CompanyMoneyVo req);
}
......@@ -21,8 +21,8 @@ public class CompanyExtendDaoImpl extends BaseDaoImpl implements CompanyExtendDa
protected void init() {
register(CompanyExtendVo.class);
table.add(UPDATE_COMPANY_MONEY, "UPDATE pd_company_extend SET withdraw_total_cash = @newWithdrawTotalCash " +
"WHERE id = @companyId AND withdraw_total_cash = @oldWithdrawTotalCash");
table.add(UPDATE_COMPANY_MONEY, "UPDATE pd_company_extend SET withdraw_total_cash = withdraw_total_cash + @newWithdrawTotalCash " +
"WHERE id = @companyId ");
}
......
......@@ -14,6 +14,8 @@ public class CompanyMoneyDaoImpl extends BaseDaoImpl implements CompanyMoneyDao
private final static String QUERT_REPORT = "QUERT_REPORT";
private final static String UPDATE_MONEY = "UPDATE_MONEY";
@Override
protected void init() {
......@@ -34,6 +36,12 @@ public class CompanyMoneyDaoImpl extends BaseDaoImpl implements CompanyMoneyDao
.add("endDate", " AND daily_date <= ?")
.add("companyName", " AND company_name like concat('%', ?, '%')");
table.add(UPDATE_MONEY, "update pd_company_money set in_money = in_money + @inMoney,in_number= in_number + @inNumber," +
"refund_number = refund_number + @refundNumber,refund_money = refund_money + @refundMoney," +
"out_number = out_number + @outNumber,out_money = out_money + @outMoney," +
"final_money = init_money + in_money + refund_money + out_money " +
" where company_money_id = @companyMoneyId");
}
@Override
......@@ -46,4 +54,9 @@ public class CompanyMoneyDaoImpl extends BaseDaoImpl implements CompanyMoneyDao
return this.queryFirst(CompanyMoneyVo.class, QUERT_REPORT, req);
}
@Override
public Integer updateCompanyMoney(CompanyMoneyVo req){
return this.updateSql(UPDATE_MONEY, req);
}
}
......@@ -142,6 +142,7 @@ public class FinanceServiceImpl implements FinanceService {
*
* @param req
*/
@Transactional
@Override
public ResponseResult<String> withdrawalBack(CashWithdrawalBackReqVo req) {
CapitalFlowVo capitalFlowVo = capitalFlowDao.load(req.getId(), CapitalFlowVo.class);
......@@ -151,21 +152,19 @@ public class FinanceServiceImpl implements FinanceService {
capitalFlowVo.setTonglianId(req.getTonglianId());
capitalFlowVo.setTime(DateHelper.getNow());
if (1 == req.getStatus()) {
CompanyResVo companyResVo = companyDao.load(capitalFlowVo.getCompanyId(), CompanyResVo.class);
if (!StringHelper.isEmpty(companyResVo)) {
// 修改公司金额
double oldMoney = companyResVo.getWithdrawTotalCash();
double newMoney = oldMoney - capitalFlowVo.getOrderMoney();
UpdateCompanyMoneyReqVo updateCompanyMoneyReqVo = new UpdateCompanyMoneyReqVo();
updateCompanyMoneyReqVo.setCompanyId(companyResVo.getId());
updateCompanyMoneyReqVo.setOldWithdrawTotalCash(oldMoney);
updateCompanyMoneyReqVo.setNewWithdrawTotalCash(newMoney);
companyConsumer.updateCompanyMoneyMQ(updateCompanyMoneyReqVo);
// companyExtendDao.updateCompanyMoney(updateCompanyMoneyReqVo);
updateCompanyMoneyReqVo.setCompanyId(req.getCompanyId());
updateCompanyMoneyReqVo.setNewWithdrawTotalCash( -capitalFlowVo.getOrderMoney());
companyExtendDao.updateCompanyMoney(updateCompanyMoneyReqVo);
CompanyResVo companyResVo = companyDao.load(capitalFlowVo.getCompanyId(), CompanyResVo.class);
if (!StringHelper.isEmpty(companyResVo)) {
double oldMoney = companyResVo.getWithdrawTotalCash() + capitalFlowVo.getOrderMoney();
double newMoney = oldMoney - capitalFlowVo.getOrderMoney();
capitalFlowVo.setInitMoney(oldMoney);
capitalFlowVo.setFinalMoney(newMoney);
saveCompanyMoney(capitalFlowVo, companyResVo);
saveCompanyMoney(capitalFlowVo, companyResVo, oldMoney);
}
}
capitalFlowDao.update(capitalFlowVo);
......@@ -178,25 +177,25 @@ public class FinanceServiceImpl implements FinanceService {
@Transactional
@Override
public ResponseResult<String> saveCapitalFlow(CapitalFlowReqVo req) {
CompanyResVo companyVo = companyDao.load(req.getCompanyId(), CompanyResVo.class);
if (StringHelper.isEmpty(companyVo)) {
throw new CodeException("未找到公司信息");
}
//修改公司余额
double oldMoney = companyVo.getWithdrawTotalCash();
double newMoney = oldMoney;
double money = req.getActualMoney();
if (CompanyConstant.CATEGORY_ENTRY == req.getCategory()
|| CompanyConstant.CATEGORY_RECHARGE == req.getCategory()
|| CompanyConstant.CATEGORY_DIVIDEND == req.getCategory()) {
// 交易订单金额 充值 分润
newMoney = oldMoney + req.getActualMoney();
}
if (CompanyConstant.CATEGORY_REFUND == req.getCategory()) {
// 退款
newMoney = oldMoney - req.getActualMoney();
money = -money;
}
//修改公司余额
UpdateCompanyMoneyReqVo updateCompanyMoneyReqVo = new UpdateCompanyMoneyReqVo();
updateCompanyMoneyReqVo.setCompanyId(req.getCompanyId());
updateCompanyMoneyReqVo.setNewWithdrawTotalCash(money);
companyExtendDao.updateCompanyMoney(updateCompanyMoneyReqVo);
CompanyResVo companyVo = companyDao.load(req.getCompanyId(), CompanyResVo.class);
if (StringHelper.isEmpty(companyVo)) {
throw new CodeException("未找到公司信息");
}
double oldMoney = companyVo.getWithdrawTotalCash() - money;
// 添加资金流水
CapitalFlowReqVo capitalFlowReqVo = new CapitalFlowReqVo();
capitalFlowReqVo.setOrderId(req.getOrderId());
......@@ -208,7 +207,7 @@ public class FinanceServiceImpl implements FinanceService {
capitalFlowVo.setTime(DateHelper.getNow());
capitalFlowVo.setActualMoney(money);
capitalFlowVo.setInitMoney(oldMoney);
capitalFlowVo.setFinalMoney(newMoney);
capitalFlowVo.setFinalMoney(capitalFlowVo.getActualMoney() + capitalFlowVo.getInitMoney());
capitalFlowDao.save(capitalFlowVo);
} else {
ObjectHelper.writeWithFrom(capitalFlowVo, req);
......@@ -216,16 +215,10 @@ public class FinanceServiceImpl implements FinanceService {
capitalFlowVo.setTime(DateHelper.getNow());
capitalFlowVo.setActualMoney(money);
capitalFlowVo.setInitMoney(oldMoney);
capitalFlowVo.setFinalMoney(newMoney);
capitalFlowVo.setFinalMoney(capitalFlowVo.getActualMoney() + capitalFlowVo.getInitMoney());
capitalFlowDao.update(capitalFlowVo);
}
UpdateCompanyMoneyReqVo updateCompanyMoneyReqVo = new UpdateCompanyMoneyReqVo();
updateCompanyMoneyReqVo.setCompanyId(companyVo.getId());
updateCompanyMoneyReqVo.setOldWithdrawTotalCash(oldMoney);
updateCompanyMoneyReqVo.setNewWithdrawTotalCash(newMoney);
// companyExtendDao.updateCompanyMoney(updateCompanyMoneyReqVo);
companyConsumer.updateCompanyMoneyMQ(updateCompanyMoneyReqVo);
saveCompanyMoney(capitalFlowVo, companyVo);
saveCompanyMoney(capitalFlowVo, companyVo, oldMoney);
return ResponseResult.result("处理完成");
}
......@@ -235,9 +228,9 @@ public class FinanceServiceImpl implements FinanceService {
}
public void saveCompanyMoney(CapitalFlowVo capitalFlowVo, CompanyResVo companyVo){
public void saveCompanyMoney(CapitalFlowVo capitalFlowVo, CompanyResVo companyVo, double initMoney){
//修改公司余额
double oldMoney = companyVo.getWithdrawTotalCash();
double oldMoney = initMoney ;
double inMoney = 0d, outMoney = 0d, refundMoney = 0d;
int inNumber = 0, outNumber = 0, refundNumber = 0;
if (CompanyConstant.CATEGORY_ENTRY == capitalFlowVo.getCategory()
......@@ -278,15 +271,13 @@ public class FinanceServiceImpl implements FinanceService {
companyMoneyVo.setRefundNumber(refundNumber);
companyMoneyDao.create(companyMoneyVo);
} else {
companyMoneyVo.setInMoney(inMoney + companyMoneyVo.getInMoney());
companyMoneyVo.setOutMoney(outMoney + companyMoneyVo.getOutMoney());
companyMoneyVo.setRefundMoney(refundMoney + companyMoneyVo.getRefundMoney());
companyMoneyVo.setFinalMoney(companyMoneyVo.getInitMoney() + companyMoneyVo.getInMoney() + companyMoneyVo.getOutMoney()
+ companyMoneyVo.getRefundMoney());
companyMoneyVo.setInNumber(inNumber + companyMoneyVo.getInNumber());
companyMoneyVo.setOutNumber(outNumber + companyMoneyVo.getOutNumber());
companyMoneyVo.setRefundNumber(refundNumber + companyMoneyVo.getRefundNumber());
companyMoneyDao.update(companyMoneyVo);
companyMoneyVo.setInMoney(inMoney );
companyMoneyVo.setOutMoney(outMoney );
companyMoneyVo.setRefundMoney(refundMoney);
companyMoneyVo.setInNumber(inNumber );
companyMoneyVo.setOutNumber(outNumber );
companyMoneyVo.setRefundNumber(refundNumber);
companyMoneyDao.updateCompanyMoney(companyMoneyVo);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment