Commit 263ba760 by 徐康

Merge remote-tracking branch 'origin/develop' into develop

parents cef1ac46 acd9d134
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.0.22-SNAPSHOT</version>
<version>2.0.24-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
......@@ -38,7 +38,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId>
<version>1.5.1-SNAPSHOT</version>
<version>1.5.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -88,4 +88,5 @@
| 2.0.17-SNAPSHOT| 升级ordercenter-sdk,麦咖啡加料 | 徐康 | 2020-09-28 |
| 2.0.20-SNAPSHOT| 麦咖啡p3v1 | 徐康 | 2020-10-29 |
| 2.0.21-SNAPSHOT| 拼单 | miaohui | 2020-10-29 |
| 2.0.22-SNAPSHOT| 麦咖啡自提预约单入机提前五分钟 | 徐康 | 2020-11-04 |
\ No newline at end of file
| 2.0.22-SNAPSHOT| 麦咖啡自提预约单入机提前五分钟 | 徐康 | 2020-11-04 |
| 2.0.24-SNAPSHOT| 农工商添加设备号 | 梁崇福 | 2020-11-09 |
\ No newline at end of file
......@@ -42,6 +42,7 @@ public enum OldOrderAccountType {
NEW_USER_DISCOUNT(101, "新用户立减", "NEW_USER_DISCOUNT"),
PRICE_DEDUCTION_COUPON(103, "抵价券", "PRICE_DEDUCTION_COUPON"),
TOTAL_DISCOUNT(205, "优惠总金额", "TOTAL_DISCOUNT"),
GATHER_SPOT(221, "集点活动","GATHER_SPOT"),
MEMBER_PRICE_DISCOUNT(220, "会员价优惠", "MEMBER_PRICE_DISCOUNT");
private Integer code;
......
......@@ -39,6 +39,7 @@ public enum QueryOrderAccountType {
ONLINE_PAY("ONLINE_PAY", "线上支付"),
FULL_DISTRIBUTION_FEE("FULL_DISTRIBUTION_FEE", "满减配送费"),
OFFLINE_PAY("OFFLINE_PAY", "线下支付"),
GATHER_SPOT("GATHER_SPOT", "集点活动"),
MEMBER_PRICE_DISCOUNT("MEMBER_PRICE_DISCOUNT","会员价优惠"),
MCCAFE_MONTH_CARD("MCCAFE_MONTH_CARD","麦咖啡月卡"),
WITH_ORDER_BUY_COUPON_FEE("WITH_ORDER_BUY_COUPON_FEE", "随单买月卡"),
......
......@@ -40,7 +40,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.0.22-SNAPSHOT</version>
<version>2.0.23-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -2544,6 +2544,9 @@ public class OrderAdapter {
if (ActivityTypeEnum.TYPE_23.getCode().equals(activityType)){
return OldOrderAccountType.SUPER_PURCHASE;
}
if (ActivityTypeEnum.TYPE_221.getCode().equals(activityType)){
return OldOrderAccountType.GATHER_SPOT;
}
return OldOrderAccountType.BUYM_SENDN;
}
......
......@@ -43,4 +43,14 @@ public class CreateOrderController {
return sellCouponOrderService.createOrder(requestVo);
}
/**
* 农工商卖券订单创建
*/
@ApiAnnotation(logMessage = "sellCouponOrderCreate")
@PostMapping("/ngs/sellCouponOrder/create")
public BaseResponse ngsSellCouponOrderCreate(@Validated @LogParams @RequestBody SellCouponCreateOrderVo requestVo) {
return sellCouponOrderService.createOrder(requestVo);
}
}
package cn.freemud.entities.vo;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
@Data
public class NgsSellCouponCreateOrderVo {
@NotEmpty(message = "sessionId 不能为空")
private String sessionId;
/**
* svc 储值卡支付使用
*/
private String cardCode;
@NotEmpty(message = "menuType 不能为空")
private String menuType;
@NotEmpty(message = "活动号 不能为空")
private String activityCode;
/**
* 业务类型
*/
@NotEmpty(message = "bizType 业务类型不能为空")
private String bizType;
/**
* 版本号
*/
// @NotEmpty(message = "version 版本号不能为空")
private String version;
}
......@@ -54,6 +54,7 @@ public enum ActivityTypeEnum {
TYPE_PACKAGE(900, "包装费"),
TYPE_DELIVERY(901, "配送费"),
TYPE_211(211, "套餐优惠"),
TYPE_221(221, "集点活动"),
TYPE_320(320, "会员价优惠");
private Integer code;
......
......@@ -7,6 +7,7 @@ import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.vo.NgsSellCouponCreateOrderVo;
import cn.freemud.entities.vo.PaysuccessNoticeMessage;
import cn.freemud.entities.vo.SellCouponCreateOrderVo;
import cn.freemud.enums.OrderBeanType;
......@@ -107,6 +108,8 @@ public class SellCouponOrderServiceImpl {
private final String SUCCESS = "100";
private final String ngsCouponProductId = "76161384";
/**
* 卖券订单创建
*/
......@@ -208,6 +211,65 @@ public class SellCouponOrderServiceImpl {
return orderservice.createPrepayOrder(createPrepayRequestDto);
}
public BaseResponse ngsCouponOrderCreate(NgsSellCouponCreateOrderVo requestVo){
// 查询用户信息、校验svc卡
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMemberNew(requestVo.getSessionId(), requestVo.getCardCode());
// TODO 通过活动号查询金额
String activityCode = requestVo.getActivityCode();
String trackingNo = LogThreadLocal.getTrackingNo();
String partnerId = userLoginInfoDto.getPartnerId();
// 构建创建订单入参
CreateOrderRequest createOrderRequest = ngsConvent2NEWCreateOrderRequest(requestVo,userLoginInfoDto);
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<OrderInfoReqs> orderInfoReqsBaseResponse = orderSdkService.createOrder(createOrderRequest, trackingNo);
CreateOrderResponse createOrderResponse = orderSdkAdapter.convent2NEWOrderInfoReqs(orderInfoReqsBaseResponse);
if(createOrderResponse == null || createOrderResponse.getErrcode() != 100){
return ResponseUtil.error(ResponseResult.ORDER_CREATE_ERROR);
}
//创建支付
CreatePrepayRequestDto createPrepayRequestDto = new CreatePrepayRequestDto();
createPrepayRequestDto.setPartnerId(partnerId);
createPrepayRequestDto.setTransId(orderInfoReqsBaseResponse.getResult().getOrderCode());
createPrepayRequestDto.setWxAppId(userLoginInfoDto.getWxAppId());
createPrepayRequestDto.setOpenId(userLoginInfoDto.getOpenId());
// createPrepayRequestDto.setFaceCode(null);
createPrepayRequestDto.setCardCode(requestVo.getCardCode());
createPrepayRequestDto.setPayCode(null);
createPrepayRequestDto.setFatherOrderBean(createOrderResponse.getData());
createPrepayRequestDto.setProductOrderBean(createOrderResponse.getData());
createPrepayRequestDto.setTotalAmount(createOrderRequest.getSettlementAmount());
createPrepayRequestDto.setCardAmount(0);
OrderExtInfoDto orderExtInfoDto = new OrderExtInfoDto();
String deliveryHoursDayStart = "";
String deliveryHoursDayEnd = "";
orderExtInfoDto.setDeliveryHoursDayStart(deliveryHoursDayStart);
orderExtInfoDto.setDeliveryHoursDayEnd(deliveryHoursDayEnd);
orderExtInfoDto.setOpenid(userLoginInfoDto.getOpenId());
orderExtInfoDto.setAppid(userLoginInfoDto.getWxAppId());
orderExtInfoDto.setSessionId(requestVo.getSessionId());
Integer serviceTime = 0;
if (Objects.equals(serviceTime, null)) {
serviceTime = 50;
}
orderExtInfoDto.setServiceTime(serviceTime);
orderExtInfoDto.setVersion(requestVo.getVersion());
// 扩展字段中存储 sessionKey
orderExtInfoDto.setSessionKey(userLoginInfoDto.getSessionKey());
orderExtInfoDto.setFromAppId(userLoginInfoDto.getWxAppId());
createPrepayRequestDto.setOrderExtInfoDTO(orderExtInfoDto);
return orderservice.createPrepayOrder(createPrepayRequestDto);
}
/**
* 批量查询活动详情
*
......@@ -382,6 +444,109 @@ public class SellCouponOrderServiceImpl {
}
private CreateOrderRequest ngsConvent2NEWCreateOrderRequest(NgsSellCouponCreateOrderVo requestVo, AssortmentCustomerInfoVo userLoginInfoDto){
CreateOrderRequest request = new CreateOrderRequest();
Integer orderClient = OrderClientType.SAAS.getIndex();
if(UserLoginChannelEnum.ALIPAY.getCode().equals(userLoginInfoDto.getChannel())){
orderClient = OrderClientType.ALIPAY.getIndex();
}
if(UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())){
orderClient = OrderClientType.APP.getIndex();
}
String partnerId = userLoginInfoDto.getPartnerId();
request.setOrderClient(orderClient);
request.setPartnerId(partnerId);
request.setStoreId(null); // TODO 虚拟门店
//买券虚拟订单
request.setBizType(6);
//1:线上支付 2:线下支付
request.setPayType(1);
request.setUserId(userLoginInfoDto.getMemberId());
request.setUserName(userLoginInfoDto.getNickName());
request.setStoreName("虚拟门店");
request.setThirdStoreId("");
request.setOrderState(1);
request.setPayState(1);
if(StringUtils.isNotBlank(requestVo.getCardCode())){
request.setPayChannel("10102");
request.setPayChannelName("储值卡支付");
}
// TODO 商品信息 从券码查
// GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean productBean = productInfosResponse.getProducts().get(0);
//订单原始金额,单位分
//用户在界面上看到的支付金额
request.setSettlementAmount(null); // TODO
//实际支付现金金额,扣除支付自生优惠,单位分`
request.setActualPayAmount(null); // TODO
request.setOriginalAmount(null); // TODO
request.setOrderType(OrderType.GENERAL_DINE_IN.getIndex());
//商品信息转换
List<OrderItemCreateReq> orderItemList = new ArrayList<>();
OrderItemCreateReq orderItemCreateReq = new OrderItemCreateReq();
orderItemCreateReq.setSalePrice(null); // TODO
orderItemCreateReq.setProductPrice(null); // TODO
orderItemCreateReq.setSettlementPrice(null); // TODO
orderItemCreateReq.setPartnerId(partnerId);
orderItemCreateReq.setProductId(ngsCouponProductId);
orderItemCreateReq.setProductSpec(ngsCouponProductId);
orderItemCreateReq.setProductName("卖券虚拟商品");
orderItemCreateReq.setProductSpecName("卖券虚拟商品");
orderItemCreateReq.setProductSeq(1);
orderItemCreateReq.setProductCode(ngsCouponProductId);
orderItemCreateReq.setThirdProductId("");
orderItemCreateReq.setProductQuantity(1);
/* TODO 添加发券信息
OrderProductAddInfoDto orderProductAddInfoDto = new OrderProductAddInfoDto();
List<ProductBindingCouponType> productBindingCoupons = new ArrayList<>();
for (GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType productBindingCouponType : productBean.getProductBindingCouponTypes()){
for (ActiveDetailVO activeDetailVO : activeDetailVOS){
if(productBindingCouponType.getActivityCode().equals(activeDetailVO.getActiveCode())){
ProductBindingCouponType productBindingCouponType2 = new ProductBindingCouponType();
productBindingCouponType2.setActivityCode(productBindingCouponType.getActivityCode());
productBindingCouponType2.setNum(productBindingCouponType.getNum());
productBindingCouponType2.setActivityName(activeDetailVO.getActiveName());
productBindingCoupons.add(productBindingCouponType2);
break;
}
}
}
orderProductAddInfoDto.setProductBindingCoupons(productBindingCoupons);
orderItemCreateReq.setExtInfo(JSONObject.toJSONString(orderProductAddInfoDto));
orderItemList.add(orderItemCreateReq);
*/
//商品信息赋值
request.setOrderItemList(orderItemList);
//收货人信息转换
List<DeliveryContactInfoCreateReq> deliveryContactInfoList = new ArrayList<>();
DeliveryContactInfoCreateReq deliveryContactInfoCreateReq = new DeliveryContactInfoCreateReq();
//地址类型 1:订单地址 2:售后单地址 3:配送员信息
deliveryContactInfoCreateReq.setRelateObjectType(1);
//联系方式类型 1:取件 2:收件
deliveryContactInfoCreateReq.setInfoType(1);
deliveryContactInfoCreateReq.setContactsName(userLoginInfoDto.getNickName());
deliveryContactInfoCreateReq.setMobile(userLoginInfoDto.getMobile());
deliveryContactInfoCreateReq.setLatitude(null);
deliveryContactInfoCreateReq.setLongitude(null);
deliveryContactInfoCreateReq.setAddressDetail(null);
deliveryContactInfoCreateReq.setProvince(null);
deliveryContactInfoCreateReq.setCity(null);
deliveryContactInfoCreateReq.setRegion(null);
deliveryContactInfoList.add(deliveryContactInfoCreateReq);
request.setDeliveryContactInfoList(deliveryContactInfoList);
//保存门店渠道信息
request.setOperator(userLoginInfoDto.getNickName());
request.setAppId(userLoginInfoDto.getWxAppId());
return request;
}
/**
*
* @param message
......
......@@ -8,7 +8,7 @@
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>1.5.1-SNAPSHOT</version>
<version>1.5.2-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId>
<dependencies>
......
......@@ -22,6 +22,7 @@
| 1.4.37-SNAPSHOT | 麦咖啡汇集回调,调用基础服务方法 | 徐康 | 2020-09-02 |
| 1.4.38-SNAPSHOT | 麦咖啡加料 | 徐康 | 2020-09-28 |
| 1.5.1-SNAPSHOT | p拼单 | miaohui | 2020-09-28 |
| 1.5.2-SNAPSHOT | 农工商添加设备号 | 梁崇福 | 2020-11-09 |
| 1.3.11.RELEASE | 新增常量类转化 | 张志恒 | 2020-08-04 |
| 1.3.12.RELEASE | 加料商品 | 梁崇福 | 2020-08-24 |
| 1.3.13.RELEASE | 麦咖啡 | 徐康 | 2020-09-07 |
......
......@@ -182,5 +182,10 @@ public class OrderExtInfoDto {
private Integer sendPointMaxNum;
private Integer sendPointValidityDateDays;
/**
* 唤起预支付设备号
*/
private String stationId;
}
......@@ -25,7 +25,9 @@ public enum ShoppingCartPromotionEnum {
TwoN_DISCOUNT(9, "twoNDiscountService"),
BUY_GIFTS(10, "buyAndGiftsPromotionService"),
MEMBER_DISCOUNT(11, "memberDiscountService"),
Material(12, "MaterialPromotionService");
Material(12, "MaterialPromotionService"),
// 集点活动类
GATHER_SPOT(13, "gatherSpotPromotionService");
private Integer type;
private String msgType;
......
package cn.freemud.service.impl;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.UserLoginInfoDto;
import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.service.IPromotionService;
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* All rights Reserved, Designed By www.freemud.cn
* 集点活动
*
* @version V1.0
* @Title: BuyAndGiftsPromotionService
* @Package cn.freemud.service.impl
* @Description:
* @author: pengfei.liu
* @date: 2020/11/16
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Service("gatherSpotPromotionService")
public class GatherSpotPromotionService implements IPromotionService {
/**
* 集点活动只有赠送的点数,没有优惠金额<br/>
* 优惠金额不做处理
* @param couponPromotionVO
* @param activityQueryDto
* @param calculationDiscountResult
* @param cartGoodsList
* @param shoppingCartGoodsResponseVo
* @param userLoginInfoDto
* @param shoppingCartInfoRequestVo
*/
@Override
public void updateShoppingCartGoodsDiscount(CouponPromotionVO couponPromotionVO, ActivityQueryDto activityQueryDto,
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult,
List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo,
UserLoginInfoDto userLoginInfoDto, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) {
return;
}
/**
* 活动类型-TYPE_221筛选出集点活动
* 集点活动没有优惠金额,所以促销金额设置为0
* @param shoppingCartGoodsResponseVo
* @param calculationDiscountResult
* @param shoppingCartGoodsDto
* @param premiumExchangeActivity
* @param shoppingCartInfoRequestVo
*/
@Override
public void updateShoppingCartGoodsApportion(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, ShoppingCartGoodsDto shoppingCartGoodsDto, CreateOrderVo.PremiumExchangeActivity premiumExchangeActivity, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) {
if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getDiscounts())) {
return;
}
// 活动类型-TYPE_221筛选出集点活动
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> gatherSpots = calculationDiscountResult.getDiscounts().stream().filter(activityPrompt -> ActivityTypeEnum.TYPE_221.getCode().intValue() == activityPrompt.getType().intValue()).collect(Collectors.toList());
if (CollectionUtils.isEmpty(gatherSpots)) {
return;
}
// 其他活动已经计算出来的促销活动
List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos() == null ? new ArrayList<>() : shoppingCartGoodsDto.getActivityDiscountsDtos();
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount gatherSpot : gatherSpots) {
//设置优惠活动
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(gatherSpot.getActivityCode());
activityDiscountsDto.setActivityName(gatherSpot.getActivityName());
activityDiscountsDto.setActivityType(gatherSpot.getType());
activityDiscountsDto.setDiscountAmount(0);
activityDiscountsDtos.add(activityDiscountsDto);
}
shoppingCartGoodsDto.setActivityDiscountsDtos(activityDiscountsDtos);
}
}
......@@ -1371,6 +1371,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
BuyAndGiftsPromotionService buyAndGiftsPromotionService = (BuyAndGiftsPromotionService) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.BUY_GIFTS);
buyAndGiftsPromotionService.updateShoppingCartGoodsApportion(shoppingCartGoodsResponseVo, calculationDiscountResult, shoppingCartGoodsDto, premiumExchangeActivity, shoppingCartInfoRequestVo);
// 集点活动
GatherSpotPromotionService gatherSpotPromotionService = (GatherSpotPromotionService) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.GATHER_SPOT);
gatherSpotPromotionService.updateShoppingCartGoodsApportion(shoppingCartGoodsResponseVo, calculationDiscountResult, shoppingCartGoodsDto, premiumExchangeActivity, shoppingCartInfoRequestVo);
/**
* 设置加料商品行记录
*/
......
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