xueyiming před 4 měsíci
rodič
revize
ff5a23e057

+ 33 - 0
we-com-server/src/main/java/com/tzld/piaoquan/wecom/dao/mapper/HistoryMessageBackupMapper.java

@@ -0,0 +1,33 @@
+package com.tzld.piaoquan.wecom.dao.mapper;
+
+import com.tzld.piaoquan.wecom.model.po.HistoryMessage;
+import com.tzld.piaoquan.wecom.model.po.HistoryMessage;
+import com.tzld.piaoquan.wecom.model.po.HistoryMessageExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface HistoryMessageBackupMapper {
+    long countByExample(HistoryMessageExample example);
+
+    int deleteByExample(HistoryMessageExample example);
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(HistoryMessage record);
+
+    int insertSelective(HistoryMessage record);
+
+    List<HistoryMessage> selectByExample(HistoryMessageExample example);
+
+    HistoryMessage selectByPrimaryKey(Long id);
+
+    int updateByExampleSelective(@Param("record") HistoryMessage record, @Param("example") HistoryMessageExample example);
+
+    int updateByExample(@Param("record") HistoryMessage record, @Param("example") HistoryMessageExample example);
+
+    int updateByPrimaryKeySelective(HistoryMessage record);
+
+    int updateByPrimaryKey(HistoryMessage record);
+
+    void insertList(@Param("list") List<HistoryMessage> list);
+}

+ 26 - 0
we-com-server/src/main/java/com/tzld/piaoquan/wecom/job/WeComHistoryDataJob.java

@@ -54,6 +54,9 @@ public class WeComHistoryDataJob {
     @Autowired
     private HistoryMessageMapper historyMessageMapper;
 
+    @Autowired
+    private HistoryMessageBackupMapper historyMessageBackupMapper;
+
     @Autowired
     private HistoryMessageService historyMessageService;
 
@@ -462,6 +465,29 @@ public class WeComHistoryDataJob {
         }
         return ReturnT.SUCCESS;
     }
+
+
+    @XxlJob("copyHistoryMessageJob")
+    public ReturnT<String> copyHistoryMessage(String param) throws InterruptedException {
+        while (true) {
+            Date daysAgoDate = DateUtil.getDaysAgoDate(7);
+            HistoryMessageExample example = new HistoryMessageExample();
+            example.createCriteria().andCreateTimeLessThan(daysAgoDate);
+            example.setPage(new Page<>(1, 10000));
+            example.setOrderByClause("id asc");
+            List<HistoryMessage> historyMessages = historyMessageMapper.selectByExample(example);
+            log.info("copyHistoryMessageJob historyMessages={}", historyMessages);
+            if (CollectionUtils.isEmpty(historyMessages)) {
+                break;
+            }
+            historyMessageBackupMapper.insertList(historyMessages);
+            for (HistoryMessage historyMessage : historyMessages) {
+                historyMessageMapper.deleteByPrimaryKey(historyMessage.getId());
+            }
+            Thread.sleep(1000);
+        }
+        return ReturnT.SUCCESS;
+    }
 }
 
 

+ 10 - 1
we-com-server/src/main/java/com/tzld/piaoquan/wecom/utils/DateUtil.java

@@ -17,6 +17,15 @@ public class DateUtil {
         calendar.set(Calendar.SECOND, 0);
         return calendar.getTime();
     }
+    public static Date getDaysAgoDate(int day) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        calendar.add(Calendar.DAY_OF_YEAR, -day); // 减去7天
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        return calendar.getTime();
+    }
 
     public static String getBeforeDayDateString() {
         DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyyMMdd");
@@ -58,7 +67,7 @@ public class DateUtil {
     }
 
     public static Integer getHourOfDay() {
-       Calendar calendar = Calendar.getInstance();
+        Calendar calendar = Calendar.getInstance();
         return calendar.get(Calendar.HOUR_OF_DAY);
     }
 

+ 340 - 0
we-com-server/src/main/resources/mapper/HistoryMessageBackupMapper.xml

@@ -0,0 +1,340 @@
+<?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.tzld.piaoquan.wecom.dao.mapper.HistoryMessageBackupMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.wecom.model.po.HistoryMessage">
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="corp_id" jdbcType="BIGINT" property="corpId" />
+    <result column="user_id" jdbcType="BIGINT" property="userId" />
+    <result column="staff_id" jdbcType="BIGINT" property="staffId" />
+    <result column="video_id" jdbcType="BIGINT" property="videoId" />
+    <result column="attachment_idx" jdbcType="INTEGER" property="attachmentIdx" />
+    <result column="status" jdbcType="INTEGER" property="status" />
+    <result column="send_time" jdbcType="TIMESTAMP" property="sendTime" />
+    <result column="is_delete" jdbcType="INTEGER" property="isDelete" />
+    <result column="source" jdbcType="VARCHAR" property="source" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, corp_id, user_id, staff_id, video_id, attachment_idx, `status`, send_time, is_delete, 
+    `source`, create_time
+  </sql>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.wecom.model.po.HistoryMessageExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from we_com_history_message_backup
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from we_com_history_message_backup
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    delete from we_com_history_message_backup
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.wecom.model.po.HistoryMessageExample">
+    delete from we_com_history_message_backup
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.wecom.model.po.HistoryMessage">
+    insert into we_com_history_message_backup (id, corp_id, user_id, 
+      staff_id, video_id, attachment_idx, 
+      `status`, send_time, is_delete, 
+      `source`, create_time)
+    values (#{id,jdbcType=BIGINT}, #{corpId,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, 
+      #{staffId,jdbcType=BIGINT}, #{videoId,jdbcType=BIGINT}, #{attachmentIdx,jdbcType=INTEGER}, 
+      #{status,jdbcType=INTEGER}, #{sendTime,jdbcType=TIMESTAMP}, #{isDelete,jdbcType=INTEGER}, 
+      #{source,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.wecom.model.po.HistoryMessage">
+    insert into we_com_history_message_backup
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="corpId != null">
+        corp_id,
+      </if>
+      <if test="userId != null">
+        user_id,
+      </if>
+      <if test="staffId != null">
+        staff_id,
+      </if>
+      <if test="videoId != null">
+        video_id,
+      </if>
+      <if test="attachmentIdx != null">
+        attachment_idx,
+      </if>
+      <if test="status != null">
+        `status`,
+      </if>
+      <if test="sendTime != null">
+        send_time,
+      </if>
+      <if test="isDelete != null">
+        is_delete,
+      </if>
+      <if test="source != null">
+        `source`,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="corpId != null">
+        #{corpId,jdbcType=BIGINT},
+      </if>
+      <if test="userId != null">
+        #{userId,jdbcType=BIGINT},
+      </if>
+      <if test="staffId != null">
+        #{staffId,jdbcType=BIGINT},
+      </if>
+      <if test="videoId != null">
+        #{videoId,jdbcType=BIGINT},
+      </if>
+      <if test="attachmentIdx != null">
+        #{attachmentIdx,jdbcType=INTEGER},
+      </if>
+      <if test="status != null">
+        #{status,jdbcType=INTEGER},
+      </if>
+      <if test="sendTime != null">
+        #{sendTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="isDelete != null">
+        #{isDelete,jdbcType=INTEGER},
+      </if>
+      <if test="source != null">
+        #{source,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.wecom.model.po.HistoryMessageExample" resultType="java.lang.Long">
+    select count(*) from we_com_history_message_backup
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update we_com_history_message_backup
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=BIGINT},
+      </if>
+      <if test="record.corpId != null">
+        corp_id = #{record.corpId,jdbcType=BIGINT},
+      </if>
+      <if test="record.userId != null">
+        user_id = #{record.userId,jdbcType=BIGINT},
+      </if>
+      <if test="record.staffId != null">
+        staff_id = #{record.staffId,jdbcType=BIGINT},
+      </if>
+      <if test="record.videoId != null">
+        video_id = #{record.videoId,jdbcType=BIGINT},
+      </if>
+      <if test="record.attachmentIdx != null">
+        attachment_idx = #{record.attachmentIdx,jdbcType=INTEGER},
+      </if>
+      <if test="record.status != null">
+        `status` = #{record.status,jdbcType=INTEGER},
+      </if>
+      <if test="record.sendTime != null">
+        send_time = #{record.sendTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.isDelete != null">
+        is_delete = #{record.isDelete,jdbcType=INTEGER},
+      </if>
+      <if test="record.source != null">
+        `source` = #{record.source,jdbcType=VARCHAR},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update we_com_history_message_backup
+    set id = #{record.id,jdbcType=BIGINT},
+      corp_id = #{record.corpId,jdbcType=BIGINT},
+      user_id = #{record.userId,jdbcType=BIGINT},
+      staff_id = #{record.staffId,jdbcType=BIGINT},
+      video_id = #{record.videoId,jdbcType=BIGINT},
+      attachment_idx = #{record.attachmentIdx,jdbcType=INTEGER},
+      `status` = #{record.status,jdbcType=INTEGER},
+      send_time = #{record.sendTime,jdbcType=TIMESTAMP},
+      is_delete = #{record.isDelete,jdbcType=INTEGER},
+      `source` = #{record.source,jdbcType=VARCHAR},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.wecom.model.po.HistoryMessage">
+    update we_com_history_message_backup
+    <set>
+      <if test="corpId != null">
+        corp_id = #{corpId,jdbcType=BIGINT},
+      </if>
+      <if test="userId != null">
+        user_id = #{userId,jdbcType=BIGINT},
+      </if>
+      <if test="staffId != null">
+        staff_id = #{staffId,jdbcType=BIGINT},
+      </if>
+      <if test="videoId != null">
+        video_id = #{videoId,jdbcType=BIGINT},
+      </if>
+      <if test="attachmentIdx != null">
+        attachment_idx = #{attachmentIdx,jdbcType=INTEGER},
+      </if>
+      <if test="status != null">
+        `status` = #{status,jdbcType=INTEGER},
+      </if>
+      <if test="sendTime != null">
+        send_time = #{sendTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="isDelete != null">
+        is_delete = #{isDelete,jdbcType=INTEGER},
+      </if>
+      <if test="source != null">
+        `source` = #{source,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.wecom.model.po.HistoryMessage">
+    update we_com_history_message_backup
+    set corp_id = #{corpId,jdbcType=BIGINT},
+      user_id = #{userId,jdbcType=BIGINT},
+      staff_id = #{staffId,jdbcType=BIGINT},
+      video_id = #{videoId,jdbcType=BIGINT},
+      attachment_idx = #{attachmentIdx,jdbcType=INTEGER},
+      `status` = #{status,jdbcType=INTEGER},
+      send_time = #{sendTime,jdbcType=TIMESTAMP},
+      is_delete = #{isDelete,jdbcType=INTEGER},
+      `source` = #{source,jdbcType=VARCHAR},
+      create_time = #{createTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+
+  <insert id="insertList" parameterType="java.util.List">
+    insert into we_com_history_message_backup
+    (
+     id,
+    corp_id,
+    user_id,
+    staff_id,
+    video_id,
+    attachment_idx,
+    `status`,
+    send_time,
+    `source`,
+    create_time
+    )
+    values
+    <foreach collection="list" item="item" separator=",">
+      (
+      #{item.id,jdbcType=BIGINT},
+      #{item.corpId,jdbcType=BIGINT},
+      #{item.userId,jdbcType=BIGINT},
+      #{item.staffId,jdbcType=BIGINT},
+      #{item.videoId,jdbcType=BIGINT},
+      #{item.attachmentIdx,jdbcType=INTEGER},
+      #{item.status,jdbcType=INTEGER},
+      #{item.sendTime,jdbcType=TIMESTAMP},
+      #{item.source,jdbcType=VARCHAR},
+      #{item.createTime,jdbcType=TIMESTAMP}
+      )
+    </foreach>
+  </insert>
+</mapper>

+ 2 - 2
we-com-server/src/main/resources/mybatis-generator-config.xml

@@ -51,8 +51,8 @@
         </javaClientGenerator>
 
 <!--        <table tableName="we_com_alert_message" domainObjectName="AlertMessage" alias=""/>-->
-<!--        <table tableName="we_com_history_message" domainObjectName="HistoryMessage" alias=""/>-->
-        <table tableName="we_com_guarantees_video" domainObjectName="GuaranteesVideo" alias=""/>
+        <table tableName="we_com_history_message_backup" domainObjectName="HistoryMessageBackup" alias=""/>
+<!--        <table tableName="we_com_guarantees_video" domainObjectName="GuaranteesVideo" alias=""/>-->
 <!--        <table tableName="we_com_staff" domainObjectName="Staff" alias=""/>-->
 <!--        <table tableName="we_com_staff_with_user" domainObjectName="StaffWithUser" alias=""/>-->
 <!--        <table tableName="we_com_send_message" domainObjectName="SendMessage" alias=""/>-->