| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- package com.poteviohealth.ym.ipos.controller.app;
- 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.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.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.math.BigDecimal;
- import java.text.DecimalFormat;
- /**
- * 结算管理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) {
- return splitService.merchantSettlementQuery(detail);
- }
- @PostMapping("/accountBalanceQuery")
- @ApiOperation(value = "单账户查询")
- @OperationLog(type = OperateType.SELECT, description ="单账户查询")
- public VaultsResponse<AccountBalanceBack> accountBalanceQuery(@RequestBody StringParams params) {
- if(StringUtils.isEmpty(params.getId())){
- params.setId(TokenContext.cureMiniUser().getIposMerchantId());
- }
- return splitService.accountBalanceQuery(params.getId());
- }
- @PostMapping("/withdraw")
- @ApiOperation(value = "取现")
- @OperationLog(type = OperateType.SELECT, description ="取现")
- public VaultsResponse<WithdrawBack> withdraw(@RequestBody WithdrawDto dto) {
- 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))+"元,可提现金额不足");
- }
- if(StringUtils.isEmpty(dto.getMerchantId())){
- dto.setMerchantId(TokenContext.cureMiniUser().getIposMerchantId());
- }
- return splitService.withdraw(dto);
- }
- @PostMapping("/withdrawQuery")
- @ApiOperation(value = "取现查询")
- @OperationLog(type = OperateType.SELECT, description ="取现查询")
- public VaultsResponse<WithdrawBack> withdrawQuery(@RequestBody StringParams params) {
- return splitService.withdrawQuery(params.getId());
- }
- @PostMapping("/list")
- @ApiOperation(value = "取现记录",notes = "list")
- public VaultsResponse<CommonPage<SplitWithdraw>> list(@RequestBody SplitWithdrawDto dto){
- return VaultsResponse.success(splitWithdrawService.pageList(dto));
- }
- }
|