Przeglądaj źródła

增加判断是否发送字段 标签增加性别区分

xueyiming 2 miesięcy temu
rodzic
commit
99413a412d

+ 11 - 0
common-module/src/main/java/com/tzld/piaoquan/growth/common/model/po/PreSpecialSendMessage.java

@@ -25,6 +25,8 @@ public class PreSpecialSendMessage {
 
     private Integer gender;
 
+    private Integer isSend;
+
     private Date createTime;
 
     private Date updateTime;
@@ -117,6 +119,14 @@ public class PreSpecialSendMessage {
         this.gender = gender;
     }
 
+    public Integer getIsSend() {
+        return isSend;
+    }
+
+    public void setIsSend(Integer isSend) {
+        this.isSend = isSend;
+    }
+
     public Date getCreateTime() {
         return createTime;
     }
@@ -150,6 +160,7 @@ public class PreSpecialSendMessage {
         sb.append(", pageSize=").append(pageSize);
         sb.append(", tagId=").append(tagId);
         sb.append(", gender=").append(gender);
+        sb.append(", isSend=").append(isSend);
         sb.append(", createTime=").append(createTime);
         sb.append(", updateTime=").append(updateTime);
         sb.append("]");

+ 60 - 0
common-module/src/main/java/com/tzld/piaoquan/growth/common/model/po/PreSpecialSendMessageExample.java

@@ -807,6 +807,66 @@ public class PreSpecialSendMessageExample {
             return (Criteria) this;
         }
 
+        public Criteria andIsSendIsNull() {
+            addCriterion("is_send is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSendIsNotNull() {
+            addCriterion("is_send is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSendEqualTo(Integer value) {
+            addCriterion("is_send =", value, "isSend");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSendNotEqualTo(Integer value) {
+            addCriterion("is_send <>", value, "isSend");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSendGreaterThan(Integer value) {
+            addCriterion("is_send >", value, "isSend");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSendGreaterThanOrEqualTo(Integer value) {
+            addCriterion("is_send >=", value, "isSend");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSendLessThan(Integer value) {
+            addCriterion("is_send <", value, "isSend");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSendLessThanOrEqualTo(Integer value) {
+            addCriterion("is_send <=", value, "isSend");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSendIn(List<Integer> values) {
+            addCriterion("is_send in", values, "isSend");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSendNotIn(List<Integer> values) {
+            addCriterion("is_send not in", values, "isSend");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSendBetween(Integer value1, Integer value2) {
+            addCriterion("is_send between", value1, value2, "isSend");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSendNotBetween(Integer value1, Integer value2) {
+            addCriterion("is_send not between", value1, value2, "isSend");
+            return (Criteria) this;
+        }
+
         public Criteria andCreateTimeIsNull() {
             addCriterion("create_time is null");
             return (Criteria) this;

+ 20 - 5
common-module/src/main/resources/mapper/PreSpecialSendMessageMapper.xml

@@ -13,6 +13,7 @@
     <result column="page_size" jdbcType="INTEGER" property="pageSize" />
     <result column="tag_id" jdbcType="BIGINT" property="tagId" />
     <result column="gender" jdbcType="INTEGER" property="gender" />
+    <result column="is_send" jdbcType="INTEGER" property="isSend" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
   </resultMap>
@@ -76,7 +77,7 @@
   </sql>
   <sql id="Base_Column_List">
     id, pre_send_date, staff_id, `status`, content, attachment_ids, group_msg_disabled, 
-    page_num, page_size, tag_id, gender, create_time, update_time
+    page_num, page_size, tag_id, gender, is_send, create_time, update_time
   </sql>
   <select id="selectByExample" parameterType="com.tzld.piaoquan.growth.common.model.po.PreSpecialSendMessageExample" resultMap="BaseResultMap">
     select
@@ -115,13 +116,13 @@
     insert into we_com_special_pre_send_message (id, pre_send_date, staff_id, 
       `status`, content, attachment_ids, 
       group_msg_disabled, page_num, page_size, 
-      tag_id, gender, create_time, 
-      update_time)
+      tag_id, gender, is_send, 
+      create_time, update_time)
     values (#{id,jdbcType=BIGINT}, #{preSendDate,jdbcType=VARCHAR}, #{staffId,jdbcType=BIGINT}, 
       #{status,jdbcType=INTEGER}, #{content,jdbcType=VARCHAR}, #{attachmentIds,jdbcType=VARCHAR}, 
       #{groupMsgDisabled,jdbcType=INTEGER}, #{pageNum,jdbcType=INTEGER}, #{pageSize,jdbcType=INTEGER}, 
-      #{tagId,jdbcType=BIGINT}, #{gender,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, 
-      #{updateTime,jdbcType=TIMESTAMP})
+      #{tagId,jdbcType=BIGINT}, #{gender,jdbcType=INTEGER}, #{isSend,jdbcType=INTEGER}, 
+      #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
   </insert>
   <insert id="insertSelective" parameterType="com.tzld.piaoquan.growth.common.model.po.PreSpecialSendMessage">
     insert into we_com_special_pre_send_message
@@ -159,6 +160,9 @@
       <if test="gender != null">
         gender,
       </if>
+      <if test="isSend != null">
+        is_send,
+      </if>
       <if test="createTime != null">
         create_time,
       </if>
@@ -200,6 +204,9 @@
       <if test="gender != null">
         #{gender,jdbcType=INTEGER},
       </if>
+      <if test="isSend != null">
+        #{isSend,jdbcType=INTEGER},
+      </if>
       <if test="createTime != null">
         #{createTime,jdbcType=TIMESTAMP},
       </if>
@@ -250,6 +257,9 @@
       <if test="record.gender != null">
         gender = #{record.gender,jdbcType=INTEGER},
       </if>
+      <if test="record.isSend != null">
+        is_send = #{record.isSend,jdbcType=INTEGER},
+      </if>
       <if test="record.createTime != null">
         create_time = #{record.createTime,jdbcType=TIMESTAMP},
       </if>
@@ -274,6 +284,7 @@
       page_size = #{record.pageSize,jdbcType=INTEGER},
       tag_id = #{record.tagId,jdbcType=BIGINT},
       gender = #{record.gender,jdbcType=INTEGER},
+      is_send = #{record.isSend,jdbcType=INTEGER},
       create_time = #{record.createTime,jdbcType=TIMESTAMP},
       update_time = #{record.updateTime,jdbcType=TIMESTAMP}
     <if test="_parameter != null">
@@ -313,6 +324,9 @@
       <if test="gender != null">
         gender = #{gender,jdbcType=INTEGER},
       </if>
+      <if test="isSend != null">
+        is_send = #{isSend,jdbcType=INTEGER},
+      </if>
       <if test="createTime != null">
         create_time = #{createTime,jdbcType=TIMESTAMP},
       </if>
@@ -334,6 +348,7 @@
       page_size = #{pageSize,jdbcType=INTEGER},
       tag_id = #{tagId,jdbcType=BIGINT},
       gender = #{gender,jdbcType=INTEGER},
+      is_send = #{isSend,jdbcType=INTEGER},
       create_time = #{createTime,jdbcType=TIMESTAMP},
       update_time = #{updateTime,jdbcType=TIMESTAMP}
     where id = #{id,jdbcType=BIGINT}

+ 15 - 6
offline-module/src/main/java/com/tzld/piaoquan/offline/job/WeComSpecialDataJob.java

@@ -62,7 +62,7 @@ public class WeComSpecialDataJob {
     public ReturnT<String> getAndAddSpecialAssembleSendMessage(String param) {
         String thatDayDateString = DateUtil.getThatDayDateString();
         PreSpecialSendMessageExample example = new PreSpecialSendMessageExample();
-        example.createCriteria().andPreSendDateEqualTo(thatDayDateString);
+        example.createCriteria().andPreSendDateEqualTo(thatDayDateString).andIsSendEqualTo(0);
         List<PreSpecialSendMessage> preSpecialSendMessages = preSpecialSendMessageMapper.selectByExample(example);
         List<PreSpecialSendMessage> defaultPreSpecialSendMessage = preSpecialSendMessages.stream()
                 .filter(e -> Objects.equals(e.getStatus(), PreSpecialStatusEnum.DEFAULT.getStatus())).collect(Collectors.toList());
@@ -79,7 +79,7 @@ public class WeComSpecialDataJob {
         if (!CollectionUtils.isEmpty(tagPreSpecialSendMessage)) {
             for (PreSpecialSendMessage preSpecialSendMessage : tagPreSpecialSendMessage) {
                 tagSpecialAssembleSendMessage(preSpecialSendMessage.getId(), preSpecialSendMessage.getStaffId(), preSpecialSendMessage.getAttachmentIds(),
-                        preSpecialSendMessage.getContent(), preSpecialSendMessage.getPreSendDate(), preSpecialSendMessage.getTagId());
+                        preSpecialSendMessage.getContent(), preSpecialSendMessage.getPreSendDate(), preSpecialSendMessage.getTagId(), preSpecialSendMessage.getGender());
             }
         }
 
@@ -92,9 +92,15 @@ public class WeComSpecialDataJob {
                         preSpecialSendMessage.getContent(), preSpecialSendMessage.getPreSendDate(), preSpecialSendMessage.getGender());
             }
         }
-
         //发送拼装好的消息
         sendSpecialPushMessage();
+
+        for (PreSpecialSendMessage preSpecialSendMessage : preSpecialSendMessages) {
+            PreSpecialSendMessage updatePreSpecialSendMessage = new PreSpecialSendMessage();
+            updatePreSpecialSendMessage.setId(preSpecialSendMessage.getId());
+            updatePreSpecialSendMessage.setIsSend(1);
+            preSpecialSendMessageMapper.updateByPrimaryKeySelective(updatePreSpecialSendMessage);
+        }
         return ReturnT.SUCCESS;
     }
 
@@ -116,12 +122,15 @@ public class WeComSpecialDataJob {
         }
     }
 
-    public void tagSpecialAssembleSendMessage(Long preId, Long staffId, String attachmentIds, String content, String date, Long tagId) {
+    public void tagSpecialAssembleSendMessage(Long preId, Long staffId, String attachmentIds, String content, String date, Long tagId, Integer gender) {
         List<WeComUser> weComUsers = weComUserMapper.selectByTagUserList(tagId);
         if (CollectionUtils.isEmpty(weComUsers)) {
             return;
         }
         for (WeComUser weComUser : weComUsers) {
+            if (gender != null && !gender.equals(weComUser.getGender())) {
+                continue;
+            }
             List<Staff> staffs = weComUserService.getStaffByUserId(weComUser.getId());
             if (CollectionUtils.isEmpty(staffs)) {
                 continue;
@@ -213,9 +222,9 @@ public class WeComSpecialDataJob {
                         if (Objects.equals(MessageAttachmentTypeEnum.MINI_PROGRAM.getCode(), type)) {
                             JSONObject miniprogramAttachment = new JSONObject();
                             JSONObject miniprogram = new JSONObject();
-                            if(StringUtils.isNotEmpty(messageAttachment.getAppid())){
+                            if (StringUtils.isNotEmpty(messageAttachment.getAppid())) {
                                 miniprogram.put("appid", messageAttachment.getAppid());
-                            }else {
+                            } else {
                                 miniprogram.put("appid", MessageConstant.appid);
                             }
                             String title = messageAttachment.getTitle();