Commit a96ba802 by hanghang.wang

完成状态中英文切换

parent 88f8a2b1
...@@ -74,6 +74,13 @@ public class OrderController { ...@@ -74,6 +74,13 @@ public class OrderController {
return orderAdapterService.createOrderNew(createOrderVo); return orderAdapterService.createOrderNew(createOrderVo);
} }
@ApiOperation(value = "创建拼团订单", notes = "创建拼团订单", produces = "application/json")
@ApiAnnotation(logMessage = "createSpellGroupOrder")
@PostMapping("/createSpellGroupOrder")
public BaseResponse createSpellGroupOrder(@Validated @LogParams @RequestBody CreateSpellGroupOrderReq request) {
return orderAdapterService.createSpellGroupOrder(request);
}
/** /**
* 麦咖啡创建订单 * 麦咖啡创建订单
*/ */
......
package cn.freemud.entities.dto;
import cn.freemud.entities.vo.CreateSpellGroupOrderReq;
import lombok.Data;
/**
* @author freemud
* @title: CreateSpellGroupOrderDto
* @projectName order-group
* @description: TODO
* @date 2021/4/14下午2:36
*/
@Data
public class CreateSpellGroupOrderDto extends CreateSpellGroupOrderReq {
/**
* 用户收货地址信息 ,入参不需要传,通过校验receiveId获取
*/
public UserDeliveryInfoDto userDeliveryInfoDto;
private String userName;
private String mobile;
}
package cn.freemud.entities.vo;
import cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto;
import lombok.Builder;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.List;
/**
* @author freemud
* @title: CreateSpellGroupOrderReq
* @projectName order-group
* @description: TODO
* @date 2021/4/14上午9:52
*/
@Data
public class CreateSpellGroupOrderReq {
@NotEmpty(message = "sessionId 不能为空")
private String sessionId;
/**
* 参与拼团编号->团编号
*/
private String SpellGroupCode;
//@NotEmpty(message = "门店ID 不能为空")
private String storeId;
private String thirdShopId;
private String partnerId;
@Builder.Default
private String menuType = "saas";
/**
* 渠道类型 OrderChannelType
*/
private String channelType;
/**
* 订单类型 1 到店自取 2 外卖 枚举CreateOrderType
*/
//@NotNull(message = "下单类型不能为空")
private Integer orderType;
/**
* 订单特殊类型 1:普通订单 2:拼团订单 3:秒杀订单 4:拼单订单
*/
@NotNull
private Byte marketingType;
/**
* 收货地址ID
*/
private String receiveId;
/**
* 收货地址
*/
private String receiveAddress;
/**
* 收货用户名
*/
private String receiveUsername;
/**
* 收货电话
*/
@Pattern(regexp = "^1[3|4|5|6|7|8|9][0-9]{9}$", message = "手机号码格式不正确")
private String receiveMobile;
//拼团商品集合,本次只会传入一条
private List<SpellGroupProduct> spellGroupProductList;
@Data
public static class SpellGroupProduct{
private String productId;
}
}
...@@ -234,6 +234,13 @@ public enum ResponseResult { ...@@ -234,6 +234,13 @@ public enum ResponseResult {
* coco券验证失败 * coco券验证失败
*/ */
COCO_COUPON_VALIDATOR_FAIL("70000", "优惠券验证错误"), COCO_COUPON_VALIDATOR_FAIL("70000", "优惠券验证错误"),
/**
* 拼团订单状态码 80001 - 80101
*/
SPELL_GROUP_THE_CLUB_IS_FULL("80001", "拼团已满员"),
; ;
......
...@@ -154,4 +154,11 @@ public interface Orderservice { ...@@ -154,4 +154,11 @@ public interface Orderservice {
*/ */
BaseResponse queryTodayOrders(QueryOrderByConditionsRequestVo queryOrderByConditionsRequestVo); BaseResponse queryTodayOrders(QueryOrderByConditionsRequestVo queryOrderByConditionsRequestVo);
/**
* 创建拼团订单
* @param createSpellGroupOrderReq
* @return
*/
public BaseResponse createSpellGroupOrder(CreateSpellGroupOrderReq createSpellGroupOrderReq);
} }
...@@ -916,6 +916,39 @@ public class CheckOrder { ...@@ -916,6 +916,39 @@ public class CheckOrder {
createOrderVo.setUserDeliveryInfoDto(userDeliveryInfoDto); createOrderVo.setUserDeliveryInfoDto(userDeliveryInfoDto);
} }
/**
* 校验收货地址是否可配送
*/
public void checkSpellGroupOrderReceiveAddress(String receiveId,String partnerId , String trackingNo,CreateSpellGroupOrderDto createSpellGroupOrderDto) {
//校验收货地址是否可配送
QueryReceiveAddressRequest request = new QueryReceiveAddressRequest(receiveId,partnerId);
BaseResponse<QueryReceiveAddressResponse> queryReceiveAddressResponse = memberCenterService.queryReceiveAddressById(request, trackingNo);
if (!ResponseResult.SUCCESS.getCode().equals(queryReceiveAddressResponse.getCode()) || queryReceiveAddressResponse.getData() == null) {
throw new ServiceException(ResponseResult.USER_GETRECEIVEADDRESS_ERROR);
}
QueryReceiveAddressResponse receiveAddressResult = queryReceiveAddressResponse.getData();
UserDeliveryInfoDto userDeliveryInfoDto = storeService.getUserDeliveryInfo(null, receiveAddressResult.getLongitude(),
receiveAddressResult.getLatitude());
if (!userDeliveryInfoDto.getUserEnableTakeaway()) {
throw new ServiceException(ResponseResult.ORDER_TAKE_OUT_ADDRESS_NOT_DELIVERY);
}
userDeliveryInfoDto.setReceiveUserName(receiveAddressResult.getReceiveName());
userDeliveryInfoDto.setReceiveMobile(StringUtils.isEmpty(receiveAddressResult.getMobile()) ? receiveAddressResult.getReceiveMobile() : receiveAddressResult.getMobile());
String receiveAddress = receiveAddressResult.getReceiveAddress();
if (StringUtils.isNotBlank(receiveAddress)) {
userDeliveryInfoDto.setReceiveAddress(receiveAddress);
if (receiveAddress.contains("officeName") && receiveAddress.contains("address")) {
JSONObject jsonObject = JSONObject.parseObject(receiveAddress);
userDeliveryInfoDto.setReceiveOfficeName(jsonObject.getString("officeName"));
userDeliveryInfoDto.setReceiveAddress(jsonObject.getString("address"));
}
}
createSpellGroupOrderDto.setUserName(receiveAddressResult.getReceiveName());
createSpellGroupOrderDto.setMobile(StringUtils.isEmpty(receiveAddressResult.getMobile()) ? receiveAddressResult.getReceiveMobile() : receiveAddressResult.getMobile());
createSpellGroupOrderDto.setUserDeliveryInfoDto(userDeliveryInfoDto);
}
public void checkCardCode(String partnerId, String memberId, String cardCode) { public void checkCardCode(String partnerId, String memberId, String cardCode) {
if (StringUtils.isBlank(cardCode)) { if (StringUtils.isBlank(cardCode)) {
......
...@@ -66,6 +66,8 @@ import cn.freemud.utils.*; ...@@ -66,6 +66,8 @@ import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest;
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
import jdk.nashorn.internal.runtime.ECMAException; import jdk.nashorn.internal.runtime.ECMAException;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.freemud.api.assortment.datamanager.entity.db.*; import com.freemud.api.assortment.datamanager.entity.db.*;
...@@ -384,6 +386,46 @@ public class OrderServiceImpl implements Orderservice { ...@@ -384,6 +386,46 @@ public class OrderServiceImpl implements Orderservice {
return this.createPrepayOrder(createPrepayRequestDto); return this.createPrepayOrder(createPrepayRequestDto);
} }
@Override
public BaseResponse createSpellGroupOrder(CreateSpellGroupOrderReq createSpellGroupOrderReq) {
String trackingNo = LogThreadLocal.getTrackingNo();
//校验用户信息
String sessionId = createSpellGroupOrderReq.getSessionId();
AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(sessionId);
if (userLoginInfoDto == null || StringUtils.isEmpty(userLoginInfoDto.getMemberId())) {
throw new ServiceException(ResponseResult.NOT_LOGIN);
}
//团id不为空,调用促销查询团是否关闭,关闭之后给提示不可下单
if(1==1){
return ResponseUtil.error(ResponseResult.SPELL_GROUP_THE_CLUB_IS_FULL);
}
//团开启 则继续执行
CreateSpellGroupOrderDto createSpellGroupOrderDto = new CreateSpellGroupOrderDto();
BeanUtils.copyProperties(createSpellGroupOrderReq, createSpellGroupOrderDto);
//查询配送地址等信息
// checkReceiveAddress
checkOrder.checkSpellGroupOrderReceiveAddress(createSpellGroupOrderReq.getReceiveId(),createSpellGroupOrderReq.getPartnerId(),trackingNo,createSpellGroupOrderDto);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo);
OrderExtInfoDto extInfo = getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo, shoppingCartGoodsDto);
//1.9.2套餐需求同步优化创建订单代码
BaseResponse createOrderOperateDtoResponse = this.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto);
if (createOrderOperateDtoResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderOperateDtoResponse.getCode()) || createOrderOperateDtoResponse.getResult() == null) {
return createOrderOperateDtoResponse;
}
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto) createOrderOperateDtoResponse.getResult();
//创建支付
CreatePrepayRequestDto createPrepayRequestDto = orderAdapter.convertToCreatePrepayRequestDto(userLoginInfoDto, createOrderVo, createOrderOperateDto, extInfo);
return this.createPrepayOrder(createPrepayRequestDto);
}
/** /**
* 扫脸支付下单 * 扫脸支付下单
*/ */
......
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