Commit 98182759 by zhiheng.zhang

Merge branch 'feature/2020/09/11-1.9.39-6位随机取餐码-张志恒'

parents 4b17910b e7764675
...@@ -65,6 +65,12 @@ public class ConfirmOrderRequest extends BaseConfig { ...@@ -65,6 +65,12 @@ public class ConfirmOrderRequest extends BaseConfig {
*/ */
private String endTransId; private String endTransId;
/**
* 取餐码类型
*/
private String mealCodeRule;
@Data @Data
public static class OrderSettlement{ public static class OrderSettlement{
/** /**
......
...@@ -307,6 +307,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -307,6 +307,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request.setPayRequestNo(confirmOrderRequest.getPayVoucher()); request.setPayRequestNo(confirmOrderRequest.getPayVoucher());
request.setCompleteOrderCode(confirmOrderRequest.getCompleteOrderCode()); request.setCompleteOrderCode(confirmOrderRequest.getCompleteOrderCode());
request.setOrderCode(confirmOrderRequest.getOrderId()); request.setOrderCode(confirmOrderRequest.getOrderId());
request.setMealCodeRule(confirmOrderRequest.getMealCodeRule());
// 引入门店基础服务 查询自动制作完成配置时间,预约单单独超时任务设置 // 引入门店基础服务 查询自动制作完成配置时间,预约单单独超时任务设置
request.setTimeout(getPaySuccessTimeout(confirmOrderRequest,request)); request.setTimeout(getPaySuccessTimeout(confirmOrderRequest,request));
......
...@@ -36,9 +36,11 @@ import cn.freemud.enums.PayStatus; ...@@ -36,9 +36,11 @@ import cn.freemud.enums.PayStatus;
import cn.freemud.enums.QueryOrderStatus; import cn.freemud.enums.QueryOrderStatus;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache;
import cn.freemud.request.wechat.dto.SignMessageBuilder; import cn.freemud.request.wechat.dto.SignMessageBuilder;
import cn.freemud.service.impl.OrderCommonService; import cn.freemud.service.impl.OrderCommonService;
import cn.freemud.utils.*; import cn.freemud.utils.*;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig; import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
...@@ -71,6 +73,7 @@ import org.apache.commons.lang.StringUtils; ...@@ -71,6 +73,7 @@ import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.FastDateFormat; import org.apache.commons.lang.time.FastDateFormat;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.awt.geom.Point2D; import java.awt.geom.Point2D;
...@@ -78,7 +81,9 @@ import java.math.BigDecimal; ...@@ -78,7 +81,9 @@ import java.math.BigDecimal;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException; import java.security.spec.InvalidKeySpecException;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -86,7 +91,6 @@ import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND; ...@@ -86,7 +91,6 @@ import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND;
@Component @Component
public class OrderAdapter { public class OrderAdapter {
private static FastDateFormat yyyyMMddHHmmss = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss", Locale.CHINA); private static FastDateFormat yyyyMMddHHmmss = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
private static String SPMCHID = "1237482502"; private static String SPMCHID = "1237482502";
...@@ -123,6 +127,9 @@ public class OrderAdapter { ...@@ -123,6 +127,9 @@ public class OrderAdapter {
private static Gson gson = new Gson(); private static Gson gson = new Gson();
@Autowired
private RedisCache redisCache;
/** /**
* @param createOrderVo * @param createOrderVo
* @param shoppingCartGoodsDto * @param shoppingCartGoodsDto
...@@ -3175,4 +3182,20 @@ public class OrderAdapter { ...@@ -3175,4 +3182,20 @@ public class OrderAdapter {
return StringUtils.isNotBlank(payChannel) && OrderAdapter.PAY_CODE_10102.equalsIgnoreCase(payChannel); return StringUtils.isNotBlank(payChannel) && OrderAdapter.PAY_CODE_10102.equalsIgnoreCase(payChannel);
} }
public List<AssortmentOpenPlatformPartnerWxappConfig> cacheSelectDefaultPage(String wxAppId, String type) {
if (!StringUtils.isEmpty(wxAppId) && !StringUtils.isEmpty(type)) {
String hashKey = "ecology:kgd:wxappconfig:open_platform_partner_wxapp_config:appkey_" + wxAppId;
Object value = redisCache.hashGet(hashKey, type);
JSONArray jsonArray = value != null ? JSONArray.parseArray(value.toString()) : new JSONArray();
if(null != jsonArray && jsonArray.size() >0){
for(int i=0;i<jsonArray.size();i++){
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
jsonObject.remove("@type");
}
}
return (value != null ? JSONObject.parseArray(jsonArray.toString(), AssortmentOpenPlatformPartnerWxappConfig.class) : new ArrayList());
} else {
return new ArrayList();
}
}
} }
...@@ -158,6 +158,7 @@ public enum ResponseResult { ...@@ -158,6 +158,7 @@ public enum ResponseResult {
ORDER_MEALTIME_MISSING("450063", "你的取餐方式或取餐时间异常,请重新选择!"), ORDER_MEALTIME_MISSING("450063", "你的取餐方式或取餐时间异常,请重新选择!"),
ORDER_TAKE_OUT_TIME_ERROR("450062", "你的外卖送达时间异常,请重新选择!"), ORDER_TAKE_OUT_TIME_ERROR("450062", "你的外卖送达时间异常,请重新选择!"),
ORDER_TAKE_OUT_ADDRESS_NOT_VALID("45063", "收货地址校验失败"), ORDER_TAKE_OUT_ADDRESS_NOT_VALID("45063", "收货地址校验失败"),
ORDER_PICK_UP_GOOD_NO("45064", "更新取餐码失败"),
/** /**
* 支付 * 支付
......
...@@ -21,6 +21,7 @@ import cn.freemud.amqp.MQService; ...@@ -21,6 +21,7 @@ import cn.freemud.amqp.MQService;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal; import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.base.util.JsonUtil;
import cn.freemud.constant.OrderRefundConstant; import cn.freemud.constant.OrderRefundConstant;
import cn.freemud.constant.RedisKeyConstant; import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
...@@ -83,11 +84,13 @@ import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType; ...@@ -83,11 +84,13 @@ import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq; import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto; import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq; import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderModifyRelatingCodeReq;
import com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderCreateReq; import com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderCreateReq;
import com.freemud.application.sdk.api.ordercenter.response.carpark.OrderResp; import com.freemud.application.sdk.api.ordercenter.response.carpark.OrderResp;
import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse; import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse;
import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.paymentcenter.client.request.CodePayRequest; import com.freemud.application.sdk.api.paymentcenter.client.request.CodePayRequest;
...@@ -136,6 +139,7 @@ import org.springframework.beans.BeanUtils; ...@@ -136,6 +139,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import tk.mybatis.mapper.util.StringUtil; import tk.mybatis.mapper.util.StringUtil;
...@@ -258,6 +262,8 @@ public class OrderServiceImpl implements Orderservice { ...@@ -258,6 +262,8 @@ public class OrderServiceImpl implements Orderservice {
private OfflineCouponSdkService offlineCouponSdkService; private OfflineCouponSdkService offlineCouponSdkService;
@Autowired @Autowired
private DeliveryFeiginClient deliveryFeiginClient; private DeliveryFeiginClient deliveryFeiginClient;
@Autowired
private RedisTemplate redisTemplate;
@Override @Override
public BaseResponse checkBeforeCreateOrder(CheckBeforeCreateOrderRequestVo requestVo) { public BaseResponse checkBeforeCreateOrder(CheckBeforeCreateOrderRequestVo requestVo) {
...@@ -419,6 +425,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -419,6 +425,7 @@ public class OrderServiceImpl implements Orderservice {
var1.setPayTransId(message.getOut_trade_no()); var1.setPayTransId(message.getOut_trade_no());
var1.setOperator(orderBean.getUserName()); var1.setOperator(orderBean.getUserName());
var1.setEndTransId(message.getEndTransId()); var1.setEndTransId(message.getEndTransId());
var1.setMealCodeRule(getMealCodeRule(wxappid));
if (StringUtils.isNotBlank(payCode)) { if (StringUtils.isNotBlank(payCode)) {
var1.setPayChannel(payCode); var1.setPayChannel(payCode);
var1.setPayChannelName(PayChannel.getByCode(payCode).getDesc()); var1.setPayChannelName(PayChannel.getByCode(payCode).getDesc());
...@@ -444,8 +451,6 @@ public class OrderServiceImpl implements Orderservice { ...@@ -444,8 +451,6 @@ public class OrderServiceImpl implements Orderservice {
// TODO 订单序号替换取餐码显示 // TODO 订单序号替换取餐码显示
takeCode = payAccessResponse.getData().getTakeCode(); takeCode = payAccessResponse.getData().getTakeCode();
daySeq = payAccessResponse.getData().getDaySeq(); daySeq = payAccessResponse.getData().getDaySeq();
//TODO 清空购物车 //TODO 清空购物车
NewShoppingCartClearDto newShoppingCartClearDto = new NewShoppingCartClearDto(); NewShoppingCartClearDto newShoppingCartClearDto = new NewShoppingCartClearDto();
newShoppingCartClearDto.setPartnerId(partnerId); newShoppingCartClearDto.setPartnerId(partnerId);
...@@ -1533,7 +1538,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1533,7 +1538,7 @@ public class OrderServiceImpl implements Orderservice {
} }
} }
if (OrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())) { if (OrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())) {
boolean refundButton = this.orderAdapter.checkRefundButton(queryOrderByIdResponse.getData(), userInfo.getWxAppId()); boolean refundButton = orderAdapter.checkRefundButton(queryOrderByIdResponse.getData(), userInfo.getWxAppId());
if (!refundButton) { if (!refundButton) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_ALLOW_REFUND.getCode(), ResponseResult.ORDER_NOT_ALLOW_REFUND.getMessage()); return ResponseUtil.error(ResponseResult.ORDER_NOT_ALLOW_REFUND.getCode(), ResponseResult.ORDER_NOT_ALLOW_REFUND.getMessage());
} }
...@@ -3002,4 +3007,15 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3002,4 +3007,15 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(responses.getData()); return ResponseUtil.success(responses.getData());
} }
public String getMealCodeRule(String appId){
String mealCodeRule = "";
List<AssortmentOpenPlatformPartnerWxappConfig> partnerWxappConfigs = orderAdapter.cacheSelectDefaultPage(appId, "2");
Map<String, AssortmentOpenPlatformPartnerWxappConfig> configMap = partnerWxappConfigs.stream().collect(Collectors.toMap(AssortmentOpenPlatformPartnerWxappConfig::getAppKey, Function.identity()));
AssortmentOpenPlatformPartnerWxappConfig refundDeliveryFeeConfig = configMap.get("mealCodeRule");
if(null != refundDeliveryFeeConfig) {
mealCodeRule = refundDeliveryFeeConfig.getAppValue();
}
return mealCodeRule;
}
} }
...@@ -52,4 +52,7 @@ public class PaySuccessReq { ...@@ -52,4 +52,7 @@ public class PaySuccessReq {
//预订单任务 //预订单任务
private OrderTaskReq orderTask; private OrderTaskReq orderTask;
//取餐码生成规则
private String mealCodeRule;
} }
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