Commit 0d1fda3844d0c87deb9baa0f1729bd7ab0b25d6e
1 parent
d7dac5d8
Exists in
master
微信分享
Showing
8 changed files
with
440 additions
and
4 deletions
Show diff stats
src/main/java/com/sincere/student/controller/CommonController.java
1 | package com.sincere.student.controller; | 1 | package com.sincere.student.controller; |
2 | 2 | ||
3 | -import com.alibaba.fastjson.JSON; | 3 | +import com.alibaba.fastjson.JSONObject; |
4 | +import com.sincere.student.dto.BaseDto; | ||
4 | import com.sincere.student.dto.Province; | 5 | import com.sincere.student.dto.Province; |
6 | +import com.sincere.student.dto.WxSign; | ||
7 | +import com.sincere.student.model.AccessToken; | ||
5 | import com.sincere.student.model.Area; | 8 | import com.sincere.student.model.Area; |
9 | +import com.sincere.student.model.Token; | ||
6 | import com.sincere.student.service.CommonService; | 10 | import com.sincere.student.service.CommonService; |
11 | +import com.sincere.student.service.ParameterService; | ||
7 | import io.swagger.annotations.ApiOperation; | 12 | import io.swagger.annotations.ApiOperation; |
8 | import org.springframework.beans.factory.annotation.Autowired; | 13 | import org.springframework.beans.factory.annotation.Autowired; |
9 | import org.springframework.web.bind.annotation.RequestMapping; | 14 | import org.springframework.web.bind.annotation.RequestMapping; |
10 | import org.springframework.web.bind.annotation.RequestMethod; | 15 | import org.springframework.web.bind.annotation.RequestMethod; |
11 | import org.springframework.web.bind.annotation.RestController; | 16 | import org.springframework.web.bind.annotation.RestController; |
12 | 17 | ||
13 | -import java.util.ArrayList; | ||
14 | -import java.util.Arrays; | ||
15 | -import java.util.List; | 18 | +import java.io.*; |
19 | +import java.net.HttpURLConnection; | ||
20 | +import java.net.MalformedURLException; | ||
21 | +import java.net.URL; | ||
22 | +import java.net.URLConnection; | ||
23 | +import java.security.MessageDigest; | ||
24 | +import java.security.NoSuchAlgorithmException; | ||
25 | +import java.util.*; | ||
16 | 26 | ||
17 | @RestController | 27 | @RestController |
18 | @RequestMapping("/common") | 28 | @RequestMapping("/common") |
@@ -21,10 +31,65 @@ public class CommonController { | @@ -21,10 +31,65 @@ public class CommonController { | ||
21 | @Autowired | 31 | @Autowired |
22 | CommonService commonService ; | 32 | CommonService commonService ; |
23 | 33 | ||
34 | + @Autowired | ||
35 | + ParameterService parameterService ; | ||
36 | + | ||
24 | private static List<Area> list = new ArrayList<>(); | 37 | private static List<Area> list = new ArrayList<>(); |
25 | 38 | ||
26 | private static List<Province> provinces = new ArrayList<>(); | 39 | private static List<Province> provinces = new ArrayList<>(); |
27 | 40 | ||
41 | + @RequestMapping(value = "GetWxSign",method = RequestMethod.GET) | ||
42 | + @ApiOperation(value = "获取微信分享签名") | ||
43 | + public BaseDto<WxSign> GetWxSign(String url){ | ||
44 | + try { | ||
45 | + url = java.net.URLDecoder.decode(url, "UTF-8"); | ||
46 | + } catch (UnsupportedEncodingException e) { | ||
47 | + e.printStackTrace(); | ||
48 | + } | ||
49 | + url=url.replaceAll("\\+", "%2B"); | ||
50 | + BaseDto<WxSign> result=new BaseDto<>(); | ||
51 | +// String r=Get("http://114.55.30.100:1111/api/UserRegisterApp/GetWxShareSign","url="+url); | ||
52 | +// JSONObject jsonObject= JSONObject.parseObject(r); | ||
53 | +// String data = jsonObject.getString("result"); | ||
54 | +// WxSign wxSign=JSON.parseObject(data,new TypeReference<WxSign>(){}); | ||
55 | +// result.setData(wxSign); | ||
56 | + | ||
57 | + WxSign wxSign1=new WxSign(); | ||
58 | + wxSign1.setTimestamp(Long.toString(System.currentTimeMillis())); | ||
59 | + wxSign1.setNoncestr(UUID.randomUUID().toString()); | ||
60 | + AccessToken accessToken=parameterService.getAccessToken(); | ||
61 | + Token token=new Token(); | ||
62 | + if(accessToken!=null) { | ||
63 | + Calendar dateOne=Calendar.getInstance(); | ||
64 | + Calendar dateTwo=Calendar.getInstance(); | ||
65 | + dateOne.setTime(new Date()); | ||
66 | + dateTwo.setTime(accessToken.getCreateTime()); | ||
67 | + long timeOne=dateOne.getTimeInMillis(); | ||
68 | + long timeTwo=dateTwo.getTimeInMillis(); | ||
69 | + long minute=(timeOne-timeTwo)/(1000*60); | ||
70 | + | ||
71 | + if(minute<60) token.setAccess_token(accessToken.getAccessToken()); | ||
72 | + else{ | ||
73 | + token=getAccessToken("wx6078ff3f67524996","8a0465b8ad0f000f568f48853e2818c8"); | ||
74 | + accessToken.setAccessToken(token.getAccess_token()); | ||
75 | + parameterService.insertAccessToken(accessToken); | ||
76 | + } | ||
77 | + } | ||
78 | + else { | ||
79 | + token=getAccessToken("wx6078ff3f67524996","8a0465b8ad0f000f568f48853e2818c8"); | ||
80 | + accessToken=new AccessToken(); | ||
81 | + accessToken.setAccessToken(token.getAccess_token()); | ||
82 | + parameterService.insertAccessToken(accessToken); | ||
83 | + } | ||
84 | + String js=Get("https://api.weixin.qq.com/cgi-bin/ticket/getticket","type=jsapi&access_token="+token.getAccess_token()); | ||
85 | + JSONObject jsonObject= JSONObject.parseObject(js); | ||
86 | + wxSign1.setJsapi_ticket(jsonObject.getString("ticket")); | ||
87 | + String rawstring = "jsapi_ticket=" + wxSign1.getJsapi_ticket() + "&noncestr=" + wxSign1.getNoncestr() + "×tamp=" + wxSign1.getTimestamp() + "&url=" + url + ""; | ||
88 | + wxSign1.setSignature(SHA1(rawstring)); | ||
89 | + result.setData(wxSign1); | ||
90 | + return result; | ||
91 | + } | ||
92 | + | ||
28 | @ApiOperation("省份") | 93 | @ApiOperation("省份") |
29 | @RequestMapping(value = "getProvince",method = RequestMethod.GET) | 94 | @RequestMapping(value = "getProvince",method = RequestMethod.GET) |
30 | public List<Area> getProvince(){ | 95 | public List<Area> getProvince(){ |
@@ -115,4 +180,185 @@ public class CommonController { | @@ -115,4 +180,185 @@ public class CommonController { | ||
115 | List<String> list = Arrays.asList(array); | 180 | List<String> list = Arrays.asList(array); |
116 | return list ; | 181 | return list ; |
117 | } | 182 | } |
183 | + | ||
184 | + public String Get(String url, String param) { | ||
185 | + String result = ""; | ||
186 | + BufferedReader in = null; | ||
187 | + try { | ||
188 | + String urlNameString = url + "?" + param; | ||
189 | + URL realUrl = new URL(urlNameString); | ||
190 | + // 打开和URL之间的连接 | ||
191 | + URLConnection connection = realUrl.openConnection(); | ||
192 | + // 设置通用的请求属性 | ||
193 | + connection.setRequestProperty("accept", "*/*"); | ||
194 | + connection.setRequestProperty("connection", "Keep-Alive"); | ||
195 | + connection.setRequestProperty("user-agent", | ||
196 | + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); | ||
197 | + // 建立实际的连接 | ||
198 | + connection.connect(); | ||
199 | + // 获取所有响应头字段 | ||
200 | + Map<String, List<String>> map = connection.getHeaderFields(); | ||
201 | + // 遍历所有的响应头字段 | ||
202 | + for (String key : map.keySet()) { | ||
203 | + System.out.println(key + "--->" + map.get(key)); | ||
204 | + } | ||
205 | + // 定义 BufferedReader输入流来读取URL的响应 | ||
206 | + in = new BufferedReader(new InputStreamReader( | ||
207 | + connection.getInputStream(),"UTF-8")); | ||
208 | + String line; | ||
209 | + while ((line = in.readLine()) != null) { | ||
210 | + result += line; | ||
211 | + } | ||
212 | + } catch (Exception e) { | ||
213 | + System.out.println("发送GET请求出现异常!" + e); | ||
214 | + e.printStackTrace(); | ||
215 | + } | ||
216 | + // 使用finally块来关闭输入流 | ||
217 | + finally { | ||
218 | + try { | ||
219 | + if (in != null) { | ||
220 | + in.close(); | ||
221 | + } | ||
222 | + } catch (Exception e2) { | ||
223 | + e2.printStackTrace(); | ||
224 | + } | ||
225 | + } | ||
226 | + return result; | ||
227 | + } | ||
228 | + | ||
229 | + public String Post(String httpUrl, String param) | ||
230 | + { | ||
231 | + HttpURLConnection connection = null; | ||
232 | + InputStream is = null; | ||
233 | + OutputStream os = null; | ||
234 | + BufferedReader br = null; | ||
235 | + String result = null; | ||
236 | + try { | ||
237 | + URL url = new URL(httpUrl); | ||
238 | + // 通过远程url连接对象打开连接 | ||
239 | + connection = (HttpURLConnection) url.openConnection(); | ||
240 | + // 设置连接请求方式 | ||
241 | + connection.setRequestMethod("POST"); | ||
242 | + // 设置连接主机服务器超时时间:15000毫秒 | ||
243 | + connection.setConnectTimeout(15000); | ||
244 | + // 设置读取主机服务器返回数据超时时间:60000毫秒 | ||
245 | + connection.setReadTimeout(60000); | ||
246 | + | ||
247 | + // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true | ||
248 | + connection.setDoOutput(true); | ||
249 | + // 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无 | ||
250 | + connection.setDoInput(true); | ||
251 | + // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。 | ||
252 | + connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); | ||
253 | + | ||
254 | + // 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0 | ||
255 | + connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0"); | ||
256 | + | ||
257 | + // 通过连接对象获取一个输出流 | ||
258 | + os = connection.getOutputStream(); | ||
259 | + // 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的 | ||
260 | + os.write(param.getBytes()); | ||
261 | + // 通过连接对象获取一个输入流,向远程读取 | ||
262 | + if (connection.getResponseCode() == 200) { | ||
263 | + | ||
264 | + is = connection.getInputStream(); | ||
265 | + // 对输入流对象进行包装:charset根据工作项目组的要求来设置 | ||
266 | + br = new BufferedReader(new InputStreamReader(is, "UTF-8")); | ||
267 | + | ||
268 | + StringBuffer sbf = new StringBuffer(); | ||
269 | + String temp = null; | ||
270 | + // 循环遍历一行一行读取数据 | ||
271 | + while ((temp = br.readLine()) != null) { | ||
272 | + sbf.append(temp); | ||
273 | + sbf.append("\r\n"); | ||
274 | + } | ||
275 | + result = sbf.toString(); | ||
276 | + } | ||
277 | + } catch (MalformedURLException e) { | ||
278 | + e.printStackTrace(); | ||
279 | + } catch (IOException e) { | ||
280 | + e.printStackTrace(); | ||
281 | + } finally { | ||
282 | + // 关闭资源 | ||
283 | + if (null != br) { | ||
284 | + try { | ||
285 | + br.close(); | ||
286 | + } catch (IOException e) { | ||
287 | + e.printStackTrace(); | ||
288 | + } | ||
289 | + } | ||
290 | + if (null != os) { | ||
291 | + try { | ||
292 | + os.close(); | ||
293 | + } catch (IOException e) { | ||
294 | + e.printStackTrace(); | ||
295 | + } | ||
296 | + } | ||
297 | + if (null != is) { | ||
298 | + try { | ||
299 | + is.close(); | ||
300 | + } catch (IOException e) { | ||
301 | + e.printStackTrace(); | ||
302 | + } | ||
303 | + } | ||
304 | + // 断开与远程地址url的连接 | ||
305 | + connection.disconnect(); | ||
306 | + } | ||
307 | + return result; | ||
308 | + } | ||
309 | + | ||
310 | + public Token getAccessToken(String appID, String appScret) { | ||
311 | + Token token = new Token(); | ||
312 | + String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appID + "&secret=" | ||
313 | + + appScret; | ||
314 | + try { | ||
315 | + URL getUrl=new URL(url); | ||
316 | + HttpURLConnection http=(HttpURLConnection)getUrl.openConnection(); | ||
317 | + http.setRequestMethod("GET"); | ||
318 | + http.setRequestProperty("Content-Type", | ||
319 | + "application/x-www-form-urlencoded"); | ||
320 | + http.setDoOutput(true); | ||
321 | + http.setDoInput(true); | ||
322 | + | ||
323 | + | ||
324 | + http.connect(); | ||
325 | + InputStream is = http.getInputStream(); | ||
326 | + int size = is.available(); | ||
327 | + byte[] b = new byte[size]; | ||
328 | + is.read(b); | ||
329 | + | ||
330 | + String message = new String(b, "UTF-8"); | ||
331 | + JSONObject json = JSONObject.parseObject(message); | ||
332 | + token.setAccess_token(json.getString("access_token")); | ||
333 | + System.out.println(message); | ||
334 | + } catch (MalformedURLException e) { | ||
335 | + e.printStackTrace(); | ||
336 | + } catch (IOException e) { | ||
337 | + e.printStackTrace(); | ||
338 | + } | ||
339 | + return token; | ||
340 | + } | ||
341 | + | ||
342 | + public static String SHA1(String str) { | ||
343 | + try { | ||
344 | + MessageDigest digest = java.security.MessageDigest.getInstance("SHA-1"); //如果是SHA加密只需要将"SHA-1"改成"SHA"即可 | ||
345 | + digest.update(str.getBytes()); | ||
346 | + byte messageDigest[] = digest.digest(); | ||
347 | + // Create Hex String | ||
348 | + StringBuffer hexStr = new StringBuffer(); | ||
349 | + // 字节数组转换为 十六进制 数 | ||
350 | + for (int i = 0; i < messageDigest.length; i++) { | ||
351 | + String shaHex = Integer.toHexString(messageDigest[i] & 0xFF); | ||
352 | + if (shaHex.length() < 2) { | ||
353 | + hexStr.append(0); | ||
354 | + } | ||
355 | + hexStr.append(shaHex); | ||
356 | + } | ||
357 | + return hexStr.toString(); | ||
358 | + | ||
359 | + } catch (NoSuchAlgorithmException e) { | ||
360 | + e.printStackTrace(); | ||
361 | + } | ||
362 | + return null; | ||
363 | + } | ||
118 | } | 364 | } |
@@ -0,0 +1,68 @@ | @@ -0,0 +1,68 @@ | ||
1 | +package com.sincere.student.dto; | ||
2 | + | ||
3 | +import io.swagger.annotations.ApiModelProperty; | ||
4 | + | ||
5 | +public class WxSign { | ||
6 | + @ApiModelProperty(value = "时间戳") | ||
7 | + private String timestamp; | ||
8 | + | ||
9 | + @ApiModelProperty(value = "随机码") | ||
10 | + private String noncestr; | ||
11 | + | ||
12 | + @ApiModelProperty(value = "签名") | ||
13 | + private String signature; | ||
14 | + | ||
15 | + private String jsapi_ticket; | ||
16 | + | ||
17 | + private String sign_before; | ||
18 | + | ||
19 | + private String basictoken; | ||
20 | + | ||
21 | + public String getTimestamp() { | ||
22 | + return timestamp; | ||
23 | + } | ||
24 | + | ||
25 | + public void setTimestamp(String timestamp) { | ||
26 | + this.timestamp = timestamp; | ||
27 | + } | ||
28 | + | ||
29 | + public String getNoncestr() { | ||
30 | + return noncestr; | ||
31 | + } | ||
32 | + | ||
33 | + public void setNoncestr(String noncestr) { | ||
34 | + this.noncestr = noncestr; | ||
35 | + } | ||
36 | + | ||
37 | + public String getSignature() { | ||
38 | + return signature; | ||
39 | + } | ||
40 | + | ||
41 | + public void setSignature(String signature) { | ||
42 | + this.signature = signature; | ||
43 | + } | ||
44 | + | ||
45 | + public String getJsapi_ticket() { | ||
46 | + return jsapi_ticket; | ||
47 | + } | ||
48 | + | ||
49 | + public void setJsapi_ticket(String jsapi_ticket) { | ||
50 | + this.jsapi_ticket = jsapi_ticket; | ||
51 | + } | ||
52 | + | ||
53 | + public String getSign_before() { | ||
54 | + return sign_before; | ||
55 | + } | ||
56 | + | ||
57 | + public void setSign_before(String sign_before) { | ||
58 | + this.sign_before = sign_before; | ||
59 | + } | ||
60 | + | ||
61 | + public String getBasictoken() { | ||
62 | + return basictoken; | ||
63 | + } | ||
64 | + | ||
65 | + public void setBasictoken(String basictoken) { | ||
66 | + this.basictoken = basictoken; | ||
67 | + } | ||
68 | +} |
src/main/java/com/sincere/student/mapper/ParameterMapper.java
1 | package com.sincere.student.mapper; | 1 | package com.sincere.student.mapper; |
2 | 2 | ||
3 | +import com.sincere.student.model.AccessToken; | ||
3 | import com.sincere.student.model.Parameter; | 4 | import com.sincere.student.model.Parameter; |
4 | 5 | ||
5 | import java.util.List; | 6 | import java.util.List; |
@@ -11,4 +12,9 @@ public interface ParameterMapper { | @@ -11,4 +12,9 @@ public interface ParameterMapper { | ||
11 | int create(Parameter parameter); | 12 | int create(Parameter parameter); |
12 | 13 | ||
13 | int update(Parameter parameter); | 14 | int update(Parameter parameter); |
15 | + | ||
16 | + | ||
17 | + int insertAccessToken(AccessToken accessToken); | ||
18 | + | ||
19 | + AccessToken getAccessToken(); | ||
14 | } | 20 | } |
src/main/java/com/sincere/student/model/AccessToken.java
0 → 100644
@@ -0,0 +1,35 @@ | @@ -0,0 +1,35 @@ | ||
1 | +package com.sincere.student.model; | ||
2 | + | ||
3 | +import java.util.Date; | ||
4 | + | ||
5 | +public class AccessToken { | ||
6 | + private Integer id; | ||
7 | + | ||
8 | + private String accessToken; | ||
9 | + | ||
10 | + private Date createTime; | ||
11 | + | ||
12 | + public Integer getId() { | ||
13 | + return id; | ||
14 | + } | ||
15 | + | ||
16 | + public void setId(Integer id) { | ||
17 | + this.id = id; | ||
18 | + } | ||
19 | + | ||
20 | + public String getAccessToken() { | ||
21 | + return accessToken; | ||
22 | + } | ||
23 | + | ||
24 | + public void setAccessToken(String accessToken) { | ||
25 | + this.accessToken = accessToken; | ||
26 | + } | ||
27 | + | ||
28 | + public Date getCreateTime() { | ||
29 | + return createTime; | ||
30 | + } | ||
31 | + | ||
32 | + public void setCreateTime(Date createTime) { | ||
33 | + this.createTime = createTime; | ||
34 | + } | ||
35 | +} |
@@ -0,0 +1,53 @@ | @@ -0,0 +1,53 @@ | ||
1 | +package com.sincere.student.model; | ||
2 | + | ||
3 | +public class Token { | ||
4 | + public String access_token; | ||
5 | + | ||
6 | + public Integer expires_in; | ||
7 | + | ||
8 | + public String refresh_token; | ||
9 | + | ||
10 | + public String openid; | ||
11 | + | ||
12 | + public String scope; | ||
13 | + | ||
14 | + public String getAccess_token() { | ||
15 | + return access_token; | ||
16 | + } | ||
17 | + | ||
18 | + public void setAccess_token(String access_token) { | ||
19 | + this.access_token = access_token; | ||
20 | + } | ||
21 | + | ||
22 | + public Integer getExpires_in() { | ||
23 | + return expires_in; | ||
24 | + } | ||
25 | + | ||
26 | + public void setExpires_in(Integer expires_in) { | ||
27 | + this.expires_in = expires_in; | ||
28 | + } | ||
29 | + | ||
30 | + public String getRefresh_token() { | ||
31 | + return refresh_token; | ||
32 | + } | ||
33 | + | ||
34 | + public void setRefresh_token(String refresh_token) { | ||
35 | + this.refresh_token = refresh_token; | ||
36 | + } | ||
37 | + | ||
38 | + public String getOpenid() { | ||
39 | + return openid; | ||
40 | + } | ||
41 | + | ||
42 | + public void setOpenid(String openid) { | ||
43 | + this.openid = openid; | ||
44 | + } | ||
45 | + | ||
46 | + public String getScope() { | ||
47 | + return scope; | ||
48 | + } | ||
49 | + | ||
50 | + public void setScope(String scope) { | ||
51 | + this.scope = scope; | ||
52 | + } | ||
53 | +} |
src/main/java/com/sincere/student/service/ParameterService.java
1 | package com.sincere.student.service; | 1 | package com.sincere.student.service; |
2 | 2 | ||
3 | +import com.sincere.student.model.AccessToken; | ||
3 | import com.sincere.student.model.Parameter; | 4 | import com.sincere.student.model.Parameter; |
4 | 5 | ||
5 | public interface ParameterService { | 6 | public interface ParameterService { |
@@ -9,4 +10,8 @@ public interface ParameterService { | @@ -9,4 +10,8 @@ public interface ParameterService { | ||
9 | int create(Parameter parameter); | 10 | int create(Parameter parameter); |
10 | 11 | ||
11 | int update(Parameter parameter); | 12 | int update(Parameter parameter); |
13 | + | ||
14 | + int insertAccessToken(AccessToken accessToken); | ||
15 | + | ||
16 | + AccessToken getAccessToken(); | ||
12 | } | 17 | } |
src/main/java/com/sincere/student/service/impl/ParameterServiceImpl.java
1 | package com.sincere.student.service.impl; | 1 | package com.sincere.student.service.impl; |
2 | 2 | ||
3 | import com.sincere.student.mapper.ParameterMapper; | 3 | import com.sincere.student.mapper.ParameterMapper; |
4 | +import com.sincere.student.model.AccessToken; | ||
4 | import com.sincere.student.model.Parameter; | 5 | import com.sincere.student.model.Parameter; |
5 | import com.sincere.student.service.ParameterService; | 6 | import com.sincere.student.service.ParameterService; |
6 | import org.springframework.beans.factory.annotation.Autowired; | 7 | import org.springframework.beans.factory.annotation.Autowired; |
@@ -32,4 +33,11 @@ public class ParameterServiceImpl implements ParameterService { | @@ -32,4 +33,11 @@ public class ParameterServiceImpl implements ParameterService { | ||
32 | public int update(Parameter parameter) { | 33 | public int update(Parameter parameter) { |
33 | return parameterMapper.update(parameter); | 34 | return parameterMapper.update(parameter); |
34 | } | 35 | } |
36 | + | ||
37 | + @Override | ||
38 | + public int insertAccessToken(AccessToken accessToken){return parameterMapper.insertAccessToken(accessToken);} | ||
39 | + | ||
40 | + @Override | ||
41 | + public AccessToken getAccessToken(){return parameterMapper.getAccessToken();} | ||
42 | + | ||
35 | } | 43 | } |
src/main/resources/mapper/ParameterMapper.xml
@@ -20,4 +20,19 @@ | @@ -20,4 +20,19 @@ | ||
20 | where code = #{code} | 20 | where code = #{code} |
21 | </update> | 21 | </update> |
22 | 22 | ||
23 | + <resultMap id="AccessTokenMap" type="com.sincere.student.model.AccessToken"> | ||
24 | + <id column="id" jdbcType="INTEGER" property="id" /> | ||
25 | + <result column="access_token" jdbcType="VARCHAR" property="accessToken" /> | ||
26 | + <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> | ||
27 | + </resultMap> | ||
28 | + | ||
29 | + <insert id="insertAccessToken" parameterType="com.sincere.student.model.AccessToken"> | ||
30 | + insert into access_token (access_token) | ||
31 | + values (#{accessToken,jdbcType=VARCHAR} | ||
32 | + ) | ||
33 | + </insert> | ||
34 | + | ||
35 | + <select id="getAccessToken" resultMap="AccessTokenMap"> | ||
36 | + select top 1.* from access_token order by create_time desc | ||
37 | + </select> | ||
23 | </mapper> | 38 | </mapper> |