Procházet zdrojové kódy

feat(推送datahub数据)

gengyang před 5 roky
rodič
revize
1688a321a2

+ 11 - 0
pom.xml

@@ -118,6 +118,17 @@
             <artifactId>plumelog-logback</artifactId>
             <version>3.4.1</version>
         </dependency>
+        <dependency>
+            <groupId>com.aliyun.datahub</groupId>
+            <artifactId>aliyun-sdk-datahub</artifactId>
+            <version>2.19.0-public</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-log4j12</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
     </dependencies>
     <profiles>
         <!--        <profile>-->

+ 56 - 0
src/main/java/com/mokamrp/privates/config/DataHubConfiguration.java

@@ -0,0 +1,56 @@
+package com.mokamrp.privates.config;
+
+import com.aliyun.datahub.client.DatahubClient;
+import com.aliyun.datahub.client.DatahubClientBuilder;
+import com.aliyun.datahub.client.auth.AliyunAccount;
+import com.aliyun.datahub.client.common.DatahubConfig;
+import com.aliyun.datahub.client.http.HttpConfig;
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.OSSClientBuilder;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+
+@Configuration
+@Component
+public class DataHubConfiguration {
+
+    private volatile static  DatahubClient datahubClient;
+
+    private volatile static OSSClientBuilder ossClientBuilder;
+
+    @Bean
+    @Scope("prototype")
+    public static DatahubClient initDataHubClient(
+            @Value("${datahub.endpoint}") String endpoint,
+            @Value("${datahub.accessid}") String accessId,
+            @Value("${datahub.accesssecret}") String accessKey
+    ) {
+        System.out.println("配置文件");
+        System.out.println(accessId);
+        System.out.println(accessKey);
+        if (datahubClient == null) {
+            synchronized (DataHubConfiguration.class) {
+                if (datahubClient == null) {
+                    datahubClient = DatahubClientBuilder.newBuilder()
+                            .setDatahubConfig(
+                                    new DatahubConfig(endpoint,
+                                            // 是否开启二进制传输,服务端2.12版本开始支持
+                                            new AliyunAccount(accessId, accessKey), true))
+                            //专有云使用出错尝试将参数设置为           false
+                            // HttpConfig可不设置,不设置时采用默认值
+                            .setHttpConfig(new HttpConfig()
+                                    .setCompressType(HttpConfig.CompressType.LZ4) // 读写数据推荐打开网络传输 LZ4压缩
+                                    .setConnTimeout(10000))
+                            .build();
+                }
+            }
+        }
+
+        return datahubClient;
+    }
+
+
+}

+ 20 - 0
src/main/java/com/mokamrp/privates/entity/JobContactEmployee.java

@@ -0,0 +1,20 @@
+package com.mokamrp.privates.entity;
+
+import com.mokamrp.privates.mapper.pojo.Downfile;
+
+import java.io.Serializable;
+
+public class JobContactEmployee implements Serializable {
+
+    public final static String QUEUE_KEY = "java:job:datahub:fans";
+
+    private Integer corpId;
+
+    public Integer getCorpId() {
+        return corpId;
+    }
+
+    public void setCorpId(Integer corpId) {
+        this.corpId = corpId;
+    }
+}

+ 2 - 1
src/main/java/com/mokamrp/privates/mapper/WorkContactEmployeeMapper.java

@@ -4,6 +4,7 @@ package com.mokamrp.privates.mapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.mokamrp.privates.mapper.pojo.WorkContactEmployee;
+import com.mokamrp.privates.mapper.vo.WorkContactEmployeeHubVo;
 import com.mokamrp.privates.mapper.vo.WorkContactEmployeeVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
@@ -27,5 +28,5 @@ public interface WorkContactEmployeeMapper extends BaseMapper<WorkContactEmploye
     Integer getVoListTotal(@Param("ew") QueryWrapper<WorkContactEmployeeVo> queryWrapper);
     List<HashMap<String, Object>> getContactTagList(@Param("ew") QueryWrapper<WorkContactEmployeeVo> queryWrapper);
     void updateChannelCode(@Param("id") Integer id,@Param("codeId") Integer codeId);
-
+    List<WorkContactEmployeeHubVo> getCorpEmployeeContact(@Param("ew") QueryWrapper<WorkContactEmployeeHubVo> queryWrapper);
 }

+ 26 - 0
src/main/java/com/mokamrp/privates/mapper/WorkContactEmployeeMapper.xml

@@ -87,6 +87,32 @@
         GROUP BY a.contact_id,a.employee_id;
     </select>
 
+    <select id="getCorpEmployeeContact" resultType="com.mokamrp.privates.mapper.vo.WorkContactEmployeeHubVo">
+        SELECT
+            a.id,
+            a.remark as follow_remark,
+            a.description as follow_description,
+            a.remark_mobiles as follow_remark_mobiles,
+            a.create_time as follow_createtime,
+            b.avatar as external_avatar,
+            b.wx_external_userid as external_userid,
+            b.`name` as external_name,
+            b.type as external_type,
+            b.gender as  external_gender,
+            b.corp_name as external_corp_name,
+            b.corp_full_name as external_corp_full_name,
+            c.wx_user_id as follow_userid
+        FROM
+            mc_work_contact_employee AS a
+        LEFT JOIN mc_work_contact AS b ON a.contact_id = b.id
+        LEFT JOIN mc_work_employee AS c ON a.employee_id = c.id
+        <where>
+            ${ew.sqlSegment}
+        </where>
+        order by a.id desc
+        LIMIT 100;
+    </select>
+
     <update id="updateChannelCode" >
         update mc_work_contact_employee
         set channel_code_id = #{codeId}

+ 162 - 0
src/main/java/com/mokamrp/privates/mapper/vo/WorkContactEmployeeHubVo.java

@@ -0,0 +1,162 @@
+package com.mokamrp.privates.mapper.vo;
+
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 通讯录 - 客户 中间表
+ * </p>
+ *
+ * @author gengyang
+ * @since 2021-04-17
+ */
+public class WorkContactEmployeeHubVo {
+
+    private Integer id;
+    private String externalUserid;
+    private String externalName;
+    private Integer externalType;
+    private String externalAvatar;
+    private String externalCorpName;
+    private String externalCorpFullName;
+    private Integer externalGender;
+    private String followUserid;
+    private String followRemark;
+    private String followCreateTime;
+    private String followRemarkMobiles;
+    private String followAddWay;
+    private String followTagId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getExternalUserid() {
+        return externalUserid;
+    }
+
+    public void setExternalUserid(String externalUserid) {
+        this.externalUserid = externalUserid;
+    }
+
+    public String getExternalName() {
+        return externalName;
+    }
+
+    public void setExternalName(String externalName) {
+        this.externalName = externalName;
+    }
+
+    public Integer getExternalType() {
+        return externalType;
+    }
+
+    public void setExternalType(Integer externalType) {
+        this.externalType = externalType;
+    }
+
+    public String getExternalAvatar() {
+        return externalAvatar;
+    }
+
+    public void setExternalAvatar(String externalAvatar) {
+        this.externalAvatar = externalAvatar;
+    }
+
+    public String getExternalCorpName() {
+        return externalCorpName;
+    }
+
+    public void setExternalCorpName(String externalCorpName) {
+        this.externalCorpName = externalCorpName;
+    }
+
+    public String getExternalCorpFullName() {
+        return externalCorpFullName;
+    }
+
+    public void setExternalCorpFullName(String externalCorpFullName) {
+        this.externalCorpFullName = externalCorpFullName;
+    }
+
+    public Integer getExternalGender() {
+        return externalGender;
+    }
+
+    public void setExternalGender(Integer externalGender) {
+        this.externalGender = externalGender;
+    }
+
+    public String getFollowUserid() {
+        return followUserid;
+    }
+
+    public void setFollowUserid(String followUserid) {
+        this.followUserid = followUserid;
+    }
+
+    public String getFollowRemark() {
+        return followRemark;
+    }
+
+    public void setFollowRemark(String followRemark) {
+        this.followRemark = followRemark;
+    }
+
+    public String getFollowCreateTime() {
+        return followCreateTime;
+    }
+
+    public void getFollowCreateTime(String followCreateTime) {
+        this.followCreateTime = followCreateTime;
+    }
+
+    public String getFollowRemarkMobiles() {
+        return followRemarkMobiles;
+    }
+
+    public void setFollowRemarkMobiles(String followRemarkMobiles) {
+        this.followRemarkMobiles = followRemarkMobiles;
+    }
+
+    public String getFollowAddWay() {
+        return followAddWay;
+    }
+
+    public void setFollowAddWay(String followAddWay) {
+        this.followAddWay = followAddWay;
+    }
+
+    public String getFollowTagId() {
+        return followTagId;
+    }
+
+    public void setFollowTagId(String followTagId) {
+        this.followTagId = followTagId;
+    }
+
+    @Override
+    public String toString() {
+        return "WorkContactEmployeeHubVo{" +
+                "id=" + id +
+                ", externalUserid='" + externalUserid + '\'' +
+                ", externalName='" + externalName + '\'' +
+                ", externalType=" + externalType +
+                ", externalAvatar=" + externalAvatar +
+                ", externalCorpName='" + externalCorpName + '\'' +
+                ", externalCorpFullName='" + externalCorpFullName + '\'' +
+                ", externalGender=" + externalGender +
+                ", followUserid='" + followUserid + '\'' +
+                ", followRemark='" + followRemark + '\'' +
+                ", followCreatetime=" + followCreateTime +
+                ", followRemarkMobiles='" + followRemarkMobiles + '\'' +
+                ", followAddWay='" + followAddWay + '\'' +
+                ", followTagId='" + followTagId + '\'' +
+                '}';
+    }
+}

+ 6 - 0
src/main/java/com/mokamrp/privates/service/WorkContactEmployeeService.java

@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.mokamrp.privates.entity.GetWorkContactEmployeeHandle;
 import com.mokamrp.privates.mapper.pojo.Downfile;
 import com.mokamrp.privates.mapper.pojo.WorkContactEmployee;
+import com.mokamrp.privates.mapper.vo.WorkContactEmployeeHubVo;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -22,4 +24,8 @@ public interface WorkContactEmployeeService extends IService<WorkContactEmployee
     public void export(Downfile downFile,GetWorkContactEmployeeHandle handle);
 
     public void formatChanelCode();
+
+    public void sendToDatahub();
+
+    public List<WorkContactEmployeeHubVo> getCorpEmployeeContact(Integer corpId, Integer maxId);
 }

+ 38 - 0
src/main/java/com/mokamrp/privates/service/impl/WorkContactEmployeeServiceImpl.java

@@ -11,10 +11,12 @@ import com.mokamrp.privates.mapper.DownfileMapper;
 import com.mokamrp.privates.mapper.WorkContactEmployeeMapper;
 import com.mokamrp.privates.mapper.pojo.Downfile;
 import com.mokamrp.privates.mapper.pojo.WorkContactEmployee;
+import com.mokamrp.privates.mapper.vo.WorkContactEmployeeHubVo;
 import com.mokamrp.privates.mapper.vo.WorkContactEmployeeVo;
 import com.mokamrp.privates.service.WorkContactEmployeeService;
 import com.mokamrp.privates.utils.OssFile;
 import com.mokamrp.privates.utils.PageUtil;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -85,6 +87,22 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
     }
 
     @Override
+    public List<WorkContactEmployeeHubVo> getCorpEmployeeContact(Integer corpId,Integer maxId){
+
+        QueryWrapper<WorkContactEmployeeHubVo> obj = new QueryWrapper<WorkContactEmployeeHubVo>();
+        obj.eq("a.corp_id",corpId);
+        if(maxId !=null){
+            obj.lt("a.id",maxId);
+        }
+        obj.isNotNull("b.id");
+        obj.isNotNull("c.id");
+
+        List<WorkContactEmployeeHubVo> vos = mapperObj.getCorpEmployeeContact(obj);
+        return vos;
+    }
+
+
+    @Override
     public void export(Downfile downFile, GetWorkContactEmployeeHandle handle) {
 
         List<Object> tempObj;
@@ -239,4 +257,24 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
 
     }
 
+    @Override
+    public void sendToDatahub(){
+
+        QueryWrapper<WorkContactEmployee> obj = new QueryWrapper<WorkContactEmployee>();
+        obj.eq("channel_code_id",0);
+        obj.like("state","%channelCode%");
+        obj.last("limit 50");
+
+        List<WorkContactEmployee> list = mapperObj.selectList(obj);
+        int j = list.size();
+        Integer codeId;
+        for (int i = 0 ; i <j ; i++){
+            codeId = Integer.parseInt(list.get(i).getState().replaceAll("channelCode-",""));
+            if(codeId.equals(0)){
+                continue;
+            }
+            mapperObj.updateChannelCode(list.get(i).getId(),codeId);
+        }
+    }
+
 }

+ 172 - 0
src/main/java/com/mokamrp/privates/tast/DatahubJobTask.java

@@ -0,0 +1,172 @@
+package com.mokamrp.privates.tast;
+
+import com.aliyun.datahub.client.DatahubClient;
+import com.aliyun.datahub.client.exception.DatahubClientException;
+import com.aliyun.datahub.client.model.PutRecordsResult;
+import com.aliyun.datahub.client.model.RecordEntry;
+import com.aliyun.datahub.client.model.RecordSchema;
+import com.aliyun.datahub.client.model.TupleRecordData;
+import com.mokamrp.privates.config.DataHubConfiguration;
+import com.mokamrp.privates.entity.JobContactEmployee;
+import com.mokamrp.privates.entity.JobRedis;
+import com.mokamrp.privates.mapper.pojo.Downfile;
+import com.mokamrp.privates.mapper.vo.WorkContactEmployeeHubVo;
+import com.mokamrp.privates.service.WorkContactEmployeeService;
+import com.mokamrp.privates.utils.RedisUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Scope;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class DatahubJobTask {
+
+    @Autowired
+    private WorkContactEmployeeService workContactEmployeeService;
+
+    @Resource
+    private RedisUtil redisUtil;
+
+    @Resource
+    private DatahubClient datahubClient;
+
+    @Value("${datahub.topic}")
+    private String topic;
+
+    @Value("${datahub.project}")
+    private String project;
+
+    /**
+     * 导出任务,单进程
+     */
+    @Scheduled(fixedDelay = 30000)
+    public void execute() {
+
+        System.out.println("执行datahub任务,当前时间"+(new Date())+",当前长度"+redisUtil.lGetListSize(JobContactEmployee.QUEUE_KEY));
+        System.out.println(topic);
+        System.out.println(project);
+
+        while (redisUtil.lGetListSize(JobContactEmployee.QUEUE_KEY) >=1) {
+            JobContactEmployee out = (JobContactEmployee) redisUtil.rightPop(JobContactEmployee.QUEUE_KEY);
+            System.out.println("当前公司id");
+            System.out.println(out.getCorpId());
+            job(project,topic,3,out.getCorpId());
+
+            break;
+        }
+    }
+
+    public void job(String project,String topic,int retryTimes,Integer corpId){
+        List<WorkContactEmployeeHubVo> list;
+        Integer maxId;
+        maxId = null;
+        while(true){
+             list = workContactEmployeeService.getCorpEmployeeContact(corpId,maxId);
+             if(list == null || list.size() <=0){
+                 System.out.println("执行完毕CorpId"+corpId);
+                 break;
+             }
+             maxId = list.get(list.size()-1).getId();
+             tupleExample(project,topic,retryTimes,list);
+
+        }
+    }
+
+    // 写入Tuple型数据
+    public void tupleExample(String project,String topic,int retryTimes, List<WorkContactEmployeeHubVo> list) {
+        Date date = new Date();
+        String timestamp = String.valueOf((new Date()).getTime()/1000);
+
+        System.out.println(timestamp);
+        Integer time =  Integer.valueOf(timestamp);
+
+        String strDateFormat = "yyyyMMdd";
+        SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
+        String resDate = sdf.format(new Date());
+        WorkContactEmployeeHubVo vo;
+        // 获取schema
+        RecordSchema recordSchema = datahubClient.getTopic(project,topic ).getRecordSchema();
+
+        // 推送数据,生成十条数据
+        Integer createtime;
+        List<RecordEntry> recordEntries = new ArrayList<>();
+        for (int i = 0; i < list.size(); i++) {
+            createtime = 0;
+            RecordEntry recordEntry = new RecordEntry();
+            // 对每条数据设置额外属性,例如ip 机器名等。可以不设置额外属性,不影响数据写入
+            //recordEntry.addAttribute("key1", "value1");
+            TupleRecordData data = new TupleRecordData(recordSchema);
+            vo = list.get(i);
+
+            if(vo.getFollowCreateTime() != null && !vo.getFollowCreateTime().isEmpty()){
+                createtime = date2TimeStamp(vo.getFollowCreateTime(),"yyyy-MM-dd HH:mm:ss");
+            }
+            data.setField("external_userid", vo.getExternalUserid());
+            data.setField("external_name", vo.getExternalName());
+            data.setField("external_type", vo.getExternalType());
+            data.setField("external_avatar", vo.getExternalAvatar());
+            data.setField("external_corp_name", vo.getExternalCorpName());
+            data.setField("external_corp_full_name", vo.getExternalCorpFullName());
+            data.setField("external_gender", vo.getExternalGender());
+            data.setField("follow_userid", vo.getFollowUserid());
+            data.setField("follow_remark", vo.getFollowRemark());
+            data.setField("follow_createtime", createtime);
+            data.setField("follow_remark_mobiles", vo.getFollowRemark());
+            data.setField("follow_add_way", vo.getFollowAddWay());
+            data.setField("follow_tag_id", "");
+            data.setField("report_time", time);
+            data.setField("ds", resDate);
+            recordEntry.setRecordData(data);
+            recordEntries.add(recordEntry);
+        }
+
+        // 生成十条数据
+        try {
+            PutRecordsResult result = datahubClient.putRecords(project, topic, recordEntries);
+            int i = result.getFailedRecordCount();
+            System.out.println("失败了"+i+"次");
+            if (i > 0) {
+                retry(datahubClient, result.getFailedRecords(), retryTimes, project, topic);
+            }
+        }  catch (DatahubClientException e) {
+            System.out.println("requestId:" + e.getRequestId() + "\tmessage:" + e.getErrorMessage());
+        }
+        return ;
+    }
+
+    //重试机制
+    public static void retry(DatahubClient client, List<RecordEntry> records, int retryTimes, String project, String topic) {
+        boolean suc = false;
+        while (retryTimes != 0) {
+            retryTimes = retryTimes - 1;
+            PutRecordsResult recordsResult = client.putRecords(project, topic, records);
+            if (recordsResult.getFailedRecordCount() > 0) {
+                retry(client,recordsResult.getFailedRecords(),retryTimes,project,topic);
+            }
+            suc = true;
+            break;
+        }
+        if (!suc) {
+            System.out.println("retryFailure");
+        }
+    }
+
+    public static Integer date2TimeStamp(String date_str,String format){
+        try {
+            SimpleDateFormat sdf = new SimpleDateFormat(format);
+            return Integer.valueOf(String.valueOf(sdf.parse(date_str).getTime()/1000));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+}

+ 1 - 1
src/main/java/com/mokamrp/privates/tast/ExportJobTask.java

@@ -39,7 +39,7 @@ public class ExportJobTask {
 
         System.out.println("下载任务执行中,当前时间"+(new Date())+",当前长度"+redisUtil.lGetListSize("java:job:mochat"));
 
-        while (redisUtil.lGetListSize("java:job:mochat") >=1){
+        while (redisUtil.lGetListSize(JobRedis.QUEUE_KEY) >=1){
             JobRedis out = (JobRedis)redisUtil.rightPop(JobRedis.QUEUE_KEY);
             Downfile downFile = out.getDownFile();
 

+ 56 - 0
src/main/java/com/mokamrp/privates/tast/produce/ProduceDataHub.java

@@ -0,0 +1,56 @@
+package com.mokamrp.privates.tast.produce;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mokamrp.privates.entity.JobContactEmployee;
+import com.mokamrp.privates.entity.JobRedis;
+import com.mokamrp.privates.entity.JobRoomJobRedis;
+import com.mokamrp.privates.mapper.pojo.Corp;
+import com.mokamrp.privates.service.CorpService;
+import com.mokamrp.privates.service.WorkContactEmployeeService;
+import com.mokamrp.privates.utils.RedisUtil;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class ProduceDataHub{
+
+    @Autowired
+    private CorpService CorpService;
+
+    @Resource
+    private RedisUtil redisUtil;
+
+    /**
+     * 导出任务,单进程
+     */
+    @Scheduled(cron="0 0 10,18 * * *")
+    public void execute() {
+        System.out.println("当前时间"+(new Date())+",定时任务推送公司粉丝datahub任务");
+        QueryWrapper<Corp> obj= new QueryWrapper<Corp>();
+        //obj.in("id",18);
+        List<Map<String,Object>> corps = CorpService.listMaps(obj);
+        JobContactEmployee job = new JobContactEmployee();
+        //生成任务到redis
+        System.out.println(corps);
+
+        if(corps.size() >0) {
+            for (Map<String, Object> corp : corps) {
+                if (corp.get("id") != null) {
+                    System.out.println(corp.get("id"));
+                    job.setCorpId(Integer.parseInt(corp.get("id").toString()));
+                    redisUtil.leftPush(JobContactEmployee.QUEUE_KEY, job);
+                }
+            }
+        }
+        return;
+    }
+
+}

+ 10 - 2
src/main/resources/application-local.properties

@@ -1,7 +1,10 @@
 server.port=8085
+api.host=http://127.0.0.1
+api.wechatcallback=/weWork/callback
+
 
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-spring.datasource.url=jdbc:mysql://rm-uf618jc32u2o80g55oo.mysql.rds.aliyuncs.com:3306/mochat?serverTimezone=Asia/Shanghai
+spring.datasource.url=jdbc:mysql://172.18.71.27:3306/mochat?serverTimezone=GMT%2b0
 spring.datasource.username=typer
 spring.datasource.password=jch9sh_shl
 spring.datasource.max-idle=10
@@ -12,7 +15,7 @@ spring.datasource.initial-size=5
 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
 mybatis-plus.configuration.map-underscore-to-camel-case=true
 
-spring.redis.host=r-uf633f3f27aa2174pd.redis.rds.aliyuncs.com
+spring.redis.host=172.18.71.26
 spring.redis.port=6379
 spring.redis.password=Jch9shshl
 spring.redis.database=7
@@ -38,3 +41,8 @@ xxl.sso.redis.address=redis://xxl-sso:MokaSapce666$%25_RediS@r-uf6727zrr24ioihy7
 
 menu.host=http://test.space-server.mokamrp.com/space/menu/getMenuInterface?sysCode=1006&userId=
 
+datahub.endpoint=https://dh-cn-shanghai.aliyuncs.com
+datahub.accessid=LTAI5tEWU1j9H2poG4zWgfEP
+datahub.accesssecret=p9tVmeDeeEENKhfsBsSeYc0F0ggH5b
+datahub.topic=s_hera_api_external_user
+datahub.project=hera

+ 8 - 0
src/main/resources/application-prod.properties

@@ -1,4 +1,6 @@
 server.port=8085
+api.host=http://127.0.0.1
+api.wechatcallback=/weWork/callback
 
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 spring.datasource.url=jdbc:mysql://rm-uf6s9smcl373jjenc35930.mysql.rds.aliyuncs.com:3306/mochat?serverTimezone=GMT%2b0
@@ -38,3 +40,9 @@ xxl.sso.redis.address=redis://xxl-sso:MokaSapce666$%25_RediS@r-uf6727zrr24ioihy7
 
 menu.host=http://space-server-in-svc/space/menu/getMenuInterface?sysCode=1006&userId=
 
+datahub.endpoint=https://dh-cn-shanghai.aliyuncs.com
+datahub.accessid=ltai5tewu1j9h2pog4zwgfep
+datahub.accesssecret=p9tvmedeeeenkhfsbsseyc0f0ggh5b
+datahub.topic=s_hera_api_external_user
+datahub.project=hera
+

+ 11 - 0
src/main/resources/application-test.properties

@@ -1,4 +1,6 @@
 server.port=8085
+api.host=http://127.0.0.1
+api.wechatcallback=/weWork/callback
 
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 spring.datasource.url=jdbc:mysql://rm-uf618jc32u2o80g55oo.mysql.rds.aliyuncs.com:3306/mochat
@@ -38,3 +40,12 @@ xxl.sso.redis.address=redis://xxl-sso:MokaSapce666$%25_RediS@r-uf6727zrr24ioihy7
 menu.host=http://space-server-in-svc/space/menu/getMenuInterface?sysCode=1006&userId=
 
 
+#dataHub
+datahub.endpoint=https://dh-cn-shanghai.aliyuncs.com
+datahub.accessId=LTAI5tEWU1j9H2poG4zWgfEP
+datahub.accessSecret=p9tVmeDeeEENKhfsBsSeYc0F0ggH5b
+datahub.topic=s_hera_api_external_user_test
+datahub.project=hera
+
+
+