瀏覽代碼

Accept Merge Request #23: (develop-wxl -> master)

Merge Request: 提交

Created By: @万新亮
Accepted By: @万新亮
URL: https://chuanghaikeji.coding.net/p/smarCampus/d/iHotel_student_houtai/git/merge/23
万新亮 1 年之前
父節點
當前提交
7d1a245e06

+ 2 - 2
src/main/java/com/template/AutoCode.java

@@ -28,7 +28,7 @@ public class AutoCode {
 // 1、全局配置
         GlobalConfig gc = new GlobalConfig();
         String projectPath = System.getProperty("user.dir");
-        gc.setOutputDir(projectPath + "/iHotel_student_houtai/src/main/java");
+        gc.setOutputDir(projectPath + "/src/main/java");
         gc.setAuthor("ceshi");
         gc.setOpen(false);
         gc.setFileOverride(false); // 是否覆盖
@@ -56,7 +56,7 @@ public class AutoCode {
         mpg.setPackageInfo(pc);
         //4、策略配置
         StrategyConfig strategy = new StrategyConfig();
-        strategy.setInclude("unlocking_employee"); // 设置要映射的表名
+        strategy.setInclude("organization"); // 设置要映射的表名
         strategy.setNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setColumnNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setEntityLombokModel(true); // 自动lombok;

+ 3 - 0
src/main/java/com/template/controller/AppletLoginController.java

@@ -115,6 +115,7 @@ public class AppletLoginController implements AppletLoginControllerAPI {
 //           手机号
             String telephone = userInfoMap.get("telephone").toString();
             String headImage = userInfoMap.get("head_image").toString();
+            String main_org_node = userInfoMap.get("main_org_node").toString();
 
 
 //            判断账号是否以添加,
@@ -166,6 +167,7 @@ public class AppletLoginController implements AppletLoginControllerAPI {
                 users.setIdCard(idCard);
                 users.setCardNumber(cardNumber);
                 users.setPhone(telephone);
+                users.setOrganId(main_org_node);
                 users.setHeadImage(headImage);
                 usersService.updateById(users);
 
@@ -177,6 +179,7 @@ public class AppletLoginController implements AppletLoginControllerAPI {
                 users1.setCardNumber(cardNumber);
                 users1.setPhone(telephone);
                 users1.setHeadImage(headImage);
+                users1.setOrganId(main_org_node);
                 usersService.save(users1);
                 usersId=String.valueOf(users1.getId());
             }

+ 329 - 0
src/main/java/com/template/controller/GetSchoolUserController.java

@@ -0,0 +1,329 @@
+package com.template.controller;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.template.model.pojo.Organization;
+import com.template.config.WeixiaoConfig;
+import com.template.model.dto.OrganDto;
+import com.template.services.OrganizationService;
+import org.apache.velocity.util.ArrayListWrapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.*;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
+
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @Author:liu
+ * @Date: 2022/9/6  9:47
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("auto/getOrgan")
+public class GetSchoolUserController {
+    private static final Logger log = LoggerFactory.getLogger(GetSchoolUserController.class);
+
+//    @Autowired
+//    RestTemplate restTemplate;
+
+    @Autowired
+    private WeixiaoConfig weixiaoConfig;
+
+    @Autowired
+    private OrganizationService organizationService;
+
+
+    public String getCardNumber() {
+        String access_token = "";
+        String grant_type = "authorization_code";
+//        String redirect_uri = "http://5d519a3d.cpolar.top/warning/getCardNumber";
+//            String redirect_uri = "http://binguo.vaiwan.com/wx/getCardNumber";
+        String url = "https://open.wecard.qq.com/cgi-bin/oauth2/token"; //用于用户 获取基础的access_token
+        Map<String, String> param = new HashMap<>();
+//        param.put("wxcode", wxcode);
+        param.put("app_key", weixiaoConfig.getAppKey());
+        param.put("app_secret", weixiaoConfig.getAppSecret());
+        param.put("grant_type", "client_credentials");
+        param.put("scope", "base");
+        param.put("ocode", weixiaoConfig.getOcode());
+//        param.put("redirect_uri", redirect_uri);
+        try {
+            RestTemplate restTemplate = new RestTemplate();
+            HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.APPLICATION_JSON);
+            HttpEntity<Map<String, String>> request = new HttpEntity<>(param, headers);
+            ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, request, String.class);
+            String body = responseEntity.getBody();
+//            System.out.println("body = " + body);
+            HashMap<String, String> parse = JSON.parseObject(body, HashMap.class);
+            String token = parse.get("access_token");
+            access_token = token;
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.info(e.getMessage());
+        }
+        return access_token;
+    }
+
+    //现在不需要获取微校数据
+//    @Scheduled(cron = "0 0 0/2 * * ? ")   //从0时开始,每2小时运行一次
+    public String token() {
+        String cardNumber = getCardNumber();
+        return cardNumber;
+    }
+
+//    获取组织架构
+    @GetMapping("/get")
+    @Scheduled(cron = "0 22 05 * * ? ")
+    @Transactional(rollbackFor = {Exception.class})
+    public void get() {
+        RestTemplate restTemplate=new RestTemplate();
+        String token = this.token();
+        System.out.println("token = " + token);
+        String url = "https://open.wecard.qq.com/cgi-bin/user/org-edu-list";
+        Map<String, String> param = new HashMap<>();
+        param.put("access_token", token);
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        HttpEntity<Map<String, String>> request = new HttpEntity<>(param, headers);
+        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, request, String.class);
+        String body = responseEntity.getBody();
+        System.out.println("body = " + body);
+        JSONObject jsonObject=JSONObject.parseObject(body);
+        JSONArray jsonArray=jsonObject.getJSONArray("organization");
+        List<OrganDto> users= jsonArray.toJavaList(OrganDto.class);
+        List<Organization> organizations=new ArrayList();
+        for(OrganDto dto:users){
+            if ("573084".equals(dto.getParent_id())){
+                Organization organization=new Organization();
+                organization.setId(dto.getId());
+                organization.setName(dto.getName());
+                organization.setParentId(dto.getParent_id());
+                organization.setUpdatedAt(dto.getUpdated_at());
+                organizations.add(organization);
+            }
+        }
+            boolean a =organizationService.saveOrUpdateBatch(organizations);
+            log.info("更新部门完成:"+a);
+
+
+        return ;
+    }
+
+//    //获取组织架构成员
+//    @GetMapping("/list")
+//    @DSTransactional
+//    public List<String> getMessong(Integer page) throws JsonProcessingException {
+//        String token = this.token();
+//        String url = "https://open.wecard.qq.com/cgi-bin/user/get-org-users";
+//        Map<String, Object> param = new HashMap<>();
+//        ObjectMapper mapper = new ObjectMapper();
+//        param.put("access_token", token);
+//        param.put("org_id", 578692);
+//        param.put("fetch_child", 1);
+//        param.put("page", page);
+////        param.put("page", 2);
+//        param.put("page_size", 1000);
+//        HttpHeaders headers = new HttpHeaders();
+//        headers.setContentType(MediaType.APPLICATION_JSON);
+//        HttpEntity<Map<String, Object>> request = new HttpEntity<>(param, headers);
+//        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, request, String.class);
+//        String body = responseEntity.getBody();
+//        JSONObject jsonObject = JSON.parseObject(body);
+//        JSONArray userlist = jsonObject.getJSONArray("userlist");
+//        ArrayList<String> strings = new ArrayList<>();
+//        for (Object o : userlist) {
+//            Map<String, Object> stringObjectMap = mapper.readValue(o.toString(), new TypeReference<Map<String, Object>>() {
+//            });
+//            if (stringObjectMap.get("card_number") != null) {
+//                String card_number = stringObjectMap.get("card_number").toString();
+//                strings.add(card_number);
+//            }
+//        }
+//        return strings;
+//    }
+//
+//    @GetMapping
+//    public Boolean a(Integer page) throws JsonProcessingException {
+//        List<String> messong = this.getMessong(page);
+//        String token = this.token();
+//        System.out.println("token = " + token);
+//        String url = "https://open.wecard.qq.com/cgi-bin/user/get-user-by-card-numbers";
+//        Map<String, Object> param = new HashMap<>();
+//        param.put("access_token", token);
+//        param.put("card_numbers", messong);
+//        HttpHeaders headers = new HttpHeaders();
+//        headers.setContentType(MediaType.APPLICATION_JSON);
+//        HttpEntity<Map<String, Object>> request = new HttpEntity<>(param, headers);
+//        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, request, String.class);
+//        String body = responseEntity.getBody();
+//        JSONObject jsonObject = JSON.parseObject(body);
+//        JSONArray userlist = jsonObject.getJSONArray("userlist");
+//        ArrayList<OldSchooluser> addOldSchoolUsers = new ArrayList<>();
+//        ArrayList<OldSchooluser> updatOldSchoolUsers = new ArrayList<>();
+//        ObjectMapper mapper = new ObjectMapper();
+//        for (Object o : userlist) {
+//            Map<String, Object> stringObjectMap = mapper.readValue(o.toString(), new TypeReference<Map<String, Object>>() {
+//            });
+//            if (ObjectUtils.isNotEmpty(stringObjectMap)) {
+//                OldSchooluser oldSchooluser1 = new OldSchooluser();
+//                String head_image = stringObjectMap.get("head_image").toString();
+//                oldSchooluser1.setHeadImage(head_image);
+//
+//                oldSchooluser1.setCardNumber(stringObjectMap.get("card_number").toString());
+//                oldSchooluser1.setName(stringObjectMap.get("name").toString());
+//                oldSchooluser1.setGender(stringObjectMap.get("gender").toString());
+//                oldSchooluser1.setIdentityType(stringObjectMap.get("identity_type").toString());
+//                oldSchooluser1.setGrade(stringObjectMap.get("grade").toString());
+//                oldSchooluser1.setCampus(stringObjectMap.get("campus").toString());
+//                oldSchooluser1.setDormNumber(stringObjectMap.get("dorm_number").toString());
+//                oldSchooluser1.setPhysicalChipNumber(stringObjectMap.get("physical_chip_number").toString());
+//                oldSchooluser1.setPhysicalCardNumber(stringObjectMap.get("physical_card_number").toString());
+//                oldSchooluser1.setNation(stringObjectMap.get("nation").toString());
+//                oldSchooluser1.setOriginPlace(stringObjectMap.get("origin_place").toString());
+//                oldSchooluser1.setGraduatedSchool(stringObjectMap.get("graduated_school").toString());
+//                oldSchooluser1.setAddress(stringObjectMap.get("address").toString());
+//                oldSchooluser1.setQq(stringObjectMap.get("qq").toString());
+//                oldSchooluser1.setEmail(stringObjectMap.get("email").toString());
+//                oldSchooluser1.setCardType(stringObjectMap.get("card_type").toString());
+//                oldSchooluser1.setIdentityTitle(stringObjectMap.get("identity_title").toString());
+//                oldSchooluser1.setCollege(stringObjectMap.get("college").toString());
+//                oldSchooluser1.setProfession(stringObjectMap.get("profession").toString());
+//                oldSchooluser1.setClazz(stringObjectMap.get("class").toString());
+//                oldSchooluser1.setIdCard(stringObjectMap.get("id_card").toString());
+//                oldSchooluser1.setCountry(stringObjectMap.get("country").toString());
+//                oldSchooluser1.setTelephone(stringObjectMap.get("telephone").toString());
+//                oldSchooluser1.setDataSource(stringObjectMap.get("data_source").toString());
+//                oldSchooluser1.setStartAt(stringObjectMap.get("start_at").toString());
+//                oldSchooluser1.setExpireAt(stringObjectMap.get("expire_at").toString());
+//                if (stringObjectMap.containsKey("serial_number")) {
+//                    String serial_number = stringObjectMap.get("serial_number").toString();
+//                    oldSchooluser1.setSerialNumber(serial_number);
+//                }
+//                if (stringObjectMap.containsKey("job_title")) {
+//                    oldSchooluser1.setJobTitle(stringObjectMap.get("job_title").toString());
+//                }
+//                if (stringObjectMap.containsKey("school_period")) {
+//                    oldSchooluser1.setSchoolPeriod(stringObjectMap.get("school_period").toString());
+//                }
+//                if (stringObjectMap.containsKey("register_year")) {
+//                    oldSchooluser1.setRegisterYear(stringObjectMap.get("register_year").toString());
+//                }
+//                oldSchooluser1.setOrganization(stringObjectMap.get("organization").toString());
+//                oldSchooluser1.setDepartment(stringObjectMap.get("department").toString());
+////判断该学生信息是否存在数据库中
+//                OldSchooluser oldSchooluser = queryOldSchoolUser(oldSchooluser1.getIdCard());
+//                if (ObjectUtils.isNotEmpty(oldSchooluser)) {
+////                oldSchooluser1.setId(oldSchooluser.getId());
+//                    oldSchooluser1.setId(oldSchooluser.getId());
+//
+//                    updatOldSchoolUsers.add(oldSchooluser1);
+//                oldSchooluserService.update(oldSchooluser1, Wrappers.<OldSchooluser>lambdaUpdate().eq(OldSchooluser::getId, oldSchooluser.getId()));
+//                } else {
+//                    addOldSchoolUsers.add(oldSchooluser1);
+//                }
+//            }
+//        }
+//        boolean b = oldSchooluserService.saveBatch(addOldSchoolUsers);
+////        oldSchooluserService.updateBatchById(updatOldSchoolUsers);
+//        return b;
+////        return JSONObject.parseObject(body,Map.class);
+//    }
+//
+// //    定时获取微校数据
+////
+//    Integer i = 30;
+//
+//    //
+////    @Scheduled(cron = "0 0/1 * * * ? ")
+//    public void getSchoolUser() {
+//        i = i + 1;
+//        try {
+//            boolean a = this.a(i);
+//            System.out.println("a = " + a);
+//        } catch (JsonProcessingException e) {
+//            throw new RuntimeException(e);
+//        }
+//        System.out.println(i);
+//    }
+//
+//    /**
+//     * 通过身份证号判断该用户是否存在于数据库OldSchoolUser表当中
+//     *
+//     * @param idCard
+//     * @param
+//     * @return
+//     */
+//    public OldSchooluser queryOldSchoolUser(String idCard) {
+//        OldSchooluser oldSchooluser = null;
+//        try {
+//             oldSchooluser = oldSchooluserService.list(Wrappers.<OldSchooluser>lambdaQuery().eq(OldSchooluser::getIdCard, idCard)).get(0);
+//        }catch (Exception e){
+//
+//
+//        }
+//
+//        return oldSchooluser;
+//    }
+//
+//
+////通过card_numbers获取图片
+//    public String getHeadImage(List<String> messong) throws JsonProcessingException {
+//        String token = this.token();
+//        System.out.println("token = " + token);
+//        String url = "https://open.wecard.qq.com/cgi-bin/user/get-user-by-card-numbers";
+//        Map<String, Object> param = new HashMap<>();
+//        param.put("access_token", token);
+//        param.put("card_numbers", messong);
+//        HttpHeaders headers = new HttpHeaders();
+//        headers.setContentType(MediaType.APPLICATION_JSON);
+//        HttpEntity<Map<String, Object>> request = new HttpEntity<>(param, headers);
+//        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, request, String.class);
+//        String body = responseEntity.getBody();
+//        JSONObject jsonObject = JSON.parseObject(body);
+//        JSONArray userlist = jsonObject.getJSONArray("userlist");
+//        ObjectMapper mapper = new ObjectMapper();
+//        String headImage="";
+//        for (Object o : userlist) {
+//            Map<String, Object> stringObjectMap = mapper.readValue(o.toString(), new TypeReference<Map<String, Object>>() {
+//            });
+//            if (ObjectUtils.isNotEmpty(stringObjectMap)) {
+//                headImage= stringObjectMap.get("head_image").toString();
+//
+//            }
+//        }
+//        return headImage;
+//    }
+//
+////    @Scheduled(cron = "0 0/1 * * * ? ")
+//    public Boolean b() throws JsonProcessingException {
+//        String token = this.token();
+//        System.out.println("token = " + token);
+//        String url = "https://open.wecard.qq.com/cgi-bin/user/search";
+//        Map<String, Object> param = new HashMap<>();
+//        param.put("access_token", token);
+//        param.put("keywords", "360102200406033352");
+//        HttpHeaders headers = new HttpHeaders();
+//        headers.setContentType(MediaType.APPLICATION_JSON);
+//        HttpEntity<Map<String, Object>> request = new HttpEntity<>(param, headers);
+//        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, request, String.class);
+//        String body = responseEntity.getBody();
+//        JSONObject jsonObject = JSON.parseObject(body);
+//        System.out.println("jsonObject = " + jsonObject);
+//        return null;
+//    }
+}

+ 21 - 0
src/main/java/com/template/controller/OrganizationController.java

@@ -0,0 +1,21 @@
+package com.template.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 部门表 前端控制器
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-08-22
+ */
+@RestController
+@RequestMapping("/auto/organization")
+public class OrganizationController {
+
+}
+

+ 1 - 1
src/main/java/com/template/controller/TbCourseSchedulingController.java

@@ -42,7 +42,7 @@ public class TbCourseSchedulingController {
 
 
     @GetMapping("/queryGridPreDetail")
-    @Scheduled(cron="0 30 0/2 * * ?")
+    @Scheduled(cron="0 30 4 * * ?")
 //    @Scheduled(cron="0/20 * * * * ?")
     public void energyConsumption() {
         String xuenian="2024-2025";

+ 16 - 0
src/main/java/com/template/mapper/OrganizationMapper.java

@@ -0,0 +1,16 @@
+package com.template.mapper;
+
+import com.template.model.pojo.Organization;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 部门表 Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-08-22
+ */
+public interface OrganizationMapper extends BaseMapper<Organization> {
+
+}

+ 23 - 0
src/main/java/com/template/model/dto/OrganDto.java

@@ -0,0 +1,23 @@
+package com.template.model.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class OrganDto {
+//    id
+    private String id;
+//    名字
+    private String name;
+//    父id
+    private String parent_id;
+    private String org_type;
+    private String type;
+    private String updated_at;
+    private String province;
+    private String city;
+    private String area;
+
+
+}

+ 55 - 0
src/main/java/com/template/model/pojo/Organization.java

@@ -0,0 +1,55 @@
+package com.template.model.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 部门表
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-08-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="Organization对象", description="部门表")
+public class Organization implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "id")
+    @TableId(value = "id", type = IdType.UUID)
+    private String id;
+
+    @ApiModelProperty(value = "部门名字")
+    private String name;
+
+    @ApiModelProperty(value = "部门父id")
+    private String parentId;
+
+    @ApiModelProperty(value = "部门类型")
+    private String orgType;
+
+    @ApiModelProperty(value = "类型")
+    private String type;
+
+    @ApiModelProperty(value = "更新时间")
+    private String updatedAt;
+
+    private String province;
+
+    private String city;
+
+    private Integer area;
+
+
+}

+ 2 - 2
src/main/java/com/template/model/pojo/Users.java

@@ -35,8 +35,8 @@ public class Users implements Serializable {
     @ApiModelProperty(value = "用户名")
     private String userName;
 
-//    @ApiModelProperty(value = "用户角色id")
-//    private String userMenuId;
+    @ApiModelProperty(value = "部门id")
+    private String organId;
 
     @ApiModelProperty(value = "身份证号码")
     private String idCard;

+ 16 - 0
src/main/java/com/template/services/OrganizationService.java

@@ -0,0 +1,16 @@
+package com.template.services;
+
+import com.template.model.pojo.Organization;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 部门表 服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-08-22
+ */
+public interface OrganizationService extends IService<Organization> {
+
+}

+ 20 - 0
src/main/java/com/template/services/impl/OrganizationServiceImpl.java

@@ -0,0 +1,20 @@
+package com.template.services.impl;
+
+import com.template.model.pojo.Organization;
+import com.template.mapper.OrganizationMapper;
+import com.template.services.OrganizationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 部门表 服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-08-22
+ */
+@Service
+public class OrganizationServiceImpl extends ServiceImpl<OrganizationMapper, Organization> implements OrganizationService {
+
+}

+ 5 - 0
src/main/resources/mapper/template/OrganizationMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.template.auto.mapper.OrganizationMapper">
+
+</mapper>