Commit 4981e86a by 刘鹏飞

拼单加购

parent d999f0de
......@@ -73,4 +73,41 @@ public class RedisKeyConstant {
*/
public final static String OPENSTORE_MICROMALL_BIND_STOREID_PREFIX = "openstore:micromall:bind:storeId:";
/**
* kgd:collage:base:{partnerId}:{storeId}:{邀请用户ID}
* 拼单基础key
*/
public final static String COLLAGE_BASE_HASH_KEY = "kgd:collage:base:{0}:{1}:{2}";
/**
* kgd:collage:cart:{partnerId}:{storeId}:{邀请用户ID}
* 拼单购物车key
*/
public final static String COLLAGE_CART_HASH_KEY = "kgd:collage:cart:{0}:{1}:{2}";
/**
* kgd:collage:lock:{partnerId}:{storeId}:{邀请用户ID}
* 拼单锁定key
*/
public final static String COLLAGE_LOCK_HASH_KEY = "kgd:collage:lock:{0}:{1}:{2}";
/**
* kgd:collage:cart:ver:{partnerId}:{storeId}:{邀请用户ID}
* 拼单购物车版本号key
*/
public final static String COLLAGE_CART_VER_KEY = "kgd:collage:cart:ver:{0}:{1}:{2}";
/**
* kgd:collage:member:{partnerId}:{storeId}:{邀请用户ID}
* 拼单点餐位缓存key
*/
public final static String COLLAGE_MEMBER_KEY = "kgd:collage:member:{0}:{1}:{2}";
/**
* kgd:collage:member:state:{partnerId}:{storeId}:{邀请用户ID}
* 拼单用户选好了状态缓存key
*/
public final static String COLLAGE_MEMBER_STATE_KEY = "kgd:collage:member:state:{0}:{1}:{2}";
}
......@@ -30,6 +30,16 @@ public class CartGoods {
* 单规格spuId,多规格skuId
*/
private String goodsId;
/**
* 购买人的的sessionid
*/
private String sessionId;
/**
* 购买人的的userId
*/
private String userId;
/**
* 1.正常商品,2.商品券,3.套餐商品
*/
......
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: ShoppingCart
* @Package cn.freemud.controller
* @Description:
* @author: ping.wu
* @date: 2018/5/18 18:07
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.*;
import cn.freemud.service.impl.ShoppingCartCollageServiceImpl;
import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/shoppingCart/collage", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Api(value = "购物车 controller", tags = {"拼单购物车管理接口"})
@Slf4j
public class ShoppingCartCollageController {
/**
* 向拼单管购物车中添加商品
*/
@ApiAnnotation(logMessage = "addGoods")
@PostMapping(value = "/addGoods")
public BaseResponse addGoods(@Validated @LogParams @RequestBody AddShoppingCartGoodsRequestVo request) {
return SDKCommonBaseContextWare.getBean(ShoppingCartCollageServiceImpl.class).addGoods(request);
}
}
......@@ -25,6 +25,16 @@ public class AddShoppingCartGoodsRequestVo extends BaseRequestVo{
private String sessionId;
/**
* 拼单发起人userId
*/
private String createCollageUserId;
/**
* 购物车版本号(拼单)
*/
private Integer carVer;
/**
* 微信appId
*/
@NotEmpty(message = "appId不能为空")
......
......@@ -32,6 +32,17 @@ public class CartGoods {
* 单规格spuId,多规格skuId
*/
private String goodsId;
/**
* 购买人的的sessionid
*/
private String sessionId;
/**
* 购买人的的userId
*/
private String userId;
/**
* 1.正常商品,2.商品券,3.套餐商品
*/
......@@ -328,6 +339,11 @@ public class CartGoods {
StringBuilder originalString = new StringBuilder();
originalString.append(goodsId);
originalString.append(couponCode);
if(StringUtils.isNotEmpty(sessionId)){
originalString.append(sessionId);
}
if (CollectionUtils.isNotEmpty(extra)) {
extra.stream().sorted(Comparator.comparing(CartGoodsExtra::getAttributeId)).forEach(e -> originalString.append(e.getAttributeId()));
}
......@@ -350,6 +366,11 @@ public class CartGoods {
StringBuilder currentString = new StringBuilder();
currentString.append(cartGoods.getGoodsId());
currentString.append(cartGoods.getCouponCode());
if(StringUtils.isNotEmpty(cartGoods.getSessionId())){
currentString.append(cartGoods.getSessionId());
}
if (CollectionUtils.isNotEmpty(cartGoods.getExtra())) {
cartGoods.getExtra().stream().sorted(Comparator.comparing(CartGoodsExtra::getAttributeId)).forEach(e -> currentString.append(e.getAttributeId()));
}
......
......@@ -124,4 +124,9 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
* 配送费为零的原因:0:正常,1:超出配送范围
*/
private Integer deliveryFeeZeroReason;
/**
* 购物车版本号
*/
private Integer carVer;
}
......@@ -137,6 +137,15 @@ public enum ResponseResult {
PREMIUM_EXCHANGE_ACTIVITY_NOT_ON_LINE("47004", "换购商品不在售卖状态,请重新下单"),
/**
* 拼单
*/
COLLAGE_NOT_EXIST("49001", "拼单不存在,请确认"),
COLLAGE_LOCK("49002", "拼单已经锁定,请确定"),
COLLAGE_NOT_ADD("49003", "未加入拼单,请确定"),
COLLAGE_ALREADY_CHOOSE("49004", "拼单商品已经选购结束,请确定"),
/**
* 微信卡券
*/
WEICHAT_SHOP_NOTSUPPORT("48001", "当前门店不可用"),
......
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