Commit 4fa74834d33454c8fbb4e1a5d0c9fc1ad2e60f6f
1 parent
6d30345631
Exists in
master
and in
1 other branch
0点推送的文章开始筛选存入记录。9点筛选的文章记录开始推送
Showing 14 changed files with 646 additions and 103 deletions
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/TestController.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsPushMessages.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsPushedart.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/PushArticle.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsPushMessagesMapper.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/LymsPushMessagesService.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsPushMessagesServiceImpl.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/AccessTokenServlet.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/PushArticleTask.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/PushArticleTaskData.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/TokenThread.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/DateUtil.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/WeiXinUtil.java
- talkonlineweb/src/main/resources/mapper/LymsPushMessagesMapper.xml
talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/TestController.java
View file @
4fa7483
1 | 1 | package com.lyms.talkonlineweb.controller; |
2 | 2 | |
3 | 3 | |
4 | -import com.lyms.talkonlineweb.annotation.TokenRequired; | |
5 | -import com.lyms.talkonlineweb.domain.LymsUser; | |
6 | -import com.lyms.talkonlineweb.service.LymsUserService; | |
4 | +import com.lyms.talkonlineweb.task.PushArticleTask; | |
5 | +import com.lyms.talkonlineweb.task.PushArticleTaskData; | |
7 | 6 | import lombok.extern.java.Log; |
8 | 7 | import org.springframework.beans.factory.annotation.Autowired; |
9 | 8 | import org.springframework.web.bind.annotation.GetMapping; |
10 | 9 | import org.springframework.web.bind.annotation.RestController; |
11 | 10 | |
12 | -import java.util.List; | |
13 | - | |
14 | 11 | @RestController |
15 | 12 | @Log |
16 | 13 | public class TestController { |
14 | + @Autowired | |
15 | + public PushArticleTask pushArticleTask; | |
16 | + @Autowired | |
17 | + public PushArticleTaskData pushArticleTaskMySql; | |
18 | + @GetMapping("test0") | |
19 | + public void test0() { | |
20 | + pushArticleTask.pushArtcle(); | |
21 | + } | |
22 | + @GetMapping("test9") | |
23 | + public void test9() { | |
24 | + pushArticleTaskMySql.pushArtcleData(); | |
25 | + } | |
17 | 26 | |
18 | 27 | |
19 | 28 | // @Autowired |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsPushMessages.java
View file @
4fa7483
1 | +package com.lyms.talkonlineweb.domain; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.annotation.IdType; | |
4 | +import com.baomidou.mybatisplus.annotation.TableField; | |
5 | +import com.baomidou.mybatisplus.annotation.TableId; | |
6 | +import com.baomidou.mybatisplus.annotation.TableName; | |
7 | +import java.io.Serializable; | |
8 | +import java.util.Date; | |
9 | +import lombok.Data; | |
10 | + | |
11 | +/** | |
12 | + * 每天0点存入9点要推送的信息 | |
13 | + * @TableName lyms_push_messages | |
14 | + */ | |
15 | +@TableName(value ="lyms_push_messages") | |
16 | +@Data | |
17 | +public class LymsPushMessages implements Serializable { | |
18 | + /** | |
19 | + * | |
20 | + */ | |
21 | + @TableId(value = "id", type = IdType.AUTO) | |
22 | + private Integer id; | |
23 | + | |
24 | + /** | |
25 | + * 患者id | |
26 | + */ | |
27 | + @TableField(value = "pid") | |
28 | + private Integer pid; | |
29 | + | |
30 | + /** | |
31 | + * 患者名称 | |
32 | + */ | |
33 | + @TableField(value = "pname") | |
34 | + private String pname; | |
35 | + | |
36 | + /** | |
37 | + * 医院id | |
38 | + */ | |
39 | + @TableField(value = "hid") | |
40 | + private Integer hid; | |
41 | + | |
42 | + /** | |
43 | + * 医院名称 | |
44 | + */ | |
45 | + @TableField(value = "hname") | |
46 | + private String hname; | |
47 | + | |
48 | + /** | |
49 | + * 科室id | |
50 | + */ | |
51 | + @TableField(value = "did") | |
52 | + private Integer did; | |
53 | + | |
54 | + /** | |
55 | + * 科室名称 | |
56 | + */ | |
57 | + @TableField(value = "dname") | |
58 | + private String dname; | |
59 | + | |
60 | + /** | |
61 | + * 医生id | |
62 | + */ | |
63 | + @TableField(value = "dtid") | |
64 | + private Integer dtid; | |
65 | + | |
66 | + /** | |
67 | + * 医生名称 | |
68 | + */ | |
69 | + @TableField(value = "dtname") | |
70 | + private String dtname; | |
71 | + | |
72 | + /** | |
73 | + * 疾病id | |
74 | + */ | |
75 | + @TableField(value = "iid") | |
76 | + private Integer iid; | |
77 | + | |
78 | + /** | |
79 | + * 疾病名称 | |
80 | + */ | |
81 | + @TableField(value = "iname") | |
82 | + private String iname; | |
83 | + | |
84 | + /** | |
85 | + * 病例id | |
86 | + */ | |
87 | + @TableField(value = "ilid") | |
88 | + private Integer ilid; | |
89 | + | |
90 | + /** | |
91 | + * 患者关注公众号openid | |
92 | + */ | |
93 | + @TableField(value = "gzopenid") | |
94 | + private String gzopenid; | |
95 | + | |
96 | + /** | |
97 | + * 推送文章id | |
98 | + */ | |
99 | + @TableField(value = "aid") | |
100 | + private Integer aid; | |
101 | + | |
102 | + /** | |
103 | + * 推送文章标题 | |
104 | + */ | |
105 | + @TableField(value = "atitle") | |
106 | + private String atitle; | |
107 | + | |
108 | + /** | |
109 | + * 推送文章内容 | |
110 | + */ | |
111 | + @TableField(value = "acontent") | |
112 | + private String acontent; | |
113 | + | |
114 | + /** | |
115 | + * 推送文章的序号 | |
116 | + */ | |
117 | + @TableField(value = "serialNumber") | |
118 | + private Integer serialnumber; | |
119 | + | |
120 | + /** | |
121 | + * 推送短文字1的内容 | |
122 | + */ | |
123 | + @TableField(value = "weix_text_one") | |
124 | + private String weixTextOne; | |
125 | + | |
126 | + /** | |
127 | + * 推送短文字2的内容 | |
128 | + */ | |
129 | + @TableField(value = "weix_text_two") | |
130 | + private String weixTextTwo; | |
131 | + | |
132 | + /** | |
133 | + * 是否推送短文字1内容:0不推送 1推送 | |
134 | + */ | |
135 | + @TableField(value = "isweixin_one") | |
136 | + private Integer isweixinOne; | |
137 | + | |
138 | + /** | |
139 | + * 是否推送短文字2内容:0不推送 1推送 | |
140 | + */ | |
141 | + @TableField(value = "isweixin_two") | |
142 | + private Integer isweixinTwo; | |
143 | + | |
144 | + /** | |
145 | + * 已推送列表id(lyms_pushedart表) | |
146 | + */ | |
147 | + @TableField(value = "pushedart_id") | |
148 | + private Integer pushedartId; | |
149 | + | |
150 | + /** | |
151 | + * 计划推送日期 | |
152 | + */ | |
153 | + @TableField(value = "plan_time") | |
154 | + private Date planTime; | |
155 | + | |
156 | + @TableField(exist = false) | |
157 | + private static final long serialVersionUID = 1L; | |
158 | + | |
159 | + @Override | |
160 | + public boolean equals(Object that) { | |
161 | + if (this == that) { | |
162 | + return true; | |
163 | + } | |
164 | + if (that == null) { | |
165 | + return false; | |
166 | + } | |
167 | + if (getClass() != that.getClass()) { | |
168 | + return false; | |
169 | + } | |
170 | + LymsPushMessages other = (LymsPushMessages) that; | |
171 | + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) | |
172 | + && (this.getPid() == null ? other.getPid() == null : this.getPid().equals(other.getPid())) | |
173 | + && (this.getPname() == null ? other.getPname() == null : this.getPname().equals(other.getPname())) | |
174 | + && (this.getHid() == null ? other.getHid() == null : this.getHid().equals(other.getHid())) | |
175 | + && (this.getHname() == null ? other.getHname() == null : this.getHname().equals(other.getHname())) | |
176 | + && (this.getDid() == null ? other.getDid() == null : this.getDid().equals(other.getDid())) | |
177 | + && (this.getDname() == null ? other.getDname() == null : this.getDname().equals(other.getDname())) | |
178 | + && (this.getDtid() == null ? other.getDtid() == null : this.getDtid().equals(other.getDtid())) | |
179 | + && (this.getDtname() == null ? other.getDtname() == null : this.getDtname().equals(other.getDtname())) | |
180 | + && (this.getIid() == null ? other.getIid() == null : this.getIid().equals(other.getIid())) | |
181 | + && (this.getIname() == null ? other.getIname() == null : this.getIname().equals(other.getIname())) | |
182 | + && (this.getIlid() == null ? other.getIlid() == null : this.getIlid().equals(other.getIlid())) | |
183 | + && (this.getGzopenid() == null ? other.getGzopenid() == null : this.getGzopenid().equals(other.getGzopenid())) | |
184 | + && (this.getAid() == null ? other.getAid() == null : this.getAid().equals(other.getAid())) | |
185 | + && (this.getAtitle() == null ? other.getAtitle() == null : this.getAtitle().equals(other.getAtitle())) | |
186 | + && (this.getAcontent() == null ? other.getAcontent() == null : this.getAcontent().equals(other.getAcontent())) | |
187 | + && (this.getSerialnumber() == null ? other.getSerialnumber() == null : this.getSerialnumber().equals(other.getSerialnumber())) | |
188 | + && (this.getWeixTextOne() == null ? other.getWeixTextOne() == null : this.getWeixTextOne().equals(other.getWeixTextOne())) | |
189 | + && (this.getWeixTextTwo() == null ? other.getWeixTextTwo() == null : this.getWeixTextTwo().equals(other.getWeixTextTwo())) | |
190 | + && (this.getIsweixinOne() == null ? other.getIsweixinOne() == null : this.getIsweixinOne().equals(other.getIsweixinOne())) | |
191 | + && (this.getIsweixinTwo() == null ? other.getIsweixinTwo() == null : this.getIsweixinTwo().equals(other.getIsweixinTwo())) | |
192 | + && (this.getPlanTime() == null ? other.getPlanTime() == null : this.getPlanTime().equals(other.getPlanTime())); | |
193 | + } | |
194 | + | |
195 | + @Override | |
196 | + public int hashCode() { | |
197 | + final int prime = 31; | |
198 | + int result = 1; | |
199 | + result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); | |
200 | + result = prime * result + ((getPid() == null) ? 0 : getPid().hashCode()); | |
201 | + result = prime * result + ((getPname() == null) ? 0 : getPname().hashCode()); | |
202 | + result = prime * result + ((getHid() == null) ? 0 : getHid().hashCode()); | |
203 | + result = prime * result + ((getHname() == null) ? 0 : getHname().hashCode()); | |
204 | + result = prime * result + ((getDid() == null) ? 0 : getDid().hashCode()); | |
205 | + result = prime * result + ((getDname() == null) ? 0 : getDname().hashCode()); | |
206 | + result = prime * result + ((getDtid() == null) ? 0 : getDtid().hashCode()); | |
207 | + result = prime * result + ((getDtname() == null) ? 0 : getDtname().hashCode()); | |
208 | + result = prime * result + ((getIid() == null) ? 0 : getIid().hashCode()); | |
209 | + result = prime * result + ((getIname() == null) ? 0 : getIname().hashCode()); | |
210 | + result = prime * result + ((getIlid() == null) ? 0 : getIlid().hashCode()); | |
211 | + result = prime * result + ((getGzopenid() == null) ? 0 : getGzopenid().hashCode()); | |
212 | + result = prime * result + ((getAid() == null) ? 0 : getAid().hashCode()); | |
213 | + result = prime * result + ((getAtitle() == null) ? 0 : getAtitle().hashCode()); | |
214 | + result = prime * result + ((getAcontent() == null) ? 0 : getAcontent().hashCode()); | |
215 | + result = prime * result + ((getSerialnumber() == null) ? 0 : getSerialnumber().hashCode()); | |
216 | + result = prime * result + ((getWeixTextOne() == null) ? 0 : getWeixTextOne().hashCode()); | |
217 | + result = prime * result + ((getWeixTextTwo() == null) ? 0 : getWeixTextTwo().hashCode()); | |
218 | + result = prime * result + ((getIsweixinOne() == null) ? 0 : getIsweixinOne().hashCode()); | |
219 | + result = prime * result + ((getIsweixinTwo() == null) ? 0 : getIsweixinTwo().hashCode()); | |
220 | + result = prime * result + ((getPlanTime() == null) ? 0 : getPlanTime().hashCode()); | |
221 | + return result; | |
222 | + } | |
223 | + | |
224 | + @Override | |
225 | + public String toString() { | |
226 | + StringBuilder sb = new StringBuilder(); | |
227 | + sb.append(getClass().getSimpleName()); | |
228 | + sb.append(" ["); | |
229 | + sb.append("Hash = ").append(hashCode()); | |
230 | + sb.append(", id=").append(id); | |
231 | + sb.append(", pid=").append(pid); | |
232 | + sb.append(", pname=").append(pname); | |
233 | + sb.append(", hid=").append(hid); | |
234 | + sb.append(", hname=").append(hname); | |
235 | + sb.append(", did=").append(did); | |
236 | + sb.append(", dname=").append(dname); | |
237 | + sb.append(", dtid=").append(dtid); | |
238 | + sb.append(", dtname=").append(dtname); | |
239 | + sb.append(", iid=").append(iid); | |
240 | + sb.append(", iname=").append(iname); | |
241 | + sb.append(", ilid=").append(ilid); | |
242 | + sb.append(", gzopenid=").append(gzopenid); | |
243 | + sb.append(", aid=").append(aid); | |
244 | + sb.append(", atitle=").append(atitle); | |
245 | + sb.append(", acontent=").append(acontent); | |
246 | + sb.append(", serialnumber=").append(serialnumber); | |
247 | + sb.append(", weixTextOne=").append(weixTextOne); | |
248 | + sb.append(", weixTextTwo=").append(weixTextTwo); | |
249 | + sb.append(", isweixinOne=").append(isweixinOne); | |
250 | + sb.append(", isweixinTwo=").append(isweixinTwo); | |
251 | + sb.append(", planTime=").append(planTime); | |
252 | + sb.append(", serialVersionUID=").append(serialVersionUID); | |
253 | + sb.append("]"); | |
254 | + return sb.toString(); | |
255 | + } | |
256 | +} |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsPushedart.java
View file @
4fa7483
... | ... | @@ -54,13 +54,13 @@ |
54 | 54 | /** |
55 | 55 | * 是否推送短消息1(0否,1是) |
56 | 56 | */ |
57 | - @TableField(value = "isweixinone") | |
57 | + @TableField(value = "isweixin_one") | |
58 | 58 | private Integer isweixinone; |
59 | 59 | |
60 | 60 | /** |
61 | 61 | * 是否推送短消息2(0否,1是) |
62 | 62 | */ |
63 | - @TableField(value = "isweixintwo") | |
63 | + @TableField(value = "isweixin_two") | |
64 | 64 | private Integer isweixintwo; |
65 | 65 | |
66 | 66 | @TableField(exist = false) |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/PushArticle.java
View file @
4fa7483
... | ... | @@ -18,8 +18,8 @@ |
18 | 18 | /** |
19 | 19 | * 患者id |
20 | 20 | */ |
21 | - @TableField(value = "id") | |
22 | - private Integer id; | |
21 | + @TableField(value = "pid") | |
22 | + private Integer pid; | |
23 | 23 | |
24 | 24 | /** |
25 | 25 | * 患者姓名 |
... | ... | @@ -165,6 +165,30 @@ |
165 | 165 | @TableField(value = "weixTextTwo") |
166 | 166 | private String weixTextTwo; |
167 | 167 | |
168 | + /** | |
169 | + * 患者关注公众号openid | |
170 | + */ | |
171 | + @TableField(value = "gzopenid") | |
172 | + private String gzopenid; | |
173 | + | |
174 | + /** | |
175 | + * 推送文章标题 | |
176 | + */ | |
177 | + @TableField(value = "atitle") | |
178 | + private String atitle; | |
179 | + | |
180 | + /** | |
181 | + * 推送文章内容 | |
182 | + */ | |
183 | + @TableField(value = "acontent") | |
184 | + private String acontent; | |
185 | + | |
186 | + /** | |
187 | + * 推送文章的序号 | |
188 | + */ | |
189 | + @TableField(value = "serialNumber") | |
190 | + private Integer serialnumber; | |
191 | + | |
168 | 192 | @TableField(exist = false) |
169 | 193 | private static final long serialVersionUID = 1L; |
170 | 194 | |
... | ... | @@ -180,7 +204,7 @@ |
180 | 204 | return false; |
181 | 205 | } |
182 | 206 | PushArticle other = (PushArticle) that; |
183 | - return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) | |
207 | + return (this.getPid() == null ? other.getPid() == null : this.getPid().equals(other.getPid())) | |
184 | 208 | && (this.getPname() == null ? other.getPname() == null : this.getPname().equals(other.getPname())) |
185 | 209 | && (this.getIdno() == null ? other.getIdno() == null : this.getIdno().equals(other.getIdno())) |
186 | 210 | && (this.getPpasswd() == null ? other.getPpasswd() == null : this.getPpasswd().equals(other.getPpasswd())) |
... | ... | @@ -209,7 +233,7 @@ |
209 | 233 | public int hashCode() { |
210 | 234 | final int prime = 31; |
211 | 235 | int result = 1; |
212 | - result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); | |
236 | + result = prime * result + ((getPid() == null) ? 0 : getPid().hashCode()); | |
213 | 237 | result = prime * result + ((getPname() == null) ? 0 : getPname().hashCode()); |
214 | 238 | result = prime * result + ((getIdno() == null) ? 0 : getIdno().hashCode()); |
215 | 239 | result = prime * result + ((getPpasswd() == null) ? 0 : getPpasswd().hashCode()); |
... | ... | @@ -241,7 +265,7 @@ |
241 | 265 | sb.append(getClass().getSimpleName()); |
242 | 266 | sb.append(" ["); |
243 | 267 | sb.append("Hash = ").append(hashCode()); |
244 | - sb.append(", id=").append(id); | |
268 | + sb.append(", pid=").append(pid); | |
245 | 269 | sb.append(", pname=").append(pname); |
246 | 270 | sb.append(", idno=").append(idno); |
247 | 271 | sb.append(", ppasswd=").append(ppasswd); |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsPushMessagesMapper.java
View file @
4fa7483
1 | +package com.lyms.talkonlineweb.mapper; | |
2 | + | |
3 | +import com.lyms.talkonlineweb.domain.LymsPushMessages; | |
4 | +import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |
5 | + | |
6 | +/** | |
7 | + * @Entity com.lyms.talkonlineweb.domain.LymsPushMessages | |
8 | + */ | |
9 | +public interface LymsPushMessagesMapper extends BaseMapper<LymsPushMessages> { | |
10 | + | |
11 | +} |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/LymsPushMessagesService.java
View file @
4fa7483
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsPushMessagesServiceImpl.java
View file @
4fa7483
1 | +package com.lyms.talkonlineweb.service.impl; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |
4 | +import com.lyms.talkonlineweb.domain.LymsPushMessages; | |
5 | +import com.lyms.talkonlineweb.service.LymsPushMessagesService; | |
6 | +import com.lyms.talkonlineweb.mapper.LymsPushMessagesMapper; | |
7 | +import org.springframework.stereotype.Service; | |
8 | + | |
9 | +/** | |
10 | + * | |
11 | + */ | |
12 | +@Service | |
13 | +public class LymsPushMessagesServiceImpl extends ServiceImpl<LymsPushMessagesMapper, LymsPushMessages> | |
14 | + implements LymsPushMessagesService{ | |
15 | + | |
16 | +} |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/AccessTokenServlet.java
View file @
4fa7483
1 | 1 | package com.lyms.talkonlineweb.task; |
2 | 2 | |
3 | +import com.alibaba.fastjson.JSONObject; | |
4 | +import com.lyms.talkonlineweb.util.HttpUtil; | |
5 | +import com.lyms.talkonlineweb.util.StringUtil; | |
6 | +import com.lyms.talkonlineweb.util.WeiXinUtil; | |
3 | 7 | import org.springframework.stereotype.Component; |
4 | 8 | |
5 | 9 | import javax.annotation.PostConstruct; |
6 | 10 | import javax.servlet.ServletException; |
7 | 11 | import javax.servlet.http.HttpServlet; |
8 | 12 | |
13 | +/** | |
14 | + * 获取到access_token | |
15 | + * 每1小时59获取一次token,保证长期有效。 | |
16 | + * (微信公众号规定2小时token失效,每天只能获取2000次。) | |
17 | + */ | |
9 | 18 | @Component |
10 | -public class AccessTokenServlet extends HttpServlet { | |
11 | - final String appId ="wxd3c36244d006cb90";//公众号appid | |
12 | - final String appSecret ="fc80b5dd03a581a088adcd2c65a7e10a";//公众号AppSecret | |
19 | +public class AccessTokenServlet extends HttpServlet implements Runnable { | |
20 | + private final String appId ="wxd3c36244d006cb90";//公众号appid | |
21 | + private final String appSecret ="fc80b5dd03a581a088adcd2c65a7e10a";//公众号AppSecret | |
22 | + public static String accessToken = null; | |
13 | 23 | |
14 | 24 | /** |
15 | - * 启动后开启线程每1小时59获取一次token,保证长期有效。(微信公众号规定2小时token失效,每天只能获取2000次。) | |
25 | + * 启动后开启线程每1小时59获取一次token | |
16 | 26 | * @throws ServletException |
17 | 27 | */ |
18 | - @PostConstruct//部署后启动方法 | |
28 | + @PostConstruct//部署时开启注释,启动线程 | |
19 | 29 | public void init() throws ServletException { |
20 | - TokenThread.appId = appId; | |
21 | - TokenThread.appSecret = appSecret; | |
22 | - new Thread(new TokenThread()).start(); //启动进程 | |
30 | + new Thread(new AccessTokenServlet()).start(); //启动线程 | |
31 | + } | |
32 | + public void run(){ | |
33 | + while (true){ | |
34 | + try{ | |
35 | + accessToken = this.getToken(); | |
36 | + if(null!=accessToken){ | |
37 | + Thread.sleep(1000 * 7000); //获取到access_token 休眠7000秒 | |
38 | + }else{ | |
39 | + Thread.sleep(1000 * 3); //获取的access_token为空 休眠3秒 | |
40 | + } | |
41 | + }catch(Exception e){ | |
42 | + System.out.println("发生异常:"+e.getMessage()); | |
43 | + e.printStackTrace(); | |
44 | + try{ | |
45 | + Thread.sleep(1000 * 10); //发生异常休眠1秒 | |
46 | + }catch (Exception e1){ | |
47 | + | |
48 | + } | |
49 | + } | |
50 | + } | |
51 | + } | |
52 | + | |
53 | + /** | |
54 | + * 获取token | |
55 | + * 微信公众号 | |
56 | + * @return token | |
57 | + */ | |
58 | + public String getToken() { | |
59 | + // 授予形式 | |
60 | + String grant_type = "client_credential"; | |
61 | + // 接口地址拼接参数 | |
62 | + String getTokenApi = "https://api.weixin.qq.com/cgi-bin/token?grant_type=" + grant_type + "&appid=" + appId | |
63 | + + "&secret=" + appSecret; | |
64 | + String tokenJsonStr = WeiXinUtil.repeatDoGetPost(getTokenApi, "GET", null); | |
65 | + if(StringUtil.isEmpty(tokenJsonStr)){ | |
66 | + System.out.println("获取TOKEN :失败,repeatDoGetPost返回值为空>>>>>>>"); | |
67 | + return null; | |
68 | + } | |
69 | + JSONObject tokenJson = JSONObject.parseObject(tokenJsonStr); | |
70 | + String token = tokenJson.get("access_token").toString(); | |
71 | + System.out.println("获取到的TOKEN : " + token); | |
72 | + return token; | |
23 | 73 | } |
24 | 74 | } |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/PushArticleTask.java
View file @
4fa7483
... | ... | @@ -2,14 +2,20 @@ |
2 | 2 | |
3 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
4 | 4 | import com.lyms.talkonlineweb.domain.*; |
5 | +import com.lyms.talkonlineweb.result.BaseResponse; | |
5 | 6 | import com.lyms.talkonlineweb.service.*; |
7 | +import com.lyms.talkonlineweb.util.DateUtil; | |
6 | 8 | import com.lyms.talkonlineweb.util.StringUtil; |
7 | 9 | import com.lyms.talkonlineweb.util.WeiXinUtil; |
10 | +import lombok.Data; | |
8 | 11 | import lombok.extern.log4j.Log4j2; |
9 | 12 | import org.springframework.beans.factory.annotation.Autowired; |
13 | +import org.springframework.scheduling.annotation.Scheduled; | |
10 | 14 | import org.springframework.stereotype.Component; |
11 | 15 | import java.util.*; |
12 | 16 | |
17 | +import static com.lyms.talkonlineweb.util.DateUtil.YYYY_MM_DD; | |
18 | + | |
13 | 19 | /** |
14 | 20 | * 推送文章任务 |
15 | 21 | */ |
16 | 22 | |
17 | 23 | |
18 | 24 | |
19 | 25 | |
20 | 26 | |
21 | 27 | |
22 | 28 | |
23 | 29 | |
24 | 30 | |
25 | 31 | |
26 | 32 | |
27 | 33 | |
... | ... | @@ -28,58 +34,104 @@ |
28 | 34 | private PushArticleService pushArticleService;//推送文章新逻辑shiy改 |
29 | 35 | |
30 | 36 | @Autowired |
37 | + LymsPushMessagesService lymsPushMessagesService; | |
38 | + | |
39 | + @Autowired | |
31 | 40 | private LymsDictService lymsDictService; |
32 | - final String gzopenid ="oQEmP6uq2pUQ80NctiX3GnFxDMn8";//测试:公众号关注的微信openId | |
33 | - final String template_id ="";//测试:公众号模板id | |
34 | 41 | |
35 | -// @Scheduled(initialDelay=10000, fixedRate=30000) | |
42 | + final String gzopenid ="oQEmP6rFmf0lOb--mUf4_MAZPXEQ";//测试:公众号关注的微信openId | |
43 | + final String template_id ="ZDxcRDJ3okC9Lbzpfhr_v4e8W1VWrho-f5uHW_VZHTg";//公众号模板:诊后注意事项id | |
44 | + | |
45 | + @Scheduled(cron = "0 0 9 * * ?")//每天上午9点执行文章推送 | |
36 | 46 | public void pushArtcle(){ |
47 | + String token= AccessTokenServlet.accessToken; | |
37 | 48 | Map<String,Object> param=new HashMap<>(); |
38 | 49 | param.put("vtype",999); |
39 | 50 | List<LymsDict> dcLst=lymsDictService.listByMap(param); |
40 | 51 | if (dcLst.size()>0 && dcLst.get(0).getCode()==1){ |
41 | 52 | log.debug("开始给患者推送文章>>>>>>"); |
42 | - List<PushArticle> pushArticle=pushArticleService.list(); | |
43 | - for (PushArticle article : pushArticle) { | |
53 | + //从LymsPushMessages记录表查询今天0点筛选出要推送的文章 | |
54 | + QueryWrapper<LymsPushMessages> queryWrapper = new QueryWrapper<>(); | |
55 | + queryWrapper.apply("TO_DAYS(plan_time) = TO_DAYS(NOW())"); | |
56 | + List<LymsPushMessages> lymsPushMessages=lymsPushMessagesService.list(queryWrapper); | |
57 | + for (LymsPushMessages lymsPushMessage : lymsPushMessages) { | |
58 | + //推送的文章在LymsPushedart做记录。用于患者读取推送的文章 | |
44 | 59 | LymsPushedart pushedart=new LymsPushedart(); |
45 | - pushedart.setPid(article.getId()); | |
46 | - pushedart.setAid(article.getAid()); | |
60 | + pushedart.setPid(lymsPushMessage.getPid()); | |
61 | + pushedart.setAid(lymsPushMessage.getAid()); | |
47 | 62 | pushedart.setCreatedtime(new Date()); |
48 | 63 | pushedart.setIsread((byte) 0); |
49 | - //查询推送文章后短文字推送状态 | |
50 | - QueryWrapper<LymsPushedart> queryWrapper=new QueryWrapper<>(); | |
51 | - queryWrapper.eq("pid", article.getId()); | |
52 | - queryWrapper.eq("aid", article.getAid()); | |
53 | - LymsPushedart lymsPushedart = lymsPushedartService.getOne(queryWrapper); | |
54 | - if(null!=lymsPushedart){ | |
55 | - pushedart.setId(lymsPushedart.getId()); | |
56 | - if(lymsPushedart.getIsweixinone()==0){ | |
57 | - if(StringUtil.isEmpty(TokenThread.accessToken)){ | |
58 | - log.info("获取token失败。。。"+article.getDtname()+":短消息1推送失败"); | |
64 | + //PushedartId(如果null表示需要推送文章,否则需要推送短消息) | |
65 | + if(null!=lymsPushMessage.getPushedartId()){ | |
66 | + pushedart.setId(lymsPushMessage.getPushedartId()); | |
67 | + if(lymsPushMessage.getIsweixinOne()==1){ | |
68 | + if(StringUtil.isEmpty(token)){ | |
69 | + log.info("推送短消息1,获取token失败。。。"); | |
59 | 70 | continue; |
60 | 71 | } |
61 | 72 | //推送微信消息1 |
62 | 73 | Map<String,Object> map=new HashMap<>(); |
63 | - map.put("data", article.getWeixTextOne()); | |
64 | - WeiXinUtil.SendWeChatMsg(TokenThread.accessToken, gzopenid, template_id,map); | |
74 | + map.put("first",new DataEntity(lymsPushMessage.getWeixTextOne(),"#173177")); | |
75 | + map.put("keyword1",new DataEntity(lymsPushMessage.getPname(),"#173177")); | |
76 | + map.put("keyword2",new DataEntity(lymsPushMessage.getHname(),"#173177")); | |
77 | + map.put("keyword3",new DataEntity(lymsPushMessage.getDname(),"#173177")); | |
78 | + map.put("remark",new DataEntity("预祝您早日康复","#173177")); | |
79 | + Integer code= WeiXinUtil.SendWeChatMsg(token,gzopenid,template_id,map); | |
80 | + if(null==code||code!=0){ | |
81 | + log.info("推送短消息1失败。。。"+lymsPushMessage.getPname()+"; code:"+code); | |
82 | + continue; | |
83 | + } | |
65 | 84 | //成功标记记录1 |
66 | - pushedart.setIsweixinone(1); | |
67 | - }else if (lymsPushedart.getIsweixintwo()==0){ | |
68 | - if(StringUtil.isEmpty(TokenThread.accessToken)){ | |
69 | - log.info("获取token失败。。。"+article.getDtname()+":短消息2推送失败"); | |
85 | + pushedart.setIsweixinone(1);//0未推送1已推送 | |
86 | + }else if(lymsPushMessage.getIsweixinTwo()==1){ | |
87 | + if(StringUtil.isEmpty(token)){ | |
88 | + log.info("推送短消息2,获取token失败。。。"); | |
70 | 89 | continue; |
71 | 90 | } |
72 | 91 | //推送微信消息2 |
73 | 92 | Map<String,Object> map=new HashMap<>(); |
74 | - map.put("data", article.getWeixTextTwo()); | |
75 | - WeiXinUtil.SendWeChatMsg(TokenThread.accessToken, gzopenid, template_id,map); | |
93 | + map.put("first",new DataEntity(lymsPushMessage.getWeixTextTwo(),"#173177")); | |
94 | + map.put("keyword1",new DataEntity(lymsPushMessage.getPname(),"#173177")); | |
95 | + map.put("keyword2",new DataEntity(lymsPushMessage.getHname(),"#173177")); | |
96 | + map.put("keyword3",new DataEntity(lymsPushMessage.getDname(),"#173177")); | |
97 | + map.put("remark",new DataEntity("预祝您早日康复","#173177")); | |
98 | + Integer code= WeiXinUtil.SendWeChatMsg(token,gzopenid,template_id,map); | |
99 | + if(null==code||code!=0){ | |
100 | + log.info("推送短消息2失败。。。"+lymsPushMessage.getPname()+"; code:"+code); | |
101 | + continue; | |
102 | + } | |
76 | 103 | //成功标记记录2 |
77 | - pushedart.setIsweixintwo(1); | |
104 | + pushedart.setIsweixintwo(1);//0未推送1已推送 | |
78 | 105 | } |
79 | 106 | } |
80 | - lymsPushedartService.saveOrUpdate(pushedart);//插入到提送记录 | |
107 | + //插入or更新到LymsPushedart记录 | |
108 | + boolean b = lymsPushedartService.saveOrUpdate(pushedart); | |
109 | + if (b) { | |
110 | + if(null!=pushedart.getIsweixinone()&&pushedart.getIsweixinone()==1){ | |
111 | + log.info("推送短文字1给:" + lymsPushMessage.getPname() + "成功!"); | |
112 | + }else if(null!=pushedart.getIsweixintwo()&&pushedart.getIsweixintwo()==1){ | |
113 | + log.info("推送短文字2给:" + lymsPushMessage.getPname() + "成功!"); | |
114 | + } | |
115 | + log.info("推送文章给:" + lymsPushMessage.getPname() + "成功!"); | |
116 | + } else { | |
117 | + log.info("推送文章给:" + lymsPushMessage.getPname() + "失败:插入or更新到LymsPushedart记录返回false>>>>>>>>>"); | |
118 | + } | |
81 | 119 | } |
82 | 120 | } |
121 | + } | |
122 | + | |
123 | + | |
124 | +} | |
125 | +@Data | |
126 | +class DataEntity { | |
127 | + //内容 | |
128 | + private String value; | |
129 | + //字体颜色 | |
130 | + private String color; | |
131 | + | |
132 | + public DataEntity(String value ,String color){ | |
133 | + this.value = value; | |
134 | + this.color = color; | |
83 | 135 | } |
84 | 136 | } |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/PushArticleTaskData.java
View file @
4fa7483
1 | +package com.lyms.talkonlineweb.task; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |
4 | +import com.lyms.talkonlineweb.domain.LymsDict; | |
5 | +import com.lyms.talkonlineweb.domain.LymsPushMessages; | |
6 | +import com.lyms.talkonlineweb.domain.LymsPushedart; | |
7 | +import com.lyms.talkonlineweb.domain.PushArticle; | |
8 | +import com.lyms.talkonlineweb.service.*; | |
9 | +import com.lyms.talkonlineweb.util.DateUtil; | |
10 | +import com.lyms.talkonlineweb.util.StringUtil; | |
11 | +import com.lyms.talkonlineweb.util.WeiXinUtil; | |
12 | +import lombok.Data; | |
13 | +import lombok.extern.log4j.Log4j2; | |
14 | +import org.springframework.beans.BeanUtils; | |
15 | +import org.springframework.beans.factory.annotation.Autowired; | |
16 | +import org.springframework.scheduling.annotation.Scheduled; | |
17 | +import org.springframework.stereotype.Component; | |
18 | +import org.springframework.util.unit.DataUnit; | |
19 | + | |
20 | +import java.util.*; | |
21 | + | |
22 | +import static com.lyms.talkonlineweb.util.DateUtil.YYYY_MM_DD; | |
23 | + | |
24 | +/** | |
25 | + * 推送文章任务 | |
26 | + */ | |
27 | + | |
28 | +@Component | |
29 | +@Log4j2 | |
30 | +public class PushArticleTaskData { | |
31 | + | |
32 | + @Autowired | |
33 | + private LymsArticleService lymsArticleService; | |
34 | + @Autowired | |
35 | + private PatientInfoService patientInfoService; | |
36 | + @Autowired | |
37 | + private LymsPushedartService lymsPushedartService;//推送的历史记录 | |
38 | + @Autowired | |
39 | + private PushArticleService pushArticleService;//推送文章新逻辑shiy改 | |
40 | + @Autowired | |
41 | + LymsPushMessagesService lymsPushMessagesService; | |
42 | + @Autowired | |
43 | + private LymsDictService lymsDictService; | |
44 | + | |
45 | + | |
46 | + @Scheduled(cron = "0 0 0 * * ?")//每天0点执行-要推送的文章存到数据库 | |
47 | + public void pushArtcleData(){ | |
48 | + Map<String,Object> param=new HashMap<>(); | |
49 | + param.put("vtype",999); | |
50 | + List<LymsDict> dcLst=lymsDictService.listByMap(param); | |
51 | + if (dcLst.size()>0 && dcLst.get(0).getCode()==1){ | |
52 | + log.info("开始筛选"+(DateUtil.getDateTime(new Date(), YYYY_MM_DD))+"要推送的文章存入mysql>>>>>>"); | |
53 | + //筛选出需要推送的文章信息-(逻辑详见视图) | |
54 | + List<PushArticle> pushArticleList=pushArticleService.list(); | |
55 | + for (PushArticle article : pushArticleList) { | |
56 | + //需要推送文章的对象 | |
57 | + LymsPushMessages lymsPushMessages=new LymsPushMessages(); | |
58 | + BeanUtils.copyProperties(article,lymsPushMessages); | |
59 | + //查询推已推送的文章(如果null表示需要推送文章,否则需要推送短消息) | |
60 | + QueryWrapper<LymsPushedart> queryWrapper=new QueryWrapper<>(); | |
61 | + queryWrapper.eq("pid", lymsPushMessages.getPid()); | |
62 | + queryWrapper.eq("aid", lymsPushMessages.getAid()); | |
63 | + LymsPushedart lymsPushedart = lymsPushedartService.getOne(queryWrapper); | |
64 | + if(null!=lymsPushedart){ | |
65 | + //每次只推送一条短消息,判断推送短消息1还是2 | |
66 | + if(lymsPushedart.getIsweixinone()==0){//0未推送1已推送 | |
67 | + //标记要推送的记录需要推送短消息1 | |
68 | + lymsPushMessages.setIsweixinOne(1); | |
69 | + //存入已推送文章列表id | |
70 | + lymsPushMessages.setPushedartId(lymsPushedart.getId()); | |
71 | + }else if (lymsPushedart.getIsweixintwo()==0){//0未推送1已推送 | |
72 | + //标记要推送的记录需要推送短消息2 | |
73 | + lymsPushMessages.setIsweixinTwo(1); | |
74 | + //存入已推送文章列表id | |
75 | + lymsPushMessages.setPushedartId(lymsPushedart.getId()); | |
76 | + } | |
77 | + } | |
78 | + //保存到要推送的表lyms_push_messages | |
79 | + lymsPushMessagesService.save(lymsPushMessages); | |
80 | + } | |
81 | + } | |
82 | + } | |
83 | + | |
84 | +} |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/TokenThread.java
View file @
4fa7483
1 | -package com.lyms.talkonlineweb.task; | |
2 | - | |
3 | -import com.alibaba.fastjson.JSONObject; | |
4 | -import com.lyms.talkonlineweb.util.HttpUtil; | |
5 | - | |
6 | -public class TokenThread implements Runnable{ | |
7 | - public static String appId = "wxd3c36244d006cb90"; | |
8 | - | |
9 | - public static String appSecret= "fc80b5dd03a581a088adcd2c65a7e10a"; | |
10 | - | |
11 | - public static String accessToken = null; | |
12 | - | |
13 | - public void run(){ | |
14 | - while (true){ | |
15 | - try{ | |
16 | - accessToken = this.getToken(); | |
17 | - if(null!=accessToken){ | |
18 | - System.out.println(accessToken); | |
19 | - Thread.sleep(7000 * 1000); //获取到access_token 休眠7000秒 | |
20 | - | |
21 | - }else{ | |
22 | - Thread.sleep(1000*3); //获取的access_token为空 休眠3秒 | |
23 | - } | |
24 | - }catch(Exception e){ | |
25 | - System.out.println("发生异常:"+e.getMessage()); | |
26 | - e.printStackTrace(); | |
27 | - try{ | |
28 | - Thread.sleep(1000*10); //发生异常休眠1秒 | |
29 | - }catch (Exception e1){ | |
30 | - | |
31 | - } | |
32 | - } | |
33 | - } | |
34 | - } | |
35 | - | |
36 | - | |
37 | - /** | |
38 | - * 获取token | |
39 | - * 微信公众号 | |
40 | - * @return token | |
41 | - */ | |
42 | - public String getToken() { | |
43 | - // 授予形式 | |
44 | - String grant_type = "client_credential"; | |
45 | - // 接口地址拼接参数 | |
46 | - String getTokenApi = "https://api.weixin.qq.com/cgi-bin/token?grant_type=" + grant_type + "&appid=" + this.appId | |
47 | - + "&secret=" + this.appSecret; | |
48 | - String tokenJsonStr = HttpUtil.doGetPost(getTokenApi, "GET", null); | |
49 | - JSONObject tokenJson = JSONObject.parseObject(tokenJsonStr); | |
50 | - String token = tokenJson.get("access_token").toString(); | |
51 | - System.out.println("获取到的TOKEN : " + token); | |
52 | - return token; | |
53 | - } | |
54 | -} |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/DateUtil.java
View file @
4fa7483
... | ... | @@ -3,6 +3,7 @@ |
3 | 3 | import lombok.extern.slf4j.Slf4j; |
4 | 4 | |
5 | 5 | import java.text.DateFormat; |
6 | +import java.text.ParsePosition; | |
6 | 7 | import java.text.SimpleDateFormat; |
7 | 8 | import java.util.Date; |
8 | 9 | import java.util.concurrent.ConcurrentHashMap; |
... | ... | @@ -75,5 +76,6 @@ |
75 | 76 | SimpleDateFormat fm = new SimpleDateFormat("yyMMddHHmmss"); |
76 | 77 | return fm.format(new Date()); |
77 | 78 | } |
79 | + | |
78 | 80 | } |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/WeiXinUtil.java
View file @
4fa7483
1 | 1 | package com.lyms.talkonlineweb.util; |
2 | 2 | |
3 | +import com.alibaba.fastjson.JSON; | |
3 | 4 | import com.alibaba.fastjson.JSONObject; |
5 | +import com.lyms.talkonlineweb.result.BaseResponse; | |
4 | 6 | import lombok.extern.log4j.Log4j2; |
7 | +import org.springframework.util.CollectionUtils; | |
5 | 8 | |
6 | 9 | import java.util.HashMap; |
7 | 10 | import java.util.Map; |
... | ... | @@ -60,7 +63,7 @@ |
60 | 63 | * @param template_id 公众号消息模板id |
61 | 64 | * @param dataMap 推送内容消息主题显示相关map |
62 | 65 | */ |
63 | - public static void SendWeChatMsg(String token,String openid,String template_id,Map<String,Object> dataMap) { | |
66 | + public static Integer SendWeChatMsg(String token, String openid, String template_id, Map<String,Object> dataMap) { | |
64 | 67 | // 接口地址 |
65 | 68 | String sendMsgApi = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token; |
66 | 69 | //整体参数map |
... | ... | @@ -68,7 +71,33 @@ |
68 | 71 | paramMap.put("touser", openid); |
69 | 72 | paramMap.put("template_id", template_id); |
70 | 73 | paramMap.put("data", dataMap); |
71 | - System.out.println(HttpUtil.doGetPost(sendMsgApi,"POST",paramMap)); | |
74 | + String result= repeatDoGetPost(sendMsgApi,"POST",paramMap); | |
75 | + if(StringUtil.isEmpty(result)){ | |
76 | + return null; | |
77 | + } | |
78 | + Map<String,Object> resultMap = JSON.parseObject(result, HashMap.class); | |
79 | + return Integer.parseInt(resultMap.get("errcode").toString()); | |
80 | + | |
81 | + } | |
82 | + | |
83 | + /** | |
84 | + * 网络超时-重新发送3次 | |
85 | + */ | |
86 | + public static String repeatDoGetPost(String sendMsgApi,String type,Map<String,Object> paramMap) { | |
87 | + for (int i = 1; i <= 3; i++) { | |
88 | + String result=HttpUtil.doGetPost(sendMsgApi,type,paramMap); | |
89 | + if (StringUtil.isEmpty(result)) { | |
90 | + try{ | |
91 | + Thread.sleep(1000); | |
92 | + } catch (Exception e){ | |
93 | + e.printStackTrace(); | |
94 | + } | |
95 | + continue; | |
96 | + } else { | |
97 | + return result; | |
98 | + } | |
99 | + } | |
100 | + return null; | |
72 | 101 | } |
73 | 102 | |
74 | 103 | } |
talkonlineweb/src/main/resources/mapper/LymsPushMessagesMapper.xml
View file @
4fa7483
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE mapper | |
3 | + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |
4 | + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
5 | +<mapper namespace="com.lyms.talkonlineweb.mapper.LymsPushMessagesMapper"> | |
6 | + | |
7 | + <resultMap id="BaseResultMap" type="com.lyms.talkonlineweb.domain.LymsPushMessages"> | |
8 | + <id property="id" column="id" jdbcType="INTEGER"/> | |
9 | + <result property="pid" column="pid" jdbcType="INTEGER"/> | |
10 | + <result property="pname" column="pname" jdbcType="VARCHAR"/> | |
11 | + <result property="hid" column="hid" jdbcType="INTEGER"/> | |
12 | + <result property="hname" column="hname" jdbcType="VARCHAR"/> | |
13 | + <result property="did" column="did" jdbcType="INTEGER"/> | |
14 | + <result property="dname" column="dname" jdbcType="VARCHAR"/> | |
15 | + <result property="dtid" column="dtid" jdbcType="INTEGER"/> | |
16 | + <result property="dtname" column="dtname" jdbcType="VARCHAR"/> | |
17 | + <result property="iid" column="iid" jdbcType="INTEGER"/> | |
18 | + <result property="iname" column="iname" jdbcType="VARCHAR"/> | |
19 | + <result property="ilid" column="ilid" jdbcType="INTEGER"/> | |
20 | + <result property="gzopenid" column="gzopenid" jdbcType="VARCHAR"/> | |
21 | + <result property="aid" column="aid" jdbcType="INTEGER"/> | |
22 | + <result property="atitle" column="atitle" jdbcType="VARCHAR"/> | |
23 | + <result property="acontent" column="acontent" jdbcType="VARCHAR"/> | |
24 | + <result property="serialnumber" column="serialNumber" jdbcType="INTEGER"/> | |
25 | + <result property="weixTextOne" column="weix_text_one" jdbcType="VARCHAR"/> | |
26 | + <result property="weixTextTwo" column="weix_text_two" jdbcType="VARCHAR"/> | |
27 | + <result property="isweixinOne" column="isweixin_one" jdbcType="INTEGER"/> | |
28 | + <result property="isweixinTwo" column="isweixin_two" jdbcType="INTEGER"/> | |
29 | + <result property="planTime" column="plan_time" jdbcType="TIMESTAMP"/> | |
30 | + </resultMap> | |
31 | + | |
32 | + <sql id="Base_Column_List"> | |
33 | + id,pid,pname, | |
34 | + hid,hname,did, | |
35 | + dname,dtid,dtname, | |
36 | + iid,iname,ilid, | |
37 | + gzopenid,aid,atitle, | |
38 | + acontent,serialNumber,weix_text_one, | |
39 | + weix_text_two,isweixin_one,isweixin_two, | |
40 | + plan_time | |
41 | + </sql> | |
42 | +</mapper> |