Browse Source

e码头公众号目录改造

zhushouping 1 year ago
parent
commit
c48582de61

+ 24 - 1
sql/E码头目录改造sql.sql

@@ -16,4 +16,27 @@ create table wx_service.mp_material
     constraint material_pk  primary key (id),
     constraint material_pk  unique (file_name)
 )
-    ENGINE=INNODB DEFAULT CHARSET=utf8 comment '公众号永久素材';
+    ENGINE=INNODB DEFAULT CHARSET=utf8 comment '公众号永久素材';
+
+--关注自动回复图文消息
+create table wx_service.mp_subscribe_item
+(
+    id                           int UNSIGNED         auto_increment comment '主键ID',
+    wechat_account               varchar(255)         comment '公众号账号',
+    title                        varchar(255)         comment '标题',
+    description                  varchar(255)         comment '描述',
+    pic_url                      varchar(255)         comment '图片链接',
+    url                          varchar(255)         comment '图文跳转链接',
+    creator_id                   bigint               comment '创建人',
+    create_time                  varchar(22)          comment '创建时间',
+    moder_id                     bigint               comment '修改人',
+    mod_time                     varchar(22)          comment '修改时间',
+    tstm                         timestamp on update CURRENT_TIMESTAMP    comment '时间戳',
+    constraint material_pk  primary key (id),
+    constraint material_pk  unique (wechat_account)
+)
+    ENGINE=INNODB DEFAULT CHARSET=utf8 comment '关注自动回复图文消息';
+
+insert into wx_service.mp_subscribe_item (wechat_account,title,description,pic_url,url,create_time,mod_time,tstm)
+values ('qhemato','欢迎关注【e码头】','【e码头跨境电商新零售】\n>>>门店购买的订单,点击绑定手机号,立即取件!','https://wxservice.fu-qing.com/images/emtnew.png',
+'https://wxservice.fu-qing.com/view/binding?openid=','2023-08-18 15:15:01','2023-08-18 15:15:01','2023-08-18 15:15:01');

+ 111 - 0
src/main/java/com/ematou/wxservice/entity/pojo/SubscribeItem.java

@@ -0,0 +1,111 @@
+package com.ematou.wxservice.entity.pojo;
+
+import java.sql.Timestamp;
+
+public class SubscribeItem {
+
+    private Integer id;
+    private String wechatAccount;
+
+    private String title;
+
+    private String description;
+
+    private String picUrl;
+
+    private String url;
+
+    private Integer creatorId;
+    private String createTime;
+    private Integer moderId;
+    private String modTime;
+    private Timestamp tstm;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getWechatAccount() {
+        return wechatAccount;
+    }
+
+    public void setWechatAccount(String wechatAccount) {
+        this.wechatAccount = wechatAccount;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getPicUrl() {
+        return picUrl;
+    }
+
+    public void setPicUrl(String picUrl) {
+        this.picUrl = picUrl;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public Integer getCreatorId() {
+        return creatorId;
+    }
+
+    public void setCreatorId(Integer creatorId) {
+        this.creatorId = creatorId;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public Integer getModerId() {
+        return moderId;
+    }
+
+    public void setModerId(Integer moderId) {
+        this.moderId = moderId;
+    }
+
+    public String getModTime() {
+        return modTime;
+    }
+
+    public void setModTime(String modTime) {
+        this.modTime = modTime;
+    }
+
+    public Timestamp getTstm() {
+        return tstm;
+    }
+
+    public void setTstm(Timestamp tstm) {
+        this.tstm = tstm;
+    }
+}

+ 16 - 0
src/main/java/com/ematou/wxservice/mapper/SubscribeItemMapper.java

@@ -0,0 +1,16 @@
+package com.ematou.wxservice.mapper;
+
+import com.ematou.wxservice.entity.pojo.SubscribeItem;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface SubscribeItemMapper {
+
+    int insertSubscribeItem(@Param("subscribeItem")SubscribeItem subscribeItem);
+    int updateSubscribeItem(@Param("subscribeItem")SubscribeItem subscribeItem);
+    SubscribeItem queryByWechatAccount(@Param("wechatAccount")String wechatAccount);
+    int deleteByWechatAccount(@Param("wechatAccount")String wechatAccount);
+}

+ 17 - 3
src/main/java/com/ematou/wxservice/mp/handler/WeChatSubscribeEventHandler.java

@@ -1,8 +1,12 @@
 package com.ematou.wxservice.mp.handler;
 
+import com.ematou.wxservice.entity.pojo.SubscribeItem;
 import com.ematou.wxservice.mp.message.WeChatMessage;
 import com.ematou.wxservice.mp.message.WeChatMpXmlOutMessage;
 import com.ematou.wxservice.mp.message.WeChatMpXmlOutNewsMessage;
+import com.ematou.wxservice.service.SubscribeItemService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 /**
@@ -14,6 +18,11 @@ import org.springframework.stereotype.Component;
 @Component
 public class WeChatSubscribeEventHandler implements WeChatMessageHandler {
 
+    @Autowired
+    private SubscribeItemService subscribeItemService;
+    @Value("${wechat}")
+    String wechat;
+
     /**
      * 处理消息,并封装返回消息
      *
@@ -22,12 +31,17 @@ public class WeChatSubscribeEventHandler implements WeChatMessageHandler {
      */
     @Override
     public WeChatMpXmlOutMessage handlerMessage(WeChatMessage weChatMessage) {
+        SubscribeItem subscribeItem = subscribeItemService.queryByWechatAccount(wechat);
 
         WeChatMpXmlOutNewsMessage.Item item = new WeChatMpXmlOutNewsMessage.Item();
-        item.setTitle("欢迎关注【e码头】");
-        item.setDescription("e码头致力于打造中国领先的消费品线下跨境零售创新平台,自建及帮助进口跨境品牌商家搭建线下跨境零售业务网点。\n>>>门店购买的订单,点击绑定手机号,立即取件!");
+        /*item.setTitle("欢迎关注【e码头】");
+        item.setDescription("【e码头跨境电商新零售】\n>>>门店购买的订单,点击绑定手机号,立即取件!");
         item.setPicUrl("https://wxservice.fu-qing.com/images/emtnew.png");
-        item.setUrl("https://wxservice.fu-qing.com/view/binding?openid="+weChatMessage.getFromUser());
+        item.setUrl("https://wxservice.fu-qing.com/view/binding?openid="+weChatMessage.getFromUser());*/
+        item.setTitle(subscribeItem.getTitle());
+        item.setDescription(subscribeItem.getDescription());
+        item.setPicUrl(subscribeItem.getPicUrl());
+        item.setUrl(subscribeItem.getUrl() + weChatMessage.getFromUser());
         return WeChatMpXmlOutMessage.NEWS().addArticle(item).toUser(weChatMessage.getFromUser()).fromUser(weChatMessage.getToUser()).build();
        }
 

+ 29 - 0
src/main/java/com/ematou/wxservice/service/SubscribeItemService.java

@@ -0,0 +1,29 @@
+package com.ematou.wxservice.service;
+
+import com.ematou.wxservice.entity.pojo.SubscribeItem;
+import com.ematou.wxservice.mapper.SubscribeItemMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SubscribeItemService {
+
+
+    @Autowired
+    private SubscribeItemMapper subscribeItemMapper;
+
+    public int save(SubscribeItem subscribeItem){
+        return subscribeItemMapper.insertSubscribeItem(subscribeItem);
+    }
+
+    public int update(SubscribeItem subscribeItem){
+        return subscribeItemMapper.updateSubscribeItem(subscribeItem);
+    }
+
+    public SubscribeItem queryByWechatAccount(String wechatAccount){
+        return subscribeItemMapper.queryByWechatAccount(wechatAccount);
+    }
+    public int deleteByWechatAccount(String wechatAccount){
+        return subscribeItemMapper.deleteByWechatAccount(wechatAccount);
+    }
+}

+ 79 - 0
src/main/resources/mybatis/SubscribeItemMapper.xml

@@ -0,0 +1,79 @@
+<?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.ematou.wxservice.mapper.SubscribeItemMapper">
+
+    <sql id="Base_Column_List">
+        wechat_account,
+        title,
+        description,
+        pic_url,
+        url,
+        creator_id,
+        create_time,
+        moder_id,
+        mod_time
+    </sql>
+
+    <insert id="insertSubscribeItem" >
+        insert into mp_subscribe_item ( <include refid="Base_Column_List"/> )
+        values (#{subscribeItem.wechatAccount},
+                #{subscribeItem.title},
+                #{subscribeItem.description},
+                #{subscribeItem.picUrl},
+                #{subscribeItem.url},
+                #{subscribeItem.creatorId},
+                #{subscribeItem.createTime},
+                #{subscribeItem.moderId},
+                #{subscribeItem.modTime}
+        )
+    </insert>
+
+
+    <update id="updateSubscribeItem">
+        update mp_subscribe_item
+        <set>
+            <if test="subscribeItem.wechatAccount != null">
+                wechat_account=#{subscribeItem.wechatAccount},
+            </if>
+            <if test="subscribeItem.title != null">
+                title=#{subscribeItem.title},
+            </if>
+            <if test="subscribeItem.description != null">
+                description=#{subscribeItem.description},
+            </if>
+            <if test="subscribeItem.picUrl != null">
+                pic_url=#{subscribeItem.picUrl},
+            </if>
+            <if test="subscribeItem.url != null">
+                url=#{subscribeItem.url},
+            </if>
+            <if test="subscribeItem.moderId != null">
+                moder_id=#{subscribeItem.moderId},
+            </if>
+            <if test="subscribeItem.modTime != null">
+                mod_time=#{subscribeItem.modTime},
+            </if>
+            <if test="subscribeItem.tmst != null">
+                tmst=#{subscribeItem.tmst},
+            </if>
+        </set>
+        <if test="subscribeItem.id">
+            where id=#{subscribeItem.id}
+        </if>
+    </update>
+
+    <select id="queryByWechatAccount" resultType="com.ematou.wxservice.entity.pojo.SubscribeItem">
+        select <include refid="Base_Column_List"/>
+            from mp_subscribe_item
+        where wechat_account=#{wechatAccount}
+    </select>
+
+
+    <delete id="deleteByWechatAccount" >
+        delete from mp_subscribe_item
+        where wechat_account=#{wechatAccount}
+    </delete>
+
+</mapper>