Commit 71d6696b authored by tangf's avatar tangf

修改商户余额资金流水

parent ce923ff7
package com.pangding.web; package com.pangding.web;
import com.pangding.web.authority.mq.MqPlan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner; import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
...@@ -24,15 +22,11 @@ import org.springframework.cloud.openfeign.EnableFeignClients; ...@@ -24,15 +22,11 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
}) })
public class UserApp implements CommandLineRunner{ public class UserApp implements CommandLineRunner{
@Autowired
private MqPlan mqPlan;
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(UserApp.class, args); SpringApplication.run(UserApp.class, args);
} }
@Override @Override
public void run(String... args) throws Exception { public void run(String... args) throws Exception {
mqPlan.init();
} }
} }
\ No newline at end of file
...@@ -3,6 +3,9 @@ package com.pangding.web.authority.controller; ...@@ -3,6 +3,9 @@ package com.pangding.web.authority.controller;
import com.pangding.web.authority.service.FinanceService; import com.pangding.web.authority.service.FinanceService;
import com.pangding.web.authority.vo.reqvo.WithdrawalReqVo; import com.pangding.web.authority.vo.reqvo.WithdrawalReqVo;
import com.pangding.web.authority.vo.resvo.WithdrawalResVo; import com.pangding.web.authority.vo.resvo.WithdrawalResVo;
import com.pangding.web.vo.order.req.CapitalFlowReqVo;
import com.pangding.web.vo.order.req.back.CashWithdrawalBackReqVo;
import com.pangding.web.vo.order.res.CapitalFlowListResVo;
import com.yanzuoguang.util.helper.CheckerHelper; import com.yanzuoguang.util.helper.CheckerHelper;
import com.yanzuoguang.util.vo.ResponseResult; import com.yanzuoguang.util.vo.ResponseResult;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -21,7 +24,25 @@ import org.springframework.web.bind.annotation.*; ...@@ -21,7 +24,25 @@ import org.springframework.web.bind.annotation.*;
@Api(value = "余额", description = "余额") @Api(value = "余额", description = "余额")
public class FinanceController { public class FinanceController {
@Autowired @Autowired
private FinanceService financeServiceImpl; private FinanceService financeService;
/**
* 查询订单列表PageSizeData<CapitalFlowResVo>
*
* @param req
* @return
*/
@RequestMapping(value = "/findCapitalFlowList")
public ResponseResult<CapitalFlowListResVo> findCapitalFlowList(@RequestBody CapitalFlowReqVo req) {
CheckerHelper.newInstance()
.notBlankCheck("companyId", req.getCompanyId())
.checkException();
if("10001".equals(req.getCompanyId())){
req.setCompanyId("");
}
CapitalFlowListResVo capitalFlowListResVo = financeService.findCapitalFlowList(req);
return ResponseResult.result(capitalFlowListResVo);
}
@PostMapping(value = "/withdrawal") @PostMapping(value = "/withdrawal")
@ApiOperation(value = "公司余额查询", notes = "返回公司余额信息") @ApiOperation(value = "公司余额查询", notes = "返回公司余额信息")
...@@ -29,7 +50,33 @@ public class FinanceController { ...@@ -29,7 +50,33 @@ public class FinanceController {
CheckerHelper.newInstance() CheckerHelper.newInstance()
.notBlankCheck("companyId",reqVo.getCompanyId()) .notBlankCheck("companyId",reqVo.getCompanyId())
.checkException(); .checkException();
return ResponseResult.result(financeServiceImpl.withdrawal(reqVo)); return ResponseResult.result(financeService.withdrawal(reqVo));
}
/**
* 提现申请
* @param req
* @return
*/
@RequestMapping(value = "/applyWithdrawal")
@ApiOperation(value = "提现申请", notes = "返回提现申请结果")
public ResponseResult<CapitalFlowReqVo> applyWithdrawal(@RequestBody CapitalFlowReqVo req) {
CheckerHelper.newInstance()
.notBlankCheck("companyId", req.getCompanyId())
.notBlankCheck("companyName", req.getCompanyName())
.notBlankCheck("bankId", req.getBankId())
.notBlankCheck("bankCardCode", req.getBankCardCode())
.notBlankCheck("orderMoney", req.getOrderMoney())
.checkException();
return financeService.applyWithdrawal(req);
}
/**
* 提现回调
*/
@RequestMapping(value = "/withdrawalBack")
public ResponseResult<String> withdrawalBack(@RequestBody CashWithdrawalBackReqVo req){
return financeService.withdrawalBack(req);
} }
} }
...@@ -9,7 +9,6 @@ import com.pangding.web.authority.vo.resvo.SaveCompanyResVo; ...@@ -9,7 +9,6 @@ import com.pangding.web.authority.vo.resvo.SaveCompanyResVo;
import com.pangding.web.vo.system.pd.company.CompanyBankCardVo; import com.pangding.web.vo.system.pd.company.CompanyBankCardVo;
import com.pangding.web.vo.system.pd.company.CompanyVo; import com.pangding.web.vo.system.pd.company.CompanyVo;
import com.pangding.web.vo.system.req.company.CompanyBankCardReqVo; import com.pangding.web.vo.system.req.company.CompanyBankCardReqVo;
import com.pangding.web.vo.system.req.company.CompanyMoneyUpdateReqVo;
import com.pangding.web.vo.system.res.company.CompanyResVo; import com.pangding.web.vo.system.res.company.CompanyResVo;
import com.yanzuoguang.util.helper.CheckerHelper; import com.yanzuoguang.util.helper.CheckerHelper;
import com.yanzuoguang.util.vo.PageSizeData; import com.yanzuoguang.util.vo.PageSizeData;
...@@ -312,13 +311,13 @@ public class PangdingManagementController { ...@@ -312,13 +311,13 @@ public class PangdingManagementController {
return new ResponseResult(); return new ResponseResult();
} }
@RequestMapping(value = "updateCompanyMoney",produces = MediaType.APPLICATION_JSON_UTF8_VALUE) // @RequestMapping(value = "updateCompanyMoney",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseResult<String> updateCompanyMoney(@RequestBody CompanyMoneyUpdateReqVo req){ // public ResponseResult<String> updateCompanyMoney(@RequestBody CompanyMoneyUpdateReqVo req){
CheckerHelper.newInstance() // CheckerHelper.newInstance()
.notBlankCheck("companyId",req.getCompanyId()) // .notBlankCheck("companyId",req.getCompanyId())
.notBlankCheck("money", req.getMoney()) // .notBlankCheck("money", req.getMoney())
.notBlankCheck("moneyType", req.getMoney()) // .notBlankCheck("moneyType", req.getMoney())
.checkException(); // .checkException();
return companyServiceImpl.updateCompanyMoney(req); // return companyServiceImpl.updateCompanyMoney(req);
} // }
} }
package com.pangding.web.authority.dao;
import com.pangding.web.vo.order.req.CapitalFlowReqVo;
import com.pangding.web.vo.order.res.CapitalFlowResVo;
import com.yanzuoguang.dao.BaseDao;
import com.yanzuoguang.util.vo.PageSizeData;
public interface CapitalFlowDao extends BaseDao {
PageSizeData<CapitalFlowResVo> findCapitalFlowList(CapitalFlowReqVo req);
CapitalFlowResVo findCapitalFlowTotal(CapitalFlowReqVo req);
}
package com.pangding.web.authority.dao; package com.pangding.web.authority.dao;
import com.pangding.web.vo.system.req.company.UpdateCompanyMoneyReqVo;
import com.yanzuoguang.dao.BaseDao; import com.yanzuoguang.dao.BaseDao;
/** /**
...@@ -7,4 +8,7 @@ import com.yanzuoguang.dao.BaseDao; ...@@ -7,4 +8,7 @@ import com.yanzuoguang.dao.BaseDao;
* @create 2019/5/16 17:20 * @create 2019/5/16 17:20
*/ */
public interface CompanyExtendDao extends BaseDao { public interface CompanyExtendDao extends BaseDao {
void updateCompanyMoney(UpdateCompanyMoneyReqVo req);
} }
package com.pangding.web.authority.dao;
import com.yanzuoguang.dao.BaseDao;
public interface CompanyMoneyDao extends BaseDao {
}
package com.pangding.web.authority.dao.impl;
import com.pangding.web.authority.dao.CapitalFlowDao;
import com.pangding.web.vo.order.pd.CapitalFlowVo;
import com.pangding.web.vo.order.req.CapitalFlowReqVo;
import com.pangding.web.vo.order.res.CapitalFlowResVo;
import com.yanzuoguang.dao.impl.BaseDaoImpl;
import com.yanzuoguang.util.vo.PageSizeData;
import org.springframework.stereotype.Component;
@Component
public class CapitalFlowDaoImpl extends BaseDaoImpl implements CapitalFlowDao {
private static final String QUERY_LIST = "QUERY_CAPITAL_FLOW_LIST";
private static final String QUERY_LIST_TOTAL = "QUERY_LIST_TOTAL";
@Override
protected void init() {
register(CapitalFlowVo.class);
table.add(QUERY_LIST, "SELECT * FROM pd_capital_flow where 1=1 {WHERE} order by time desc")
.add("companyId","and company_id = ? ")
.add("companyName","and company_name LIKE concat(?,'%') ")
.add("startDate", "and time >= ? ")
.add("endDate", "and time <= ? ")
.add("orderId", "and order_id = ? ")
.add("category", "and category = ?");
table.add(QUERY_LIST_TOTAL, "SELECT sum(order_money) as order_money,sum(order_fee) as order_fee,sum(actual_money) as actual_money " +
"FROM pd_capital_flow where 1=1 {WHERE} order by time desc")
.add("companyId","and company_id = ? ")
.add("companyName","and company_name LIKE concat(?,'%')")
.add("startDate", "and time >= ? ")
.add("endDate", "and time <= ? ")
.add("orderId", "and order_id = ? ")
.add("category", "and category = ?");
}
@Override
public PageSizeData<CapitalFlowResVo> findCapitalFlowList(CapitalFlowReqVo req){
return this.queryPage(CapitalFlowResVo.class, req, QUERY_LIST, req);
}
@Override
public CapitalFlowResVo findCapitalFlowTotal(CapitalFlowReqVo req){
return this.queryFirst(CapitalFlowResVo.class, QUERY_LIST_TOTAL, req);
}
}
...@@ -18,6 +18,8 @@ public class CompanyDaoImpl extends BaseDaoImpl implements CompanyDao { ...@@ -18,6 +18,8 @@ public class CompanyDaoImpl extends BaseDaoImpl implements CompanyDao {
private static final String SELECT = "SELECT"; private static final String SELECT = "SELECT";
@Override @Override
protected void init() { protected void init() {
...@@ -33,6 +35,8 @@ public class CompanyDaoImpl extends BaseDaoImpl implements CompanyDao { ...@@ -33,6 +35,8 @@ public class CompanyDaoImpl extends BaseDaoImpl implements CompanyDao {
getSql(DaoConst.LOAD).addCode("{FIELD}", ",b.*", "{INNER}", "INNER JOIN pd_company_extend b ON a.id = b.id"); getSql(DaoConst.LOAD).addCode("{FIELD}", ",b.*", "{INNER}", "INNER JOIN pd_company_extend b ON a.id = b.id");
} }
@Override @Override
......
...@@ -2,6 +2,7 @@ package com.pangding.web.authority.dao.impl; ...@@ -2,6 +2,7 @@ package com.pangding.web.authority.dao.impl;
import com.pangding.web.authority.dao.CompanyExtendDao; import com.pangding.web.authority.dao.CompanyExtendDao;
import com.pangding.web.vo.system.pd.company.CompanyExtendVo; import com.pangding.web.vo.system.pd.company.CompanyExtendVo;
import com.pangding.web.vo.system.req.company.UpdateCompanyMoneyReqVo;
import com.yanzuoguang.dao.impl.BaseDaoImpl; import com.yanzuoguang.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -11,8 +12,25 @@ import org.springframework.stereotype.Component; ...@@ -11,8 +12,25 @@ import org.springframework.stereotype.Component;
*/ */
@Component @Component
public class CompanyExtendDaoImpl extends BaseDaoImpl implements CompanyExtendDao { public class CompanyExtendDaoImpl extends BaseDaoImpl implements CompanyExtendDao {
private static final String UPDATE_COMPANY_MONEY = "UPDATE_COMPANY_MONEY";
@Override @Override
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 " +
"WHERE id = @companyId AND withdraw_total_cash = @oldWithdrawTotalCash");
}
@Override
public void updateCompanyMoney(UpdateCompanyMoneyReqVo req) {
this.updateSql(UPDATE_COMPANY_MONEY, req);
} }
} }
package com.pangding.web.authority.dao.impl;
import com.pangding.web.authority.dao.CompanyMoneyDao;
import com.pangding.web.vo.system.pd.company.CompanyMoneyVo;
import com.yanzuoguang.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Component;
@Component
public class CompanyMoneyDaoImpl extends BaseDaoImpl implements CompanyMoneyDao {
@Override
protected void init() {
register(CompanyMoneyVo.class);
}
}
...@@ -2,15 +2,22 @@ package com.pangding.web.authority.mq; ...@@ -2,15 +2,22 @@ package com.pangding.web.authority.mq;
import com.pangding.web.authority.service.CompanyMsgService; import com.pangding.web.authority.service.CompanyMsgService;
import com.pangding.web.authority.service.CompanyService; import com.pangding.web.authority.service.CompanyService;
import com.pangding.web.authority.service.FinanceService;
import com.pangding.web.constant.MqConstant; import com.pangding.web.constant.MqConstant;
import com.pangding.web.constant.OrderConstant;
import com.pangding.web.mq.CompanyProducer; import com.pangding.web.mq.CompanyProducer;
import com.pangding.web.mq.PayProducer;
import com.pangding.web.vo.order.req.CapitalFlowReqVo; import com.pangding.web.vo.order.req.CapitalFlowReqVo;
import com.pangding.web.vo.order.req.OrderLogReqVo;
import com.pangding.web.vo.order.req.OrderMoneyDetailReqVo;
import com.pangding.web.vo.order.req.back.CashWithdrawalBackReqVo;
import com.pangding.web.vo.order.tl.CashWithdrawalReqVo;
import com.pangding.web.vo.system.req.CompanyMsgReqVo; import com.pangding.web.vo.system.req.CompanyMsgReqVo;
import com.pangding.web.vo.system.req.company.CompanyMoneyUpdateReqVo;
import com.rabbitmq.client.Channel; import com.rabbitmq.client.Channel;
import com.yanzuoguang.mq.service.MqService; import com.yanzuoguang.mq.service.MqService;
import com.yanzuoguang.util.helper.DateHelper; import com.yanzuoguang.util.helper.DateHelper;
import com.yanzuoguang.util.helper.JsonHelper; import com.yanzuoguang.util.helper.JsonHelper;
import com.yanzuoguang.util.helper.StringHelper;
import com.yanzuoguang.util.log.Log; import com.yanzuoguang.util.log.Log;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -27,11 +34,15 @@ public class CompanyConsumer { ...@@ -27,11 +34,15 @@ public class CompanyConsumer {
@Autowired @Autowired
private CompanyProducer companyProducer; private CompanyProducer companyProducer;
@Autowired @Autowired
private PayProducer payProducer;
@Autowired
private MqService mqService; private MqService mqService;
@Autowired @Autowired
private CompanyService companyService; private CompanyService companyService;
@Autowired @Autowired
private CompanyMsgService companyMsgService; private CompanyMsgService companyMsgService;
@Autowired
private FinanceService financeService;
/** /**
...@@ -53,10 +64,14 @@ public class CompanyConsumer { ...@@ -53,10 +64,14 @@ public class CompanyConsumer {
public void UpdateCompanyMoney(String content, Message message, Channel channel) { public void UpdateCompanyMoney(String content, Message message, Channel channel) {
log.info("[UpdateCompanyMoney 监听的消息] - [消费时间] - [{}] - [{}]", DateHelper.getNow(), content); log.info("[UpdateCompanyMoney 监听的消息] - [消费时间] - [{}] - [{}]", DateHelper.getNow(), content);
try { try {
CompanyMoneyUpdateReqVo companyMoneyUpdateReqVo = JsonHelper.deserialize(content, CompanyMoneyUpdateReqVo.class); // CompanyMoneyUpdateReqVo companyMoneyUpdateReqVo = JsonHelper.deserialize(content, CompanyMoneyUpdateReqVo.class);
companyService.updateCompanyMoney(companyMoneyUpdateReqVo); // companyService.updateCompanyMoney(companyMoneyUpdateReqVo);
CapitalFlowReqVo capitalFlowReqVo = JsonHelper.deserialize(content, CapitalFlowReqVo.class);
financeService.updateCompanyMoney(capitalFlowReqVo);
} catch (Exception e) { } catch (Exception e) {
Log.error(CompanyConsumer.class, e); Log.error(CompanyConsumer.class, e);
// mqService.message(new MessageVo(MqConstant.COMPANY_MONEY_UPDATE, MqConstant.COMPANY_MONEY_UPDATE,
// content, 2000));
} finally { } finally {
mqService.basicAck(message, channel); mqService.basicAck(message, channel);
} }
...@@ -76,17 +91,92 @@ public class CompanyConsumer { ...@@ -76,17 +91,92 @@ public class CompanyConsumer {
} }
// @RabbitListener(queues = {MqConstant.COMPANY_MONEY_UPDATE}) /**
// public void UpdateCompanyMoney(String content, Message message, Channel channel) { * 提现
// log.info("[UpdateCompanyMoney 监听的消息] - [消费时间] - [{}] - [{}]", DateHelper.getNow(), content); *
// try { * @param cashWithdrawalReqVo
// CompanyMoneyUpdateReqVo companyMoneyUpdateReqVo = JsonHelper.deserialize(content, CompanyMoneyUpdateReqVo.class); */
// companyService.updateCompanyMoney(companyMoneyUpdateReqVo); public void cashWithdrawal(CashWithdrawalReqVo cashWithdrawalReqVo) {
// } catch (Exception e) { payProducer.cashWithdrawal(cashWithdrawalReqVo);
// Log.error(CompanyConsumer.class, e); }
// } finally {
// mqService.basicAck(message, channel); /**
// } * 提现回调
// } *
* @param content
* @param message
* @param channel
*/
@RabbitListener(queues = {MqConstant.CASH_WITHDRAWAL_BACK})
public void applyMoneyBack(String content, Message message, Channel channel) {
log.info("[applyMoneyBack 监听的消息] - [消费时间] - [{}] - [{}]", DateHelper.getNow(), content);
CashWithdrawalBackReqVo req = JsonHelper.deserialize(content, CashWithdrawalBackReqVo.class);
try {
financeService.withdrawalBack(req);
// 保存订单日志MQ
OrderLogReqVo orderLogReqVo = new OrderLogReqVo(StringHelper.getNewID(), req.getId(), OrderConstant.ORDER_REFUND_BACK,
JsonHelper.serialize(req), "", req.getCompanyId(), "");
// saveOrderLog(orderLogReqVo);
} catch (Exception e) {
Log.error(CompanyConsumer.class, e);
// 保存订单日志MQ
OrderLogReqVo orderLogReqVo = new OrderLogReqVo(StringHelper.getNewID(), req.getId(), OrderConstant.ORDER_REFUND_BACK,
JsonHelper.serialize(req), e.getMessage(), req.getCompanyId(), "");
// saveOrderLog(orderLogReqVo);
} finally {
mqService.basicAck(message, channel);
}
}
@RabbitListener(queues = {MqConstant.DIVIDE_SETTLEMENT_INIT})
public void divideSettlementInit(String content, Message message, Channel channel) {
log.info("[divideSettlementInit 监听的消息] - [消费时间] - [{}] - [{}]", DateHelper.getNow(), content);
OrderMoneyDetailReqVo req = JsonHelper.deserialize(content, OrderMoneyDetailReqVo.class);
try {
// financeService.divideSettlement(req);
// 保存订单日志MQ
OrderLogReqVo orderLogReqVo = new OrderLogReqVo(StringHelper.getNewID(), req.getOrderId(), "转账初始化",
JsonHelper.serialize(req), "", req.getCompanyId(), "");
// saveOrderLog(orderLogReqVo);
} catch (Exception e) {
Log.error(CompanyConsumer.class, e);
// 保存订单日志MQ
OrderLogReqVo orderLogReqVo = new OrderLogReqVo(StringHelper.getNewID(), req.getOrderId(), "转账初始化",
JsonHelper.serialize(req), e.getMessage(), req.getCompanyId(), "");
// saveOrderLog(orderLogReqVo);
} finally {
mqService.basicAck(message, channel);
}
}
/**
* 分润结算回调
*
* @param content
* @param message
* @param channel
*/
@RabbitListener(queues = {MqConstant.DIVIDE_SETTLEMENT_BACK})
public void divideSettlementBack(String content, Message message, Channel channel) {
log.info("[divideSettlementBack 监听的消息] - [消费时间] - [{}] - [{}]", DateHelper.getNow(), content);
CashWithdrawalBackReqVo req = JsonHelper.deserialize(content, CashWithdrawalBackReqVo.class);
try {
// financeService.divideSettlementBack(req);
// 保存订单日志MQ
OrderLogReqVo orderLogReqVo = new OrderLogReqVo(StringHelper.getNewID(), req.getId(), "转账回调",
JsonHelper.serialize(req), "", req.getCompanyId(), "");
// saveOrderLog(orderLogReqVo);
} catch (Exception e) {
Log.error(CompanyConsumer.class, e);
// 保存订单日志MQ
OrderLogReqVo orderLogReqVo = new OrderLogReqVo(StringHelper.getNewID(), req.getId(), "转账回调",
JsonHelper.serialize(req), e.getMessage(), req.getCompanyId(), "");
// saveOrderLog(orderLogReqVo);
} finally {
mqService.basicAck(message, channel);
}
}
} }
package com.pangding.web.authority.mq; package com.pangding.web.authority.mq;
import com.pangding.web.mq.CompanyProducer; import com.pangding.web.mq.CompanyProducer;
import com.pangding.web.mq.DistributionProducer;
import com.pangding.web.mq.OrderProducer;
import com.pangding.web.mq.PayProducer; import com.pangding.web.mq.PayProducer;
import com.yanzuoguang.mq.service.MqService; import org.springframework.beans.factory.InitializingBean;
import com.yanzuoguang.util.thread.ThreadNext;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -15,37 +12,17 @@ import org.springframework.stereotype.Component; ...@@ -15,37 +12,17 @@ import org.springframework.stereotype.Component;
* @author 11488 * @author 11488
*/ */
@Component @Component
public class MqPlan implements ThreadNext.Next { public class MqPlan implements InitializingBean {
@Autowired
private MqService mqService;
@Autowired @Autowired
private CompanyProducer companyProducer; private CompanyProducer companyProducer;
@Autowired
private PayProducer payProducer;
public MqPlan() {
ThreadNext.start(this, "queue initByLog error");
}
@Override @Override
public boolean next() throws Exception { public void afterPropertiesSet() throws Exception {
if (mqService == null || null == companyProducer) {
return true;
}
companyProducer.init(); companyProducer.init();
return false; payProducer.init();
}
@Override
public int getNextTime() {
return 1000;
}
public void init() {
try {
this.next();
} catch (Exception e) {
e.printStackTrace();
}
} }
} }
...@@ -6,7 +6,6 @@ import com.pangding.web.authority.vo.resvo.*; ...@@ -6,7 +6,6 @@ import com.pangding.web.authority.vo.resvo.*;
import com.pangding.web.vo.system.pd.company.CompanyBankCardVo; import com.pangding.web.vo.system.pd.company.CompanyBankCardVo;
import com.pangding.web.vo.system.pd.company.CompanyVo; import com.pangding.web.vo.system.pd.company.CompanyVo;
import com.pangding.web.vo.system.req.company.CompanyBankCardReqVo; import com.pangding.web.vo.system.req.company.CompanyBankCardReqVo;
import com.pangding.web.vo.system.req.company.CompanyMoneyUpdateReqVo;
import com.pangding.web.vo.system.res.company.CompanyResVo; import com.pangding.web.vo.system.res.company.CompanyResVo;
import com.pangding.web.vo.system.res.company.FindCompanyBalanceResVo; import com.pangding.web.vo.system.res.company.FindCompanyBalanceResVo;
import com.yanzuoguang.util.vo.PageSizeData; import com.yanzuoguang.util.vo.PageSizeData;
...@@ -191,9 +190,6 @@ public interface CompanyService{ ...@@ -191,9 +190,6 @@ public interface CompanyService{
*/ */
void examineConfig(ExamineConfigReqVo reqVo); void examineConfig(ExamineConfigReqVo reqVo);
ResponseResult<String> updateCompanyMoney(CompanyMoneyUpdateReqVo req);
/** /**
* 找到公司信息及公司余额明细 * 找到公司信息及公司余额明细
* @param req * @param req
...@@ -202,4 +198,5 @@ public interface CompanyService{ ...@@ -202,4 +198,5 @@ public interface CompanyService{
FindCompanyBalanceResVo findCompanyBalance(com.pangding.web.vo.system.req.company.CompanyReqVo req); FindCompanyBalanceResVo findCompanyBalance(com.pangding.web.vo.system.req.company.CompanyReqVo req);
com.pangding.web.vo.system.res.company.CompanyResVo findCompanyById(com.pangding.web.vo.system.req.company.CompanyReqVo req); com.pangding.web.vo.system.res.company.CompanyResVo findCompanyById(com.pangding.web.vo.system.req.company.CompanyReqVo req);
} }
...@@ -2,11 +2,40 @@ package com.pangding.web.authority.service; ...@@ -2,11 +2,40 @@ package com.pangding.web.authority.service;
import com.pangding.web.authority.vo.reqvo.WithdrawalReqVo; import com.pangding.web.authority.vo.reqvo.WithdrawalReqVo;
import com.pangding.web.authority.vo.resvo.WithdrawalResVo; import com.pangding.web.authority.vo.resvo.WithdrawalResVo;
import com.pangding.web.vo.order.req.CapitalFlowReqVo;
import com.pangding.web.vo.order.req.back.CashWithdrawalBackReqVo;
import com.pangding.web.vo.order.res.CapitalFlowListResVo;
import com.yanzuoguang.util.vo.ResponseResult;
/** /**
* @Author zhangjinyao * @Author zhangjinyao
* @create 2019/6/18 20:01 * @create 2019/6/18 20:01
*/ */
public interface FinanceService { public interface FinanceService {
WithdrawalResVo withdrawal(WithdrawalReqVo reqVo); WithdrawalResVo withdrawal(WithdrawalReqVo reqVo);
CapitalFlowListResVo findCapitalFlowList(CapitalFlowReqVo req);
/**
* 申请提现
* @param req
* @return
*/
ResponseResult<CapitalFlowReqVo> applyWithdrawal(CapitalFlowReqVo req);
/**
* 提现回调
* @param req
* @return
*/
ResponseResult<String> withdrawalBack(CashWithdrawalBackReqVo req);
/**
* 修改公司余额
* @param req
* @return
*/
ResponseResult<String> updateCompanyMoney(CapitalFlowReqVo req);
} }
...@@ -4,6 +4,7 @@ import com.pangding.web.authority.dao.*; ...@@ -4,6 +4,7 @@ import com.pangding.web.authority.dao.*;
import com.pangding.web.authority.feign.PayFeign; import com.pangding.web.authority.feign.PayFeign;
import com.pangding.web.authority.feign.StoreFeign; import com.pangding.web.authority.feign.StoreFeign;
import com.pangding.web.authority.feign.WxFeign; import com.pangding.web.authority.feign.WxFeign;
import com.pangding.web.authority.mq.CompanyConsumer;
import com.pangding.web.authority.service.CompanyCodeService; import com.pangding.web.authority.service.CompanyCodeService;
import com.pangding.web.authority.service.CompanyService; import com.pangding.web.authority.service.CompanyService;
import com.pangding.web.authority.service.PangdingPartnerService; import com.pangding.web.authority.service.PangdingPartnerService;
...@@ -12,11 +13,13 @@ import com.pangding.web.authority.util.CompanyBankCardConstant; ...@@ -12,11 +13,13 @@ import com.pangding.web.authority.util.CompanyBankCardConstant;
import com.pangding.web.authority.util.RsaConstant; import com.pangding.web.authority.util.RsaConstant;
import com.pangding.web.authority.vo.*; import com.pangding.web.authority.vo.*;
import com.pangding.web.authority.vo.reqvo.*; import com.pangding.web.authority.vo.reqvo.*;
import com.pangding.web.authority.vo.reqvo.CompanyReqVo;
import com.pangding.web.authority.vo.reqvo.SaveCompanyReqVo;
import com.pangding.web.authority.vo.resvo.*; import com.pangding.web.authority.vo.resvo.*;
import com.pangding.web.constant.CompanyConstant; import com.pangding.web.constant.CompanyConstant;
import com.pangding.web.constant.OrderConstant; import com.pangding.web.constant.OrderConstant;
import com.pangding.web.mq.CompanyProducer;
import com.pangding.web.util.RSAUtils; import com.pangding.web.util.RSAUtils;
import com.pangding.web.vo.order.pd.CapitalFlowVo;
import com.pangding.web.vo.order.req.CapitalFlowReqVo; import com.pangding.web.vo.order.req.CapitalFlowReqVo;
import com.pangding.web.vo.product.pd.merchant.MerchantVo; import com.pangding.web.vo.product.pd.merchant.MerchantVo;
import com.pangding.web.vo.system.pd.CompanyMsgVo; import com.pangding.web.vo.system.pd.CompanyMsgVo;
...@@ -26,10 +29,7 @@ import com.pangding.web.vo.system.pd.authority.UserVo; ...@@ -26,10 +29,7 @@ import com.pangding.web.vo.system.pd.authority.UserVo;
import com.pangding.web.vo.system.pd.company.*; import com.pangding.web.vo.system.pd.company.*;
import com.pangding.web.vo.system.req.CompanyMsgReqVo; import com.pangding.web.vo.system.req.CompanyMsgReqVo;
import com.pangding.web.vo.system.req.authority.UserRoleReqVo; import com.pangding.web.vo.system.req.authority.UserRoleReqVo;
import com.pangding.web.vo.system.req.company.CompanyBankCardReqVo; import com.pangding.web.vo.system.req.company.*;
import com.pangding.web.vo.system.req.company.CompanyCodeReqVo;
import com.pangding.web.vo.system.req.company.CompanyMoneyDetailReqVo;
import com.pangding.web.vo.system.req.company.CompanyMoneyUpdateReqVo;
import com.pangding.web.vo.system.res.company.*; import com.pangding.web.vo.system.res.company.*;
import com.yanzuoguang.util.base.ObjectHelper; import com.yanzuoguang.util.base.ObjectHelper;
import com.yanzuoguang.util.exception.CodeException; import com.yanzuoguang.util.exception.CodeException;
...@@ -81,9 +81,11 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -81,9 +81,11 @@ public class CompanyServiceImpl implements CompanyService {
@Autowired @Autowired
private RoleDao roleDao; private RoleDao roleDao;
@Autowired @Autowired
private CapitalFlowDao capitalFlowDao;
@Autowired
private CompanyMoneyDetailDao companyMoneyDetailDao; private CompanyMoneyDetailDao companyMoneyDetailDao;
@Autowired @Autowired
private CompanyProducer companyProducer; private CompanyConsumer companyConsumer;
@Autowired @Autowired
private CompanyCodeService companyCodeService; private CompanyCodeService companyCodeService;
@Value("${msg.payMsgId}") @Value("${msg.payMsgId}")
...@@ -669,7 +671,7 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -669,7 +671,7 @@ public class CompanyServiceImpl implements CompanyService {
if (1 == reqVo.getCodeType()) { if (1 == reqVo.getCodeType()) {
codeType = 1; codeType = 1;
} }
if(!StringHelper.isEmpty(reqVo.getMsgId())){ if (!StringHelper.isEmpty(reqVo.getMsgId())) {
msgGroupId = reqVo.getMsgId(); msgGroupId = reqVo.getMsgId();
} }
reqVo.setCodeType(codeType); reqVo.setCodeType(codeType);
...@@ -728,92 +730,7 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -728,92 +730,7 @@ public class CompanyServiceImpl implements CompanyService {
companyMsgVo.setType(companyResVo.getCompanyAttribute()); companyMsgVo.setType(companyResVo.getCompanyAttribute());
companyMsgDao.create(companyMsgVo); companyMsgDao.create(companyMsgVo);
} }
return companyCodeVo.getCodeImgUrl(); return companyCodeVo.getCodeImgUrl();
// com.pangding.web.vo.system.res.company.CompanyResVo companyResVo = companyDao.load(reqVo.getCompanyId(), com.pangding.web.vo.system.res.company.CompanyResVo.class);
//// CompanyExtendVo companyExtendVo = companyExtendDao.load(reqVo.getCompanyId(), CompanyExtendVo.class);
// CompanyExtendVo companyExtendVo = new CompanyExtendVo();
// if (StringHelper.isEmpty(companyResVo)) {
// throw new CodeException("公司信息不存在");
// }
// ObjectHelper.writeWithFrom(companyExtendVo, companyResVo);
// if (StringHelper.isEmpty(companyResVo.getQrCode())) {
// String code = DateHelper.getNow()
// .replace("-", "")
// .replace(":", "")
// .replace(" ", "");
// ObjectHelper.writeWithFrom(companyExtendVo, companyResVo);
// companyExtendVo.setQrCode(code);
// }
// int select = reqVo.getSelect();
// /*此处应调用微信接口传入qrCode和select获取qrCodeUrl*/
// QrCodeReqVo qrCodeReqVo = new QrCodeReqVo();
// qrCodeReqVo.setReqId(reqVo.getReqId());
// /*临时二维码,超时时间30分钟*/
// SceneInfo sceneInfo = new SceneInfo();
// Scene scene = new Scene();
// scene.setScene_str(companyCodeVo.getCodeCode());
// sceneInfo.setScene(scene);
// qrCodeReqVo.setAction_info(sceneInfo);
//// if (select == 0) {
//// qrCodeReqVo.setExpire_seconds(60 * 30);
//// qrCodeReqVo.setAction_name("QR_STR_SCENE");
//// } else {
// qrCodeReqVo.setAction_name("QR_LIMIT_STR_SCENE");
//// }
// ResponseResult result;
// try {
// result = wxFeign.qcCodeGet(qrCodeReqVo);
// } catch (CodeException e) {
// throw new CodeException(e.getCode(), e.getMessage());
// }
//
// WxVo wxVo = (WxVo) result.getData();
// String url = wxVo.getPdUrl();
// if ("QR_LIMIT_STR_SCENE".equals(qrCodeReqVo.getAction_name())) {
// companyExtendVo.setQrCodeUrl(url);
// companyExtendDao.update(companyExtendVo);
// }
// com.pangding.web.vo.system.req.CompanyMsgReqVo companyMsgReqVo = new com.pangding.web.vo.system.req.CompanyMsgReqVo();
// companyMsgReqVo.setCompanyId(companyCodeVo.getCompanyId());
// companyMsgReqVo.setMerchantId("");
// CompanyMsgVo companyMsgVo = companyMsgDao.load(companyMsgReqVo, CompanyMsgVo.class);
// if (StringHelper.isEmpty(companyMsgVo)) {
// companyMsgVo = new CompanyMsgVo();
// companyMsgVo.setId(StringHelper.getNewID());
// companyMsgVo.setCompanyId(companyCodeVo.getCompanyId());
// companyMsgVo.setMerchantId(reqVo.getMerchantId());
// companyMsgVo.setCompanyName("");
// companyMsgVo.setMerchantName("");
// if (2 == reqVo.getCodeType()) {
// companyMsgVo.setMsgId(groupProductMsgId);
// } else {
// companyMsgVo.setMsgId(payMsgId);
// }
// companyMsgVo.setMsgLocation(1);
// companyMsgVo.setType(companyResVo.getCompanyAttribute());
// companyMsgDao.create(companyMsgVo);
// }
// CompanyCodeReqVo companyCodeReqVo = new CompanyCodeReqVo();
// companyCodeReqVo.setCompanyId(companyResVo.getId());
// if (2 == reqVo.getCodeType()) {
// companyCodeReqVo.setCodeType(4);
// companyCodeReqVo.setCodeCode(companyResVo.getQrCode());
// }
// if (1 == reqVo.getCodeType()) {
// companyCodeReqVo.setCodeType(1);
// companyCodeReqVo.setCodeCode(companyResVo.getQrCode());
// }
// companyCodeReqVo.setCodeLink("");
// companyCodeReqVo.setCodeImgUrl(url);
// companyCodeReqVo.setCodeValidityType(0);
// companyCodeReqVo.setSubscribe(1);
// companyCodeReqVo.setMsgGroupId("");
// companyCodeReqVo.setCreateTime(DateHelper.getNow());
// companyCodeService.saveComapnyCode(companyCodeReqVo);
// return url;
} }
public CompanyCodeVo getWeixinCode(int select, CompanyCodeVo companyCodeVo) { public CompanyCodeVo getWeixinCode(int select, CompanyCodeVo companyCodeVo) {
...@@ -1019,18 +936,18 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -1019,18 +936,18 @@ public class CompanyServiceImpl implements CompanyService {
if (!StringHelper.isEmpty(companyDivideResVo)) { if (!StringHelper.isEmpty(companyDivideResVo)) {
companyDivideResVo.setCompanyChannelType(getCompanyReqVo.getCompanyChannelType()); companyDivideResVo.setCompanyChannelType(getCompanyReqVo.getCompanyChannelType());
companyDivideResVoList.add(companyDivideResVo); companyDivideResVoList.add(companyDivideResVo);
if(!StringHelper.isEmpty(companyDivideResVo.getInvitationCompanyId())){ if (!StringHelper.isEmpty(companyDivideResVo.getInvitationCompanyId())) {
getCompanyReqVo = new GetCompanyReqVo(); getCompanyReqVo = new GetCompanyReqVo();
getCompanyReqVo.setCompanyId(companyDivideResVo.getInvitationCompanyId()); getCompanyReqVo.setCompanyId(companyDivideResVo.getInvitationCompanyId());
GetCompanyDivideResVo companyDivideResVo1 = companyDivideRuleDao.findCompanyDivideInfo(getCompanyReqVo); GetCompanyDivideResVo companyDivideResVo1 = companyDivideRuleDao.findCompanyDivideInfo(getCompanyReqVo);
companyDivideResVo1.setCompanyChannelType(CompanyConstant.COMPANY_TYPE_BONUS); companyDivideResVo1.setCompanyChannelType(CompanyConstant.COMPANY_TYPE_BONUS);
companyDivideResVoList.add(companyDivideResVo1); companyDivideResVoList.add(companyDivideResVo1);
if(!StringHelper.isEmpty(companyDivideResVo1) && !StringHelper.isEmpty(companyDivideResVo1.getPid())){ if (!StringHelper.isEmpty(companyDivideResVo1) && !StringHelper.isEmpty(companyDivideResVo1.getPid())) {
getCompanyReqVo = new GetCompanyReqVo(); getCompanyReqVo = new GetCompanyReqVo();
getCompanyReqVo.setCompanyId(companyDivideResVo1.getPid()); getCompanyReqVo.setCompanyId(companyDivideResVo1.getPid());
GetCompanyDivideResVo companyDivideResVo2 = companyDivideRuleDao.findCompanyDivideInfo(getCompanyReqVo); GetCompanyDivideResVo companyDivideResVo2 = companyDivideRuleDao.findCompanyDivideInfo(getCompanyReqVo);
companyDivideResVo1.setCompanyChannelType(CompanyConstant.COMPANY_TYPE_SUPER); companyDivideResVo1.setCompanyChannelType(CompanyConstant.COMPANY_TYPE_SUPER);
companyDivideResVoList.add(companyDivideResVo2); companyDivideResVoList.add(companyDivideResVo2);
} }
} }
...@@ -1134,61 +1051,8 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -1134,61 +1051,8 @@ public class CompanyServiceImpl implements CompanyService {
} }
@Override
public ResponseResult<String> updateCompanyMoney(CompanyMoneyUpdateReqVo req) {
CompanyVo companyVo = companyDao.load(req.getCompanyId(), CompanyVo.class);
CompanyExtendVo companyExtendVo = companyExtendDao.load(req.getCompanyId(), CompanyExtendVo.class);
if (StringHelper.isEmpty(companyVo) || StringHelper.isEmpty(companyExtendVo)) {
throw new CodeException("未找到公司信息");
}
try {
// 可提现余额
double companyMoney = companyExtendVo.getWithdrawTotalCash();
// req = new UpdateCompanyMoneyReqVo();
// req.setCompanyId(companyVo.getId());
if (OrderConstant.CATEGORY_ENTRY == req.getMoneyType()
|| OrderConstant.CATEGORY_DIVIDEND == req.getMoneyType()
|| OrderConstant.CATEGORY_RECHARGE == req.getMoneyType()) {
// 分账 转账 充值
companyMoney += req.getMoney();
}
if (OrderConstant.CATEGORY_REFUND == req.getMoneyType()
|| OrderConstant.CATEGORY_WITHDRAWAL == req.getMoneyType()) {
// 退款 提现
companyMoney -= req.getMoney();
}
// int orderMoneyType = 0;
// int divideMoneyType = 0;
// List<CompanyMoneyDateilVo> companyMoneyDateilVoList = companyMoneyDetailDao.loadList(req, CompanyMoneyDateilVo.class);
// for(int i = 0; i < companyMoneyDateilVoList.size(); i++){
// CompanyMoneyDateilVo companyMoneyDateilVo = companyMoneyDateilVoList.get(i);
// if(CompanyConstant.MONEY_TYPE_ORDER == companyMoneyDateilVo.getMoneyType()){
// orderMoneyType = 1;
// if(CompanyConstant.MONEY_TYPE_REFUND == req.getMoneyType()){
// companyMoneyDateilVo.setMoney(companyMoneyDateilVo.getMoney() - money);
// companyMoneyDetailDao.update(companyMoneyDateilVo);
// }else{
// companyMoneyDateilVo.setMoney(companyMoneyDateilVo.getMoney() + addMoney);
// companyMoneyDetailDao.update(companyMoneyDateilVo);
// }
// }
// if(CompanyConstant.MONEY_TYPE_DIVIDE == companyMoneyDateilVo.getMoneyType()){
// divideMoneyType = 1;
// if(CompanyConstant.MONEY_TYPE_ZZ == req.getMoneyType()){
// companyMoneyDateilVo.setMoney(companyMoneyDateilVo.getMoney() + addMoney);
// companyMoneyDetailDao.update(companyMoneyDateilVo);
// }
// }
// }
companyExtendVo.setWithdrawTotalCash(companyMoney);
companyExtendDao.update(companyExtendVo);
return ResponseResult.result("处理完成");
} catch (CodeException e) {
throw new CodeException("");
}
}
@Override @Override
public FindCompanyBalanceResVo findCompanyBalance(com.pangding.web.vo.system.req.company.CompanyReqVo req) { public FindCompanyBalanceResVo findCompanyBalance(com.pangding.web.vo.system.req.company.CompanyReqVo req) {
...@@ -1215,8 +1079,6 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -1215,8 +1079,6 @@ public class CompanyServiceImpl implements CompanyService {
for (int i = 0; i < companyExtendVoList.size(); i++) { for (int i = 0; i < companyExtendVoList.size(); i++) {
com.pangding.web.vo.system.pd.company.CompanyExtendVo companyExtendVo = companyExtendVoList.get(i); com.pangding.web.vo.system.pd.company.CompanyExtendVo companyExtendVo = companyExtendVoList.get(i);
String companyId = companyExtendVoList.get(i).getId(); String companyId = companyExtendVoList.get(i).getId();
// com.pangding.web.vo.system.pd.company.CompanyVo companyVo = companyExtendDaoImpl.load(companyId,
// com.pangding.web.vo.system.pd.company.CompanyVo.class);
if (!StringHelper.isEmpty(companyExtendVo)) { if (!StringHelper.isEmpty(companyExtendVo)) {
int withdrawRule = companyExtendVo.getWithdrawRule(); int withdrawRule = companyExtendVo.getWithdrawRule();
double withdrawTotalCash = companyExtendVo.getWithdrawTotalCash(); double withdrawTotalCash = companyExtendVo.getWithdrawTotalCash();
...@@ -1232,7 +1094,7 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -1232,7 +1094,7 @@ public class CompanyServiceImpl implements CompanyService {
capitalFlowReqVo.setBankId(companyBankCardVo.getId()); capitalFlowReqVo.setBankId(companyBankCardVo.getId());
capitalFlowReqVo.setBankCardCode(companyBankCardVo.getBankCardCode()); capitalFlowReqVo.setBankCardCode(companyBankCardVo.getBankCardCode());
capitalFlowReqVo.setOrderMoney(withdrawTotalCash); capitalFlowReqVo.setOrderMoney(withdrawTotalCash);
companyProducer.applyWithdrawal(capitalFlowReqVo); companyConsumer.applyWithdrawal(capitalFlowReqVo);
} }
} }
} }
...@@ -1326,4 +1188,8 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -1326,4 +1188,8 @@ public class CompanyServiceImpl implements CompanyService {
} }
} }
package com.pangding.web.authority.service.impl; package com.pangding.web.authority.service.impl;
import com.pangding.web.authority.dao.CompanyBankCardDao; import com.pangding.web.authority.dao.*;
import com.pangding.web.authority.dao.CompanyExtendDao; import com.pangding.web.authority.mq.CompanyConsumer;
import com.pangding.web.authority.service.FinanceService; import com.pangding.web.authority.service.FinanceService;
import com.pangding.web.authority.vo.reqvo.CompanyExtendGetReqVo; import com.pangding.web.authority.vo.reqvo.CompanyExtendGetReqVo;
import com.pangding.web.authority.vo.reqvo.WithdrawalReqVo; import com.pangding.web.authority.vo.reqvo.WithdrawalReqVo;
import com.pangding.web.authority.vo.resvo.WithdrawalResVo; import com.pangding.web.authority.vo.resvo.WithdrawalResVo;
import com.pangding.web.constant.CompanyConstant;
import com.pangding.web.vo.order.pd.CapitalFlowVo;
import com.pangding.web.vo.order.req.CapitalFlowReqVo;
import com.pangding.web.vo.order.req.back.CashWithdrawalBackReqVo;
import com.pangding.web.vo.order.res.CapitalFlowListResVo;
import com.pangding.web.vo.order.res.CapitalFlowResVo;
import com.pangding.web.vo.order.tl.CashWithdrawalReqVo;
import com.pangding.web.vo.system.pd.company.CompanyBankCardVo; import com.pangding.web.vo.system.pd.company.CompanyBankCardVo;
import com.pangding.web.vo.system.pd.company.CompanyExtendVo; import com.pangding.web.vo.system.pd.company.CompanyExtendVo;
import com.pangding.web.vo.system.pd.company.CompanyMoneyVo;
import com.pangding.web.vo.system.req.company.UpdateCompanyMoneyReqVo;
import com.pangding.web.vo.system.res.company.CompanyResVo;
import com.yanzuoguang.util.base.ObjectHelper;
import com.yanzuoguang.util.exception.CodeException; import com.yanzuoguang.util.exception.CodeException;
import com.yanzuoguang.util.helper.DateHelper;
import com.yanzuoguang.util.helper.StringHelper;
import com.yanzuoguang.util.vo.PageSizeData;
import com.yanzuoguang.util.vo.ResponseResult;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
...@@ -20,8 +36,19 @@ import java.util.List; ...@@ -20,8 +36,19 @@ import java.util.List;
*/ */
@Service @Service
public class FinanceServiceImpl implements FinanceService { public class FinanceServiceImpl implements FinanceService {
@Autowired
private CompanyDao companyDao;
@Autowired
private CompanyExtendDao companyExtendDao;
@Autowired
private CapitalFlowDao capitalFlowDao;
@Autowired
private CompanyMoneyDao companyMoneyDao;
@Autowired @Autowired
private CompanyExtendDao companyExtendDaoImpl; private CompanyConsumer companyConsumer;
@Autowired @Autowired
private CompanyBankCardDao companyBankCardDaoImpl; private CompanyBankCardDao companyBankCardDaoImpl;
...@@ -32,18 +59,225 @@ public class FinanceServiceImpl implements FinanceService { ...@@ -32,18 +59,225 @@ public class FinanceServiceImpl implements FinanceService {
CompanyExtendGetReqVo getReqVo = new CompanyExtendGetReqVo(); CompanyExtendGetReqVo getReqVo = new CompanyExtendGetReqVo();
getReqVo.setId(reqVo.getCompanyId()); getReqVo.setId(reqVo.getCompanyId());
CompanyExtendVo extendVo = companyExtendDaoImpl.load(getReqVo,CompanyExtendVo.class); CompanyExtendVo extendVo = companyExtendDao.load(getReqVo, CompanyExtendVo.class);
if (null == extendVo ){ if (null == extendVo) {
throw new CodeException("未查到该公司数据"); throw new CodeException("未查到该公司数据");
} }
resVo.setWithdrawTotalCash(extendVo.getWithdrawTotalCash()); resVo.setWithdrawTotalCash(extendVo.getWithdrawTotalCash());
resVo.setCompanyExtend(extendVo); resVo.setCompanyExtend(extendVo);
List<CompanyBankCardVo> companyBankCardVoList = companyBankCardDaoImpl.loadList(reqVo,CompanyBankCardVo.class); List<CompanyBankCardVo> companyBankCardVoList = companyBankCardDaoImpl.loadList(reqVo, CompanyBankCardVo.class);
if (null == companyBankCardVoList || companyBankCardVoList.isEmpty()){ if (null == companyBankCardVoList || companyBankCardVoList.isEmpty()) {
throw new CodeException("该公司暂无银行卡信息,请添加"); throw new CodeException("该公司暂无银行卡信息,请添加");
} }
resVo.setBankCardVoList(companyBankCardVoList); resVo.setBankCardVoList(companyBankCardVoList);
return resVo; return resVo;
} }
/**
* 查询订单列表
*
* @param req
* @return
*/
@Override
public CapitalFlowListResVo findCapitalFlowList(CapitalFlowReqVo req) {
CapitalFlowListResVo capitalFlowListResVo = new CapitalFlowListResVo();
if (!StringHelper.isEmpty(req.getStartDate())) {
req.setStartDate(req.getStartDate() + " 00:00:00");
}
if (!StringHelper.isEmpty(req.getEndDate())) {
req.setEndDate(req.getEndDate() + " 23:59:59");
}
PageSizeData<CapitalFlowResVo> pageSizeData = capitalFlowDao.findCapitalFlowList(req);
CapitalFlowResVo capitalFlowTotal = capitalFlowDao.findCapitalFlowTotal(req);
capitalFlowListResVo.setCapitalFlowResVoPageSizeData(pageSizeData);
capitalFlowListResVo.setCapitalFlowResVo(capitalFlowTotal);
return capitalFlowListResVo;
}
/**
* 申请提现
*
* @param req
* @return
*/
@Override
public ResponseResult<CapitalFlowReqVo> applyWithdrawal(CapitalFlowReqVo req) {
// 查找公司信息,提现信息
CompanyResVo companyResVo = companyDao.load(req.getCompanyId(), CompanyResVo.class);
if (!StringHelper.isEmpty(companyResVo)) {
double withdrawFee = companyResVo.getWithdrawFee();
double withdrawTotalCash = companyResVo.getWithdrawTotalCash();
if (withdrawTotalCash < req.getOrderMoney()) {
throw new CodeException("提现金额大于可提现余额");
}
CapitalFlowVo capitalFlowVo = new CapitalFlowVo();
ObjectHelper.writeWithFrom(capitalFlowVo, req);
capitalFlowVo.setOrderId(StringHelper.getNewID());
capitalFlowVo.setCategory(1);
capitalFlowVo.setOrderFee(withdrawFee);
capitalFlowVo.setActualMoney(req.getOrderMoney() - capitalFlowVo.getOrderFee());
capitalFlowVo.setTime(DateHelper.getNow());
capitalFlowVo.setStatus(0);
capitalFlowDao.save(capitalFlowVo);
CashWithdrawalReqVo cashWithdrawalReqVo = new CashWithdrawalReqVo();
ObjectHelper.writeWithFrom(cashWithdrawalReqVo, capitalFlowVo);
cashWithdrawalReqVo.setActualType(companyResVo.getWithdrawType());
cashWithdrawalReqVo.setBankCardType(companyResVo.getCompanyType());
companyConsumer.cashWithdrawal(cashWithdrawalReqVo);
ResponseResult<CapitalFlowReqVo> responseResult = new ResponseResult<>();
responseResult.setData(req);
return responseResult;
} else {
throw new CodeException("未找到公司信息");
}
}
/**
* 提现回调
*
* @param req
*/
@Override
public ResponseResult<String> withdrawalBack(CashWithdrawalBackReqVo req) {
CapitalFlowVo capitalFlowVo = capitalFlowDao.load(req.getId(), CapitalFlowVo.class);
if (!StringHelper.isEmpty(capitalFlowVo)) {
capitalFlowVo.setStatus(req.getStatus());
capitalFlowVo.setErrorMessage(req.getErrorMessage());
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);
companyExtendDao.updateCompanyMoney(updateCompanyMoneyReqVo);
capitalFlowVo.setInitMoney(oldMoney);
capitalFlowVo.setFinalMoney(newMoney);
updateCompanyMoney(capitalFlowVo, companyResVo);
}
}
capitalFlowDao.update(capitalFlowVo);
} else {
throw new CodeException("订单信息错误。");
}
return ResponseResult.result("");
}
@Transactional
@Override
public ResponseResult<String> updateCompanyMoney(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.MONEY_CATEGORY_TYPE_DEAL == req.getCategory()
|| CompanyConstant.MONEY_CATEGORY_TYPE_RECHARGE == req.getCategory()
|| CompanyConstant.MONEY_CATEGORY_TYPE_OVER == req.getCategory()) {
// 交易订单金额 充值 分润
newMoney = oldMoney + req.getActualMoney();
}
if (CompanyConstant.MONEY_CATEGORY_TYPE_REFUND == req.getCategory()) {
// 退款
newMoney = oldMoney - req.getActualMoney();
money = -money;
}
// 添加资金流水
CapitalFlowReqVo capitalFlowReqVo = new CapitalFlowReqVo();
capitalFlowReqVo.setOrderId(req.getOrderId());
CapitalFlowVo capitalFlowVo = capitalFlowDao.load(capitalFlowReqVo, CapitalFlowVo.class);
if (StringHelper.isEmpty(capitalFlowVo)) {
capitalFlowVo = new CapitalFlowVo();
ObjectHelper.writeWithFrom(capitalFlowVo, req);
capitalFlowVo.setStatus(1);
capitalFlowVo.setTime(DateHelper.getNow());
capitalFlowVo.setActualMoney(money);
capitalFlowVo.setInitMoney(oldMoney);
capitalFlowVo.setFinalMoney(newMoney);
capitalFlowDao.save(capitalFlowVo);
} else {
ObjectHelper.writeWithFrom(capitalFlowVo, req);
capitalFlowVo.setStatus(1);
capitalFlowVo.setTime(DateHelper.getNow());
capitalFlowVo.setActualMoney(money);
capitalFlowVo.setInitMoney(oldMoney);
capitalFlowVo.setFinalMoney(newMoney);
capitalFlowDao.update(capitalFlowVo);
}
UpdateCompanyMoneyReqVo updateCompanyMoneyReqVo = new UpdateCompanyMoneyReqVo();
updateCompanyMoneyReqVo.setCompanyId(companyVo.getId());
updateCompanyMoneyReqVo.setOldWithdrawTotalCash(oldMoney);
updateCompanyMoneyReqVo.setNewWithdrawTotalCash(newMoney);
companyExtendDao.updateCompanyMoney(updateCompanyMoneyReqVo);
updateCompanyMoney(capitalFlowVo, companyVo);
return ResponseResult.result("处理完成");
}
public void updateCompanyMoney(CapitalFlowVo capitalFlowVo, CompanyResVo companyVo){
//修改公司余额
double oldMoney = companyVo.getWithdrawTotalCash();
double inMoney = 0d, outMoney = 0d, refundMoney = 0d;
int inNumber = 0, outNumber = 0, refundNumber = 0;
if (CompanyConstant.MONEY_CATEGORY_TYPE_DEAL == capitalFlowVo.getCategory()
|| CompanyConstant.MONEY_CATEGORY_TYPE_RECHARGE == capitalFlowVo.getCategory()
|| CompanyConstant.MONEY_CATEGORY_TYPE_OVER == capitalFlowVo.getCategory()) {
// 交易订单金额 充值 分润
inNumber = 1;
inMoney = capitalFlowVo.getActualMoney();
}
if (CompanyConstant.MONEY_CATEGORY_TYPE_REFUND == capitalFlowVo.getCategory()) {
// 退款
refundNumber = 1;
refundMoney = capitalFlowVo.getActualMoney();
}
if (CompanyConstant.MONEY_CATEGORY_TYPE_DRAW == capitalFlowVo.getCategory()) {
// 提现
outNumber = 1;
outMoney = capitalFlowVo.getOrderMoney();
}
CompanyMoneyVo companyMoneyReqVo = new CompanyMoneyVo();
companyMoneyReqVo.setDailyDate(DateHelper.getToday());
companyMoneyReqVo.setCompanyId(companyVo.getId());
CompanyMoneyVo companyMoneyVo = companyMoneyDao.load(companyMoneyReqVo, CompanyMoneyVo.class);
if (StringHelper.isEmpty(companyMoneyVo)) {
companyMoneyVo = new CompanyMoneyVo();
companyMoneyVo.setCompanyMoneyId(StringHelper.getNewID());
companyMoneyVo.setCompanyId(companyVo.getId());
companyMoneyVo.setDailyDate(DateHelper.getToday());
companyMoneyVo.setCompanyName(companyVo.getCompanyName());
companyMoneyVo.setInitMoney(oldMoney);
companyMoneyVo.setInMoney(inMoney);
companyMoneyVo.setOutMoney(outMoney);
companyMoneyVo.setRefundMoney(refundMoney);
companyMoneyVo.setFinalMoney(companyMoneyVo.getInitMoney() + companyMoneyVo.getInMoney() - companyMoneyVo.getOutMoney());
companyMoneyVo.setInNumber(inNumber);
companyMoneyVo.setOutNumber(outNumber);
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.setInNumber(inNumber + companyMoneyVo.getInNumber());
companyMoneyVo.setOutNumber(outNumber + companyMoneyVo.getOutNumber());
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