| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.ruoyi.account.api.dto.CompanyAllocateRecordQueryDTO; |
| | | import com.ruoyi.account.api.model.TCompanyAllocateRecord; |
| | | import com.ruoyi.account.api.vo.CompanyAllocateSummaryVO; |
| | | import com.ruoyi.account.service.TCompanyAllocateRecordService; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.web.controller.BaseController; |
| | |
| | | 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.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | @Api(tags = "公司额度分配记录") |
| | | @RestController |
| | |
| | | public R<IPage<TCompanyAllocateRecord>> page(@RequestBody CompanyAllocateRecordQueryDTO query) { |
| | | return R.ok(companyAllocateRecordService.selectRecordPage(query)); |
| | | } |
| | | |
| | | /** |
| | | * 内部接口:写入消费流水(VIN码充电结算调用,按订单号+变更类型幂等) |
| | | */ |
| | | @ApiOperation(value = "内部-写入消费流水", tags = {"内部调用"}) |
| | | @PostMapping("/inner/record-consume") |
| | | public R<Boolean> recordConsume(@RequestParam("companyId") Integer companyId, |
| | | @RequestParam("userType") Integer userType, |
| | | @RequestParam("userInfo") String userInfo, |
| | | @RequestParam(value = "userName", required = false) String userName, |
| | | @RequestParam("beforeBalance") BigDecimal beforeBalance, |
| | | @RequestParam("amount") BigDecimal amount, |
| | | @RequestParam("chargingOrderCode") String chargingOrderCode, |
| | | @RequestParam(value = "remark", required = false) String remark) { |
| | | try { |
| | | return R.ok(companyAllocateRecordService.recordConsume(companyId, userType, userInfo, userName, |
| | | beforeBalance, amount, chargingOrderCode, remark)); |
| | | } catch (RuntimeException ex) { |
| | | logger.error("写入消费流水失败:orderCode={}", chargingOrderCode, ex); |
| | | return R.fail("写入消费流水失败:" + ex.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 内部接口:批量查询已落消费流水的订单号集合(结算幂等判定与订单侧兜底扫描使用) |
| | | */ |
| | | @ApiOperation(value = "内部-查询已结算订单号集合", tags = {"内部调用"}) |
| | | @PostMapping("/inner/list-consumed-order-codes") |
| | | public R<List<String>> listConsumedOrderCodes(@RequestBody List<String> orderCodes) { |
| | | try { |
| | | return R.ok(companyAllocateRecordService.listConsumedOrderCodes(orderCodes)); |
| | | } catch (RuntimeException ex) { |
| | | logger.error("查询消费流水订单号失败", ex); |
| | | return R.fail("查询消费流水订单号失败:" + ex.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 内部接口:统计公司名下三类主体可用余额与充电锁定金额合计(账户模式切换前校验使用,只读) |
| | | */ |
| | | @ApiOperation(value = "内部-统计公司分配余额", tags = {"内部调用"}) |
| | | @PostMapping("/inner/sum-allocated-balance") |
| | | public R<CompanyAllocateSummaryVO> sumAllocatedBalance(@RequestParam("companyId") Integer companyId) { |
| | | try { |
| | | return R.ok(companyAllocateRecordService.sumAllocatedBalance(companyId)); |
| | | } catch (RuntimeException ex) { |
| | | logger.error("统计公司分配余额失败:companyId={}", companyId, ex); |
| | | return R.fail("统计公司分配余额失败:" + ex.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 内部接口:回收公司名下三类主体全部分配余额(账户模式切换:分配→共享,幂等) |
| | | */ |
| | | @ApiOperation(value = "内部-回收公司分配余额", tags = {"内部调用"}) |
| | | @PostMapping("/inner/recycle-allocated-balance") |
| | | public R<BigDecimal> recycleAllocatedBalance(@RequestParam("companyId") Integer companyId, |
| | | @RequestParam("operatorName") String operatorName, |
| | | @RequestParam(value = "companyName", required = false) String companyName, |
| | | @RequestParam("companyBalanceBefore") BigDecimal companyBalanceBefore) { |
| | | try { |
| | | return R.ok(companyAllocateRecordService.recycleAllocatedBalance(companyId, operatorName, companyName, |
| | | companyBalanceBefore)); |
| | | } catch (RuntimeException ex) { |
| | | logger.error("回收公司分配余额失败:companyId={}", companyId, ex); |
| | | return R.fail("回收公司分配余额失败:" + ex.getMessage()); |
| | | } |
| | | } |
| | | } |