Commit 3cf88a69 authored by tangf's avatar tangf

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

parent 9f4ec4ff
...@@ -21,4 +21,11 @@ public interface CompanyMoneyDao extends BaseDao { ...@@ -21,4 +21,11 @@ public interface CompanyMoneyDao extends BaseDao {
*/ */
CompanyMoneyVo findReport(CompanyMoneyReqVo req); CompanyMoneyVo findReport(CompanyMoneyReqVo req);
/**
* 修改商户资金流水
* @param req
* @return
*/
Integer updateCompanyMoney(CompanyMoneyVo req);
} }
...@@ -21,8 +21,8 @@ public class CompanyExtendDaoImpl extends BaseDaoImpl implements CompanyExtendDa ...@@ -21,8 +21,8 @@ public class CompanyExtendDaoImpl extends BaseDaoImpl implements CompanyExtendDa
protected void init() { protected void init() {
register(CompanyExtendVo.class); register(CompanyExtendVo.class);
table.add(UPDATE_COMPANY_MONEY, "UPDATE pd_company_extend SET withdraw_total_cash = @newWithdrawTotalCash " + table.add(UPDATE_COMPANY_MONEY, "UPDATE pd_company_extend SET withdraw_total_cash = withdraw_total_cash + @newWithdrawTotalCash " +
"WHERE id = @companyId AND withdraw_total_cash = @oldWithdrawTotalCash"); "WHERE id = @companyId ");
} }
......
...@@ -14,6 +14,8 @@ public class CompanyMoneyDaoImpl extends BaseDaoImpl implements CompanyMoneyDao ...@@ -14,6 +14,8 @@ public class CompanyMoneyDaoImpl extends BaseDaoImpl implements CompanyMoneyDao
private final static String QUERT_REPORT = "QUERT_REPORT"; private final static String QUERT_REPORT = "QUERT_REPORT";
private final static String UPDATE_MONEY = "UPDATE_MONEY";
@Override @Override
protected void init() { protected void init() {
...@@ -34,6 +36,12 @@ public class CompanyMoneyDaoImpl extends BaseDaoImpl implements CompanyMoneyDao ...@@ -34,6 +36,12 @@ public class CompanyMoneyDaoImpl extends BaseDaoImpl implements CompanyMoneyDao
.add("endDate", " AND daily_date <= ?") .add("endDate", " AND daily_date <= ?")
.add("companyName", " AND company_name like concat('%', ?, '%')"); .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 @Override
...@@ -46,4 +54,9 @@ public class CompanyMoneyDaoImpl extends BaseDaoImpl implements CompanyMoneyDao ...@@ -46,4 +54,9 @@ public class CompanyMoneyDaoImpl extends BaseDaoImpl implements CompanyMoneyDao
return this.queryFirst(CompanyMoneyVo.class, QUERT_REPORT, req); 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 { ...@@ -142,6 +142,7 @@ public class FinanceServiceImpl implements FinanceService {
* *
* @param req * @param req
*/ */
@Transactional
@Override @Override
public ResponseResult<String> withdrawalBack(CashWithdrawalBackReqVo req) { public ResponseResult<String> withdrawalBack(CashWithdrawalBackReqVo req) {
CapitalFlowVo capitalFlowVo = capitalFlowDao.load(req.getId(), CapitalFlowVo.class); CapitalFlowVo capitalFlowVo = capitalFlowDao.load(req.getId(), CapitalFlowVo.class);
...@@ -151,21 +152,19 @@ public class FinanceServiceImpl implements FinanceService { ...@@ -151,21 +152,19 @@ public class FinanceServiceImpl implements FinanceService {
capitalFlowVo.setTonglianId(req.getTonglianId()); capitalFlowVo.setTonglianId(req.getTonglianId());
capitalFlowVo.setTime(DateHelper.getNow()); capitalFlowVo.setTime(DateHelper.getNow());
if (1 == req.getStatus()) { if (1 == req.getStatus()) {
// 修改公司金额
UpdateCompanyMoneyReqVo updateCompanyMoneyReqVo = new UpdateCompanyMoneyReqVo();
updateCompanyMoneyReqVo.setCompanyId(req.getCompanyId());
updateCompanyMoneyReqVo.setNewWithdrawTotalCash( -capitalFlowVo.getOrderMoney());
companyExtendDao.updateCompanyMoney(updateCompanyMoneyReqVo);
CompanyResVo companyResVo = companyDao.load(capitalFlowVo.getCompanyId(), CompanyResVo.class); CompanyResVo companyResVo = companyDao.load(capitalFlowVo.getCompanyId(), CompanyResVo.class);
if (!StringHelper.isEmpty(companyResVo)) { if (!StringHelper.isEmpty(companyResVo)) {
// 修改公司金额 double oldMoney = companyResVo.getWithdrawTotalCash() + capitalFlowVo.getOrderMoney();
double oldMoney = companyResVo.getWithdrawTotalCash();
double newMoney = oldMoney - capitalFlowVo.getOrderMoney(); 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);
capitalFlowVo.setInitMoney(oldMoney); capitalFlowVo.setInitMoney(oldMoney);
capitalFlowVo.setFinalMoney(newMoney); capitalFlowVo.setFinalMoney(newMoney);
saveCompanyMoney(capitalFlowVo, companyResVo); saveCompanyMoney(capitalFlowVo, companyResVo, oldMoney);
} }
} }
capitalFlowDao.update(capitalFlowVo); capitalFlowDao.update(capitalFlowVo);
...@@ -178,25 +177,25 @@ public class FinanceServiceImpl implements FinanceService { ...@@ -178,25 +177,25 @@ public class FinanceServiceImpl implements FinanceService {
@Transactional @Transactional
@Override @Override
public ResponseResult<String> saveCapitalFlow(CapitalFlowReqVo req) { 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(); 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()) { if (CompanyConstant.CATEGORY_REFUND == req.getCategory()) {
// 退款 // 退款
newMoney = oldMoney - req.getActualMoney();
money = -money; 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 capitalFlowReqVo = new CapitalFlowReqVo();
capitalFlowReqVo.setOrderId(req.getOrderId()); capitalFlowReqVo.setOrderId(req.getOrderId());
...@@ -208,7 +207,7 @@ public class FinanceServiceImpl implements FinanceService { ...@@ -208,7 +207,7 @@ public class FinanceServiceImpl implements FinanceService {
capitalFlowVo.setTime(DateHelper.getNow()); capitalFlowVo.setTime(DateHelper.getNow());
capitalFlowVo.setActualMoney(money); capitalFlowVo.setActualMoney(money);
capitalFlowVo.setInitMoney(oldMoney); capitalFlowVo.setInitMoney(oldMoney);
capitalFlowVo.setFinalMoney(newMoney); capitalFlowVo.setFinalMoney(capitalFlowVo.getActualMoney() + capitalFlowVo.getInitMoney());
capitalFlowDao.save(capitalFlowVo); capitalFlowDao.save(capitalFlowVo);
} else { } else {
ObjectHelper.writeWithFrom(capitalFlowVo, req); ObjectHelper.writeWithFrom(capitalFlowVo, req);
...@@ -216,16 +215,10 @@ public class FinanceServiceImpl implements FinanceService { ...@@ -216,16 +215,10 @@ public class FinanceServiceImpl implements FinanceService {
capitalFlowVo.setTime(DateHelper.getNow()); capitalFlowVo.setTime(DateHelper.getNow());
capitalFlowVo.setActualMoney(money); capitalFlowVo.setActualMoney(money);
capitalFlowVo.setInitMoney(oldMoney); capitalFlowVo.setInitMoney(oldMoney);
capitalFlowVo.setFinalMoney(newMoney); capitalFlowVo.setFinalMoney(capitalFlowVo.getActualMoney() + capitalFlowVo.getInitMoney());
capitalFlowDao.update(capitalFlowVo); capitalFlowDao.update(capitalFlowVo);
} }
UpdateCompanyMoneyReqVo updateCompanyMoneyReqVo = new UpdateCompanyMoneyReqVo(); saveCompanyMoney(capitalFlowVo, companyVo, oldMoney);
updateCompanyMoneyReqVo.setCompanyId(companyVo.getId());
updateCompanyMoneyReqVo.setOldWithdrawTotalCash(oldMoney);
updateCompanyMoneyReqVo.setNewWithdrawTotalCash(newMoney);
// companyExtendDao.updateCompanyMoney(updateCompanyMoneyReqVo);
companyConsumer.updateCompanyMoneyMQ(updateCompanyMoneyReqVo);
saveCompanyMoney(capitalFlowVo, companyVo);
return ResponseResult.result("处理完成"); return ResponseResult.result("处理完成");
} }
...@@ -235,9 +228,9 @@ public class FinanceServiceImpl implements FinanceService { ...@@ -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; double inMoney = 0d, outMoney = 0d, refundMoney = 0d;
int inNumber = 0, outNumber = 0, refundNumber = 0; int inNumber = 0, outNumber = 0, refundNumber = 0;
if (CompanyConstant.CATEGORY_ENTRY == capitalFlowVo.getCategory() if (CompanyConstant.CATEGORY_ENTRY == capitalFlowVo.getCategory()
...@@ -278,15 +271,13 @@ public class FinanceServiceImpl implements FinanceService { ...@@ -278,15 +271,13 @@ public class FinanceServiceImpl implements FinanceService {
companyMoneyVo.setRefundNumber(refundNumber); companyMoneyVo.setRefundNumber(refundNumber);
companyMoneyDao.create(companyMoneyVo); companyMoneyDao.create(companyMoneyVo);
} else { } else {
companyMoneyVo.setInMoney(inMoney + companyMoneyVo.getInMoney()); companyMoneyVo.setInMoney(inMoney );
companyMoneyVo.setOutMoney(outMoney + companyMoneyVo.getOutMoney()); companyMoneyVo.setOutMoney(outMoney );
companyMoneyVo.setRefundMoney(refundMoney + companyMoneyVo.getRefundMoney()); companyMoneyVo.setRefundMoney(refundMoney);
companyMoneyVo.setFinalMoney(companyMoneyVo.getInitMoney() + companyMoneyVo.getInMoney() + companyMoneyVo.getOutMoney() companyMoneyVo.setInNumber(inNumber );
+ companyMoneyVo.getRefundMoney()); companyMoneyVo.setOutNumber(outNumber );
companyMoneyVo.setInNumber(inNumber + companyMoneyVo.getInNumber()); companyMoneyVo.setRefundNumber(refundNumber);
companyMoneyVo.setOutNumber(outNumber + companyMoneyVo.getOutNumber()); companyMoneyDao.updateCompanyMoney(companyMoneyVo);
companyMoneyVo.setRefundNumber(refundNumber + companyMoneyVo.getRefundNumber());
companyMoneyDao.update(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