浏览代码

登录预置环境变量,处理默认值

shiqian 4 年之前
父节点
当前提交
24c9c67b80

+ 25 - 0
boman-api/boman-api-system/src/main/java/com/boman/system/api/RemoteDeptService.java

@@ -0,0 +1,25 @@
+package com.boman.system.api;
+
+import com.boman.common.core.constant.ServiceNameConstants;
+import com.boman.system.api.domain.SysDept;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+
+/**
+ * @author shiqian
+ * @date 2021年04月07日 10:31
+ **/
+@FeignClient(contextId = "remoteDeptService", value = ServiceNameConstants.SYSTEM_SERVICE)
+public interface RemoteDeptService {
+
+    /**
+     * 功能描述: 根据id查找
+     *
+     * @param id deptId
+     * @return com.boman.common.core.web.domain.AjaxResult
+     */
+    @GetMapping(value = "/dept/getById/{id}")
+    SysDept getById(@PathVariable("id") Long id);
+}
+

+ 15 - 0
boman-api/boman-api-system/src/main/java/com/boman/system/api/model/LoginUser.java

@@ -2,6 +2,8 @@ package com.boman.system.api.model;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Set;
 import java.util.Set;
+
+import com.alibaba.fastjson.JSONObject;
 import com.boman.system.api.domain.SysUser;
 import com.boman.system.api.domain.SysUser;
 
 
 /**
 /**
@@ -58,6 +60,11 @@ public class LoginUser implements Serializable
      */
      */
     private SysUser sysUser;
     private SysUser sysUser;
 
 
+    /**
+     * 用户变量
+     */
+    private JSONObject userEnv;
+
     public String getToken()
     public String getToken()
     {
     {
         return token;
         return token;
@@ -147,4 +154,12 @@ public class LoginUser implements Serializable
     {
     {
         this.sysUser = sysUser;
         this.sysUser = sysUser;
     }
     }
+
+    public JSONObject getUserEnv() {
+        return userEnv;
+    }
+
+    public void setUserEnv(JSONObject userEnv) {
+        this.userEnv = userEnv;
+    }
 }
 }

+ 20 - 0
boman-api/boman-domain/src/main/java/com.boman.domain/UserEnvConstant.java

@@ -0,0 +1,20 @@
+package com.boman.domain;
+
+
+
+/**
+ * @author shiqian
+ * @date 2021年04月14日 09:46
+ **/
+public class UserEnvConstant {
+
+
+    public static String USER_ID = "user.id";
+    public static final String USERNAME = "user.name";
+    public static final String USER_DEPT_ID = "user.dept.id";
+    public static final String USER_DEPT_NAME = "user.dept.name";
+    public static final String USER_PARENT_DEPT_ID = "user.parent.dept.id";
+    public static final String USER_PARENT_DEPT_NAME = "user.parent.dept.name";
+
+
+}

文件差异内容过多而无法显示
+ 0 - 0
boman-common/boman-common-security/src/main/java/com/boman/common/security/service/TokenService.java


+ 10 - 0
boman-modules/boman-system/src/main/java/com/boman/system/controller/SysDeptController.java

@@ -78,6 +78,16 @@ public class SysDeptController extends BaseController
         return AjaxResult.success(deptService.selectDeptById(id));
         return AjaxResult.success(deptService.selectDeptById(id));
     }
     }
 
 
+    /**
+     * 根据部门编号获取详细信息
+     */
+    @PreAuthorize(hasPermi = "system:dept:query")
+    @GetMapping(value = "/getById/{id}")
+    public SysDept getById(@PathVariable("id") Long id)
+    {
+        return deptService.selectDeptById(id);
+    }
+
     /**
     /**
      * 获取部门下拉树列表
      * 获取部门下拉树列表
      */
      */

+ 31 - 1
boman-web-core/src/main/java/com/boman/web/core/service/save/BaseSaveServiceImpl.java

@@ -1,7 +1,12 @@
 package com.boman.web.core.service.save;
 package com.boman.web.core.service.save;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.boman.common.core.constant.CacheConstants;
+import com.boman.common.core.utils.SecurityUtils;
+import com.boman.common.core.utils.obj.ObjectUtils;
+import com.boman.common.redis.service.RedisService;
 import com.boman.gen.domain.GenTableColumn;
 import com.boman.gen.domain.GenTableColumn;
+import com.boman.system.api.model.LoginUser;
 import com.boman.web.core.constant.FormDataConstant;
 import com.boman.web.core.constant.FormDataConstant;
 import com.boman.web.core.domain.RowResult;
 import com.boman.web.core.domain.RowResult;
 import com.boman.web.core.domain.TableContext;
 import com.boman.web.core.domain.TableContext;
@@ -27,6 +32,8 @@ public class BaseSaveServiceImpl implements IBaseSaveService {
 
 
     @Autowired
     @Autowired
     private StandardlyMapper mapper;
     private StandardlyMapper mapper;
+    @Autowired
+    private RedisService redisService;
 
 
     /**
     /**
      * 功能描述: 保存一行
      * 功能描述: 保存一行
@@ -42,12 +49,18 @@ public class BaseSaveServiceImpl implements IBaseSaveService {
         String pkName = context.getPkName();
         String pkName = context.getPkName();
         String tableName = context.getTableName();
         String tableName = context.getTableName();
         Timestamp currentTime = new Timestamp(System.currentTimeMillis());
         Timestamp currentTime = new Timestamp(System.currentTimeMillis());
+        commitData.put(pkName.toUpperCase(), maxId);
+
         ColumnUtils.packUpdateByAndTime(columns, commitData, currentTime);
         ColumnUtils.packUpdateByAndTime(columns, commitData, currentTime);
+        // 处理默认值
+        handlerDefaultValue(commitData, columns);
+
+        // 默认创建人和创建时间是都有的
         commitData.put(FormDataConstant.CREATE_TIME.toUpperCase(), currentTime);
         commitData.put(FormDataConstant.CREATE_TIME.toUpperCase(), currentTime);
         commitData.put(FormDataConstant.CREATE_BY.toUpperCase(), "张三");
         commitData.put(FormDataConstant.CREATE_BY.toUpperCase(), "张三");
-        commitData.put(pkName.toUpperCase(), maxId);
         int ret = mapper.insert(tableName, commitData);
         int ret = mapper.insert(tableName, commitData);
         if (ret > 0) {
         if (ret > 0) {
+            LOGGER.info("保存成功,保存的数据为:{}", commitData);
             commitData.put(FormDataConstant.SUCCESS_CNT, ret);
             commitData.put(FormDataConstant.SUCCESS_CNT, ret);
             return RowResult.ok("保存成功", commitData);
             return RowResult.ok("保存成功", commitData);
         }
         }
@@ -55,4 +68,21 @@ public class BaseSaveServiceImpl implements IBaseSaveService {
         return RowResult.error("失败");
         return RowResult.error("失败");
     }
     }
 
 
+    private void handlerDefaultValue(JSONObject jsonObject, List<GenTableColumn> columns) {
+        String token = SecurityUtils.getToken();
+        LoginUser loginUser = redisService.getCacheObject(CacheConstants.LOGIN_TOKEN_KEY + token);
+        JSONObject userEnv = loginUser.getUserEnv();
+        for (GenTableColumn column : columns) {
+            // 有默认值的列, 并且前台传过来的key中不包含
+            if (ObjectUtils.isNotEmpty(column.getDefaultValue())
+                    && !jsonObject.containsKey(column.getColumnName().toLowerCase())
+                    && !jsonObject.containsKey(column.getColumnName().toUpperCase())) {
+                String defaultValue = ColumnUtils.parseVariables(column.getDefaultValue());
+                String variables = userEnv.getString(defaultValue);
+                jsonObject.put(column.getColumnName(), variables);
+            }
+        }
+    }
+
+
 }
 }

+ 6 - 1
boman-web-core/src/main/java/com/boman/web/core/utils/ColumnUtils.java

@@ -55,7 +55,7 @@ public class ColumnUtils {
      *             sort=5  =>  列表可修改
      *             sort=5  =>  列表可修改
      * @return List<GenTableColumn>
      * @return List<GenTableColumn>
      */
      */
-    public static List<GenTableColumn> filterNeedShowData(List<GenTableColumn> allColumns, int sort, Predicate<String> predicate) {
+    public static List<GenTableColumn> filterData(List<GenTableColumn> allColumns, int sort, Predicate<String> predicate) {
         assert sort < 6;
         assert sort < 6;
         List<GenTableColumn> returnData = Lists.newArrayListWithCapacity(16);
         List<GenTableColumn> returnData = Lists.newArrayListWithCapacity(16);
         for (GenTableColumn allColumn : allColumns) {
         for (GenTableColumn allColumn : allColumns) {
@@ -70,4 +70,9 @@ public class ColumnUtils {
 
 
         return returnData;
         return returnData;
     }
     }
+
+    public static String parseVariables(String variables){
+         return variables.replaceAll("\\$", "");
+    }
+
 }
 }

部分文件因为文件数量过多而无法显示