| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- package com.poteviohealth.ym.ipos.controller.app;
- import com.google.common.collect.Lists;
- import com.poteviohealth.cgp.common.controller.BaseWebController;
- import com.poteviohealth.cgp.common.facade.log.OperateType;
- import com.poteviohealth.cgp.common.facade.log.OperationLog;
- import com.poteviohealth.cgp.common.filter.TokenContext;
- import com.poteviohealth.cgp.common.integrated.StringParams;
- import com.poteviohealth.cgp.common.integrated.customer.CustomerFeignClient;
- import com.poteviohealth.cgp.common.integrated.customer.model.GroupLeaderDTO;
- import com.poteviohealth.cgp.common.integrated.customer.model.GroupLeaderParams;
- import com.poteviohealth.cgp.common.model.CommonPage;
- import com.poteviohealth.cgp.common.model.VaultsResponse;
- import com.poteviohealth.cgp.common.utils.CgpTool;
- import com.poteviohealth.ym.ipos.model.split.SplitWithdraw;
- import com.poteviohealth.ym.ipos.model.split.back.AccountBalanceBack;
- import com.poteviohealth.ym.ipos.model.split.back.SettlementQueryBack;
- import com.poteviohealth.ym.ipos.model.split.back.WithdrawBack;
- import com.poteviohealth.ym.ipos.model.split.detail.AccountBalanceList;
- import com.poteviohealth.ym.ipos.model.split.detail.SettlementQueryDetail;
- import com.poteviohealth.ym.ipos.model.split.dto.SplitWithdrawDto;
- import com.poteviohealth.ym.ipos.model.split.dto.WithdrawDto;
- import com.poteviohealth.ym.ipos.service.ISplitService;
- import com.poteviohealth.ym.ipos.service.ISplitWithdrawService;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import javax.annotation.Resource;
- import java.util.Date;
- import java.util.List;
- /**
- * 结算管理app
- * @author Qin
- */
- @RestController
- @RequestMapping("/ipos/app/settlementApp")
- @Api(value = "SettlementAppController", tags = "结算管理app")
- public class SettlementAppController extends BaseWebController {
- @Resource
- private ISplitService splitService;
- @Resource
- private ISplitWithdrawService splitWithdrawService;
- @Resource
- private CustomerFeignClient customerFeignClient;
- @PostMapping("/merchantQuery")
- @ApiOperation(value = "结算查询")
- @OperationLog(type = OperateType.SELECT, description ="结算查询")
- public VaultsResponse<SettlementQueryBack> merchantQuery(@RequestBody SettlementQueryDetail detail) {
- String ipos = TokenContext.cureMiniUser().getIposMerchantId();
- if(StringUtils.isEmpty(ipos)){
- return VaultsResponse.failed("账户未激活,请联系管理员");
- }
- return splitService.merchantSettlementQuery(detail);
- }
- @PostMapping("/accountBalanceQuery")
- @ApiOperation(value = "单账户查询")
- @OperationLog(type = OperateType.SELECT, description ="单账户查询")
- public VaultsResponse<AccountBalanceBack> accountBalanceQuery(@RequestBody StringParams params) {
- //TODO 暂时去掉三方支付
- /* if(StringUtils.isEmpty(params.getId())){
- String ipos = TokenContext.cureMiniUser().getIposMerchantId();
- if(StringUtils.isEmpty(ipos)){
- return VaultsResponse.failed("账户未激活,请联系管理员");
- }
- params.setId(TokenContext.cureMiniUser().getIposMerchantId());
- }
- return splitService.accountBalanceQuery(params.getId());*/
- Integer money = splitWithdrawService.getGroupLeaderWithdrawSumPrice(TokenContext.cureOperatorId(), TokenContext.cureMiniUser().getGroupLeaderId());
- AccountBalanceBack balanceBack = new AccountBalanceBack();
- List<AccountBalanceList> list = Lists.newArrayList();
- AccountBalanceList abList = new AccountBalanceList();
- abList.setAvl_amt(money);
- list.add(abList);
- balanceBack.setList(list);
- return VaultsResponse.success(balanceBack);
- }
- @PostMapping("/accountBalanceUse")
- @ApiOperation(value = "可提现金额查询")
- @OperationLog(type = OperateType.SELECT, description ="可提现金额查询")
- public VaultsResponse<Long> accountBalanceUse() {
- //TODO 暂时去掉三方支付
- Long money = splitWithdrawService.getGroupLeaderWithdrawPrice(TokenContext.cureOperatorId(), TokenContext.cureMiniUser().getGroupLeaderId());
- return VaultsResponse.success(money<0L?0L:money);
- /*if(StringUtils.isEmpty(TokenContext.cureMiniUser().getIposMerchantId())){
- return VaultsResponse.success(0L);
- }
- GroupLeaderParams groupLeaderParams = new GroupLeaderParams();
- groupLeaderParams.setOperatorId(TokenContext.cureOperatorId());
- groupLeaderParams.setGroupLeaderId(Integer.parseInt(TokenContext.cureMiniUser().getGroupLeaderId().toString()));
- VaultsResponse<GroupLeaderDTO> vaultsResponse = customerFeignClient.getGroupLeaderById(groupLeaderParams);
- GroupLeaderDTO groupLeaderDTO = vaultsResponse.getData();
- VaultsResponse<AccountBalanceBack> backVaultsResponse = splitService.accountBalanceQuery(TokenContext.cureMiniUser().getIposMerchantId());
- AccountBalanceBack back = backVaultsResponse.getData();
- try {
- Long money =Long.parseLong( back.getList().get(0).getAvl_amt().toString())-groupLeaderDTO.getRemainedAmt();
- if(money<0L){
- money = 0L;
- }
- return VaultsResponse.success(money);
- }catch (Exception e){
- e.printStackTrace();
- return VaultsResponse.success(0L);
- }*/
- }
- @PostMapping("/withdraw")
- @ApiOperation(value = "取现")
- @OperationLog(type = OperateType.SELECT, description ="取现")
- public VaultsResponse<WithdrawBack> withdraw(@RequestBody WithdrawDto dto) {
- //TODO 暂时去掉三方支付
- /* if(StringUtils.isEmpty(dto.getMerchantId())){
- String ipos = TokenContext.cureMiniUser().getIposMerchantId();
- if(StringUtils.isEmpty(ipos)){
- return VaultsResponse.failed("账户未激活,请联系管理员");
- }
- dto.setMerchantId(TokenContext.cureMiniUser().getIposMerchantId());
- }
- GroupLeaderParams groupLeaderParams = new GroupLeaderParams();
- groupLeaderParams.setOperatorId(TokenContext.cureOperatorId());
- groupLeaderParams.setGroupLeaderId(Integer.parseInt(TokenContext.cureMiniUser().getGroupLeaderId().toString()));
- VaultsResponse<GroupLeaderDTO> vaultsResponse = customerFeignClient.getGroupLeaderById(groupLeaderParams);
- GroupLeaderDTO groupLeaderDTO = vaultsResponse.getData();
- *//* if(groupLeaderDTO.getRemainedAmt()>=dto.getAmount()){
- DecimalFormat df = new DecimalFormat("#0.00");
- return VaultsResponse.failed("留存保证金为:"+new BigDecimal(df.format(groupLeaderDTO.getRemainedAmt() / 100.0))+"元,可提现金额不足");
- }*//*
- dto.setAmount(dto.getAmount());
- return splitService.withdraw(dto);*/
- Long money = splitWithdrawService.getGroupLeaderWithdrawPrice(TokenContext.cureOperatorId(), TokenContext.cureMiniUser().getGroupLeaderId());
- money = money<0L?0L:money;
- if(!dto.getAmount().equals(money)){
- return VaultsResponse.failed("可提现金额变动,请刷新");
- }
- GroupLeaderParams groupLeaderParams = new GroupLeaderParams();
- groupLeaderParams.setOperatorId(TokenContext.cureOperatorId());
- groupLeaderParams.setGroupLeaderId(Integer.parseInt(TokenContext.cureMiniUser().getGroupLeaderId().toString()));
- VaultsResponse<GroupLeaderDTO> vaultsResponse = customerFeignClient.getGroupLeaderById(groupLeaderParams);
- GroupLeaderDTO groupLeaderDTO = vaultsResponse.getData();
- SplitWithdraw splitWithdraw = new SplitWithdraw();
- splitWithdraw.setOperatorId(TokenContext.cureOperatorId());
- splitWithdraw.setWithdrawId(CgpTool.generateKey());
- splitWithdraw.setWithdrawSeq(CgpTool.generateKey().toString());
- splitWithdraw.setMerchantId("TZ"+TokenContext.cureMiniUser().getGroupLeaderId());
- splitWithdraw.setAmount(dto.getAmount());
- splitWithdraw.setTransDate(new Date());
- splitWithdraw.setTransStatus("p");
- splitWithdraw.setAcctStatus("p");
- splitWithdraw.setName(groupLeaderDTO.getName());
- splitWithdraw.setOpenid(TokenContext.cureMiniUser().getOpenId());
- splitWithdrawService.save(splitWithdraw);
- splitWithdrawService.updateOrderGroupLeaderWithdraw(TokenContext.cureOperatorId(), TokenContext.cureMiniUser().getGroupLeaderId(),splitWithdraw.getId());
- return VaultsResponse.success();
- }
- @PostMapping("/withdrawQuery")
- @ApiOperation(value = "取现查询")
- @OperationLog(type = OperateType.SELECT, description ="取现查询")
- public VaultsResponse<WithdrawBack> withdrawQuery(@RequestBody StringParams params) {
- String ipos = TokenContext.cureMiniUser().getIposMerchantId();
- if(StringUtils.isEmpty(ipos)){
- return VaultsResponse.failed("账户未激活,请联系管理员");
- }
- return splitService.withdrawQuery(params.getId());
- }
- @PostMapping("/list")
- @ApiOperation(value = "取现记录",notes = "list")
- public VaultsResponse<CommonPage<SplitWithdraw>> list(@RequestBody SplitWithdrawDto dto){
- //TODO 暂时去掉三方支付
- /*if(StringUtils.isEmpty(dto.getIposMerchantId())){
- String ipos = TokenContext.cureMiniUser().getIposMerchantId();
- if(StringUtils.isEmpty(ipos)){
- return VaultsResponse.failed("账户未激活,请联系管理员");
- }
- dto.setIposMerchantId(TokenContext.cureMiniUser().getIposMerchantId());
- }*/
- dto.setIposMerchantId("TZ"+TokenContext.cureMiniUser().getGroupLeaderId());
- return VaultsResponse.success(splitWithdrawService.pageList(dto));
- }
- }
|