From d32500cf63cc73cdc850c94897932efd8f4691b9 Mon Sep 17 00:00:00 2001
From: luqingyang <lqy5492@163.com>
Date: 星期三, 25 十月 2023 09:21:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java |  132 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 132 insertions(+), 0 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java
new file mode 100644
index 0000000..d916f93
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java
@@ -0,0 +1,132 @@
+package com.consum.base.service;
+
+import com.consum.base.pojo.FinSysTenantParam;
+import com.consum.model.po.FinSysTenant;
+import com.iplatform.model.po.S_user_core;
+import com.walker.infrastructure.utils.CollectionUtils;
+import com.walker.infrastructure.utils.DateUtils;
+import com.walker.infrastructure.utils.StringUtils;
+import com.walker.jdbc.service.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description 绯荤粺鏈烘瀯
+ * @Author 鍗㈠簡闃�
+ * @Date 2023/10/23
+ */
+@Service
+public class FinSysTenantServiceImpl extends BaseServiceImpl {
+
+    private static final String QUERY_BY_PARENT_CODE = "SELECT * FROM fin_sys_tenant WHERE CODE = ?";
+
+    /**
+     * @Description 鏍规嵁鏈烘瀯id鏌ヨ鏈烘瀯
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/23
+     */
+    public FinSysTenant selectByTenantId(String code) {
+        List<FinSysTenant> select = this.select(QUERY_BY_PARENT_CODE, new Object[]{code}, new FinSysTenant());
+        if (StringUtils.isEmptyList(select)) {
+            return null;
+        } else {
+            return select.get(0);
+        }
+    }
+
+    /**
+     * 娣诲姞鏈烘瀯
+     * @author 鍗㈠簡闃�
+     * @date 2023/10/4
+     */
+    public int addSysTenant(FinSysTenantParam param, S_user_core currentUser, int lv) {
+        FinSysTenant sysTenant = new FinSysTenant();
+
+        //id鍜宼empId
+        StringBuilder sql = new StringBuilder("SELECT max(id) FROM fin_sys_tenant WHERE 1=1");
+        HashMap<String, Object> paramts = new HashMap<>();
+
+        sql.append(" and parent_id =:parent_id");
+        paramts.put("parent_id", param.getParentId());
+
+        List<Map<String, Object>> list = this.select(sql.toString(), paramts);
+        long id = 0L;
+        if (!CollectionUtils.isEmpty(list) && list.get(0).get("max(id)") != null) {
+            id = (Long) list.get(0).get("max(id)") + 1;
+        } else {
+            id = param.getParentId() * 1000 + 1;
+        }
+        sysTenant.setTempId(id);
+        sysTenant.setId(id);
+        sysTenant.setStatus(param.getStatus());
+
+        sysTenant.setParentId(param.getParentId());
+        sysTenant.setCode(param.getCode());
+        sysTenant.setName(param.getName());
+        sysTenant.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        sysTenant.setSummary(param.getSummary());
+        sysTenant.setCreateBy(currentUser.getUser_name());
+        //璁剧疆鍚勫眰绾d鍙婂悕绉�
+        sysTenant.setLv(lv);
+        setLvIdAndName(param, sysTenant, id, lv);
+
+        return this.insert(sysTenant);
+    }
+
+    /**
+     * 璁剧疆鍚勫眰绾d鍙婂悕绉�
+     *
+     * @author 鍗㈠簡闃�
+     * @date 2023/10/4
+     */
+    private void setLvIdAndName(FinSysTenantParam param, FinSysTenant sysTenant, long id, int lv) {
+        if (lv == 2) {    //鏂板甯傜骇鏈烘瀯
+            //鏌ヨ涓婁竴绾� - 鐪佺骇
+            FinSysTenant finSysTenant1 = this.get(new FinSysTenant(param.getParentId()));
+            if (finSysTenant1 != null) {
+                sysTenant.setLv1Id(finSysTenant1.getId());
+                sysTenant.setLv1Name(finSysTenant1.getName());
+                sysTenant.setLv2Id(id);
+                sysTenant.setLv2Name(param.getName());
+            }
+        } else if (lv == 3) {     //鏂板鍘跨骇鏈烘瀯
+            //鏌ヨ涓婁竴绾� - 甯傜骇
+            FinSysTenant finSysTenant2 = this.get(new FinSysTenant(param.getParentId()));
+            if (finSysTenant2 != null) {
+                //鏌ヨ涓婁竴绾� - 鐪佺骇
+                FinSysTenant finSysTenant1 = this.get(new FinSysTenant(finSysTenant2.getParentId()));
+
+                sysTenant.setLv1Id(finSysTenant1.getId());
+                sysTenant.setLv1Name(finSysTenant1.getName());
+                sysTenant.setLv2Id(finSysTenant2.getId());
+                sysTenant.setLv2Name(finSysTenant2.getName());
+                sysTenant.setLv3Id(id);
+                sysTenant.setLv3Name(param.getName());
+            }
+        } else if (lv == 4) {      //鏂板鏀眬鏈烘瀯
+            //鏌ヨ涓婁竴绾� - 鍘跨骇
+            FinSysTenant finSysTenant3 = this.get(new FinSysTenant(param.getParentId()));
+            if (finSysTenant3 != null) {
+                //鏌ヨ涓婁竴绾� - 甯傜骇
+                FinSysTenant finSysTenant2 = this.get(new FinSysTenant(finSysTenant3.getParentId()));
+                if (finSysTenant2 != null) {
+                    //鏌ヨ涓婁竴绾� - 鐪佺骇
+                    FinSysTenant sysTenant1 = this.get(new FinSysTenant(finSysTenant2.getParentId()));
+                    if (sysTenant1 != null) {
+                        sysTenant.setLv1Id(sysTenant1.getId());
+                        sysTenant.setLv1Name(sysTenant1.getName());
+                        sysTenant.setLv2Id(finSysTenant2.getId());
+                        sysTenant.setLv2Name(finSysTenant2.getName());
+                        sysTenant.setLv3Id(finSysTenant3.getId());
+                        sysTenant.setLv3Name(finSysTenant3.getName());
+                        sysTenant.setLv4Id(id);
+                        sysTenant.setLv4Name(param.getName());
+                    }
+                }
+            }
+        }
+    }
+}

--
Gitblit v1.9.1