package com.ruoyi.account.api.feignClient;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.account.api.dto.VinManagementQueryDTO;
|
import com.ruoyi.account.api.factory.VinManagementFallbackFactory;
|
import com.ruoyi.account.api.model.TVinManagement;
|
import com.ruoyi.common.core.constant.ServiceNameConstants;
|
import com.ruoyi.common.core.domain.R;
|
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import java.math.BigDecimal;
|
import java.util.List;
|
|
/**
|
* VIN 管理内部服务
|
*/
|
@FeignClient(contextId = "VinManagementClient", value = ServiceNameConstants.ACCOUNT_SERVICE,
|
fallbackFactory = VinManagementFallbackFactory.class)
|
public interface VinManagementClient {
|
|
@GetMapping("/t-vin-management/inner/ids-by-app-user")
|
R<List<Long>> getVinIdsByAppUserId(@RequestParam("appUserId") Long appUserId);
|
|
/**
|
* 根据VIN码查询未删除的VIN记录(订单侧VIN鉴权使用)
|
*/
|
@GetMapping("/t-vin-management/inner/get-by-vin")
|
R<TVinManagement> getVinByCode(@RequestParam("vin") String vin);
|
|
/**
|
* 根据VIN记录ID批量查询(订单侧列表/详情回填VIN码、车牌号、手机号使用)
|
*/
|
@PostMapping("/t-vin-management/inner/list-by-ids")
|
R<List<TVinManagement>> getVinByIds(@RequestBody List<Long> ids);
|
|
/**
|
* 按车队分页查询VIN码车辆(车队管理-查看车队抽屉使用,query.fleetId 必须传入)
|
*/
|
@PostMapping("/t-vin-management/inner/page-by-fleet")
|
R<Page<TVinManagement>> getVinPageByFleet(@RequestBody VinManagementQueryDTO query);
|
|
/**
|
* 按公司查询未删除的VIN码列表(公司详情-充电用户信息聚合使用)
|
*/
|
@GetMapping("/t-vin-management/inner/list-by-company")
|
R<List<TVinManagement>> listByCompany(@RequestParam("companyId") Integer companyId);
|
|
/**
|
* 按车队统计未删除的VIN车辆数(车队管理-列表"VIN码车辆数"使用)
|
*/
|
@GetMapping("/t-vin-management/inner/count-by-fleet")
|
R<Long> countByFleet(@RequestParam("fleetId") Integer fleetId);
|
|
/**
|
* 锁定VIN余额(VIN码充电申请,分配模式,按「余额-锁定金额」条件更新,余额不足返回失败;返回锁定后剩余可用金额)
|
*/
|
@PostMapping("/t-vin-management/inner/lock-balance")
|
R<BigDecimal> lockBalance(@RequestParam("vinId") Long vinId, @RequestParam("amount") BigDecimal amount);
|
|
/**
|
* 结算VIN余额(解锁锁定额并按实际消费扣减,允许扣成负数;返回扣减后余额)
|
* <p>订单号非空时按订单号幂等(同事务写消费流水),补偿重试不会重复结算</p>
|
*/
|
@PostMapping("/t-vin-management/inner/settle-balance")
|
R<BigDecimal> settleBalance(@RequestParam("vinId") Long vinId,
|
@RequestParam("lockedAmount") BigDecimal lockedAmount,
|
@RequestParam("actualAmount") BigDecimal actualAmount,
|
@RequestParam(value = "orderCode", required = false) String orderCode,
|
@RequestParam(value = "userInfo", required = false) String userInfo,
|
@RequestParam(value = "userName", required = false) String userName,
|
@RequestParam(value = "remark", required = false) String remark);
|
|
/**
|
* 释放VIN锁定金额(未产生消费时使用,返回释放后余额)
|
*/
|
@PostMapping("/t-vin-management/inner/unlock-balance")
|
R<BigDecimal> unlockBalance(@RequestParam("vinId") Long vinId, @RequestParam("amount") BigDecimal amount);
|
}
|