乱码注释调整

This commit is contained in:
liuminghui
2026-10-27 10:17:53 +08:00
parent f80af4a2f6
commit be0b067516
132 changed files with 440 additions and 440 deletions
@@ -16,8 +16,8 @@ import com.bms.price.search.IBillSearchStore;
import com.bms.web.controller.price.BillingController; import com.bms.web.controller.price.BillingController;
/** /**
* Persist quote/bill API failures to Elasticsearch (validation, JSON parse, business, unexpected). * 把报价/计费接口失败写入 Elasticsearch(校验、JSON 解析、业务异常、未预期异常)。
* Uses {@link EsBizLogSupport#saveApiFail} so service/controller can also call without duplicate docs. * 通过 {@link EsBizLogSupport#saveApiFail} 写入,service/controller 也可调用且不会重复落文档。
*/ */
@Order(0) @Order(0)
@RestControllerAdvice(assignableTypes = { TmsPriceController.class, BillingController.class }) @RestControllerAdvice(assignableTypes = { TmsPriceController.class, BillingController.class })
@@ -29,10 +29,10 @@ import com.bms.price.service.IPrcOrderBillService;
import com.bms.price.service.ITmsPriceQuoteService; import com.bms.price.service.ITmsPriceQuoteService;
/** /**
* TMS open API: freight quote. * TMS 开放接口:运费试算。
* *
* POST /api/tms/price/quote * POST /api/tms/price/quote
* Header X-Api-Code must equal bms.tms.api-code * 请求头 X-Api-Code 必须等于 bms.tms.api-code
* *
* @author bms * @author bms
*/ */
@@ -24,7 +24,7 @@ import com.bms.price.enums.BillTaskSuccessStatus;
import com.bms.price.service.IPrcBillingTaskService; import com.bms.price.service.IPrcBillingTaskService;
/** /**
* Monitor: failed / waiting prc_billing_task list and manual resync. * 监控:失败/等待中的 prc_billing_task 列表,以及手工重同步。
*/ */
@RestController @RestController
@RequestMapping("/monitor/billingTask") @RequestMapping("/monitor/billingTask")
@@ -17,7 +17,7 @@ import com.bms.price.search.BillSearchPage;
import com.bms.price.search.IBillSearchStore; import com.bms.price.search.IBillSearchStore;
/** /**
* Generic Elasticsearch business-log viewer. * 通用 Elasticsearch 业务日志查看。
*/ */
@RestController @RestController
@RequestMapping("/monitor/eslog") @RequestMapping("/monitor/eslog")
@@ -39,7 +39,7 @@ public class EsLogController extends BaseController
BillSearchPage page = billSearchStore.search(logType, bizId, status, pageNum, pageSize); BillSearchPage page = billSearchStore.search(logType, bizId, status, pageNum, pageSize);
TableDataInfo rsp = new TableDataInfo(); TableDataInfo rsp = new TableDataInfo();
rsp.setCode(HttpStatus.SUCCESS); rsp.setCode(HttpStatus.SUCCESS);
rsp.setMsg("\u67e5\u8be2\u6210\u529f"); rsp.setMsg("查询成功");
rsp.setRows(page.getRows()); rsp.setRows(page.getRows());
rsp.setTotal(page.getTotal()); rsp.setTotal(page.getTotal());
return rsp; return rsp;
@@ -18,7 +18,7 @@ import com.bms.price.search.EsLogType;
import com.bms.price.search.IBillSearchStore; import com.bms.price.search.IBillSearchStore;
/** /**
* Price before-after change log (sales / product / redline) from ES. * 来自 ES 的价格变更前后日志(销售价 / 产品价 / 红线价)。
*/ */
@RestController @RestController
@RequestMapping("/monitor/priceLog") @RequestMapping("/monitor/priceLog")
@@ -39,7 +39,7 @@ public class PriceLogController extends BaseController
BillSearchPage page = billSearchStore.search(EsLogType.PRICE_CHANGE, bizId, status, pageNum, pageSize); BillSearchPage page = billSearchStore.search(EsLogType.PRICE_CHANGE, bizId, status, pageNum, pageSize);
TableDataInfo rsp = new TableDataInfo(); TableDataInfo rsp = new TableDataInfo();
rsp.setCode(HttpStatus.SUCCESS); rsp.setCode(HttpStatus.SUCCESS);
rsp.setMsg("\u67e5\u8be2\u6210\u529f"); rsp.setMsg("查询成功");
rsp.setRows(page.getRows()); rsp.setRows(page.getRows());
rsp.setTotal(page.getTotal()); rsp.setTotal(page.getTotal());
return rsp; return rsp;
@@ -134,7 +134,7 @@ public class TabOrderMonitorController extends BaseController
{ {
TableDataInfo rsp = new TableDataInfo(); TableDataInfo rsp = new TableDataInfo();
rsp.setCode(HttpStatus.SUCCESS); rsp.setCode(HttpStatus.SUCCESS);
rsp.setMsg("\u67e5\u8be2\u6210\u529f"); rsp.setMsg("查询成功");
if (!hasListFilters(query)) if (!hasListFilters(query))
{ {
rsp.setRows(Collections.emptyList()); rsp.setRows(Collections.emptyList());
@@ -294,7 +294,7 @@ public class TabOrderMonitorController extends BaseController
BillSearchPage page = billSearchStore.search(EsLogType.ORDER_SOURCE_SYNC, bizId, status, pageNum, pageSize); BillSearchPage page = billSearchStore.search(EsLogType.ORDER_SOURCE_SYNC, bizId, status, pageNum, pageSize);
TableDataInfo rsp = new TableDataInfo(); TableDataInfo rsp = new TableDataInfo();
rsp.setCode(HttpStatus.SUCCESS); rsp.setCode(HttpStatus.SUCCESS);
rsp.setMsg("\u67e5\u8be2\u6210\u529f"); rsp.setMsg("查询成功");
rsp.setRows(page.getRows()); rsp.setRows(page.getRows());
rsp.setTotal(page.getTotal()); rsp.setTotal(page.getTotal());
return rsp; return rsp;
@@ -61,7 +61,7 @@ import com.bms.price.service.OrderBillProductCheckService;
import com.bms.price.service.support.OrderBillExportSupport; import com.bms.price.service.support.OrderBillExportSupport;
/** /**
* Billing center: order quote trial (authenticated). * 计费中心:订单报价试算(需登录)。
* *
* @author bms * @author bms
*/ */
@@ -154,7 +154,7 @@ public class BillingController extends BaseController
* Requires at least one meaningful filter. Poll task then download. * Requires at least one meaningful filter. Poll task then download.
*/ */
@PreAuthorize("@ss.hasPermi('price:billing:export')") @PreAuthorize("@ss.hasPermi('price:billing:export')")
@Log(title = "\u8ba1\u8d39\u5217\u8868", businessType = BusinessType.EXPORT) @Log(title = "计费列表", businessType = BusinessType.EXPORT)
@PostMapping("/bill/export") @PostMapping("/bill/export")
public AjaxResult exportBillList(@RequestBody(required = false) PrcOrderBill query) public AjaxResult exportBillList(@RequestBody(required = false) PrcOrderBill query)
{ {
@@ -230,7 +230,7 @@ public class BillingController extends BaseController
* Requires at least one meaningful filter (default orderStatuses alone is not enough). * Requires at least one meaningful filter (default orderStatuses alone is not enough).
*/ */
@PreAuthorize("@ss.hasPermi('price:orderBill:export')") @PreAuthorize("@ss.hasPermi('price:orderBill:export')")
@Log(title = "\u8ba2\u5355\u5217\u8868", businessType = BusinessType.EXPORT) @Log(title = "订单列表", businessType = BusinessType.EXPORT)
@PostMapping("/orderBill/export") @PostMapping("/orderBill/export")
public AjaxResult exportOrderBillList(@RequestBody(required = false) PrcOrderBill query) public AjaxResult exportOrderBillList(@RequestBody(required = false) PrcOrderBill query)
{ {
@@ -247,7 +247,7 @@ public class PriceSetController extends BaseController
} }
@PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')") @PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')")
@Log(title = "\u5957\u9910\u660e\u7ec6", businessType = BusinessType.UPDATE) @Log(title = "套餐明细", businessType = BusinessType.UPDATE)
@PutMapping("/detail") @PutMapping("/detail")
public AjaxResult editDetail(@RequestBody PrcPriceSetDetail detail) public AjaxResult editDetail(@RequestBody PrcPriceSetDetail detail)
{ {
@@ -255,7 +255,7 @@ public class PriceSetController extends BaseController
} }
@PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')") @PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')")
@Log(title = "\u5957\u9910\u4ef7\u683c\u5bfc\u5165", businessType = BusinessType.IMPORT) @Log(title = "套餐价格导入", businessType = BusinessType.IMPORT)
@PostMapping("/detail/importPrices") @PostMapping("/detail/importPrices")
public AjaxResult importDetailPrices( public AjaxResult importDetailPrices(
@RequestParam(value = "files", required = false) MultipartFile[] files, @RequestParam(value = "files", required = false) MultipartFile[] files,
@@ -319,7 +319,7 @@ public class PriceSetController extends BaseController
* Async pull product library into version details. Returns taskId; poll /save/task/{taskId}. * Async pull product library into version details. Returns taskId; poll /save/task/{taskId}.
*/ */
@PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')") @PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')")
@Log(title = "\u5957\u9910\u62c9\u53d6\u4ea7\u54c1", businessType = BusinessType.IMPORT) @Log(title = "套餐拉取产品", businessType = BusinessType.IMPORT)
@PostMapping("/detail/pullFromLibrary") @PostMapping("/detail/pullFromLibrary")
public AjaxResult pullFromLibrary(@RequestParam("priceSetId") Long priceSetId, public AjaxResult pullFromLibrary(@RequestParam("priceSetId") Long priceSetId,
@RequestParam(value = "psvId", required = false) Long psvId, @RequestParam(value = "psvId", required = false) Long psvId,
@@ -335,7 +335,7 @@ public class PriceSetController extends BaseController
* Async batch write of detail surcharge snapshots. Returns taskId; poll /save/task/{taskId}. * Async batch write of detail surcharge snapshots. Returns taskId; poll /save/task/{taskId}.
*/ */
@PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')") @PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')")
@Log(title = "\u5957\u9910\u9644\u52a0\u8d39", businessType = BusinessType.UPDATE) @Log(title = "套餐附加费", businessType = BusinessType.UPDATE)
@PostMapping("/detail/surcharge/async") @PostMapping("/detail/surcharge/async")
public AjaxResult batchSurchargeAsync(@RequestBody List<PrcPriceSetDetail> details) public AjaxResult batchSurchargeAsync(@RequestBody List<PrcPriceSetDetail> details)
{ {
@@ -346,7 +346,7 @@ public class PriceSetController extends BaseController
} }
@PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')") @PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')")
@Log(title = "\u5957\u9910\u660e\u7ec6", businessType = BusinessType.DELETE) @Log(title = "套餐明细", businessType = BusinessType.DELETE)
@DeleteMapping("/detail/{psdIds}") @DeleteMapping("/detail/{psdIds}")
public AjaxResult removeDetail(@PathVariable Long[] psdIds) public AjaxResult removeDetail(@PathVariable Long[] psdIds)
{ {
@@ -36,7 +36,7 @@ import com.bms.price.service.IPrcPriceExcelFileService;
import com.bms.price.service.support.CatalogVersionSupport; import com.bms.price.service.support.CatalogVersionSupport;
/** /**
* Product list (async Excel import) * 产品列表(异步 Excel 导入)
* *
* @author bms * @author bms
*/ */
@@ -185,7 +185,7 @@ public class ProductController extends BaseController
} }
@PreAuthorize("@ss.hasPermi('price:product:edit')") @PreAuthorize("@ss.hasPermi('price:product:edit')")
@Log(title = "\u4ea7\u54c1\u56fd\u5bb6\u660e\u7ec6", businessType = BusinessType.UPDATE) @Log(title = "产品国家明细", businessType = BusinessType.UPDATE)
@PutMapping("/country") @PutMapping("/country")
public AjaxResult editCountry(@RequestBody BmsProductCountry country) public AjaxResult editCountry(@RequestBody BmsProductCountry country)
{ {
@@ -193,7 +193,7 @@ public class ProductController extends BaseController
} }
@PreAuthorize("@ss.hasPermi('price:product:remove')") @PreAuthorize("@ss.hasPermi('price:product:remove')")
@Log(title = "\u4ea7\u54c1\u5217\u8868", businessType = BusinessType.DELETE) @Log(title = "产品列表", businessType = BusinessType.DELETE)
@DeleteMapping("/{productIds}") @DeleteMapping("/{productIds}")
public AjaxResult remove(@PathVariable Long[] productIds) public AjaxResult remove(@PathVariable Long[] productIds)
{ {
@@ -204,7 +204,7 @@ public class ProductController extends BaseController
* Async import Weishi B2C workbook. Returns taskId; poll /import/task/{taskId}. * Async import Weishi B2C workbook. Returns taskId; poll /import/task/{taskId}.
* effectiveDate is required: written to product / product_country; previous open rows expire at this date. * effectiveDate is required: written to product / product_country; previous open rows expire at this date.
*/ */
@Log(title = "\u4ea7\u54c1\u5217\u8868", businessType = BusinessType.IMPORT) @Log(title = "产品列表", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('price:product:import')") @PreAuthorize("@ss.hasPermi('price:product:import')")
@PostMapping("/importData") @PostMapping("/importData")
public AjaxResult importData(MultipartFile file, boolean updateSupport, public AjaxResult importData(MultipartFile file, boolean updateSupport,
@@ -220,7 +220,7 @@ public class ProductController extends BaseController
* Async single-country cost-sheet import. Returns taskId; poll /import/task/{taskId}. * Async single-country cost-sheet import. Returns taskId; poll /import/task/{taskId}.
* effectiveDate is required: written to product / product_country; previous open rows expire at this date. * effectiveDate is required: written to product / product_country; previous open rows expire at this date.
*/ */
@Log(title = "\u4ea7\u54c1\u5217\u8868", businessType = BusinessType.IMPORT) @Log(title = "产品列表", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('price:product:import')") @PreAuthorize("@ss.hasPermi('price:product:import')")
@PostMapping("/importCountryData") @PostMapping("/importCountryData")
public AjaxResult importCountryData(MultipartFile file, String countryCode, public AjaxResult importCountryData(MultipartFile file, String countryCode,
@@ -36,7 +36,7 @@ import com.bms.price.service.IPrcPriceExcelFileService;
import com.bms.price.service.support.CatalogVersionSupport; import com.bms.price.service.support.CatalogVersionSupport;
/** /**
* redline product list (async Excel import) * 红线价产品列表(异步 Excel 导入)
* *
* @author bms * @author bms
*/ */
@@ -185,7 +185,7 @@ public class RedlineProductController extends BaseController
} }
@PreAuthorize("@ss.hasPermi('price:redline:edit')") @PreAuthorize("@ss.hasPermi('price:redline:edit')")
@Log(title = "\u4ea7\u54c1\u56fd\u5bb6\u660e\u7ec6", businessType = BusinessType.UPDATE) @Log(title = "产品国家明细", businessType = BusinessType.UPDATE)
@PutMapping("/country") @PutMapping("/country")
public AjaxResult editCountry(@RequestBody BmsRedlineProductCountry country) public AjaxResult editCountry(@RequestBody BmsRedlineProductCountry country)
{ {
@@ -193,7 +193,7 @@ public class RedlineProductController extends BaseController
} }
@PreAuthorize("@ss.hasPermi('price:redline:remove')") @PreAuthorize("@ss.hasPermi('price:redline:remove')")
@Log(title = "\u4ea7\u54c1\u5217\u8868", businessType = BusinessType.DELETE) @Log(title = "产品列表", businessType = BusinessType.DELETE)
@DeleteMapping("/{productIds}") @DeleteMapping("/{productIds}")
public AjaxResult remove(@PathVariable Long[] productIds) public AjaxResult remove(@PathVariable Long[] productIds)
{ {
@@ -204,7 +204,7 @@ public class RedlineProductController extends BaseController
* Async import Weishi B2C workbook. Returns taskId; poll /import/task/{taskId}. * Async import Weishi B2C workbook. Returns taskId; poll /import/task/{taskId}.
* effectiveDate is required: written to product / product_country; previous open rows expire at this date. * effectiveDate is required: written to product / product_country; previous open rows expire at this date.
*/ */
@Log(title = "\u4ea7\u54c1\u5217\u8868", businessType = BusinessType.IMPORT) @Log(title = "产品列表", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('price:redline:import')") @PreAuthorize("@ss.hasPermi('price:redline:import')")
@PostMapping("/importData") @PostMapping("/importData")
public AjaxResult importData(MultipartFile file, boolean updateSupport, public AjaxResult importData(MultipartFile file, boolean updateSupport,
@@ -220,7 +220,7 @@ public class RedlineProductController extends BaseController
* Async single-country cost-sheet import. Returns taskId; poll /import/task/{taskId}. * Async single-country cost-sheet import. Returns taskId; poll /import/task/{taskId}.
* effectiveDate is required: written to product / product_country; previous open rows expire at this date. * effectiveDate is required: written to product / product_country; previous open rows expire at this date.
*/ */
@Log(title = "\u4ea7\u54c1\u5217\u8868", businessType = BusinessType.IMPORT) @Log(title = "产品列表", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('price:redline:import')") @PreAuthorize("@ss.hasPermi('price:redline:import')")
@PostMapping("/importCountryData") @PostMapping("/importCountryData")
public AjaxResult importCountryData(MultipartFile file, String countryCode, public AjaxResult importCountryData(MultipartFile file, String countryCode,
@@ -24,7 +24,7 @@ import com.bms.price.domain.PrcZoneRegion;
import com.bms.price.service.IPrcZoneService; import com.bms.price.service.IPrcZoneService;
/** /**
* Zone management: region -> zone -> postcode detail * 分区管理:国家(region) -> 分区 -> 邮编明细
*/ */
@RestController @RestController
@RequestMapping("/price/zone") @RequestMapping("/price/zone")
@@ -23,7 +23,7 @@ import com.bms.common.enums.BusinessType;
import com.bms.system.domain.SysFileTemplate; import com.bms.system.domain.SysFileTemplate;
import com.bms.system.service.ISysFileTemplateService; import com.bms.system.service.ISysFileTemplateService;
/** System file template CRUD + OSS upload/download. */ /** 系统文件模板的增删改查,以及 OSS 上传/下载。 */
@RestController @RestController
@RequestMapping("/system/fileTemplate") @RequestMapping("/system/fileTemplate")
public class SysFileTemplateController extends BaseController public class SysFileTemplateController extends BaseController
@@ -76,16 +76,16 @@ price.set.detail.registration.empty=固定价明细必须填写挂号费
price.set.detail.zone.empty=固定价明细必须选择分区 price.set.detail.zone.empty=固定价明细必须选择分区
price.set.detail.roundMode.invalid=取值方式仅支持 UP / DOWN / HALF_UP price.set.detail.roundMode.invalid=取值方式仅支持 UP / DOWN / HALF_UP
price.set.detail.freight.belowBase=套餐运费不能低于导入基准价 {0} price.set.detail.freight.belowBase=套餐运费不能低于导入基准价 {0}
price.set.import.fixedOnly=\u4ec5\u56fa\u5b9a\u4ef7\u5957\u9910\u652f\u6301\u5bfc\u5165\u4fee\u6539\u4ef7\u683c price.set.import.fixedOnly=仅固定价套餐支持导入修改价格
price.set.import.noDetails=\u5957\u9910\u6682\u65e0\u4ef7\u683c\u660e\u7ec6\uff0c\u8bf7\u5148\u62c9\u53d6\u4ea7\u54c1\u4ef7 price.set.import.noDetails=套餐暂无价格明细,请先拉取产品价
price.set.import.noPriceRows=\u4ef7\u8868\u672a\u89e3\u6790\u5230\u6709\u6548\u4ef7\u683c\u884c price.set.import.noPriceRows=价表未解析到有效价格行
price.set.import.success=\u5bfc\u5165\u5b8c\u6210\uff1a\u66f4\u65b0 {0} \u6761\uff0c\u672a\u5339\u914d {1} \u6761\uff0c\u5957\u9910\u65e0\u5bf9\u5e94\u4ea7\u54c1 {2} \u4e2a price.set.import.success=导入完成:更新 {0} 条,未匹配 {1} 条,套餐无对应产品 {2} 个
price.set.import.noDetailWritten=\u672a\u5199\u5165\u4efb\u4f55\u5957\u9910\u660e\u7ec6\uff08\u4ef7\u8868\u65e0\u53ef\u7528\u91cd\u91cf\u6bb5\u6216\u5747\u4e3a\u7a7a\u8fd0\u8d39/\u6302\u53f7\u8d39\u4e14\u65e0\u53ef\u66f4\u65b0\u884c\uff09 price.set.import.noDetailWritten=未写入任何套餐明细(价表无可用重量段或均为空运费/挂号费且无可更新行)
price.set.import.updateSuccess=\u5bfc\u5165\u4fee\u6539\u5b8c\u6210\uff1a\u66f4\u65b0 {0} \u6761\uff0c\u672a\u5339\u914d {1} \u6761\uff0c\u8df3\u8fc7\u7a7a\u8fd0\u8d39/\u6302\u53f7\u8d39 {2} \u6761 price.set.import.updateSuccess=导入修改完成:更新 {0} 条,未匹配 {1} 条,跳过空运费/挂号费 {2} 条
price.set.import.upsertSuccess=\u5bfc\u5165\u5b8c\u6210\uff1a\u65b0\u589e {0} \u6761\uff0c\u66f4\u65b0 {1} \u6761\uff0c\u8df3\u8fc7\u7a7a\u8fd0\u8d39/\u6302\u53f7\u8d39 {2} \u6761 price.set.import.upsertSuccess=导入完成:新增 {0} 条,更新 {1} 条,跳过空运费/挂号费 {2} 条
price.set.import.weightBandMismatch=\u5bfc\u5165\u5931\u8d25\uff1a\u4ee5\u4e0b\u4ea7\u54c1+\u56fd\u5bb6\u7684\u91cd\u91cf\u6bb5\u4e0e\u5957\u9910\u4e0d\u4e00\u81f4\uff1a{0} price.set.import.weightBandMismatch=导入失败:以下产品+国家的重量段与套餐不一致:{0}
price.set.import.weightBandMismatch.item=\u4ea7\u54c1 {0} / \u56fd\u5bb6 {1}\uff08\u5957\u9910\u91cd\u91cf\u6bb5\uff1a{2}\uff1bExcel\uff1a{3}\uff09 price.set.import.weightBandMismatch.item=产品 {0} / 国家 {1}(套餐重量段:{2};Excel:{3})
price.set.pull.success=\u62c9\u53d6\u5b8c\u6210\uff1a\u5df2\u5199\u5165 {0} \u6761\u5957\u9910\u660e\u7ec6 price.set.pull.success=拉取完成:已写入 {0} 条套餐明细
price.set.customer.notExists=客户绑定不存在 price.set.customer.notExists=客户绑定不存在
price.set.customer.unbindAudit=审核中的套餐不允许解绑客户 price.set.customer.unbindAudit=审核中的套餐不允许解绑客户
price.set.customer.customerId.empty=客户ID不能为空 price.set.customer.customerId.empty=客户ID不能为空
@@ -4,7 +4,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
* TMS open API properties. * TMS 开放接口配置。
* *
* @author bms * @author bms
*/ */
@@ -4,7 +4,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
* Billing task MQ + Oracle upstream order settings. * 计费任务 MQ 与 Oracle 上游订单配置。
*/ */
@Component @Component
@ConfigurationProperties(prefix = "bms.billing") @ConfigurationProperties(prefix = "bms.billing")
@@ -2,7 +2,7 @@ package com.bms.price.domain;
import java.io.Serializable; import java.io.Serializable;
/** Async batch add income fee progress (Redis). */ /** 异步批量增加应收费用的进度(Redis)。 */
public class BatchAddIncomeBillFeeTask implements Serializable public class BatchAddIncomeBillFeeTask implements Serializable
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -7,7 +7,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/** Catalog product view over prc_price_set_product (price_type=PRODUCT/REDLINE) */ /** 目录产品视图,对应 prc_price_set_product(price_type=PRODUCT/REDLINE) */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class BmsProduct extends BaseEntity public class BmsProduct extends BaseEntity
@@ -3,7 +3,7 @@ package com.bms.price.domain;
import java.io.Serializable; import java.io.Serializable;
/** /**
* Async product Excel import progress (Redis). * 异步产品 Excel 导入进度(Redis)。
*/ */
public class BmsProductImportTask implements Serializable public class BmsProductImportTask implements Serializable
{ {
@@ -7,7 +7,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/** Redline catalog product view over prc_price_set_product (price_type=REDLINE) */ /** 红线价目录产品视图,对应 prc_price_set_product(price_type=REDLINE) */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class BmsRedlineProduct extends BaseEntity public class BmsRedlineProduct extends BaseEntity
@@ -6,7 +6,7 @@ import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
/** Redline catalog country detail over prc_price_set_detail (price_type=REDLINE) */ /** 红线价目录国家明细,对应 prc_price_set_detail(price_type=REDLINE) */
@Data @Data
public class BmsRedlineProductCountry implements Serializable public class BmsRedlineProductCountry implements Serializable
{ {
@@ -3,7 +3,7 @@ package com.bms.price.domain;
import java.io.Serializable; import java.io.Serializable;
/** /**
* Async product Excel import progress (Redis). * 异步产品 Excel 导入进度(Redis)。
*/ */
public class BmsRedlineProductImportTask implements Serializable public class BmsRedlineProductImportTask implements Serializable
{ {
@@ -5,7 +5,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* Apply create-page Excel preview into a draft/pending catalog version. * 把新建页的 Excel 预览写入草稿或待生效的目录版本。
*/ */
public class CatalogPreviewApplyRequest implements Serializable public class CatalogPreviewApplyRequest implements Serializable
{ {
@@ -2,7 +2,7 @@ package com.bms.price.domain;
import java.io.Serializable; import java.io.Serializable;
/** Async charge-weight import progress (Redis). */ /** 异步计费重导入进度(Redis)。 */
public class ChargeWeightImportTask implements Serializable public class ChargeWeightImportTask implements Serializable
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -6,7 +6,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/** Billing task row prc_billing_task */ /** 计费任务行 prc_billing_task */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class PrcBillingTask extends BaseEntity public class PrcBillingTask extends BaseEntity
@@ -2,7 +2,7 @@ package com.bms.price.domain;
import java.io.Serializable; import java.io.Serializable;
/** Async filter-retry progress for billing tasks (Redis). */ /** 计费任务按条件重试的异步进度(Redis)。 */
public class PrcBillingTaskRetryTask implements Serializable public class PrcBillingTaskRetryTask implements Serializable
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -8,7 +8,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/** order info header prc_order_bill */ /** 订单信息主表 prc_order_bill */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class PrcOrderBill extends BaseEntity public class PrcOrderBill extends BaseEntity
@@ -126,7 +126,7 @@ public class PrcOrderBill extends BaseEntity
private Integer billingFailStatus; private Integer billingFailStatus;
/** 失败原因 */ /** 失败原因 */
private String errorMessage; private String errorMessage;
/** \u6279\u91cf\u67e5\u8be2\uff1a\u591a\u4e2a\u8ba1\u8d39\u5931\u8d25\u72b6\u6001\uff08\u4ec5\u67e5\u8be2\u7528\uff0c\u975e\u8868\u5b57\u6bb5\uff09 */ /** 批量查询:多个计费失败状态(仅查询用,非表字段) */
private List<Integer> billingFailStatuses; private List<Integer> billingFailStatuses;
private String roundMode; private String roundMode;
@@ -2,7 +2,7 @@ package com.bms.price.domain;
import java.io.Serializable; import java.io.Serializable;
/** Async order/billing list Excel export progress (Redis). */ /** 订单列表/计费列表 Excel 异步导出进度(Redis)。 */
public class PrcOrderBillExportTask implements Serializable public class PrcOrderBillExportTask implements Serializable
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/** /**
* Import quote Excel attachment: prc_price_excel_file * 导入报价 Excel 附件:prc_price_excel_file
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@@ -7,7 +7,7 @@ import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
/** Price detail prc_price_set_detail (PRODUCT / REDLINE / SALES) */ /** 价格明细 prc_price_set_detail(PRODUCT / REDLINE / SALES) */
@Data @Data
public class PrcPriceSetDetail implements Serializable public class PrcPriceSetDetail implements Serializable
{ {
@@ -6,7 +6,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
/** /**
* Price product row prc_price_set_product (PRODUCT / REDLINE / SALES) * 价格产品行 prc_price_set_product(PRODUCT / REDLINE / SALES)
*/ */
@Data @Data
public class PrcPriceSetProduct implements Serializable public class PrcPriceSetProduct implements Serializable
@@ -3,7 +3,7 @@ package com.bms.price.domain;
import java.io.Serializable; import java.io.Serializable;
/** /**
* Async save progress for price set (Redis). * 价格套餐异步保存进度(Redis)。
*/ */
public class PrcPriceSetSaveTask implements Serializable public class PrcPriceSetSaveTask implements Serializable
{ {
@@ -4,7 +4,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/** Package viewer bind: prc_price_set_user */ /** 套餐可查看人绑定:prc_price_set_user */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class PrcPriceSetUser extends BaseEntity public class PrcPriceSetUser extends BaseEntity
@@ -7,7 +7,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/** Price set version prc_price_set_version */ /** 价格套餐版本 prc_price_set_version */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class PrcPriceSetVersion extends BaseEntity public class PrcPriceSetVersion extends BaseEntity
@@ -8,7 +8,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/** billing quote header prc_quote */ /** 计费报价主表 prc_quote */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class PrcQuote extends BaseEntity public class PrcQuote extends BaseEntity
@@ -6,7 +6,7 @@ import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
/** billing quote fee detail prc_quote_fee, one row per bms_fee_type */ /** 计费报价费用明细 prc_quote_fee,每个 bms_fee_type 一行 */
@Data @Data
public class PrcQuoteFee implements Serializable public class PrcQuoteFee implements Serializable
{ {
@@ -9,8 +9,8 @@ import lombok.EqualsAndHashCode;
* 附加费与产品/明细/套餐关联 prc_surcharge_rel * 附加费与产品/明细/套餐关联 prc_surcharge_rel
* 同时携带附加费展示字段(JOIN prc_surcharge)与明细展示字段(LEFT JOIN product_country,仅 PRODUCT/REDLINE)。 * 同时携带附加费展示字段(JOIN prc_surcharge)与明细展示字段(LEFT JOIN product_country,仅 PRODUCT/REDLINE)。
* *
* price_type semantics: * price_type 含义:
* PRODUCT / REDLINE / SALES : product_id=psp_id, detail_id=psd_id (null=all details of product) * PRODUCT / REDLINE / SALES:product_id=psp_id,detail_id=psd_id(null 表示该产品全部明细)
*/ */
@Data @Data
@@ -5,7 +5,7 @@ import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
/** Zone under region: prc_zone */ /** 国家下的分区:prc_zone */
@Data @Data
public class PrcZone implements Serializable public class PrcZone implements Serializable
{ {
@@ -5,7 +5,7 @@ import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
/** Zone postcode detail prc_zone_detail */ /** 分区邮编明细 prc_zone_detail */
@Data @Data
public class PrcZoneDetail implements Serializable public class PrcZoneDetail implements Serializable
{ {
@@ -4,7 +4,7 @@ import java.io.Serializable;
import lombok.Data; import lombok.Data;
/** /**
* Zone country list row: region + zone aggregates (not a table) * 分区国家列表行:region 加分区汇总(不是一张表)
*/ */
@Data @Data
public class PrcZoneRegion implements Serializable public class PrcZoneRegion implements Serializable
@@ -1,7 +1,7 @@
package com.bms.price.domain; package com.bms.price.domain;
/** /**
* Unified price type for prc_price_set_version / product / detail. * prc_price_set_version / product / detail 共用的价格类型。
*/ */
public final class PriceType public final class PriceType
{ {
@@ -5,7 +5,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* Apply create-page Excel preview into a draft/pending redline version. * 把新建页的 Excel 预览写入草稿或待生效的红线价版本。
*/ */
public class RedlineCatalogPreviewApplyRequest implements Serializable public class RedlineCatalogPreviewApplyRequest implements Serializable
{ {
@@ -6,7 +6,7 @@ import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
/** Manual add receivable fee line on billing detail. */ /** 在计费明细上手工增加一条应收费用。 */
@Data @Data
public class AddIncomeBillFeeRequest implements Serializable public class AddIncomeBillFeeRequest implements Serializable
{ {
@@ -5,7 +5,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.bms.price.domain.PrcOrderBill; import com.bms.price.domain.PrcOrderBill;
/** Preview matched bills before async batch add fee. */ /** 异步批量加费用前,预览匹配到的账单。 */
public class BatchAddIncomeBillFeePreview implements Serializable public class BatchAddIncomeBillFeePreview implements Serializable
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -7,8 +7,8 @@ import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
/** /**
* Batch add receivable fee lines. * 批量增加应收费用行。
* scopeMode=SELECTED uses billIds; scopeMode=ALL uses list query filters. * scopeMode=SELECTED 使用 billIds;scopeMode=ALL 使用列表查询条件。
*/ */
@Data @Data
public class BatchAddIncomeBillFeeRequest implements Serializable public class BatchAddIncomeBillFeeRequest implements Serializable
@@ -4,8 +4,8 @@ import java.io.Serializable;
import lombok.Data; import lombok.Data;
/** /**
* Filter for async batch retry of billing tasks. * 计费任务异步批量重试的筛选条件。
* Require customerCode + billTime range to avoid full-table resync. * 必须带 customerCode 和 billTime 范围,避免全表重同步。
*/ */
@Data @Data
public class BillingTaskRetryByFilterRequest implements Serializable public class BillingTaskRetryByFilterRequest implements Serializable
@@ -6,9 +6,9 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
/** /**
* Warehouse inbound request: create billing task then MQ consume. * 仓库入库请求:先创建计费任务,再由 MQ 消费。
* Provide at least one of transferNo / trackingNo / orderNo. * transferNo / trackingNo / orderNo 至少填一个。
* billTime is billing time from mobile (stored in prc_billing_task.bill_time). * billTime 是移动端传入的计费时间(写入 prc_billing_task.bill_time)。
*/ */
@Data @Data
public class BillingTaskSubmitRequest implements Serializable public class BillingTaskSubmitRequest implements Serializable
@@ -5,7 +5,7 @@ import java.math.BigDecimal;
import com.bms.common.annotation.Excel; import com.bms.common.annotation.Excel;
import lombok.Data; import lombok.Data;
/** Excel row for batch charge_weight update. */ /** 批量更新 charge_weight 的 Excel 行。 */
@Data @Data
public class ChargeWeightImportRow implements Serializable public class ChargeWeightImportRow implements Serializable
{ {
@@ -4,7 +4,7 @@ import java.io.Serializable;
import java.util.List; import java.util.List;
import lombok.Data; import lombok.Data;
/** Download charge-weight import template; optionally fill order/customer by list filters. */ /** 下载计费重导入模板;可按列表条件带出订单/客户。 */
@Data @Data
public class ChargeWeightTemplateRequest implements Serializable public class ChargeWeightTemplateRequest implements Serializable
{ {
@@ -5,8 +5,8 @@ import java.util.List;
import lombok.Data; import lombok.Data;
/** /**
* Order-list local rebill: use prc_order_bill only (no Oracle TAB_ORDER). * 订单列表本地重计费:只用 prc_order_bill(不查 Oracle TAB_ORDER)。
* scopeMode SELECTED = billIds; ALL = filters (orderIdentifiers / customer / bizDate...). * scopeMode SELECTED = billIds;ALL = 筛选条件(orderIdentifiers / customer / bizDate 等)。
*/ */
@Data @Data
public class LocalRebillRequest implements Serializable public class LocalRebillRequest implements Serializable
@@ -5,8 +5,8 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* Local order-bill products vs customer bound package (SALES) comparison. * 本地订单账单产品与客户绑定套餐(SALES)的比对。
* Matching also accepts product_code_mapping (upstream -> BMS). * 匹配时也接受 product_code_mapping(上游代码 -> BMS)。
*/ */
public class OrderBillProductCheckResult implements Serializable public class OrderBillProductCheckResult implements Serializable
{ {
@@ -7,7 +7,7 @@ import com.bms.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
/** Billing-list Excel export row. */ /** 计费列表 Excel 导出行。 */
@Data @Data
public class PrcBillingBillListExportRow implements Serializable public class PrcBillingBillListExportRow implements Serializable
{ {
@@ -7,7 +7,7 @@ import com.bms.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
/** Order-list Excel export row. */ /** 订单列表 Excel 导出行。 */
@Data @Data
public class PrcOrderBillListExportRow implements Serializable public class PrcOrderBillListExportRow implements Serializable
{ {
@@ -4,7 +4,7 @@ import java.io.Serializable;
import java.util.List; import java.util.List;
import lombok.Data; import lombok.Data;
/** Batch recalc product_amount or redline_amount only (existing bills). */ /** 只批量重算 product_amount 或 redline_amount(已有账单)。 */
@Data @Data
public class RecalcBillPriceRequest implements Serializable public class RecalcBillPriceRequest implements Serializable
{ {
@@ -5,7 +5,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* Order-source product vs customer package comparison result. * 订单源产品与客户套餐的比对结果。
*/ */
public class TabOrderProductCheckResult implements Serializable public class TabOrderProductCheckResult implements Serializable
{ {
@@ -10,7 +10,7 @@ import jakarta.validation.constraints.NotBlank;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/** Sync order -> receivable bill. Quote fields plus order snapshot. */ /** 同步订单为应收账单。包含报价字段和订单快照。 */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class TmsPriceBillRequest extends TmsPriceQuoteRequest public class TmsPriceBillRequest extends TmsPriceQuoteRequest
@@ -4,7 +4,7 @@ import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import lombok.Data; import lombok.Data;
/** quote fee line keyed by bms_fee_type */ /** 按 bms_fee_type 区分的报价费用行 */
@Data @Data
public class TmsPriceQuoteFeeLine implements Serializable public class TmsPriceQuoteFeeLine implements Serializable
{ {
@@ -6,7 +6,7 @@ import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
/** TMS freight quote request */ /** TMS 运费试算请求 */
@Data @Data
public class TmsPriceQuoteRequest implements Serializable public class TmsPriceQuoteRequest implements Serializable
{ {
@@ -7,8 +7,8 @@ import java.util.List;
import lombok.Data; import lombok.Data;
/** /**
* TMS freight quote response. * TMS 运费试算响应。
* matchSource: PACKAGE_FIXED / PACKAGE_DISCOUNT * matchSource:PACKAGE_FIXED / PACKAGE_DISCOUNT
*/ */
@Data @Data
public class TmsPriceQuoteResult implements Serializable public class TmsPriceQuoteResult implements Serializable
@@ -7,7 +7,7 @@ import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
/** Single-bill update for charge_weight (manual override; weight kept). */ /** 单笔更新 charge_weight(手工覆盖;weight 保留)。 */
@Data @Data
public class UpdateChargeWeightRequest implements Serializable public class UpdateChargeWeightRequest implements Serializable
{ {
@@ -5,7 +5,7 @@ import java.math.BigDecimal;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.Data; import lombok.Data;
/** Update manual receivable fee line on billing detail. */ /** 修改计费明细上的手工应收费用行。 */
@Data @Data
public class UpdateIncomeBillFeeRequest implements Serializable public class UpdateIncomeBillFeeRequest implements Serializable
{ {
@@ -1,10 +1,10 @@
package com.bms.price.enums; package com.bms.price.enums;
/** /**
* prc_order_bill.billing_fail_status \u8ba1\u8d39\u5931\u8d25\u72b6\u6001\uff08\u6570\u5b57\uff09\u3002 * prc_order_bill.billing_fail_status 计费失败状态(数字)。
* 0\u6210\u529f\uff1b1\u672a\u5339\u914d\u4ea7\u54c1\uff1b2\u672a\u5339\u914d\u56fd\u5bb6\uff1b3\u672a\u5339\u914d\u91cd\u91cf\u6bb5\u3002 * 0成功;1未匹配产品;2未匹配国家;3未匹配重量段。
* 4 \u8d77\u4e0e prc_billing_task.fail_code \u4e00\u4e00\u5bf9\u5e94\u3002 * 4 起与 prc_billing_task.fail_code 一一对应。
* \u4ec5 0/1/2/3 \u5199\u5165 prc_income_bill\uff1b\u4ec5 0 \u5199\u5165 prc_income_bill_fee\u3002 * 仅 0/1/2/3 写入 prc_income_bill;仅 0 写入 prc_income_bill_fee。
*/ */
public enum BillBillingFailStatus public enum BillBillingFailStatus
{ {
@@ -65,14 +65,14 @@ public enum BillBillingFailStatus
return code != null && code.intValue() > SUCCESS.code; return code != null && code.intValue() > SUCCESS.code;
} }
/** 0/1/2/3 \u624d\u843d prc_income_bill\u3002 */ /** 0/1/2/3 才落 prc_income_bill。 */
public static boolean storesIncomeBill(Integer code) public static boolean storesIncomeBill(Integer code)
{ {
int value = code == null ? SUCCESS.code : code.intValue(); int value = code == null ? SUCCESS.code : code.intValue();
return value == SUCCESS.code || value == PRODUCT.code || value == COUNTRY.code || value == WEIGHT.code; return value == SUCCESS.code || value == PRODUCT.code || value == COUNTRY.code || value == WEIGHT.code;
} }
/** \u4ec5 0 \u843d prc_income_bill_fee\u3002 */ /** 仅 0 落 prc_income_bill_fee。 */
public static boolean storesIncomeFee(Integer code) public static boolean storesIncomeFee(Integer code)
{ {
return code == null || code.intValue() == SUCCESS.code; return code == null || code.intValue() == SUCCESS.code;
@@ -1,8 +1,8 @@
package com.bms.price.enums; package com.bms.price.enums;
/** /**
* Credit arrears status snapshot on prc_order_bill when billing. * 计费时写到 prc_order_bill 的信用欠费状态快照。
* Billing continues even when ARREARS; occupy still runs with checkAvailable=false. * 即使是 ARREARS 也继续计费;占用仍执行,且 checkAvailable=false。
*/ */
public enum BillCreditArrearsStatus public enum BillCreditArrearsStatus
{ {
@@ -1,8 +1,8 @@
package com.bms.price.enums; package com.bms.price.enums;
/** /**
* Customer effective status snapshot on prc_order_bill when billing. * 计费时写到 prc_order_bill 的客户生效状态快照。
* Billing continues even when MISSING / DISABLED. * 即使是 MISSING / DISABLED 也继续计费。
*/ */
public enum BillCustomerActiveStatus public enum BillCustomerActiveStatus
{ {
@@ -1,9 +1,9 @@
package com.bms.price.enums; package com.bms.price.enums;
/** /**
* Snapshot of prc_order_bill.order_status (aligned with upstream TAB_ORDER). * prc_order_bill.order_status 快照(与上游 TAB_ORDER 对齐)。
* Fee refund sets {@link #REFUNDED} (9 / 已退件); rebill/bill follows Oracle and does not pin 9/10. * 费用退款会置为 {@link #REFUNDED}(9 / 已退件);重计费/计费跟随 Oracle,不强制写成 9/10。
* Upstream 9/10 trigger billType=REFUND when billing-task pulls Oracle. * 计费任务拉取 Oracle 时,上游 9/10 会触发 billType=REFUND。
*/ */
public enum BillOrderStatus public enum BillOrderStatus
{ {
@@ -1,8 +1,8 @@
package com.bms.price.enums; package com.bms.price.enums;
/** /**
* Refund status snapshot on prc_order_bill. * prc_order_bill 上的退款状态快照。
* NONE = not refunded; REFUNDED = has fee_type=REFUND line. * NONE = 未退款;REFUNDED = 存在 fee_type=REFUND 的费用行。
*/ */
public enum BillRefundStatus public enum BillRefundStatus
{ {
@@ -3,8 +3,8 @@ package com.bms.price.enums;
import com.bms.common.utils.StringUtils; import com.bms.common.utils.StringUtils;
/** /**
* Stable fail codes for prc_billing_task.fail_code (search / ops). * prc_billing_task.fail_code 的稳定失败码(用于查询 / 运维)。
* Resolved from exception message when task writeback is FAILED. * 任务回写为 FAILED 时,从异常信息解析得到。
*/ */
public enum BillTaskFailCode public enum BillTaskFailCode
{ {
@@ -56,49 +56,49 @@ public enum BillTaskFailCode
return null; return null;
} }
String msg = errorMessage.trim(); String msg = errorMessage.trim();
if (containsAny(msg, "\u672a\u7ed1\u5b9a\u5957\u9910", "noCustomerPackage", "NO_CUSTOMER_PACKAGE")) if (containsAny(msg, "未绑定套餐", "noCustomerPackage", "NO_CUSTOMER_PACKAGE"))
{ {
return NO_CUSTOMER_PACKAGE.code; return NO_CUSTOMER_PACKAGE.code;
} }
if (containsAny(msg, "\u65e0\u751f\u6548\u5957\u9910\u7248\u672c", "noActivePackageVersion", "NO_ACTIVE_PACKAGE_VERSION")) if (containsAny(msg, "无生效套餐版本", "noActivePackageVersion", "NO_ACTIVE_PACKAGE_VERSION"))
{ {
return NO_ACTIVE_PACKAGE_VERSION.code; return NO_ACTIVE_PACKAGE_VERSION.code;
} }
if (containsAny(msg, "\u5df2\u751f\u6210\u5e94\u6536\u8d26\u5355", "alreadyInArBill", "ALREADY_IN_AR_BILL")) if (containsAny(msg, "已生成应收账单", "alreadyInArBill", "ALREADY_IN_AR_BILL"))
{ {
return ALREADY_IN_AR_BILL.code; return ALREADY_IN_AR_BILL.code;
} }
if (containsAny(msg, "\u672a\u627e\u5230\u6709\u6548\u4ea7\u54c1\u6863\u6848", "PRODUCT_ARCHIVE_MISSING")) if (containsAny(msg, "未找到有效产品档案", "PRODUCT_ARCHIVE_MISSING"))
{ {
return PRODUCT_ARCHIVE_MISSING.code; return PRODUCT_ARCHIVE_MISSING.code;
} }
// Soft-fail messages from price.bill.billingFail.* (order matters: weight/country before generic) // Soft-fail messages from price.bill.billingFail.* (order matters: weight/country before generic)
if (containsAny(msg, "\u672a\u5339\u914d\u91cd\u91cf\u6bb5", "WEIGHT_NOT_HIT", "billingFail.weight")) if (containsAny(msg, "未匹配重量段", "WEIGHT_NOT_HIT", "billingFail.weight"))
{ {
return WEIGHT_NOT_HIT.code; return WEIGHT_NOT_HIT.code;
} }
if (containsAny(msg, "\u672a\u5339\u914d\u56fd\u5bb6", "COUNTRY_NOT_HIT", "billingFail.country")) if (containsAny(msg, "未匹配国家", "COUNTRY_NOT_HIT", "billingFail.country"))
{ {
return COUNTRY_NOT_HIT.code; return COUNTRY_NOT_HIT.code;
} }
if (containsAny(msg, "\u672a\u5339\u914d\u4ea7\u54c1", "PRODUCT_NOT_HIT", "billingFail.product", "productNotInPackage")) if (containsAny(msg, "未匹配产品", "PRODUCT_NOT_HIT", "billingFail.product", "productNotInPackage"))
{ {
return PRODUCT_NOT_HIT.code; return PRODUCT_NOT_HIT.code;
} }
if (containsAny(msg, "\u8be5\u5206\u533a\u65e0\u5bf9\u5e94\u4ea7\u54c1\u91cd\u91cf\u6bb5", "zonePriceNotHit", "ZONE_PRICE_NOT_HIT")) if (containsAny(msg, "该分区无对应产品重量段", "zonePriceNotHit", "ZONE_PRICE_NOT_HIT"))
{ {
return ZONE_PRICE_NOT_HIT.code; return ZONE_PRICE_NOT_HIT.code;
} }
if (containsAny(msg, "\u6ca1\u6709\u4ea7\u54c1/\u56fd\u5bb6/\u91cd\u91cf\u6bb5", "priceNotHit", "PRICE_NOT_HIT", if (containsAny(msg, "没有产品/国家/重量段", "priceNotHit", "PRICE_NOT_HIT",
"packagePriceNotHit", "packageZonePriceNotHit")) "packagePriceNotHit", "packageZonePriceNotHit"))
{ {
return PRICE_NOT_HIT.code; return PRICE_NOT_HIT.code;
} }
if (containsAny(msg, "\u8bf7\u586b\u5199\u76ee\u7684\u90ae\u7f16", "postcodeRequired", "POSTCODE_REQUIRED")) if (containsAny(msg, "请填写目的邮编", "postcodeRequired", "POSTCODE_REQUIRED"))
{ {
return POSTCODE_REQUIRED.code; return POSTCODE_REQUIRED.code;
} }
if (containsAny(msg, "\u90ae\u7f16\u672a\u5339\u914d\u5230\u5206\u533a", "postcodeZoneNotFound", "POSTCODE_ZONE_NOT_FOUND")) if (containsAny(msg, "邮编未匹配到分区", "postcodeZoneNotFound", "POSTCODE_ZONE_NOT_FOUND"))
{ {
return POSTCODE_ZONE_NOT_FOUND.code; return POSTCODE_ZONE_NOT_FOUND.code;
} }
@@ -126,19 +126,19 @@ public enum BillTaskFailCode
{ {
return BILL_TIME_EMPTY.code; return BILL_TIME_EMPTY.code;
} }
if (containsAny(msg, "\u9000\u8d39\u8ba2\u5355\u53f7\u65e0\u6cd5\u89e3\u6790", "REFUND_ORDER_UNRESOLVED")) if (containsAny(msg, "退费订单号无法解析", "REFUND_ORDER_UNRESOLVED"))
{ {
return REFUND_ORDER_UNRESOLVED.code; return REFUND_ORDER_UNRESOLVED.code;
} }
if (containsAny(msg, "\u5ba2\u6237\u4ee3\u7801\u4e0d\u80fd\u4e3a\u7a7a", "customerCodeRequired", "CUSTOMER_CODE_REQUIRED")) if (containsAny(msg, "客户代码不能为空", "customerCodeRequired", "CUSTOMER_CODE_REQUIRED"))
{ {
return CUSTOMER_CODE_REQUIRED.code; return CUSTOMER_CODE_REQUIRED.code;
} }
if (containsAny(msg, "\u5ba2\u6237\u5df2\u505c\u7528", "customerDisabled", "CUSTOMER_DISABLED")) if (containsAny(msg, "客户已停用", "customerDisabled", "CUSTOMER_DISABLED"))
{ {
return CUSTOMER_DISABLED.code; return CUSTOMER_DISABLED.code;
} }
if (containsAny(msg, "\u8fd0\u8d39\u4e3a\u7a7a", "freightMissing", "FREIGHT_MISSING")) if (containsAny(msg, "运费为空", "freightMissing", "FREIGHT_MISSING"))
{ {
return FREIGHT_MISSING.code; return FREIGHT_MISSING.code;
} }
@@ -1,6 +1,6 @@
package com.bms.price.enums; package com.bms.price.enums;
/** Billing task success flag on prc_billing_task.success_status */ /** 计费任务成功标记,对应 prc_billing_task.success_status */
public enum BillTaskSuccessStatus public enum BillTaskSuccessStatus
{ {
WAITING("WAITING"), WAITING("WAITING"),
@@ -1,6 +1,6 @@
package com.bms.price.enums; package com.bms.price.enums;
/** Billing task type on prc_billing_task.bill_type */ /** 计费任务类型,对应 prc_billing_task.bill_type */
public enum BillTaskType public enum BillTaskType
{ {
/** first-time billing */ /** first-time billing */
@@ -5,7 +5,7 @@ import java.util.Map;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.vo.TabOrderMonitorQuery; import com.bms.price.domain.vo.TabOrderMonitorQuery;
/** Read upstream main order from Oracle (SLAVE datasource). */ /** 从 Oracle 读取上游主订单(SLAVE 数据源)。 */
public interface OracleUpstreamOrderMapper public interface OracleUpstreamOrderMapper
{ {
Map<String, Object> selectByTransferNo(@Param("orderTable") String orderTable, @Param("transferNo") String transferNo); Map<String, Object> selectByTransferNo(@Param("orderTable") String orderTable, @Param("transferNo") String transferNo);
@@ -4,7 +4,7 @@ import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcIncomeBillFee; import com.bms.price.domain.PrcIncomeBillFee;
/** receivable bill fee mapper */ /** 应收账单费用 mapper */
public interface PrcIncomeBillFeeMapper public interface PrcIncomeBillFeeMapper
{ {
public List<PrcIncomeBillFee> selectByBillId(String billId); public List<PrcIncomeBillFee> selectByBillId(String billId);
@@ -4,7 +4,7 @@ import java.util.List;
import com.bms.price.domain.PrcIncomeBill; import com.bms.price.domain.PrcIncomeBill;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
/** prc_income_bill mapper */ /** 应收账单 prc_income_bill 的 mapper */
public interface PrcIncomeBillMapper public interface PrcIncomeBillMapper
{ {
PrcIncomeBill selectByBillId(String billId); PrcIncomeBill selectByBillId(String billId);
@@ -2,7 +2,7 @@ package com.bms.price.mapper;
import com.bms.price.domain.PrcOrderBillExt; import com.bms.price.domain.PrcOrderBillExt;
/** prc_order_bill_ext mapper */ /** 订单账单扩展 prc_order_bill_ext 的 mapper */
public interface PrcOrderBillExtMapper public interface PrcOrderBillExtMapper
{ {
public PrcOrderBillExt selectByBillId(String billId); public PrcOrderBillExt selectByBillId(String billId);
@@ -7,7 +7,7 @@ import java.util.Map;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcOrderBill; import com.bms.price.domain.PrcOrderBill;
/** order bill header mapper */ /** 订单账单主表 mapper */
public interface PrcOrderBillMapper public interface PrcOrderBillMapper
{ {
public PrcOrderBill selectPrcOrderBillByOrderNo(String orderNo); public PrcOrderBill selectPrcOrderBillByOrderNo(String orderNo);
@@ -4,7 +4,7 @@ import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcPayBillFee; import com.bms.price.domain.PrcPayBillFee;
/** payable bill fee mapper */ /** 应付账单费用 mapper */
public interface PrcPayBillFeeMapper public interface PrcPayBillFeeMapper
{ {
public List<PrcPayBillFee> selectByBillId(String billId); public List<PrcPayBillFee> selectByBillId(String billId);
@@ -5,7 +5,7 @@ import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcPriceExcelFile; import com.bms.price.domain.PrcPriceExcelFile;
/** /**
* Import quote Excel attachment mapper * 导入报价 Excel 附件 mapper
*/ */
public interface PrcPriceExcelFileMapper public interface PrcPriceExcelFileMapper
{ {
@@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcPriceSetDetail; import com.bms.price.domain.PrcPriceSetDetail;
/** /**
* Price detail mapper (PRODUCT / REDLINE / SALES) * 价格明细 mapper(PRODUCT / REDLINE / SALES)
*/ */
public interface PrcPriceSetDetailMapper public interface PrcPriceSetDetailMapper
{ {
@@ -5,7 +5,7 @@ import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcPriceSetProduct; import com.bms.price.domain.PrcPriceSetProduct;
/** /**
* Price product mapper (PRODUCT / REDLINE / SALES) * 价格产品 mapper(PRODUCT / REDLINE / SALES)
*/ */
public interface PrcPriceSetProductMapper public interface PrcPriceSetProductMapper
{ {
@@ -6,7 +6,7 @@ import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcPriceSetVersion; import com.bms.price.domain.PrcPriceSetVersion;
/** /**
* Price version (PRODUCT / REDLINE / SALES) * 价格版本(PRODUCT / REDLINE / SALES)
*/ */
public interface PrcPriceSetVersionMapper public interface PrcPriceSetVersionMapper
{ {
@@ -4,7 +4,7 @@ import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcQuoteFee; import com.bms.price.domain.PrcQuoteFee;
/** billing quote fee detail mapper */ /** 计费报价费用明细 mapper */
public interface PrcQuoteFeeMapper public interface PrcQuoteFeeMapper
{ {
public List<PrcQuoteFee> selectByQuoteId(String quoteId); public List<PrcQuoteFee> selectByQuoteId(String quoteId);
@@ -5,7 +5,7 @@ import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcQuote; import com.bms.price.domain.PrcQuote;
/** billing quote header mapper */ /** 计费报价主表 mapper */
public interface PrcQuoteMapper public interface PrcQuoteMapper
{ {
public PrcQuote selectPrcQuoteByKey(String quoteKey); public PrcQuote selectPrcQuoteByKey(String quoteKey);
@@ -2,7 +2,7 @@ package com.bms.price.mq;
import java.io.Serializable; import java.io.Serializable;
/** MQ payload: only taskId; consumer loads full row from MySQL. */ /** MQ 消息体:只有 taskId;消费者从 MySQL 加载整行。 */
public class BillingTaskMessage implements Serializable public class BillingTaskMessage implements Serializable
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -21,7 +21,7 @@ import com.bms.price.config.BillingProperties;
import com.bms.price.service.IPrcBillingTaskService; import com.bms.price.service.IPrcBillingTaskService;
/** /**
* Consume billing task MQ messages and call billing interface. * 消费计费任务 MQ 消息并调用计费接口。
*/ */
@Component @Component
@ConditionalOnProperty(prefix = "bms.billing", name = "consumer-enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "bms.billing", name = "consumer-enabled", havingValue = "true", matchIfMissing = true)
@@ -1,6 +1,6 @@
package com.bms.price.mq; package com.bms.price.mq;
/** Publish billing task id to MQ after warehouse inbound insert. */ /** 仓库入库写入后,把计费任务 id 发到 MQ。 */
public interface IBillingTaskMqPublisher public interface IBillingTaskMqPublisher
{ {
void publish(BillingTaskMessage message); void publish(BillingTaskMessage message);
@@ -5,8 +5,8 @@ import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
* Local MQ: Spring application event (dev / no Redis broker). * 本地 MQ:Spring 应用事件(开发环境 / 没有 Redis)。
* Enable with bms.billing.mq-mode=local * 配置 bms.billing.mq-mode=local 启用
*/ */
@Component @Component
@ConditionalOnProperty(prefix = "bms.billing", name = "mq-mode", havingValue = "local") @ConditionalOnProperty(prefix = "bms.billing", name = "mq-mode", havingValue = "local")
@@ -9,8 +9,8 @@ import com.alibaba.fastjson2.JSON;
import com.bms.price.config.BillingProperties; import com.bms.price.config.BillingProperties;
/** /**
* Redis list as MQ queue (default). LPUSH on publish; consumer BRPOP/RPOP. * 用 Redis list 作为 MQ 队列(默认)。发布时 LPUSH;消费时 BRPOP/RPOP。
* Enable with bms.billing.mq-mode=redis (default). * 配置 bms.billing.mq-mode=redis 启用(默认)。
*/ */
@Component @Component
@ConditionalOnProperty(prefix = "bms.billing", name = "mq-mode", havingValue = "redis", matchIfMissing = true) @ConditionalOnProperty(prefix = "bms.billing", name = "mq-mode", havingValue = "redis", matchIfMissing = true)
@@ -10,7 +10,7 @@ import com.bms.common.utils.StringUtils;
import com.bms.price.domain.vo.TmsPriceBillRequest; import com.bms.price.domain.vo.TmsPriceBillRequest;
/** /**
* Map Oracle main-order row (FIELD_MAP style columns) to TmsPriceBillRequest. * 把 Oracle 主订单行(FIELD_MAP 风格的列)映射为 TmsPriceBillRequest。
*/ */
@Component @Component
public class OracleOrderBillMapper public class OracleOrderBillMapper
@@ -15,8 +15,8 @@ import com.bms.price.config.BillingProperties;
import com.bms.price.mapper.OracleUpstreamOrderMapper; import com.bms.price.mapper.OracleUpstreamOrderMapper;
/** /**
* Query Oracle main order via SLAVE datasource. * 通过 SLAVE 数据源查询 Oracle 主订单。
* Requires spring.datasource.druid.slave.enabled=true and Oracle URL. * 需要 spring.datasource.druid.slave.enabled=true,并配置 Oracle URL。
*/ */
@Service @Service
public class OracleUpstreamOrderService public class OracleUpstreamOrderService
@@ -24,7 +24,7 @@ import com.bms.price.service.ITmsPriceQuoteService;
import com.bms.system.service.IBmsProductCodeMappingService; import com.bms.system.service.IBmsProductCodeMappingService;
/** /**
* Compare distinct TAB_ORDER product codes against customer package products. * 把 TAB_ORDER 中不重复的产品代码与客户套餐产品比对。
*/ */
@Service @Service
public class TabOrderProductCheckService public class TabOrderProductCheckService
@@ -7,7 +7,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
/** /**
* Bill sync search-store beans. * 账单同步所用的搜索存储 Bean。
*/ */
@Configuration @Configuration
@EnableConfigurationProperties(ElasticsearchProperties.class) @EnableConfigurationProperties(ElasticsearchProperties.class)
@@ -3,7 +3,7 @@ package com.bms.price.search;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** Paginated ES search result. */ /** ES 分页查询结果。 */
public class BillSearchPage public class BillSearchPage
{ {
private long total; private long total;
@@ -1,6 +1,6 @@
package com.bms.price.search; package com.bms.price.search;
/** Generic Elasticsearch business log. Distinguished by logType + bizId. */ /** 通用 Elasticsearch 业务日志。用 logType + bizId 区分。 */
public class BillSyncSnapshot public class BillSyncSnapshot
{ {
private String docId; private String docId;
@@ -3,7 +3,7 @@ package com.bms.price.search;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
/** /**
* Elasticsearch connection for bill sync search store. * 账单同步搜索存储使用的 Elasticsearch 连接。
*/ */
@ConfigurationProperties(prefix = "bms.elasticsearch") @ConfigurationProperties(prefix = "bms.elasticsearch")
public class ElasticsearchProperties public class ElasticsearchProperties
@@ -20,7 +20,7 @@ import com.alibaba.fastjson2.JSONObject;
import com.bms.common.utils.StringUtils; import com.bms.common.utils.StringUtils;
/** /**
* Persist / load generic business logs via Elasticsearch REST API. * 通过 Elasticsearch REST API 保存 / 读取通用业务日志。
*/ */
public class EsBillSearchStore implements IBillSearchStore public class EsBillSearchStore implements IBillSearchStore
{ {
@@ -12,7 +12,7 @@ import com.bms.common.utils.sign.Md5Utils;
import com.bms.price.domain.vo.TmsPriceBillRequest; import com.bms.price.domain.vo.TmsPriceBillRequest;
import com.bms.price.domain.vo.TmsPriceQuoteRequest; import com.bms.price.domain.vo.TmsPriceQuoteRequest;
/** Helpers for ES business logs (success / fail). */ /** ES 业务日志辅助方法(成功 / 失败)。 */
public final class EsBizLogSupport public final class EsBizLogSupport
{ {
public static final String STATUS_SUCCESS = "SUCCESS"; public static final String STATUS_SUCCESS = "SUCCESS";
@@ -3,7 +3,7 @@ package com.bms.price.search;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
/** Common ES business-log types. */ /** 常用 ES 业务日志类型。 */
public final class EsLogType public final class EsLogType
{ {
public static final String BILL = "BILL"; public static final String BILL = "BILL";
@@ -1,7 +1,7 @@
package com.bms.price.search; package com.bms.price.search;
/** /**
* Generic Elasticsearch store for business request/response logs. * 业务请求/响应日志的通用 Elasticsearch 存储。
*/ */
public interface IBillSearchStore public interface IBillSearchStore
{ {
@@ -1,7 +1,7 @@
package com.bms.price.search; package com.bms.price.search;
/** /**
* No-op when Elasticsearch is disabled. * 未启用 Elasticsearch 时的空实现。
*/ */
public class NoopBillSearchStore implements IBillSearchStore public class NoopBillSearchStore implements IBillSearchStore
{ {
@@ -12,7 +12,7 @@ import com.bms.common.utils.StringUtils;
import com.bms.price.domain.PrcPriceSetDetail; import com.bms.price.domain.PrcPriceSetDetail;
/** /**
* Write sales / product / redline price before-after changes to ES (bms_biz_log). * 把销售价 / 产品价 / 红线价的变更前后写入 ES(bms_biz_log)。
*/ */
public final class PriceChangeEsLog public final class PriceChangeEsLog
{ {
@@ -93,18 +93,18 @@ public final class PriceChangeEsLog
{ {
if (oldRow != null) if (oldRow != null)
{ {
addIfChanged(changes, "fvValue", "\u8fd0\u8d39\u5355\u4ef7", oldRow.getFvValue(), null); addIfChanged(changes, "fvValue", "运费单价", oldRow.getFvValue(), null);
addIfChanged(changes, "fvRegistrationFee", "\u6302\u53f7\u8d39", oldRow.getFvRegistrationFee(), null); addIfChanged(changes, "fvRegistrationFee", "挂号费", oldRow.getFvRegistrationFee(), null);
addIfChanged(changes, "discountValue", "\u6298\u6263", oldRow.getDiscountValue(), null); addIfChanged(changes, "discountValue", "折扣", oldRow.getDiscountValue(), null);
} }
return changes; return changes;
} }
Object oldFv = oldRow == null ? null : oldRow.getFvValue(); Object oldFv = oldRow == null ? null : oldRow.getFvValue();
Object oldReg = oldRow == null ? null : oldRow.getFvRegistrationFee(); Object oldReg = oldRow == null ? null : oldRow.getFvRegistrationFee();
Object oldDisc = oldRow == null ? null : oldRow.getDiscountValue(); Object oldDisc = oldRow == null ? null : oldRow.getDiscountValue();
addIfChanged(changes, "fvValue", "\u8fd0\u8d39\u5355\u4ef7", oldFv, newRow.getFvValue()); addIfChanged(changes, "fvValue", "运费单价", oldFv, newRow.getFvValue());
addIfChanged(changes, "fvRegistrationFee", "\u6302\u53f7\u8d39", oldReg, newRow.getFvRegistrationFee()); addIfChanged(changes, "fvRegistrationFee", "挂号费", oldReg, newRow.getFvRegistrationFee());
addIfChanged(changes, "discountValue", "\u6298\u6263", oldDisc, newRow.getDiscountValue()); addIfChanged(changes, "discountValue", "折扣", oldDisc, newRow.getDiscountValue());
return changes; return changes;
} }
@@ -112,8 +112,8 @@ public final class PriceChangeEsLog
BigDecimal newFreight, BigDecimal newReg) BigDecimal newFreight, BigDecimal newReg)
{ {
List<Map<String, String>> changes = new ArrayList<Map<String, String>>(); List<Map<String, String>> changes = new ArrayList<Map<String, String>>();
addIfChanged(changes, "freightPrice", "\u8fd0\u8d39\u5355\u4ef7", oldFreight, newFreight); addIfChanged(changes, "freightPrice", "运费单价", oldFreight, newFreight);
addIfChanged(changes, "registrationFee", "\u6302\u53f7\u8d39", oldReg, newReg); addIfChanged(changes, "registrationFee", "挂号费", oldReg, newReg);
return changes; return changes;
} }
@@ -6,7 +6,7 @@ import com.alibaba.fastjson2.JSON;
import com.bms.common.utils.SecurityUtils; import com.bms.common.utils.SecurityUtils;
import com.bms.common.utils.StringUtils; import com.bms.common.utils.StringUtils;
/** Write order-source sync actions to ES. */ /** 把订单源同步动作写入 ES。 */
public final class TabOrderSyncEsLog public final class TabOrderSyncEsLog
{ {
private TabOrderSyncEsLog() private TabOrderSyncEsLog()
@@ -9,7 +9,7 @@ import com.bms.price.domain.BmsProductImportTask;
import com.bms.price.domain.CatalogPreviewApplyRequest; import com.bms.price.domain.CatalogPreviewApplyRequest;
/** /**
* Product list service * 产品列表服务
* *
* @author bms * @author bms
*/ */

Some files were not shown because too many files have changed in this diff Show More