Commit d96b2283 by zhiheng.zhang

取餐码代码抽取

parent c86c7c67
...@@ -3164,80 +3164,6 @@ public class OrderAdapter { ...@@ -3164,80 +3164,6 @@ public class OrderAdapter {
public static boolean isPayOfSVC(String payChannel) { public static boolean isPayOfSVC(String payChannel) {
return StringUtils.isNotBlank(payChannel) && OrderAdapter.PAY_CODE_10102.equalsIgnoreCase(payChannel); return StringUtils.isNotBlank(payChannel) && OrderAdapter.PAY_CODE_10102.equalsIgnoreCase(payChannel);
} }
/**
* 生成取餐码
* @param partnerId 商户ID
* @param storeId 门店ID
* @return
*/
public String generateTackCode(String partnerId, String storeId){
String pickUpGoodsNo = generateNumber(6);
String key = this.getOrderTackCodeKey(partnerId,storeId);
if(!redisTemplate.opsForHash().hasKey(key,storeId+pickUpGoodsNo)) {
redisTemplate.opsForHash().put(key,storeId+pickUpGoodsNo,pickUpGoodsNo);
redisTemplate.expire(key,getSecondsNextEarlyMorning(), TimeUnit.SECONDS);
}else{
generateTackCode(partnerId, storeId);
}
return pickUpGoodsNo;
}
/**
* 获取取餐码key
* @param partnerId
* @return
*/
public String getOrderTackCodeKey(String partnerId,String storeId){
Date currentDay = new Date();
String todayStr = formatDate(currentDay);
StringBuilder key = new StringBuilder(TAKECODEKEY).append(REDIS_KEY_SEP)
.append(partnerId)
.append(REDIS_KEY_SEP)
.append(storeId)
.append(REDIS_KEY_SEP)
.append(todayStr);
return key.toString();
}
public static SimpleDateFormat defaultDateFormater = new SimpleDateFormat("yyyy-MM-dd");
private String formatDate(Date date){
return defaultDateFormater.format(date);
}
/**
* 返回一个定长的随机字符串(只包含大小写字母、数字)
*
* @param length
* 随机字符串长度
* @return 随机字符串
*/
public static String generateNumber(int length) {
StringBuffer sb = new StringBuffer();
Random random = new Random();
for (int i = 0; i < length; i++) {
if (i == 0){
sb.append(numberCharWithoutZero.charAt(random.nextInt(numberCharWithoutZero.length())));
}else {
sb.append(numberChar.charAt(random.nextInt(numberChar.length())));
}
}
return sb.toString();
}
private Long getSecondsNextEarlyMorning(){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
return (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000;
}
/** /**
* 支付信息转换 * 支付信息转换
*/ */
......
...@@ -436,18 +436,6 @@ public class OrderServiceImpl implements Orderservice { ...@@ -436,18 +436,6 @@ public class OrderServiceImpl implements Orderservice {
String string2 = JSONObject.toJSONString(payAccessRes); String string2 = JSONObject.toJSONString(payAccessRes);
JSONObject jsonObject2 = JSONObject.parseObject(string2); JSONObject jsonObject2 = JSONObject.parseObject(string2);
payAccessResponse = jsonObject2.toJavaObject(PayAccessResponse.class); payAccessResponse = jsonObject2.toJavaObject(PayAccessResponse.class);
//获取生态缓存中的配置项,如果mealCodeRule的值不为空并且值等于2,则随机生成取参数,当日不重复
String mealCodeRule = redisCache.getValue("mealCodeRule");
if(!StringUtils.isEmpty(mealCodeRule) && "2".equalsIgnoreCase(mealCodeRule)){
//更新db中的取餐码,生成取餐码
OrderModifyRelatingCodeReq relatingCodeReq =new OrderModifyRelatingCodeReq();
relatingCodeReq.setOrderCode(orderBean.getOid());
relatingCodeReq.setOperator(orderBean.getCreateUser());
relatingCodeReq.setPartnerId(orderBean.getCompanyId());
relatingCodeReq.setPickUpGoodsNo(orderAdapter.generateTackCode(orderBean.getCompanyId(),orderBean.getShopId()));
orderCenterSdkService.updatePickUpGoodNo(relatingCodeReq, LogThreadLocal.getTrackingNo());
}
// 添加幂等处理,若订单是已支付成功状态,直接返回成功 // 添加幂等处理,若订单是已支付成功状态,直接返回成功
if (!RESPONSE_SUCCESS_CODE.equals(payAccessResponse.getErrcode())) { if (!RESPONSE_SUCCESS_CODE.equals(payAccessResponse.getErrcode())) {
OrderBean saasOrder = getOrderBeanByOrderId(confirmOrderDto.getOrderId()).get(OrderBeanType.SAASORDER.getCode()); OrderBean saasOrder = getOrderBeanByOrderId(confirmOrderDto.getOrderId()).get(OrderBeanType.SAASORDER.getCode());
...@@ -1550,7 +1538,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1550,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());
} }
......
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