Commit 6bda0308 by 缪晖

Merge branch 'feature/20201208_collageOrder_miaohui' into 'master'

预发布环境问题修复

See merge request !78
parents 980f043a 5e655801
......@@ -11,6 +11,7 @@ import com.freemud.sdk.api.assortment.shoppingcart.domain.CollagePartnerMember;
import com.freemud.sdk.api.assortment.shoppingcart.service.CollageOrderBaseService;
import com.freemud.sdk.api.assortment.shoppingcart.util.CartResponseUtil;
import com.freemud.sdk.api.assortment.shoppingcart.util.DateTimeUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
......@@ -58,15 +59,18 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
*/
@Override
public BaseResponse<CollageOrder> queryCollageOrder(CollageOrderDto collageOrderDto) {
CollageOrder collageOrder = null;
try {
// 通过商户ID、门店ID、用户ID组装拼单订单Redis缓存基本信息Key
String collageBaseHashKey = this.genCollageBaseHashKey(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId());
// 查询Redis缓存中拼单订单基础信息
CollageOrder collageOrder = this.getCollageBaseHash(collageBaseHashKey);
// 若按发起人维度查询不到,则按参与人维度查询
if (ObjectUtils.isEmpty(collageOrder)) {
// 仅支持两种查询场景
// 1、createCollageUserId存在,则只根据当前三要素查询,若无直接返回不存在
if (StringUtils.isNotBlank(collageOrderDto.getCreateCollageUserId())) {
// 通过商户ID、门店ID、用户ID组装拼单订单Redis缓存基本信息Key
String collageBaseHashKey = this.genCollageBaseHashKey(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId());
// 查询Redis缓存中拼单订单基础信息
collageOrder = this.getCollageBaseHash(collageBaseHashKey);
}
// 2、createCollageUserId不存在,则只从当前商户拼单参与人信息列表中查询并返回,若商户级别拼单不存在,则提示拼单不存在
else {
String collagePartnerMemberHashKey = this.genCollagePartnerMemberHashKey(collageOrderDto.getPartnerId());
CollagePartnerMember collagePartnerMember = this.getCollagePartnerMember(collagePartnerMemberHashKey, collageOrderDto.getCurrentUserId());
......@@ -79,16 +83,13 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_NOT_EXIST);
} else {
// 从商户拼单参与人列表中获取信息再次查询拼单信息
collageBaseHashKey = this.genCollageBaseHashKey(collagePartnerMember.getPartnerId(), collagePartnerMember.getStoreId(), collagePartnerMember.getCreateCollageUserId());
String collageBaseHashKey = this.genCollageBaseHashKey(collagePartnerMember.getPartnerId(), collagePartnerMember.getStoreId(), collagePartnerMember.getCreateCollageUserId());
collageOrder = this.getCollageBaseHash(collageBaseHashKey);
// 若拼单订单信息依然不存在,则返回错误提示【拼单订单信息不存在】,由前端根据场景处理(静默、提示拼单已取消)
if (ObjectUtils.isEmpty(collageOrder)) {
return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_NOT_EXIST);
}
}
}
if (ObjectUtils.isEmpty(collageOrder)) {
return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_NOT_EXIST);
}
// 若拼单订单信息存在,则构造订单拼单对象并返回成功提示
return CartResponseUtil.success(collageOrder);
} catch (Exception e) {
......
......@@ -24,9 +24,6 @@ public class CollageOrderRequestVo {
@NotEmpty(message = "sessionId不能为空")
private String sessionId;
@ApiModelProperty(value = "当前操作人用户ID")
private String currentUserId;
@ApiModelProperty(value = "拼单创建人用户ID")
private String createCollageUserId;
......
......@@ -58,18 +58,19 @@ public class CollageOrderServiceImpl implements CollageOrderService {
@Override
public BaseResponse queryCollageOrder(CollageOrderRequestVo request) {
CollageOrderDto collageOrderDto = this.collageOrderAdapter.convert2CollageOrderDto(request);
// 查询时需传入拼单创建人的userId,若上送字段为空时,默认查询当前登录人自己的拼单信息
String currentUserId = StringUtils.isNotBlank(request.getCurrentUserId()) ? request.getCurrentUserId() : this.getUserIdBySessionId(request.getSessionId());
CustomerInfoVo userInfo = this.getUserInfo(request.getSessionId());
String currentUserId = userInfo.getMemberId();
// 当前登录人userId
collageOrderDto.setCurrentUserId(currentUserId);
// 若拼单发起人ID为空,则默认按当前用户查询
if (StringUtils.isEmpty(request.getCreateCollageUserId())) {
collageOrderDto.setCreateCollageUserId(currentUserId);
}
BaseResponse<CollageOrder> queryCollageOrderResponse = this.collageOrderBaseService.queryCollageOrder(collageOrderDto);
CollageOrder collageOrder = queryCollageOrderResponse.getResult();
// SDK查询订单返回非成功code或返回结果订单信息为空时,返回前端异常信息
Optional.ofNullable(queryCollageOrderResponse).filter(resp -> (ResponseResult.SUCCESS.getCode().equals(resp.getCode()) && !ObjectUtils.isEmpty(collageOrder))).orElseThrow(() -> new ServiceException(ResponseResult.COLLAGE_NOT_EXIST));
if (null == collageOrder) {
return ResponseUtil.error(ResponseResult.COLLAGE_NOT_EXIST);
}
// 现在改为同时可查询自己发起以及参与的拼单所以查询到拼单信息后,后续查询需要使用拼单hash的三要素信息继续查询
collageOrderDto.setPartnerId(collageOrder.getPartnerId());
......
......@@ -720,6 +720,10 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
*/
private void updatePackPrice(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ShoppingCartGoodsDto shoppingCartGoodsDto) {
if (shoppingCartGoodsResponseVo != null && shoppingCartGoodsResponseVo.getProducts() != null && shoppingCartGoodsDto != null && shoppingCartGoodsDto.getProducts() != null) {
if (shoppingCartGoodsResponseVo.getNewPackAmount() == null || shoppingCartGoodsResponseVo.getNewPackAmount() == 0) {
// 当整单包装费为0时,不计算购物车行包装费
return;
}
shoppingCartGoodsResponseVo.getProducts().stream().forEach(product -> {
shoppingCartGoodsDto.getProducts().stream().forEach(goods -> {
if (goods.getCartGoodsUid().equals(product.getCartGoodsUid())) {
......
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