Commit 52a2f97a by 周晓航

初步提交代码,用于测试

parent 307bbbc3
......@@ -4,8 +4,6 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
......
package cn.freemud.entities.vo;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/4/9 下午2:22
* @description : APP 订单接收参数
*/
public class CreateOrderAppVo extends CreateOrderBaseVo{
}
......@@ -2,7 +2,6 @@ package cn.freemud.entities.vo;
import cn.freemud.entities.dto.UserDeliveryInfoDto;
import cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto;
import cn.freemud.enums.CreateOrderSceneEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
......@@ -49,6 +48,8 @@ public class CreateOrderBaseVo {
private String storeName;
private String storeNameEn;
//入参不需要传
private String storeAddress;
......@@ -150,7 +151,12 @@ public class CreateOrderBaseVo {
/**
* 券码列表
*/
private List<CreateOrderVo.couponCode> couponCodes;
private List<couponCode> couponCodes;
/**
* 运费券code
*/
private String freightCouponCode;
/**
* 版本号
*/
......@@ -169,13 +175,14 @@ public class CreateOrderBaseVo {
*/
private Byte payChannelType;
// 这里冗余了 CreateOrderVo 对象的属性, 后期需要优化 fisherman
@Valid
private CreateOrderVo.PremiumExchangeActivity premiumExchangeActivity;
private CreateOrderVo.PremiumExchangeActivity premiumExchangeActivity;
/**
* 买一赠一选择的商品
*/
private List<CreateOrderVo.ChooseGood> chooseGoods;
private List<ChooseGood> chooseGoods;
/**
* 是否使用用户积分
......@@ -199,6 +206,11 @@ public class CreateOrderBaseVo {
*/
private String faceCode;
/**
* 随单购啡常月享卡键位
*/
private String cardKeyCode;
@ApiModelProperty(hidden = true)
private String sessionKey; // 存储sessionKey,异常补退使用
@ApiModelProperty(hidden = true)
......@@ -211,14 +223,35 @@ public class CreateOrderBaseVo {
*/
private String channelType;
private String cardKeyCode;
/**
* 是否需要餐具,1 需要 0不需要
*/
private Integer needTableware;
/**
* 是否需要开发票,1 需要 0不需要
*/
private Integer needInvoice;
/**
* 发票抬头
*/
private String invoiceTitle;
/**
* 随单购是否购买月享卡
* 1:不购买,2:月卡续费,3:新购月卡
*/
private String buyMonthlyCard;
private String monthlyCardCode;
/**
* 是否使用电子风味卡,如果不为空则为使用
*/
@Valid
@ApiModelProperty(value = "电子风味卡")
private CreateOrderVo.UnionPayCard unionPayCard;
private UnionPayCard unionPayCard;
/**
* 电子风味卡
*/
......@@ -250,7 +283,7 @@ public class CreateOrderBaseVo {
* 加价购sku商品信息
*/
@Valid
private List<CreateOrderVo.PremiumExchangeActivity.Product> products;
private List<Product> products;
@Data
public static class Product {
......@@ -271,6 +304,8 @@ public class CreateOrderBaseVo {
@NotNull(message = "商品名称不能为空")
private String skuName;
private String skuForeignName;
@NotNull(message = "商品数量不能为空")
private Integer qty;
......@@ -289,7 +324,7 @@ public class CreateOrderBaseVo {
private Long nowPrice;
@Valid
private List<CreateOrderVo.PremiumExchangeActivity.Product.Attribute> attributes;
private List<Attribute> attributes;
@Data
public static class Attribute {
......@@ -302,6 +337,9 @@ public class CreateOrderBaseVo {
* 属性名称
*/
private String attributeValue;
private String attributeForeignValue;
}
}
......@@ -342,6 +380,9 @@ public class CreateOrderBaseVo {
*/
private String goodsName;
private String goodsForeignName;
/**
* 赠送商品数量
*/
......
package cn.freemud.entities.vo;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/4/9 上午11:31
* @description :
*/
@Data
public class CreateOrderMealVo extends CreateOrderBaseVo {
/**
* 版本号
*/
private String version;
/**
* 商户ID
*/
private String partnerId;
private Integer repastNumber;
private Integer carVer;
/**
* 下单版本号
*/
private Integer orderUpdateVer;
/**
* 优惠券code
*/
private String couponCode;
/**
* 优惠券对应的活动号
*/
private String activityCode;
/**
* 是否使用用户积分
* 1=不显示积分
* 2=显示积分但不扣减
* 3=显示积分且扣减
*/
private Integer useCustomerScore;
/**
* svc 卡支付使用
*/
private String cardCode;
}
package cn.freemud.entities.vo;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/4/9 下午2:20
* @description : 商城订单 vo对象
*/
public class CreateOrderSaasMallVo extends CreateOrderBaseVo {
}
package cn.freemud.entities.vo;
import cn.freemud.entities.dto.UserDeliveryInfoDto;
import cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.List;
@Data
public class CreateOrderSaasVo extends CreateOrderBaseVo {
// fisherman 需要定义 saas里面的参数有那些
}
package cn.freemud.enums;
/**
* 仅仅用于 创建对象使用的枚举类,
* 字段code属性 暂时没有 实际价值意义
* 2021年04月09日13:51:24
*/
public enum CreateOrderSceneEnum {
SAAS(1, "saas"),
;
SAAS(1, "saas订单"),
MEAL(2, "i围餐订单"),
APP(3, "APP订单"),
SAASMALL(4, "微商城订单");
private Integer code;
......
......@@ -6,7 +6,13 @@ import lombok.Getter;
public enum UserLoginChannelEnum {
WEIXIN("1", "微信"),
ALIPAY("2", "支付宝"),
APP("3", "APP");
APP("3", "APP"),
/**
* 抖音小程序客户端
* 根据业务代码反推添加
* 我也不知道4是什么, 有了再添加
*/
TIKTOKPAY("5", "抖音小程序");
private String code;
private String desc;
......
package cn.freemud.service.adapter;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.google.common.collect.Lists;
......@@ -45,4 +45,30 @@ public class OrderCheckAdapter {
}
}
}
/***
* 校验预约单门店数据 优化订单接口冗余方法
* @param vo
* @param storeResponse
* @throws ServiceException 抛出异常校验异常数据
*/
public static void check(CreateOrderBaseVo vo, StoreResponse storeResponse) throws ServiceException {
//非预约单的过滤
if (Objects.isNull(vo.getOrderType()) ||
(!Objects.equals(vo.getTakeMealFlag(), "1"))) {
return;
}
StoreResponse.Configuration configuration = storeResponse.getBizVO().getStoreConfig();
if(Objects.isNull(configuration)){
//针对老数据没有配置 预约单默认支持,直接返回不校验
log.warn("商户:{},没有配置预约单",vo.getShopId());
return;
}
log.info("门店:{},外卖预约单状态:{},自提预约单状态:{}", vo.getShopId(), configuration.getDeliveryAppoint(), configuration.getSelfMentionSwitch());
for (OrderCheck orderCheck : orderCheckList) {
if (orderCheck.support(vo.getOrderType())) {
orderCheck.check(null, storeResponse);
return;
}
}
}
}
......@@ -16,7 +16,6 @@ import cn.freemud.service.universal.UniversalOrderService;
import cn.freemud.service.universal.factory.CreateOrderServiceFactory;
import cn.freemud.utils.RedisUtil;
import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSON;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.enums.IappIdType;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
......@@ -37,7 +36,6 @@ import org.springframework.stereotype.Service;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.ValidatorFactory;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Map;
......@@ -179,6 +177,9 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
}
@Override
public BaseResponse createOrderUniversal(Map<String, Object> param) {
if (param.isEmpty()) {
throw new ServiceException(ResponseResult.PARAMETER_MISSING);
}
// 商户逻辑判断 共同代码 begin
String sessionId = (String) param.get("sessionId");
if(StringUtils.isBlank(sessionId)) {
......
......@@ -12,6 +12,7 @@
package cn.freemud.service.order;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.QueryOrderResponseVo;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
......@@ -27,6 +28,13 @@ public interface OrderRelationService {
/**
* 创建订单的时间检查 订单优化使用
* @param
*/
void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderBaseVo createOrderVo);
/**
* 订单详情编辑
* @param
*/
......
......@@ -14,10 +14,10 @@ package cn.freemud.service.order.impl;
import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.order.BusinessDate;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.ProductVo;
import cn.freemud.entities.vo.QueryOrderResponseVo;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.CreateOrderType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
......@@ -31,15 +31,12 @@ import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.request.order.OrderProductAddInfoDto;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import io.swagger.models.auth.In;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
......@@ -91,6 +88,41 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService {
}
@Override
public void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderBaseVo createOrderVo) {
// 只有外卖单才做下单时间判断
if (!CreateOrderType.TAKE_OUT.getCode().equals(createOrderVo.getOrderType())){
return;
}
// 如果是明天的预约单,不做时间检查
// 设置预约时间
Date takeMealDateTime = checkOrder.getOrderExpectTime(createOrderVo.getTakeMealFlag(), createOrderVo.getTakeMealTime(), createOrderVo.getExpectTime(),
CreateOrderType.getByCode(createOrderVo.getOrderType()), storeResponseDto.getServiceTime(), storeResponseDto);
Date todayEnd = DateUtil.setEndDay(new Date());
if(takeMealDateTime != null && todayEnd.before(takeMealDateTime)){
return;
}
//获取门店当天营业时间
// coco只有一个营业时间,如果返回多个就报错
Date todayEndDate = null;
List<String> todayBusinessTimes = storeCenterService.getTodayBusinessTime(Integer.parseInt(storeResponseDto.getBusinessType()), storeResponseDto.getBusinessHoursDay());
if (CollectionUtils.isEmpty(todayBusinessTimes) || 1 < todayBusinessTimes.size() ) {
throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR);
}
BusinessDate businessDate = checkOrder.getStoreBusinessDate(todayBusinessTimes.get(0), true);
todayEndDate = businessDate.getEndDate();
// 当前时间+15分钟 > 门店打烊时间,返回错误
Date nowAddDate = DateUtil.addMinutes(new Date(),15);
if(nowAddDate.after(todayEndDate)){
throw new ServiceException(ResponseResult.STORE_WILL_COLSE);
}
}
@Override
public void queryOrdrBuild(QueryOrderResponseVo queryOrderResponseVo,QueryOrderByIdResponse response) {
List<QueryOrderResponseVo.chooseGood> chooseGoods = new ArrayList<>();
......
......@@ -12,6 +12,7 @@
package cn.freemud.service.order.impl;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.QueryOrderResponseVo;
import cn.freemud.service.order.OrderRelationService;
......@@ -28,6 +29,11 @@ public class PlatformOrderRelationServiceImpl implements OrderRelationService {
}
@Override
public void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderBaseVo createOrderVo) {
}
@Override
public void queryOrdrBuild(QueryOrderResponseVo queryOrderResponseVo, QueryOrderByIdResponse response) {
}
......
......@@ -21,9 +21,8 @@ import cn.freemud.entities.vo.*;
import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.CheckOrderUniversal;
import cn.freemud.service.impl.CheckOrderSaas;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.thirdparty.ComPayClient;
import cn.freemud.service.thirdparty.SvcComPayClient;
import cn.freemud.service.universal.factory.CreateOrderServiceFactory;
......@@ -181,6 +180,8 @@ public abstract class UniversalOrderService {
String trackingNo = LogThreadLocal.getTrackingNo();
//参数校验是否满足 标签注解
validParam(createOrderBaseVo);
// 组装业务对象
CreateOrderBo createOrderBo = getCreateOrderBo(createOrderBaseVo, userLoginInfoDto, trackingNo);
createOrderBo.setCreateOrderScene(createOrderSceneEnum);
......@@ -228,8 +229,10 @@ public abstract class UniversalOrderService {
}
public void getUniversalCreateOrderBo(CreateOrderBo createOrderBo, CreateOrderBaseVo createOrderBaseVo, AssortmentCustomerInfoVo userLoginInfoDto) {
createOrderBaseVo.setUserId(userLoginInfoDto.getMemberId());
createOrderBo.setCreateOrderBaseVo(createOrderBaseVo);
createOrderBo.setUserLoginInfoDto(userLoginInfoDto);
}
/**
......@@ -251,6 +254,7 @@ public abstract class UniversalOrderService {
* @return
*/
public BaseResponse createSharedOrder(CreateOrderBo createOrderBo) {
// fisherman 一坨坨的地方
createOrderBo.setCreateOrderRequest(createOrderAdapter.convent2CreateOrderRequest(createOrderBo));
CreateOrderRequest request = createOrderAdapter.convent2CustomCreateOrderRequest(createOrderBo);
// 发送 /order/v2/create 请求
......@@ -261,7 +265,7 @@ public abstract class UniversalOrderService {
return ResponseUtil.error(createOrderResponse.getErrcode().toString(), createOrderResponse.getErrmsg(), null);
}
// 初始化扣减活动库存请求对象 fisherman-> 考虑 是否可以提取
// 初始化扣减活动库存请求对象
ActivityUpdateStockRequest activityUpdateStockRequest = this.initActivityUpdateStockRequest(createOrderBo);
MqMessageRequest mqMessageRequest = new MqMessageRequest();
mqMessageRequest.setBackOrdersNotifyActivityExchange(backOrdersNotifyActivityExchange);
......@@ -510,6 +514,8 @@ public abstract class UniversalOrderService {
serviceTime = 50;
}
orderExtInfoDto.setServiceTime(serviceTime);
// pushOrderTime 在master 版本中 一直都是 0
orderExtInfoDto.setPushOrderTime(0);
orderExtInfoDto.setVersion(version);
if (memberCard != null && memberCard.getRuleId() != null) {
orderExtInfoDto.setRuleId(memberCard.getRuleId());
......
package cn.freemud.service.universal.factory;
import cn.freemud.entities.vo.CreateOrderAppVo;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.entities.vo.CreateOrderSaasMallVo;
import cn.freemud.entities.vo.CreateOrderSaasVo;
import cn.freemud.enums.CreateOrderSceneEnum;
import cn.freemud.enums.OrderChannelType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.enums.UserLoginChannelEnum;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.CheckOrderUniversal;
import cn.freemud.service.universal.UniversalOrderService;
import cn.freemud.service.universal.impl.AppOrderService;
import cn.freemud.service.universal.impl.SaasMallOrderService;
import cn.freemud.service.universal.impl.SaasOrderService;
import com.alibaba.fastjson.JSON;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.enums.IappIdType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.Objects;
@Service
public class CreateOrderServiceFactory {
......@@ -28,22 +38,45 @@ public class CreateOrderServiceFactory {
* @return
*/
public CreateOrderSceneEnum getCreateOrderScene(Map<String, Object> param, AssortmentCustomerInfoVo assortmentCustomerInfoVo) {
// 围餐
if (IappIdType.WC_XCX.getCode().equals(assortmentCustomerInfoVo.getIappId())) { //i围餐
if (true) {
// 围餐 暂时不接入
throw new ServiceException(ResponseResult.SYSTEM_BUSINESS_ERROR, "围餐暂不接入");
}
return CreateOrderSceneEnum.MEAL;
}
if (UserLoginChannelEnum.APP.getCode().equals(assortmentCustomerInfoVo.getChannel())) {
// APP订单
return CreateOrderSceneEnum.APP;
}
Object channelType = param.get("channelType");
if (Objects.nonNull(channelType)
&& (OrderChannelType.SAASMALL.getCode().equals(channelType))) {
// 商城订单
return CreateOrderSceneEnum.SAASMALL;
}
// 其他类型 为saas订单
return CreateOrderSceneEnum.SAAS;
}
/**
* 获取实体类对应 调用参数
*
* fisherman 各个订单的入参类型 暂时没区分
* @param param
* @param createOrderSceneEnum
* @return
*/
public CreateOrderBaseVo getCreateOrderVo(Map<String, Object> param, CreateOrderSceneEnum createOrderSceneEnum) {
switch (createOrderSceneEnum) {
case SAAS:
case SAAS: // SAAS
return JSON.parseObject(JSON.toJSONString(param), CreateOrderSaasVo.class);
case SAASMALL: // 商城
return JSON.parseObject(JSON.toJSONString(param), CreateOrderSaasMallVo.class);
case APP: // APP订单
return JSON.parseObject(JSON.toJSONString(param), CreateOrderAppVo.class);
default:
return JSON.parseObject(JSON.toJSONString(param), CreateOrderSaasVo.class);
throw new ServiceException(ResponseResult.SYSTEM_BUSINESS_ERROR, "CreateOrderSceneEnum 类型错误 :" + createOrderSceneEnum);
}
}
......@@ -57,6 +90,13 @@ public class CreateOrderServiceFactory {
switch (createOrderSceneEnum) {
case SAAS:
return applicationContext.getBean("saasOrderService", SaasOrderService.class);
case SAASMALL:
return applicationContext.getBean("saasMallOrderService", SaasMallOrderService.class);
case APP:
return applicationContext.getBean("appOrderService", AppOrderService.class);
// 不支持围餐订单
// case MEAL:
// return applicationContext.getBean("mealOrderService", MealOrderService.class);
default:
return applicationContext.getBean("saasOrderService", SaasOrderService.class);
}
......
package cn.freemud.service.universal.impl;
import cn.freemud.entities.bo.CreateOrderBo;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.service.universal.UniversalOrderService;
import org.springframework.stereotype.Service;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/4/9 下午2:31
* @description : app订单
*/
@Service
public class AppOrderService extends UniversalOrderService {
@Override
public void getCustomCreateOrderBo(CreateOrderBo createOrderBo) {
}
@Override
public void validParam(CreateOrderBaseVo createOrderBaseVo) {
}
@Override
public void getExtInfoCustom(CreateOrderBo createOrderBo) {
}
}
package cn.freemud.service.universal.impl;
import cn.freemud.entities.bo.CreateOrderBo;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.universal.UniversalOrderService;
import org.springframework.stereotype.Service;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/4/9 上午11:36
* @description : 围餐操作 fisherman 没搞完 2021年04月09日11:52:06
*/
@Service
public class MealOrderService extends UniversalOrderService {
@Override
public void getCustomCreateOrderBo(CreateOrderBo createOrderBo) {
}
@Override
public void validParam(CreateOrderBaseVo createOrderBaseVo) {
if (createOrderBaseVo.getOperation() ==null) {
throw new ServiceException(ResponseResult.ORDER_CREATE_OPERATION_ERROR);
}
}
@Override
public void getExtInfoCustom(CreateOrderBo createOrderBo) {
}
}
package cn.freemud.service.universal.impl;
import cn.freemud.entities.bo.CreateOrderBo;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.service.universal.UniversalOrderService;
import org.springframework.stereotype.Service;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/4/9 下午2:30
* @description : 商城订单
*/
@Service
public class SaasMallOrderService extends UniversalOrderService {
@Override
public void getCustomCreateOrderBo(CreateOrderBo createOrderBo) {
}
@Override
public void validParam(CreateOrderBaseVo createOrderBaseVo) {
}
@Override
public void getExtInfoCustom(CreateOrderBo createOrderBo) {
}
}
package cn.freemud.service.universal.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.bo.CreateOrderBo;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.entities.vo.CreateOrderSaasVo;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.universal.UniversalOrderService;
import cn.freemud.utils.ResponseUtil;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.hibernate.validator.HibernateValidator;
import org.hibernate.validator.HibernateValidatorConfiguration;
......@@ -21,7 +15,6 @@ import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.ValidatorFactory;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
@Service
......
......@@ -14,6 +14,11 @@ 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.HashMap;
import java.util.List;
import java.util.Map;
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;
......@@ -65,6 +70,70 @@ public class OrderControllerTest {
}
}
@Test
public void newCreateOrder() {
Map<String, Object> map = new HashMap<>();
map.put("actualPayAmount", 1);
map.put("appId", "wxb78fb7c6218cb52c");
map.put("barCounter", "");
map.put("bizType", "1");
List<Map<String, Object>> delivery = new ArrayList<>();
Map<String, Object> deliveryMap = new HashMap<>();
deliveryMap.put("addressDetail", "南华路与德华路交叉路口往西北约200米(大润发北侧)");
deliveryMap.put("contactsName", "晓航");
deliveryMap.put("extInfo", "{}");
deliveryMap.put("infoType", "1");
deliveryMap.put("mobile", "18868926846");
deliveryMap.put("relateObjectType", 1);
delivery.add(deliveryMap);
map.put("deliveryContactInfoList", delivery);
map.put("note", "");
map.put("operator", "晓航");
map.put("orderClient",2 );
map.put("orderCostDetailList", "[]");
Map<String, Object> orderExtendedMap = new HashMap<>();
orderExtendedMap.put("orderClientGroup","测试门店-1");
orderExtendedMap.put("orderClientGroupCode","20001");
map.put("orderExtended", orderExtendedMap);
List<Map<String, Object>> orderItemList = new ArrayList<>();
Map<String, Object> orderItemListMap = new HashMap<>();
orderItemListMap.put("canRefund", true);
orderItemListMap.put("extInfo","{\"cartGoodsUid\":\"ff3363c8-72cb-4280-b7b9-7cfe4234ad8e\",\"isSendGoods\":false,\"stapleFood\":0,\"tax\":0.01}");
orderItemListMap.put("ignoreInOrderClose", false);
orderItemListMap.put("isDeleted", false);
orderItemListMap.put("packPrice", 0);
orderItemListMap.put("partnerId", "1864");
orderItemListMap.put("productCode", "");
orderItemListMap.put("productForeignName", "");
orderItemListMap.put("productForeignProperty", "");
orderItemListMap.put("productForeignSpecName", "");
orderItemListMap.put("productId", "195422818929983527");
orderItemListMap.put("productName", "草莓");
orderItemListMap.put("productPicUrl", "https://picture.sandload.cn/1609146623369.jpg");
orderItemListMap.put("productPrice", "1");
orderItemListMap.put("packPrice", "");
orderItemListMap.put("packPrice", "");
orderItemListMap.put("relateObjectType", 1);
orderItemList.add(orderItemListMap);
map.put("orderItemList", orderItemList);
//map.put("", );
try {
mockMvc.perform(post("/item/getMenuCategory").content(map.toString()).
contentType(MediaType.APPLICATION_JSON_UTF8).accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print()).
andExpect(jsonPath("$.code").value("100"));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 订单支付成功后通知
*/
......
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