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/AgreementConfigBizImpl.java |   74 +++++++++++++++++++++++++++++++++++++
 1 files changed, 74 insertions(+), 0 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/biz/system/impl/AgreementConfigBizImpl.java b/server/services/src/main/java/com/doumee/biz/system/impl/AgreementConfigBizImpl.java
new file mode 100644
index 0000000..89636d3
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/biz/system/impl/AgreementConfigBizImpl.java
@@ -0,0 +1,74 @@
+package com.doumee.biz.system.impl;
+
+import com.doumee.biz.system.AgreementConfigBiz;
+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.AgreementConfigDTO;
+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 AgreementConfigBizImpl implements AgreementConfigBiz {
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @Override
+    public AgreementConfigDTO getConfig() {
+        AgreementConfigDTO dto = new AgreementConfigDTO();
+        dto.setPrivacyAgreement(getValue(Constants.PRIVACY_AGREEMENT));
+        dto.setUserAgreement(getValue(Constants.USER_AGREEMENT));
+        dto.setAboutUs(getValue(Constants.ABOUT_US));
+        return dto;
+    }
+
+    @Override
+    @Transactional(rollbackFor = {Exception.class, BusinessException.class})
+    public void saveConfig(AgreementConfigDTO dto) {
+        validate(dto);
+        saveOrUpdate(Constants.PRIVACY_AGREEMENT, "闅愮鍗忚", dto.getPrivacyAgreement());
+        saveOrUpdate(Constants.USER_AGREEMENT, "鐢ㄦ埛鍗忚", dto.getUserAgreement());
+        saveOrUpdate(Constants.ABOUT_US, "鍏充簬鎴戜滑", dto.getAboutUs());
+    }
+
+    private String getValue(String label) {
+        SystemDictData data = systemDictDataBiz.queryByCode(Constants.SYSTEM, label);
+        return data != null ? data.getCode() : null;
+    }
+
+    private void saveOrUpdate(String label, String remark, String value) {
+        SystemDictData existing = systemDictDataBiz.queryByCode(Constants.SYSTEM, label);
+        if (existing != null && existing.getId() != null) {
+            existing.setCode(value);
+            systemDictDataBiz.updateById(existing);
+        } else {
+            SystemDictData newData = new SystemDictData();
+            newData.setDictId(100);
+            newData.setLabel(label);
+            newData.setRemark(remark);
+            newData.setCode(value);
+            newData.setDisabled(false);
+            newData.setDeleted(false);
+            systemDictDataBiz.create(newData);
+        }
+    }
+
+    private void validate(AgreementConfigDTO dto) {
+        if (dto == null
+                || StringUtils.isBlank(dto.getPrivacyAgreement())
+                || StringUtils.isBlank(dto.getUserAgreement())
+                || StringUtils.isBlank(dto.getAboutUs())) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎵�鏈夐厤缃」鍧囦负蹇呭~");
+        }
+    }
+}

--
Gitblit v1.9.3