From 6d114ac4663d3ea89c421c33d9fe9ae77688d01a Mon Sep 17 00:00:00 2001 From: hupeng Date: Sat, 14 Mar 2020 18:21:07 +0800 Subject: [PATCH] =?UTF-8?q?yshop2.0.3=E6=96=B0=E5=A2=9E=E5=85=AC=E4=BC=97?= =?UTF-8?q?=E5=8F=B7=E8=8E=B7=E5=8F=96=E5=BE=AE=E4=BF=A1=E5=9C=B0=E5=9D=80?= =?UTF-8?q?=E6=9D=83=E9=99=90,=E4=BC=98=E5=8C=96=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/StoreOrderController.java | 17 ++---- .../modules/security/rest/AuthController.java | 52 +++++++------------ .../user/service/impl/YxUserServiceImpl.java | 5 +- .../service/impl/YxWechatUserServiceImpl.java | 4 +- .../web/controller/WechatController.java | 3 +- 5 files changed, 32 insertions(+), 49 deletions(-) diff --git a/yshop-api/src/main/java/co/yixiang/modules/order/web/controller/StoreOrderController.java b/yshop-api/src/main/java/co/yixiang/modules/order/web/controller/StoreOrderController.java index 378e1948..2a83982a 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/order/web/controller/StoreOrderController.java +++ b/yshop-api/src/main/java/co/yixiang/modules/order/web/controller/StoreOrderController.java @@ -130,28 +130,19 @@ public class StoreOrderController extends BaseController { other.setIntegralFull(systemConfigService.getData("integral_full")); other.setIntegralMax(systemConfigService.getData("integral_max")); - //todo 拼团 砍价 秒杀 + //拼团 砍价 秒杀 int combinationId = 0; - if(cartId.split(",").length == 1){ - YxStoreCartQueryVo cartQueryVo = cartService.getYxStoreCartById(Integer - .valueOf(cartId)); - combinationId = cartQueryVo.getCombinationId(); - } - int secKillId = 0; - if(cartId.split(",").length == 1){ - YxStoreCartQueryVo cartQueryVo = cartService.getYxStoreCartById(Integer - .valueOf(cartId)); - secKillId = cartQueryVo.getSeckillId(); - } - int bargainId = 0; if(cartId.split(",").length == 1){ YxStoreCartQueryVo cartQueryVo = cartService.getYxStoreCartById(Integer .valueOf(cartId)); + combinationId = cartQueryVo.getCombinationId(); + secKillId = cartQueryVo.getSeckillId(); bargainId = cartQueryVo.getBargainId(); } + //拼团砍价秒杀类产品不参与抵扣 if(combinationId > 0 || secKillId > 0 || bargainId > 0) confirmOrderDTO.setDeduction(true); diff --git a/yshop-api/src/main/java/co/yixiang/modules/security/rest/AuthController.java b/yshop-api/src/main/java/co/yixiang/modules/security/rest/AuthController.java index c46955fd..2d8f334c 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/security/rest/AuthController.java +++ b/yshop-api/src/main/java/co/yixiang/modules/security/rest/AuthController.java @@ -156,27 +156,20 @@ public class AuthController { WxMpOAuth2AccessToken wxMpOAuth2AccessToken = wxService.oauth2getAccessToken(code); WxMpUser wxMpUser = wxService.oauth2getUserInfo(wxMpOAuth2AccessToken, null); String openid = wxMpUser.getOpenId(); - YxWechatUser wechatUser = wechatUserService.getUserInfo(openid); + YxUser yxUser = userService.findByName(openid); JwtUser jwtUser = null; - if (ObjectUtil.isNotNull(wechatUser)) { - YxUserQueryVo yxUserQueryVo = userService.getYxUserById(wechatUser.getUid()); - if (ObjectUtil.isNotNull(yxUserQueryVo)) { - jwtUser = (JwtUser) userDetailsService.loadUserByUsername(wechatUser.getOpenid()); - } else { - if (ObjectUtil.isNotNull(wechatUser)) { - wechatUserService.removeById(wechatUser.getUid()); - } - if (ObjectUtil.isNotNull(yxUserQueryVo)) { - userService.removeById(yxUserQueryVo.getUid()); - } - return ApiResult.fail(ApiCode.FAIL_AUTH, "授权失败"); - } - - + if (ObjectUtil.isNotNull(yxUser)) { + jwtUser = (JwtUser) userDetailsService.loadUserByUsername(openid); } else { + //如果后台删除了用户 + YxWechatUser wechatUser = wechatUserService.getUserInfo(openid); + if(wechatUser != null){ + wechatUserService.removeById(wechatUser.getUid()); + } + //过滤掉表情 String nickname = EmojiParser.removeAllEmojis(wxMpUser.getNickname()); log.info("昵称:{}", nickname); @@ -293,27 +286,22 @@ public class AuthController { wxMaConfig.setAppid(appId); wxMaConfig.setSecret(secret); - wxMaService.setWxMaConfig(wxMaConfig); WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(code); - YxWechatUser wechatUser = wechatUserService.getUserAppInfo(session.getOpenid()); - ; + String openid = session.getOpenid(); + + YxUser yxUser = userService.findByName(openid); JwtUser jwtUser = null; - if (ObjectUtil.isNotNull(wechatUser)) { - YxUserQueryVo yxUserQueryVo = userService.getYxUserById(wechatUser.getUid()); - if (ObjectUtil.isNotNull(yxUserQueryVo)) { - jwtUser = (JwtUser) userDetailsService.loadUserByUsername(wechatUser.getRoutineOpenid()); - } else { - if (ObjectUtil.isNotNull(wechatUser)) { - wechatUserService.removeById(wechatUser.getUid()); - } - if (ObjectUtil.isNotNull(yxUserQueryVo)) { - userService.removeById(yxUserQueryVo.getUid()); - } - return ApiResult.fail(ApiCode.FAIL_AUTH, "授权失败"); + if (ObjectUtil.isNotNull(yxUser)) { + jwtUser = (JwtUser) userDetailsService.loadUserByUsername(openid); + } else { + + //如果后台删除了用户 + YxWechatUser wechatUser = wechatUserService.getUserAppInfo(openid); + if(wechatUser != null){ + wechatUserService.removeById(wechatUser.getUid()); } - } else { WxMaUserInfo wxMpUser = wxMaService.getUserService() .getUserInfo(session.getSessionKey(), encryptedData, iv); //过滤掉表情 diff --git a/yshop-api/src/main/java/co/yixiang/modules/user/service/impl/YxUserServiceImpl.java b/yshop-api/src/main/java/co/yixiang/modules/user/service/impl/YxUserServiceImpl.java index abeeb8c1..f1d0b701 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/user/service/impl/YxUserServiceImpl.java +++ b/yshop-api/src/main/java/co/yixiang/modules/user/service/impl/YxUserServiceImpl.java @@ -13,6 +13,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import co.yixiang.common.service.impl.BaseServiceImpl; import co.yixiang.common.web.vo.Paging; +import co.yixiang.exception.ErrorRequestException; import co.yixiang.modules.order.service.YxStoreOrderService; import co.yixiang.modules.order.web.vo.YxStoreOrderQueryVo; import co.yixiang.modules.shop.service.YxStoreCouponUserService; @@ -423,13 +424,15 @@ public class YxUserServiceImpl extends BaseServiceImpl imp @Override public YxUserQueryVo getYxUserById(Serializable id){ YxUserQueryVo userQueryVo = yxUserMapper.getYxUserById(id); - userQueryVo.setOrderStatusNum(orderService.orderData((int)id)); return userQueryVo; } @Override public YxUserQueryVo getNewYxUserById(Serializable id) { YxUserQueryVo userQueryVo = yxUserMapper.getYxUserById(id); + if(userQueryVo == null){ + throw new ErrorRequestException("用户不存在"); + } userQueryVo.setOrderStatusNum(orderService.orderData((int)id)); userQueryVo.setCouponCount(storeCouponUserService.getUserValidCouponCount((int)id)); //判断分销类型 diff --git a/yshop-api/src/main/java/co/yixiang/modules/user/service/impl/YxWechatUserServiceImpl.java b/yshop-api/src/main/java/co/yixiang/modules/user/service/impl/YxWechatUserServiceImpl.java index aed04a6b..b37dc2db 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/user/service/impl/YxWechatUserServiceImpl.java +++ b/yshop-api/src/main/java/co/yixiang/modules/user/service/impl/YxWechatUserServiceImpl.java @@ -46,14 +46,14 @@ public class YxWechatUserServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>(); - wrapper.eq("routine_openid",openid); + wrapper.eq("routine_openid",openid).last("limit 1"); return yxWechatUserMapper.selectOne(wrapper); } @Override public YxWechatUser getUserInfo(String openid) { QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("openid",openid); + wrapper.eq("openid",openid).last("limit 1"); return yxWechatUserMapper.selectOne(wrapper); } diff --git a/yshop-api/src/main/java/co/yixiang/modules/wechat/web/controller/WechatController.java b/yshop-api/src/main/java/co/yixiang/modules/wechat/web/controller/WechatController.java index e83221e7..ea2e92a2 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/wechat/web/controller/WechatController.java +++ b/yshop-api/src/main/java/co/yixiang/modules/wechat/web/controller/WechatController.java @@ -93,7 +93,8 @@ public class WechatController extends BaseController { map.put("appId",jsapiSignature.getAppId()); map.put("jsApiList",new String[]{"updateAppMessageShareData","openLocation","scanQRCode", - "chooseWXPay","updateAppMessageShareData","updateTimelineShareData"}); + "chooseWXPay","updateAppMessageShareData","updateTimelineShareData", + "openAddress","editAddress"}); map.put("nonceStr",jsapiSignature.getNonceStr()); map.put("signature",jsapiSignature.getSignature()); map.put("timestamp",jsapiSignature.getTimestamp());