Commit 69d01fc7 by dingkai

mall购物车

parent a8ee3722
......@@ -96,6 +96,7 @@ public class ShoppingCartConvertAdapter {
cartGoodsDetailDto.setCouponCode(cartGoods.getCouponCode());
cartGoodsDetailDto.setStockLimit(cartGoods.isStockLimit());
cartGoodsDetailDto.setCustomerCode(cartGoods.getCustomerCode());
cartGoodsDetailDto.setWeight(cartGoods.getWeight());
cartGoodsDetailDto.setUnit(cartGoods.getUnit());
cartGoodsDetailDto.setActivityDiscountsDtos(new ArrayList<>());
cartGoodsDetailDto.setTotalDiscountAmount(0);
......@@ -227,6 +228,7 @@ public class ShoppingCartConvertAdapter {
cartGoodsDetailDto.setIsFixedProduct(isFixed);
cartGoodsDetailDto.setStockLimit(cartGoods.isStockLimit());
cartGoodsDetailDto.setCustomerCode(comboxGoods.getCustomerCode());
cartGoodsDetailDto.setWeight(comboxGoods.getWeight());
cartGoodsDetailDto.setUnit(comboxGoods.getUnit());
List<ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra> cartGoodsExtras = BeanUtil.convertBeans(comboxGoods.getExtra(), ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra::new);
cartGoodsDetailDto.setExtraList(cartGoodsExtras);
......
......@@ -14,8 +14,11 @@ package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.CreateOrderType;
import cn.freemud.enums.OrderChannelType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.service.ShoppingCartNewService;
import cn.freemud.service.impl.ShoppingCartMallServiceImpl;
import cn.freemud.service.impl.ShoppingCartMealServiceImpl;
import cn.freemud.service.impl.ShoppingCartNewServiceImpl;
import cn.freemud.utils.ResponseUtil;
......@@ -52,7 +55,7 @@ public class ShoppingCartController {
@ApiAnnotation(logMessage = "addGoodsByCard")
@PostMapping(value = "/addGoodsByCard")
public BaseResponse addGoodsByCard(@Validated @LogParams @RequestBody AddGoodsByWeixinCardRequestVo request) {
return getInstanceBySessionId(request.getSessionId()).addGoodsByCard(request);
return getInstanceByRequest(request).addGoodsByCard(request);
}
/**
......@@ -61,7 +64,7 @@ public class ShoppingCartController {
@ApiAnnotation(logMessage = "addGoods")
@PostMapping(value = "/addGoods")
public BaseResponse addGoods(@Validated @LogParams @RequestBody AddShoppingCartGoodsRequestVo request) {
return getInstanceBySessionId(request.getSessionId()).addGoods(request);
return getInstanceByRequest(request).addGoods(request);
}
/**
......@@ -70,7 +73,7 @@ public class ShoppingCartController {
@ApiAnnotation(logMessage = "updateGoodsQty")
@PostMapping(value = "/updateGoodsQty")
public BaseResponse updateGoodsQty(@Validated @LogParams @RequestBody UpdateShoppingCartGoodsQtyRequestVo request) {
return getInstanceBySessionId(request.getSessionId()).updateGoodsQty(request);
return getInstanceByRequest(request).updateGoodsQty(request);
}
/**
......@@ -79,7 +82,7 @@ public class ShoppingCartController {
@ApiAnnotation(logMessage = "listCartGoods")
@PostMapping(value = "/listCartGoods")
public BaseResponse listCartGoods(@Validated @LogParams @RequestBody ShoppingCartInfoRequestVo request) {
return getInstanceBySessionId(request.getSessionId()).getGoodsList(request);
return getInstanceByRequest(request).getGoodsList(request);
}
/**
......@@ -89,7 +92,7 @@ public class ShoppingCartController {
@ApiAnnotation(logMessage = "listCartGoodsCheck")
@PostMapping(value = "/listCartGoodsCheck")
public BaseResponse listCartGoodsCheck(@Validated @LogParams @RequestBody ShoppingCartInfoRequestVo request) {
return getInstanceBySessionId(request.getSessionId()).getGoodsListCheck(request);
return getInstanceByRequest(request).getGoodsListCheck(request);
}
// /**
......@@ -115,7 +118,7 @@ public class ShoppingCartController {
return getInstanceByIAppId(IappIdType.WC_XCX.getCode()).clear(request);
}
return getInstanceBySessionId(sessionId).clear(request);
return getInstanceByRequest(request).clear(request);
}
/**
......@@ -131,12 +134,20 @@ public class ShoppingCartController {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
ShoppingCartInfoRequestVo shoppingCartInfoRequestVo = getShoppingCartGoodsApportionRequestVo.getShoppingCartInfoRequestVo();
return getInstanceBySessionId(shoppingCartInfoRequestVo.getSessionId()).
return getInstanceByRequest(shoppingCartInfoRequestVo).
getShoppingCartGoods(shoppingCartInfoRequestVo,
getShoppingCartGoodsApportionRequestVo.getPremiumExchangeActivity());
}
private ShoppingCartNewService getInstanceByRequest(BaseRequestVo requestVo) {
if(requestVo.getChannelType() != null && OrderChannelType.MALL.getCode().equals(requestVo.getChannelType())) {
return SDKCommonBaseContextWare.getBean(ShoppingCartMallServiceImpl.class);
} else {
return getInstanceBySessionId(requestVo.getSessionId());
}
}
private ShoppingCartNewService getInstanceBySessionId(String sessionId) {
AssortmentCustomerInfoVo assortmentCustomerInfoVo = customerInfoManager.getCustomerInfoByObject(sessionId);
......
......@@ -179,6 +179,10 @@ public class ShoppingCartGoodsDto {
*/
private String customerCode;
/**
* 重量
*/
private Double weight;
/**
* 单位
*/
private String unit;
......
......@@ -18,22 +18,11 @@ import javax.validation.constraints.NotNull;
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class AddGoodsByWeixinCardRequestVo {
public class AddGoodsByWeixinCardRequestVo extends BaseRequestVo{
@NotEmpty(message = "sessionId不能为空")
private String sessionId;
/**
* 商户Id
*/
@NotEmpty(message = "partnerId不能为空")
private String partnerId;
/**
* 门店Id
*/
@NotEmpty(message = "shopId不能为空")
private String shopId;
/**
* 微信appId
*/
@NotEmpty(message = "appId不能为空")
......
......@@ -19,20 +19,10 @@ import org.hibernate.validator.constraints.NotEmpty;
import java.util.List;
@Data
public class AddShoppingCartGoodsRequestVo {
public class AddShoppingCartGoodsRequestVo extends BaseRequestVo{
@NotEmpty(message = "sessionId不能为空")
private String sessionId;
/**
* 商户Id
*/
@NotEmpty(message = "partnerId不能为空")
private String partnerId;
/**
* 门店Id
*/
@NotEmpty(message = "shopId不能为空")
private String shopId;
/**
* 微信appId
......@@ -49,11 +39,6 @@ public class AddShoppingCartGoodsRequestVo {
*/
private List<CartGoods.CartGoodsExtra> extra;
/**
* 下单类型 CreateOrderType 自取和外卖
*/
private Integer orderType;
private String version;
/**
......@@ -76,6 +61,8 @@ public class AddShoppingCartGoodsRequestVo {
private String appType;
private String tableNumber;
/**
* 数量
*/
private Integer qty;
}
package cn.freemud.entities.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.NotEmpty;
@Data
public class BaseRequestVo {
private String sessionId;
/**
* 商户Id
*/
@NotEmpty(message = "partnerId不能为空")
private String partnerId;
/**
* 门店Id
*/
@NotEmpty(message = "shopId不能为空")
private String shopId;
/**
* 下单类型 CreateOrderType 外卖、到店、商城
*/
private Integer orderType;
/**
* 渠道类型 OrderChannelType
*/
private String channelType;
}
......@@ -40,6 +40,10 @@ public class CartGoods {
*/
private boolean weightType;
/**
* 重量
*/
private Double weight;
/**
* 单位
*/
private String unit;
......@@ -222,6 +226,10 @@ public class CartGoods {
*/
private boolean weightType;
/**
* 重量
*/
private Double weight;
/**
* 单位
*/
private String unit;
......
......@@ -16,21 +16,12 @@ import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
@Data
public class ShoppingCartClearRequestVo {
public class ShoppingCartClearRequestVo extends BaseRequestVo {
// @NotEmpty(message = "sessionId不能为空")
private String sessionId;
@NotEmpty(message = "partnerId不能为空")
private String partnerId;
@NotEmpty(message = "shopId不能为空")
private String shopId;
//@NotEmpty(message = "appId不能为空")
private String appId;
private String userId;
private Integer orderType;
/**
* 清空操作类型(围餐)
* 1:下单成功清理下单购物车
......
......@@ -25,7 +25,10 @@ import java.util.List;
@NoArgsConstructor
@Data
@Builder
public class ShoppingCartInfoRequestVo {
public class ShoppingCartInfoRequestVo extends BaseRequestVo {
@NotEmpty(message = "sessionId不能为空")
private String sessionId;
private String version;
/**
......@@ -33,15 +36,6 @@ public class ShoppingCartInfoRequestVo {
*/
private Integer carVer;
@NotEmpty(message = "sessionId不能为空")
private String sessionId;
@NotEmpty(message = "partnerId不能为空")
private String partnerId;
@NotEmpty(message = "shopId不能为空")
private String shopId;
@NotEmpty(message = "appId不能为空")
private String appId;
/**
......@@ -56,10 +50,6 @@ public class ShoppingCartInfoRequestVo {
* 优惠券对应的活动号
*/
private String activityCode;
/**
* 下单类型 CreateOrderType 自取和外卖
*/
private Integer orderType;
/**
* 到店类型 orderType 传1的时候 如果reachStoreTyp为空转成订单类型4 如果不为空存储4(打包带走)和5(店内就餐)
......@@ -90,6 +80,7 @@ public class ShoppingCartInfoRequestVo {
*/
private BuyMemberCard buyMemberCard;
@Data
public final static class SendGoods {
/**
......
......@@ -18,20 +18,10 @@ import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Data
public class UpdateShoppingCartGoodsQtyRequestVo {
public class UpdateShoppingCartGoodsQtyRequestVo extends BaseRequestVo {
@NotEmpty(message = "sessionId不能为空")
private String sessionId;
/**
* 商户Id
*/
@NotEmpty(message = "partnerId不能为空")
private String partnerId;
/**
* 门店Id
*/
@NotEmpty(message = "shopId不能为空")
private String shopId;
@NotEmpty(message = "appId不能为空")
private String appId;
......@@ -47,11 +37,6 @@ public class UpdateShoppingCartGoodsQtyRequestVo {
@NotNull(message = "qty不能为空")
private Integer qty;
/**
* 下单类型 CreateOrderType 自取和外卖
*/
private Integer orderType;
private String version;
/**
* 购物车版本号(围餐)
......
......@@ -16,7 +16,9 @@ public enum OrderChannelType {
SAAS("saas", "saas小程序"),
IMG("img", "爱马哥小程序");
IMG("img", "爱马哥小程序"),
MALL("mall", "商城");
private String code;
......
......@@ -57,6 +57,7 @@ public enum ResponseResult {
STORE_ITEM_NOT_IN_DELIVERY_LIMIT_AMOUNT("43009", "订单金额未满足门店起送费"),
STORE_BUSINESS_HOUR_ERROR("43010", "门店营业时间错误"),
STORE_NOT_ENABLE_COLLECT_GOODS("43011", "门店不支持到店"),
STORE_MALL_NOT_FOUND("43012", "商城门店不存在"),
/**
* 购物车状态码
......
package cn.freemud.controller;
import cn.freemud.ShoppingCartApplication;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.ResponseResult;
import com.alibaba.fastjson.JSONObject;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import java.util.ArrayList;
import java.util.List;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: ShoppingCartControllerTest
* @Package cn.freemud.controller
* @Description: 简单描述下这个类是做什么用的
* @author: zhenghuan.yang
* @date: 2018/6/25 17:30
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = ShoppingCartApplication.class)
public class ShoppingCartControllerMallTest {
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
/**
* 添加商品
*/
@Test
public void addGoods() {
String str = "{\"spuId\":\"154916516745371156\",\"skuId\":\"\",\"qty\":10,\"categoryId\":\"0101\",\"categoryName\":\"1分钱\"," +
"\"productComboList\":[],\"productGroupList\":[],\"channelType\":\"mall\",\"partnerId\":\"1864\",\"appId\":\"wxb78fb7c6218cb52c\"," +
"\"sessionId\":\"testMallUser\",\"orderType\":\"\",\"shopId\":\"0000622\"}";
try {
mockMvc.perform(post("/shoppingCart/addGoods").content(str).
contentType(MediaType.APPLICATION_JSON_UTF8).accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print()).
andExpect(jsonPath("$.code").value("100"));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 更新数量
*/
@Test
public void updateGoodsQty() {
String requestJson = "{\"shopId\":\"0000622\",\"cartGoodsUid\":\"3c6c126b-ce1a-4489-930d-28940c4edb0a\",\"qty\":3,\"channelType\":\"mall\"," +
"\"partnerId\":\"1864\",\"appId\":\"wxb78fb7c6218cb52c\",\"sessionId\":\"testMallUser\",\"orderType\":\"\"}";
try {
mockMvc.perform(post("/shoppingCart/updateGoodsQty").content(requestJson).
contentType(MediaType.APPLICATION_JSON_UTF8).accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print()).
andExpect(jsonPath("$.code").value("100"));
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void listCartGoods() {
String requestJson = "{\"shopId\":\"0000622\",\"useCustomerScore\":0,\"couponCode\":\"\",\"activityCode\":\"\",\"flag\":\"\",\"sendGoods\":[]," +
"\"buyMemberCard\":null,\"channelType\":\"mall\",\"partnerId\":\"1864\",\"appId\":\"wxb78fb7c6218cb52c\",\"sessionId\":\"testMallUser\",\"orderType\":\"\"}";
try {
mockMvc.perform(post("/shoppingCart/listCartGoods").content(requestJson).
contentType(MediaType.APPLICATION_JSON_UTF8).accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print()).
andExpect(jsonPath("$.code").value("100"));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 清空购物车
*/
@Test
public void clearCartGoods() {
String str = "{\"channelType\":\"mall\",\"partnerId\":\"1864\",\"appId\":\"wxb78fb7c6218cb52c\",\"sessionId\":\"testMallUser\",\"orderType\":\"\",\"shopId\":\"0000622\"}";
try {
mockMvc.perform(post("/shoppingCart/clearCartGoods").content(str).
contentType(MediaType.APPLICATION_JSON_UTF8).accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print()).
andExpect(jsonPath("$.code").value("100"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
......@@ -83,11 +83,10 @@ public class ShoppingCartControllerTest {
*/
@Test
public void getDetail() {
ShoppingCartInfoRequestVo shoppingCartInfoRequestVo = ShoppingCartInfoRequestVo.builder()
.partnerId("360bb48b-5316-458a-903e-9a44c7f339b1")
.sessionId("107001391351857666")
.shopId("1036")
.build();
ShoppingCartInfoRequestVo shoppingCartInfoRequestVo = new ShoppingCartInfoRequestVo();
shoppingCartInfoRequestVo.setPartnerId("360bb48b-5316-458a-903e-9a44c7f339b1");
shoppingCartInfoRequestVo.setSessionId("107001391351857666");
shoppingCartInfoRequestVo.setShopId("1036");
String str = JSONObject.toJSONString(shoppingCartInfoRequestVo);
try {
mockMvc.perform(post("/shoppingCart/info").content(str).
......
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