package com.ruoyi.other.api.feignClient;
|
|
import com.ruoyi.common.core.constant.ServiceNameConstants;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.other.api.domain.TFleet;
|
import com.ruoyi.other.api.domain.TGroupCompany;
|
import com.ruoyi.other.api.factory.GroupCompanyFallbackFactory;
|
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.web.bind.annotation.PathVariable;
|
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码车辆所属公司、车队及初始分配额度扣减使用)
|
*
|
* @author mxcd
|
*/
|
@FeignClient(contextId = "GroupCompanyClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = GroupCompanyFallbackFactory.class)
|
public interface GroupCompanyClient {
|
|
/**
|
* 查询公司详情(含账户模式、可用余额)
|
*/
|
@PostMapping("/group-company/remote/get/{id}")
|
R<TGroupCompany> getCompanyById(@PathVariable("id") Integer id);
|
|
/**
|
* 按ID批量查询公司(VIN 码充电订单列表回填公司名称使用)
|
*/
|
@PostMapping("/group-company/remote/list-by-ids")
|
R<List<TGroupCompany>> listCompaniesByIds(@RequestBody List<Integer> ids);
|
|
/**
|
* 扣减公司可用余额(条件更新,余额不足返回失败,返回扣减后余额)
|
*/
|
@PostMapping("/group-company/remote/deduct-balance")
|
R<BigDecimal> deductBalance(@RequestParam("companyId") Integer companyId, @RequestParam("amount") BigDecimal amount);
|
|
/**
|
* 退还公司可用余额(返回退还后余额)
|
*/
|
@PostMapping("/group-company/remote/refund-balance")
|
R<BigDecimal> refundBalance(@RequestParam("companyId") Integer companyId, @RequestParam("amount") BigDecimal amount);
|
|
/**
|
* 锁定公司金额(VIN码充电申请,按「可用余额-锁定金额」条件更新,余额不足返回失败;返回锁定后剩余可用金额)
|
*/
|
@PostMapping("/group-company/remote/lock-balance")
|
R<BigDecimal> lockBalance(@RequestParam("companyId") Integer companyId, @RequestParam("amount") BigDecimal amount);
|
|
/**
|
* 结算公司金额(解锁锁定额并按实际消费扣减,允许扣成负数;返回扣减后余额)
|
* <p>订单号非空时按订单号幂等(账户侧消费流水作为幂等键),补偿重试不会重复结算</p>
|
*/
|
@PostMapping("/group-company/remote/settle-balance")
|
R<BigDecimal> settleBalance(@RequestParam("companyId") Integer companyId,
|
@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);
|
|
/**
|
* 释放公司锁定金额(未产生消费时使用,返回释放后余额)
|
*/
|
@PostMapping("/group-company/remote/unlock-balance")
|
R<BigDecimal> unlockBalance(@RequestParam("companyId") Integer companyId, @RequestParam("amount") BigDecimal amount);
|
|
/**
|
* 查询车队详情
|
*/
|
@PostMapping("/fleet/remote/get/{id}")
|
R<TFleet> getFleetById(@PathVariable("id") Integer id);
|
|
/**
|
* 按ID批量查询车队(VIN列表回填车队名称使用)
|
*/
|
@PostMapping("/fleet/remote/list-by-ids")
|
R<List<TFleet>> listFleetsByIds(@RequestBody List<Integer> ids);
|
}
|