songyh %!s(int64=3) %!d(string=hai) anos
pai
achega
367058b663
Modificáronse 25 ficheiros con 1282 adicións e 67 borrados
  1. 13 0
      jeecg-boot-base/jeecg-boot-base-api/jeecg-system-local-api/src/main/java/org/jeecg/common/system/api/ICommonService.java
  2. 4 4
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java
  3. 4 5
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/PermissionDataAspect.java
  4. 186 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/entity/SysDepart.java
  5. 82 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/entity/SysDict.java
  6. 183 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/entity/SysPermission.java
  7. 82 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/entity/SysPermissionDataRule.java
  8. 223 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/entity/SysUser.java
  9. 33 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/mapper/CoreMapper.java
  10. 46 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/mapper/CorePermissionMapper.java
  11. 51 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/mapper/xml/CoreMapper.xml
  12. 79 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/mapper/xml/CorePermissionMapper.xml
  13. 34 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/service/ICoreService.java
  14. 210 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/service/impl/CoreServiceImpl.java
  15. 1 1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusConfig.java
  16. 2 1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
  17. 6 0
      jeecg-boot-bytedance-ad/pom.xml
  18. 0 3
      jeecg-boot-bytedance-ad/src/main/java/ctop/bytedance/ad/JeecgBootBytedanceAdApplication.java
  19. 5 8
      jeecg-boot-bytedance-ad/src/main/java/ctop/bytedance/ad/advertise/controller/AiBytedanceAdvertiserStrategyController.java
  20. 5 4
      jeecg-boot-bytedance-ad/src/main/java/ctop/bytedance/ad/advertise/controller/BytedanceGeneralCopywriterController.java
  21. 5 4
      jeecg-boot-bytedance-ad/src/main/java/ctop/bytedance/ad/advertise/controller/BytedanceReportController.java
  22. 5 4
      jeecg-boot-bytedance-ad/src/main/java/ctop/bytedance/ad/advertise/controller/BytedanceVideoSlogenInfoController.java
  23. 0 31
      jeecg-boot-bytedance-ad/src/main/java/ctop/bytedance/ad/feign/system/SystemFeignClient.java
  24. 21 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/order/CommonServiceImpl.java
  25. 2 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysPermissionDataRuleService.java

+ 13 - 0
jeecg-boot-base/jeecg-boot-base-api/jeecg-system-local-api/src/main/java/org/jeecg/common/system/api/ICommonService.java

@@ -0,0 +1,13 @@
+package org.jeecg.common.system.api;
+
+/**
+ * <p>
+ * 用户表 服务类
+ * </p>
+ *
+ * @Author scott
+ * @since 2018-12-20
+ */
+public interface ICommonService {
+    String getRoleCodeByUserId(String userId);
+}

+ 4 - 4
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java

@@ -10,10 +10,10 @@ import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Pointcut;
-import org.jeecg.common.api.CommonAPI;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.service.ICoreService;
 import org.jeecg.common.util.oConvertUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -37,7 +37,7 @@ import java.util.List;
 @Slf4j
 public class DictAspect {
     @Autowired
-    private CommonAPI commonAPI;
+    private ICoreService coreService;
 
     /**
      * 定义切点Pointcut
@@ -154,9 +154,9 @@ public class DictAspect {
                 continue; //跳过循环
             }
             if (!StringUtils.isEmpty(table)){
-                tmpValue= commonAPI.translateDictFromTable(table,text,code,k.trim(),extendsKey,extendsValue);
+                tmpValue= coreService.queryTableDictTextByKey(table,text,code,k.trim(),extendsKey,extendsValue);
             }else {
-                tmpValue = commonAPI.translateDict(code, k.trim(),extendsKey,extendsValue);
+                tmpValue = coreService.queryDictTextByKey(code, k.trim(),extendsKey,extendsValue);
             }
 
             if (tmpValue != null) {

+ 4 - 5
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/PermissionDataAspect.java

@@ -8,6 +8,7 @@ import org.aspectj.lang.annotation.Pointcut;
 import org.aspectj.lang.reflect.MethodSignature;
 import org.jeecg.common.api.CommonAPI;
 import org.jeecg.common.aspect.annotation.PermissionData;
+import org.jeecg.common.system.service.ICoreService;
 import org.jeecg.common.system.util.JeecgDataAutorUtils;
 import org.jeecg.common.system.util.JwtUtil;
 import org.jeecg.common.system.vo.SysPermissionDataRuleModel;
@@ -31,10 +32,8 @@ import java.util.List;
 @Component
 @Slf4j
 public class PermissionDataAspect {
-
     @Autowired
-    private CommonAPI commonAPI;
-
+    private ICoreService coreService;
     @Pointcut("@annotation(org.jeecg.common.aspect.annotation.PermissionData)")
     public void pointCut() {
 
@@ -55,12 +54,12 @@ public class PermissionDataAspect {
         String username = JwtUtil.getUserNameByToken(request);
         //查询数据权限信息
         //TODO 微服务情况下也得支持缓存机制
-        List<SysPermissionDataRuleModel> dataRules = commonAPI.queryPermissionDataRule(component, requestPath, username);
+        List<SysPermissionDataRuleModel> dataRules = coreService.queryPermissionDataRule(component, requestPath, username);
         if(dataRules!=null && dataRules.size()>0) {
             //临时存储
             JeecgDataAutorUtils.installDataSearchConditon(request, dataRules);
             //TODO 微服务情况下也得支持缓存机制
-            SysUserCacheInfo userinfo = commonAPI.getCacheUser(username);
+            SysUserCacheInfo userinfo = coreService.getCacheUser(username);
             JeecgDataAutorUtils.installUserInfo(request, userinfo);
         }
         return  point.proceed();

+ 186 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/entity/SysDepart.java

@@ -0,0 +1,186 @@
+package org.jeecg.common.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 部门表
+ * <p>
+ *
+ * @Author Steve
+ * @Since 2019-01-22
+ */
+@Data
+@TableName("sys_depart")
+public class SysDepart implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID
+     */
+    @TableId(type = IdType.ID_WORKER_STR)
+    private String id;
+    /**
+     * 父机构ID
+     */
+    private String parentId;
+    /**
+     * 机构/部门名称
+     */
+    @Excel(name = "机构/部门名称", width = 15)
+    private String departName;
+    /**
+     * 英文名
+     */
+    @Excel(name = "英文名", width = 15)
+    private String departNameEn;
+    /**
+     * 缩写
+     */
+    private String departNameAbbr;
+    /**
+     * 排序
+     */
+    @Excel(name = "排序", width = 15)
+    private Integer departOrder;
+    /**
+     * 描述
+     */
+    @Excel(name = "描述", width = 15)
+    private String description;
+    /**
+     * 机构类别 1组织机构,2岗位
+     */
+    @Excel(name = "机构类别", width = 15, dicCode = "org_category")
+    private String orgCategory;
+    /**
+     * 机构类型
+     */
+    private String orgType;
+    /**
+     * 机构编码
+     */
+    @Excel(name = "机构编码", width = 15)
+    private String orgCode;
+    /**
+     * 手机号
+     */
+    @Excel(name = "手机号", width = 15)
+    private String mobile;
+    /**
+     * 传真
+     */
+    @Excel(name = "传真", width = 15)
+    private String fax;
+    /**
+     * 地址
+     */
+    @Excel(name = "地址", width = 15)
+    private String address;
+    /**
+     * 备注
+     */
+    @Excel(name = "备注", width = 15)
+    private String memo;
+    /**
+     * 状态(1启用,0不启用)
+     */
+    @Dict(dicCode = "depart_status")
+    private String status;
+    /**
+     * 删除状态(0,正常,1已删除)
+     */
+    @Dict(dicCode = "del_flag")
+    private String delFlag;
+    /**
+     * 创建人
+     */
+    private String createBy;
+    /**
+     * 创建日期
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /**
+     * 更新人
+     */
+    private String updateBy;
+    /**
+     * 更新日期
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+    /**
+     * 领导 ID
+     */
+    private String leaderId;
+
+    @TableField(exist = false)
+    private String title;
+
+    /**
+     * 领导姓名
+     */
+    private String leaderName;
+
+    /**
+     * 重写equals方法
+     */
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        if (!super.equals(o)) {
+            return false;
+        }
+        SysDepart depart = (SysDepart) o;
+        return Objects.equals(id, depart.id) &&
+                Objects.equals(parentId, depart.parentId) &&
+                Objects.equals(departName, depart.departName) &&
+                Objects.equals(departNameEn, depart.departNameEn) &&
+                Objects.equals(departNameAbbr, depart.departNameAbbr) &&
+                Objects.equals(departOrder, depart.departOrder) &&
+                Objects.equals(description, depart.description) &&
+                Objects.equals(orgType, depart.orgType) &&
+                Objects.equals(orgCode, depart.orgCode) &&
+                Objects.equals(mobile, depart.mobile) &&
+                Objects.equals(fax, depart.fax) &&
+                Objects.equals(address, depart.address) &&
+                Objects.equals(memo, depart.memo) &&
+                Objects.equals(status, depart.status) &&
+                Objects.equals(delFlag, depart.delFlag) &&
+                Objects.equals(createBy, depart.createBy) &&
+                Objects.equals(createTime, depart.createTime) &&
+                Objects.equals(updateBy, depart.updateBy) &&
+                Objects.equals(updateTime, depart.updateTime);
+    }
+
+    /**
+     * 重写hashCode方法
+     */
+    @Override
+    public int hashCode() {
+        return Objects.hash(super.hashCode(), id, parentId, departName,
+                departNameEn, departNameAbbr, departOrder, description,
+                orgType, orgCode, mobile, fax, address, memo, status,
+                delFlag, createBy, createTime, updateBy, updateTime);
+    }
+}

+ 82 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/entity/SysDict.java

@@ -0,0 +1,82 @@
+package org.jeecg.common.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 字典表
+ * </p>
+ *
+ * @Author zhangweijian
+ * @since 2018-12-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SysDict implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ID_WORKER_STR)
+    private String id;
+
+    /**
+     * [预留字段,暂时无用]
+     * 字典类型,0 string,1 number类型,2 boolean
+     * 前端js对stirng类型和number类型 boolean 类型敏感,需要区分。在select 标签匹配的时候会用到
+     * 默认为string类型
+     */
+    private Integer type;
+
+    /**
+     * 字典名称
+     */
+    private String dictName;
+
+    /**
+     * 字典编码
+     */
+    private String dictCode;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 删除状态
+     */
+    @TableLogic
+    private Integer delFlag;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+}

+ 183 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/entity/SysPermission.java

@@ -0,0 +1,183 @@
+package org.jeecg.common.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 菜单权限表
+ * </p>
+ *
+ * @Author scott
+ * @since 2018-12-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SysPermission implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	@TableId(type = IdType.ID_WORKER_STR)
+	private String id;
+
+	/**
+	 * 父id
+	 */
+	private String parentId;
+
+	/**
+	 * 菜单名称
+	 */
+	private String name;
+
+	/**
+	 * 菜单权限编码,例如:“sys:schedule:list,sys:schedule:info”,多个逗号隔开
+	 */
+	private String perms;
+	/**
+	 * 权限策略1显示2禁用
+	 */
+	private String permsType;
+
+	/**
+	 * 菜单图标
+	 */
+	private String icon;
+
+	/**
+	 * 组件
+	 */
+	private String component;
+
+	/**
+	 * 组件名字
+	 */
+	private String componentName;
+
+	/**
+	 * 路径
+	 */
+	private String url;
+	/**
+	 * 一级菜单跳转地址
+	 */
+	private String redirect;
+
+	/**
+	 * 菜单排序
+	 */
+	private Double sortNo;
+
+	/**
+	 * 类型(0:一级菜单;1:子菜单 ;2:按钮权限)
+	 */
+	@Dict(dicCode = "menu_type")
+	private Integer menuType;
+
+	/**
+	 * 是否叶子节点: 1:是  0:不是
+	 */
+	@TableField(value="is_leaf")
+	private boolean leaf;
+
+	/**
+	 * 是否路由菜单: 0:不是  1:是(默认值1)
+	 */
+	@TableField(value="is_route")
+	private boolean route;
+
+
+	/**
+	 * 是否缓存页面: 0:不是  1:是(默认值1)
+	 */
+	@TableField(value="keep_alive")
+	private boolean keepAlive;
+
+	/**
+	 * 描述
+	 */
+	private String description;
+
+	/**
+	 * 创建人
+	 */
+	private String createBy;
+
+	/**
+	 * 删除状态 0正常 1已删除
+	 */
+	private Integer delFlag;
+
+	/**
+	 * 是否配置菜单的数据权限 1是0否 默认0
+	 */
+	private Integer ruleFlag;
+
+	/**
+	 * 是否隐藏路由菜单: 0否,1是(默认值0)
+	 */
+	private boolean hidden;
+
+	/**
+	 * 创建时间
+	 */
+	private Date createTime;
+
+	/**
+	 * 更新人
+	 */
+	private String updateBy;
+
+	/**
+	 * 更新时间
+	 */
+	private Date updateTime;
+
+	/**按钮权限状态(0无效1有效)*/
+	private String status;
+
+	/**alwaysShow*/
+    private boolean alwaysShow;
+
+
+	/*update_begin author:wuxianquan date:20190908 for:实体增加字段 */
+    /** 外链菜单打开方式 0/内部打开 1/外部打开 */
+    private boolean internalOrExternal;
+	/*update_end author:wuxianquan date:20190908 for:实体增加字段 */
+
+    public SysPermission() {
+
+    }
+    public SysPermission(boolean index) {
+    	if(index) {
+    		this.id = "9502685863ab87f0ad1134142788a385";
+        	this.name="首页";
+        	this.component="dashboard/Analysis";
+        	this.componentName="dashboard-analysis";
+        	this.url="/dashboard/analysis";
+        	this.icon="home";
+        	this.menuType=0;
+        	this.sortNo=0.0;
+        	this.ruleFlag=0;
+        	this.delFlag=0;
+        	this.alwaysShow=false;
+        	this.route=true;
+        	this.keepAlive=true;
+        	this.leaf=true;
+        	this.hidden=false;
+    	}
+
+    }
+}

+ 82 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/entity/SysPermissionDataRule.java

@@ -0,0 +1,82 @@
+package org.jeecg.common.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 菜单权限规则表
+ * </p>
+ *
+ * @Author huangzhilin
+ * @since 2019-03-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SysPermissionDataRule implements Serializable {
+	
+	private static final long serialVersionUID = 1L;
+	
+	/**
+	 * id
+	 */
+	@TableId(type = IdType.ASSIGN_ID)
+	private String id;
+	
+	/**
+	 * 对应的菜单id
+	 */
+	private String permissionId;
+	
+	/**
+	 * 规则名称
+	 */
+	private String ruleName;
+	
+	/**
+	 * 字段
+	 */
+	private String ruleColumn;
+	
+	/**
+	 * 条件
+	 */
+	private String ruleConditions;
+	
+	/**
+	 * 规则值
+	 */
+	private String ruleValue;
+	
+	/**
+	 * 状态值 1有效 0无效
+	 */
+	private String status;
+	
+	/**
+	 * 创建时间
+	 */
+	private Date createTime;
+	
+	/**
+	 * 创建人
+	 */
+	private String createBy;
+	
+	/**
+	 * 修改时间
+	 */
+	private Date updateTime;
+	
+	/**
+	 * 修改人
+	 */
+	private String updateBy;
+}

+ 223 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/entity/SysUser.java

@@ -0,0 +1,223 @@
+package org.jeecg.common.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 用户表
+ * </p>
+ *
+ * @Author scott
+ * @since 2018-12-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SysUser implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.UUID)
+    private String id;
+
+    private String departId;
+
+    /**
+     * 登录账号
+     */
+    @Excel(name = "登录账号", width = 15)
+    private String username;
+
+    /**
+     * 真实姓名
+     */
+    @Excel(name = "真实姓名", width = 15)
+    private String realname;
+
+    /**
+     * 密码
+     */
+    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
+    private String password;
+
+    /**
+     * md5密码盐
+     */
+    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
+    private String salt;
+
+    /**
+     * 头像
+     */
+    @Excel(name = "头像", width = 15,type = 2)
+    private String avatar;
+
+    /**
+     * 生日
+     */
+    @Excel(name = "生日", width = 15, format = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date birthday;
+
+    /**
+     * 性别(1:男 2:女)
+     */
+    @Excel(name = "性别", width = 15, dicCode = "sex")
+    @Dict(dicCode = "sex")
+    private Integer sex;
+
+    /**
+     * 电子邮件
+     */
+    @Excel(name = "电子邮件", width = 15)
+    private String email;
+
+    /**
+     * 电话
+     */
+    @Excel(name = "电话", width = 15)
+    private String phone;
+
+    /**
+     * 部门code(当前选择登录部门)
+     */
+    private String orgCode;
+
+    /**
+     * 状态(1:正常  2:冻结 )
+     */
+    @Excel(name = "状态", width = 15,dicCode="user_status")
+    @Dict(dicCode = "user_status")
+    private Integer status;
+
+    /**
+     * 删除状态(0,正常,1已删除)
+     */
+    @Excel(name = "删除状态", width = 15,dicCode="del_flag")
+    @TableLogic
+    private Integer delFlag;
+
+    /**
+     * 工号,唯一键
+     */
+    @Excel(name = "工号", width = 15)
+    private String workNo;
+
+    /**
+     * 职务,关联职务表
+     */
+    @Excel(name = "职务", width = 15)
+    private String post;
+
+    /**
+     * 座机号
+     */
+    @Excel(name = "座机号", width = 15)
+    private String telephone;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+    /**
+     * 同步工作流引擎1同步0不同步
+     */
+    private Integer activitiSync;
+
+    /**
+     * 身份(0 普通成员 1 上级)
+     */
+    @Excel(name="(1普通成员 2上级)",width = 15)
+    private Integer userIdentity;
+
+    /**
+     * 负责部门
+     */
+    @Excel(name="负责部门",width = 15,dictTable ="sys_depart",dicText = "depart_name",dicCode = "id")
+    @Dict(dictTable ="sys_depart",dicText = "depart_name",dicCode = "id")
+    private String departIds;
+
+
+    /**
+     * 第三方登录的唯一标识
+     */
+    private String thirdId;
+
+    /**
+     * 第三方类型 <br>
+     * (github/github,wechat_enterprise/企业微信,dingtalk/钉钉)
+     */
+    private String thirdType;
+
+    /**
+     * 职务
+     */
+    @TableField(exist = false)
+    private String position;
+    /**
+     * 区域
+     */
+    @TableField(exist = false)
+    private String area;
+    /**
+     * 部门
+     */
+    @TableField(exist = false)
+    private String depart;
+
+    /**
+     * 角色
+     */
+    @TableField(exist = false)
+    private String roleName;
+
+    /**
+     * 组织机构名称
+     */
+    @TableField(exist = false)
+    private String departName;
+
+    /**
+     * 领导 ID
+     */
+    private String leaderId;
+
+    /**
+     * 领导姓名
+     */
+    private String leaderName;
+
+}

+ 33 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/mapper/CoreMapper.java

@@ -0,0 +1,33 @@
+package org.jeecg.common.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.common.system.entity.SysDepart;
+import org.jeecg.common.system.entity.SysDict;
+import org.jeecg.common.system.entity.SysPermissionDataRule;
+import org.jeecg.common.system.entity.SysUser;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 字典表 Mapper 接口
+ * </p>
+ *
+ * @Author zhangweijian
+ * @since 2018-12-28
+ */
+public interface CoreMapper extends BaseMapper<SysDict> {
+	//1
+	String queryDictTextByKey(@Param("code") String code,@Param("key") String key,@Param("extendsKey") String extendsKey,@Param("extendsValue")String extendsValue);
+	//2
+	String queryTableDictTextByKey(@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("key") String key,@Param("extendsKey") String extendsKey,@Param("extendsValue")String extendsValue);
+
+	SysUser getUserByName(@Param("username")String username);
+
+	List<SysDepart> queryUserDeparts(@Param("userId")String id);
+
+	List<String> queryDataRuleIds(@Param("username") String username,@Param("permissionId") String permissionId);
+
+	List<SysPermissionDataRule> selectSysPermissionDataRuleList(@Param("idList") List<String> idList, @Param("status") int status);
+}

+ 46 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/mapper/CorePermissionMapper.java

@@ -0,0 +1,46 @@
+package org.jeecg.common.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+import org.jeecg.common.system.entity.SysPermission;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 菜单权限表 Mapper 接口
+ * </p>
+ *
+ * @Author scott
+ * @since 2018-12-21
+ */
+public interface CorePermissionMapper extends BaseMapper<SysPermission> {
+
+	/**
+	  *   根据用户查询用户权限
+	 */
+	public List<SysPermission> queryByUser(@Param("username") String username);
+
+	/**
+	 *   修改菜单状态字段: 是否子节点
+	 */
+	@Update("update sys_permission set is_leaf=#{leaf} where id = #{id}")
+	public int setMenuLeaf(@Param("id") String id, @Param("leaf") int leaf);
+
+	/**
+	  *   获取模糊匹配规则的数据权限URL
+	 */
+	@Select("SELECT url FROM sys_permission WHERE del_flag = 0 and menu_type = 2 and url like '%*%'")
+    public List<String> queryPermissionUrlWithStar();
+
+
+	/**
+	 * 根据用户账号查询菜单权限
+	 * @param sysPermission
+	 * @param username
+	 * @return
+	 */
+	public int queryCountByUsername(@Param("username") String username, @Param("permission") SysPermission sysPermission);
+}

+ 51 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/mapper/xml/CoreMapper.xml

@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.common.system.mapper.CoreMapper">
+	<!-- 通过字典code获取字典数据 -->
+	<select id="queryDictTextByKey" parameterType="String"  resultType="String">
+		   select s.item_text from sys_dict_item s
+		   where s.dict_id = (select id from sys_dict where dict_code = #{code})
+		   and s.item_value = #{key}
+		<if test="extendsKey != null and extendsValue != null">
+			and s.${extendsKey} = #{extendsValue}
+		</if>
+	</select>
+
+	<!--通过查询指定table的 text code key 获取字典值-->
+	<select id="queryTableDictTextByKey" parameterType="String" resultType="String">
+		   select ${text} as "text" from ${table} where ${code}= #{key}
+		<if test="extendsKey!=null and extendsValue!=null">
+			and ${extendsKey} = #{extendsValue}
+		</if>
+	</select>
+	<select id="queryDataRuleIds" resultType="java.lang.String">
+			select data_rule_ids
+			from sys_role_permission a
+			join sys_permission b on a.permission_id = b.id
+			join sys_role c on a.role_id = c.id
+			join sys_user_role d on d.role_id = c.id
+			join sys_user e on d.user_id = e.id
+			where e.username = #{username} and b.id =  #{permissionId}
+			<!--update begin Author:lvdandan  Date:20200213 for:加入部门权限 -->
+			union
+			select data_rule_ids
+			from sys_depart_role_permission a
+			join sys_permission b on a.permission_id = b.id
+			join sys_depart_role c on a.role_id = c.id
+			join sys_depart_role_user d on d.drole_id = c.id
+			join sys_user e on d.user_id = e.id
+			where e.username = #{username} and b.id = #{permissionId}
+			<!--update end Author:lvdandan  Date:20200213 for:加入部门权限 -->
+	</select>
+	<select id="selectSysPermissionDataRuleList"
+			resultType="org.jeecg.common.system.entity.SysPermissionDataRule">
+		select * from sys_permission_data_rule
+		where 1 = 1
+		and staus = #{status}
+		and id in
+		<foreach collection="idList" item="item" separator=","
+				 open="(" close=")">
+			#{item}
+		</foreach>
+	</select>
+</mapper>

+ 79 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/mapper/xml/CorePermissionMapper.xml

@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.common.system.mapper.CorePermissionMapper">
+
+	<!-- 通过<resultMap>映射实体类属性名和表的字段名对应关系 -->
+	<resultMap id="SysPermission" type="org.jeecg.common.system.entity.SysPermission">
+	   	<!-- result属性映射非匹配字段 -->
+		<result column="is_route" property="route"/>
+	    <result column="keep_alive" property="keepAlive"/>
+	    <result column="is_leaf" property="leaf"/>
+	</resultMap>
+	
+	<!-- 获取登录用户拥有的权限 -->
+	<select id="queryByUser" parameterType="Object"  resultMap="SysPermission">
+		   SELECT * FROM (
+			   SELECT p.*
+			   FROM  sys_permission p
+			   WHERE (exists(
+						select a.id from sys_role_permission a
+						join sys_role b on a.role_id = b.id
+						join sys_user_role c on c.role_id = b.id
+						join sys_user d on d.id = c.user_id
+						where p.id = a.permission_id AND d.username = #{username,jdbcType=VARCHAR}
+					)
+					or (p.url like '%:code' and p.url like '/online%' and p.hidden = 1)
+					or p.url = '/online')
+			   and p.del_flag = 0
+			<!--update begin Author:lvdandan  Date:20200213 for:加入部门权限 -->
+			   UNION
+			   SELECT p.*
+			   FROM  sys_permission p
+			   WHERE exists(
+					select a.id from sys_depart_role_permission a
+					join sys_depart_role b on a.role_id = b.id
+					join sys_depart_role_user c on c.drole_id = b.id
+					join sys_user d on d.id = c.user_id
+					where p.id = a.permission_id AND d.username = #{username,jdbcType=VARCHAR}
+			   )
+			   and p.del_flag = 0
+			<!--update end Author:lvdandan  Date:20200213 for:加入部门权限 -->
+		   ) h order by h.sort_no ASC
+	</select>
+
+
+	<!-- 根据用户账号查询菜单权限 -->
+	<select id="queryCountByUsername" parameterType="Object" resultType="int">
+		select sum(cnt) from (
+		  select count(*) as cnt
+			from sys_role_permission a
+			join sys_permission b on a.permission_id = b.id
+			join sys_role c on a.role_id = c.id
+			join sys_user_role d on d.role_id = c.id
+			join sys_user e on d.user_id = e.id
+			where e.username = #{username}
+			<if test="permission.id !=null and permission.id != ''">
+				and b.id =  #{permission.id}
+			</if>
+			<if test="permission.url !=null and permission.url != ''">
+				and b.url =  #{permission.url}
+			</if>
+		union all
+		  select count(*) as cnt
+			from sys_permission z
+		    join sys_depart_role_permission y on z.id = y.permission_id
+			join sys_depart_role x on y.role_id = x.id
+			join sys_depart_role_user w on w.drole_id = x.id
+			join sys_user v on w.user_id = v.id
+			where v.username = #{username}
+			<if test="permission.id !=null and permission.id != ''">
+				and z.id =  #{permission.id}
+			</if>
+			<if test="permission.url !=null and permission.url != ''">
+				and z.url =  #{permission.url}
+			</if>
+		) temp
+	</select>
+	
+
+</mapper>

+ 34 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/service/ICoreService.java

@@ -0,0 +1,34 @@
+package org.jeecg.common.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.constant.CacheConstant;
+import org.jeecg.common.system.entity.SysDict;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.system.vo.SysPermissionDataRuleModel;
+import org.jeecg.common.system.vo.SysUserCacheInfo;
+import org.springframework.cache.annotation.Cacheable;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 字典表 服务类
+ * </p>
+ *
+ * @Author zhangweijian
+ * @since 2018-12-28
+ */
+public interface ICoreService extends IService<SysDict> {
+	//2
+    public String queryDictTextByKey(String code, String key,String extendsKey,String extendsValue);
+
+    //1
+	String queryTableDictTextByKey(String table, String text, String code, String key,String extendsKey,String extendsValue);
+	//3
+    List<SysPermissionDataRuleModel> queryPermissionDataRule(String component, String requestPath, String username);
+
+    SysUserCacheInfo getCacheUser(String username);
+
+    @Cacheable(cacheNames= CacheConstant.SYS_USERS_CACHE, key="#username")
+    LoginUser getUserByName(String username);
+}

+ 210 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/service/impl/CoreServiceImpl.java

@@ -0,0 +1,210 @@
+package org.jeecg.common.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.aspect.UrlMatchEnum;
+import org.jeecg.common.constant.CacheConstant;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.entity.*;
+import org.jeecg.common.system.mapper.CoreMapper;
+import org.jeecg.common.system.mapper.CorePermissionMapper;
+import org.jeecg.common.system.service.ICoreService;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.system.vo.SysPermissionDataRuleModel;
+import org.jeecg.common.system.vo.SysUserCacheInfo;
+import org.jeecg.common.util.oConvertUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+import org.springframework.util.AntPathMatcher;
+import org.springframework.util.PathMatcher;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * <p>
+ * 字典表 服务实现类
+ * </p>
+ *
+ * @Author zhangweijian
+ * @since 2018-12-28
+ */
+@Service
+@Slf4j
+public class CoreServiceImpl extends ServiceImpl<CoreMapper, SysDict> implements ICoreService {
+
+    @Resource
+    private CoreMapper coreMapper;
+    @Resource
+	private CorePermissionMapper corePermissionMapper;
+	/**
+	 * 通过查询指定code 获取字典值text
+	 * @param code
+	 * @param key
+	 * @return
+	 */
+	@Override
+	public String queryDictTextByKey(String code, String key,String extendsKey,String extendsValue) {
+		return coreMapper.queryDictTextByKey(code, key,extendsKey,extendsValue);
+	}
+
+	/**
+	 * 通过查询指定table的 text code 获取字典值text
+	 * dictTableCache采用redis缓存有效期10分钟
+	 * @param table
+	 * @param text
+	 * @param code
+	 * @param key
+	 * @return
+	 */
+	@Override
+	public String queryTableDictTextByKey(String table,String text,String code, String key,String extendsKey,String extendsValue) {
+		return coreMapper.queryTableDictTextByKey(table,text,code,key,extendsKey,extendsValue);
+	}
+
+	@Override
+	public List<SysPermissionDataRuleModel> queryPermissionDataRule(String component, String requestPath, String username) {
+		List<SysPermission> currentSyspermission = null;
+		if(oConvertUtils.isNotEmpty(component)) {
+			//1.通过注解属性pageComponent 获取菜单
+			LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
+			query.eq(SysPermission::getDelFlag,0);
+			query.eq(SysPermission::getComponent, component);
+			currentSyspermission = corePermissionMapper.selectList(query);
+		}else {
+			//1.直接通过前端请求地址查询菜单
+			LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
+			query.eq(SysPermission::getMenuType,2);
+			query.eq(SysPermission::getDelFlag,0);
+			query.eq(SysPermission::getUrl, requestPath);
+			currentSyspermission = corePermissionMapper.selectList(query);
+			//2.未找到 再通过自定义匹配URL 获取菜单
+			if(currentSyspermission==null || currentSyspermission.size()==0) {
+				//通过自定义URL匹配规则 获取菜单(实现通过菜单配置数据权限规则,实际上针对获取数据接口进行数据规则控制)
+				String userMatchUrl = UrlMatchEnum.getMatchResultByUrl(requestPath);
+				LambdaQueryWrapper<SysPermission> queryQserMatch = new LambdaQueryWrapper<SysPermission>();
+				queryQserMatch.eq(SysPermission::getMenuType, 1);
+				queryQserMatch.eq(SysPermission::getDelFlag, 0);
+				queryQserMatch.eq(SysPermission::getUrl, userMatchUrl);
+				if(oConvertUtils.isNotEmpty(userMatchUrl)){
+					currentSyspermission = corePermissionMapper.selectList(queryQserMatch);
+				}
+			}
+			//3.未找到 再通过正则匹配获取菜单
+			if(currentSyspermission==null || currentSyspermission.size()==0) {
+				//通过正则匹配权限配置
+				String regUrl = getRegexpUrl(requestPath);
+				if(regUrl!=null) {
+					currentSyspermission = corePermissionMapper.selectList(new LambdaQueryWrapper<SysPermission>().eq(SysPermission::getMenuType,2).eq(SysPermission::getUrl, regUrl).eq(SysPermission::getDelFlag,0));
+				}
+			}
+		}
+		if(currentSyspermission!=null && currentSyspermission.size()>0){
+			List<SysPermissionDataRuleModel> dataRules = new ArrayList<SysPermissionDataRuleModel>();
+			for (SysPermission sysPermission : currentSyspermission) {
+				// update-begin--Author:scott Date:20191119 for:数据权限规则编码不规范,项目存在相同包名和类名 #722
+				List<SysPermissionDataRule> temp = queryPermissionDataRules(username, sysPermission.getId());
+				if(temp!=null && temp.size()>0) {
+					//dataRules.addAll(temp);
+					dataRules = oConvertUtils.entityListToModelList(temp,SysPermissionDataRuleModel.class);
+				}
+				// update-end--Author:scott Date:20191119 for:数据权限规则编码不规范,项目存在相同包名和类名 #722
+			}
+			return dataRules;
+		}
+		return null;
+	}
+
+	/**
+	 * 匹配前端传过来的地址 匹配成功返回正则地址
+	 * AntPathMatcher匹配地址
+	 *()* 匹配0个或多个字符
+	 *()**匹配0个或多个目录
+	 */
+	private String getRegexpUrl(String url) {
+		List<String> list = corePermissionMapper.queryPermissionUrlWithStar();
+		if(list!=null && list.size()>0) {
+			for (String p : list) {
+				PathMatcher matcher = new AntPathMatcher();
+				if(matcher.match(p, url)) {
+					return p;
+				}
+			}
+		}
+		return null;
+	}
+
+	public List<SysPermissionDataRule> queryPermissionDataRules(String username,String permissionId) {
+		List<String> idsList = coreMapper.queryDataRuleIds(username, permissionId);
+		//update-begin--Author:scott  Date:20191119  for:数据权限失效问题处理--------------------
+		if(idsList==null || idsList.size()==0) {
+			return null;
+		}
+		//update-end--Author:scott  Date:20191119  for:数据权限失效问题处理--------------------
+		List<String> idList = new ArrayList<>();
+		for (String ids : idsList) {
+			if(oConvertUtils.isEmpty(ids)) {
+				continue;
+			}
+			String[] arr = ids.split(",");
+			for (String id : arr) {
+				if(oConvertUtils.isNotEmpty(id)) {
+					idList.add(id);
+				}
+			}
+		}
+		if(idList.size()==0) {
+			return null;
+		}
+		return coreMapper.selectSysPermissionDataRuleList(idList,1);
+	}
+
+	@Override
+	public SysUserCacheInfo getCacheUser(String username) {
+		SysUserCacheInfo info = new SysUserCacheInfo();
+		info.setOneDepart(true);
+		LoginUser user = this.getUserByName(username);
+		if(user!=null) {
+			info.setSysUserCode(user.getUsername());
+			info.setSysUserName(user.getRealname());
+			info.setSysOrgCode(user.getOrgCode());
+		}
+		//多部门支持in查询
+		List<SysDepart> list = coreMapper.queryUserDeparts(user.getId());
+		List<String> sysMultiOrgCode = new ArrayList<String>();
+		if(list==null || list.size()==0) {
+			//当前用户无部门
+			//sysMultiOrgCode.add("0");
+		}else if(list.size()==1) {
+			sysMultiOrgCode.add(list.get(0).getOrgCode());
+		}else {
+			info.setOneDepart(false);
+			for (SysDepart dpt : list) {
+				sysMultiOrgCode.add(dpt.getOrgCode());
+			}
+		}
+		info.setSysMultiOrgCode(sysMultiOrgCode);
+		return info;
+	}
+
+	@Override
+	@Cacheable(cacheNames= CacheConstant.SYS_USERS_CACHE, key="#username")
+	public LoginUser getUserByName(String username) {
+		if(oConvertUtils.isEmpty(username)) {
+			return null;
+		}
+		LoginUser loginUser = new LoginUser();
+		SysUser sysUser = coreMapper.getUserByName(username);
+		if(sysUser==null) {
+			return null;
+		}
+		BeanUtils.copyProperties(sysUser, loginUser);
+		return loginUser;
+	}
+}

+ 1 - 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusConfig.java

@@ -28,7 +28,7 @@ import java.util.List;
  *
  */
 @Configuration
-@MapperScan(value={"org.jeecg.modules.**.mapper*","cn.com.ctop.**.mapper*","ctop.bytedance.ad.**.mapper*"})
+@MapperScan(value={"org.jeecg.**.mapper*","cn.com.ctop.**.mapper*","ctop.bytedance.ad.**.mapper*"})
 public class MybatisPlusConfig {
 
     /**

+ 2 - 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java

@@ -134,7 +134,8 @@ public class ShiroConfig {
         filterChainDefinitionMap.put("/websocket/**", "anon");//系统通知和公告
         filterChainDefinitionMap.put("/newsWebsocket/**", "anon");//CMS模块
         filterChainDefinitionMap.put("/vxeSocket/**", "anon");//JVxeTable无痕刷新示例
-
+        //
+        filterChainDefinitionMap.put("/advertiser/aiBytedanceAdvertiserStrategy/**", "anon");
 
         //性能监控  TODO 存在安全漏洞泄露TOEKN(durid连接池也有)
         filterChainDefinitionMap.put("/actuator/**", "anon");

+ 6 - 0
jeecg-boot-bytedance-ad/pom.xml

@@ -13,6 +13,12 @@
         <dependency>
             <groupId>org.jeecgframework.boot</groupId>
             <artifactId>jeecg-boot-base-core</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.jeecgframework.boot</groupId>
+                    <artifactId>hibernate-re</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <!--引入微服务启动依赖 starter-->
         <dependency>

+ 0 - 3
jeecg-boot-bytedance-ad/src/main/java/ctop/bytedance/ad/JeecgBootBytedanceAdApplication.java

@@ -12,13 +12,10 @@ import org.springframework.context.annotation.ComponentScan;
 
 @SpringBootApplication(exclude = {ShiroAnnotationProcessorAutoConfiguration.class, ShiroAutoConfiguration.class, ShiroBeanAutoConfiguration.class})
 @EnableDubbo
-@EnableFeignClients(basePackages ={"org.jeecg","ctop.bytedance.ad"})
-@MapperScan(value={"org.jeecg.modules.**.mapper*","cn.com.ctop.**.mapper*","ctop.bytedance.ad.**.mapper*"})
 @ComponentScan(basePackages = {"ctop.bytedance.ad","org.jeecg"})
 public class JeecgBootBytedanceAdApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(JeecgBootBytedanceAdApplication.class, args);
     }
-
 }

+ 5 - 8
jeecg-boot-bytedance-ad/src/main/java/ctop/bytedance/ad/advertise/controller/AiBytedanceAdvertiserStrategyController.java

@@ -1,5 +1,6 @@
 package ctop.bytedance.ad.advertise.controller;
 
+import com.alibaba.dubbo.config.annotation.Reference;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -18,13 +19,13 @@ import ctop.bytedance.ad.common.entity.MaterialImageInfo;
 import ctop.bytedance.ad.common.service.ICtopOauthTokenService;
 import ctop.bytedance.ad.common.service.IMaterialImageInfoService;
 import ctop.bytedance.ad.common.utils.*;
-import ctop.bytedance.ad.feign.system.SystemFeignClient;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.api.ICommonService;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -51,16 +52,12 @@ import java.util.concurrent.Executors;
 public class AiBytedanceAdvertiserStrategyController {
 	@Autowired
 	private IAiBytedanceAdvertiserStrategyService aiBytedanceAdvertiserStrategyService;
-
-	@Autowired
-	private SystemFeignClient systemFeignClient;
-
 	@Autowired
 	private IRuleDataAccountService ruleDataAccountService;
-
 	@Autowired
 	private IMaterialImageInfoService materialImageInfoService;
-
+	@Reference
+	private ICommonService commonService;
 	@Autowired
 	private MarketingService marketingService;
 	@Autowired
@@ -84,7 +81,7 @@ public class AiBytedanceAdvertiserStrategyController {
 		Result<IPage<AiBytedanceAdvertiserStrategy>> result = new Result<>();
 		QueryWrapper<AiBytedanceAdvertiserStrategy> queryWrapper = QueryGenerator.initQueryWrapper(aiBytedanceAdvertiserStrategy, req.getParameterMap());
 		//获取用户角色code
-		String roleCode = systemFeignClient.getRoleCodeByUserId(aiBytedanceAdvertiserStrategy.getLoginUserId());
+		String roleCode = commonService.getRoleCodeByUserId(aiBytedanceAdvertiserStrategy.getLoginUserId());
 		if(null != roleCode && !BytedanceConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode)){
 			queryWrapper.eq("user_id", aiBytedanceAdvertiserStrategy.getLoginUserId());
 		}

+ 5 - 4
jeecg-boot-bytedance-ad/src/main/java/ctop/bytedance/ad/advertise/controller/BytedanceGeneralCopywriterController.java

@@ -1,15 +1,16 @@
 package ctop.bytedance.ad.advertise.controller;
 
+import com.alibaba.dubbo.config.annotation.Reference;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import ctop.bytedance.ad.feign.system.SystemFeignClient;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.api.ICommonService;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.oConvertUtils;
 import ctop.bytedance.ad.advertise.entity.ByteDanceCreativeWordPackage;
@@ -51,8 +52,8 @@ import java.util.regex.Pattern;
 public class BytedanceGeneralCopywriterController {
     @Autowired
     private IByteDanceGeneralCopywriterService byteDanceGeneralCopywriterService;
-    @Autowired
-    private SystemFeignClient systemFeignClient;
+    @Reference
+    private ICommonService commonService;
 
 
     @ApiOperation(value="通用文案库-上传excel", notes="通用文案库-上传excel")
@@ -149,7 +150,7 @@ public class BytedanceGeneralCopywriterController {
     ) {
         try {
 
-            String roleCode = systemFeignClient.getRoleCodeByUserId(userId);
+            String roleCode = commonService.getRoleCodeByUserId(userId);
             if (Check.isNull(roleCode)){
                 return Result.errorMsg("请输入正确的用户id。");
             }

+ 5 - 4
jeecg-boot-bytedance-ad/src/main/java/ctop/bytedance/ad/advertise/controller/BytedanceReportController.java

@@ -1,8 +1,8 @@
 package ctop.bytedance.ad.advertise.controller;
 
+import com.alibaba.dubbo.config.annotation.Reference;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import ctop.bytedance.ad.feign.system.SystemFeignClient;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -18,6 +18,7 @@ import ctop.bytedance.ad.common.utils.Check;
 import ctop.bytedance.ad.report.service.IBytedanceAdvertiserHourlyReportService;
 import ctop.bytedance.ad.report.service.IBytedancePlanHourlyReportService;
 import ctop.bytedance.ad.report.service.IBytedanceReportMaterialDailyService;
+import org.jeecg.common.system.api.ICommonService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -50,8 +51,8 @@ public class BytedanceReportController {
 	@Autowired
 	private IBytedanceReportMaterialDailyService bytedanceReportMaterialDailyService;
 
-	@Autowired
-	private SystemFeignClient systemFeignClient;
+	@Reference
+	private ICommonService commonService;
 
 	@Autowired
 	private MarketingService marketingService;
@@ -70,7 +71,7 @@ public class BytedanceReportController {
 										 @RequestParam(value = "type",defaultValue = "bytedance") String type) {
 		try {
 			//查询用户角色
-			String roleCode = systemFeignClient.getRoleCodeByUserId(userId);
+			String roleCode = commonService.getRoleCodeByUserId(userId);
 			if (Check.isNull(roleCode)){
 				return Result.errorMsg("请输入正确的用户id。");
 			}

+ 5 - 4
jeecg-boot-bytedance-ad/src/main/java/ctop/bytedance/ad/advertise/controller/BytedanceVideoSlogenInfoController.java

@@ -1,16 +1,17 @@
 package ctop.bytedance.ad.advertise.controller;
 
+import com.alibaba.dubbo.config.annotation.Reference;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import ctop.bytedance.ad.feign.system.SystemFeignClient;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.api.ICommonService;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.vo.LoginUser;
 import ctop.bytedance.ad.advertise.entity.ByteDanceCreativeWordPackage;
@@ -46,8 +47,8 @@ public class BytedanceVideoSlogenInfoController {
 	private IBytedanceVideoSlogenInfoService bytedanceVideoSlogenInfoService;
 	@Autowired
 	private IMaterialInfoService materialInfoService;
-	@Autowired
-	private SystemFeignClient systemFeignClient;
+	@Reference
+	private ICommonService commonService;
 
 	@Autowired
 	private IByteDanceGeneralCopywriterService byteDanceGeneralCopywriterService;
@@ -88,7 +89,7 @@ public class BytedanceVideoSlogenInfoController {
 									) {
 		try {
 			//查询用户角色
-			String roleCode = systemFeignClient.getRoleCodeByUserId(userId);
+			String roleCode = commonService.getRoleCodeByUserId(userId);
 			if (Check.isNull(roleCode)){
 				return Result.errorMsg("请输入正确的用户id。");
 			}

+ 0 - 31
jeecg-boot-bytedance-ad/src/main/java/ctop/bytedance/ad/feign/system/SystemFeignClient.java

@@ -1,31 +0,0 @@
-package ctop.bytedance.ad.feign.system;
-
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.stereotype.Component;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-
-/**
- * 远程调用 jeecg-system
- * zian Y
- * 2021/7/15
- **/
-
-@FeignClient(value = "jeecg-system")
-@Component
-public interface SystemFeignClient {
-
-
-
-    /**
-     * 根据userId获取角色code
-     * @param userId
-     * @return
-     */
-    @GetMapping(value = "/sys/role/getRoleCodeByUserId")
-    String getRoleCodeByUserId(@RequestParam(name="userId") String userId);
-
-
-
-
-}

+ 21 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/order/CommonServiceImpl.java

@@ -0,0 +1,21 @@
+package org.jeecg.modules.order;
+
+import com.alibaba.dubbo.config.annotation.Service;
+import org.jeecg.common.system.api.ICommonService;
+import org.jeecg.common.system.api.OrderService;
+import org.jeecg.modules.system.mapper.SysDepartMapper;
+import org.jeecg.modules.system.mapper.SysRoleMapper;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+@Service(interfaceClass = ICommonService.class)
+public class CommonServiceImpl implements ICommonService {
+    @Resource
+    private SysRoleMapper sysRoleMapper;
+    @Override
+    public String getRoleCodeByUserId(String userId) {
+        return sysRoleMapper.getRoleCodeByUserId(userId);
+    }
+}

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysPermissionDataRuleService.java

@@ -19,7 +19,7 @@ public interface ISysPermissionDataRuleService extends IService<SysPermissionDat
 	/**
 	 * 根据菜单id查询其对应的权限数据
 	 * 
-	 * @param permRule
+	 * @param permissionId
 	 */
 	List<SysPermissionDataRule> getPermRuleListByPermId(String permissionId);
 
@@ -33,7 +33,7 @@ public interface ISysPermissionDataRuleService extends IService<SysPermissionDat
 	
 	/**
 	  * 根据菜单ID和用户名查找数据权限配置信息
-	 * @param permission
+	 * @param permissionId
 	 * @param username
 	 * @return
 	 */