Explorar el Código

增加发送前发送数量

xueyiming hace 1 semana
padre
commit
d2f6a2f8a4

+ 3 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/crawler/ArticleUseGroupMapper.java

@@ -35,4 +35,7 @@ public interface ArticleUseGroupMapper {
     List<String> selectOpenIds(@Param("ghId") String ghId, @Param("count") Integer count);
 
     List<String> selectOpenIdsByRemainingCount(@Param("ghId") String ghId, @Param("remainingCount") Integer remainingCount);
+
+    Integer selectFansBeforePublishCount(@Param("ghId") String ghId);
+
 }

+ 30 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/dao/mapper/crawler/FwhDailyPublishDetailMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.longarticle.dao.mapper.crawler;
+
+import com.tzld.piaoquan.longarticle.model.po.crawler.FwhDailyPublishDetail;
+import com.tzld.piaoquan.longarticle.model.po.crawler.FwhDailyPublishDetailExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface FwhDailyPublishDetailMapper {
+    long countByExample(FwhDailyPublishDetailExample example);
+
+    int deleteByExample(FwhDailyPublishDetailExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(FwhDailyPublishDetail record);
+
+    int insertSelective(FwhDailyPublishDetail record);
+
+    List<FwhDailyPublishDetail> selectByExample(FwhDailyPublishDetailExample example);
+
+    FwhDailyPublishDetail selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") FwhDailyPublishDetail record, @Param("example") FwhDailyPublishDetailExample example);
+
+    int updateByExample(@Param("record") FwhDailyPublishDetail record, @Param("example") FwhDailyPublishDetailExample example);
+
+    int updateByPrimaryKeySelective(FwhDailyPublishDetail record);
+
+    int updateByPrimaryKey(FwhDailyPublishDetail record);
+}

+ 79 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/crawler/FwhDailyPublishDetail.java

@@ -0,0 +1,79 @@
+package com.tzld.piaoquan.longarticle.model.po.crawler;
+
+public class FwhDailyPublishDetail {
+    private Integer id;
+
+    private String accountName;
+
+    private String ghId;
+
+    private String publishDate;
+
+    private Integer fansBeforePublish;
+
+    private Integer publishFansBeforePublish;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getAccountName() {
+        return accountName;
+    }
+
+    public void setAccountName(String accountName) {
+        this.accountName = accountName;
+    }
+
+    public String getGhId() {
+        return ghId;
+    }
+
+    public void setGhId(String ghId) {
+        this.ghId = ghId;
+    }
+
+    public String getPublishDate() {
+        return publishDate;
+    }
+
+    public void setPublishDate(String publishDate) {
+        this.publishDate = publishDate;
+    }
+
+    public Integer getFansBeforePublish() {
+        return fansBeforePublish;
+    }
+
+    public void setFansBeforePublish(Integer fansBeforePublish) {
+        this.fansBeforePublish = fansBeforePublish;
+    }
+
+    public Integer getPublishFansBeforePublish() {
+        return publishFansBeforePublish;
+    }
+
+    public void setPublishFansBeforePublish(Integer publishFansBeforePublish) {
+        this.publishFansBeforePublish = publishFansBeforePublish;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", accountName=").append(accountName);
+        sb.append(", ghId=").append(ghId);
+        sb.append(", publishDate=").append(publishDate);
+        sb.append(", fansBeforePublish=").append(fansBeforePublish);
+        sb.append(", publishFansBeforePublish=").append(publishFansBeforePublish);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 601 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/po/crawler/FwhDailyPublishDetailExample.java

@@ -0,0 +1,601 @@
+package com.tzld.piaoquan.longarticle.model.po.crawler;
+
+import com.tzld.piaoquan.longarticle.utils.page.Page;
+import java.util.ArrayList;
+import java.util.List;
+
+public class FwhDailyPublishDetailExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public FwhDailyPublishDetailExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Integer value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Integer value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Integer value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Integer value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Integer value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Integer> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Integer> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Integer value1, Integer value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameIsNull() {
+            addCriterion("account_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameIsNotNull() {
+            addCriterion("account_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameEqualTo(String value) {
+            addCriterion("account_name =", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotEqualTo(String value) {
+            addCriterion("account_name <>", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameGreaterThan(String value) {
+            addCriterion("account_name >", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameGreaterThanOrEqualTo(String value) {
+            addCriterion("account_name >=", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameLessThan(String value) {
+            addCriterion("account_name <", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameLessThanOrEqualTo(String value) {
+            addCriterion("account_name <=", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameLike(String value) {
+            addCriterion("account_name like", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotLike(String value) {
+            addCriterion("account_name not like", value, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameIn(List<String> values) {
+            addCriterion("account_name in", values, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotIn(List<String> values) {
+            addCriterion("account_name not in", values, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameBetween(String value1, String value2) {
+            addCriterion("account_name between", value1, value2, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountNameNotBetween(String value1, String value2) {
+            addCriterion("account_name not between", value1, value2, "accountName");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdIsNull() {
+            addCriterion("gh_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdIsNotNull() {
+            addCriterion("gh_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdEqualTo(String value) {
+            addCriterion("gh_id =", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotEqualTo(String value) {
+            addCriterion("gh_id <>", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdGreaterThan(String value) {
+            addCriterion("gh_id >", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdGreaterThanOrEqualTo(String value) {
+            addCriterion("gh_id >=", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdLessThan(String value) {
+            addCriterion("gh_id <", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdLessThanOrEqualTo(String value) {
+            addCriterion("gh_id <=", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdLike(String value) {
+            addCriterion("gh_id like", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotLike(String value) {
+            addCriterion("gh_id not like", value, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdIn(List<String> values) {
+            addCriterion("gh_id in", values, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotIn(List<String> values) {
+            addCriterion("gh_id not in", values, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdBetween(String value1, String value2) {
+            addCriterion("gh_id between", value1, value2, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGhIdNotBetween(String value1, String value2) {
+            addCriterion("gh_id not between", value1, value2, "ghId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateIsNull() {
+            addCriterion("publish_date is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateIsNotNull() {
+            addCriterion("publish_date is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateEqualTo(String value) {
+            addCriterion("publish_date =", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateNotEqualTo(String value) {
+            addCriterion("publish_date <>", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateGreaterThan(String value) {
+            addCriterion("publish_date >", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateGreaterThanOrEqualTo(String value) {
+            addCriterion("publish_date >=", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateLessThan(String value) {
+            addCriterion("publish_date <", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateLessThanOrEqualTo(String value) {
+            addCriterion("publish_date <=", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateLike(String value) {
+            addCriterion("publish_date like", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateNotLike(String value) {
+            addCriterion("publish_date not like", value, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateIn(List<String> values) {
+            addCriterion("publish_date in", values, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateNotIn(List<String> values) {
+            addCriterion("publish_date not in", values, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateBetween(String value1, String value2) {
+            addCriterion("publish_date between", value1, value2, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishDateNotBetween(String value1, String value2) {
+            addCriterion("publish_date not between", value1, value2, "publishDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansBeforePublishIsNull() {
+            addCriterion("fans_before_publish is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansBeforePublishIsNotNull() {
+            addCriterion("fans_before_publish is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansBeforePublishEqualTo(Integer value) {
+            addCriterion("fans_before_publish =", value, "fansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansBeforePublishNotEqualTo(Integer value) {
+            addCriterion("fans_before_publish <>", value, "fansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansBeforePublishGreaterThan(Integer value) {
+            addCriterion("fans_before_publish >", value, "fansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansBeforePublishGreaterThanOrEqualTo(Integer value) {
+            addCriterion("fans_before_publish >=", value, "fansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansBeforePublishLessThan(Integer value) {
+            addCriterion("fans_before_publish <", value, "fansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansBeforePublishLessThanOrEqualTo(Integer value) {
+            addCriterion("fans_before_publish <=", value, "fansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansBeforePublishIn(List<Integer> values) {
+            addCriterion("fans_before_publish in", values, "fansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansBeforePublishNotIn(List<Integer> values) {
+            addCriterion("fans_before_publish not in", values, "fansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansBeforePublishBetween(Integer value1, Integer value2) {
+            addCriterion("fans_before_publish between", value1, value2, "fansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansBeforePublishNotBetween(Integer value1, Integer value2) {
+            addCriterion("fans_before_publish not between", value1, value2, "fansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFansBeforePublishIsNull() {
+            addCriterion("publish_fans_before_publish is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFansBeforePublishIsNotNull() {
+            addCriterion("publish_fans_before_publish is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFansBeforePublishEqualTo(Integer value) {
+            addCriterion("publish_fans_before_publish =", value, "publishFansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFansBeforePublishNotEqualTo(Integer value) {
+            addCriterion("publish_fans_before_publish <>", value, "publishFansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFansBeforePublishGreaterThan(Integer value) {
+            addCriterion("publish_fans_before_publish >", value, "publishFansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFansBeforePublishGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_fans_before_publish >=", value, "publishFansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFansBeforePublishLessThan(Integer value) {
+            addCriterion("publish_fans_before_publish <", value, "publishFansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFansBeforePublishLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_fans_before_publish <=", value, "publishFansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFansBeforePublishIn(List<Integer> values) {
+            addCriterion("publish_fans_before_publish in", values, "publishFansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFansBeforePublishNotIn(List<Integer> values) {
+            addCriterion("publish_fans_before_publish not in", values, "publishFansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFansBeforePublishBetween(Integer value1, Integer value2) {
+            addCriterion("publish_fans_before_publish between", value1, value2, "publishFansBeforePublish");
+            return (Criteria) this;
+        }
+
+        public Criteria andPublishFansBeforePublishNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_fans_before_publish not between", value1, value2, "publishFansBeforePublish");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 13 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/CoreServiceImpl.java

@@ -6,6 +6,7 @@ import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
 import com.tzld.piaoquan.longarticle.common.constants.TimeConstant;
 import com.tzld.piaoquan.longarticle.common.enums.*;
 import com.tzld.piaoquan.longarticle.dao.mapper.crawler.ArticleUseGroupMapper;
+import com.tzld.piaoquan.longarticle.dao.mapper.crawler.FwhDailyPublishDetailMapper;
 import com.tzld.piaoquan.longarticle.dao.mapper.longarticle.*;
 import com.tzld.piaoquan.longarticle.model.bo.MatchContent;
 import com.tzld.piaoquan.longarticle.model.bo.VideoDetail;
@@ -13,6 +14,7 @@ import com.tzld.piaoquan.longarticle.model.dto.MiniprogramCardRequest;
 import com.tzld.piaoquan.longarticle.model.dto.PublishArticleData;
 import com.tzld.piaoquan.longarticle.model.po.crawler.ArticleUseGroup;
 import com.tzld.piaoquan.longarticle.model.po.crawler.ArticleUseGroupExample;
+import com.tzld.piaoquan.longarticle.model.po.crawler.FwhDailyPublishDetail;
 import com.tzld.piaoquan.longarticle.model.po.longarticle.*;
 import com.tzld.piaoquan.longarticle.model.vo.*;
 import com.tzld.piaoquan.longarticle.service.local.AccountService;
@@ -92,6 +94,9 @@ public class CoreServiceImpl implements CoreService {
     @Autowired
     private MatchVideoServiceImpl matchVideoService;
 
+    @Autowired
+    private FwhDailyPublishDetailMapper fwhDailyPublishDetailMapper;
+
     @ApolloJsonValue("${fwhGhIdList:[]}")
     private List<String> fwhGhIdList;
 
@@ -819,6 +824,14 @@ public class CoreServiceImpl implements CoreService {
             remainingCount = articleUseGroupMapper.selectRemainingCountByGzhId(planAccount.getGhId(), null);
         }
         if (remainingDaysInCurrentMonth > 0 && remainingCount != null && remainingCount / remainingDaysInCurrentMonth > 0) {
+            Integer count = articleUseGroupMapper.selectFansBeforePublishCount(planAccount.getGhId());
+            FwhDailyPublishDetail fwhDailyPublishDetail = new FwhDailyPublishDetail();
+            fwhDailyPublishDetail.setAccountName(planAccount.getAccountName());
+            fwhDailyPublishDetail.setGhId(planAccount.getGhId());
+            fwhDailyPublishDetail.setPublishDate(DateUtil.getThatDayDateString());
+            fwhDailyPublishDetail.setFansBeforePublish(count);
+            fwhDailyPublishDetail.setPublishFansBeforePublish(remainingCount);
+            fwhDailyPublishDetailMapper.insertSelective(fwhDailyPublishDetail);
             List<String> needSendOpenIds = articleUseGroupMapper.selectOpenIds(planAccount.getGhId(), remainingCount / remainingDaysInCurrentMonth);
             sendOpenIds.addAll(needSendOpenIds);
         }

+ 1 - 1
long-article-server/src/main/resources/crawler-mybatis-generator-config.xml

@@ -52,7 +52,7 @@
             <property name="enableSubPackages" value="true"/>
         </javaClientGenerator>
 
-        <table tableName="article_user_group" domainObjectName="ArticleUseGroup" alias=""/>
+        <table tableName="fwh_daily_publish_detail" domainObjectName="FwhDailyPublishDetail" alias=""/>
 
 
     </context>

+ 8 - 1
long-article-server/src/main/resources/mapper/crawler/ArticleUseGroupMapper.xml

@@ -249,7 +249,14 @@
   <select id="selectOpenIdsByRemainingCount" resultType="java.lang.String">
     select open_id
     from article_user_group
-    where gzh_id = #{ghId,jdbcType=VARCHAR}
+    where is_delete = 0 and gzh_id = #{ghId,jdbcType=VARCHAR}
     and remaining_count >= #{remainingCount,jdbcType=INTEGER}
   </select>
+
+  <select id="selectFansBeforePublishCount" resultType="java.lang.Integer">
+    select count(*)
+    from article_user_group
+    where is_delete = 0 and gzh_id = #{ghId,jdbcType=VARCHAR}
+      and remaining_count > 0
+  </select>
 </mapper>

+ 231 - 0
long-article-server/src/main/resources/mapper/crawler/FwhDailyPublishDetailMapper.xml

@@ -0,0 +1,231 @@
+<?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.longarticle.dao.mapper.crawler.FwhDailyPublishDetailMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.longarticle.model.po.crawler.FwhDailyPublishDetail">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="account_name" jdbcType="VARCHAR" property="accountName" />
+    <result column="gh_id" jdbcType="VARCHAR" property="ghId" />
+    <result column="publish_date" jdbcType="VARCHAR" property="publishDate" />
+    <result column="fans_before_publish" jdbcType="INTEGER" property="fansBeforePublish" />
+    <result column="publish_fans_before_publish" jdbcType="INTEGER" property="publishFansBeforePublish" />
+  </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, account_name, gh_id, publish_date, fans_before_publish, publish_fans_before_publish
+  </sql>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.crawler.FwhDailyPublishDetailExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from fwh_daily_publish_detail
+    <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.Integer" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from fwh_daily_publish_detail
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    delete from fwh_daily_publish_detail
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.crawler.FwhDailyPublishDetailExample">
+    delete from fwh_daily_publish_detail
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.longarticle.model.po.crawler.FwhDailyPublishDetail">
+    insert into fwh_daily_publish_detail (id, account_name, gh_id, 
+      publish_date, fans_before_publish, publish_fans_before_publish
+      )
+    values (#{id,jdbcType=INTEGER}, #{accountName,jdbcType=VARCHAR}, #{ghId,jdbcType=VARCHAR}, 
+      #{publishDate,jdbcType=VARCHAR}, #{fansBeforePublish,jdbcType=INTEGER}, #{publishFansBeforePublish,jdbcType=INTEGER}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.longarticle.model.po.crawler.FwhDailyPublishDetail">
+    insert into fwh_daily_publish_detail
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="accountName != null">
+        account_name,
+      </if>
+      <if test="ghId != null">
+        gh_id,
+      </if>
+      <if test="publishDate != null">
+        publish_date,
+      </if>
+      <if test="fansBeforePublish != null">
+        fans_before_publish,
+      </if>
+      <if test="publishFansBeforePublish != null">
+        publish_fans_before_publish,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="accountName != null">
+        #{accountName,jdbcType=VARCHAR},
+      </if>
+      <if test="ghId != null">
+        #{ghId,jdbcType=VARCHAR},
+      </if>
+      <if test="publishDate != null">
+        #{publishDate,jdbcType=VARCHAR},
+      </if>
+      <if test="fansBeforePublish != null">
+        #{fansBeforePublish,jdbcType=INTEGER},
+      </if>
+      <if test="publishFansBeforePublish != null">
+        #{publishFansBeforePublish,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.longarticle.model.po.crawler.FwhDailyPublishDetailExample" resultType="java.lang.Long">
+    select count(*) from fwh_daily_publish_detail
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update fwh_daily_publish_detail
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.accountName != null">
+        account_name = #{record.accountName,jdbcType=VARCHAR},
+      </if>
+      <if test="record.ghId != null">
+        gh_id = #{record.ghId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.publishDate != null">
+        publish_date = #{record.publishDate,jdbcType=VARCHAR},
+      </if>
+      <if test="record.fansBeforePublish != null">
+        fans_before_publish = #{record.fansBeforePublish,jdbcType=INTEGER},
+      </if>
+      <if test="record.publishFansBeforePublish != null">
+        publish_fans_before_publish = #{record.publishFansBeforePublish,jdbcType=INTEGER},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update fwh_daily_publish_detail
+    set id = #{record.id,jdbcType=INTEGER},
+      account_name = #{record.accountName,jdbcType=VARCHAR},
+      gh_id = #{record.ghId,jdbcType=VARCHAR},
+      publish_date = #{record.publishDate,jdbcType=VARCHAR},
+      fans_before_publish = #{record.fansBeforePublish,jdbcType=INTEGER},
+      publish_fans_before_publish = #{record.publishFansBeforePublish,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.longarticle.model.po.crawler.FwhDailyPublishDetail">
+    update fwh_daily_publish_detail
+    <set>
+      <if test="accountName != null">
+        account_name = #{accountName,jdbcType=VARCHAR},
+      </if>
+      <if test="ghId != null">
+        gh_id = #{ghId,jdbcType=VARCHAR},
+      </if>
+      <if test="publishDate != null">
+        publish_date = #{publishDate,jdbcType=VARCHAR},
+      </if>
+      <if test="fansBeforePublish != null">
+        fans_before_publish = #{fansBeforePublish,jdbcType=INTEGER},
+      </if>
+      <if test="publishFansBeforePublish != null">
+        publish_fans_before_publish = #{publishFansBeforePublish,jdbcType=INTEGER},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.longarticle.model.po.crawler.FwhDailyPublishDetail">
+    update fwh_daily_publish_detail
+    set account_name = #{accountName,jdbcType=VARCHAR},
+      gh_id = #{ghId,jdbcType=VARCHAR},
+      publish_date = #{publishDate,jdbcType=VARCHAR},
+      fans_before_publish = #{fansBeforePublish,jdbcType=INTEGER},
+      publish_fans_before_publish = #{publishFansBeforePublish,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+</mapper>