Commit 7f3f127d by shuhu.hou@freemud.cn

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

parents f0893150 b796e102
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>1.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
......
......@@ -195,3 +195,4 @@
| 6.4.8.RELEASE|关联jar升级,商品相关价格落库RELEASE版| 丁凯 | 2019-11-28 |
| 6.4.9.RELEASE| 订单支付后保存会员信息-优化错误处理 | 姜海波 | 2019-11-28 |
| 1.0.0-SNAPSHOT | 迁移后包明改为cn.freemud开头第一版 | wuping | 2019-12-16 |
| 1.0.1-SNAPSHOT | 围餐商品数量修改 | 丁凯 | 2019-12-19 |
......@@ -238,6 +238,7 @@ public class OrderSdkAdapter {
createOrderRequest.setDeliveryContactInfoList(deliveryContactInfoList);
//门店渠道信息
createOrderRequest.setOrderExtended(orderInfo.getOrderExtended());
createOrderRequest.setOrderTask(orderInfo.getOrderTask());
return createOrderRequest;
}
......
package com.freemud.sdk.api.assortment.order.request.order;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq;
import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.sdk.api.assortment.order.config.BaseConfig;
......@@ -151,5 +152,8 @@ public class CreateFatherSonOrderRequest extends BaseConfig {
//订单扩展信息 (门店渠道信息)
private OrderExtendedReq orderExtended;
//预订单任务
private OrderTaskReq orderTask;
}
}
......@@ -987,11 +987,17 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
updateOrderProductInfoRequest.getOrderItemList().forEach( t -> {
CreateOrderProductRequest createOrderProductRequest = createOrderProductRequestMap.get(t.getId());
if(createOrderProductRequest != null) {
if(!isDeleted) {
createOrderProductRequest.setWeight(t.getWeight());
createOrderProductRequest.setIsDeleted(isDeleted);
if(isDeleted) {
deletedOrderProductList.add(createOrderProductRequest);
} else {
if(t.getWeight() != null && t.getWeight() > 0D) {
createOrderProductRequest.setWeight(t.getWeight());
}
if(t.getNumber() != null && t.getNumber() > 0) {
createOrderProductRequest.setNumber(t.getNumber());
}
}
createOrderProductRequest.setIsDeleted(isDeleted);
}
});
}
......
......@@ -35,7 +35,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>1.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......@@ -65,7 +65,7 @@
<dependency>
<groupId>com.freemud.sdk.api.assortment</groupId>
<artifactId>assortment-messagepush-sdk</artifactId>
<version>2.2.RELEASE</version>
<version>2.5.1-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>cn.freemud.commons</groupId>
......
......@@ -247,13 +247,13 @@ public class OrderAdapter {
return createOrderDto;
}
public CreateFatherSonOrderRequest convertFatherSonOrderRequest(CreateOrderVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto, OrderExtendedReq orderExtendedReq) {
public CreateFatherSonOrderRequest convertFatherSonOrderRequest(CreateOrderVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto, OrderExtendedReq orderExtendedReq,String orderWarnTime) {
CreateFatherSonOrderRequest createFatherSonOrderRequest = new CreateFatherSonOrderRequest();
createFatherSonOrderRequest.setPartnerId(createOrderVo.getPartnerId());
createFatherSonOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
UserDeliveryInfoDto deliveryInfoDto = createOrderVo.getUserDeliveryInfoDto();
List<CreateFatherSonOrderRequest.OrderInfo> orderInfoList = new ArrayList<>();
CreateFatherSonOrderRequest.OrderInfo productOrderInfo = convertProductOrderInfo(createOrderVo, deliveryInfoDto, shoppingCartGoodsDto);
CreateFatherSonOrderRequest.OrderInfo productOrderInfo = convertProductOrderInfo(createOrderVo, deliveryInfoDto, shoppingCartGoodsDto,orderWarnTime);
productOrderInfo.setOrderExtended(orderExtendedReq);
CreateFatherSonOrderRequest.OrderInfo memberOrderInfo = convertMemberOrderInfo(createOrderVo, shoppingCartGoodsDto, productOrderInfo.getOrderType());
CreateFatherSonOrderRequest.OrderInfo fatherOrderInfo = convertFatherOrderInfo(createOrderVo, shoppingCartGoodsDto, deliveryInfoDto, productOrderInfo.getOrderType());
......@@ -506,7 +506,7 @@ public class OrderAdapter {
}
public CreateFatherSonOrderRequest.OrderInfo convertProductOrderInfo(CreateOrderVo createOrderVo
, UserDeliveryInfoDto userDeliveryInfoDto, ShoppingCartGoodsDto shoppingCartGoodsDto) {
, UserDeliveryInfoDto userDeliveryInfoDto, ShoppingCartGoodsDto shoppingCartGoodsDto,String orderWarnTime) {
String deliveryType = userDeliveryInfoDto != null && userDeliveryInfoDto.getStoreDeliveryInfoDto() != null
? userDeliveryInfoDto.getStoreDeliveryInfoDto().getDeliveryType() : "";
QueryOrderType orderType;
......@@ -524,18 +524,19 @@ public class OrderAdapter {
throw new ServiceException(ResponseResult.PARAMETER_MISSING, "非法的订单类型");
}
String latitude = userDeliveryInfoDto != null ? userDeliveryInfoDto.getUserLatitude() : "";
String longitude = userDeliveryInfoDto != null ? userDeliveryInfoDto.getUserLongitude() : "";
String remark = StringUtils.isNotBlank(createOrderVo.getOrderRemark()) ? createOrderVo.getOrderRemark() : "";
StringBuffer takeMealTime = new StringBuffer("");
CreateFatherSonOrderRequest.OrderInfo productOrderInfo = new CreateFatherSonOrderRequest.OrderInfo();
Date takeMealDate = null;
if (StringUtils.isNotBlank(createOrderVo.getTakeMealTime())) {
takeMealTime = takeMealTime.append(DateUtil.convert2String(new Date(), "yyyy-MM-dd"))
.append(" ").append(createOrderVo.getTakeMealTime()).append(":00");
takeMealDate = DateUtil.convert2Date(takeMealTime.toString(), "yyyy-MM-dd HH:mm:ss");
productOrderInfo.setOrderTask(saveOrderTaskReq(orderWarnTime,takeMealDate.getTime()));
}
CreateFatherSonOrderRequest.OrderInfo productOrderInfo = new CreateFatherSonOrderRequest.OrderInfo();
productOrderInfo.setPartnerId(createOrderVo.getPartnerId());
productOrderInfo.setShopId(createOrderVo.getShopId());
productOrderInfo.setShopName(createOrderVo.getStoreName());
......@@ -563,7 +564,10 @@ public class OrderAdapter {
productOrderInfo.setAmount(0L);
productOrderInfo.setBarCounter(createOrderVo.getTableNumber());
productOrderInfo.setOrderClient(OrderClientType.SAAS.getIndex());
if (StringUtils.isNotBlank(createOrderVo.getTakeMealTime())) {
takeMealTime = takeMealTime.append(DateUtil.convert2String(new Date(), "yyyy-MM-dd"))
.append(" ").append(createOrderVo.getTakeMealTime()).append(":00");
}
long deliveryAmount = 0;
if (userDeliveryInfoDto != null) {
deliveryAmount = getUserRealDeliveryAmount(userDeliveryInfoDto.getStoreDeliveryInfoDto(), userDeliveryInfoDto.getUserLongitude(), userDeliveryInfoDto.getUserLatitude());
......
package cn.freemud.amp.body;
import com.freemud.sdk.api.assortment.message.entity.MpTemplateMsg;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: MessagePushNewMqBody
* @Package cn.freemud.amp.body
* @Description:
* @author: ping1.wu
* @date: 2019/12/18 18:17
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class MessagePushNewMqBody {
private String partnerId;
private String storeId;
private String wxappid;
private String accessToken;
private MpTemplateMsg template;
private String orderId;
public MessagePushNewMqBody() {
}
}
......@@ -13,6 +13,7 @@
package cn.freemud.service.impl;
import cn.freemud.adapter.*;
import cn.freemud.amp.body.MessagePushNewMqBody;
import cn.freemud.amqp.Header;
import cn.freemud.amqp.MQAction;
import cn.freemud.amqp.MQMessage;
......@@ -48,10 +49,12 @@ import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentCloudPrinter;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerConfig;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformWxapp;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformWxappAuthorizer;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.manager.AssortmentCloudPrinterManager;
import com.freemud.api.assortment.datamanager.enums.IappIdType;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerConfigManager;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformWxappAuthorizerManager;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformWxappManager;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.api.assortment.datamanager.meal.MealCacheManager;
......@@ -77,6 +80,9 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto;
import com.freemud.application.sdk.api.structure.service.MessageCenterClient;
import com.freemud.sdk.api.assortment.message.config.MessageOfficialRefundPushMqConfig;
import com.freemud.sdk.api.assortment.message.entity.MpTemplateMsg;
import com.freemud.sdk.api.assortment.message.entity.TemplateKeyword;
import com.freemud.sdk.api.assortment.message.enums.MessageEventType;
import com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRequest;
import com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest;
......@@ -197,6 +203,8 @@ public class OrderServiceImpl implements Orderservice {
private ActivityApplicationClient activityApplicationClient;
@Autowired
private MallOrderServiceImpl mallOrderService;
@Autowired
private AssortmentOpenPlatformWxappAuthorizerManager wxappAuthorizerManager;
......@@ -1152,6 +1160,8 @@ public class OrderServiceImpl implements Orderservice {
if (orderBean.getAmount() > 0) {
sendPosMessage(partnerId, orderBean.getShopId());
}
//通知小助手发送申请退款公众号订阅消息
sendApplyRefundSubscriptionNotice(orderBean,var1);
//已接单可发起退款申请,查询门店有无云打印机,有则打印退款申请小票
printApplyRefundSmallTicket(orderBean, orderRefundVo);
}
......@@ -1707,7 +1717,7 @@ public class OrderServiceImpl implements Orderservice {
});
//创建父子订单
Function<Object, CreateFatherSonOrderResponse> createFatherSonOrder = (var -> {
CreateFatherSonOrderRequest createFatherSonOrderRequest = orderAdapter.convertFatherSonOrderRequest(createOrderVo, shoppingCartGoodsDto, orderExtendedReq);
CreateFatherSonOrderRequest createFatherSonOrderRequest = orderAdapter.convertFatherSonOrderRequest(createOrderVo, shoppingCartGoodsDto, orderExtendedReq,orderWarnTime);
//查询第三方商品编号
createFatherSonOrderRequest = getProductCustomerCodeNew(createFatherSonOrderRequest);
MqMessageRequest mqMessageRequest = new MqMessageRequest();
......@@ -2036,6 +2046,64 @@ public class OrderServiceImpl implements Orderservice {
}
/**
* 通知小助手发送申请退款公众号订阅消息
* @param orderBean
*/
public void sendApplyRefundSubscriptionNotice(OrderBean orderBean,OrderRefundRequest request) {
LogUtil.debug("sendApplyRefundSubscriptionNotice", JSONObject.toJSONString(request), null);
String partnerId = orderBean.getCompanyId();
String shopId = orderBean.getShopId();
if(orderBean.getExtInfo() == null){
return;
}
OrderExtInfoDto extInfo = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class);
if(extInfo == null || extInfo.getAppid() == null){
return;
}
AssortmentOpenPlatformWxappAuthorizer authorizerAppid = wxappAuthorizerManager.findAuthorizerByWxAppId(extInfo.getAppid());
if(authorizerAppid == null){
return;
}
String accessToken = authorizerAppid.getAuthorizerAccessToken();
String orderId = orderBean.getOid();
MpTemplateMsg template = new MpTemplateMsg();
MpTemplateMsg.TemplateMsgData data = new MpTemplateMsg.TemplateMsgData();
TemplateKeyword first = new TemplateKeyword();
first.setValue("用户申请退款");
TemplateKeyword keyword1 = new TemplateKeyword();
keyword1.setValue(orderId);
TemplateKeyword keyword2 = new TemplateKeyword();
Double amount = orderBean.getAmount() / 100.0D;
keyword2.setValue(amount.toString()+ " 元");
TemplateKeyword keyword3 = new TemplateKeyword();
keyword3.setValue(orderBean.getGmtPay() == null ? "" : DateUtil.convert2String(new Date(orderBean.getGmtPay()), "yyyy-MM-dd HH:mm:ss"));
TemplateKeyword keyword4 = new TemplateKeyword();
keyword4.setValue(orderBean.getUserName());
TemplateKeyword keyword5 = new TemplateKeyword();
keyword5.setValue(orderBean.getPhone());
TemplateKeyword remark = new TemplateKeyword();
remark.setValue(request.getReason()+","+request.getRemark());
data.setFirst(first);
data.setKeyword1(keyword1);
data.setKeyword2(keyword2);
data.setKeyword3(keyword3);
data.setKeyword4(keyword4);
data.setKeyword5(keyword5);
data.setRemark(remark);
template.setData(data);
MessagePushNewMqBody messagePushMqBody = new MessagePushNewMqBody();
messagePushMqBody.setPartnerId(partnerId);
messagePushMqBody.setAccessToken(accessToken);
messagePushMqBody.setTemplate(template);
messagePushMqBody.setStoreId(shopId);
messagePushMqBody.setOrderId(orderId);
messagePushMqBody.setWxappid(extInfo.getAppid());
Header header = new Header(MQAction.INSERT.getAction(), "order-application-service-api", orderId, MessageOfficialRefundPushMqConfig.MESSAGE_PUSH_ORDER_REFUND_QUEUE);
MQMessage<MessagePushNewMqBody> message = new MQMessage<>(header, messagePushMqBody);
mqService.convertAndSend(MessageOfficialRefundPushMqConfig.MESSAGE_PUSH_EXCHANGE_TOPIC, MessageOfficialRefundPushMqConfig.MESSAGE_PUSH_ORDER_REFUND_QUEUE_EKY, message);
}
/**
* 申请退款小票打印
*
* @param orderBean
......
......@@ -16,6 +16,7 @@ import cn.freemud.adapter.OrderAdapter;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.OrderExtInfoDto;
import cn.freemud.entities.dto.OrderRefundDto;
import cn.freemud.entities.dto.QueryOrderByIdResponseDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
......@@ -27,12 +28,11 @@ import cn.freemud.service.impl.OrderServiceImpl;
import cn.freemud.service.thirdparty.PaymentClient;
import cn.freemud.utils.ValidationCode;
import com.alibaba.fastjson.JSON;
import com.freemud.sdk.api.assortment.order.request.order.AssortmentGroupCreateOrderRequest;
import com.freemud.sdk.api.assortment.order.request.order.AssortmentGroupOrderAffirmRequest;
import com.freemud.sdk.api.assortment.order.request.order.AssortmentGroupOrderClearRequest;
import com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest;
import com.alibaba.fastjson.JSONObject;
import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.response.order.AssortmentAffirmGroupOrderResponse;
import com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
......@@ -76,6 +76,23 @@ public class OrderServiceTest {
System.out.println("baseResponse : " + baseResponse);
}
@Test
public void sendApplyRefundSubscriptionNoticeTest() {
OrderRefundRequest request = new OrderRefundRequest();
request.setReason("下错单");
request.setRemark("不要了");
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId("16420126386356464000002");
QueryOrderByIdResponse queryOrderByIdResponse = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
String string = JSONObject.toJSONString(queryOrderByIdResponse);
JSONObject jsonObject = JSONObject.parseObject(string);
QueryOrderByIdResponseDto orderByIdResponseDto = jsonObject.toJavaObject(QueryOrderByIdResponseDto.class);
QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderByIdResponseDto.getData();
orderService.sendApplyRefundSubscriptionNotice(orderBean,request);
}
@Test
......
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