Commit f4e45717 by 缪晖

订单创建时初始化发起人餐位以及门店拼单客户列表,拼单取消时添加清除操作

parent 5c68844c
package com.freemud.sdk.api.assortment.shoppingcart.constant;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0.0
* @Description:
* @author: hui.miao
* @date: 2020-10-09 10:49
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public class CollageOrderConstant {
public final static String COLLAGE_ORDER_FAILED = "订单操作失败";
public final static String COLLAGE_ORDER_NOT_EXIST = "拼单订单信息不存在";
public final static String COLLAGE_ORDER_ALREADY_EXIST = "当前用户存在进行中的拼单订单";
}
...@@ -33,7 +33,5 @@ public class ShoppingCartConstant { ...@@ -33,7 +33,5 @@ public class ShoppingCartConstant {
public final static String ONE_TRADE_CAN_ONLY_USE_ONE_GOODS_COUPON = "一笔交易仅允许同时使用一张商品券"; public final static String ONE_TRADE_CAN_ONLY_USE_ONE_GOODS_COUPON = "一笔交易仅允许同时使用一张商品券";
public final static String ORDER_WAY_CHANGE = "切换点餐方式,商品库存和价格等可能会发生变化。"; public final static String ORDER_WAY_CHANGE = "切换点餐方式,商品库存和价格等可能会发生变化。";
public final static String COLLAGE_ORDER_NOT_EXIST = "拼单订单信息不存在";
public final static String COLLAGE_ORDER_ALREADY_EXIST = "当前用户存在进行中的拼单订单";
} }
package com.freemud.sdk.api.assortment.shoppingcart.domain; package com.freemud.sdk.api.assortment.shoppingcart.domain;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CollageLockStatus;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
......
package com.freemud.sdk.api.assortment.shoppingcart.service.impl; package com.freemud.sdk.api.assortment.shoppingcart.service.impl;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.sdk.api.assortment.shoppingcart.adapter.CollageOrderSdkAdapter; import com.freemud.sdk.api.assortment.shoppingcart.adapter.CollageOrderSdkAdapter;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CollageLockStatus; import com.freemud.sdk.api.assortment.shoppingcart.constant.CollageLockStatus;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CollageOrderConstant;
import com.freemud.sdk.api.assortment.shoppingcart.constant.RedisKeyConstant; import com.freemud.sdk.api.assortment.shoppingcart.constant.RedisKeyConstant;
import com.freemud.sdk.api.assortment.shoppingcart.constant.ShoppingCartConstant;
import com.freemud.sdk.api.assortment.shoppingcart.domain.CollageOrder; import com.freemud.sdk.api.assortment.shoppingcart.domain.CollageOrder;
import com.freemud.sdk.api.assortment.shoppingcart.domain.CollageOrderDto; import com.freemud.sdk.api.assortment.shoppingcart.domain.CollageOrderDto;
import com.freemud.sdk.api.assortment.shoppingcart.service.CollageOrderBaseService; import com.freemud.sdk.api.assortment.shoppingcart.service.CollageOrderBaseService;
import com.freemud.sdk.api.assortment.shoppingcart.util.CartResponseUtil; import com.freemud.sdk.api.assortment.shoppingcart.util.CartResponseUtil;
import com.freemud.sdk.api.assortment.shoppingcart.util.DateTimeUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -35,6 +35,9 @@ import java.util.concurrent.TimeUnit; ...@@ -35,6 +35,9 @@ import java.util.concurrent.TimeUnit;
@Service("collageOrderBaseService") @Service("collageOrderBaseService")
public class CollageOrderBaseServiceImpl implements CollageOrderBaseService { public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
@Autowired @Autowired
private CollageCartBaseServiceImpl collageCartBaseService;
@Autowired
private CollageOrderSdkAdapter collageOrderSdkAdapter; private CollageOrderSdkAdapter collageOrderSdkAdapter;
@Autowired @Autowired
...@@ -47,19 +50,24 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService { ...@@ -47,19 +50,24 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
*/ */
@Override @Override
public BaseResponse<CollageOrder> queryCollageOrder(CollageOrderDto collageOrderDto) { public BaseResponse<CollageOrder> queryCollageOrder(CollageOrderDto collageOrderDto) {
// 通过商户ID、门店ID、用户ID组装拼单订单Redis缓存基本信息Key try {
String redisKey = this.genCollageBaseHashKey(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId()); // 通过商户ID、门店ID、用户ID组装拼单订单Redis缓存基本信息Key
String redisKey = this.genCollageBaseHashKey(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId());
// 查询Redis缓存中拼单订单基础信息 // 查询Redis缓存中拼单订单基础信息
CollageOrder collageOrder = this.getCollageBaseHash(redisKey); CollageOrder collageOrder = this.getCollageBaseHash(redisKey);
// 若拼单订单信息不存在,则返回错误提示【拼单订单信息不存在】,由前端根据场景处理(静默、提示拼单已取消) // 若拼单订单信息不存在,则返回错误提示【拼单订单信息不存在】,由前端根据场景处理(静默、提示拼单已取消)
if (ObjectUtils.isEmpty(collageOrder)) { if (ObjectUtils.isEmpty(collageOrder)) {
return CartResponseUtil.error(ShoppingCartConstant.COLLAGE_ORDER_NOT_EXIST); return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_NOT_EXIST);
} }
// 若拼单订单信息存在,则构造订单拼单对象并返回成功提示 // 若拼单订单信息存在,则构造订单拼单对象并返回成功提示
return CartResponseUtil.success(collageOrder); return CartResponseUtil.success(collageOrder);
} catch (Exception e) {
ErrorLog.printErrorLog("获取拼单订单基础信息异常", "CollageOrderBaseServiceImpl/queryCollageOrder", this.collageOrderRequest(collageOrderDto), e);
return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_NOT_EXIST);
}
} }
/** /**
...@@ -69,25 +77,34 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService { ...@@ -69,25 +77,34 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
*/ */
@Override @Override
public BaseResponse<CollageOrder> createCollageOrder(CollageOrderDto collageOrderDto) { public BaseResponse<CollageOrder> createCollageOrder(CollageOrderDto collageOrderDto) {
// 通过商户ID、门店ID、用户ID组装拼单订单Redis缓存基本信息Key try {
String redisKey = this.genCollageBaseHashKey(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId()); // 通过商户ID、门店ID、用户ID组装拼单订单Redis缓存基本信息Key
String collageBaseHashKey = this.genCollageBaseHashKey(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId());
// 根据key查询Redis中拼单订单的基本信息
CollageOrder collageOrder = this.getCollageBaseHash(redisKey); // 根据key查询Redis中拼单订单的基本信息
CollageOrder collageOrder = this.getCollageBaseHash(collageBaseHashKey);
if (ObjectUtils.isEmpty(collageOrder)) {
// 若拼单信息不存在,则初始化拼单订单对象,放入Redis缓存并设置1小时失效时间,返回拼单订单对象并给出成功提示 if (ObjectUtils.isEmpty(collageOrder)) {
collageOrder = collageOrderSdkAdapter.toCollageOrder(collageOrderDto); // 若拼单信息不存在,则初始化拼单订单对象,放入Redis缓存并设置1小时失效时间,返回拼单订单对象并给出成功提示
collageOrder.setCollageId(UUID.randomUUID().toString()); collageOrder = collageOrderSdkAdapter.toCollageOrder(collageOrderDto);
collageOrder.setCreateTime(LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli()); collageOrder.setCollageId(UUID.randomUUID().toString());
collageOrder.setExpireTime(LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli() + 60 * 60 * 1000); collageOrder.setCreateTime(DateTimeUtils.currentTimeMillis());
// 创建缓存数据 collageOrder.setExpireTime(DateTimeUtils.currentTimeMillis(60 * 60L));
this.putCollageBaseHash(redisKey, collageOrder); // 创建缓存数据
return CartResponseUtil.success(collageOrder); this.putCollageBaseHash(collageBaseHashKey, collageOrder);
} // 将拼单发起人加入拼单餐位
else { this.collageCartBaseService.updateCollageCartGoodsUids(Collections.EMPTY_LIST, collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId(), collageOrderDto.getCurrentUserId());
// 若拼单订单信息已存在,则返回错误提示【当前用户存在进行中的拼单订单】 // 将拼单发起人加入门店拼单客户列表
return CartResponseUtil.error(ShoppingCartConstant.COLLAGE_ORDER_ALREADY_EXIST); String collageStoreMemberKey = this.genCollageMemerHashKey(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId());
this.putCollageStoreMember(collageStoreMemberKey, collageOrderDto.getCreateCollageUserId(), this.getCollageBashHashExpireSeconds(collageBaseHashKey));
return CartResponseUtil.success(collageOrder);
} else {
// 若拼单订单信息已存在,则返回错误提示【当前用户存在进行中的拼单订单】
return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_ALREADY_EXIST);
}
} catch (Exception e) {
ErrorLog.printErrorLog("创建拼单订单异常", "CollageOrderBaseServiceImpl/createCollageOrder", this.collageOrderRequest(collageOrderDto), e);
return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_ALREADY_EXIST);
} }
} }
...@@ -98,10 +115,14 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService { ...@@ -98,10 +115,14 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
*/ */
@Override @Override
public BaseResponse cancelCollageOrder(CollageOrderDto collageOrderDto) { public BaseResponse cancelCollageOrder(CollageOrderDto collageOrderDto) {
// 批量删除上述Key对应的Redis缓存 try {
this.deleteCollageBaseHash(this.collageOrderSdkAdapter.toCollageOrder(collageOrderDto)); // 批量删除上述Key对应的Redis缓存
this.deleteCollageBaseHash(this.collageOrderSdkAdapter.toCollageOrder(collageOrderDto));
return CartResponseUtil.success(); return CartResponseUtil.success();
} catch (Exception e) {
ErrorLog.printErrorLog("取消拼单订单异常", "CollageOrderBaseServiceImpl/cancelCollageOrder", this.collageOrderRequest(collageOrderDto), e);
return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_FAILED);
}
} }
/** /**
...@@ -111,8 +132,14 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService { ...@@ -111,8 +132,14 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
*/ */
@Override @Override
public BaseResponse lockCollageOrder(CollageOrderDto collageOrderDto) { public BaseResponse lockCollageOrder(CollageOrderDto collageOrderDto) {
this.setCollageLock(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId(), CollageLockStatus.LOCKED); try {
return this.getCollageLock(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId()).getValue() ? CartResponseUtil.success() : CartResponseUtil.error("操作失败"); String collageLockKey = this.genCollageLockKey(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId());
this.setCollageLock(collageLockKey, CollageLockStatus.LOCKED);
return this.getCollageLock(collageLockKey).getValue() ? CartResponseUtil.success() : CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_FAILED);
} catch (Exception e) {
ErrorLog.printErrorLog("锁定拼单订单异常", "CollageOrderBaseServiceImpl/lockCollageOrder", this.collageOrderRequest(collageOrderDto), e);
return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_FAILED);
}
} }
/** /**
...@@ -122,8 +149,14 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService { ...@@ -122,8 +149,14 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
*/ */
@Override @Override
public BaseResponse unlockCollageOrder(CollageOrderDto collageOrderDto) { public BaseResponse unlockCollageOrder(CollageOrderDto collageOrderDto) {
this.setCollageLock(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId(), CollageLockStatus.RELEASE); try {
return !this.getCollageLock(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId()).getValue() ? CartResponseUtil.success() : CartResponseUtil.error("操作失败"); String collageLockKey = this.genCollageLockKey(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId());
this.setCollageLock(collageLockKey, CollageLockStatus.RELEASE);
return !this.getCollageLock(collageLockKey).getValue() ? CartResponseUtil.success() : CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_FAILED);
} catch (Exception e) {
ErrorLog.printErrorLog("解锁拼单订单异常", "CollageOrderBaseServiceImpl/unlockCollageOrder", this.collageOrderRequest(collageOrderDto), e);
return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_FAILED);
}
} }
/** /**
...@@ -133,7 +166,13 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService { ...@@ -133,7 +166,13 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
*/ */
@Override @Override
public BaseResponse<Boolean> isLockedCollageOrder(CollageOrderDto collageOrderDto) { public BaseResponse<Boolean> isLockedCollageOrder(CollageOrderDto collageOrderDto) {
return CartResponseUtil.success(this.getCollageLock(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId()).getValue()); try {
String collageLockKey = this.genCollageLockKey(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId());
return CartResponseUtil.success(this.getCollageLock(collageLockKey).getValue());
} catch (Exception e) {
ErrorLog.printErrorLog("获取拼单订单锁状态异常", "CollageOrderBaseServiceImpl/isLockedCollageOrder", this.collageOrderRequest(collageOrderDto), e);
return CartResponseUtil.success(false);
}
} }
@Override @Override
...@@ -209,28 +248,43 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService { ...@@ -209,28 +248,43 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
/** /**
* Redis获取拼单订单信息 * Redis获取拼单订单信息
* @param redisKey * @param collageBaseHashKey
* @return
*/
private CollageOrder getCollageBaseHash(String collageBaseHashKey) throws Exception {
return collageOrderSdkAdapter.toCollageOrder(redisTemplate.boundHashOps(collageBaseHashKey).entries());
}
/**
* 获取拼单订单剩余过期时间
* @param collageBaseHashKey
* @return * @return
*/ */
private CollageOrder getCollageBaseHash(String redisKey) { private Long getCollageBashHashExpireSeconds(String collageBaseHashKey) throws Exception {
return collageOrderSdkAdapter.toCollageOrder(redisTemplate.boundHashOps(redisKey).entries()); return redisTemplate.boundHashOps(collageBaseHashKey).getExpire();
} }
/** /**
* Redis写入拼单订单信息 * Redis写入拼单订单信息
* @param redisKey * @param collageBaseHashKey
* @param collageOrder * @param collageOrder
*/ */
private void putCollageBaseHash(String redisKey, CollageOrder collageOrder) { private void putCollageBaseHash(String collageBaseHashKey, CollageOrder collageOrder) throws Exception {
redisTemplate.boundHashOps(redisKey).putAll(this.collageOrderSdkAdapter.toRedisMap(collageOrder)); redisTemplate.boundHashOps(collageBaseHashKey).putAll(this.collageOrderSdkAdapter.toRedisMap(collageOrder));
redisTemplate.boundHashOps(redisKey).expire(1L, TimeUnit.HOURS); redisTemplate.boundHashOps(collageBaseHashKey).expire(1L, TimeUnit.HOURS);
} }
/** /**
* Redis删除拼单订单信息以及相关购物车信息 * Redis删除拼单订单信息以及相关购物车信息
* @param collageOrder * @param collageOrder
*/ */
private void deleteCollageBaseHash(CollageOrder collageOrder) { private void deleteCollageBaseHash(CollageOrder collageOrder) throws Exception {
// 删除商品门店拼单客户列表中该拼单订单下参与人
String collageStoreMemberKey = this.genCollageMemerHashKey(collageOrder.getPartnerId(), collageOrder.getStoreId());
Set<String> collageMember = this.collageCartBaseService.getCollageMember(collageOrder.getPartnerId(), collageOrder.getStoreId(), collageOrder.getCreateCollageUserId());
this.deleteCollageStoreMember(collageStoreMemberKey, collageMember.toArray());
// 删除拼单订单相关缓存
Set<String> redisKeySet = new HashSet<>(); Set<String> redisKeySet = new HashSet<>();
redisKeySet.add(this.genCollageBaseHashKey(collageOrder.getPartnerId(), collageOrder.getStoreId(), collageOrder.getCreateCollageUserId())); redisKeySet.add(this.genCollageBaseHashKey(collageOrder.getPartnerId(), collageOrder.getStoreId(), collageOrder.getCreateCollageUserId()));
redisKeySet.add(this.genCollageMemberHashKey(collageOrder.getPartnerId(), collageOrder.getStoreId(), collageOrder.getCreateCollageUserId())); redisKeySet.add(this.genCollageMemberHashKey(collageOrder.getPartnerId(), collageOrder.getStoreId(), collageOrder.getCreateCollageUserId()));
...@@ -238,35 +292,56 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService { ...@@ -238,35 +292,56 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
redisKeySet.add(this.genCollageCarVerKey(collageOrder.getPartnerId(), collageOrder.getStoreId(), collageOrder.getCreateCollageUserId())); redisKeySet.add(this.genCollageCarVerKey(collageOrder.getPartnerId(), collageOrder.getStoreId(), collageOrder.getCreateCollageUserId()));
redisKeySet.add(this.genCollageLockKey(collageOrder.getPartnerId(), collageOrder.getStoreId(), collageOrder.getCreateCollageUserId())); redisKeySet.add(this.genCollageLockKey(collageOrder.getPartnerId(), collageOrder.getStoreId(), collageOrder.getCreateCollageUserId()));
redisKeySet.add(this.genCollageMemberStateHashKey(collageOrder.getPartnerId(), collageOrder.getStoreId(), collageOrder.getCreateCollageUserId())); redisKeySet.add(this.genCollageMemberStateHashKey(collageOrder.getPartnerId(), collageOrder.getStoreId(), collageOrder.getCreateCollageUserId()));
redisTemplate.delete(redisKeySet); redisTemplate.delete(redisKeySet);
} }
/** /**
* 拼单订单锁设定 * 拼单订单锁设定
* @param partnerId * @param collageLockKey
* @param storeId
* @param userId
* @param status * @param status
*/ */
private void setCollageLock(String partnerId, String storeId, String userId, CollageLockStatus status) { private void setCollageLock(String collageLockKey, CollageLockStatus status) throws Exception {
String collageLockKey = genCollageLockKey(partnerId, storeId, userId);
redisTemplate.boundValueOps(collageLockKey).set(status.getValue(), 1L, TimeUnit.HOURS); redisTemplate.boundValueOps(collageLockKey).set(status.getValue(), 1L, TimeUnit.HOURS);
} }
/** /**
* 获取拼单的锁定状态 * 获取拼单的锁定状态
* @param partnerId * @param collageLockKey
* @param storeId
* @param userId
* @return * @return
*/ */
private CollageLockStatus getCollageLock(String partnerId, String storeId, String userId) { private CollageLockStatus getCollageLock(String collageLockKey) throws Exception {
String collageLockKey = genCollageLockKey(partnerId, storeId, userId);
return CollageLockStatus.getByValue(redisTemplate.boundValueOps(collageLockKey).get()); return CollageLockStatus.getByValue(redisTemplate.boundValueOps(collageLockKey).get());
} }
/** /**
* 商户门店拼单参与用户名单设置
* @param collageStoreMemberKey
* @param userId
*/
private void putCollageStoreMember(String collageStoreMemberKey, String userId, Long expireTime) throws Exception {
redisTemplate.boundHashOps(collageStoreMemberKey).put(userId, Optional.ofNullable(DateTimeUtils.currentTimeMillis(expireTime)).orElseGet(() -> DateTimeUtils.currentTimeMillis(60 * 60L)));
}
/**
* 商户门店拼单参与用户名单删除拼单参与人
* @param collageStoreMemberKey
* @param userIds
*/
private void deleteCollageStoreMember(String collageStoreMemberKey, Object[] userIds) throws Exception {
if (userIds.length == 0) return;
redisTemplate.boundHashOps(collageStoreMemberKey).delete(userIds);
}
/**
* 获取当前商户门店下全部拼单参与用户列表
* @param collageStoreMemberKey
* @return
*/
private Map<String, Long> getCollageStoreMember(String collageStoreMemberKey) throws Exception {
return Optional.ofNullable(redisTemplate.boundHashOps(collageStoreMemberKey).entries()).orElseGet(() -> new HashMap());
}
/**
* 构建拼单购物车缓存key * 构建拼单购物车缓存key
* @param partnerId * @param partnerId
* @param storeId * @param storeId
...@@ -332,4 +407,17 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService { ...@@ -332,4 +407,17 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
return MessageFormat.format(RedisKeyConstant.COLLAGE_CART_VER_KEY, partnerId, storeId, userId); return MessageFormat.format(RedisKeyConstant.COLLAGE_CART_VER_KEY, partnerId, storeId, userId);
} }
/**
* 拼单订单请求参数构造
* @param collageOrderDto
* @return
*/
private Map<String, String> collageOrderRequest(CollageOrderDto collageOrderDto) {
Map<String, String> request = new HashMap<>();
request.put("partnerId", collageOrderDto.getPartnerId());
request.put("storeId", collageOrderDto.getStoreId());
request.put("createCollageUserId", collageOrderDto.getCreateCollageUserId());
request.put("currentUserId", collageOrderDto.getCurrentUserId());
return request;
}
} }
...@@ -245,4 +245,19 @@ public class DateTimeUtils { ...@@ -245,4 +245,19 @@ public class DateTimeUtils {
return getCurrentLocalDate().plus(2, ChronoUnit.DECADES).format(DATE_FORMATTER); return getCurrentLocalDate().plus(2, ChronoUnit.DECADES).format(DATE_FORMATTER);
} }
/**
* 获取当前系统时间毫秒数
* @return
*/
public static Long currentTimeMillis() {
return currentTimeMillis(0L);
}
/**
* 获取当前系统时间毫秒数加偏移量(秒)
* @return
*/
public static Long currentTimeMillis(Long offset) {
return System.currentTimeMillis() + offset * 1000;
}
} }
...@@ -40,14 +40,14 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -40,14 +40,14 @@ import org.springframework.web.bind.annotation.RestController;
@Slf4j @Slf4j
public class CollageOrderController { public class CollageOrderController {
@Autowired @Autowired
private CollageOrderServiceImpl collageOrderServicel; private CollageOrderServiceImpl collageOrderService;
@ApiOperation(value = "查询拼单订单", notes = "根据商户ID、门店ID、拼单邀请人用户ID或者当前登录用户sessionId查询拼单订单信息") @ApiOperation(value = "查询拼单订单", notes = "根据商户ID、门店ID、拼单邀请人用户ID或者当前登录用户sessionId查询拼单订单信息")
@ApiImplicitParam(value = "请求", required = true, dataType = "CollageOrderRequestVo", name = "CollageOrderRequestVo") @ApiImplicitParam(value = "请求", required = true, dataType = "CollageOrderRequestVo", name = "CollageOrderRequestVo")
@ApiAnnotation(logMessage = "getOrder") @ApiAnnotation(logMessage = "getOrder")
@PostMapping(value = "/getOrder") @PostMapping(value = "/getOrder")
public BaseResponse queryCollageOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) { public BaseResponse queryCollageOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) {
return collageOrderServicel.queryCollageOrder(request); return collageOrderService.queryCollageOrder(request);
} }
@ApiOperation(value = "创建拼单订单", notes = "根据商户ID、门店ID、当前登录用户sessionId创建拼单订单信息") @ApiOperation(value = "创建拼单订单", notes = "根据商户ID、门店ID、当前登录用户sessionId创建拼单订单信息")
...@@ -55,7 +55,7 @@ public class CollageOrderController { ...@@ -55,7 +55,7 @@ public class CollageOrderController {
@ApiAnnotation(logMessage = "createOrder") @ApiAnnotation(logMessage = "createOrder")
@PostMapping(value = "/createOrder") @PostMapping(value = "/createOrder")
public BaseResponse createOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) { public BaseResponse createOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) {
return collageOrderServicel.createCollageOrder(request); return collageOrderService.createCollageOrder(request);
} }
@ApiOperation(value = "取消拼单订单", notes = "根据商户ID、门店ID、当前登录用户sessionId取消拼单订单,并删除相关拼单信息") @ApiOperation(value = "取消拼单订单", notes = "根据商户ID、门店ID、当前登录用户sessionId取消拼单订单,并删除相关拼单信息")
...@@ -63,7 +63,7 @@ public class CollageOrderController { ...@@ -63,7 +63,7 @@ public class CollageOrderController {
@ApiAnnotation(logMessage = "cancelOrder") @ApiAnnotation(logMessage = "cancelOrder")
@PostMapping(value = "/cancelOrder") @PostMapping(value = "/cancelOrder")
public BaseResponse cancelCollageOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) { public BaseResponse cancelCollageOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) {
return collageOrderServicel.cancelCollageOrder(request); return collageOrderService.cancelCollageOrder(request);
} }
@ApiOperation(value = "锁定拼单订单", notes = "根据商户ID、门店ID、当前登录用户sessionId锁定拼单订单") @ApiOperation(value = "锁定拼单订单", notes = "根据商户ID、门店ID、当前登录用户sessionId锁定拼单订单")
...@@ -71,7 +71,7 @@ public class CollageOrderController { ...@@ -71,7 +71,7 @@ public class CollageOrderController {
@ApiAnnotation(logMessage = "lockOrder") @ApiAnnotation(logMessage = "lockOrder")
@PostMapping(value = "/lockOrder") @PostMapping(value = "/lockOrder")
public BaseResponse lockCollageOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) { public BaseResponse lockCollageOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) {
return collageOrderServicel.lockCollageOrder(request); return collageOrderService.lockCollageOrder(request);
} }
@ApiOperation(value = "解锁拼单订单", notes = "根据商户ID、门店ID、当前登录用户sessionId解锁拼单订单") @ApiOperation(value = "解锁拼单订单", notes = "根据商户ID、门店ID、当前登录用户sessionId解锁拼单订单")
...@@ -79,7 +79,7 @@ public class CollageOrderController { ...@@ -79,7 +79,7 @@ public class CollageOrderController {
@ApiAnnotation(logMessage = "unlockOrder") @ApiAnnotation(logMessage = "unlockOrder")
@PostMapping(value = "/unlockOrder") @PostMapping(value = "/unlockOrder")
public BaseResponse unlockCollageOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) { public BaseResponse unlockCollageOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) {
return collageOrderServicel.unlockCollageOrder(request); return collageOrderService.unlockCollageOrder(request);
} }
@ApiOperation(value = "加入拼单订单", notes = "加入拼单订单") @ApiOperation(value = "加入拼单订单", notes = "加入拼单订单")
...@@ -87,7 +87,7 @@ public class CollageOrderController { ...@@ -87,7 +87,7 @@ public class CollageOrderController {
@ApiAnnotation(logMessage = "addOrder") @ApiAnnotation(logMessage = "addOrder")
@PostMapping(value = "/addOrder") @PostMapping(value = "/addOrder")
public BaseResponse addOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) { public BaseResponse addOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) {
return collageOrderServicel.addCollageOrder(request); return collageOrderService.addCollageOrder(request);
} }
@ApiOperation(value = "退出拼单订单", notes = "退出拼单订单") @ApiOperation(value = "退出拼单订单", notes = "退出拼单订单")
...@@ -95,6 +95,6 @@ public class CollageOrderController { ...@@ -95,6 +95,6 @@ public class CollageOrderController {
@ApiAnnotation(logMessage = "outOfOrder") @ApiAnnotation(logMessage = "outOfOrder")
@PostMapping(value = "/outOfOrder") @PostMapping(value = "/outOfOrder")
public BaseResponse outOfOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) { public BaseResponse outOfOrder(@Validated @LogParams @RequestBody CollageOrderRequestVo request) {
return collageOrderServicel.outOfOrder(request); return collageOrderService.outOfOrder(request);
} }
} }
...@@ -84,6 +84,7 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -84,6 +84,7 @@ public class CollageOrderServiceImpl implements CollageOrderService {
CollageOrderDto collageOrderDto = this.collageOrderAdapter.convert2CollageOrderDto(request); CollageOrderDto collageOrderDto = this.collageOrderAdapter.convert2CollageOrderDto(request);
// 根据sessionId查询对应登录用户信息 // 根据sessionId查询对应登录用户信息
collageOrderDto.setCreateCollageUserId(this.getUserIdBySessionId(request.getSessionId())); collageOrderDto.setCreateCollageUserId(this.getUserIdBySessionId(request.getSessionId()));
collageOrderDto.setCurrentUserId(collageOrderDto.getCreateCollageUserId());
// 创建拼单订单基础缓存信息 // 创建拼单订单基础缓存信息
BaseResponse<CollageOrder> createCollageOrderResponse = this.collageOrderBaseService.createCollageOrder(collageOrderDto); BaseResponse<CollageOrder> createCollageOrderResponse = this.collageOrderBaseService.createCollageOrder(collageOrderDto);
......
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