From c0a4778088304813f015f6aa68532c84eb3b5eda Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 11:38:02 +0800 Subject: [PATCH 01/27] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/config/SecurityConfig.java | 3 +- .../src/views/custom/WxAccount/index.vue | 588 ++++++++++-------- 2 files changed, 332 insertions(+), 259 deletions(-) diff --git a/stdiet-framework/src/main/java/com/stdiet/framework/config/SecurityConfig.java b/stdiet-framework/src/main/java/com/stdiet/framework/config/SecurityConfig.java index 06ffe5fe0..32f8b94bd 100644 --- a/stdiet-framework/src/main/java/com/stdiet/framework/config/SecurityConfig.java +++ b/stdiet-framework/src/main/java/com/stdiet/framework/config/SecurityConfig.java @@ -103,8 +103,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { "/custom/wxUserLog/wx/**", "/wx/**", "/investigate/**", - "/common/customerUploadFile", - "/custom/WxAccount/upload" + "/common/customerUploadFile" ).anonymous() .antMatchers( HttpMethod.GET, diff --git a/stdiet-ui/src/views/custom/WxAccount/index.vue b/stdiet-ui/src/views/custom/WxAccount/index.vue index 53be25298..53f4107d1 100644 --- a/stdiet-ui/src/views/custom/WxAccount/index.vue +++ b/stdiet-ui/src/views/custom/WxAccount/index.vue @@ -1,6 +1,12 @@ + + From 295ad5b254ddfa0fd24add3d2d7b50d259cee60c Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 11:44:08 +0800 Subject: [PATCH 02/27] =?UTF-8?q?=E6=B5=8B=E8=AF=95redis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/SysWxSaleAccountController.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java index e0a93860b..4d9bd4d63 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java @@ -104,8 +104,18 @@ public class SysWxSaleAccountController extends BaseController { return toAjax(sysWxSaleAccountService.deleteSysWxSaleAccountByIds(ids)); } + @GetMapping("/redisTest") + public AjaxResult redisTest() { + String accessToken = redisCache.getCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN); + if (StringUtils.isEmpty(accessToken)) { + WxAccessToken wxAccessToken = WxTokenUtils.fetchAccessToken(); + redisCache.setCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN, wxAccessToken.getAccessToken(), wxAccessToken.getExpiresIn(), TimeUnit.SECONDS); + } + return AjaxResult.success(accessToken); + } + /** - * 通用上传请求(无需登录认证) + * 上传图片 */ @PostMapping("/upload") public AjaxResult wxAccountUpload(MultipartFile file) throws Exception { From b2725c3bbce609fac9751c5d42b56ff20ed1d262 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 12:45:29 +0800 Subject: [PATCH 03/27] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/custom/SysWxSaleAccountController.java | 3 ++- .../java/com/stdiet/custom/utils/WxTokenUtils.java | 10 ++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java index 4d9bd4d63..f44813cad 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java @@ -122,6 +122,7 @@ public class SysWxSaleAccountController extends BaseController { try { // 上传文件路径 String filePath = RuoYiConfig.getUploadPath(); + String oriFileName = file.getOriginalFilename(); // 上传并返回新文件名称 String fileName = FileUploadUtils.upload(filePath, file); String url = serverConfig.getUrl() + fileName; @@ -132,7 +133,7 @@ public class SysWxSaleAccountController extends BaseController { redisCache.setCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN, wxAccessToken.getAccessToken(), wxAccessToken.getExpiresIn(), TimeUnit.SECONDS); } - WxFileUploadResult result = WxTokenUtils.uploadImage(filePath, accessToken); + WxFileUploadResult result = WxTokenUtils.uploadImage(filePath, oriFileName, accessToken); if (result == null) { return AjaxResult.error("上传微信失败"); } diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index a75365921..b6f60106f 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -1,7 +1,6 @@ package com.stdiet.custom.utils; import com.alibaba.fastjson.JSONObject; -import com.stdiet.common.core.redis.RedisCache; import com.stdiet.common.utils.StringUtils; import com.stdiet.common.utils.http.HttpUtils; import com.stdiet.custom.domain.WxXmlData; @@ -9,7 +8,6 @@ import com.stdiet.custom.domain.wechat.WxAccessToken; import com.stdiet.custom.domain.wechat.WxFileUploadResult; import com.thoughtworks.xstream.XStream; import org.apache.commons.io.IOUtils; -import org.springframework.beans.factory.annotation.Autowired; import java.io.File; import java.io.InputStream; @@ -19,8 +17,8 @@ import java.security.NoSuchAlgorithmException; public class WxTokenUtils { - public static final String KEY_ACCESS_TOKEN="wx:access_token"; - public static final String KEY_ACCESS_TOKEN_WATHER="wx:access_token_watcher"; + public static final String KEY_ACCESS_TOKEN = "wx:access_token"; + public static final String KEY_ACCESS_TOKEN_WATHER = "wx:access_token_watcher"; // 与接口配置信息中的Token要一致 private static String token = "shengtangdiet"; @@ -32,7 +30,6 @@ public class WxTokenUtils { private static String uploadMaterialUrl = "https://api.weixin.qq.com/cgi-bin/material/add_material"; - public static WxAccessToken fetchAccessToken() { try { String resStr = HttpUtils.sendGet(tokenUrl, "grant_type=client_credential&appid=" + appId + "&secret=" + appSecret); @@ -48,11 +45,12 @@ public class WxTokenUtils { } } - public static WxFileUploadResult uploadImage(String filePath, String accessToken) { + public static WxFileUploadResult uploadImage(String filePath, String fileName, String accessToken) { try { String url = uploadMaterialUrl + "?access_token" + accessToken + "&type=image"; HttpPostUtil post = new HttpPostUtil(url); post.addParameter("media", new File(filePath)); + post.addParameter("name", fileName); String resultStr = post.send(); JSONObject obj = JSONObject.parseObject(resultStr); WxFileUploadResult result = JSONObject.toJavaObject(obj, WxFileUploadResult.class); From 7bee783f8cd4e7c0cd9b057b632a514640013b71 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 12:53:22 +0800 Subject: [PATCH 04/27] =?UTF-8?q?`=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/stdiet/custom/utils/WxTokenUtils.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index b6f60106f..3ddb0ed6f 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -47,10 +47,9 @@ public class WxTokenUtils { public static WxFileUploadResult uploadImage(String filePath, String fileName, String accessToken) { try { - String url = uploadMaterialUrl + "?access_token" + accessToken + "&type=image"; + String url = uploadMaterialUrl + "?access_token=" + accessToken + "&type=image"; HttpPostUtil post = new HttpPostUtil(url); post.addParameter("media", new File(filePath)); - post.addParameter("name", fileName); String resultStr = post.send(); JSONObject obj = JSONObject.parseObject(resultStr); WxFileUploadResult result = JSONObject.toJavaObject(obj, WxFileUploadResult.class); From 7093e9a9af7968d1abeaf590b4ee01456f38e014 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 13:34:39 +0800 Subject: [PATCH 05/27] =?UTF-8?q?=E6=89=93=E5=8D=B0=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/custom/SysWxSaleAccountController.java | 4 ++-- .../src/main/java/com/stdiet/custom/utils/WxTokenUtils.java | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java index f44813cad..89e5d3512 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java @@ -134,8 +134,8 @@ public class SysWxSaleAccountController extends BaseController { } WxFileUploadResult result = WxTokenUtils.uploadImage(filePath, oriFileName, accessToken); - if (result == null) { - return AjaxResult.error("上传微信失败"); + if (StringUtils.isEmpty(result.getUrl())) { + return AjaxResult.error(result.getMediaId()); } AjaxResult ajax = AjaxResult.success(); diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index 3ddb0ed6f..9b20b374f 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -55,7 +55,9 @@ public class WxTokenUtils { WxFileUploadResult result = JSONObject.toJavaObject(obj, WxFileUploadResult.class); return result; } catch (Exception e) { - return null; + WxFileUploadResult result = new WxFileUploadResult(); + result.setMediaId(e.getMessage()); + return result; } } From e35fedef8bbfd3df15be10174d1a777fb64a0f49 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 13:44:38 +0800 Subject: [PATCH 06/27] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/custom/SysWxSaleAccountController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java index 89e5d3512..800455128 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java @@ -127,13 +127,15 @@ public class SysWxSaleAccountController extends BaseController { String fileName = FileUploadUtils.upload(filePath, file); String url = serverConfig.getUrl() + fileName; + String oriFilePath = filePath + fileName.substring(fileName.indexOf("upload") + 6); + String accessToken = redisCache.getCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN); if (StringUtils.isEmpty(accessToken)) { WxAccessToken wxAccessToken = WxTokenUtils.fetchAccessToken(); redisCache.setCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN, wxAccessToken.getAccessToken(), wxAccessToken.getExpiresIn(), TimeUnit.SECONDS); } - WxFileUploadResult result = WxTokenUtils.uploadImage(filePath, oriFileName, accessToken); + WxFileUploadResult result = WxTokenUtils.uploadImage(oriFilePath, oriFileName, accessToken); if (StringUtils.isEmpty(result.getUrl())) { return AjaxResult.error(result.getMediaId()); } From c53d40777a9dc4d1edbb3660ed91d65aabfcf385 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 13:49:59 +0800 Subject: [PATCH 07/27] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/SysWxSaleAccountController.java | 3 --- .../com/stdiet/custom/utils/WxTokenUtils.java | 22 +++++++------------ 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java index 800455128..024995cad 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java @@ -136,9 +136,6 @@ public class SysWxSaleAccountController extends BaseController { } WxFileUploadResult result = WxTokenUtils.uploadImage(oriFilePath, oriFileName, accessToken); - if (StringUtils.isEmpty(result.getUrl())) { - return AjaxResult.error(result.getMediaId()); - } AjaxResult ajax = AjaxResult.success(); ajax.put("fileName", fileName); diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index 9b20b374f..4ec51b10b 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -45,20 +45,14 @@ public class WxTokenUtils { } } - public static WxFileUploadResult uploadImage(String filePath, String fileName, String accessToken) { - try { - String url = uploadMaterialUrl + "?access_token=" + accessToken + "&type=image"; - HttpPostUtil post = new HttpPostUtil(url); - post.addParameter("media", new File(filePath)); - String resultStr = post.send(); - JSONObject obj = JSONObject.parseObject(resultStr); - WxFileUploadResult result = JSONObject.toJavaObject(obj, WxFileUploadResult.class); - return result; - } catch (Exception e) { - WxFileUploadResult result = new WxFileUploadResult(); - result.setMediaId(e.getMessage()); - return result; - } + public static WxFileUploadResult uploadImage(String filePath, String fileName, String accessToken) throws Exception { + String url = uploadMaterialUrl + "?access_token=" + accessToken + "&type=image"; + HttpPostUtil post = new HttpPostUtil(url); + post.addParameter("media", new File(filePath)); + String resultStr = post.send(); + JSONObject obj = JSONObject.parseObject(resultStr); + WxFileUploadResult result = JSONObject.toJavaObject(obj, WxFileUploadResult.class); + return result; } /** From 887bbe679615622874775f6934529e833a2fe191 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 13:52:00 +0800 Subject: [PATCH 08/27] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/custom/SysWxSaleAccountController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java index 024995cad..dadc7483e 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java @@ -139,7 +139,7 @@ public class SysWxSaleAccountController extends BaseController { AjaxResult ajax = AjaxResult.success(); ajax.put("fileName", fileName); - ajax.put("mediaId", result.getMediaId()); + ajax.put("wxInfo", result); ajax.put("url", url); return ajax; } catch (Exception e) { From ff2ec24ee0e45b8dfaed9d626ba0e9e826b5f065 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 13:57:43 +0800 Subject: [PATCH 09/27] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/custom/SysWxSaleAccountController.java | 7 ++++++- .../main/java/com/stdiet/custom/utils/WxTokenUtils.java | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java index dadc7483e..ae2d6a042 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java @@ -21,6 +21,7 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.io.File; import java.util.List; import java.util.concurrent.TimeUnit; @@ -135,11 +136,15 @@ public class SysWxSaleAccountController extends BaseController { redisCache.setCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN, wxAccessToken.getAccessToken(), wxAccessToken.getExpiresIn(), TimeUnit.SECONDS); } - WxFileUploadResult result = WxTokenUtils.uploadImage(oriFilePath, oriFileName, accessToken); + File uploadFile = new File(oriFilePath); + + WxFileUploadResult result = WxTokenUtils.uploadImage(uploadFile, oriFileName, accessToken); AjaxResult ajax = AjaxResult.success(); ajax.put("fileName", fileName); ajax.put("wxInfo", result); + ajax.put("file", uploadFile); + ajax.put("accessToken", accessToken); ajax.put("url", url); return ajax; } catch (Exception e) { diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index 4ec51b10b..3d7e30af0 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -45,10 +45,10 @@ public class WxTokenUtils { } } - public static WxFileUploadResult uploadImage(String filePath, String fileName, String accessToken) throws Exception { + public static WxFileUploadResult uploadImage(File file, String fileName, String accessToken) throws Exception { String url = uploadMaterialUrl + "?access_token=" + accessToken + "&type=image"; HttpPostUtil post = new HttpPostUtil(url); - post.addParameter("media", new File(filePath)); + post.addParameter("media", file); String resultStr = post.send(); JSONObject obj = JSONObject.parseObject(resultStr); WxFileUploadResult result = JSONObject.toJavaObject(obj, WxFileUploadResult.class); From 7277179aa38a8106ea7aafdba557df1df07784a4 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 15:00:23 +0800 Subject: [PATCH 10/27] =?UTF-8?q?=E5=88=87=E6=8D=A2=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/stdiet/custom/utils/WxTokenUtils.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index 3d7e30af0..f69b3ad2a 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -22,10 +22,12 @@ public class WxTokenUtils { // 与接口配置信息中的Token要一致 private static String token = "shengtangdiet"; - // private static String appId = "wx4a9c1fc9dba53202"; -// private static String appSecret = "fff029ade5d3575df755f4cf9e52f8da"; - private static String appId = "wxaf10fe560ea043a0"; - private static String appSecret = "afb47e477337df23b7562c3c1f965826"; + // 胜唐体控 + private static String appId = "wx4a9c1fc9dba53202"; + private static String appSecret = "fff029ade5d3575df755f4cf9e52f8da"; + // 胜唐体控李晓 +// private static String appId = "wxaf10fe560ea043a0"; +// private static String appSecret = "afb47e477337df23b7562c3c1f965826"; private static String tokenUrl = "https://api.weixin.qq.com/cgi-bin/token"; private static String uploadMaterialUrl = "https://api.weixin.qq.com/cgi-bin/material/add_material"; From f41eccf69c614c890b3dfc88b68f6d0e989dfd76 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 15:06:57 +0800 Subject: [PATCH 11/27] =?UTF-8?q?=E6=B8=85=E7=90=86accessToken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stdiet/web/controller/custom/CusWxController.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/CusWxController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/CusWxController.java index d04cb42e2..ca9a95318 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/CusWxController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/CusWxController.java @@ -2,7 +2,9 @@ package com.stdiet.web.controller.custom; import com.stdiet.common.core.controller.BaseController; import com.stdiet.common.core.domain.AjaxResult; +import com.stdiet.common.core.redis.RedisCache; import com.stdiet.custom.service.ISysWxService; +import com.stdiet.custom.utils.WxTokenUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -15,6 +17,9 @@ public class CusWxController extends BaseController { @Autowired public ISysWxService sysWxService; + @Autowired + public RedisCache redisCache; + @GetMapping("/checkSign") public String wxCheckAuth(@RequestParam String signature, @RequestParam String timestamp, @RequestParam String nonce, @RequestParam String echostr) { return sysWxService.wxCheckAuth(signature, timestamp, nonce, echostr); @@ -30,4 +35,9 @@ public class CusWxController extends BaseController { return sysWxService.getAccessToken(); } + @GetMapping("/clearAccessToken") + public AjaxResult clearAccessToken() { + redisCache.deleteObject(WxTokenUtils.KEY_ACCESS_TOKEN); + return AjaxResult.success(); + } } From 9e02b450e72c50652c6cb1948c9256d6a1933756 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 15:10:34 +0800 Subject: [PATCH 12/27] =?UTF-8?q?=E6=B8=85=E7=90=86accessToken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stdiet/web/controller/custom/SysWxSaleAccountController.java | 1 + .../src/main/java/com/stdiet/custom/utils/WxTokenUtils.java | 1 + 2 files changed, 2 insertions(+) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java index ae2d6a042..881d748fe 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java @@ -134,6 +134,7 @@ public class SysWxSaleAccountController extends BaseController { if (StringUtils.isEmpty(accessToken)) { WxAccessToken wxAccessToken = WxTokenUtils.fetchAccessToken(); redisCache.setCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN, wxAccessToken.getAccessToken(), wxAccessToken.getExpiresIn(), TimeUnit.SECONDS); + accessToken = wxAccessToken.getAccessToken(); } File uploadFile = new File(oriFilePath); diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index f69b3ad2a..5301a9152 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -54,6 +54,7 @@ public class WxTokenUtils { String resultStr = post.send(); JSONObject obj = JSONObject.parseObject(resultStr); WxFileUploadResult result = JSONObject.toJavaObject(obj, WxFileUploadResult.class); + result.setMediaId(resultStr); return result; } From 58d15d0d60fdff12365231571f28c9bd6515a478 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 15:14:03 +0800 Subject: [PATCH 13/27] =?UTF-8?q?=E6=B8=85=E7=90=86accessToken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/stdiet/custom/utils/WxTokenUtils.java | 1 + 1 file changed, 1 insertion(+) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index 5301a9152..5a796e76c 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -55,6 +55,7 @@ public class WxTokenUtils { JSONObject obj = JSONObject.parseObject(resultStr); WxFileUploadResult result = JSONObject.toJavaObject(obj, WxFileUploadResult.class); result.setMediaId(resultStr); + result.setUrl(url); return result; } From eceadabfaa36b66f16803afb61e7050956c8cd08 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 15:23:00 +0800 Subject: [PATCH 14/27] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/stdiet/custom/utils/WxTokenUtils.java | 101 +++++++++++++++--- 1 file changed, 89 insertions(+), 12 deletions(-) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index 5a796e76c..23894f63a 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -9,8 +9,9 @@ import com.stdiet.custom.domain.wechat.WxFileUploadResult; import com.thoughtworks.xstream.XStream; import org.apache.commons.io.IOUtils; -import java.io.File; -import java.io.InputStream; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -29,7 +30,7 @@ public class WxTokenUtils { // private static String appId = "wxaf10fe560ea043a0"; // private static String appSecret = "afb47e477337df23b7562c3c1f965826"; private static String tokenUrl = "https://api.weixin.qq.com/cgi-bin/token"; - private static String uploadMaterialUrl = "https://api.weixin.qq.com/cgi-bin/material/add_material"; + private static String uploadMaterialUrl = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&type=image"; public static WxAccessToken fetchAccessToken() { @@ -47,16 +48,92 @@ public class WxTokenUtils { } } + /** + * 模拟form表单的形式 ,上传文件 以输出流的形式把文件写入到url中,然后用输入流来获取url的响应 + * + * @return String url的响应信息返回值 + * @throws IOException + */ public static WxFileUploadResult uploadImage(File file, String fileName, String accessToken) throws Exception { - String url = uploadMaterialUrl + "?access_token=" + accessToken + "&type=image"; - HttpPostUtil post = new HttpPostUtil(url); - post.addParameter("media", file); - String resultStr = post.send(); - JSONObject obj = JSONObject.parseObject(resultStr); - WxFileUploadResult result = JSONObject.toJavaObject(obj, WxFileUploadResult.class); - result.setMediaId(resultStr); - result.setUrl(url); - return result; + String url = uploadMaterialUrl.replaceAll("ACCESS_TOKEN", accessToken);;//微信上传图片的url + String result = null; + if (!file.exists() || !file.isFile()) { + throw new IOException("文件不存在"); + } + // 第一部分 + URL urlObj = new URL(url); + HttpURLConnection con = (HttpURLConnection) urlObj.openConnection(); + + // 设置关键值 + con.setRequestMethod("POST"); // 以Post方式提交表单,默认get方式 + con.setDoInput(true); + con.setDoOutput(true); + con.setUseCaches(false); // post方式不能使用缓存 + + // 设置请求头信息 + con.setRequestProperty("Connection", "Keep-Alive"); + con.setRequestProperty("Charset", "UTF-8"); + + // 设置边界 + String BOUNDARY = "----------" + System.currentTimeMillis(); + con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY); + + // 请求正文信息 + // 第一部分: + StringBuilder sb = new StringBuilder(); + sb.append("--"); // 必须多两道线 + sb.append(BOUNDARY); + sb.append("\r\n"); + sb.append("Content-Disposition: form-data;name=\"file\";filename=\"" + fileName + "\"\r\n"); + sb.append("Content-Type:application/octet-stream\r\n\r\n"); + + byte[] head = sb.toString().getBytes("utf-8"); + // 获得输出流 + OutputStream out = new DataOutputStream(con.getOutputStream()); + // 输出表头 + out.write(head); + + // 文件正文部分 + // 把文件已流文件的方式 推入到url中 + DataInputStream in = new DataInputStream(new FileInputStream(file)); + int bytes = 0; + byte[] bufferOut = new byte[1024]; + while ((bytes = in.read(bufferOut)) != -1) { + out.write(bufferOut, 0, bytes); + } + in.close(); + + // 结尾部分 + byte[] foot = ("\r\n--" + BOUNDARY + "--\r\n").getBytes("utf-8");// 定义最后数据分隔线 + out.write(foot); + out.flush(); + out.close(); + + StringBuffer buffer = new StringBuffer(); + BufferedReader reader = null; + try { + // 定义BufferedReader输入流来读取URL的响应 + reader = new BufferedReader(new InputStreamReader(con.getInputStream())); + String line = null; + while ((line = reader.readLine()) != null) { + // System.out.println(line); + buffer.append(line); + } + if (result == null) { + result = buffer.toString(); + } + } catch (IOException e) { + System.out.println("发送POST请求出现异常!" + e); + e.printStackTrace(); + throw new IOException("数据读取异常"); + } finally { + if (reader != null) { + reader.close(); + } + } + JSONObject jsonObject = JSONObject.parseObject(result); + + return JSONObject.toJavaObject(jsonObject, WxFileUploadResult.class); } /** From 2f97afd90b3e93ad2693ceee43a5c8ce27e9dd2a Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 15:25:27 +0800 Subject: [PATCH 15/27] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/stdiet/custom/utils/WxTokenUtils.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index 23894f63a..aeffcd771 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -132,8 +132,9 @@ public class WxTokenUtils { } } JSONObject jsonObject = JSONObject.parseObject(result); - - return JSONObject.toJavaObject(jsonObject, WxFileUploadResult.class); + WxFileUploadResult result1 = JSONObject.toJavaObject(jsonObject, WxFileUploadResult.class); + result1.setUrl(result); + return result1; } /** From efc8b543c200b3f68572c6884812fd3860267073 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 15:30:10 +0800 Subject: [PATCH 16/27] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/stdiet/custom/utils/WxTokenUtils.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index aeffcd771..76b8245c9 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -84,7 +84,7 @@ public class WxTokenUtils { sb.append("--"); // 必须多两道线 sb.append(BOUNDARY); sb.append("\r\n"); - sb.append("Content-Disposition: form-data;name=\"file\";filename=\"" + fileName + "\"\r\n"); + sb.append("Content-Disposition: form-data;name=\"file\";filename=\"" + file.getName() + "\"\r\n"); sb.append("Content-Type:application/octet-stream\r\n\r\n"); byte[] head = sb.toString().getBytes("utf-8"); @@ -134,6 +134,7 @@ public class WxTokenUtils { JSONObject jsonObject = JSONObject.parseObject(result); WxFileUploadResult result1 = JSONObject.toJavaObject(jsonObject, WxFileUploadResult.class); result1.setUrl(result); + result1.setUrl(fileName); return result1; } From ed19eb709922e4b4416c4d162ba59329b18eb440 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 15:31:51 +0800 Subject: [PATCH 17/27] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/stdiet/custom/utils/WxTokenUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index 76b8245c9..f6ad149c2 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -133,7 +133,7 @@ public class WxTokenUtils { } JSONObject jsonObject = JSONObject.parseObject(result); WxFileUploadResult result1 = JSONObject.toJavaObject(jsonObject, WxFileUploadResult.class); - result1.setUrl(result); + result1.setMediaId(result); result1.setUrl(fileName); return result1; } From d7ba79f26f4b032641013f81b7cf23d21c12a799 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 15:38:07 +0800 Subject: [PATCH 18/27] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/SysWxSaleAccountController.java | 6 +- .../com/stdiet/custom/utils/WxTokenUtils.java | 100 ++++-------------- 2 files changed, 20 insertions(+), 86 deletions(-) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java index 881d748fe..f771961b1 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java @@ -137,14 +137,12 @@ public class SysWxSaleAccountController extends BaseController { accessToken = wxAccessToken.getAccessToken(); } - File uploadFile = new File(oriFilePath); - - WxFileUploadResult result = WxTokenUtils.uploadImage(uploadFile, oriFileName, accessToken); + WxFileUploadResult result = WxTokenUtils.uploadImage(oriFilePath, oriFileName, accessToken); AjaxResult ajax = AjaxResult.success(); ajax.put("fileName", fileName); ajax.put("wxInfo", result); - ajax.put("file", uploadFile); + ajax.put("file", oriFilePath); ajax.put("accessToken", accessToken); ajax.put("url", url); return ajax; diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index f6ad149c2..e668ffbb0 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -9,9 +9,10 @@ import com.stdiet.custom.domain.wechat.WxFileUploadResult; import com.thoughtworks.xstream.XStream; import org.apache.commons.io.IOUtils; -import java.io.*; -import java.net.HttpURLConnection; -import java.net.URL; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -54,88 +55,23 @@ public class WxTokenUtils { * @return String url的响应信息返回值 * @throws IOException */ - public static WxFileUploadResult uploadImage(File file, String fileName, String accessToken) throws Exception { - String url = uploadMaterialUrl.replaceAll("ACCESS_TOKEN", accessToken);;//微信上传图片的url - String result = null; - if (!file.exists() || !file.isFile()) { - throw new IOException("文件不存在"); + public static WxFileUploadResult uploadImage(String filePath, String fileName, String accessToken) throws Exception { + String[] cmds = {"curl", uploadMaterialUrl.replaceAll("ACCESS_TOKEN", accessToken), "-F" + , "media='@" + filePath + ";filename=" + fileName + "'"};//必须分开写,不能有空格 + + ProcessBuilder process = new ProcessBuilder(cmds); + Process p = process.start(); + BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); + StringBuilder builder = new StringBuilder(); + String line = null; + while ((line = reader.readLine()) != null) { + builder.append(line); + builder.append(System.getProperty("line.separator")); } - // 第一部分 - URL urlObj = new URL(url); - HttpURLConnection con = (HttpURLConnection) urlObj.openConnection(); + JSONObject obj = JSONObject.parseObject(builder.toString()); - // 设置关键值 - con.setRequestMethod("POST"); // 以Post方式提交表单,默认get方式 - con.setDoInput(true); - con.setDoOutput(true); - con.setUseCaches(false); // post方式不能使用缓存 + return JSONObject.toJavaObject(obj, WxFileUploadResult.class); - // 设置请求头信息 - con.setRequestProperty("Connection", "Keep-Alive"); - con.setRequestProperty("Charset", "UTF-8"); - - // 设置边界 - String BOUNDARY = "----------" + System.currentTimeMillis(); - con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY); - - // 请求正文信息 - // 第一部分: - StringBuilder sb = new StringBuilder(); - sb.append("--"); // 必须多两道线 - sb.append(BOUNDARY); - sb.append("\r\n"); - sb.append("Content-Disposition: form-data;name=\"file\";filename=\"" + file.getName() + "\"\r\n"); - sb.append("Content-Type:application/octet-stream\r\n\r\n"); - - byte[] head = sb.toString().getBytes("utf-8"); - // 获得输出流 - OutputStream out = new DataOutputStream(con.getOutputStream()); - // 输出表头 - out.write(head); - - // 文件正文部分 - // 把文件已流文件的方式 推入到url中 - DataInputStream in = new DataInputStream(new FileInputStream(file)); - int bytes = 0; - byte[] bufferOut = new byte[1024]; - while ((bytes = in.read(bufferOut)) != -1) { - out.write(bufferOut, 0, bytes); - } - in.close(); - - // 结尾部分 - byte[] foot = ("\r\n--" + BOUNDARY + "--\r\n").getBytes("utf-8");// 定义最后数据分隔线 - out.write(foot); - out.flush(); - out.close(); - - StringBuffer buffer = new StringBuffer(); - BufferedReader reader = null; - try { - // 定义BufferedReader输入流来读取URL的响应 - reader = new BufferedReader(new InputStreamReader(con.getInputStream())); - String line = null; - while ((line = reader.readLine()) != null) { - // System.out.println(line); - buffer.append(line); - } - if (result == null) { - result = buffer.toString(); - } - } catch (IOException e) { - System.out.println("发送POST请求出现异常!" + e); - e.printStackTrace(); - throw new IOException("数据读取异常"); - } finally { - if (reader != null) { - reader.close(); - } - } - JSONObject jsonObject = JSONObject.parseObject(result); - WxFileUploadResult result1 = JSONObject.toJavaObject(jsonObject, WxFileUploadResult.class); - result1.setMediaId(result); - result1.setUrl(fileName); - return result1; } /** From 3062b00b2246bd783234b0dbc0094dc608f0f930 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 15:40:26 +0800 Subject: [PATCH 19/27] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/stdiet/custom/utils/WxTokenUtils.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index e668ffbb0..ca70760ef 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -68,9 +68,12 @@ public class WxTokenUtils { builder.append(line); builder.append(System.getProperty("line.separator")); } - JSONObject obj = JSONObject.parseObject(builder.toString()); - - return JSONObject.toJavaObject(obj, WxFileUploadResult.class); + String resultStr = builder.toString(); + JSONObject obj = JSONObject.parseObject(resultStr); + WxFileUploadResult result = JSONObject.toJavaObject(obj, WxFileUploadResult.class); + result.setMediaId(cmds.toString()); + result.setUrl(resultStr); + return result; } From baf8f5973cccf92c54b956383078fe1c6877c0e2 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 15:55:08 +0800 Subject: [PATCH 20/27] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/SysWxSaleAccountController.java | 13 +++++++------ .../java/com/stdiet/custom/utils/WxTokenUtils.java | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java index f771961b1..27fb0aed3 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java @@ -130,12 +130,13 @@ public class SysWxSaleAccountController extends BaseController { String oriFilePath = filePath + fileName.substring(fileName.indexOf("upload") + 6); - String accessToken = redisCache.getCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN); - if (StringUtils.isEmpty(accessToken)) { - WxAccessToken wxAccessToken = WxTokenUtils.fetchAccessToken(); - redisCache.setCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN, wxAccessToken.getAccessToken(), wxAccessToken.getExpiresIn(), TimeUnit.SECONDS); - accessToken = wxAccessToken.getAccessToken(); - } + String accessToken = "ddd"; +// String accessToken = redisCache.getCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN); +// if (StringUtils.isEmpty(accessToken)) { +// WxAccessToken wxAccessToken = WxTokenUtils.fetchAccessToken(); +// redisCache.setCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN, wxAccessToken.getAccessToken(), wxAccessToken.getExpiresIn(), TimeUnit.SECONDS); +// accessToken = wxAccessToken.getAccessToken(); +// } WxFileUploadResult result = WxTokenUtils.uploadImage(oriFilePath, oriFileName, accessToken); diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index ca70760ef..788c42b05 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -57,7 +57,7 @@ public class WxTokenUtils { */ public static WxFileUploadResult uploadImage(String filePath, String fileName, String accessToken) throws Exception { String[] cmds = {"curl", uploadMaterialUrl.replaceAll("ACCESS_TOKEN", accessToken), "-F" - , "media='@" + filePath + ";filename=" + fileName + "'"};//必须分开写,不能有空格 + , "media='@" + filePath + "'"};//必须分开写,不能有空格 ProcessBuilder process = new ProcessBuilder(cmds); Process p = process.start(); From 4e9621fdf6feb09f0550cf45581f52d6df6b4f44 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 15:56:31 +0800 Subject: [PATCH 21/27] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/SysWxSaleAccountController.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java index 27fb0aed3..13c510c6b 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java @@ -130,13 +130,13 @@ public class SysWxSaleAccountController extends BaseController { String oriFilePath = filePath + fileName.substring(fileName.indexOf("upload") + 6); - String accessToken = "ddd"; -// String accessToken = redisCache.getCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN); -// if (StringUtils.isEmpty(accessToken)) { -// WxAccessToken wxAccessToken = WxTokenUtils.fetchAccessToken(); -// redisCache.setCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN, wxAccessToken.getAccessToken(), wxAccessToken.getExpiresIn(), TimeUnit.SECONDS); -// accessToken = wxAccessToken.getAccessToken(); -// } +// String accessToken = "ddd"; + String accessToken = redisCache.getCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN); + if (StringUtils.isEmpty(accessToken)) { + WxAccessToken wxAccessToken = WxTokenUtils.fetchAccessToken(); + redisCache.setCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN, wxAccessToken.getAccessToken(), wxAccessToken.getExpiresIn(), TimeUnit.SECONDS); + accessToken = wxAccessToken.getAccessToken(); + } WxFileUploadResult result = WxTokenUtils.uploadImage(oriFilePath, oriFileName, accessToken); From 05ec53e7ecb30a5781ba18b57a2c62c1c4cc9283 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 15:57:45 +0800 Subject: [PATCH 22/27] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/stdiet/custom/utils/WxTokenUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index 788c42b05..a4eb287a1 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -71,7 +71,7 @@ public class WxTokenUtils { String resultStr = builder.toString(); JSONObject obj = JSONObject.parseObject(resultStr); WxFileUploadResult result = JSONObject.toJavaObject(obj, WxFileUploadResult.class); - result.setMediaId(cmds.toString()); + result.setMediaId(filePath); result.setUrl(resultStr); return result; From efdbd99e3d6f6708089f30da0fc31b7c6f0c23ce Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 16:03:52 +0800 Subject: [PATCH 23/27] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/stdiet/custom/utils/WxTokenUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index a4eb287a1..3f8dd0223 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -57,7 +57,7 @@ public class WxTokenUtils { */ public static WxFileUploadResult uploadImage(String filePath, String fileName, String accessToken) throws Exception { String[] cmds = {"curl", uploadMaterialUrl.replaceAll("ACCESS_TOKEN", accessToken), "-F" - , "media='@" + filePath + "'"};//必须分开写,不能有空格 + , "media=@" + filePath + "filename=" + fileName};//必须分开写,不能有空格 ProcessBuilder process = new ProcessBuilder(cmds); Process p = process.start(); From 9c8d3bffd4aeb80f0be81cbbbec9c88dee7313cf Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 16:05:23 +0800 Subject: [PATCH 24/27] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/stdiet/custom/utils/WxTokenUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index 3f8dd0223..2b370eb85 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -57,7 +57,7 @@ public class WxTokenUtils { */ public static WxFileUploadResult uploadImage(String filePath, String fileName, String accessToken) throws Exception { String[] cmds = {"curl", uploadMaterialUrl.replaceAll("ACCESS_TOKEN", accessToken), "-F" - , "media=@" + filePath + "filename=" + fileName};//必须分开写,不能有空格 + , "media=@" + filePath + ";filename=" + fileName};//必须分开写,不能有空格 ProcessBuilder process = new ProcessBuilder(cmds); Process p = process.start(); From 973606f319771d3b6acec25999510116432e6385 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Mon, 1 Feb 2021 16:11:13 +0800 Subject: [PATCH 25/27] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/SysWxSaleAccountController.java | 12 ++++-------- .../java/com/stdiet/custom/utils/WxTokenUtils.java | 8 ++------ 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java index 13c510c6b..1c4bcc8de 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxSaleAccountController.java @@ -21,7 +21,6 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.io.File; import java.util.List; import java.util.concurrent.TimeUnit; @@ -126,26 +125,23 @@ public class SysWxSaleAccountController extends BaseController { String oriFileName = file.getOriginalFilename(); // 上传并返回新文件名称 String fileName = FileUploadUtils.upload(filePath, file); - String url = serverConfig.getUrl() + fileName; +// String url = serverConfig.getUrl() + fileName; String oriFilePath = filePath + fileName.substring(fileName.indexOf("upload") + 6); -// String accessToken = "ddd"; String accessToken = redisCache.getCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN); if (StringUtils.isEmpty(accessToken)) { WxAccessToken wxAccessToken = WxTokenUtils.fetchAccessToken(); - redisCache.setCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN, wxAccessToken.getAccessToken(), wxAccessToken.getExpiresIn(), TimeUnit.SECONDS); accessToken = wxAccessToken.getAccessToken(); + redisCache.setCacheObject(WxTokenUtils.KEY_ACCESS_TOKEN, accessToken, wxAccessToken.getExpiresIn(), TimeUnit.SECONDS); } WxFileUploadResult result = WxTokenUtils.uploadImage(oriFilePath, oriFileName, accessToken); AjaxResult ajax = AjaxResult.success(); ajax.put("fileName", fileName); - ajax.put("wxInfo", result); - ajax.put("file", oriFilePath); - ajax.put("accessToken", accessToken); - ajax.put("url", url); + ajax.put("mediaId", result.getMediaId()); + ajax.put("mediaUrl", result.getUrl()); return ajax; } catch (Exception e) { return AjaxResult.error(e.getMessage()); diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java index 2b370eb85..5a42a8bab 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/WxTokenUtils.java @@ -68,12 +68,8 @@ public class WxTokenUtils { builder.append(line); builder.append(System.getProperty("line.separator")); } - String resultStr = builder.toString(); - JSONObject obj = JSONObject.parseObject(resultStr); - WxFileUploadResult result = JSONObject.toJavaObject(obj, WxFileUploadResult.class); - result.setMediaId(filePath); - result.setUrl(resultStr); - return result; + JSONObject obj = JSONObject.parseObject(builder.toString()); + return JSONObject.toJavaObject(obj, WxFileUploadResult.class); } From a9cde613d91839e52f399d9c655eb67b44841262 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Wed, 3 Feb 2021 17:28:45 +0800 Subject: [PATCH 26/27] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=9A=E4=BF=97?= =?UTF-8?q?=E8=AE=A1=E9=87=8F=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/domain/SysDishesIngredient.java | 64 ++----------------- .../mapper/custom/SysDishesMapper.xml | 7 +- stdiet-ui/src/views/custom/dishes/index.vue | 25 ++++++-- 3 files changed, 29 insertions(+), 67 deletions(-) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysDishesIngredient.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysDishesIngredient.java index a65eedd56..af03ca135 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysDishesIngredient.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysDishesIngredient.java @@ -1,5 +1,6 @@ package com.stdiet.custom.domain; +import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -11,6 +12,7 @@ import java.math.BigDecimal; * @author wonder * @date 2020-12-28 */ +@Data public class SysDishesIngredient extends SysIngredient { private Long ingredientId; @@ -21,68 +23,10 @@ public class SysDishesIngredient extends SysIngredient { private BigDecimal cusWeight; + private Integer cusWei; + private BigDecimal weight; private String remark; - @Override - public void setRemark(String remark) { - this.remark = remark; - } - - @Override - public String getRemark() { - return remark; - } - - public Long getIngredientId() { - return ingredientId; - } - - public void setIngredientId(Long ingredientId) { - this.ingredientId = ingredientId; - } - - public Long getDishesId() { - return dishesId; - } - - public void setDishesId(Long dishesId) { - this.dishesId = dishesId; - } - - public BigDecimal getWeight() { - return weight; - } - - public void setWeight(BigDecimal weight) { - this.weight = weight; - } - - public BigDecimal getCusWeight() { - return cusWeight; - } - - public void setCusWeight(BigDecimal cusWeight) { - this.cusWeight = cusWeight; - } - - public Long getCusUnit() { - return cusUnit; - } - - public void setCusUnit(Long cusUnit) { - this.cusUnit = cusUnit; - } - - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("ingredientId", getIngredientId()) - .append("dishesId", getDishesId()) - .append("weight", getWeight()) - .append("cusWeight", getCusWeight()) - .append("cusUnit", getCusUnit()) - .toString(); - } } \ No newline at end of file diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysDishesMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysDishesMapper.xml index a79ab03a5..9fd7b6fa6 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysDishesMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysDishesMapper.xml @@ -28,6 +28,7 @@ + @@ -48,7 +49,7 @@ SELECT * FROM( - SELECT ingredient_id AS id, ingredient_weight AS weight, cus_weight, cus_unit, remark + SELECT ingredient_id AS id, ingredient_weight AS weight, cus_weight, cus_wei, cus_unit, remark FROM sys_dishes_ingredient WHERE dishes_id = #{id} ) dishes @@ -148,9 +149,9 @@ - insert into sys_dishes_ingredient(dishes_id, ingredient_id, ingredient_weight, cus_unit, cus_weight, remark) values + insert into sys_dishes_ingredient(dishes_id, ingredient_id, ingredient_weight, cus_unit, cus_wei, remark) values - (#{item.dishesId}, #{item.ingredientId}, #{item.weight}, #{item.cusUnit}, #{item.cusWeight}, #{item.remark}) + (#{item.dishesId}, #{item.ingredientId}, #{item.weight}, #{item.cusUnit}, #{item.cusWei}, #{item.remark}) diff --git a/stdiet-ui/src/views/custom/dishes/index.vue b/stdiet-ui/src/views/custom/dishes/index.vue index 657490bde..9cf416028 100644 --- a/stdiet-ui/src/views/custom/dishes/index.vue +++ b/stdiet-ui/src/views/custom/dishes/index.vue @@ -251,13 +251,21 @@