Kaynağa Gözat

提交版本

李云瑞 1 yıl önce
ebeveyn
işleme
dd496adff9
44 değiştirilmiş dosya ile 1568 ekleme ve 0 silme
  1. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/service/ISysMessageService.java
  2. 22 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/service/ISysMessageTemplateService.java
  3. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysFillRuleService.java
  4. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysFormFileService.java
  5. 38 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysGatewayRouteService.java
  6. 58 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysLogService.java
  7. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysPackPermissionService.java
  8. 56 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysPermissionDataRuleService.java
  9. 112 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java
  10. 21 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysPositionService.java
  11. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysRoleIndexService.java
  12. 31 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysRolePermissionService.java
  13. 43 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysRoleService.java
  14. 75 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTenantPackService.java
  15. 203 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTenantService.java
  16. 65 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysThirdAccountService.java
  17. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserAgentService.java
  18. 80 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserDepartService.java
  19. 18 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserRoleService.java
  20. 392 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java
  21. 89 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserTenantService.java
  22. 89 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IThirdAppService.java
  23. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/message/service/ISysMessageService.class
  24. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/message/service/ISysMessageTemplateService.class
  25. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysFormFileService.class
  26. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysGatewayRouteService.class
  27. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysLogService.class
  28. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysPackPermissionService.class
  29. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysPermissionDataRuleService.class
  30. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysPermissionService.class
  31. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysPositionService.class
  32. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysRoleIndexService.class
  33. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysRolePermissionService.class
  34. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysRoleService.class
  35. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysTenantPackService.class
  36. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysTenantService.class
  37. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysThirdAccountService.class
  38. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysUserAgentService.class
  39. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysUserDepartService.class
  40. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysUserRoleService.class
  41. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysUserService.class
  42. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysUserTenantService.class
  43. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/IThirdAppService.class
  44. 92 0
      jeecg-server-cloud/jeecg-visual/jeecg-cloud-xxljob/src/main/java/com/xxl/job/admin/core/util/JacksonUtil.java

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/service/ISysMessageService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.message.service;
+
+import org.jeecg.common.system.base.service.JeecgService;
+import org.jeecg.modules.message.entity.SysMessage;
+
+/**
+ * @Description: 消息
+ * @Author: jeecg-boot
+ * @Date:  2019-04-09
+ * @Version: V1.0
+ */
+public interface ISysMessageService extends JeecgService<SysMessage> {
+
+}

+ 22 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/service/ISysMessageTemplateService.java

@@ -0,0 +1,22 @@
+package org.jeecg.modules.message.service;
+
+import java.util.List;
+
+import org.jeecg.common.system.base.service.JeecgService;
+import org.jeecg.modules.message.entity.SysMessageTemplate;
+
+/**
+ * @Description: 消息模板
+ * @Author: jeecg-boot
+ * @Date:  2019-04-09
+ * @Version: V1.0
+ */
+public interface ISysMessageTemplateService extends JeecgService<SysMessageTemplate> {
+
+    /**
+     * 通过模板CODE查询消息模板
+     * @param code 模板CODE
+     * @return
+     */
+    List<SysMessageTemplate> selectByCode(String code);
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysFillRuleService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.system.entity.SysFillRule;
+
+/**
+ * @Description: 填值规则
+ * @Author: jeecg-boot
+ * @Date: 2019-11-07
+ * @Version: V1.0
+ */
+public interface ISysFillRuleService extends IService<SysFillRule> {
+
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysFormFileService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.system.entity.SysFormFile;
+
+/**
+ * @Description: 表单评论文件
+ * @Author: jeecg-boot
+ * @Date: 2022-07-21
+ * @Version: V1.0
+ */
+public interface ISysFormFileService extends IService<SysFormFile> {
+
+}

+ 38 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysGatewayRouteService.java

@@ -0,0 +1,38 @@
+package org.jeecg.modules.system.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.system.entity.SysGatewayRoute;
+
+/**
+ * @Description: gateway路由管理
+ * @Author: jeecg-boot
+ * @Date:   2020-05-26
+ * @Version: V1.0
+ */
+public interface ISysGatewayRouteService extends IService<SysGatewayRoute> {
+
+    /**
+     * 添加所有的路由信息到redis
+     * @param key
+     */
+     void addRoute2Redis(String key);
+
+    /**
+     * 删除路由
+     * @param id
+     */
+     void deleteById(String id);
+
+    /**
+     * 保存路由配置
+     * @param array
+     */
+    void updateAll(JSONObject array);
+
+    /**
+     * 清空redis中的route信息
+     */
+    void clearRedis();
+
+}

+ 58 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysLogService.java

@@ -0,0 +1,58 @@
+package org.jeecg.modules.system.service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.jeecg.modules.system.entity.SysLog;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 系统日志表 服务类
+ * </p>
+ *
+ * @Author zhangweijian
+ * @since 2018-12-26
+ */
+public interface ISysLogService extends IService<SysLog> {
+
+	/**
+	 * 清空所有日志记录
+	 */
+	public void removeAll();
+	
+	/**
+	 * 获取系统总访问次数
+	 *
+	 * @return Long
+	 */
+	Long findTotalVisitCount();
+
+	//update-begin--Author:zhangweijian  Date:20190428 for:传入开始时间,结束时间参数
+	/**
+	 * 获取系统今日访问次数
+     * @param dayStart
+	 * @param dayEnd
+	 * @return Long
+	 */
+	Long findTodayVisitCount(Date dayStart, Date dayEnd);
+
+	/**
+	 * 获取系统今日访问 IP数
+	 * @param dayStart 开始时间
+     * @param dayEnd 结束时间
+	 * @return Long
+	 */
+	Long findTodayIp(Date dayStart, Date dayEnd);
+	//update-end--Author:zhangweijian  Date:20190428 for:传入开始时间,结束时间参数
+	
+	/**
+	 *   首页:根据时间统计访问数量/ip数量
+	 * @param dayStart
+	 * @param dayEnd
+	 * @return
+	 */
+	List<Map<String,Object>> findVisitCount(Date dayStart, Date dayEnd);
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysPackPermissionService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.system.service;
+
+import org.jeecg.modules.system.entity.SysPackPermission;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 产品包菜单关系表
+ * @Author: jeecg-boot
+ * @Date:   2022-12-31
+ * @Version: V1.0
+ */
+public interface ISysPackPermissionService extends IService<SysPackPermission> {
+
+}

+ 56 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysPermissionDataRuleService.java

@@ -0,0 +1,56 @@
+package org.jeecg.modules.system.service;
+
+import java.util.List;
+
+import org.jeecg.modules.system.entity.SysPermissionDataRule;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 菜单权限规则 服务类
+ * </p>
+ *
+ * @Author huangzhilin
+ * @since 2019-04-01
+ */
+public interface ISysPermissionDataRuleService extends IService<SysPermissionDataRule> {
+
+	/**
+	 * 根据菜单id查询其对应的权限数据
+	 * 
+	 * @param permissionId
+     * @return List<SysPermissionDataRule>
+	 */
+	List<SysPermissionDataRule> getPermRuleListByPermId(String permissionId);
+
+	/**
+	 * 根据页面传递的参数查询菜单权限数据
+	 * @param permRule
+	 * @return
+	 */
+	List<SysPermissionDataRule> queryPermissionRule(SysPermissionDataRule permRule);
+	
+	
+	/**
+	  * 根据菜单ID和用户名查找数据权限配置信息
+	 * @param permissionId
+	 * @param username
+	 * @return
+	 */
+	List<SysPermissionDataRule> queryPermissionDataRules(String username,String permissionId);
+	
+	/**
+	 * 新增菜单权限配置 修改菜单rule_flag
+	 * @param sysPermissionDataRule
+	 */
+	public void savePermissionDataRule(SysPermissionDataRule sysPermissionDataRule);
+	
+	/**
+	 * 删除菜单权限配置 判断菜单还有无权限
+	 * @param dataRuleId
+	 */
+	public void deletePermissionDataRule(String dataRuleId);
+	
+	
+}

+ 112 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java

@@ -0,0 +1,112 @@
+package org.jeecg.modules.system.service;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.modules.system.entity.SysPermission;
+import org.jeecg.modules.system.model.TreeModel;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 菜单权限表 服务类
+ * </p>
+ *
+ * @Author scott
+ * @since 2018-12-21
+ */
+public interface ISysPermissionService extends IService<SysPermission> {
+    /**
+     * 切换vue3菜单
+     */
+	public void switchVue3Menu();
+	
+    /**
+     * 通过父id查询菜单
+     * @param parentId 父id
+     * @return
+     */
+	public List<TreeModel> queryListByParentId(String parentId);
+	
+	/**
+     * 真实删除
+     * @param id 菜单id
+     * @throws JeecgBootException
+     */
+	public void deletePermission(String id) throws JeecgBootException;
+	/**
+     * 逻辑删除
+     * @param id 菜单id
+     * @throws JeecgBootException
+     */
+	public void deletePermissionLogical(String id) throws JeecgBootException;
+
+    /**
+     * 添加菜单
+     * @param sysPermission SysPermission对象
+     * @throws JeecgBootException
+     */
+	public void addPermission(SysPermission sysPermission) throws JeecgBootException;
+
+    /**
+     * 编辑菜单
+     * @param sysPermission SysPermission对象
+     * @throws JeecgBootException
+     */
+	public void editPermission(SysPermission sysPermission) throws JeecgBootException;
+
+    /**
+     * 获取登录用户拥有的权限
+     * @param username 用户名
+     * @return
+     */
+	public List<SysPermission> queryByUser(String username);
+	
+	/**
+	 * 根据permissionId删除其关联的SysPermissionDataRule表中的数据
+	 * 
+	 * @param id
+	 * @return
+	 */
+	public void deletePermRuleByPermId(String id);
+	
+	/**
+	  * 查询出带有特殊符号的菜单地址的集合
+	 * @return
+	 */
+	public List<String> queryPermissionUrlWithStar();
+
+	/**
+	 * 判断用户否拥有权限
+	 * @param username
+	 * @param sysPermission
+	 * @return
+	 */
+	public boolean hasPermission(String username, SysPermission sysPermission);
+
+	/**
+	 * 根据用户和请求地址判断是否有此权限
+	 * @param username
+	 * @param url
+	 * @return
+	 */
+	public boolean hasPermission(String username, String url);
+
+	/**
+	 * 查询部门权限数据
+	 * @param departId
+	 * @return
+	 */
+	List<SysPermission> queryDepartPermissionList(String departId);
+
+	/**
+	 * 检测地址是否存在(聚合路由的情况下允许使用子菜单路径作为父菜单的路由地址)
+	 * @param id
+	 * @param url
+	 * @param alwaysShow 是否是聚合路由
+	 * @return
+	 */
+	 boolean checkPermDuplication(String id, String url,Boolean alwaysShow);
+}

+ 21 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysPositionService.java

@@ -0,0 +1,21 @@
+package org.jeecg.modules.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.system.entity.SysPosition;
+
+/**
+ * @Description: 职务表
+ * @Author: jeecg-boot
+ * @Date: 2019-09-19
+ * @Version: V1.0
+ */
+public interface ISysPositionService extends IService<SysPosition> {
+
+    /**
+     * 通过code查询
+     * @param code 职务编码
+     * @return SysPosition
+     */
+    SysPosition getByCode(String code);
+
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysRoleIndexService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.system.service;
+
+import org.jeecg.modules.system.entity.SysRoleIndex;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 角色首页配置
+ * @Author: jeecg-boot
+ * @Date:   2022-03-25
+ * @Version: V1.0
+ */
+public interface ISysRoleIndexService extends IService<SysRoleIndex> {
+
+}

+ 31 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysRolePermissionService.java

@@ -0,0 +1,31 @@
+package org.jeecg.modules.system.service;
+
+import org.jeecg.modules.system.entity.SysRolePermission;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 角色权限表 服务类
+ * </p>
+ *
+ * @Author scott
+ * @since 2018-12-21
+ */
+public interface ISysRolePermissionService extends IService<SysRolePermission> {
+	
+	/**
+	 * 保存授权/先删后增
+	 * @param roleId
+	 * @param permissionIds
+	 */
+	public void saveRolePermission(String roleId,String permissionIds);
+	
+	/**
+	 * 保存授权 将上次的权限和这次作比较 差异处理提高效率 
+	 * @param roleId
+	 * @param permissionIds
+	 * @param lastPermissionIds
+	 */
+	public void saveRolePermission(String roleId,String permissionIds,String lastPermissionIds);
+
+}

+ 43 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysRoleService.java

@@ -0,0 +1,43 @@
+package org.jeecg.modules.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.system.entity.SysRole;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * <p>
+ * 角色表 服务类
+ * </p>
+ *
+ * @Author scott
+ * @since 2018-12-19
+ */
+public interface ISysRoleService extends IService<SysRole> {
+
+    /**
+     * 导入 excel ,检查 roleCode 的唯一性
+     *
+     * @param file
+     * @param params
+     * @return
+     * @throws Exception
+     */
+    Result importExcelCheckRoleCode(MultipartFile file, ImportParams params) throws Exception;
+
+    /**
+     * 删除角色
+     * @param roleid
+     * @return
+     */
+    public boolean deleteRole(String roleid);
+
+    /**
+     * 批量删除角色
+     * @param roleids
+     * @return
+     */
+    public boolean deleteBatchRole(String[] roleids);
+
+}

+ 75 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTenantPackService.java

@@ -0,0 +1,75 @@
+package org.jeecg.modules.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.system.entity.SysTenantPack;
+import org.jeecg.modules.system.entity.SysTenantPackUser;
+
+import java.util.List;
+
+/**
+ * @Description: 租户产品包
+ * @Author: jeecg-boot
+ * @Date:   2022-12-31
+ * @Version: V1.0
+ */
+public interface ISysTenantPackService extends IService<SysTenantPack> {
+
+    /**
+     * 新增产品包并将菜单插入关系表
+     * @param sysTenantPack
+     */
+    void addPackPermission(SysTenantPack sysTenantPack);
+
+    /**
+     * 设置菜单id
+     * @param records
+     * @return
+     */
+    List<SysTenantPack> setPermissions(List<SysTenantPack> records);
+
+    /**
+     * 编辑产品包并将菜单插入关系表
+     * @param sysTenantPack
+     */
+    void editPackPermission(SysTenantPack sysTenantPack);
+
+    /**
+     * 删除租户产品包
+     * @param ids
+     */
+    void deletePackPermissions(String ids);
+
+    /**
+     * 退出租户
+     * @param tenantId
+     * @param s
+     */
+    void exitTenant(String tenantId, String s);
+
+    /**
+     * 创建租户的时候默认创建3个 产品包
+     * @param tenantId
+     */
+    void addDefaultTenantPack(Integer tenantId);
+
+    /**
+     * 保存产品包
+     * @param sysTenantPack
+     */
+    String saveOne(SysTenantPack sysTenantPack);
+
+
+    /**
+     * 保存产品包和人员的关系
+     * @param sysTenantPackUser
+     */
+    void savePackUser(SysTenantPackUser sysTenantPackUser);
+
+    /**
+     * 根据租户ID和编码查询
+     * @param tenantId
+     * @param packCode
+     * @return
+     */
+    SysTenantPack getSysTenantPack(Integer tenantId , String packCode);
+}

+ 203 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTenantService.java

@@ -0,0 +1,203 @@
+package org.jeecg.modules.system.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.system.entity.SysTenant;
+import org.jeecg.modules.system.entity.SysTenantPackUser;
+import org.jeecg.modules.system.vo.tenant.TenantDepartAuthInfo;
+import org.jeecg.modules.system.vo.tenant.TenantPackModel;
+import org.jeecg.modules.system.vo.tenant.TenantPackUser;
+import org.jeecg.modules.system.vo.tenant.TenantPackUserCount;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @Description: 租户service接口
+ * @author: jeecg-boot
+ */
+public interface ISysTenantService extends IService<SysTenant> {
+
+    /**
+     * 查询有效的租户
+     *
+     * @param idList
+     * @return
+     */
+    List<SysTenant> queryEffectiveTenant(Collection<Integer> idList);
+
+    /**
+     * 返回某个租户被多少个用户引用了
+     *
+     * @param id
+     * @return
+     */
+    Long countUserLinkTenant(String id);
+
+    /**
+     * 根据ID删除租户,会判断是否已被引用
+     *
+     * @param id
+     * @return
+     */
+    boolean removeTenantById(String id);
+
+    /**
+     * 邀请用户加入租户,通过手机号
+     * @param ids
+     * @param phone
+     */
+    void invitationUserJoin(String ids, String phone);
+
+    /**
+     * 请离用户(租户)
+     * @param userIds
+     * @param tenantId
+     */
+    void leaveTenant(String userIds, String tenantId);
+
+    /**
+     * 添加租户,并将创建的用户加入关系表
+     * @param sysTenant
+     * @param userId
+     */
+    Integer saveTenantJoinUser(SysTenant sysTenant, String userId);
+
+    /**
+     * 保存租户
+     * @param sysTenant
+     */
+    void saveTenant(SysTenant sysTenant);
+
+    /**
+     * 通过门牌号加入租户
+     * @param sysTenant
+     * @param userId
+     */
+    Integer joinTenantByHouseNumber(SysTenant sysTenant, String userId);
+
+    /**
+     * 统计一个人创建了多少个租户
+     * 
+     * @param userId
+     * @return
+     */
+    Integer countCreateTenantNum(String userId);
+
+    /**
+     * 获取租户回收站的数据
+     * @param page
+     * @param sysTenant
+     * @return
+     */
+    IPage<SysTenant> getRecycleBinPageList(Page<SysTenant> page, SysTenant sysTenant);
+
+    /**
+     * 彻底删除租户
+     * @param ids
+     */
+    void deleteTenantLogic(String ids);
+
+    /**
+     * 还原租户
+     * @param ids
+     */
+    void revertTenantLogic(String ids);
+
+    /**
+     * 退出租户
+     * @param userId
+     * @param userId
+     * @param username
+     */
+    void exitUserTenant(String userId, String username, String tenantId);
+
+    /**
+     * 变更租户拥有者
+     * @param userId
+     */
+    void changeOwenUserTenant(String userId);
+
+    /**
+     * 邀请用户到租户。通过手机号匹配
+     * @param phone
+     * @return
+     */
+    Result<String> invitationUser(String phone);
+
+    /**
+     * 进入应用组织页面 查询用户是否有 超级管理员的权限
+     * @param tenantId
+     * @return
+     */
+    TenantDepartAuthInfo getTenantDepartAuthInfo(Integer tenantId);
+
+
+    /**
+     * 获取 租户产品包-3个默认admin的人员数量
+     * @param tenantId
+     * @return
+     */
+    List<TenantPackUserCount> queryTenantPackUserCount(Integer tenantId);
+
+    /**
+     * 查询租户产品包信息
+     * @param model
+     * @return
+     */
+    TenantPackModel queryTenantPack(TenantPackModel model);
+
+    /**
+     * 添加多个用户和产品包的关系数据
+     * @param sysTenantPackUser
+     */
+    void addBatchTenantPackUser(SysTenantPackUser sysTenantPackUser);
+
+    /**
+     * 添加用户和产品包的关系数据 带日志记录的
+     * @param sysTenantPackUser
+     */
+    void addTenantPackUser(SysTenantPackUser sysTenantPackUser);
+
+    /**
+     * 移除用户和产品包的关系数据 带日志记录的
+     * @param sysTenantPackUser
+     */
+    void deleteTenantPackUser(SysTenantPackUser sysTenantPackUser);
+
+
+    /**
+     * 查询申请的用户列表
+     */
+    List<TenantPackUser> getTenantPackApplyUsers(Integer tenantId);
+
+    /**
+     * 个人 申请成为管理员
+     * @param sysTenantPackUser
+     */
+    void doApplyTenantPackUser(SysTenantPackUser sysTenantPackUser);
+
+    /**
+     * 申请通过 成为管理员
+     * @param sysTenantPackUser
+     */
+    void passApply(SysTenantPackUser sysTenantPackUser);
+
+    /**
+     * 拒绝申请 成为管理员
+     * @param sysTenantPackUser
+     */
+    void deleteApply(SysTenantPackUser sysTenantPackUser);
+
+    /**
+     * 产品包用户列表
+     * @param tenantId
+     * @param packId
+     * @param status
+     * @param page
+     * @return
+     */
+    IPage<TenantPackUser> queryTenantPackUserList(String tenantId, String packId, Integer status, Page<TenantPackUser> page);
+}

+ 65 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysThirdAccountService.java

@@ -0,0 +1,65 @@
+package org.jeecg.modules.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.system.entity.SysThirdAccount;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.model.ThirdLoginModel;
+
+import java.util.List;
+
+/**
+ * @Description: 第三方登录账号表
+ * @Author: jeecg-boot
+ * @Date:   2020-11-17
+ * @Version: V1.0
+ */
+public interface ISysThirdAccountService extends IService<SysThirdAccount> {
+    /**
+     * 更新第三方账户信息
+     * @param sysUser SysUser对象
+     * @param thirdUserUuid 第三方id
+     */
+    void updateThirdUserId(SysUser sysUser,String thirdUserUuid);
+
+    /**
+     * 创建第三方用户
+     * @param phone 手机号
+     * @param thirdUserUuid 第三方id
+     * @return SysUser
+     */
+    SysUser createUser(String phone, String thirdUserUuid);
+
+    /**
+     * 根据本地userId查询数据
+     * @param sysUserId 用户id
+     * @param thirdType 第三方登录类型
+     * @return SysThirdAccount
+     */
+    SysThirdAccount getOneBySysUserId(String sysUserId, String thirdType);
+
+    /**
+     * 根据第三方userId查询数据
+     * @param thirdUserId 第三方id
+     * @param thirdType 第三方登录类型
+     * @return SysThirdAccount
+     */
+    SysThirdAccount getOneByThirdUserId(String thirdUserId, String thirdType);
+
+    /**
+     * 通过 sysUsername 集合批量查询
+     *
+     * @param sysUsernameArr username集合
+     * @param thirdType      第三方类型
+     * @return
+     */
+    List<SysThirdAccount> listThirdUserIdByUsername(String[] sysUsernameArr, String thirdType);
+
+    /**
+     * 创建新用户
+     *
+     * @param tlm 第三方登录信息
+     * @return SysThirdAccount
+     */
+    SysThirdAccount saveThirdUser(ThirdLoginModel tlm);
+
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserAgentService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.system.service;
+
+import org.jeecg.modules.system.entity.SysUserAgent;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 用户代理人设置
+ * @Author: jeecg-boot
+ * @Date:  2019-04-17
+ * @Version: V1.0
+ */
+public interface ISysUserAgentService extends IService<SysUserAgent> {
+
+}

+ 80 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserDepartService.java

@@ -0,0 +1,80 @@
+package org.jeecg.modules.system.service;
+
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.entity.SysUserDepart;
+import org.jeecg.modules.system.model.DepartIdModel;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * SysUserDpeart用户组织机构service
+ * </p>
+ * @Author ZhiLin
+ *
+ */
+public interface ISysUserDepartService extends IService<SysUserDepart> {
+	
+
+	/**
+	 * 根据指定用户id查询部门信息
+	 * @param userId
+	 * @return
+	 */
+	List<DepartIdModel> queryDepartIdsOfUser(String userId);
+	
+
+	/**
+	 * 根据部门id查询用户信息
+	 * @param depId
+	 * @return
+	 */
+	List<SysUser> queryUserByDepId(String depId);
+  	/**
+	 * 根据部门code,查询当前部门和下级部门的用户信息
+     * @param depCode 部门code
+     * @param realname 真实姓名
+     * @return List<SysUser>
+	 */
+	List<SysUser> queryUserByDepCode(String depCode,String realname);
+
+	/**
+	 * 用户组件数据查询
+	 * @param departId
+	 * @param username
+	 * @param pageSize
+	 * @param pageNo
+     * @param realname
+     * @param id
+	 * @return
+	 */
+	IPage<SysUser> queryDepartUserPageList(String departId, String username, String realname, int pageSize, int pageNo,String id);
+
+    /**
+     * 获取用户信息
+	 * @param tenantId
+     * @param departId
+     * @param keyword
+     * @param pageSize
+     * @param pageNo
+     * @return
+     */
+    IPage<SysUser> getUserInformation(Integer tenantId, String departId, String keyword, Integer pageSize, Integer pageNo);
+
+	/**
+	 * 获取用户信息
+	 * @param tenantId
+	 * @param departId
+	 * @param roleId
+	 * @param keyword
+	 * @param pageSize
+	 * @param pageNo
+	 * @return
+	 */
+	IPage<SysUser> getUserInformation(Integer tenantId,String departId,String roleId, String keyword, Integer pageSize, Integer pageNo);
+}

+ 18 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserRoleService.java

@@ -0,0 +1,18 @@
+package org.jeecg.modules.system.service;
+
+import java.util.Map;
+
+import org.jeecg.modules.system.entity.SysUserRole;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 用户角色表 服务类
+ * </p>
+ *
+ * @Author scott
+ * @since 2018-12-21
+ */
+public interface ISysUserRoleService extends IService<SysUserRole> {
+}

+ 392 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java

@@ -0,0 +1,392 @@
+package org.jeecg.modules.system.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.system.vo.SysUserCacheInfo;
+import org.jeecg.modules.system.entity.SysRoleIndex;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.model.SysUserSysDepartModel;
+import org.jeecg.modules.system.vo.lowapp.DepartAndUserInfo;
+import org.jeecg.modules.system.vo.lowapp.UpdateDepartInfo;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * <p>
+ * 用户表 服务类
+ * </p>
+ *
+ * @Author scott
+ * @since 2018-12-20
+ */
+public interface ISysUserService extends IService<SysUser> {
+
+	/**
+	 * 查询用户数据列表
+	 * 
+	 * @param req
+	 * @param queryWrapper
+	 * @param pageSize
+	 * @param pageNo
+	 * @return
+	 */
+	Result<IPage<SysUser>> queryPageList(HttpServletRequest req, QueryWrapper<SysUser> queryWrapper, Integer pageSize, Integer pageNo);
+	
+	/**
+	 * 重置密码
+	 *
+	 * @param username
+	 * @param oldpassword
+	 * @param newpassword
+	 * @param confirmpassword
+	 * @return
+	 */
+	public Result<?> resetPassword(String username, String oldpassword, String newpassword, String confirmpassword);
+
+	/**
+	 * 修改密码
+	 *
+	 * @param sysUser
+	 * @return
+	 */
+	public Result<?> changePassword(SysUser sysUser);
+
+	/**
+	 * 删除用户
+	 * @param userId
+	 * @return
+	 */
+	public boolean deleteUser(String userId);
+
+	/**
+	 * 批量删除用户
+	 * @param userIds
+	 * @return
+	 */
+	public boolean deleteBatchUsers(String userIds);
+
+    /**
+     * 根据用户名查询
+     * @param username 用户名
+     * @return SysUser
+     */
+	public SysUser getUserByName(String username);
+	
+	/**
+	 * 添加用户和用户角色关系
+	 * @param user
+	 * @param roles
+	 */
+	public void addUserWithRole(SysUser user,String roles);
+	
+	
+	/**
+	 * 修改用户和用户角色关系
+	 * @param user
+	 * @param roles
+	 */
+	public void editUserWithRole(SysUser user,String roles);
+
+	/**
+	 * 获取用户的授权角色
+	 * @param username
+	 * @return
+	 */
+	public List<String> getRole(String username);
+
+	/**
+	 * 获取根据登录用户的角色获取动态首页
+	 *
+	 * @param username
+	 * @param version 前端UI版本
+	 * @return
+	 */
+	public SysRoleIndex getDynamicIndexByUserRole(String username,String version);
+	
+	/**
+	  * 查询用户信息包括 部门信息
+	 * @param username
+	 * @return
+	 */
+	@Deprecated
+	public SysUserCacheInfo getCacheUser(String username);
+
+	/**
+	 * 根据部门Id查询
+	 * @param page
+     * @param departId 部门id
+     * @param username 用户账户名称
+	 * @return
+	 */
+	public IPage<SysUser> getUserByDepId(Page<SysUser> page, String departId, String username);
+
+	/**
+	 * 根据部门Ids查询
+	 * @param page
+     * @param departIds  部门id集合
+     * @param username 用户账户名称
+	 * @return
+	 */
+	public IPage<SysUser> getUserByDepIds(Page<SysUser> page, List<String> departIds, String username);
+
+	/**
+	 * 根据 userIds查询,查询用户所属部门的名称(多个部门名逗号隔开)
+	 * @param userIds
+	 * @return
+	 */
+	public Map<String,String> getDepNamesByUserIds(List<String> userIds);
+
+    /**
+     * 根据部门 Id 和 QueryWrapper 查询
+     *
+     * @param page
+     * @param departId
+     * @param queryWrapper
+     * @return
+     */
+    //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245【漏洞】发现新漏洞待处理20220906 ----sql注入 方法没有使用,注掉
+    // public IPage<SysUser> getUserByDepartIdAndQueryWrapper(Page<SysUser> page, String departId, QueryWrapper<SysUser> queryWrapper);
+	//update-end-author:taoyan date:2022-9-13 for: VUEN-2245【漏洞】发现新漏洞待处理20220906 ----sql注入 方法没有使用,注掉
+
+	/**
+	 * 根据 orgCode 查询用户,包括子部门下的用户
+	 *
+	 * @param orgCode
+	 * @param userParams 用户查询条件,可为空
+	 * @param page 分页参数
+	 * @return
+	 */
+	IPage<SysUserSysDepartModel> queryUserByOrgCode(String orgCode, SysUser userParams, IPage page);
+
+	/**
+	 * 根据角色Id查询
+	 * @param page
+     * @param roleId 角色id
+     * @param username 用户账户名称
+	 * @return
+	 */
+	public IPage<SysUser> getUserByRoleId(Page<SysUser> page,String roleId, String username);
+
+	/**
+	 * 通过用户名获取用户角色集合
+	 *
+	 * @param username 用户名
+	 * @return 角色集合
+	 */
+	Set<String> getUserRolesSet(String username);
+
+	/**
+	 * 通过用户名获取用户权限集合
+	 *
+	 * @param username 用户名
+	 * @return 权限集合
+	 */
+	Set<String> getUserPermissionsSet(String username);
+	
+	/**
+	 * 根据用户名设置部门ID
+	 * @param username
+	 * @param orgCode
+	 */
+	void updateUserDepart(String username,String orgCode,Integer loginTenantId);
+	
+	/**
+	 * 根据手机号获取用户名和密码
+     * @param phone 手机号
+     * @return SysUser
+	 */
+	public SysUser getUserByPhone(String phone);
+
+
+	/**
+	 * 根据邮箱获取用户
+     * @param email 邮箱
+     * @return SysUser
+     */
+	public SysUser getUserByEmail(String email);
+
+
+	/**
+	 * 添加用户和用户部门关系
+	 * @param user
+	 * @param selectedParts
+	 */
+	void addUserWithDepart(SysUser user, String selectedParts);
+
+	/**
+	 * 编辑用户和用户部门关系
+	 * @param user
+	 * @param departs
+	 */
+	void editUserWithDepart(SysUser user, String departs);
+	
+	/**
+	   * 校验用户是否有效
+	 * @param sysUser
+	 * @return
+	 */
+	Result checkUserIsEffective(SysUser sysUser);
+
+	/**
+	 * 查询被逻辑删除的用户
+     * @return List<SysUser>
+	 */
+	List<SysUser> queryLogicDeleted();
+
+	/**
+	 * 查询被逻辑删除的用户(可拼装查询条件)
+     * @param wrapper
+     * @return List<SysUser>
+	 */
+	List<SysUser> queryLogicDeleted(LambdaQueryWrapper<SysUser> wrapper);
+
+	/**
+	 * 还原被逻辑删除的用户
+     * @param userIds  存放用户id集合
+     * @param updateEntity
+     * @return boolean
+	 */
+	boolean revertLogicDeleted(List<String> userIds, SysUser updateEntity);
+
+	/**
+	 * 彻底删除被逻辑删除的用户
+     * @param userIds 存放用户id集合
+     * @return boolean
+	 */
+	boolean removeLogicDeleted(List<String> userIds);
+
+    /**
+     * 更新手机号、邮箱空字符串为 null
+     * @return boolean
+     */
+    @Transactional(rollbackFor = Exception.class)
+    boolean updateNullPhoneEmail();
+
+	/**
+	 * 保存第三方用户信息
+	 * @param sysUser
+	 */
+	void saveThirdUser(SysUser sysUser);
+
+	/**
+	 * 根据部门Ids查询
+	 * @param departIds 部门id集合
+     * @param username 用户账户名称
+	 * @return
+	 */
+	List<SysUser> queryByDepIds(List<String> departIds, String username);
+
+	/**
+	 * 保存用户
+	 * @param user 用户
+	 * @param selectedRoles 选择的角色id,多个以逗号隔开
+	 * @param selectedDeparts 选择的部门id,多个以逗号隔开
+	 * @param relTenantIds 多个租户id
+	 */
+	void saveUser(SysUser user, String selectedRoles, String selectedDeparts, String relTenantIds);
+
+	/**
+	 * 编辑用户
+	 * @param user 用户
+	 * @param roles 选择的角色id,多个以逗号隔开
+	 * @param departs 选择的部门id,多个以逗号隔开
+	 * @param relTenantIds 多个租户id
+	 */
+	void editUser(SysUser user, String roles, String departs, String relTenantIds);
+
+	/**
+     * userId转为username
+     * @param userIdList
+     * @return List<String>
+     */
+	List<String> userIdToUsername(Collection<String> userIdList);
+
+
+	/**
+	 * 获取用户信息 字段信息是加密后的 【加密用户信息】
+	 * @param username
+	 * @return
+	 */
+	LoginUser getEncodeUserInfo(String username);
+
+    /**
+     * 用户离职
+     * @param username
+     */
+    void userQuit(String username);
+
+    /**
+     * 获取离职人员列表
+	 * @param tenantId 租户id
+     * @return
+     */
+    List<SysUser> getQuitList(Integer tenantId);
+
+    /**
+     * 更新刪除状态和离职状态
+     * @param userIds  存放用户id集合
+     * @param sysUser
+     * @return boolean
+     */
+    void updateStatusAndFlag(List<String> userIds, SysUser sysUser);
+
+	/**
+	 * 设置登录租户
+	 * @param sysUser
+	 * @return
+	 */
+	Result<JSONObject>  setLoginTenant(SysUser sysUser, JSONObject obj, String username, Result<JSONObject> result);
+
+	//--- author:taoyan date:20221231 for: QQYUN-3515【应用】应用下的组织机构管理功能,细节实现 ---
+	/**
+	 * 批量编辑用户信息
+	 * @param json
+	 */
+	void batchEditUsers(JSONObject json);
+
+	/**
+	 * 根据关键词查询用户和部门
+	 * @param keyword
+	 * @return
+	 */
+	DepartAndUserInfo searchByKeyword(String keyword);
+
+	/**
+	 * 查询 部门修改的信息
+	 * @param departId
+	 * @return
+	 */
+	UpdateDepartInfo getUpdateDepartInfo(String departId);
+
+	/**
+	 * 修改部门相关信息
+	 * @param updateDepartInfo
+	 */
+	void doUpdateDepartInfo(UpdateDepartInfo updateDepartInfo);
+
+	/**
+	 * 设置负责人 取消负责人
+	 * @param json
+	 */
+	void changeDepartChargePerson(JSONObject json);
+	//--- author:taoyan date:20221231 for: QQYUN-3515【应用】应用下的组织机构管理功能,细节实现 ---
+	
+	/**
+	 * 编辑租户用户
+	 * @param sysUser
+	 * @param tenantId
+	 * @param departs
+	 */
+	void editTenantUser(SysUser sysUser, String tenantId, String departs, String roles);
+}

+ 89 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserTenantService.java

@@ -0,0 +1,89 @@
+package org.jeecg.modules.system.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.entity.SysUserTenant;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.system.vo.SysUserTenantVo;
+
+import java.util.List;
+
+/**
+ * @Description: sys_user_tenant_relation
+ * @Author: jeecg-boot
+ * @Date:   2022-12-23
+ * @Version: V1.0
+ */
+public interface ISysUserTenantService extends IService<SysUserTenant> {
+
+    /**
+     * 通过租户id获取数据
+     * @param page
+     * @param userTenantId
+     * @param user
+     * @return
+     */
+    Page<SysUser> getPageUserList(Page<SysUser> page, Integer userTenantId, SysUser user);
+
+    /**
+     * 设置租户id
+     * @param records
+     * @return
+     */
+    List<SysUser> setUserTenantIds(List<SysUser> records);
+
+    /**
+     * 获取用户id根据用户id
+     * @param tenantId
+     * @return
+     */
+    List<String> getUserIdsByTenantId(Integer tenantId);
+
+    /**
+     * 通过用户id获取租户ids
+     * @param userId
+     * @return
+     */
+    List<Integer> getTenantIdsByUserId(String userId);
+    
+    /**
+     * 通过用户id获取租户列表
+     * @param userId
+     * @param userTenantStatus
+     * @return
+     */
+    List<SysUserTenantVo> getTenantListByUserId(String userId, List<String>  userTenantStatus);
+    
+    /**
+     * 更新用户租户状态
+     * @param id
+     * @param tenantId
+     * @param userTenantStatus
+     */
+    void updateUserTenantStatus(String id, String tenantId, String userTenantStatus);
+
+    /**
+     * 联查用户和租户审核状态
+     * @param page
+     * @param status 租户用户状态,默认为1正常
+     * @param user
+     * @return
+     */
+    IPage<SysUserTenantVo> getUserTenantPageList(Page<SysUserTenantVo> page, List<String> status, SysUser user, Integer tenantId);
+
+    /**
+     * 取消离职
+     * @param userIds
+     * @param tenantId
+     */
+    void putCancelQuit(List<String> userIds, Integer tenantId);
+
+    /**
+     * 验证用户是否已存在
+     * @param userId
+     * @param tenantId
+     * @return
+     */
+    Integer userTenantIzExist(String userId, Integer tenantId);
+}

+ 89 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IThirdAppService.java

@@ -0,0 +1,89 @@
+package org.jeecg.modules.system.service;
+
+import org.jeecg.common.api.dto.message.MessageDTO;
+import org.jeecg.modules.system.vo.thirdapp.SyncInfoVo;
+
+import java.util.List;
+
+/**
+ * 第三方App对接
+ * @author: jeecg-boot
+ */
+public interface IThirdAppService {
+
+    /**
+     * 获取AccessToken
+     * @return String
+     */
+    String getAccessToken();
+
+    /**
+     * 将本地部门同步到第三方App<br>
+     * 同步方向:本地 --> 第三方APP
+     * 同步逻辑:<br>
+     * 1. 先判断是否同步过,有则修改,无则创建;<br>
+     * 2. 本地没有但第三方App里有则删除第三方App里的。
+     * @param ids
+     * @return 成功返回true
+     */
+    SyncInfoVo syncLocalDepartmentToThirdApp(String ids);
+
+    /**
+     * 将第三方App部门同步到本地<br>
+     * 同步方向:第三方APP --> 本地
+     * 同步逻辑:<br>
+     * 1. 先判断是否同步过,有则修改,无则创建;<br>
+     * 2. 本地没有但第三方App里有则删除第三方App里的。
+     * @param ids
+     * @return 成功返回true
+     */
+    SyncInfoVo syncThirdAppDepartmentToLocal(String ids);
+
+    /**
+     * 将本地用户同步到第三方App<br>
+     * 同步方向:本地 --> 第三方APP <br>
+     * 同步逻辑:先判断是否同步过,有则修改、无则创建<br>
+     * 注意:同步人员的状态,比如离职、禁用、逻辑删除等。
+     * (特殊点:1、目前逻辑特意做的不删除用户,防止企业微信提前上线,用户已经存在,但是平台无此用户。
+     *  企业微信支持禁用账号;钉钉不支持
+     *  2、企业微信里面是手机号激活,只能用户自己改,不允许通过接口改)
+     * @param ids
+     * @return 成功返回空数组,失败返回错误信息
+     */
+    SyncInfoVo syncLocalUserToThirdApp(String ids);
+
+    /**
+     * 将第三方App用户同步到本地<br>
+     * 同步方向:第三方APP --> 本地 <br>
+     * 同步逻辑:先判断是否同步过,有则修改、无则创建<br>
+     * 注意:同步人员的状态,比如离职、禁用、逻辑删除等。
+     *
+     * @return 成功返回空数组,失败返回错误信息
+     */
+    SyncInfoVo syncThirdAppUserToLocal();
+
+    /**
+     * 根据本地用户ID,删除第三方APP的用户
+     *
+     * @param userIdList 本地用户ID列表
+     * @return 0表示成功,其他值表示失败
+     */
+    int removeThirdAppUser(List<String> userIdList);
+
+    /**
+     * 发送消息
+     *
+     * @param message
+     * @param verifyConfig 是否验证配置(未启用的APP会拒绝发送)
+     * @return
+     */
+    boolean sendMessage(MessageDTO message, boolean verifyConfig);
+
+    /**
+     * 发送消息
+     * @param message
+     * @return boolean
+     */
+    boolean sendMessage(MessageDTO message);
+
+}

BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/message/service/ISysMessageService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/message/service/ISysMessageTemplateService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysFormFileService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysGatewayRouteService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysLogService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysPackPermissionService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysPermissionDataRuleService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysPermissionService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysPositionService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysRoleIndexService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysRolePermissionService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysRoleService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysTenantPackService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysTenantService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysThirdAccountService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysUserAgentService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysUserDepartService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysUserRoleService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysUserService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/ISysUserTenantService.class


BIN
jeecg-module-system/jeecg-system-biz/target/classes/org/jeecg/modules/system/service/IThirdAppService.class


+ 92 - 0
jeecg-server-cloud/jeecg-visual/jeecg-cloud-xxljob/src/main/java/com/xxl/job/admin/core/util/JacksonUtil.java

@@ -0,0 +1,92 @@
+package com.xxl.job.admin.core.util;
+
+import com.fasterxml.jackson.core.JsonGenerationException;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+
+/**
+ * Jackson util
+ * 
+ * 1、obj need private and set/get;
+ * 2、do not support inner class;
+ * 
+ * @author xuxueli 2015-9-25 18:02:56
+ */
+public class JacksonUtil {
+	private static Logger logger = LoggerFactory.getLogger(JacksonUtil.class);
+
+    private final static ObjectMapper objectMapper = new ObjectMapper();
+    public static ObjectMapper getInstance() {
+        return objectMapper;
+    }
+
+    /**
+     * bean、array、List、Map --> json
+     * 
+     * @param obj
+     * @return json string
+     * @throws Exception
+     */
+    public static String writeValueAsString(Object obj) {
+    	try {
+			return getInstance().writeValueAsString(obj);
+		} catch (JsonGenerationException e) {
+			logger.error(e.getMessage(), e);
+		} catch (JsonMappingException e) {
+			logger.error(e.getMessage(), e);
+		} catch (IOException e) {
+			logger.error(e.getMessage(), e);
+		}
+        return null;
+    }
+
+    /**
+     * string --> bean、Map、List(array)
+     * 
+     * @param jsonStr
+     * @param clazz
+     * @return obj
+     * @throws Exception
+     */
+    public static <T> T readValue(String jsonStr, Class<T> clazz) {
+    	try {
+			return getInstance().readValue(jsonStr, clazz);
+		} catch (JsonParseException e) {
+			logger.error(e.getMessage(), e);
+		} catch (JsonMappingException e) {
+			logger.error(e.getMessage(), e);
+		} catch (IOException e) {
+			logger.error(e.getMessage(), e);
+		}
+    	return null;
+    }
+
+	/**
+	 * string --> List<Bean>...
+	 *
+	 * @param jsonStr
+	 * @param parametrized
+	 * @param parameterClasses
+	 * @param <T>
+	 * @return
+	 */
+	public static <T> T readValue(String jsonStr, Class<?> parametrized, Class<?>... parameterClasses) {
+		try {
+			JavaType javaType = getInstance().getTypeFactory().constructParametricType(parametrized, parameterClasses);
+			return getInstance().readValue(jsonStr, javaType);
+		} catch (JsonParseException e) {
+			logger.error(e.getMessage(), e);
+		} catch (JsonMappingException e) {
+			logger.error(e.getMessage(), e);
+		} catch (IOException e) {
+			logger.error(e.getMessage(), e);
+		}
+		return null;
+	}
+}