Bladeren bron

接口同步会议室数据

ZhangManMan 2 jaren geleden
bovenliggende
commit
df0774c4a7

+ 14 - 0
src/main/java/com/sky/ioc/config/RestTemplateConfig.java

@@ -0,0 +1,14 @@
+package com.sky.ioc.config;
+
+import org.springframework.boot.web.client.RestTemplateBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+
+@Configuration
+public class RestTemplateConfig {
+    @Bean
+    public RestTemplate restTemplate(RestTemplateBuilder builder){
+        return builder.build();
+    }
+}

+ 15 - 1
src/main/java/com/sky/ioc/controller/scene/StrategyController.java

@@ -1,5 +1,8 @@
 package com.sky.ioc.controller.scene;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.sky.ioc.entity.QuartzJob;
 import com.sky.ioc.entity.domain.scene.Strategy;
@@ -10,10 +13,13 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.*;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
 
-import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 @Api(tags ="智慧场景----智能策略")
 @Slf4j
@@ -88,4 +94,12 @@ public class StrategyController {
         return ReturnMsg.ok("删除成功!");
     }
 
+    public static void main(String[] args){
+
+
+    }
+
+
+
+
 }

+ 31 - 0
src/main/java/com/sky/ioc/controller/work/MeetingRoomController.java

@@ -0,0 +1,31 @@
+package com.sky.ioc.controller.work;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.sky.ioc.entity.params.IocParam;
+import com.sky.ioc.mapper.job.TokenMapper;
+import com.sky.ioc.service.meeting.MeetingRoomService;
+import com.sky.ioc.tool.ReturnMsg;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.Map;
+
+@Api(tags ="智慧办公----会议管理")
+@Slf4j
+@RestController
+@RequestMapping("/meetingroom")
+public class MeetingRoomController {
+
+    @Autowired
+    MeetingRoomService meetingRoomService;
+
+
+}

+ 40 - 0
src/main/java/com/sky/ioc/entity/domain/meeting/MeetingRoom.java

@@ -0,0 +1,40 @@
+package com.sky.ioc.entity.domain.meeting;
+
+import lombok.Data;
+
+@Data
+public class MeetingRoom {
+
+    private Integer id;
+    /** 排序号 */
+    private String orderNo;
+    /** 编号 */
+    private String mrNo;
+    /** 会议室名称 */
+    private String name;
+    /** 楼层 */
+    private Integer floorId;
+    /** 类型 */
+    private String  type;
+    /** 状态 */
+    private Integer room;
+
+
+    /** 开放时间 */
+    private String openTime;
+    /** 关闭时间 */
+    private String closeTime;
+
+    /** 会议超过几小时需要审核 */
+    private String auditTime;
+    /** 限定可预约时间(天) */
+    private String limitDay;
+
+    private Integer isDel;
+
+    /**备注*/
+    private String remark;
+
+    /** 容纳人数 */
+    private Integer capacity;
+}

+ 61 - 0
src/main/java/com/sky/ioc/job/LoginTokenJob.java

@@ -0,0 +1,61 @@
+package com.sky.ioc.job;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.sky.ioc.mapper.job.TokenMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+@Component
+@Slf4j
+public class LoginTokenJob implements Job {
+
+    @Autowired
+    TokenMapper tokenMapper;
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        log.info(String.format("获取登录token!  时间:" + new Date()));
+        // 1.请求URL
+        String postUrl = "http://192.168.1.45:9001/api/auth/login";
+        // 2.请求参数JSON格式
+        Map<String,String> map = tokenMapper.getNewToken();
+        map.put("loginType","API-TOKEN");
+        String json = JSON.toJSONString(map);
+        // 3.创建RestTemplate
+          RestTemplate restTemplate = new RestTemplate();
+        // 4.设置RestTemplate参数(请求头和body)
+        HttpHeaders headers = new HttpHeaders();
+        MediaType mediaType = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(mediaType);
+        headers.add("Accept", "application/json");
+        HttpEntity<String> entity = new HttpEntity<>(json, headers);
+        // 5.使用RestTemplate发起请求与接收返回值
+        String resultData = restTemplate.postForObject(postUrl, entity, String.class);
+        JSONObject jsonObject = JSONObject.parseObject(resultData);
+        Integer code = jsonObject.getInteger("code");
+        String msg = jsonObject.getString("msg");
+        if(code==200){
+            JSONObject data = jsonObject.getJSONObject("data");
+            String token = data.getString("access_token");
+            String id = String.valueOf(map.get("id"));
+            tokenMapper.updateToken(Integer.parseInt(id),token);
+            log.info("token : "+token);
+          //  System.out.println("data   "+data.getString(""));
+        }else{
+            log.info("登录接口失败:"+msg);
+        }
+    }
+}

+ 32 - 0
src/main/java/com/sky/ioc/job/MeetingRoomJob.java

@@ -0,0 +1,32 @@
+package com.sky.ioc.job;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.sky.ioc.entity.domain.meeting.MeetingRoom;
+import com.sky.ioc.service.meeting.MeetingRoomService;
+import lombok.extern.slf4j.Slf4j;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+@Slf4j
+public class MeetingRoomJob implements Job {
+
+    @Autowired
+    MeetingRoomService meetingRoomService;
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        log.info(String.format("同步会议室数据!  时间:" + new Date()));
+        meetingRoomService.getMeetingRoomList();
+
+    }
+}

+ 0 - 2
src/main/java/com/sky/ioc/job/SampleJob.java

@@ -9,8 +9,6 @@ import java.util.Date;
 
 /**
  * 不带参的简单定时任务
- * 
- * @Author nzc
  */
 @Slf4j
 public class SampleJob implements Job {

+ 5 - 2
src/main/java/com/sky/ioc/job/SampleParamJob.java

@@ -1,6 +1,7 @@
 package com.sky.ioc.job;
 
 import com.sky.ioc.service.job.IQuartzJobService;
+import com.sky.ioc.service.meeting.MeetingRoomService;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.Job;
 import org.quartz.JobExecutionContext;
@@ -18,10 +19,10 @@ import java.time.LocalDateTime;
 @Component
 @Slf4j
 public class SampleParamJob implements Job {
-
-
 	@Autowired
 	private IQuartzJobService quartzJobService;
+
+
 	/**
 	 * 若参数变量名修改 QuartzJobController中也需对应修改
 	 */
@@ -35,5 +36,7 @@ public class SampleParamJob implements Job {
 	public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
 		log.info(String.format("带参数定时任务 SampleParamJob !   时间:" + LocalDateTime.now(), this.parameter));
 		quartzJobService.test(this.parameter);
+
+		//meetingRoomService.getMeetingRoomList();
 	}
 }

+ 23 - 0
src/main/java/com/sky/ioc/mapper/job/TokenMapper.java

@@ -0,0 +1,23 @@
+package com.sky.ioc.mapper.job;
+
+import com.sky.ioc.entity.domain.system.Menus;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface TokenMapper {
+
+    @Select("select * from  third_token ORDER BY update_time desc ")
+    Map<String,String> getNewToken();
+
+    @Update("update third_token set token = #{token},update_time = now() where id= #{id}")
+    Integer updateToken(@Param("id") Integer id,@Param("token") String token);
+
+
+
+}

+ 9 - 0
src/main/java/com/sky/ioc/mapper/meeting/MeetingRoomMapper.java

@@ -0,0 +1,9 @@
+package com.sky.ioc.mapper.meeting;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sky.ioc.entity.domain.meeting.MeetingRoom;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface MeetingRoomMapper extends BaseMapper<MeetingRoom> {
+}

+ 7 - 0
src/main/java/com/sky/ioc/service/meeting/MeetingRoomService.java

@@ -0,0 +1,7 @@
+package com.sky.ioc.service.meeting;
+
+import com.sky.ioc.tool.ReturnMsg;
+
+public interface MeetingRoomService {
+    ReturnMsg getMeetingRoomList();
+}

+ 9 - 0
src/main/java/com/sky/ioc/service/meeting/MeetingService.java

@@ -0,0 +1,9 @@
+package com.sky.ioc.service.meeting;
+
+import com.sky.ioc.entity.params.IocParam;
+import com.sky.ioc.tool.ReturnMsg;
+
+public interface MeetingService {
+
+    ReturnMsg getMeetingList();
+}

+ 96 - 0
src/main/java/com/sky/ioc/service/meeting/impl/MeetingRoomServiceImpl.java

@@ -0,0 +1,96 @@
+package com.sky.ioc.service.meeting.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.sky.ioc.entity.domain.meeting.MeetingRoom;
+import com.sky.ioc.mapper.job.TokenMapper;
+import com.sky.ioc.mapper.meeting.MeetingRoomMapper;
+import com.sky.ioc.service.meeting.MeetingRoomService;
+import com.sky.ioc.tool.ReturnMsg;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+@Service
+@Slf4j
+public class MeetingRoomServiceImpl implements MeetingRoomService {
+    @Resource
+    RestTemplate restTemplate;
+
+    @Resource
+    TokenMapper tokenMapper;
+
+    @Autowired
+    MeetingRoomMapper meetingRoomMapper;
+
+    final static  String MEETTING_ROOM_URL="http://192.168.1.45:9001/api/meeting/MEETING/room/list?pageNum=1&pageSize=100";
+
+    @Override
+    public ReturnMsg getMeetingRoomList() {
+        Map<String,String> tokenMap = tokenMapper.getNewToken();
+        String token ="Bearer eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6IjUwZTU1NTRkLWJjYzYtNGRhMS1iZDUxLWFhNTc3YzU4YTFiNCIsInVzZXJuYW1lIjoiYWRtaW4ifQ.X10VPYJfeeRTka7OtqNPOGMpL4QkW3fR_TfCKXCmO-yXbIIrr_40fcwiVnpXfYVENo_BvXWEACRd-Y6nXsbkog";
+        if(tokenMap!=null){
+            token = "Bearer "+tokenMap.get("token");
+        }
+        // 创建一个请求头对象
+        HttpHeaders httpHeaders = new HttpHeaders();
+        // 设置参数
+        httpHeaders.set("authorization", token);
+        // 创建一个响应体对象
+        HttpEntity<String> httpEntity = new HttpEntity(httpHeaders);
+        // 3.创建RestTemplate
+        RestTemplate restTemplate = new RestTemplate();
+        // 发送GET请求
+        ResponseEntity<Map> responseEntity = restTemplate.exchange(MEETTING_ROOM_URL, HttpMethod.GET, httpEntity, Map.class);
+        // 获取响应对象里的 body 对象
+        Map<String, Object> body = responseEntity.getBody();
+        // 获取状态码
+        Integer code = (Integer)body.get("code");
+        // 获取响应信息
+        String message = (String)body.get("msg");
+        if(code==200){
+             ArrayList list = (ArrayList) body.get("rows");
+           if(list!=null&&list.size()>0){
+                meetingRoomMapper.delete(null);
+                for (int i=0;i<list.size();i++){
+                    LinkedHashMap json = (LinkedHashMap) list.get(i);
+                    MeetingRoom room = new MeetingRoom();
+                    String name = (String) json.get("mrName");
+                    Pattern pattern = Pattern.compile("[0-9]*");
+                    Matcher isNum = pattern.matcher(name.charAt(0)+"");
+                    Integer floorId = 1;
+                    if (isNum.matches()&&name.length()>2) {
+                        floorId = Integer.valueOf(name.substring(0,2));
+                    }
+                    room.setId((Integer) json.get("id"));
+                    room.setCapacity(8);
+                    room.setName((String) json.get("mrName"));
+                    room.setAuditTime((String) json.get("auditTime"));
+                    room.setOpenTime((String) json.get("openTime"));
+                    room.setCloseTime((String) json.get("closeTime"));
+                    room.setRemark((String) json.get("remark"));
+                    room.setFloorId(floorId);
+                    room.setOrderNo((Integer)json.get("orderNo")+"");
+                    room.setMrNo((String) json.get("mrNo"));
+                    meetingRoomMapper.insert(room);
+                }
+            }
+
+        }else{
+            log.info("获取会议室数据:"+message);
+        }
+        return null;
+    }
+}

+ 24 - 0
src/main/java/com/sky/ioc/service/meeting/impl/MeetingServiceImpl.java

@@ -0,0 +1,24 @@
+package com.sky.ioc.service.meeting.impl;
+
+
+import com.sky.ioc.service.meeting.MeetingService;
+import com.sky.ioc.tool.ReturnMsg;
+import lombok.extern.slf4j.Slf4j;
+
+import org.springframework.stereotype.Service;
+
+
+@Service
+@Slf4j
+public class MeetingServiceImpl implements MeetingService {
+
+
+
+    @Override
+    public ReturnMsg getMeetingList() {
+
+        return null;
+    }
+
+
+}

+ 1 - 1
src/main/java/com/sky/ioc/tool/CronUtils.java

@@ -48,7 +48,7 @@ public class CronUtils {
         String cron = getCron(new Date(), SUNDAY);
         System.out.println("每周六执行"+cron);
 
-        String cron1 = getCron(new Date(), DATEFORMAT_EVERYDAY);
+        String cron1 = getCron(new Date("2020/04/06 14:10:00"), DATEFORMAT_EVERYDAY);
         System.out.println("每天执行"+cron1);
 
         String cron2 = getCron(new Date(), DATEFORMAT_YEAR);