Min 1 سال پیش
والد
کامیت
8039faa619
14فایلهای تغییر یافته به همراه348 افزوده شده و 13 حذف شده
  1. 16 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/FeishuInfoController.java
  2. 5 5
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FeishuInfoServiceImpl.java
  3. 90 2
      fhKeeper/formulahousekeeper/octopus/src/views/customer/list.vue
  4. 6 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/controller/CompanyController.java
  5. 21 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/controller/FeishuInfoController.java
  6. 75 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/FeishuInfo.java
  7. 16 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/vo/FeiShuInfoVO.java
  8. 16 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/mapper/FeishuInfoMapper.java
  9. 3 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/CompanyService.java
  10. 16 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/FeishuInfoService.java
  11. 40 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/CompanyServiceImpl.java
  12. 20 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/FeishuInfoServiceImpl.java
  13. 2 2
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/util/CodeGenerator.java
  14. 22 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/FeishuInfoMapper.xml

+ 16 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/FeishuInfoController.java

@@ -96,14 +96,15 @@ public class FeishuInfoController {
      * @return
      */
     @RequestMapping("/initSystem")
-    public HttpRespMsg initSystem(String appId) throws Exception {
+    public HttpRespMsg initSystem(@RequestBody  String json) throws Exception {
+        Map map = JSONObject.parseObject(json, Map.class);
         //初始化数据生成公司
-        System.out.println("========接收到initSystem请求===appid="+appId);
+        System.out.println("========接收到initSystem请求===appid="+map.get("appId"));
         HttpRespMsg msg = new HttpRespMsg();
         //查找公司对应的记录是否已经添加
-        FeishuInfo feishuInfo = feishuInfoMapper.selectOne(new QueryWrapper<FeishuInfo>().eq("app_id",appId));
+        FeishuInfo feishuInfo = feishuInfoMapper.selectOne(new QueryWrapper<FeishuInfo>().eq("app_id",map.get("appId")));
         if (feishuInfo == null) {
-            msg.setError("请在feishu_info表中增加appid:" + appId);
+            msg.setError("请在feishu_info表中增加appid:" + map.get("appId"));
         } else if (feishuInfo.getCompanyId() != null) {
             //msg.setError("companyId已存在,如需重新初始化请先重置company_dingding中该条数据的companyId为null");
             msg.setError("companyId已存在,如需重新初始化请先重置feishu_info中该条数据的companyId为null");
@@ -121,6 +122,9 @@ public class FeishuInfoController {
             feishuInfo.setCorpid(corpId);
             feishuInfo.setCorpName(corpName);
             feishuInfo.setCompanyId(company.getId());
+            LocalDateTime now = LocalDateTime.now();
+            now = now.plusSeconds(7200);
+            feishuInfo.setExpireTime(now);
             feishuInfoMapper.updateById(feishuInfo);
             //生成工作时长
             TimeType timeType = new TimeType();
@@ -273,6 +277,14 @@ public class FeishuInfoController {
                 }
             }
             System.out.println("resutlList========="+userList);
+            if(map.get("managerName")!=null){
+                userList.forEach(ul->{
+                    if(ul.getName().equals(map.get("managerName"))){
+                        ul.setRoleName("超级管理员").setRoleId(smanager.getId());
+                    }
+                });
+            }
+
             userService.saveBatch(userList);
         }
         return msg;

+ 5 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FeishuInfoServiceImpl.java

@@ -183,7 +183,7 @@ public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuI
                 RestTemplate restTemplate = new RestTemplate();
                 MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
                 headers.setContentType(type);
-                headers.add("Authorization","Bearer "+feishuInfo.getAccessToken());
+                headers.add("Authorization","Bearer "+getTenantAccessToken(feishuInfo.getAppId()));
                 HttpEntity<JSONObject> httpEntity = new HttpEntity<>(null, headers);
                 Map<String,Object> map=new HashMap<>();
                 map.put("page_size",50);
@@ -269,7 +269,7 @@ public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuI
                 RestTemplate restTemplate = new RestTemplate();
                 MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
                 headers.setContentType(type);
-                headers.add("Authorization","Bearer "+feishuInfo.getAccessToken());
+                headers.add("Authorization","Bearer "+getTenantAccessToken(feishuInfo.getAppId()));
                 HttpEntity<JSONObject> httpEntity = new HttpEntity<>(null, headers);
                 ResponseEntity<String> ResponseEntity = restTemplate.exchange(url,HttpMethod.GET,httpEntity,String.class);
                 if (ResponseEntity.getStatusCode() == HttpStatus.OK) {
@@ -295,7 +295,7 @@ public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuI
                 RestTemplate restTemplate = new RestTemplate();
                 MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
                 headers.setContentType(type);
-                headers.add("Authorization","Bearer "+feishuInfo.getAccessToken());
+                headers.add("Authorization","Bearer "+getTenantAccessToken(feishuInfo.getAppId()));
                 HttpEntity<JSONObject> httpEntity = new HttpEntity<>(null, headers);
                 Map<String,Object> map=new HashMap<>();
                 map.put("page_size",50);
@@ -343,7 +343,7 @@ public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuI
                 RestTemplate restTemplate = new RestTemplate();
                 MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
                 headers.setContentType(type);
-                headers.add("Authorization","Bearer "+feishuInfo.getAccessToken());
+                headers.add("Authorization","Bearer "+getTenantAccessToken(feishuInfo.getAppId()));
                 JSONObject requestMap=new JSONObject();
                 JSONObject card=new JSONObject();
                 card.put("type","template");
@@ -409,7 +409,7 @@ public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuI
                 RestTemplate restTemplate = new RestTemplate();
                 MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
                 headers.setContentType(type);
-                headers.add("Authorization","Bearer "+feishuInfo.getAccessToken());
+                headers.add("Authorization","Bearer "+getTenantAccessToken(feishuInfo.getAppId()));
                 JSONObject requestMap=new JSONObject();
                 JSONObject card=new JSONObject();
                 JSONObject config=new JSONObject();

+ 90 - 2
fhKeeper/formulahousekeeper/octopus/src/views/customer/list.vue

@@ -21,6 +21,9 @@
                         <el-checkbox v-model="onlyContract" v-if="isMeal == 2" style="margin-left: 20px" @change="selIsmeal()">仅显示已签约</el-checkbox>
                         <!-- <el-checkbox style="margin-left:20px" size="small" v-model="checked" @change="selIsmeal()">即将到期</el-checkbox> -->
                 </el-form-item>
+                <el-form-item>
+                    <el-button type="text" @click="addFeishuDig=true">新增飞书企业</el-button>
+                </el-form-item>
             </el-form>
         </el-col>
 
@@ -269,10 +272,37 @@
                 <el-button type="primary" @click="ConfirmH()">确 定</el-button>
             </span>
         </el-dialog>
+        <!-- 新增飞书企业 -->
+        <el-dialog v-if="addFeishuDig" :visible.sync="addFeishuDig" title="新增飞书客户">
+            <el-form :model="feishuInfo" :rules="feishuInfoRules" ref="feishuInfo" label-width="100px" class="demo-ruleForm">
+                <el-form-item label="公司名称" prop="companyName">
+                    <el-input v-model="feishuInfo.companyName"></el-input>
+                </el-form-item>
+                <el-form-item label="corpId" prop="corpId">
+                    <el-input v-model="feishuInfo.corpId"></el-input>
+                </el-form-item>
+                <el-form-item label="appId" prop="appId">
+                    <el-input v-model="feishuInfo.appId"></el-input>
+                </el-form-item>
+                <el-form-item label="appSecret" prop="appSecret">
+                    <el-input v-model="feishuInfo.appSecret"></el-input>
+                </el-form-item>
+                <el-form-item label="管理员" prop="managerName">
+                    <el-input v-model="feishuInfo.managerName"></el-input>
+                </el-form-item>
+            </el-form>
+            
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="addFeishuDig = false">取 消</el-button>
+                <el-button type="primary" @click="addFeishuInfo('feishuInfo')">确 定</el-button>
+            </span>
+        </el-dialog>
     </section>
 </template>
 <script>
+import App from '../../App.vue';
     export default {
+  components: { App },
         data() {
             return {
                 dingdingSync:false,
@@ -309,6 +339,32 @@
                 roleIdArr: [],
 
                 onlyContract: false, // 仅显示已签约
+
+                addFeishuDig:false,
+                feishuInfo:{
+                    companyName:'',
+                    corpId:'',
+                    appId:'',
+                    appSecret:'',
+                    managerName:'',
+                },
+                feishuInfoRules:{
+                    companyName: [
+                        { required: true, message: '请输入客户名称', trigger: 'blur' },
+                    ],
+                    corpId: [
+                        { required: true, message: '请输入corpId', trigger: 'blur' },
+                    ],
+                    appId: [
+                        { required: true, message: '请输入appId', trigger: 'blur' },
+                    ],
+                    appSecret: [
+                        { required: true, message: '请输入appSecret', trigger: 'blur' },
+                    ],
+                    managerName: [
+                        { required: true, message: '请输入管理员名称', trigger: 'blur' },
+                    ],
+                }
             };
         },
         // 过滤器
@@ -799,8 +855,40 @@
                 })
             },
 
-
-
+            addFeishuInfo(formName){
+                this.$refs[formName].validate((valid) => {
+                    if (valid) {
+                        this.http.post('/company/addFeiShuInfo',{
+                            companyName:this.feishuInfo.companyName,
+                            corpId:this.feishuInfo.corpId,
+                            appId:this.feishuInfo.appId,
+                            appSecret:this.feishuInfo.appSecret,
+                            managerName:this.feishuInfo.managerName,
+                        },res => {
+                            if(res.code == 'ok'){
+                                this.addFeishuDig = false
+                                this.feishuInfo={}
+                                this.$message({
+                                    message: '新增飞书客户初始化成功',
+                                    type: 'success'
+                                })
+                            }else {
+                                this.$message({
+                                    message: res.msg,
+                                    type: 'error'
+                                })
+                            }
+                        },err => {
+                            this.$message({
+                                message: err,
+                                type: 'error'
+                            })
+                        })
+                    } else {
+                        return false;
+                    }
+                });
+            },
 
             //分页
             handleCurrentChange(val) {

+ 6 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/controller/CompanyController.java

@@ -5,6 +5,7 @@ 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.management.platform.entity.*;
+import com.management.platform.entity.vo.FeiShuInfoVO;
 import com.management.platform.mapper.*;
 import com.management.platform.service.CompanyService;
 import com.management.platform.util.HttpRespMsg;
@@ -220,5 +221,10 @@ public class CompanyController {
     public HttpRespMsg deleteCompany(Integer companyId){
         return companyService.deleteCompany(companyId);
     }
+
+    @RequestMapping("/addFeiShuInfo")
+    public HttpRespMsg addFeiShuInfo(FeiShuInfoVO feiShuInfoVO){
+        return companyService.addFeiShuInfo(feiShuInfoVO);
+    }
 }
 

+ 21 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/controller/FeishuInfoController.java

@@ -0,0 +1,21 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-10-17
+ */
+@RestController
+@RequestMapping("/feishu-info")
+public class FeishuInfoController {
+
+}
+

+ 75 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/FeishuInfo.java

@@ -0,0 +1,75 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-10-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class FeishuInfo extends Model<FeishuInfo> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId("corpid")
+    private String corpid;
+
+    @TableField("corp_name")
+    private String corpName;
+
+    /**
+     * 企业token
+     */
+    @TableField("access_token")
+    private String accessToken;
+
+    /**
+     * token有效期
+     */
+    @TableField("expire_time")
+    private LocalDateTime expireTime;
+
+    /**
+     * 系统内部的公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 授权企业内应用的id
+     */
+    @TableField("agentid")
+    private Integer agentid;
+
+    /**
+     * 飞书企业自建应用APPID
+     */
+    @TableField("app_id")
+    private String appId;
+
+    /**
+     * 飞书企业自建应用APPSecret
+     */
+    @TableField("app_secret")
+    private String appSecret;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.corpid;
+    }
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/vo/FeiShuInfoVO.java

@@ -0,0 +1,16 @@
+package com.management.platform.entity.vo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class FeiShuInfoVO {
+    private String companyName;
+    private String corpId;
+    private String appId;
+    private String appSecret;
+    private String managerName;
+}

+ 16 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/mapper/FeishuInfoMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.FeishuInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-10-17
+ */
+public interface FeishuInfoMapper extends BaseMapper<FeishuInfo> {
+
+}

+ 3 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/CompanyService.java

@@ -3,6 +3,7 @@ package com.management.platform.service;
 import com.management.platform.entity.Company;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.management.platform.entity.TimeType;
+import com.management.platform.entity.vo.FeiShuInfoVO;
 import com.management.platform.util.HttpRespMsg;
 
 import javax.servlet.http.HttpServletRequest;
@@ -30,4 +31,6 @@ public interface CompanyService extends IService<Company> {
     HttpRespMsg setTimeTypeSetting(TimeType timeType);
 
     HttpRespMsg deleteCompany(Integer companyId);
+
+    HttpRespMsg addFeiShuInfo(FeiShuInfoVO feiShuInfoVO);
 }

+ 16 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/FeishuInfoService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.FeishuInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-10-17
+ */
+public interface FeishuInfoService extends IService<FeishuInfo> {
+
+}

+ 40 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/CompanyServiceImpl.java

@@ -1,16 +1,20 @@
 package com.management.platform.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.entity.*;
+import com.management.platform.entity.vo.FeiShuInfoVO;
 import com.management.platform.mapper.*;
 import com.management.platform.service.CompanyService;
 import com.management.platform.service.ReportService;
 import com.management.platform.service.UserService;
 import com.management.platform.util.HttpRespMsg;
 import com.mysql.cj.util.StringUtils;
+import org.springframework.http.*;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.client.RestTemplate;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -18,6 +22,7 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Collectors;
 
@@ -57,6 +62,8 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
     ProjectAuditorMapper projectAuditorMapper;
     @Resource
     UserService userService;
+    @Resource
+    private FeishuInfoMapper feishuInfoMapper;
 
     @Override
     public HttpRespMsg addMembCount(Integer companyId, int addCount) {
@@ -419,4 +426,37 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
         }
         return httpRespMsg;
     }
+
+    @Override
+    public HttpRespMsg addFeiShuInfo(FeiShuInfoVO feiShuInfoVO) {
+        HttpRespMsg msg=new HttpRespMsg();
+        Integer cut = feishuInfoMapper.selectCount(new QueryWrapper<FeishuInfo>().eq("corpid", feiShuInfoVO.getCorpId()));
+        if(cut>0){
+            msg.setError("企业已存在");
+            return msg;
+        }
+        String url="http://localhost:10010/feishu-info/initSystem";
+        FeishuInfo feishuInfo=new FeishuInfo();
+        feishuInfo.setCorpid(feiShuInfoVO.getCorpId());
+        feishuInfo.setCorpName(feiShuInfoVO.getCompanyName());
+        feishuInfo.setAppId(feiShuInfoVO.getAppId());
+        feishuInfo.setAppSecret(feiShuInfoVO.getAppSecret());
+        feishuInfoMapper.insert(feishuInfo);
+        HttpHeaders headers = new HttpHeaders();
+        RestTemplate restTemplate = new RestTemplate();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        JSONObject requestMap=new JSONObject();
+        requestMap.put("appId",feiShuInfoVO.getAppId());
+        requestMap.put("managerName",feiShuInfoVO.getManagerName());
+        HttpEntity<String> httpEntity = new HttpEntity<String>(requestMap.toJSONString(), headers);
+        ResponseEntity<String> ResponseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
+        if (ResponseEntity.getStatusCode() == HttpStatus.OK) {
+            String resp = ResponseEntity.getBody();
+            JSONObject jsonObject = JSONObject.parseObject(resp);
+            if(!jsonObject.get("code").equals("ok")){
+                msg.setError("验证失败");
+            }
+        }
+        return msg;
+    }
 }

+ 20 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/FeishuInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.FeishuInfo;
+import com.management.platform.mapper.FeishuInfoMapper;
+import com.management.platform.service.FeishuInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-10-17
+ */
+@Service
+public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuInfo> implements FeishuInfoService {
+
+}

+ 2 - 2
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/util/CodeGenerator.java

@@ -92,11 +92,11 @@ public class CodeGenerator {
 
         // 数据源配置
         DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://47.101.180.183:3306/man_dev?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8");
+        dsc.setUrl("jdbc:mysql://47.101.180.183:17089/man_dev?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8");
 //        dsc.setSchemaName("public");
         dsc.setDriverName("com.mysql.cj.jdbc.Driver");
         dsc.setUsername("root");
-        dsc.setPassword("HuoshiDB@2022");
+        dsc.setPassword("P011430@Huoshi*");
         mpg.setDataSource(dsc);
 
         // 包配置

+ 22 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/FeishuInfoMapper.xml

@@ -0,0 +1,22 @@
+<?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.management.platform.mapper.FeishuInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.FeishuInfo">
+        <id column="corpid" property="corpid" />
+        <result column="corp_name" property="corpName" />
+        <result column="access_token" property="accessToken" />
+        <result column="expire_time" property="expireTime" />
+        <result column="company_id" property="companyId" />
+        <result column="agentid" property="agentid" />
+        <result column="app_id" property="appId" />
+        <result column="app_secret" property="appSecret" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        corpid, corp_name, access_token, expire_time, company_id, agentid, app_id, app_secret
+    </sql>
+
+</mapper>