From b0a68f68c491cc035333a1c90cd9848c02e66df0 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 11:39:26 +0800 Subject: [PATCH 01/21] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/controller/WechatLoginController.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index b6a3306a3..2809c1d90 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -81,12 +81,12 @@ public class WechatLoginController extends BaseController { log.debug("code: " + code); try { WxMpOAuth2AccessToken accessToken = wxMpService.oauth2getAccessToken(code); - log.debug("accessToken: " + accessToken.getAccessToken() + ", openId: " + accessToken.getOpenId() + ", unionId: " + accessToken.getUnionId()); + log.info("accessToken: " + accessToken.getAccessToken() + ", openId: " + accessToken.getOpenId() + ", unionId: " + accessToken.getUnionId()); // 获取 用户信息 WxMpUser mpUser = wxMpService.oauth2getUserInfo(accessToken, null); if(mpUser != null) { - log.debug(mpUser.toString()); + log.info(mpUser.toString()); } // check user openid 是否是已授权用户 @@ -139,12 +139,14 @@ public class WechatLoginController extends BaseController { } Object codeObj = ret.get("code"); if(codeObj == null) { + log.info("用户登录成功,切换主页"); try { response.sendRedirect("https://" + host + "/#/layout"); } catch (Exception e) { log.error(e.getMessage()); } } else { + log.info("用户登录失败-3,返回登录"); try { String errCode = URLEncoder.encode(JSON.toJSONString(ret), "utf-8"); response.sendRedirect("https://" + host + "/#/login?errcode=" + errCode); @@ -153,6 +155,7 @@ public class WechatLoginController extends BaseController { } } } else { + log.info("用户登录失败-2,返回登录"); try { String errCode = URLEncoder.encode(JSON.toJSONString(ret), "utf-8"); response.sendRedirect("https://" + host + "/#/login?errcode="+errCode); @@ -184,6 +187,7 @@ public class WechatLoginController extends BaseController { } } } else { + log.info("用户登录失败-1,返回登录"); // 跳转登录页面 Map ret = new HashMap<>(); ret.put("code", ErrorCode.WECHAT_LOGIN_NOT_BIND.getCode()); From 350c70b1e1f268750cf69b3590eaeee139859f5b Mon Sep 17 00:00:00 2001 From: luozukai Date: Tue, 19 Mar 2019 11:48:43 +0800 Subject: [PATCH 02/21] =?UTF-8?q?[=E8=90=A5=E9=94=80=E5=88=86=E6=9E=90][?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0][=E5=8D=A1=E8=90=A5=E9=94=80=E5=88=97?= =?UTF-8?q?=E8=A1=A8]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/mq/MqBaseConsumer.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java index 884066d14..d9df4913f 100644 --- a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java +++ b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java @@ -56,17 +56,20 @@ public class MqBaseConsumer { baseMsg.setMsgStatus(EnumMsgRecordStatus.CONSUME_SUCC.getCode()); wxMsgRecordMapper.update(baseMsg); }catch (Exception e){ - //todo:测试下 - if(null != baseMsg){ - if(baseMsg.getDelayTimeLevel() < 3){ - baseMsg.setDelayTimeLevel(3); //10s后重试 - mqBaseProducer.sendMessage(baseMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); - }else{ - baseMsg.setStatusMessage(e.getMessage()); - baseMsg.setMsgStatus(EnumMsgRecordStatus.CONSUME_FAIL.getCode()); - wxMsgRecordMapper.update(baseMsg); - } - } + log.error("consum received error: {}", e); + baseMsg.setStatusMessage(e.getMessage()); + baseMsg.setMsgStatus(EnumMsgRecordStatus.CONSUME_FAIL.getCode()); + wxMsgRecordMapper.update(baseMsg); +// if(null != baseMsg){ +// if(baseMsg.getDelayTimeLevel() < 3){ +// baseMsg.setDelayTimeLevel(3); //10s后重试 +// mqBaseProducer.sendMessage(baseMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); +// }else{ +// baseMsg.setStatusMessage(e.getMessage()); +// baseMsg.setMsgStatus(EnumMsgRecordStatus.CONSUME_FAIL.getCode()); +// wxMsgRecordMapper.update(baseMsg); +// } +// } } } From edcabf96459341d35b74887ae2f814c3adced8ef Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 13:05:39 +0800 Subject: [PATCH 03/21] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E7=A7=8D=E6=96=B9=E6=B3=95=E8=AF=95=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WechatLoginController.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index 2809c1d90..926fd6b14 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -37,6 +37,7 @@ import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; @@ -71,6 +72,26 @@ public class WechatLoginController extends BaseController { String userRole; } + @ApiOperation(value = "微信登录") + @GetMapping("login") + public void login(HttpServletRequest request, HttpServletResponse response) { + log.debug("[" + getIpAddr() + "] MallUserInfoController::login"); + String host = request.getHeader("host"); + log.debug("Host: " + host); + String rUrl = ""; + try { + rUrl = URLEncoder.encode("https://mall.youlane.cn/api/wechat/callback","utf-8"); + } catch (UnsupportedEncodingException e) { + log.error(e.getMessage()); + } + String wechatUrl = wxMpService.buildQrConnectUrl(rUrl, "snsapi_login", "111"); + try { + response.sendRedirect(wechatUrl); + } catch (IOException e) { + log.error(e.getMessage()); + } + } + @ApiOperation(value = "微信网页登录回调", notes = "请配置此callback到网页redirect_uri") @GetMapping("callback") @ResponseBody From d5e8ee92d03cf716f036b32953916cca32997cfb Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 13:07:40 +0800 Subject: [PATCH 04/21] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E7=A7=8D=E6=96=B9=E6=B3=95=E8=AF=95=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java b/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java index e835e2477..8a0d20707 100644 --- a/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java +++ b/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java @@ -101,6 +101,7 @@ public class ShiroConfig { filterChainDefinitionMap.put("/bHidLogin/**", "anon"); filterChainDefinitionMap.put("/sendLoginPhoneCode/**", "anon"); filterChainDefinitionMap.put("/doLoginByPhone/**", "anon"); + filterChainDefinitionMap.put("/wechat/login", "anon"); // 微信第三方登录callback filterChainDefinitionMap.put("/wechat/callback", "anon"); // 微信第三方登录callback filterChainDefinitionMap.put("/wechat/weChatUserLogin", "anon"); // 微信第三方登录绑定 // callback From eb3ebe590ef67b2e3313f5d76fd0db3c058d1797 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 13:13:35 +0800 Subject: [PATCH 05/21] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E7=A7=8D=E6=96=B9=E6=B3=95=E8=AF=95=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/controller/WechatLoginController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index 926fd6b14..cd23f5c60 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -84,7 +84,7 @@ public class WechatLoginController extends BaseController { } catch (UnsupportedEncodingException e) { log.error(e.getMessage()); } - String wechatUrl = wxMpService.buildQrConnectUrl(rUrl, "snsapi_login", "111"); + String wechatUrl = wxMpService.buildQrConnectUrl("https://mall.youlane.cn/api/wechat/callback", "snsapi_login", "111"); try { response.sendRedirect(wechatUrl); } catch (IOException e) { From 969344a8c687ca94e14c8a21c65a64039d87c5a3 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 13:22:40 +0800 Subject: [PATCH 06/21] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E7=A7=8D=E6=96=B9=E6=B3=95=E8=AF=95=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/controller/WechatLoginController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index cd23f5c60..7e47f9d4c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -162,7 +162,7 @@ public class WechatLoginController extends BaseController { if(codeObj == null) { log.info("用户登录成功,切换主页"); try { - response.sendRedirect("https://" + host + "/#/layout"); + response.sendRedirect("https://mall.youlane.cn/#/layout"); } catch (Exception e) { log.error(e.getMessage()); } From 144949a2a1b16aaed61d7a4b6411294eada82229 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 13:43:04 +0800 Subject: [PATCH 07/21] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E7=A7=8D=E6=96=B9=E6=B3=95=E8=AF=95=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WechatLoginController.java | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index 7e47f9d4c..605be155c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -78,13 +78,8 @@ public class WechatLoginController extends BaseController { log.debug("[" + getIpAddr() + "] MallUserInfoController::login"); String host = request.getHeader("host"); log.debug("Host: " + host); - String rUrl = ""; - try { - rUrl = URLEncoder.encode("https://mall.youlane.cn/api/wechat/callback","utf-8"); - } catch (UnsupportedEncodingException e) { - log.error(e.getMessage()); - } - String wechatUrl = wxMpService.buildQrConnectUrl("https://mall.youlane.cn/api/wechat/callback", "snsapi_login", "111"); + host = getHost(host); + String wechatUrl = wxMpService.buildQrConnectUrl("https://"+host+"/api/wechat/callback", "snsapi_login", "111"); try { response.sendRedirect(wechatUrl); } catch (IOException e) { @@ -92,6 +87,22 @@ public class WechatLoginController extends BaseController { } } + private String getHost(String host) { + if(host.contains("iformall.com")) { + if(host.contains("admintest")) { + host = "admin.malls.iformall.com"; + } else { + host = "admintest.malls.iformall.com"; + } + + } else if(host.contains("youlane.cn")) { + host = "mall.youlane.cn"; + } else { + host = "admin.malls.iformall.com"; + } + return host; + } + @ApiOperation(value = "微信网页登录回调", notes = "请配置此callback到网页redirect_uri") @GetMapping("callback") @ResponseBody @@ -100,10 +111,14 @@ public class WechatLoginController extends BaseController { String host = request.getHeader("host"); log.debug("host: " + host); log.debug("code: " + code); + host = getHost(host); try { WxMpOAuth2AccessToken accessToken = wxMpService.oauth2getAccessToken(code); log.info("accessToken: " + accessToken.getAccessToken() + ", openId: " + accessToken.getOpenId() + ", unionId: " + accessToken.getUnionId()); + accessToken = wxMpService.oauth2refreshAccessToken(accessToken.getRefreshToken()); + log.info("accessToken: " + accessToken.getAccessToken() + ", openId: " + accessToken.getOpenId() + ", unionId: " + accessToken.getUnionId()); + // 获取 用户信息 WxMpUser mpUser = wxMpService.oauth2getUserInfo(accessToken, null); if(mpUser != null) { @@ -162,7 +177,7 @@ public class WechatLoginController extends BaseController { if(codeObj == null) { log.info("用户登录成功,切换主页"); try { - response.sendRedirect("https://mall.youlane.cn/#/layout"); + response.sendRedirect("https://"+host+"/#/layout"); } catch (Exception e) { log.error(e.getMessage()); } From ce7864b9d78591b6d043186cde9c4d0289794f5d Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 14:04:09 +0800 Subject: [PATCH 08/21] =?UTF-8?q?[MQConsumer=E6=97=A5=E5=BF=97][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9]:=E6=97=A5=E5=BF=97=E7=9B=AE=E5=BD=95=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mallinkMQConsumer/src/main/resources/application-dev.yml | 2 +- mallinkMQConsumer/src/main/resources/application-prod.yml | 2 +- mallinkMQConsumer/src/main/resources/application-test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mallinkMQConsumer/src/main/resources/application-dev.yml b/mallinkMQConsumer/src/main/resources/application-dev.yml index 61d080451..edcc81afe 100644 --- a/mallinkMQConsumer/src/main/resources/application-dev.yml +++ b/mallinkMQConsumer/src/main/resources/application-dev.yml @@ -86,4 +86,4 @@ logging: level: tk.mybatis: debug com.iformall.mapper: debug - path: ./logs/s + path: ./logs/m diff --git a/mallinkMQConsumer/src/main/resources/application-prod.yml b/mallinkMQConsumer/src/main/resources/application-prod.yml index 71de10c00..3d9fee875 100644 --- a/mallinkMQConsumer/src/main/resources/application-prod.yml +++ b/mallinkMQConsumer/src/main/resources/application-prod.yml @@ -72,4 +72,4 @@ logging: level: tk.mybatis: debug com.iformall: debug - path: ./logs/s \ No newline at end of file + path: ./logs/m \ No newline at end of file diff --git a/mallinkMQConsumer/src/main/resources/application-test.yml b/mallinkMQConsumer/src/main/resources/application-test.yml index 5e3d7ff63..6111fc6b0 100644 --- a/mallinkMQConsumer/src/main/resources/application-test.yml +++ b/mallinkMQConsumer/src/main/resources/application-test.yml @@ -71,4 +71,4 @@ logging: level: tk.mybatis: debug com.iformall: debug - path: ./logs/s \ No newline at end of file + path: ./logs/m \ No newline at end of file From 94629a5a22bbaf07bf7608a7ebad05eaddbea8cb Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 14:12:57 +0800 Subject: [PATCH 09/21] =?UTF-8?q?[MQConsumer=E6=97=A5=E5=BF=97][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9]:=E9=85=8D=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mallinkMQConsumer/src/main/resources/application-test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/mallinkMQConsumer/src/main/resources/application-test.yml b/mallinkMQConsumer/src/main/resources/application-test.yml index 6111fc6b0..ca26cbaf6 100644 --- a/mallinkMQConsumer/src/main/resources/application-test.yml +++ b/mallinkMQConsumer/src/main/resources/application-test.yml @@ -1,7 +1,6 @@ spring: profiles: include: rabbitMQ -spring: # JDBC datasource: url: jdbc:mysql://formalldb.cfqyqflkdlit.rds.cn-northwest-1.amazonaws.com.cn:3306/mallinkTest?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false&useAffectedRows=true From 67e18711fd47199d5737a75d0d257ea45f05cc26 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 14:24:04 +0800 Subject: [PATCH 10/21] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=87=8D=E5=AE=9A=E5=90=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/controller/WechatLoginController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index 605be155c..be5aa8ee7 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -177,7 +177,7 @@ public class WechatLoginController extends BaseController { if(codeObj == null) { log.info("用户登录成功,切换主页"); try { - response.sendRedirect("https://"+host+"/#/layout"); + response.sendRedirect("https://"+host+"/#/layout?errcode=0"); } catch (Exception e) { log.error(e.getMessage()); } From ef3a1d087e0e2b4408a9a943a277068f34474860 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Tue, 19 Mar 2019 11:44:36 +0800 Subject: [PATCH 11/21] =?UTF-8?q?[=E7=89=A9=E4=B8=9A=E6=8A=BC=E9=87=91][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E6=9F=A5=E8=AF=A2=E4=B8=8D=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=8A=B6=E6=80=81]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/service/impl/WxBillPropertyServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java index a17c921bf..2b1ef8fe1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java @@ -41,7 +41,7 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { @Override public PageInfo> listAsPage(WxBillProperty record, Integer pageIndex, Integer pageSize) { //更新账单状态 - updateBillStatus(record); + //updateBillStatus(record); PageHelper.startPage(pageIndex, pageSize); List> billRentList = wxBillPropertyMapper.queryBillPropertyList(record); PageInfo> pageInfo = new PageInfo<>(billRentList); From bec117177d260fb8374fc6fc26b94af6973a501d Mon Sep 17 00:00:00 2001 From: gongbiao Date: Tue, 19 Mar 2019 14:29:12 +0800 Subject: [PATCH 12/21] =?UTF-8?q?[B=E7=AB=AF=E8=B4=A6=E5=8D=95][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9][=E6=9F=A5=E8=AF=A2]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/WxBillAllMapper.xml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml index 9ad31bc76..728920e66 100644 --- a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml @@ -157,19 +157,22 @@ rentShopType from ( select id,merchant_id,shop_id,tenant_id,'租金' name,1 bill_type_value,'租金' bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime,endtime,rent_shop_type - from wx_bill_rent where is_preview = 0 + from wx_bill_rent where is_preview = 0 and rent_contract_id in (select id from wx_rent_contract where status in + (2,3,4)) union select id,merchant_id,shop_id,tenant_id,'租赁押金' name,2 bill_type_value,'租赁押金' bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime,endtime,rent_shop_type - from wx_bill_rent_deposit + from wx_bill_rent_deposit where rent_contract_id in (select id from wx_rent_contract where status in (2,3,4)) union select id,merchant_id,shop_id,tenant_id,'物业费' name,3 bill_type_value,'物业费' bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime,endtime,rent_shop_type - from wx_bill_property where is_preview = 0 + from wx_bill_property where is_preview = 0 and property_contract_id in (select id from wx_property_contract + where status in(2,3,4)) union select id,merchant_id,shop_id,tenant_id,'物业押金' name,4 bill_type_value,'物业押金' bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime,endtime,rent_shop_type - from wx_bill_property_deposit + from wx_bill_property_deposit where property_contract_id in (select id from wx_property_contract where status in + (2,3,4)) union select id,merchant_id,shop_id,tenant_id,'水费' name,5 bill_type_value,'水费' bill_type, 0 as need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' endtime,rent_shop_type @@ -179,7 +182,7 @@ need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' endtime,rent_shop_type from wx_bill_daily where type=2 union - select id,merchant_id,shop_id,tenant_id,name,7 bill_type_value,'其他' bill_type,0 as + select id,merchant_id,shop_id,tenant_id,name,7 bill_type_vaue,'其他' bill_type,0 as need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' endtime,rent_shop_type from wx_bill_other union From 9d6a918ca2e20b499a88321efb5df62a4cedcac2 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 14:38:59 +0800 Subject: [PATCH 13/21] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:cookie?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=88=B0=E5=89=8D=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/iformall/controller/WechatLoginController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index be5aa8ee7..0d15f5d3f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -105,7 +105,6 @@ public class WechatLoginController extends BaseController { @ApiOperation(value = "微信网页登录回调", notes = "请配置此callback到网页redirect_uri") @GetMapping("callback") - @ResponseBody public void getAccessToken(String code, String state, HttpServletRequest request, HttpServletResponse response) { log.debug("[" + getIpAddr() + "] WechatLoginController::getAccessToken"); String host = request.getHeader("host"); From 00dba2600d3a124d54979f84d2c8ead70c1a893b Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 14:54:01 +0800 Subject: [PATCH 14/21] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:cookie?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=88=B0=E5=89=8D=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mallinkAdmin/src/main/java/com/iformall/config/WebConfig.java | 4 ++++ .../java/com/iformall/controller/WechatLoginController.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/config/WebConfig.java b/mallinkAdmin/src/main/java/com/iformall/config/WebConfig.java index 663a77a44..d08ea21f5 100644 --- a/mallinkAdmin/src/main/java/com/iformall/config/WebConfig.java +++ b/mallinkAdmin/src/main/java/com/iformall/config/WebConfig.java @@ -55,9 +55,13 @@ public class WebConfig implements WebMvcConfigurer { public CorsFilter corsFilter() { final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource(); final CorsConfiguration corsConfiguration = new CorsConfiguration(); + // 允许cookies跨域 corsConfiguration.setAllowCredentials(true); + // 允许向该服务器提交请求的URI, *表示全部允许 corsConfiguration.addAllowedOrigin("*"); + // 允许访问的头信息,*表示全部 corsConfiguration.addAllowedHeader("*"); + // 允许提交请求的方法, *表示全部允许 corsConfiguration.addAllowedMethod("*"); urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration); return new CorsFilter(urlBasedCorsConfigurationSource); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index 0d15f5d3f..e71a29de3 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -165,7 +165,7 @@ public class WechatLoginController extends BaseController { try { String cookieName = URLEncoder.encode(info.getUsername(), "utf-8"); Cookie unameCookie = new Cookie("uname", cookieName); - unameCookie.setMaxAge(3600); + // unameCookie.setMaxAge(3600); response.addCookie(unameCookie); } catch (Exception e) { log.error(e.getMessage()); From ed357b85be6151423f7ebaca3fa2eb56023d68c0 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 15:00:37 +0800 Subject: [PATCH 15/21] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:cookie?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=88=B0=E5=89=8D=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/controller/WechatLoginController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index e71a29de3..082518d74 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -165,7 +165,8 @@ public class WechatLoginController extends BaseController { try { String cookieName = URLEncoder.encode(info.getUsername(), "utf-8"); Cookie unameCookie = new Cookie("uname", cookieName); - // unameCookie.setMaxAge(3600); + unameCookie.setPath("/"); + unameCookie.setMaxAge(3600); response.addCookie(unameCookie); } catch (Exception e) { log.error(e.getMessage()); From c1842ae10a04bd07dbe20b826e1cd5b939d77c52 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 15:09:28 +0800 Subject: [PATCH 16/21] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:cookie?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=88=B0=E5=89=8D=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/iformall/controller/HomeController.java | 3 +++ .../java/com/iformall/controller/WechatLoginController.java | 1 + 2 files changed, 4 insertions(+) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java b/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java index 6108d635f..cf9fe7fa9 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java @@ -167,6 +167,7 @@ public class HomeController extends BaseController { try { String cookieName = URLEncoder.encode(info.getUsername(), "utf-8"); Cookie unameCookie = new Cookie("uname", cookieName); + unameCookie.setPath("/"); unameCookie.setMaxAge(3600); response.addCookie(unameCookie); } catch (Exception e) { @@ -237,6 +238,7 @@ public class HomeController extends BaseController { } String cookieName = URLEncoder.encode(info.getUsername(), "utf-8"); Cookie unameCookie = new Cookie("uname", cookieName); + unameCookie.setPath("/"); unameCookie.setMaxAge(3600); response.addCookie(unameCookie); @@ -329,6 +331,7 @@ public class HomeController extends BaseController { String cookieName = URLEncoder.encode(info.getUsername(), "utf-8"); Cookie unameCookie = new Cookie("uname", cookieName); + unameCookie.setPath("/"); unameCookie.setMaxAge(3600); response.addCookie(unameCookie); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index 082518d74..2a403dd59 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -282,6 +282,7 @@ public class WechatLoginController extends BaseController { // 登录cookie String cookieName = URLEncoder.encode(info.getUsername(), "utf-8"); Cookie unameCookie = new Cookie("uname", cookieName); + unameCookie.setPath("/"); unameCookie.setMaxAge(3600); response.addCookie(unameCookie); From 16ae1663a71ef786127325e737b3d00c837d26f4 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 15:09:59 +0800 Subject: [PATCH 17/21] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:cookie?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=88=B0=E5=89=8D=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/controller/WechatLoginController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index 2a403dd59..48396bf9f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -177,7 +177,7 @@ public class WechatLoginController extends BaseController { if(codeObj == null) { log.info("用户登录成功,切换主页"); try { - response.sendRedirect("https://"+host+"/#/layout?errcode=0"); + response.sendRedirect("https://"+host+"/#/layout"); } catch (Exception e) { log.error(e.getMessage()); } From c33447decdf1befb35d61f2bc2c8d51fe5391aa7 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 15:27:31 +0800 Subject: [PATCH 18/21] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:cookie?= =?UTF-8?q?=E8=BF=87=E6=9C=9F=E6=97=B6=E9=97=B4=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/controller/WechatLoginController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index 48396bf9f..1c2809dde 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -201,10 +201,10 @@ public class WechatLoginController extends BaseController { } } else { // 跳转登录选择页面 - String key = TOTP.generateWechatOpen(accessToken.getOpenId()); - if (openRedisTemplate.opsForValue().setIfAbsent(WECHAT_PREV + key, accessToken.getOpenId())){ - openRedisTemplate.expire(key, 30, TimeUnit.SECONDS); - } + String key = WECHAT_PREV + TOTP.generateWechatOpen(accessToken.getOpenId()); + openRedisTemplate.opsForValue().setIfAbsent(key, accessToken.getOpenId()); + // 设置过期时间 + openRedisTemplate.expire(key, 60, TimeUnit.SECONDS); List users = new ArrayList(); for(MallUserInfoVo user: userList) { DisplayUserInfo disUser = new DisplayUserInfo(); From 271bed29c52de930d15c6c8a01daf0bcee3ed41a Mon Sep 17 00:00:00 2001 From: gongbiao Date: Tue, 19 Mar 2019 16:12:11 +0800 Subject: [PATCH 19/21] =?UTF-8?q?[B=E7=AB=AF=E8=B4=A6=E5=8D=95][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9][=E6=9F=A5=E8=AF=A2]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/service/impl/WxBillAllServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index 54fca6e98..1f229f9a6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -117,6 +117,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { ArrayList typeList = new ArrayList(); typeList.add(EnumBillTypeParam.RENT_DEPOSIT.getCode()); typeList.add(EnumBillTypeParam.PROPERTY_DEPOSIT.getCode()); + typeList.add(EnumBillTypeParam.ATHER_DEPOSIT.getCode()); wxBillAll.setTypeList(typeList); } else if (wxBillAll.getBillTypeValue().equals(EnumBillType.PROPERTY.getCode())) { wxBillAll.setBillTypeValue(EnumBillTypeParam.PROPERTY.getCode()); From 65e7c819a933502f1500abe53de851c7cc66a93d Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 19 Mar 2019 16:30:47 +0800 Subject: [PATCH 20/21] =?UTF-8?q?[redis][=E4=BF=AE=E6=94=B9]:setIfAbsent?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E6=94=AF=E6=8C=81=E8=AE=BE=E7=BD=AE=E8=BF=87?= =?UTF-8?q?=E6=9C=9F=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WechatLoginController.java | 22 ++++++++++++++++--- .../interceptor/RequestInterceptor.java | 22 +++++++++++++++++-- .../interceptor/RequestInterceptor.java | 22 +++++++++++++++++-- .../interceptor/RequestInterceptor.java | 22 +++++++++++++++++-- 4 files changed, 79 insertions(+), 9 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index 1c2809dde..709e4da2d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -29,9 +29,15 @@ import org.apache.shiro.authc.UnknownAccountException; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.dao.DataAccessException; +import org.springframework.data.redis.connection.RedisConnection; +import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import redis.clients.jedis.Protocol; +import redis.clients.util.SafeEncoder; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; @@ -202,9 +208,19 @@ public class WechatLoginController extends BaseController { } else { // 跳转登录选择页面 String key = WECHAT_PREV + TOTP.generateWechatOpen(accessToken.getOpenId()); - openRedisTemplate.opsForValue().setIfAbsent(key, accessToken.getOpenId()); - // 设置过期时间 - openRedisTemplate.expire(key, 60, TimeUnit.SECONDS); + Boolean isAbsent = openRedisTemplate.execute(new RedisCallback() { + @Override + public Boolean doInRedis(RedisConnection connection) throws DataAccessException { + RedisSerializer valueSerializer = openRedisTemplate.getValueSerializer(); + RedisSerializer keySerializer = openRedisTemplate.getKeySerializer(); + Object obj = connection.execute("set", keySerializer.serialize(key), + valueSerializer.serialize(key), + SafeEncoder.encode("NX"), + SafeEncoder.encode("EX"), + Protocol.toByteArray(60)); // 60s 过期时间 + return obj != null; + } + }); List users = new ArrayList(); for(MallUserInfoVo user: userList) { DisplayUserInfo disUser = new DisplayUserInfo(); diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java index e36fb40e4..5ab7caca6 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java @@ -7,10 +7,16 @@ import com.iformall.utils.IPUtil; import com.iformall.utils.UrlCheck; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DataAccessException; +import org.springframework.data.redis.connection.RedisConnection; +import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; +import redis.clients.jedis.Protocol; +import redis.clients.util.SafeEncoder; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -78,8 +84,20 @@ public class RequestInterceptor extends HandlerInterceptorAdapter { sb.append(resultBody); String key = "request-" + HashUtil.md5(sb.toString()); - if (redisTemplate.opsForValue().setIfAbsent(key, key)) { - redisTemplate.expire(key, 3, TimeUnit.SECONDS); + Boolean isAbsent = redisTemplate.execute(new RedisCallback() { + @Override + public Boolean doInRedis(RedisConnection connection) throws DataAccessException { + RedisSerializer valueSerializer = redisTemplate.getValueSerializer(); + RedisSerializer keySerializer = redisTemplate.getKeySerializer(); + Object obj = connection.execute("set", keySerializer.serialize(key), + valueSerializer.serialize(key), + SafeEncoder.encode("NX"), + SafeEncoder.encode("EX"), + Protocol.toByteArray(3)); // 3s + return obj != null; + } + }); + if (isAbsent) { logger.info(key + ": 第一次提交"); return true; } diff --git a/mallinkBApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java b/mallinkBApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java index 2af9d1b15..237bbbda7 100644 --- a/mallinkBApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java +++ b/mallinkBApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java @@ -4,10 +4,16 @@ import com.iformall.utils.HashUtil; import com.iformall.utils.IPUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DataAccessException; +import org.springframework.data.redis.connection.RedisConnection; +import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; +import redis.clients.jedis.Protocol; +import redis.clients.util.SafeEncoder; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -70,8 +76,20 @@ public class RequestInterceptor extends HandlerInterceptorAdapter { sb.append(resultBody); String key = "request-" + HashUtil.md5(sb.toString()); - if (redisTemplate.opsForValue().setIfAbsent(key, key)) { - redisTemplate.expire(key, 3, TimeUnit.SECONDS); + Boolean isAbsent = redisTemplate.execute(new RedisCallback() { + @Override + public Boolean doInRedis(RedisConnection connection) throws DataAccessException { + RedisSerializer valueSerializer = redisTemplate.getValueSerializer(); + RedisSerializer keySerializer = redisTemplate.getKeySerializer(); + Object obj = connection.execute("set", keySerializer.serialize(key), + valueSerializer.serialize(key), + SafeEncoder.encode("NX"), + SafeEncoder.encode("EX"), + Protocol.toByteArray(3)); // 3s + return obj != null; + } + }); + if (isAbsent) { logger.info(key + ": 第一次提交"); return true; } diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java index 4c2e2e170..c811c6b12 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java @@ -4,10 +4,16 @@ import com.iformall.utils.HashUtil; import com.iformall.utils.IPUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DataAccessException; +import org.springframework.data.redis.connection.RedisConnection; +import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; +import redis.clients.jedis.Protocol; +import redis.clients.util.SafeEncoder; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -72,8 +78,20 @@ public class RequestInterceptor extends HandlerInterceptorAdapter { sb.append(resultBody); String key = "request-" + HashUtil.md5(sb.toString()); - if (redisTemplate.opsForValue().setIfAbsent(key, key)) { - redisTemplate.expire(key, 3, TimeUnit.SECONDS); + Boolean isAbsent = redisTemplate.execute(new RedisCallback() { + @Override + public Boolean doInRedis(RedisConnection connection) throws DataAccessException { + RedisSerializer valueSerializer = redisTemplate.getValueSerializer(); + RedisSerializer keySerializer = redisTemplate.getKeySerializer(); + Object obj = connection.execute("set", keySerializer.serialize(key), + valueSerializer.serialize(key), + SafeEncoder.encode("NX"), + SafeEncoder.encode("EX"), + Protocol.toByteArray(3)); // 3s + return obj != null; + } + }); + if (isAbsent) { logger.info(key + ": 第一次提交"); logger.debug("preHandle start 2"); return true; From dc70715f0859da32a71869bd4e27bc63d588e36f Mon Sep 17 00:00:00 2001 From: gongbiao Date: Tue, 19 Mar 2019 16:58:43 +0800 Subject: [PATCH 21/21] =?UTF-8?q?[=E6=8B=BC=E5=9B=A2][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E9=80=80=E6=AC=BE]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schedule/OrderExpiringSchedule.java | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index 3e46bc15a..5f09e04a7 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -2,7 +2,6 @@ package com.iformall.schedule; import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxOrder; -import com.iformall.domain.po.WxOrderGroup; import com.iformall.enums.EnumAppType; import com.iformall.enums.EnumOrderStatus; import com.iformall.enums.EnumOrderType; @@ -82,24 +81,36 @@ public class OrderExpiringSchedule { } }); - //拼团 过期与失败 - List orderGroups = wxOrderGroupService.findList(null); - orderGroups.stream().forEach(g -> { + + //拼团过期 + WxOrder order = new WxOrder(); + order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_OVERTIME.getCode()); + wxOrderMapper.select(order).parallelStream().forEach(o -> { try { - wxOrderGroupService.updateGroupStatus(g); + returnMoney(o); } catch (Exception e) { - logger.error(e.getMessage()); + logger.error("拼团过期退款失败" + e.getMessage()); + } + }); + + + //拼团券下架 + order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_CANCEL.getCode()); + wxOrderMapper.select(order).parallelStream().forEach(o -> { + try { + returnMoney(o); + } catch (Exception e) { + logger.error("拼团券下架退款失败" + e.getMessage()); } }); //参团失败 - WxOrder order = new WxOrder(); order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_FAILD.getCode()); wxOrderMapper.select(order).parallelStream().forEach(o -> { try { returnMoney(o); } catch (Exception e) { - logger.error("拼团订单退款失败" + e.getMessage()); + logger.error("参团失败退款失败" + e.getMessage()); } });