丁治程 9 miesięcy temu
rodzic
commit
28cb0b0ef6
17 zmienionych plików z 419 dodań i 6 usunięć
  1. 4 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSystemLimit/entity/InterlockSystemLimit.java
  2. 1 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSystemLimit/mapper/InterlockSystemLimitMapper.java
  3. 3 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSystemLimit/mapper/xml/InterlockSystemLimitMapper.xml
  4. 1 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSystemLimit/service/IInterlockSystemLimitService.java
  5. 8 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSystemLimit/service/impl/InterlockSystemLimitServiceImpl.java
  6. 2 2
      jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockUser/controller/InterlockUserController.java
  7. 3 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockUser/entity/InterlockUser.java
  8. 1 1
      jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockUser/service/IInterlockUserService.java
  9. 132 1
      jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockUser/service/impl/InterlockUserServiceImpl.java
  10. 11 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/controller/IotedgeCollectDataController.java
  11. 197 1
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/RestClientService.java
  12. 1 1
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/impl/IotedgeCollectDataServiceImpl.java
  13. 6 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/mapper/IotedgeConfigMapper.java
  14. 11 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/mapper/xml/IotedgeConfigMapper.xml
  15. 6 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/service/IIotedgeConfigService.java
  16. 15 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/service/impl/IotedgeConfigServiceImpl.java
  17. 17 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/util/ConfigInfo.java

+ 4 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSystemLimit/entity/InterlockSystemLimit.java

@@ -71,4 +71,8 @@ public class InterlockSystemLimit implements Serializable {
 	@Excel(name = "权限类型(0管理1查看)", width = 15)
     @ApiModelProperty(value = "权限类型(0管理1查看)")
     private java.lang.String limitType;
+
+    /**iotedge中groupid,group对应系统*/
+    @ApiModelProperty(value = "iotedge中groupid,group对应系统")
+    private java.lang.String iotedgeGroupId;
 }

+ 1 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSystemLimit/mapper/InterlockSystemLimitMapper.java

@@ -19,4 +19,5 @@ public interface InterlockSystemLimitMapper extends BaseMapper<InterlockSystemLi
     @Select("select #{username} as create_by, b.id as interlock_system_id, b.pid as interlock_apparatus_id, #{userId} as interlock_user_id, '0' as limit_type from (select * from interlock_base where interlock_type = '1') b")
     List<InterlockSystemLimit> getInterlockSystemLimitList(@Param("username") String username, @Param("userId") String userId);
 
+    List<InterlockSystemLimit> selectListByUserId(@Param("userId") String id);
 }

+ 3 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSystemLimit/mapper/xml/InterlockSystemLimitMapper.xml

@@ -2,4 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.interlockSystemLimit.mapper.InterlockSystemLimitMapper">
 
+    <select id="selectListByUserId" resultType="org.jeecg.modules.interlockSystemLimit.entity.InterlockSystemLimit">
+        select * from interlock_system_limit where interlock_user_id = #{userId}
+    </select>
 </mapper>

+ 1 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSystemLimit/service/IInterlockSystemLimitService.java

@@ -17,4 +17,5 @@ public interface IInterlockSystemLimitService extends IService<InterlockSystemLi
     //系统管理员权限 查询所有系统并将系统权限赋成管理0用于展示
     List<InterlockSystemLimit> getInterlockSystemLimitList(String username, String userId);
 
+    List<InterlockSystemLimit> selectListByUserId(String id);
 }

+ 8 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSystemLimit/service/impl/InterlockSystemLimitServiceImpl.java

@@ -28,4 +28,12 @@ public class InterlockSystemLimitServiceImpl extends ServiceImpl<InterlockSystem
         return interlockSystemLimitMapper.getInterlockSystemLimitList(username, userId);
     }
 
+    @Autowired
+    @SuppressWarnings("all")
+    private InterlockSystemLimitMapper mapper;
+
+    @Override
+    public List<InterlockSystemLimit> selectListByUserId(String id) {
+        return mapper.selectListByUserId(id);
+    }
 }

+ 2 - 2
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockUser/controller/InterlockUserController.java

@@ -214,8 +214,8 @@ public class InterlockUserController extends JeecgController<InterlockUser, IInt
 	 @ApiOperation(value="联锁管理系统用户表-通过id删除用户及权限", notes="联锁管理系统用户表-通过id删除用户及权限")
 	 //@RequiresPermissions("org.jeecg.modules:interlock_user:delete")
 	 @DeleteMapping(value = "/deleteUser")
-	 public Result<String> deleteUser(@RequestParam(name="id",required=true) String id) {
-		 return interlockUserService.deleteUser(id);
+	 public Result<String> deleteUser(@RequestParam(name="id",required=true) String id,HttpServletRequest request) {
+		 return interlockUserService.deleteUser(id,request);
 	 }
 
 	 /**

+ 3 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockUser/entity/InterlockUser.java

@@ -67,4 +67,7 @@ public class InterlockUser implements Serializable {
 	@Excel(name = "当前用户角色(0系统管理员1其他角色)", width = 15)
     @ApiModelProperty(value = "当前用户角色(0系统管理员1其他角色)")
     private java.lang.String role;
+    /**iotedeg中用户id*/
+    @ApiModelProperty(value = "iotedeg中用户id")
+    private java.lang.String iotUserid;
 }

+ 1 - 1
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockUser/service/IInterlockUserService.java

@@ -40,7 +40,7 @@ public interface IInterlockUserService extends IService<InterlockUser> {
      *   des: 通过id删除用户及权限
      *   date: 2024/7/30
      */
-    Result<String> deleteUser(String id);
+    Result<String> deleteUser(String id,HttpServletRequest request);
 
     /**
      *   author: sl

+ 132 - 1
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockUser/service/impl/InterlockUserServiceImpl.java

@@ -1,8 +1,13 @@
 package org.jeecg.modules.interlockUser.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.base.entity.InterlockBase;
+import org.jeecg.modules.base.service.IInterlockBaseService;
 import org.jeecg.modules.interlockSystemLimit.entity.InterlockSystemLimit;
 import org.jeecg.modules.interlockSystemLimit.service.IInterlockSystemLimitService;
 import org.jeecg.modules.interlockUser.entity.InterlockUser;
@@ -11,6 +16,8 @@ import org.jeecg.modules.interlockUser.mapper.InterlockUserMapper;
 import org.jeecg.modules.interlockUser.service.IInterlockUserService;
 import org.jeecg.modules.iotedgeCollectData.entity.IoTEdgeDevices;
 import org.jeecg.modules.iotedgeCollectData.mapper.IotedgeCollectDataMapper;
+import org.jeecg.modules.iotedgeCollectData.service.IIotedgeCollectDataService;
+import org.jeecg.modules.iotedgeCollectData.service.RestClientService;
 import org.jeecg.modules.system.entity.SysUserRole;
 import org.jeecg.modules.system.mapper.SysUserRoleMapper;
 import org.jeecg.modules.system.service.ISysUserRoleService;
@@ -21,6 +28,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
+import javax.xml.ws.ServiceMode;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -32,6 +40,7 @@ import java.util.Map;
  * @Date:   2024-07-29
  * @Version: V1.0
  */
+@Slf4j
 @Service
 public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, InterlockUser> implements IInterlockUserService {
 
@@ -47,6 +56,18 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
     @SuppressWarnings("all")
     private IInterlockSystemLimitService interlockSystemLimitService;
 
+    @Autowired
+    @SuppressWarnings("all")
+    private RestClientService restClientService;
+
+    @Autowired
+    @SuppressWarnings("all")
+    private IIotedgeCollectDataService iotedgeCollectDataService;
+
+    @Autowired
+    @SuppressWarnings("all")
+    private IInterlockBaseService baseService;
+
     /**
      *   author: sl
      *   version: 1.0
@@ -57,6 +78,7 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
         //创建一个用户类用来存放新增用户的信息;
         InterlockUser interlockUser = new InterlockUser();
 
+        String eiToken = "";
         String wiseUser = "";
         //获取当前用户名
         Cookie[] cookies = request.getCookies();
@@ -65,6 +87,9 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
                 if (cookie.getName().equals("WISEUser")) {
                     wiseUser = cookie.getValue();
                 }
+                if (cookie.getName().equals("EIToken")) {
+                    eiToken = cookie.getValue();
+                }
             }
         }
         //填充用户信息
@@ -85,6 +110,42 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
         SysUserRole userRole = new SysUserRole(userId, interlockUserAdd.getRoleId());
         sysUserRoleService.save(userRole);
 
+        //try {
+        //    restClientService.addSSOUser(interlockUserAdd.getUsername());
+        //} catch (Exception e) {
+        //    log.info("SSO新增用户报错:{}",e.getMessage());
+        //} finally {
+        //    JSONObject jsonObject = restClientService.invitationSSOUserInIoTEdge(interlockUserAdd.getUsername(), eiToken);
+        //    String code = (String) jsonObject.get("code");
+        //    String iotUserId = (String) jsonObject.get("userId");
+        //
+        //    interlockUser.setIotUserid(iotUserId);
+        //    this.updateById(interlockUser);
+        //
+        //    if (ObjectUtil.isNotNull(code)){
+        //        log.info("IoTEdge邀请SSO用户失败: {}"+jsonObject.get("message").toString());
+        //        return Result.error("IoTEdge邀请SSO用户失败:"+jsonObject.get("message").toString());
+        //    }
+        //    String rloe = "";
+        //    if ("0".equals(interlockUserAdd.getRole())){
+        //        rloe = "systemAdmin";
+        //        restClientService.setUserRole(iotUserId,"",rloe,eiToken);
+        //    }else {
+        //        for (InterlockSystemLimit item : interlockUserAdd.getSystemLimitList()) {
+        //            //InterlockBase base = baseService.getById(item.getId());
+        //            if ("1".equals(interlockUserAdd.getRole()) && ObjectUtil.isNotNull(item.getLimitType()) && "0".equals(item.getLimitType())){
+        //                rloe = "groupAdmin";
+        //                restClientService.setUserRole(iotUserId,item.getIotedgeGroupId(),rloe,eiToken);
+        //            }else if ("1".equals(interlockUserAdd.getRole()) && ObjectUtil.isNotNull(item.getLimitType()) && "1".equals(item.getLimitType())){
+        //                rloe = "groupView";
+        //                restClientService.setUserRole(iotUserId,item.getIotedgeGroupId(),rloe,eiToken);
+        //            }
+        //        }
+        //    }
+        //
+        //}
+
+
         return Result.OK("用户添加成功!");
     }
 
@@ -98,6 +159,7 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
         //创建一个用户类用来存放编辑用户的信息;
         InterlockUser interlockUser = new InterlockUser();
 
+        String eiToken = "";
         String wiseUser = "";
         //获取当前用户名
         Cookie[] cookies = request.getCookies();
@@ -106,6 +168,9 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
                 if (cookie.getName().equals("WISEUser")) {
                     wiseUser = cookie.getValue();
                 }
+                if (cookie.getName().equals("EIToken")) {
+                    eiToken = cookie.getValue();
+                }
             }
         }
         String userId = interlockUserAdd.getId();//用户id
@@ -121,6 +186,40 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
             interlockSystemLimit.setUpdateBy(wiseUser);
             interlockSystemLimit.setInterlockUserId(userId);
         }
+
+        //InterlockUser user = this.getById(interlockUser);
+        //
+        //String rloe = "";
+        //if ("0".equals(interlockUserAdd.getRole())){
+        //    rloe = "systemAdmin";
+        //    restClientService.setUserRole(user.getIotUserid(),"",rloe,eiToken);
+        //}else {
+        //    if ("1".equals(user.getRole())){
+        //        List<InterlockSystemLimit> list = interlockSystemLimitService.selectListByUserId(user.getId());
+        //        for (InterlockSystemLimit limit : list) {
+        //            if (ObjectUtil.isNotNull(limit.getLimitType()) && ObjectUtil.isNotNull(limit.getIotedgeGroupId()) && "0".equals(limit.getLimitType())){
+        //                rloe = "groupAdmin";
+        //                restClientService.deleteUserRole(user.getIotUserid(),limit.getIotedgeGroupId(),rloe,eiToken);
+        //            }else if (ObjectUtil.isNotNull(limit.getLimitType()) && ObjectUtil.isNotNull(limit.getIotedgeGroupId()) && "1".equals(limit.getLimitType())){
+        //                rloe = "groupView";
+        //                restClientService.deleteUserRole(user.getIotUserid(),limit.getIotedgeGroupId(),rloe,eiToken);
+        //            }
+        //        }
+        //    }
+        //
+        //    for (InterlockSystemLimit item : interlockUserAdd.getSystemLimitList()) {
+        //        //InterlockBase base = baseService.getById(item.getId());
+        //        if ("1".equals(interlockUserAdd.getRole()) && ObjectUtil.isNotNull(item.getLimitType()) && "0".equals(item.getLimitType())){
+        //            rloe = "groupAdmin";
+        //            restClientService.setUserRole(user.getIotUserid(),item.getIotedgeGroupId(),rloe,eiToken);
+        //        }else if ("1".equals(interlockUserAdd.getRole()) && ObjectUtil.isNotNull(item.getLimitType()) && "1".equals(item.getLimitType())){
+        //            rloe = "groupView";
+        //            restClientService.setUserRole(user.getIotUserid(),item.getIotedgeGroupId(),rloe,eiToken);
+        //        }
+        //    }
+        //}
+
+
         this.updateById(interlockUser);
         interlockSystemLimitService.updateBatchById(interlockSystemLimitList);
 
@@ -137,7 +236,39 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
      *   des: 通过id删除用户及权限
      *   date: 2024/7/30
      */
-    public Result<String> deleteUser(String id){
+    public Result<String> deleteUser(String id,HttpServletRequest request){
+        String eiToken = "";
+        Cookie[] cookies = request.getCookies();
+        if (cookies != null) {
+            for (Cookie cookie : cookies) {
+                if (cookie.getName().equals("EIToken")) {
+                    eiToken = cookie.getValue();
+                }
+            }
+        }
+
+
+        //InterlockUser user = this.getById(id);
+        ////restClientService.deleteIoTEdgeUser(user.getIotUserid(),eiToken);
+        //
+        //String rloe = "";
+        //if ("0".equals(user.getRole())){
+        //    rloe = "systemAdmin";
+        //    restClientService.deleteUserRole(user.getIotUserid(),"",rloe,eiToken);
+        //}else {
+        //    List<InterlockSystemLimit> list = interlockSystemLimitService.selectListByUserId(user.getId());
+        //    for (InterlockSystemLimit limit : list) {
+        //        if (ObjectUtil.isNotNull(limit.getLimitType()) && ObjectUtil.isNotNull(limit.getIotedgeGroupId()) && "0".equals(limit.getLimitType())){
+        //            rloe = "groupAdmin";
+        //            restClientService.deleteUserRole(user.getIotUserid(),limit.getIotedgeGroupId(),rloe,eiToken);
+        //        }else if (ObjectUtil.isNotNull(limit.getLimitType()) && ObjectUtil.isNotNull(limit.getIotedgeGroupId()) && "1".equals(limit.getLimitType())){
+        //            rloe = "groupView";
+        //            restClientService.deleteUserRole(user.getIotUserid(),limit.getIotedgeGroupId(),rloe,eiToken);
+        //        }
+        //    }
+        //}
+
+
         this.removeById(id);
         //删除方法1  删除用户权限
         QueryWrapper<InterlockSystemLimit> queryWrapper = new QueryWrapper<>();

Plik diff jest za duży
+ 11 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/controller/IotedgeCollectDataController.java


+ 197 - 1
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/RestClientService.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.iotedgeCollectData.service;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import org.apache.http.client.HttpClient;
 import org.apache.http.impl.client.HttpClients;
@@ -286,7 +287,6 @@ public class RestClientService {
         restTemplate.setErrorHandler(new MyResponseErrorHandler());
         ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.POST,httpEntity, JSONObject.class);
         String accessToken = (String) response.getBody().get("accessToken");
-        System.out.println("-----------"+accessToken.length());
         configService.updateClientToken(accessToken);
         return accessToken;
     }
@@ -340,4 +340,200 @@ public class RestClientService {
         return response.getBody();
     }
 
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 调用 SSO 接口获取 clientId 、 clientSecret
+    *   date: 2024/8/5
+    */
+    public JSONObject postClinetInfo(){
+        ArrayList<String> scopList = new ArrayList<>();
+        scopList.add("Admin");
+        String ssoToken = getSSOToken();
+        String url = configService.getConfigValue(ConfigInfo.SSO_CREATECLIENT);
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("appName",System.getenv("appName"));
+        jsonObject.put("appId",System.getenv("appId"));
+        jsonObject.put("cluster",System.getenv("cluster"));
+        jsonObject.put("workspace",System.getenv("workspace"));
+        jsonObject.put("namespace",System.getenv("namespace"));
+        jsonObject.put("datacenter",System.getenv("datacenter"));
+        jsonObject.put("scopes",scopList);
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        headers.add("Authorization", "Bearer " + ssoToken);
+        HttpEntity<String> httpEntity = new HttpEntity<String>(jsonObject.toString(), headers);
+        ResponseEntity<JSONObject> response = restTemplate.postForEntity(url, httpEntity, JSONObject.class);
+        return response.getBody();
+    }
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 获取 clientToken
+    *   date: 2024/8/5
+    */
+    public String getClientToken2(){
+        JSONObject clientInfo = postClinetInfo();
+        String clientId = (String) clientInfo.get("clientId");
+        String clientSecret = (String) clientInfo.get("clientSecret");
+        //String url = "http://127.0.0.1:8188/v4.0/oauth/token?grant_type=client_credentials&client_id="+clientId+"&client_secret="+clientSecret+"&duration=eternal";
+        String url = configService.getConfigValue(ConfigInfo.SSO_GetClientToken)+"?grant_type=client_credentials&client_id="+clientId+"&client_secret="+clientSecret+"&duration=eternal";
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        //headers.setContentType(type);
+        //headers.add("Authorization", "Bearer " + token);
+        HttpEntity<String> httpEntity = new HttpEntity<String>(null, headers);
+        restTemplate.setErrorHandler(new MyResponseErrorHandler());
+        ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.POST,httpEntity, JSONObject.class);
+        String accessToken = (String) response.getBody().get("accessToken");
+        configService.updateClientToken2(accessToken);
+        configService.updateClientId(clientId);
+        configService.updateClientSecret(clientSecret);
+        return accessToken;
+    }
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 新增 SSO 用户
+    *   date: 2024/8/5
+    */
+    public JSONObject addSSOUser(String userName){
+        ArrayList<String> scopList = new ArrayList<>();
+        scopList.add("Admin");
+
+        String clientToken = configService.getConfigValue(ConfigInfo.POST_CLIENT_TOKEN);
+        String clientId = configService.getConfigValue(ConfigInfo.CLIENT_ID);
+        String clientSecret = configService.getConfigValue(ConfigInfo.CLIENT_SECRET);
+
+        if (ObjectUtil.isNull(clientToken) || "".equals(clientToken) || ObjectUtil.isNull(clientId) || "".equals(clientId) || ObjectUtil.isNull(clientSecret) || "".equals(clientSecret)){
+            getClientToken2();
+            clientToken = configService.getConfigValue(ConfigInfo.POST_CLIENT_TOKEN);
+            clientId = configService.getConfigValue(ConfigInfo.CLIENT_ID);
+            clientSecret = configService.getConfigValue(ConfigInfo.CLIENT_SECRET);
+        }
+
+
+        String url = configService.getConfigValue(ConfigInfo.SSO_ADDUSER)+"/"+userName+"/scopes";
+
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("clientId",clientId);
+        jsonObject.put("clientSecret",clientSecret);
+        jsonObject.put("action","append");
+        jsonObject.put("scopes",scopList);
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        headers.add("Authorization", "Bearer " + clientToken);
+        HttpEntity<String> httpEntity = new HttpEntity<String>(jsonObject.toString(), headers);
+
+        HttpClient httpClient = HttpClients.custom().build();
+        HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
+
+        RestTemplate restTemplate1 = new RestTemplate(factory);
+        restTemplate1.setErrorHandler(new MyResponseErrorHandler());
+        ResponseEntity<JSONObject> response = restTemplate1.exchange(url,HttpMethod.PATCH,httpEntity, JSONObject.class);
+        return response.getBody();
+
+    }
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 调用 IoTEdge 的接口,邀请 SSO 中创建的用户
+    *   date: 2024/8/6
+    */
+    public JSONObject invitationSSOUserInIoTEdge(String userName,String elToken){
+        //String url = "http://127.0.0.1:8082/v1/users/username"+"/"+userName;
+        String url = configService.getConfigValue(ConfigInfo.IOTEDGE_ADDUSER)+"/"+userName;
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        headers.add("Authorization", "Bearer " + elToken);
+        HttpEntity<String> httpEntity = new HttpEntity<String>(null, headers);
+        ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.POST,httpEntity, JSONObject.class);
+        return response.getBody();
+    }
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 调用 IoTEdge 的接口,分配用户角色
+    *   date: 2024/8/6
+    */
+    public JSONObject setUserRole(String userId,String groupId,String rloe,String elToken){
+        //String url = "http://127.0.0.1:8082/v1/users"+"/"+userId+"/rolebinding";
+        String url = configService.getConfigValue(ConfigInfo.IOTEDGE_SETUSERROLE)+"/"+userId+"/rolebinding";
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("groupId",groupId);
+        jsonObject.put("role",rloe);
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        headers.add("Authorization", "Bearer " + elToken);
+        HttpEntity<String> httpEntity = new HttpEntity<String>(jsonObject.toString(), headers);
+        ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.POST,httpEntity, JSONObject.class);
+        return response.getBody();
+    }
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 调用 IoTEdge 的接口,删除用户的权限
+    *   date: 2024/8/7
+    */
+    public JSONObject deleteUserRole(String userId,String groupId,String rloe,String elToken){
+        //String url = "http://127.0.0.1:8082/v1/users"+"/"+userId+"/rolebinding";
+        String url = configService.getConfigValue(ConfigInfo.IOTEDGE_SETUSERROLE)+"/"+userId+"/rolebinding";
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("groupId",groupId);
+        jsonObject.put("role",rloe);
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        headers.add("Authorization", "Bearer " + elToken);
+        HttpEntity<String> httpEntity = new HttpEntity<String>(jsonObject.toString(), headers);
+        ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.DELETE,httpEntity, JSONObject.class);
+        return response.getBody();
+    }
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 调用 SSO 的接口,删除用户
+    *   date: 2024/8/7
+    */
+    public JSONObject deleteSSOUser(String userName){
+        String ssoToken = getSSOToken();
+        String url = "http://127.0.0.1:8188/v4.0/users"+"/"+userName;
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        headers.add("Authorization", "Bearer " + ssoToken);
+        HttpEntity<String> httpEntity = new HttpEntity<String>(null, headers);
+        ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.DELETE,httpEntity, JSONObject.class);
+        return response.getBody();
+    }
+
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 调用 IoTEdge 的接口,删除用户
+    *   date: 2024/8/7
+    */
+    public JSONObject deleteIoTEdgeUser(String userId,String elToken){
+        String url = "http://127.0.0.1:8082/v1/user"+"/"+userId;
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        headers.add("Authorization", "Bearer " + elToken);
+        HttpEntity<String> httpEntity = new HttpEntity<String>(null, headers);
+        ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.DELETE,httpEntity, JSONObject.class);
+        return response.getBody();
+    }
+
+
 }

Plik diff jest za duży
+ 1 - 1
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/impl/IotedgeCollectDataServiceImpl.java


+ 6 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/mapper/IotedgeConfigMapper.java

@@ -15,4 +15,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 public interface IotedgeConfigMapper extends BaseMapper<IotedgeConfig> {
 
     int updateClientToken(@Param("accessToken") String accessToken);
+
+    int updateClientToken2(@Param("accessToken") String accessToken);
+
+    int updateClientId(@Param("clientId") String clientId);
+
+    int updateClientSecret(@Param("clientSecret") String clientSecret);
 }

+ 11 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/mapper/xml/IotedgeConfigMapper.xml

@@ -6,4 +6,15 @@
         update "iotedge_config" set configvalue = #{accessToken} where configkey = 'ClientToken'
     </update>
 
+    <update id="updateClientToken2">
+        update "iotedge_config" set configvalue = #{accessToken} where configkey = 'POSTClientToken'
+    </update>
+
+    <update id="updateClientId">
+        update "iotedge_config" set configvalue = #{clientId} where configkey = 'ClientId'
+    </update>
+    <update id="updateClientSecret">
+        update "iotedge_config" set configvalue = #{clientSecret} where configkey = 'ClientSecret'
+    </update>
+
 </mapper>

+ 6 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/service/IIotedgeConfigService.java

@@ -14,4 +14,10 @@ public interface IIotedgeConfigService extends IService<IotedgeConfig> {
     public String getConfigValue(String configkey);
 
     int updateClientToken(String accessToken);
+
+    int updateClientToken2(String accessToken);
+
+    int updateClientId(String clientId);
+
+    int updateClientSecret(String clientSecret);
 }

+ 15 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/service/impl/IotedgeConfigServiceImpl.java

@@ -34,4 +34,19 @@ public class IotedgeConfigServiceImpl extends ServiceImpl<IotedgeConfigMapper, I
     public int updateClientToken(String accessToken) {
         return mapper.updateClientToken(accessToken);
     }
+
+    @Override
+    public int updateClientToken2(String accessToken) {
+        return mapper.updateClientToken2(accessToken);
+    }
+
+    @Override
+    public int updateClientId(String clientId) {
+        return mapper.updateClientId(clientId);
+    }
+
+    @Override
+    public int updateClientSecret(String clientSecret) {
+        return mapper.updateClientSecret(clientSecret);
+    }
 }

+ 17 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/util/ConfigInfo.java

@@ -67,4 +67,21 @@ public class ConfigInfo {
 
     /** IoTEdge-获取所有组织 */
     public static String IOTEDGE_GETALLGROUP = "IoTEdge.GetAllGroup";
+
+    /** 永久ClientToken2 */
+    public static String POST_CLIENT_TOKEN = "POSTClientToken";
+    public static String CLIENT_ID = "ClientId";
+    public static String CLIENT_SECRET = "ClientSecret";
+
+    /** SSO-新增用户 */
+    public static String SSO_ADDUSER = "SSO.AddUser";
+
+    /** SSO-创建客户端(获取clientid/clientsecret) */
+    public static String SSO_CREATECLIENT = "SSO.CreateClient";
+
+    /** IoTEdge-邀请SSO用户 */
+    public static String IOTEDGE_ADDUSER = "IoTEdge.InvitationSSOUser";
+
+    /** IoTEdge-分配用户角色(新增/修改/删除) */
+    public static String IOTEDGE_SETUSERROLE = "IoTEdge.SetUserRloe";
 }