From c313a253b1fcdc75b6be5db575fc2b29fb407021 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 15 四月 2026 20:05:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java | 89 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 89 insertions(+), 0 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java b/server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java
new file mode 100644
index 0000000..5d569d9
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java
@@ -0,0 +1,89 @@
+package com.doumee.biz.system.impl;
+
+import com.doumee.biz.system.OperationConfigBiz;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.Constants;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.dao.dto.OperationConfigDTO;
+import com.doumee.dao.system.model.SystemDictData;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 杩愯惀閰嶇疆涓氬姟瀹炵幇
+ * @author rk
+ * @date 2026/04/13
+ */
+@Service
+public class OperationConfigBizImpl implements OperationConfigBiz {
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+ @Override
+ public OperationConfigDTO getConfig() {
+ OperationConfigDTO dto = new OperationConfigDTO();
+ dto.setDriverDailyCancelLimit(getValue(Constants.OP_DRIVER_DAILY_CANCEL_LIMIT));
+ dto.setUnpickedDiscount(getValue(Constants.OP_UNPICKED_DISCOUNT));
+ dto.setSettlementDate(getValue(Constants.OP_SETTLEMENT_DATE));
+ dto.setUrgentCoefficient(getValue(Constants.OP_URGENT_COEFFICIENT));
+ dto.setAutoCancelTime(getValue(Constants.OP_AUTO_CANCEL_TIME));
+ dto.setInsuranceRate(getValue(Constants.OP_INSURANCE_RATE));
+ dto.setOrderAcceptLimit(getValue(Constants.OP_ORDER_ACCEPT_LIMIT));
+ dto.setAutoConfirmReceipt(getValue(Constants.OP_AUTO_CONFIRM_RECEIPT));
+ return dto;
+ }
+
+ @Override
+ @Transactional(rollbackFor = {Exception.class, BusinessException.class})
+ public void saveConfig(OperationConfigDTO dto) {
+ validate(dto);
+ saveOrUpdate(Constants.OP_DRIVER_DAILY_CANCEL_LIMIT, "鍙告満姣忔棩鍙栨秷娆℃暟", dto.getDriverDailyCancelLimit());
+ saveOrUpdate(Constants.OP_UNPICKED_DISCOUNT, "鏈彇浠舵姌鎵�", dto.getUnpickedDiscount());
+ saveOrUpdate(Constants.OP_SETTLEMENT_DATE, "璁㈠崟缁撶畻鏃ユ湡", dto.getSettlementDate());
+ saveOrUpdate(Constants.OP_URGENT_COEFFICIENT, "鍔犳�ョ郴鏁�", dto.getUrgentCoefficient());
+ saveOrUpdate(Constants.OP_AUTO_CANCEL_TIME, "瓒呮椂鏈敮浠樿嚜鍔ㄥ彇娑堟椂闂�", dto.getAutoCancelTime());
+ saveOrUpdate(Constants.OP_INSURANCE_RATE, "淇濊垂姣旂巼", dto.getInsuranceRate());
+ saveOrUpdate(Constants.OP_ORDER_ACCEPT_LIMIT, "鎺ュ崟鏁伴噺", dto.getOrderAcceptLimit());
+ saveOrUpdate(Constants.OP_AUTO_CONFIRM_RECEIPT, "鑷姩纭鏀惰揣", dto.getAutoConfirmReceipt());
+ }
+
+ private String getValue(String label) {
+ SystemDictData data = systemDictDataBiz.queryByCode(Constants.OPERATION_CONFIG, label);
+ return data != null ? data.getCode() : null;
+ }
+
+ private void saveOrUpdate(String label, String name, String value) {
+ SystemDictData existing = systemDictDataBiz.queryByCode(Constants.OPERATION_CONFIG, label);
+ if (existing != null && existing.getId() != null) {
+ existing.setCode(value);
+ systemDictDataBiz.updateById(existing);
+ } else {
+ SystemDictData newData = new SystemDictData();
+ newData.setDictId(105);
+ newData.setLabel(label);
+ newData.setRemark(name);
+ newData.setCode(value);
+ newData.setDisabled(false);
+ newData.setDeleted(false);
+ systemDictDataBiz.create(newData);
+ }
+ }
+
+ private void validate(OperationConfigDTO dto) {
+ if (dto == null
+ || StringUtils.isBlank(dto.getDriverDailyCancelLimit())
+ || StringUtils.isBlank(dto.getUnpickedDiscount())
+ || StringUtils.isBlank(dto.getSettlementDate())
+ || StringUtils.isBlank(dto.getUrgentCoefficient())
+ || StringUtils.isBlank(dto.getAutoCancelTime())
+ || StringUtils.isBlank(dto.getInsuranceRate())
+ || StringUtils.isBlank(dto.getOrderAcceptLimit())
+ || StringUtils.isBlank(dto.getAutoConfirmReceipt())) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎵�鏈夐厤缃」鍧囦负蹇呭~");
+ }
+ }
+}
--
Gitblit v1.9.3