Commit d4b4fc33 by chongfu.liang

添加农工商卖券

parent c9fac5bb
...@@ -43,4 +43,14 @@ public class CreateOrderController { ...@@ -43,4 +43,14 @@ public class CreateOrderController {
return sellCouponOrderService.createOrder(requestVo); 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;
}
...@@ -7,6 +7,7 @@ import cn.freemud.base.util.DateUtil; ...@@ -7,6 +7,7 @@ import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.ConfirmOrderDto; import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto; import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto; import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.vo.NgsSellCouponCreateOrderVo;
import cn.freemud.entities.vo.PaysuccessNoticeMessage; import cn.freemud.entities.vo.PaysuccessNoticeMessage;
import cn.freemud.entities.vo.SellCouponCreateOrderVo; import cn.freemud.entities.vo.SellCouponCreateOrderVo;
import cn.freemud.enums.OrderBeanType; import cn.freemud.enums.OrderBeanType;
...@@ -107,6 +108,8 @@ public class SellCouponOrderServiceImpl { ...@@ -107,6 +108,8 @@ public class SellCouponOrderServiceImpl {
private final String SUCCESS = "100"; private final String SUCCESS = "100";
private final String ngsCouponProductId = "76161384";
/** /**
* 卖券订单创建 * 卖券订单创建
*/ */
...@@ -208,6 +211,65 @@ public class SellCouponOrderServiceImpl { ...@@ -208,6 +211,65 @@ public class SellCouponOrderServiceImpl {
return orderservice.createPrepayOrder(createPrepayRequestDto); 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 { ...@@ -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 * @param message
......
...@@ -182,5 +182,10 @@ public class OrderExtInfoDto { ...@@ -182,5 +182,10 @@ public class OrderExtInfoDto {
private Integer sendPointMaxNum; private Integer sendPointMaxNum;
private Integer sendPointValidityDateDays; private Integer sendPointValidityDateDays;
/**
* 唤起预支付设备号
*/
private String stationId;
} }
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