From 4c67c1376a9cc9ebcfaa641c67964788e3efab03 Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 28 Nov 2022 19:52:05 +0800 Subject: [PATCH] //b test --- .../controller/WxOrderController.java | 25 +++++++++++-------- .../interceptor/AuthorizationInterceptor.java | 8 ++++++ .../com/iformall/service/WxOrderService.java | 2 +- .../service/impl/WxOrderServiceImpl.java | 3 ++- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index 2378c58e3..dc63d351f 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -61,6 +61,9 @@ import java.util.*; public class WxOrderController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired + private WxMallService mallService; + @Autowired private WxCouponChannelService wxCouponChannelService; @@ -207,9 +210,10 @@ public class WxOrderController extends BaseController { map.put("err_tips","透传字段格式不正确"); return map; } + WxMall mall = mallService.getByTenantId(tenantId); - //验证app - WxAppinfo appinfo = wxAppinfoService.getByAppIdFromRedis(app_id,tenantId); + //验证app todo 想想集团版多小程序和单小程序怎么处理 + WxAppinfo appinfo = wxAppinfoService.getByAppIdFromRedis(app_id,mall.getFinalTenantId()); if(appinfo == null || !EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) || !EnumAppType.C.getCode().equals(appinfo.getType())){ map.put("err_no",ErrorCode.APP_ID_NOT_FOUND.getCode()); @@ -223,10 +227,10 @@ public class WxOrderController extends BaseController { return map; } TenantEntity tenantEntity = new TenantEntity(); - tenantEntity.updateTenantInfo(appinfo); + tenantEntity.updateTenantInfo(mall); //验证用户 Long memberId = null; - TtCUser cuser = (TtCUser) cuserFactory.getCUserService(EnumAppPlat.TOUTIAO).getByOpenId(open_id, tenantEntity.getTenantId()); + TtCUser cuser = (TtCUser) cuserFactory.getCUserService(EnumAppPlat.TOUTIAO).getByOpenId(open_id, appinfo.getTenantId()); if(cuser != null && cuser.getUserId() != null){ memberId = cuser.getUserId(); } @@ -253,7 +257,7 @@ public class WxOrderController extends BaseController { Map data = new HashMap<>(); data.put("out_order_no",order.getMainOrderId().toString()); data.put("pay_expire_seconds",14*60); - data.put("order_entry_schema",wxOrderService.getOrderEntrySchema(order.getMainOrderId())); + data.put("order_entry_schema",wxOrderService.getOrderEntrySchema(mall.getTenantId(),order.getMainOrderId())); if(order.getExtParam() != null && !order.getExtParam().isEmpty()){ data.put("order_goods_info",order.getExtParam()); } @@ -756,9 +760,10 @@ public class WxOrderController extends BaseController { String app_id = msgObject.getString("app_id"); String open_id = msgObject.getString("open_id"); String cp_extra = msgObject.getString("cp_extra"); - + String tenantId = getTenantId(cp_extra); + WxMall mall = mallService.getByTenantId(tenantId); //验证app - WxAppinfo appinfo = wxAppinfoService.getByAppId(app_id,getTenantId(cp_extra)); + WxAppinfo appinfo = wxAppinfoService.getByAppId(app_id); if(appinfo == null || !EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) || !EnumAppType.C.getCode().equals(appinfo.getType())){ map.put("err_no",ErrorCode.APP_ID_NOT_FOUND.getCode()); @@ -772,10 +777,10 @@ public class WxOrderController extends BaseController { return map; } TenantEntity tenantEntity = new TenantEntity(); - tenantEntity.updateTenantInfo(appinfo); + tenantEntity.updateTenantInfo(mall); //验证用户 Long memberId = null; - TtCUser cuser = (TtCUser) cuserFactory.getCUserService(EnumAppPlat.TOUTIAO).getByOpenId(open_id, tenantEntity.getTenantId()); + TtCUser cuser = (TtCUser) cuserFactory.getCUserService(EnumAppPlat.TOUTIAO).getByOpenId(open_id, appinfo.getTenantId()); if(cuser != null && cuser.getUserId() != null){ memberId = cuser.getUserId(); } @@ -794,7 +799,7 @@ public class WxOrderController extends BaseController { WxRefundOrder refundOrder = (WxRefundOrder) resultData.data; Map data = new HashMap<>(); data.put("out_refund_no",refundOrder.getId().toString()); - data.put("order_entry_schema",wxOrderService.getOrderEntrySchema(Long.parseLong(refundOrder.getPayOrderNo()))); + data.put("order_entry_schema",wxOrderService.getOrderEntrySchema(mall.getTenantId(),Long.parseLong(refundOrder.getPayOrderNo()))); map.put("data",data); map.put("err_no",0); map.put("err_tips",resultData.message); diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 0b94c502a..e773e7972 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -1,6 +1,7 @@ package com.iformall.interceptor; +import com.alibaba.fastjson.JSONObject; import com.iformall.annotation.AuthIgnore; import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; @@ -75,6 +76,13 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(StringUtils.isBlank(mallTenantId)){ mallTenantId = request.getParameter("mallTenantId"); } + if(StringUtils.isBlank(mallTenantId)){ + try{ + String body = ((BodyReaderHttpServletRequestWrapper) request).getBody(); + mallTenantId = JSONObject.parseObject(body).getString("mallTenantId"); + }catch(Exception e){} + } + String tenantId = null; String parenTenantId = null; //设置userId到request里,后续根据userId,获取用户信息 diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java index ede0b39ee..e43827e78 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java @@ -265,7 +265,7 @@ public interface WxOrderService { WxBatchOrder getWxBatchOrder(TenantEntity tenantInfo, Long orderId); - Map getOrderEntrySchema(Long mainOrderId); + Map getOrderEntrySchema(String tenantId,Long mainOrderId); int updateCpsStatus(WxOrder order); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 766489fbc..e226c51a2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -3588,11 +3588,12 @@ public class WxOrderServiceImpl implements WxOrderService { } @Override - public Map getOrderEntrySchema(Long mainOrderId) { + public Map getOrderEntrySchema(String tenantId,Long mainOrderId) { Map map = new HashMap<>(); map.put("path", Constant.mainPageUrl); Map paramMap = new HashMap<>(); paramMap.put("type","dt"); + paramMap.put("tenantId",tenantId); paramMap.put("orderId",mainOrderId); map.put("params", JSON.toJSONString(paramMap)); return map;