zouyu
3 天以前 abd73edd5d08e26fba60ab47f53722502a87505a
浪潮对接单点登录:租户数据隔离功能
已复制8个文件
已重命名1个文件
已修改20个文件
248 ■■■■ 文件已修改
src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/framework/aspectj/lang/annotation/DataScope.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/controller/SysDeptController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/controller/SysPostController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/controller/SysRoleController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/domain/SysDept.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/domain/SysPost.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/domain/SysRole.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/mapper/SysDeptMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/service/ISysDeptService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/service/impl/SysPostServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/tide/controller/TideController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/tide/utils/TideUtils.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-ccwlxt.yml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-cgglxt.yml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-cwglxt.yml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-hbmjxt.yml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-rlzyxt.yml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-sbglxt.yml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-scgkxt.yml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-xtbgxt.yml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-yxglxt.yml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/system/SysDeptMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/system/SysPostMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/system/SysRoleMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mybatis/mybatis-config.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
@@ -74,7 +74,7 @@
            if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin())
            {
                String permission = StringUtils.defaultIfEmpty(controllerDataScope.permission(), PermissionContextHolder.getContext());
                dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(), controllerDataScope.userAlias(), permission);
                dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(), controllerDataScope.userAlias(), controllerDataScope.tenantIdFelid(), permission);
            }
        }
    }
@@ -86,9 +86,10 @@
     * @param user ç”¨æˆ·
     * @param deptAlias éƒ¨é—¨åˆ«å
     * @param userAlias ç”¨æˆ·åˆ«å
     * @param tenantIdFelid ç§Ÿæˆ·id字段名
     * @param permission æƒé™å­—符
     */
    public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, String permission)
    public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias,String tenantIdFelid, String permission)
    {
        StringBuilder sqlString = new StringBuilder();
        List<String> conditions = new ArrayList<String>();
@@ -138,6 +139,8 @@
                if (StringUtils.isNotBlank(userAlias))
                {
                    sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId()));
                }else if(StringUtils.isNotBlank(tenantIdFelid)){
                    sqlString.append(StringUtils.format(" OR {}.tenant_id = {} ", tenantIdFelid, user.getTenantId()));
                }
                else
                {
src/main/java/com/ruoyi/framework/aspectj/lang/annotation/DataScope.java
@@ -27,6 +27,12 @@
    public String userAlias() default "";
    /**
     * ç§Ÿæˆ·id字段名
     * @return
     */
    public String tenantIdFelid() default "";
    /**
     * æƒé™å­—符(用于多个角色匹配符合要求的权限)默认根据权限注解@ss获取,多个权限用逗号分隔开来
     */
    public String permission() default "";
src/main/java/com/ruoyi/project/system/controller/SysDeptController.java
@@ -1,6 +1,8 @@
package com.ruoyi.project.system.controller;
import java.util.List;
import com.ruoyi.common.utils.SecurityUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -81,6 +83,7 @@
            return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
        }
        dept.setCreateBy(getUsername());
        dept.setTenantId(SecurityUtils.getLoginUser().getTenantId());
        return toAjax(deptService.insertDept(dept));
    }
src/main/java/com/ruoyi/project/system/controller/SysPostController.java
@@ -2,6 +2,8 @@
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@@ -86,6 +88,7 @@
            return error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在");
        }
        post.setCreateBy(getUsername());
        post.setTenantId(SecurityUtils.getLoginUser().getTenantId());
        return toAjax(postService.insertPost(post));
    }
src/main/java/com/ruoyi/project/system/controller/SysRoleController.java
@@ -2,6 +2,8 @@
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@@ -102,6 +104,7 @@
            return error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
        }
        role.setCreateBy(getUsername());
        role.setTenantId(SecurityUtils.getLoginUser().getTenantId());
        return toAjax(roleService.insertRole(role));
    }
src/main/java/com/ruoyi/project/system/domain/SysDept.java
@@ -54,7 +54,17 @@
    /** éƒ¨é—¨ç¼–号 */
    private String deptNick;
    private Long tenantId;
    public Long getTenantId() {
        return tenantId;
    }
    public void setTenantId(Long tenantId) {
        this.tenantId = tenantId;
    }
    /** å­éƒ¨é—¨ */
    private List<SysDept> children = new ArrayList<SysDept>();
src/main/java/com/ruoyi/project/system/domain/SysPost.java
@@ -38,6 +38,16 @@
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;
    private Long tenantId;
    public Long getTenantId() {
        return tenantId;
    }
    public void setTenantId(Long tenantId) {
        this.tenantId = tenantId;
    }
    /** ç”¨æˆ·æ˜¯å¦å­˜åœ¨æ­¤å²—位标识 é»˜è®¤ä¸å­˜åœ¨ */
    private boolean flag = false;
src/main/java/com/ruoyi/project/system/domain/SysRole.java
@@ -4,6 +4,9 @@
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
@@ -64,6 +67,17 @@
    /** è§’色菜单权限 */
    private Set<String> permissions;
    /**租户id*/
    private Long tenantId;
    public Long getTenantId() {
        return tenantId;
    }
    public void setTenantId(Long tenantId) {
        this.tenantId = tenantId;
    }
    public SysRole()
    {
src/main/java/com/ruoyi/project/system/mapper/SysDeptMapper.java
@@ -122,4 +122,6 @@
     * @return
     */
    Long maxLevelDeptId(Long deptId);
    SysDept selectDeptByDeptName(@Param("deptName") String deptName);
}
src/main/java/com/ruoyi/project/system/service/ISysDeptService.java
@@ -20,6 +20,14 @@
    public List<SysDept> selectDeptList(SysDept dept);
    /**
     * æ ¹æ®éƒ¨é—¨åç§°æŸ¥è¯¢éƒ¨é—¨ä¿¡æ¯
     *
     * @param deptName éƒ¨é—¨åç§°
     * @return éƒ¨é—¨ä¿¡æ¯é›†åˆ
     */
    public SysDept selectDeptByDeptName(String deptName);
    /**
     * æŸ¥è¯¢éƒ¨é—¨æ ‘结构信息
     * 
     * @param dept éƒ¨é—¨ä¿¡æ¯
src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java
@@ -42,12 +42,17 @@
     * @return éƒ¨é—¨ä¿¡æ¯é›†åˆ
     */
    @Override
    @DataScope(deptAlias = "d")
    @DataScope(tenantIdFelid = "d")
    public List<SysDept> selectDeptList(SysDept dept)
    {
        return deptMapper.selectDeptList(dept);
    }
    @Override
    public SysDept selectDeptByDeptName(String deptName) {
        return deptMapper.selectDeptByDeptName(deptName);
    }
    /**
     * æŸ¥è¯¢éƒ¨é—¨æ ‘结构信息
     * 
src/main/java/com/ruoyi/project/system/service/impl/SysPostServiceImpl.java
@@ -1,6 +1,8 @@
package com.ruoyi.project.system.service.impl;
import java.util.List;
import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.constant.UserConstants;
@@ -32,6 +34,7 @@
     * @return å²—位信息集合
     */
    @Override
    @DataScope(tenantIdFelid = "p")
    public List<SysPost> selectPostList(SysPost post)
    {
        return postMapper.selectPostList(post);
src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java
@@ -52,7 +52,7 @@
     * @return è§’色数据集合信息
     */
    @Override
    @DataScope(deptAlias = "d")
    @DataScope(tenantIdFelid = "r")
    public List<SysRole> selectRoleList(SysRole role)
    {
        return roleMapper.selectRoleList(role);
src/main/java/com/ruoyi/tide/controller/TideController.java
@@ -1,5 +1,6 @@
package com.ruoyi.tide.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.ruoyi.common.constant.Constants;
@@ -7,20 +8,26 @@
import com.ruoyi.framework.aspectj.lang.annotation.Anonymous;
import com.ruoyi.framework.security.service.SysLoginService;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.service.ISysDeptService;
import com.ruoyi.project.system.service.ISysUserService;
import com.ruoyi.tide.pojo.TidePojo;
import com.ruoyi.tide.utils.TideUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.PreDestroy;
import javax.annotation.security.PermitAll;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -36,6 +43,9 @@
    @Autowired
    private ISysUserService userService;
    @Autowired
    private ISysDeptService deptService;
    @ApiOperation(value = "登录")
    @PostMapping("/tideLogin")
@@ -57,7 +67,20 @@
        String defaultPwd = "I73Kj+Mn$+SI";//默认开通密码固定写死
//        String randomString = TideUtils.getRandomString(12);
        //账号不存在,执行新增操作
        if(Objects.isNull(user)){
        if(ObjectUtils.isEmpty(user)){
            //1.先新增用户对应的公司
            SysDept dept = new SysDept();
            dept.setParentId(100L);//父公司id
            dept.setDeptName(tidePojo.getEnterpriseName());
            dept.setDeptNick(tidePojo.getEnterpriseName());
            dept.setOrderNum(0);
            boolean deptNameUnique = deptService.checkDeptNameUnique(dept);
            if (deptNameUnique){
                deptService.insertDept(dept);
            }
            //查询公司
            SysDept newSysDept = deptService.selectDeptByDeptName(dept.getDeptName());
            dept.setDeptId(ObjectUtils.isEmpty(newSysDept)?100L:newSysDept.getDeptId());
            user = new SysUser();
            String password = SecurityUtils.encryptPassword(defaultPwd);
            user.setPassword(password);
@@ -67,8 +90,9 @@
            user.setDelFlag("0");
            user.setPostIds(new Long[]{1L});
            user.setRoleId(1L);
            user.setRoleIds(new Long[]{2L});
            user.setDeptIds(new Long[]{100L});
            user.setRoleIds(new Long[]{2L});//默认普通角色
            user.setDeptIds(new Long[]{dept.getDeptId()});//绑定公司
            user.setTenantId(dept.getDeptId());
            userService.insertUser(user);
        }
        Map<String, Object> map = new HashMap<>();
src/main/java/com/ruoyi/tide/utils/TideUtils.java
@@ -9,6 +9,7 @@
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -21,9 +22,26 @@
@Component
@Slf4j
public class TideUtils {
    private final static String appId = "1205972857687900160";
    private final static String appSecret = "MgzPMDYwMTIwMjYxNzQ2NDA3OTYGqt";
    public static String APP_ID;
    public static String APP_SECRET;
    @Value("${inspur.appId}")
    private String appId;
    @Value("${inspur.appSecret}")
    private String appSecret;
    @Value("${inspur.appId}")
    public void setAppId(String appId) {
        TideUtils.APP_ID = appId;
    }
    @Value("${inspur.appSecret}")
    public void setAppSecret(String appSecret) {
        TideUtils.APP_SECRET = appSecret;
    }
    // å†…网地址
    private final static String ip = "http://10.136.0.8:8083";
@@ -62,14 +80,14 @@
            xSignSplicingTogether = "x-random=" + xRandom + "&x-time=" + xTime;
        }
        // é…ç½®åŠ å¯†æ–¹å¼ä¸Žå¯†é’¥
        HMac hMac = new HMac(HmacAlgorithm.HmacSHA256, appSecret.getBytes());
        HMac hMac = new HMac(HmacAlgorithm.HmacSHA256, APP_SECRET.getBytes());
        // å¾—出x-sign
        String xSign = hMac.digestHex(xSignSplicingTogether);
        HashMap<String, String> result = new HashMap<>();
        result.put("x-time", xTime);
        result.put("x-random", xRandom);
        result.put("x-sign", xSign);
        result.put("appKey", appId);
        result.put("appKey", APP_ID);
        return result;
    }
@@ -91,13 +109,13 @@
            xSignSplicingTogether = "x-random=" + xRandom + "&x-time=" + xTime;
        }
        // x-sign åР坆
        HMac hMac = new HMac(HmacAlgorithm.HmacSHA256, appSecret.getBytes());
        HMac hMac = new HMac(HmacAlgorithm.HmacSHA256, APP_SECRET.getBytes());
        String xSign = hMac.digestHex(xSignSplicingTogether);
        HashMap<String, String> result = new HashMap<>();
        result.put("x-time", xTime);
        result.put("x-random", xRandom);
        result.put("x-sign", xSign);
        result.put("appKey", appId);
        result.put("appKey", APP_ID);
        return result;
    }
@@ -117,8 +135,8 @@
        String url = ip + "/cpn/extral/applicationCode/appAuthCheck";
        JSONObject json = new JSONObject();
        json.put("code", code);
        json.put("appID", appId);
        json.put("appSecret", appSecret);
        json.put("appID", APP_ID);
        json.put("appSecret", APP_SECRET);
        HashMap<String, String> header = getPostHeader(json.toString());
        String body = HttpRequest.post(url)
                .headerMap(header, false)
@@ -132,7 +150,7 @@
    public static JSONObject getUserInfo(String token) {
        String url = ip + "/cpn/api/extral/applicationCode/getUserInfoByToken";
        JSONObject json = new JSONObject();
        json.put("appID", appId);
        json.put("appID", APP_ID);
        HashMap<String, String> header = getPostHeader(json.toString());
        header.put("Authorization", token);
        String body = HttpRequest.post(url)
src/main/resources/application-ccwlxt.yml
copy from src/main/resources/application-tide.yml copy to src/main/resources/application-ccwlxt.yml
Îļþ´Ó src/main/resources/application-tide.yml ¸´ÖÆ
@@ -1,4 +1,7 @@
# é¡¹ç›®ç›¸å…³é…ç½®
# èН坼-仓储物流系统项目相关配置
inspur:
  appId: 1205971611543404544
  appSecret: VkyDMDYwMTIwMjYxNzQxNDM2OTItrv
ruoyi:
  # åç§°
  name: RuoYi
@@ -62,7 +65,7 @@
    druid:
      # ä¸»åº“数据源
      master:
        url: jdbc:mysql://127.0.0.1:3306/mis-ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        url: jdbc:mysql://172.17.0.1:3306/mis-ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: zttZTT123!
      # ä»Žåº“数据源
@@ -134,8 +137,8 @@
  # redis é…ç½®
  redis:
    # åœ°å€
    host: 127.0.0.1
#    host: 172.17.0.1
#    host: 127.0.0.1
    host: 172.17.0.1
    # ç«¯å£ï¼Œé»˜è®¤ä¸º6379
    port: 6379
    # æ•°æ®åº“索引
src/main/resources/application-cgglxt.yml
ÎļþÃû´Ó src/main/resources/application-tide.yml ÐÞ¸Ä
@@ -1,4 +1,7 @@
# é¡¹ç›®ç›¸å…³é…ç½®
# èН坼-采购管理系统项目相关配置
inspur:
  appId: 1205971212673482752
  appSecret: d9R2MDYwMTIwMjYxNzQwMDg1OTU4Du
ruoyi:
  # åç§°
  name: RuoYi
src/main/resources/application-cwglxt.yml
copy from src/main/resources/application-tide.yml copy to src/main/resources/application-cwglxt.yml
Îļþ´Ó src/main/resources/application-tide.yml ¸´ÖÆ
@@ -1,4 +1,7 @@
# é¡¹ç›®ç›¸å…³é…ç½®
# èН坼-财务管理系统项目相关配置
inspur:
  appId: 1205964626886393856
  appSecret: 2kxXMDYwMTIwMjYxNzEzNTg0MjE91C
ruoyi:
  # åç§°
  name: RuoYi
@@ -62,7 +65,7 @@
    druid:
      # ä¸»åº“数据源
      master:
        url: jdbc:mysql://127.0.0.1:3306/mis-ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        url: jdbc:mysql://10.136.58.65:3306/mis-ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: zttZTT123!
      # ä»Žåº“数据源
@@ -141,8 +144,8 @@
    # æ•°æ®åº“索引
    database: 0
    # å¯†ç 
    password: zttZTT123!
#    password: 123456
#    password: zttZTT123!
    password: 123456
    # è¿žæŽ¥è¶…æ—¶æ—¶é—´
    timeout: 10s
src/main/resources/application-hbmjxt.yml
copy from src/main/resources/application-tide.yml copy to src/main/resources/application-hbmjxt.yml
Îļþ´Ó src/main/resources/application-tide.yml ¸´ÖÆ
@@ -1,4 +1,7 @@
# é¡¹ç›®ç›¸å…³é…ç½®
# èН坼-环保门禁系统项目相关配置
inspur:
  appId: 1205972857687900160
  appSecret: MgzPMDYwMTIwMjYxNzQ2NDA3OTYGqt
ruoyi:
  # åç§°
  name: RuoYi
src/main/resources/application-rlzyxt.yml
copy from src/main/resources/application-tide.yml copy to src/main/resources/application-rlzyxt.yml
Îļþ´Ó src/main/resources/application-tide.yml ¸´ÖÆ
@@ -1,4 +1,7 @@
# é¡¹ç›®ç›¸å…³é…ç½®
# èН坼-人力资源系统项目相关配置
inspur:
  appId: 1205972506809204736
  appSecret: 4g5AMDYwMTIwMjYxNzQ1MTcxNDE35h
ruoyi:
  # åç§°
  name: RuoYi
@@ -62,7 +65,7 @@
    druid:
      # ä¸»åº“数据源
      master:
        url: jdbc:mysql://127.0.0.1:3306/mis-ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        url: jdbc:mysql://172.17.0.1:3306/mis-ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: zttZTT123!
      # ä»Žåº“数据源
@@ -134,8 +137,8 @@
  # redis é…ç½®
  redis:
    # åœ°å€
    host: 127.0.0.1
#    host: 172.17.0.1
#    host: 127.0.0.1
    host: 172.17.0.1
    # ç«¯å£ï¼Œé»˜è®¤ä¸º6379
    port: 6379
    # æ•°æ®åº“索引
src/main/resources/application-sbglxt.yml
copy from src/main/resources/application-tide.yml copy to src/main/resources/application-sbglxt.yml
Îļþ´Ó src/main/resources/application-tide.yml ¸´ÖÆ
@@ -1,4 +1,7 @@
# é¡¹ç›®ç›¸å…³é…ç½®
# èН坼-设备管理系统项目相关配置
inspur:
  appId: 1205969741508771840
  appSecret: rnAvMDYwMTIwMjYxNzM0MTc4NDEIxC
ruoyi:
  # åç§°
  name: RuoYi
src/main/resources/application-scgkxt.yml
copy from src/main/resources/application-tide.yml copy to src/main/resources/application-scgkxt.yml
Îļþ´Ó src/main/resources/application-tide.yml ¸´ÖÆ
@@ -1,4 +1,7 @@
# é¡¹ç›®ç›¸å…³é…ç½®
# èН坼-生产管控系统项目相关配置
inspur:
  appId: 1205970458172719104
  appSecret: GFHKMDYwMTIwMjYxNzM3MDg3MDc0g1
ruoyi:
  # åç§°
  name: RuoYi
src/main/resources/application-xtbgxt.yml
copy from src/main/resources/application-tide.yml copy to src/main/resources/application-xtbgxt.yml
Îļþ´Ó src/main/resources/application-tide.yml ¸´ÖÆ
@@ -1,4 +1,7 @@
# é¡¹ç›®ç›¸å…³é…ç½®
# èН坼-协同办公系统项目相关配置
inspur:
  appId: 1205970862683979776
  appSecret: 9UR1MDYwMTIwMjYxNzM4NDUxNTARkN
ruoyi:
  # åç§°
  name: RuoYi
src/main/resources/application-yxglxt.yml
copy from src/main/resources/application-tide.yml copy to src/main/resources/application-yxglxt.yml
Îļþ´Ó src/main/resources/application-tide.yml ¸´ÖÆ
@@ -1,4 +1,7 @@
# é¡¹ç›®ç›¸å…³é…ç½®
# èН坼-营销管理系统项目相关配置
inspur:
  appId: 1205972006802030592
  appSecret: BgpqMDYwMTIwMjYxNzQzMTc5MjkKou
ruoyi:
  # åç§°
  name: RuoYi
@@ -62,7 +65,7 @@
    druid:
      # ä¸»åº“数据源
      master:
        url: jdbc:mysql://127.0.0.1:3306/mis-ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        url: jdbc:mysql://172.17.0.1:3306/mis-ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: zttZTT123!
      # ä»Žåº“数据源
@@ -134,8 +137,8 @@
  # redis é…ç½®
  redis:
    # åœ°å€
    host: 127.0.0.1
#    host: 172.17.0.1
#    host: 127.0.0.1
    host: 172.17.0.1
    # ç«¯å£ï¼Œé»˜è®¤ä¸º6379
    port: 6379
    # æ•°æ®åº“索引
src/main/resources/application.yml
@@ -1,4 +1,13 @@
# Spring配置
spring:
  profiles:
    active: tide
    active: cwglxt
#10.136.58.65    è´¢åŠ¡ç®¡ç†ç³»ç»Ÿ    cwglxt
#10.136.58.66    è®¾å¤‡ç®¡ç†ç³»ç»Ÿ    sbglxt
#10.136.58.67    ç”Ÿäº§ç®¡æŽ§ç³»ç»Ÿ    scgkxt
#10.136.58.68    ååŒåŠžå…¬ç³»ç»Ÿ    xtbgxt
#10.136.58.69    é‡‡è´­ç®¡ç†ç³»ç»Ÿ    cgglxt
#10.136.58.70    ä»“储物流系统    ccwlxt
#10.136.58.71    è¥é”€ç®¡ç†ç³»ç»Ÿ    yxglxt
#10.136.58.72    äººåŠ›èµ„æºç³»ç»Ÿ    rlzyxt
#10.136.58.73    çŽ¯ä¿é—¨ç¦ç³»ç»Ÿ    hbmjxt
src/main/resources/mapper/system/SysDeptMapper.xml
@@ -99,6 +99,7 @@
             <if test="phone != null and phone != ''">phone,</if>
             <if test="email != null and email != ''">email,</if>
            <if test="deptNick != null and deptNick != ''">dept_nick,</if>
            <if test="tenantId != null and tenantId != ''">tenant_id,</if>
             <if test="status != null">status,</if>
             <if test="createBy != null and createBy != ''">create_by,</if>
             create_time
@@ -112,6 +113,7 @@
             <if test="phone != null and phone != ''">#{phone},</if>
             <if test="email != null and email != ''">#{email},</if>
            <if test="deptNick != null and deptNick != '' ">#{deptNick},</if>
            <if test="tenantId != null and tenantId != '' ">#{tenantId},</if>
             <if test="status != null">#{status},</if>
             <if test="createBy != null and createBy != ''">#{createBy},</if>
             sysdate()
@@ -178,5 +180,10 @@
        FROM DepartmentHierarchy
        WHERE parent_id = 100;
    </select>
    <select id="selectDeptByDeptName" resultType="com.ruoyi.project.system.domain.SysDept">
        <include refid="selectDeptVo"/>
        WHERE d.dept_name = #{deptName}
        LIMIT 1
    </select>
</mapper> 
src/main/resources/mapper/system/SysPostMapper.xml
@@ -19,7 +19,7 @@
    
    <sql id="selectPostVo">
        select post_id, post_code, post_name, post_sort, status, create_by, create_time, remark 
        from sys_post
        from sys_post p
    </sql>
    
    <select id="selectPostList" parameterType="com.ruoyi.project.system.domain.SysPost" resultMap="SysPostResult">
@@ -34,6 +34,8 @@
            <if test="postName != null and postName != ''">
                AND post_name like concat('%', #{postName}, '%')
            </if>
            <!-- æ•°æ®èŒƒå›´è¿‡æ»¤ -->
            ${params.dataScope}
        </where>
    </select>
    
@@ -95,6 +97,7 @@
             <if test="status != null and status != ''">status,</if>
             <if test="remark != null and remark != ''">remark,</if>
             <if test="createBy != null and createBy != ''">create_by,</if>
             <if test="tenantId != null and tenantId != ''">tenant_id,</if>
             create_time
         )values(
             <if test="postId != null and postId != 0">#{postId},</if>
@@ -104,6 +107,7 @@
             <if test="status != null and status != ''">#{status},</if>
             <if test="remark != null and remark != ''">#{remark},</if>
             <if test="createBy != null and createBy != ''">#{createBy},</if>
             <if test="tenantId != null and tenantId != ''">#{tenantId},</if>
             sysdate()
         )
    </insert>
src/main/resources/mapper/system/SysRoleMapper.xml
@@ -27,6 +27,7 @@
        from sys_role r
            left join sys_user_role ur on ur.role_id = r.role_id
            left join sys_user u on u.user_id = ur.user_id
            left join sys_user_dept d on u.user_id = d.user_id
    </sql>
    
    <select id="selectRoleList" parameterType="com.ruoyi.project.system.domain.SysRole" resultMap="SysRoleResult">
@@ -103,6 +104,7 @@
             <if test="deptCheckStrictly != null">dept_check_strictly,</if>
             <if test="status != null and status != ''">status,</if>
             <if test="remark != null and remark != ''">remark,</if>
             <if test="tenantId != null and tenantId != ''">tenant_id,</if>
             <if test="createBy != null and createBy != ''">create_by,</if>
             create_time
         )values(
@@ -115,6 +117,7 @@
             <if test="deptCheckStrictly != null">#{deptCheckStrictly},</if>
             <if test="status != null and status != ''">#{status},</if>
             <if test="remark != null and remark != ''">#{remark},</if>
             <if test="tenantId != null and tenantId != ''">#{tenantId},</if>
             <if test="createBy != null and createBy != ''">#{createBy},</if>
             sysdate()
         )
src/main/resources/mybatis/mybatis-config.xml
@@ -12,8 +12,8 @@
        <!-- é…ç½®é»˜è®¤çš„æ‰§è¡Œå™¨.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新 -->
        <setting name="defaultExecutorType"      value="SIMPLE" />
        <!-- æŒ‡å®š MyBatis æ‰€ç”¨æ—¥å¿—的具体实现 -->
        <setting name="logImpl"                  value="SLF4J"  />
<!--        <setting name="logImpl"                  value="org.apache.ibatis.logging.stdout.StdOutImpl"  />-->
<!--        <setting name="logImpl"                  value="SLF4J"  />-->
        <setting name="logImpl"                  value="org.apache.ibatis.logging.stdout.StdOutImpl"  />
        <!-- ä½¿ç”¨é©¼å³°å‘½åæ³•转换字段 -->
        <!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
    </settings>