Commit 3e68949e by dingkai

Merge branch 'feature/1.9.22-微商城-20200507-dingkai'

parents 71f9dd5d 5ee6ca30
package cn.freemud.entities.dto.ecology;
import lombok.Data;
@Data
public class VirtualBindStoreResponse {
/**
* 门店id
*/
private String storeId;
/**
* 类型
*/
private String type;
}
package cn.freemud.entities.dto.ecology;
import lombok.Data;
@Data
public class VirtualStoreRequest {
/**
* appid
*/
private String platformAppId;
/**
* 类型
*/
private String type;
}
......@@ -11,6 +11,8 @@ import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.PayAccessResponse;
import cn.freemud.entities.dto.ecology.VirtualBindStoreResponse;
import cn.freemud.entities.dto.ecology.VirtualStoreRequest;
import cn.freemud.entities.dto.product.AttributeValue;
import cn.freemud.entities.dto.product.GroupDetail;
import cn.freemud.entities.dto.product.ProductAttributeGroup;
......@@ -25,6 +27,7 @@ import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache;
import cn.freemud.service.BuriedPointService;
import cn.freemud.service.MallOrderService;
import cn.freemud.service.thirdparty.EcologyAdminApplicationClient;
import cn.freemud.service.thirdparty.ShoppingCartClient;
import cn.freemud.service.thirdparty.WechatApplicationServiceClient;
import cn.freemud.utils.LogUtil;
......@@ -121,6 +124,8 @@ public class MallOrderServiceImpl implements MallOrderService {
private OrderSdkService orderSdkService;
@Autowired
private WechatApplicationServiceClient wechatApplicationServiceClient;
@Autowired
private EcologyAdminApplicationClient ecologyAdminApplicationClient;
/**
* 创建订单
......@@ -214,12 +219,14 @@ public class MallOrderServiceImpl implements MallOrderService {
}
private void change2BindMallShopId(CreateOrderVo createOrderVo, String wxAppId) {
String redisKey = RedisKeyConstant.OPENSTORE_MICROMALL_BIND_STOREID_PREFIX + wxAppId;
String shopId = redisCache.getValue(redisKey);
if(StringUtils.isEmpty(shopId)) {
VirtualStoreRequest virtualStoreRequest = new VirtualStoreRequest();
virtualStoreRequest.setPlatformAppId(wxAppId);
virtualStoreRequest.setType("microMall");
BaseResponse<VirtualBindStoreResponse> virtualBindStoreResponse = ecologyAdminApplicationClient.getBuyBindVirtualStore(virtualStoreRequest);
if(virtualBindStoreResponse == null || virtualBindStoreResponse.getResult() == null || StringUtils.isBlank(virtualBindStoreResponse.getResult().getStoreId())) {
throw new ServiceException(ResponseResult.STORE_BIND_MALL_NOT_FOUND);
}
createOrderVo.setShopId(shopId);
createOrderVo.setShopId(virtualBindStoreResponse.getResult().getStoreId());
}
private OrderExtInfoDTO getExtInfo(AssortmentCustomerInfoVo userLoginInfoDto, StoreResponse.BizVO storeResponseDto, CreateOrderVo createOrderVo) {
......
package cn.freemud.service.thirdparty;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.ecology.VirtualBindStoreResponse;
import cn.freemud.entities.dto.ecology.VirtualStoreRequest;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
/**
* 生态服务
* @author: kai.ding
* @date:
*/
@FeignClient(name = "ECOLOGY-ADMIN-APPLICATION", url = "${saas.ecology.admin.application.feign.url}")
public interface EcologyAdminApplicationClient {
/**
* 获取虚拟门店
*/
@PostMapping(value = "ecology/api/app/info/getBuyBindVirtualStore", produces = MediaType.APPLICATION_JSON_VALUE ,consumes = MediaType.APPLICATION_JSON_VALUE )
BaseResponse<VirtualBindStoreResponse> getBuyBindVirtualStore(@RequestBody VirtualStoreRequest virtualStoreRequest);
}
package cn.freemud.entities.ecology;
import lombok.Data;
@Data
public class VirtualBindStoreResponse {
/**
* 门店id
*/
private String storeId;
/**
* 类型
*/
private String type;
}
package cn.freemud.entities.ecology;
import lombok.Data;
@Data
public class VirtualStoreRequest {
/**
* appid
*/
private String platformAppId;
/**
* 类型
*/
private String type;
}
......@@ -19,6 +19,8 @@ import cn.freemud.constant.ShoppingCartConstant;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.ecology.VirtualBindStoreResponse;
import cn.freemud.entities.ecology.VirtualStoreRequest;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException;
......@@ -70,6 +72,8 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
private AssortmentSdkService assortmentSdkService;
@Autowired
private AssortmentCustomerInfoManager customerInfoManager;
@Autowired
private EcologyAdminApplicationClient ecologyAdminApplicationClient;
/**
* 从微信卡券向购物车中添加商品
......@@ -659,11 +663,14 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
* 获取商城门店id
*/
private String getBindMallShopId(String wxAppId) {
String shopId = shoppingCartBaseService.getBindMallShopId(wxAppId, LogThreadLocal.getTrackingNo());
if(StringUtils.isEmpty(shopId)) {
VirtualStoreRequest virtualStoreRequest = new VirtualStoreRequest();
virtualStoreRequest.setPlatformAppId(wxAppId);
virtualStoreRequest.setType("microMall");
BaseResponse<VirtualBindStoreResponse> virtualBindStoreResponse = ecologyAdminApplicationClient.getBuyBindVirtualStore(virtualStoreRequest);
if(virtualBindStoreResponse == null || virtualBindStoreResponse.getResult() == null || StringUtils.isBlank(virtualBindStoreResponse.getResult().getStoreId())) {
throw new ServiceException(ResponseResult.STORE_MALL_NOT_FOUND);
}
return shopId;
return virtualBindStoreResponse.getResult().getStoreId();
}
}
package cn.freemud.service.thirdparty;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.ecology.VirtualBindStoreResponse;
import cn.freemud.entities.ecology.VirtualStoreRequest;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 生态服务
* @author: kai.ding
* @date:
*/
@FeignClient(name = "ECOLOGY-ADMIN-APPLICATION", url = "${saas.ecology.admin.application.feign.url}")
public interface EcologyAdminApplicationClient {
/**
* 获取虚拟门店
*/
@PostMapping(value = "ecology/api/app/info/getBuyBindVirtualStore", produces = MediaType.APPLICATION_JSON_VALUE ,consumes = MediaType.APPLICATION_JSON_VALUE )
BaseResponse<VirtualBindStoreResponse> getBuyBindVirtualStore(@RequestBody VirtualStoreRequest virtualStoreRequest);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment