package com.mzl.flower.web.v2.wallet; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.base.BaseController; import com.mzl.flower.base.R; import com.mzl.flower.base.ReturnDataDTO; import com.mzl.flower.config.exception.ValidationException; import com.mzl.flower.dto.request.wallet.QueryWalletDTO; import com.mzl.flower.dto.response.supplier.SupplierDTO; import com.mzl.flower.service.supplier.SupplierService; import com.mzl.flower.service.wallet.WalletService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.mzl.flower.entity.wallet.WalletDO; import javax.validation.constraints.Positive; import java.math.BigDecimal; /** * @author @TaoJie * @since 2024-10-22 */ @RestController @RequestMapping("/v2/wallet") @Api(value = "供应商-钱包", tags = "供应商-钱包") @Validated public class WalletController extends BaseController { @Autowired private WalletService walletService; @Autowired private SupplierService supplierService; @PostMapping("") public ResponseEntity create() { return returnData(R.SUCCESS.getCode(), null); } @PutMapping("/{id}") public ResponseEntity update(@PathVariable @Positive(message = "{id.positive}") Integer id) { return returnData(R.SUCCESS.getCode(), null); } @DeleteMapping("/{id}") public ResponseEntity delete(@PathVariable Integer id) { return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/{id}") public ResponseEntity get(@PathVariable(value = "id") @Positive(message = "{id.positive}") Integer id) { return null; } @GetMapping("/supplier") @ApiOperation(value = "获取供应商钱包", notes = "获取供应商钱包") public ResponseEntity getWalletBySupplierId() { // 判断供应商是否存在 final SupplierDTO currentSupplier = supplierService.getCurrentSupplier(); if(null==currentSupplier){ throw new ValidationException("供应商不能为空"); } final WalletDO walletDO = walletService.getCurrentSupplier(); if(null!=walletDO){ // 根据当前供应商获取待结算的钱 BigDecimal waittingSettlementAmount = walletService.getWaittingSettlementAmount(walletDO); walletDO.setSettlingAmount(waittingSettlementAmount); // 总交易额度 walletDO.setTotalTransactionAmount(walletService.getSupplierTotalTransactionAmount(walletDO)); // 总扣款数量 walletDO.setTotalDeduction(walletService.getSupplierDeductAmount(walletDO)); } return returnData(R.SUCCESS.getCode(), walletDO); } @GetMapping("/page") public ResponseEntity>> page(@RequestBody QueryWalletDTO dto ) { return null; } }