| | |
| | | import com.mzl.flower.base.BaseController; |
| | | import com.mzl.flower.base.R; |
| | | import com.mzl.flower.base.ReturnDataDTO; |
| | | import com.mzl.flower.entity.wallet.WalletBillRecordDO; |
| | | 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.WalletBillRecordService; |
| | | 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.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.PutMapping; |
| | | import org.springframework.web.bind.annotation.DeleteMapping; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import com.mzl.flower.entity.wallet.WalletDO; |
| | | |
| | | import javax.validation.constraints.Min; |
| | | import javax.validation.constraints.Max; |
| | | import javax.validation.constraints.Positive; |
| | | |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * @author @TaoJie |
| | |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/v2/wallet") |
| | | @Api(value = "供应商-钱包", tags = "供应商-钱包") |
| | | @Validated |
| | | public class WalletController extends BaseController { |
| | | |
| | | @Autowired |
| | | private WalletService walletService; |
| | | |
| | | @Autowired |
| | | private SupplierService supplierService; |
| | | |
| | | @Autowired |
| | | private WalletBillRecordService walletBillRecordService; |
| | | |
| | | @PostMapping("") |
| | | public ResponseEntity<ReturnDataDTO> create() { |
| | |
| | | } |
| | | |
| | | @DeleteMapping("/{id}") |
| | | public ResponseEntity<ReturnDataDTO> delete(@PathVariable @Positive(message = "{id.positive}") Integer id) { |
| | | public ResponseEntity<ReturnDataDTO> delete(@PathVariable Integer id) { |
| | | |
| | | return returnData(R.SUCCESS.getCode(), null); |
| | | |
| | | } |
| | | |
| | | @GetMapping("/{id}") |
| | | public WalletDO get(@PathVariable(value = "id") @Positive(message = "{id.positive}") Integer id) { |
| | | public ResponseEntity<ReturnDataDTO> get(@PathVariable(value = "id") @Positive(message = "{id.positive}") Integer id) { |
| | | return null; |
| | | } |
| | | |
| | | @GetMapping("/supplier") |
| | | @ApiOperation(value = "获取供应商钱包", notes = "获取供应商钱包") |
| | | public ResponseEntity<ReturnDataDTO> 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); |
| | | // 获取已经提现和已结算的钱 |
| | | BigDecimal historyAmount = walletBillRecordService.getHistoryAmount(walletDO.getId(), walletDO.getSupplierId()); |
| | | //已提现 |
| | | walletDO.setWithdrawnAmount(walletDO.getWithdrawnAmount().add(historyAmount)); |
| | | //已结算 |
| | | walletDO.setSettledAmount(walletDO.getSettledAmount().add(historyAmount)); |
| | | walletDO.setSettlingAmount(waittingSettlementAmount); |
| | | // 总交易额度 |
| | | walletDO.setTotalTransactionAmount(walletService.getSupplierTotalTransactionAmount(walletDO)); |
| | | // 总扣款数量 |
| | | walletDO.setTotalDeduction(walletService.getSupplierDeductAmount(walletDO)); |
| | | } |
| | | |
| | | return returnData(R.SUCCESS.getCode(), walletDO); |
| | | } |
| | | |
| | | @GetMapping("/page") |
| | | public ResponseEntity<ReturnDataDTO<Page<WalletDO>>> page( |
| | | @RequestParam(name = "page", required = false, defaultValue = "0") |
| | | @Min(value = 0, message = "{page.number.min}") Integer page, |
| | | @RequestParam(name = "count", required = false, defaultValue = "10") |
| | | @Min(value = 1, message = "{page.count.min}") |
| | | @Max(value = 30, message = "{page.count.max}") Integer count |
| | | public ResponseEntity<ReturnDataDTO<Page<WalletDO>>> page(@RequestBody QueryWalletDTO dto |
| | | ) { |
| | | |
| | | return null; |
| | | } |
| | | |