1 Commits
gyj ... zs2

Author SHA1 Message Date
1455a7e64e 1.代客下单 2024-08-14 09:43:07 +08:00
5 changed files with 71 additions and 37 deletions

View File

@@ -34,7 +34,7 @@ public class OrderController {
String userId = jsonObject.getString("accountId"); String userId = jsonObject.getString("accountId");
return orderService.createCart(cartVo.getMasterId(),cartVo.getProductId(),cartVo.getShopId(), return orderService.createCart(cartVo.getMasterId(),cartVo.getProductId(),cartVo.getShopId(),
cartVo.getSkuId(),cartVo.getNumber(),userId,clientType,cartVo.getCartId(),cartVo.getIsGift(), cartVo.getSkuId(),cartVo.getNumber(),userId,clientType,cartVo.getCartId(),cartVo.getIsGift(),
cartVo.getIsPack(),cartVo.getUuid(),cartVo.getType(), cartVo.getTableId()); cartVo.getIsPack(),cartVo.getUuid(),cartVo.getType(), cartVo.getTableId(), cartVo.getVipUserId());
} }
@MyLog(value = "查询购物车信息", tag = LogTag.CART) @MyLog(value = "查询购物车信息", tag = LogTag.CART)
@@ -43,13 +43,14 @@ public class OrderController {
@RequestHeader("loginName") String loginName, @RequestHeader("loginName") String loginName,
@RequestHeader("clientType") String clientType, @RequestHeader("clientType") String clientType,
@RequestParam(value = "masterId", required = false) String masterId, @RequestParam(value = "masterId", required = false) String masterId,
@RequestParam(required = false) String tableId, @RequestParam(required = false) Integer tableId,
@RequestParam(required = false) Integer vipUserId,
@RequestParam("shopId") String shopId @RequestParam("shopId") String shopId
){ ){
if (tableId == null && StrUtil.isBlank(masterId)) { if (tableId == null && StrUtil.isBlank(masterId)) {
return Result.fail("masterId和tableId不能同时为空"); return Result.fail("masterId和tableId不能同 时为空");
} }
return orderService.queryCart(masterId,shopId, tableId); return orderService.queryCart(masterId,shopId, tableId, vipUserId);
} }
@@ -57,11 +58,10 @@ public class OrderController {
public Result delCart(@RequestHeader("token") String token, public Result delCart(@RequestHeader("token") String token,
@RequestHeader("loginName") String loginName, @RequestHeader("loginName") String loginName,
@RequestHeader("clientType") String clientType, @RequestHeader("clientType") String clientType,
@RequestParam(required = false) String tableId,
@RequestParam(value = "masterId", required = false) String masterId, @RequestParam(value = "masterId", required = false) String masterId,
@RequestParam("cartId") Integer cartId @RequestParam("cartId") Integer cartId
){ ){
return orderService.delCart(masterId,cartId, tableId); return orderService.delCart(masterId,cartId);
} }
@GetMapping("/createCode") @GetMapping("/createCode")
public Result createCode(@RequestHeader("token") String token, public Result createCode(@RequestHeader("token") String token,

View File

@@ -30,8 +30,8 @@ public interface TbCashierCartMapper {
TbCashierCart selectByDetail(@Param("masterId") String masterId, @Param("productId") String productId, TbCashierCart selectByDetail(@Param("masterId") String masterId, @Param("productId") String productId,
@Param("shopId") String shopId, @Param("skuId") String skuId, @Param("day") String day,@Param("uuid") String uuid); @Param("shopId") String shopId, @Param("skuId") String skuId, @Param("day") String day,@Param("uuid") String uuid);
TbCashierCart selectDetailByQrcode(@Param("tableId") String tableId, @Param("productId") String productId, TbCashierCart selectDetailByQrcode(@Param("tableId") Integer tableId, @Param("productId") String productId,
@Param("shopId") String shopId, @Param("skuId") String skuId, @Param("uuid") String uuid); @Param("shopId") String shopId, @Param("skuId") String skuId, @Param("userId") Integer userId);
List<TbCashierCart> selectByMaskerId(@Param("masterId")String masterId, @Param("shopId")Integer shopId,@Param("status") String status,@Param("day") String day); List<TbCashierCart> selectByMaskerId(@Param("masterId")String masterId, @Param("shopId")Integer shopId,@Param("status") String status,@Param("day") String day);
@@ -45,7 +45,12 @@ public interface TbCashierCartMapper {
@Param("status") String status, @Param("day") String day, @Param("uuid") String uuid); @Param("status") String status, @Param("day") String day, @Param("uuid") String uuid);
List<TbCashierCart> selectAllCreateOrder(@Param("masterId") String masterId, @Param("shopId") Integer shopId, List<TbCashierCart> selectAllCreateOrder(@Param("masterId") String masterId, @Param("shopId") Integer shopId,
@Param("day") String day, @Param("status") String status,@Param("uuid") String uuid); @Param("day") String day, @Param("status") String status,
@Param("uuid") String uuid);
List<TbCashierCart> selectAllCreateOrder2(@Param("masterId") String masterId, @Param("shopId") Integer shopId,
@Param("day") String day, @Param("status") String status,
@Param("uuid") String uuid, @Param("tableId") Integer tableId, @Param("vipUserId") Integer vipUserId);
List<CartPo> selectCartList( @Param("cartId") String shopId); List<CartPo> selectCartList( @Param("cartId") String shopId);
int updateByOrderId(@Param("orderId") String orderId,@Param("status") String status); int updateByOrderId(@Param("orderId") String orderId,@Param("status") String status);
@@ -64,7 +69,7 @@ public interface TbCashierCartMapper {
List<TbCashierCart> selectByOrderId(@Param("orderId") String orderId,@Param("status") String status); List<TbCashierCart> selectByOrderId(@Param("orderId") String orderId,@Param("status") String status);
List<TbCashierCart> selectActivateByQrcode(@Param("tableId") String tableId, @Param("shopId") Integer shopId); List<TbCashierCart> selectActivateByQrcode(@Param("tableId") Integer tableId, @Param("shopId") Integer shopId, @Param("userId") Integer userId);
QueryCartPo selectProductNumByQrcode(@Param("qrcode") String qrcode, @Param("shopId") Integer shopId); QueryCartPo selectProductNumByQrcode(@Param("tableId") Integer tableId, @Param("shopId") Integer shopId, @Param("vipUserId") Integer vipUserId);
} }

View File

@@ -8,7 +8,8 @@ public class CartVo {
// orderId不为空为代客下单 // orderId不为空为代客下单
private String masterId; private String masterId;
private String tableId; private Integer tableId;
private Integer vipUserId;
private String shopId; private String shopId;
private Integer skuId; private Integer skuId;
private Integer number; private Integer number;

View File

@@ -92,7 +92,7 @@ public class OrderService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result createCart(String masterId, String productId, String shopId, Integer skuId, Integer number, public Result createCart(String masterId, String productId, String shopId, Integer skuId, Integer number,
String userId, String clientType, Integer cartId, String isGift, String isPack, String uuid, String type, String qrcode) { String userId, String clientType, Integer cartId, String isGift, String isPack, String uuid, String type, Integer tableId, Integer vipId) {
if (Objects.isNull(number) || number < 0) { if (Objects.isNull(number) || number < 0) {
return Result.fail(CodeEnum.NUMBER); return Result.fail(CodeEnum.NUMBER);
} }
@@ -129,7 +129,7 @@ public class OrderService {
// 低于起售,删除商品 // 低于起售,删除商品
}else if (exists != null && skuWithBLOBs.getSuit() != null && skuWithBLOBs.getSuit() != 0 && number < skuWithBLOBs.getSuit()){ }else if (exists != null && skuWithBLOBs.getSuit() != null && skuWithBLOBs.getSuit() != 0 && number < skuWithBLOBs.getSuit()){
redisUtil.deleteByKey(RedisCst.ORDER_CART_EXISTS + cartId); redisUtil.deleteByKey(RedisCst.ORDER_CART_EXISTS + cartId);
delCart(masterId, cartId, qrcode); delCart(masterId, cartId);
return Result.success(CodeEnum.SUCCESS, masterId); return Result.success(CodeEnum.SUCCESS, masterId);
} }
@@ -145,7 +145,6 @@ public class OrderService {
} }
} }
if (qrcode == null && StringUtils.isEmpty(masterId)) {
boolean flag = redisUtil.exists("SHOP:CODE:" + clientType + ":" + shopId); boolean flag = redisUtil.exists("SHOP:CODE:" + clientType + ":" + shopId);
if (flag) { if (flag) {
String code = redisUtil.getMessage("SHOP:CODE:" + clientType + ":" + shopId).toString(); String code = redisUtil.getMessage("SHOP:CODE:" + clientType + ":" + shopId).toString();
@@ -157,7 +156,6 @@ public class OrderService {
redisUtil.saveMessage("SHOP:CODE:" + clientType + ":" + shopId, "1"); redisUtil.saveMessage("SHOP:CODE:" + clientType + ":" + shopId, "1");
masterId = "#" + String.format("%03d", 1); masterId = "#" + String.format("%03d", 1);
} }
}
TbCashierCart cart = cashierCartMapper.selectByPrimaryKey(cartId); TbCashierCart cart = cashierCartMapper.selectByPrimaryKey(cartId);
@@ -182,11 +180,11 @@ public class OrderService {
cashierCartMapper.updateByPrimaryKeySelective(cart); cashierCartMapper.updateByPrimaryKeySelective(cart);
} else { } else {
List<TbCashierCart> list = StrUtil.isNotBlank(masterId) ? cashierCartMapper.selectALlByMasterId(masterId, "create") List<TbCashierCart> list = userId == null && tableId == null ? cashierCartMapper.selectALlByMasterId(masterId, "create")
: cashierCartMapper.selectActivateByQrcode(qrcode, Integer.valueOf(shopId)); : cashierCartMapper.selectActivateByQrcode(tableId, Integer.valueOf(shopId), vipId);
TbCashierCart cashierCart = StrUtil.isNotBlank(masterId) ? cashierCartMapper.selectByDetail(masterId, productId, shopId, skuId.toString(), DateUtils.getDay(), uuid) TbCashierCart cashierCart = userId == null && tableId == null ? cashierCartMapper.selectByDetail(masterId, productId, shopId, skuId.toString(), DateUtils.getDay(), uuid)
: cashierCartMapper.selectDetailByQrcode(qrcode, productId, shopId, skuId.toString(), uuid); : cashierCartMapper.selectDetailByQrcode(tableId, productId, shopId, skuId.toString(), vipId);
if (number > 0) { if (number > 0) {
if (Objects.isNull(cashierCart)) { if (Objects.isNull(cashierCart)) {
@@ -194,10 +192,9 @@ public class OrderService {
cashierCart.setCoverImg(product.getCoverImg()); cashierCart.setCoverImg(product.getCoverImg());
cashierCart.setCreatedAt(System.currentTimeMillis()); cashierCart.setCreatedAt(System.currentTimeMillis());
cashierCart.setIsSku(product.getTypeEnum()); cashierCart.setIsSku(product.getTypeEnum());
if (qrcode != null) { cashierCart.setMasterId(masterId);
cashierCart.setTableId(qrcode); if (tableId != null) {
}else { cashierCart.setTableId(String.valueOf(tableId));
cashierCart.setMasterId(masterId);
} }
cashierCart.setUuid(uuid); cashierCart.setUuid(uuid);
cashierCart.setMerchantId(userId); cashierCart.setMerchantId(userId);
@@ -210,6 +207,7 @@ public class OrderService {
cashierCart.setStatus("create"); cashierCart.setStatus("create");
cashierCart.setIsPack(isPack); cashierCart.setIsPack(isPack);
cashierCart.setIsGift(isGift); cashierCart.setIsGift(isGift);
cashierCart.setUserId(vipId == null ? Integer.valueOf(userId) : vipId);
if (isGift.equals("false")) { if (isGift.equals("false")) {
cashierCart.setTotalAmount(new BigDecimal(number).multiply(skuWithBLOBs.getSalePrice())); cashierCart.setTotalAmount(new BigDecimal(number).multiply(skuWithBLOBs.getSalePrice()));
} else { } else {
@@ -223,7 +221,6 @@ public class OrderService {
} }
cashierCart.setTotalNumber(number); cashierCart.setTotalNumber(number);
cashierCart.setUserId(Integer.valueOf(userId));
cashierCart.setNumber(number); cashierCart.setNumber(number);
cashierCart.setUuid(uuid); cashierCart.setUuid(uuid);
cashierCart.setCategoryId(product.getCategoryId()); cashierCart.setCategoryId(product.getCategoryId());
@@ -303,15 +300,15 @@ public class OrderService {
} }
} }
public Result queryCart(String masterId, String shopId, String qrcode) { public Result queryCart(String masterId, String shopId, Integer tableId, Integer vipUserId) {
if (StringUtils.isEmpty(shopId)) { if (StringUtils.isEmpty(shopId)) {
return Result.fail(CodeEnum.SHOPINFONOEXIST); return Result.fail(CodeEnum.SHOPINFONOEXIST);
} }
String day = DateUtils.getDay(); String day = DateUtils.getDay();
List<TbCashierCart> list; List<TbCashierCart> list;
if (StrUtil.isBlank(masterId)) { if (tableId != null) {
list = cashierCartMapper.selectActivateByQrcode(qrcode, Integer.valueOf(shopId)); list = cashierCartMapper.selectActivateByQrcode(tableId, Integer.valueOf(shopId), vipUserId);
}else { }else {
list = cashierCartMapper.selectByMaskerId(masterId, Integer.valueOf(shopId),"create",day); list = cashierCartMapper.selectByMaskerId(masterId, Integer.valueOf(shopId),"create",day);
} }
@@ -362,10 +359,10 @@ public class OrderService {
} }
QueryCartPo queryCartPo; QueryCartPo queryCartPo;
if (StrUtil.isNotBlank(masterId)) { if (tableId == null) {
queryCartPo = cashierCartMapper.selectProductNumByMarketId(day, shopId, masterId); queryCartPo = cashierCartMapper.selectProductNumByMarketId(day, shopId, masterId);
}else { }else {
queryCartPo = cashierCartMapper.selectProductNumByQrcode(qrcode, Integer.valueOf(shopId)); queryCartPo = cashierCartMapper.selectProductNumByQrcode(tableId, Integer.valueOf(shopId), vipUserId);
} }
queryCartPo.setPackAmount(packAmount); queryCartPo.setPackAmount(packAmount);
queryCartPo.setTotalAmount(totalAmount); queryCartPo.setTotalAmount(totalAmount);
@@ -377,7 +374,7 @@ public class OrderService {
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result delCart(String masterId, Integer cartId, String qrcode) { public Result delCart(String masterId, Integer cartId) {
TbCashierCart cashierCart=cashierCartMapper.selectByPrimaryKey(cartId); TbCashierCart cashierCart=cashierCartMapper.selectByPrimaryKey(cartId);
@@ -409,7 +406,7 @@ public class OrderService {
List<String> skuIds=new ArrayList<>(); List<String> skuIds=new ArrayList<>();
skuIds.add(cashierCart.getSkuId()); skuIds.add(cashierCart.getSkuId());
cashierCartMapper.deleteByCartIdOrTableId(masterId, cartId, qrcode); cashierCartMapper.deleteByCartIdOrTableId(masterId, cartId, null);
return Result.success(CodeEnum.SUCCESS); return Result.success(CodeEnum.SUCCESS);
} }
@@ -854,7 +851,8 @@ public class OrderService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result clearCart(CartVo cartVo) { public Result clearCart(CartVo cartVo) {
String day = DateUtils.getDay(); String day = DateUtils.getDay();
List<TbCashierCart> list = cashierCartMapper.selectAllCreateOrder(cartVo.getMasterId(), Integer.valueOf(cartVo.getShopId()), day, "create", cartVo.getUuid()); List<TbCashierCart> list = cashierCartMapper.selectAllCreateOrder2(
cartVo.getMasterId(), Integer.valueOf(cartVo.getShopId()), day, "create", cartVo.getUuid(), cartVo.getTableId(), cartVo.getVipUserId());
int orderId = 0; int orderId = 0;
List<ProductSkuPo> productSkuPos=new ArrayList<>(); List<ProductSkuPo> productSkuPos=new ArrayList<>();
List<String> skuIds=new ArrayList<>(); List<String> skuIds=new ArrayList<>();

View File

@@ -65,8 +65,8 @@
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
from tb_cashier_cart where table_id = #{tableId} and product_id = #{productId} and shop_id = #{shopId} and from tb_cashier_cart where table_id = #{tableId} and product_id = #{productId} and shop_id = #{shopId} and
sku_id = #{skuId} sku_id = #{skuId}
<if test="uuid != null"> <if test="userId != null">
and uuid = #{uuid} and user_id = #{userId}
</if> </if>
</select> </select>
<select id="selectByMaskerId" resultType="com.chaozhanggui.system.cashierservice.entity.TbCashierCart"> <select id="selectByMaskerId" resultType="com.chaozhanggui.system.cashierservice.entity.TbCashierCart">
@@ -91,6 +91,27 @@
and trade_day = #{day} and trade_day = #{day}
</if> </if>
</select> </select>
<select id="selectAllCreateOrder2" resultType="com.chaozhanggui.system.cashierservice.entity.TbCashierCart">
select
<include refid="Base_Column_List"/>
from tb_cashier_cart where shop_id = #{shopId} and status = #{status}
<if test="uuid != null and uuid != ''">
and uuid = #{uuid}
</if>
<if test="day != null and day !=''">
and trade_day = #{day}
</if>
<if test="tableId != null and vipUserId != null">
and (table_id = #{tableId} or user_id=#{vipUserId})
</if>
<if test="tableId != null and vipUserId == null">
and table_id = #{tableId} and master_id = #{masterId}
</if>
<if test="tableId == null and vipUserId == null">
and master_id = #{masterId}
</if>
</select>
<select id="selectProductNumByMarketId" resultType="com.chaozhanggui.system.cashierservice.entity.po.QueryCartPo"> <select id="selectProductNumByMarketId" resultType="com.chaozhanggui.system.cashierservice.entity.po.QueryCartPo">
select ifnull(count(*),0) as productNum,ifnull(sum(number),0)as productSum from (select count(*),number from tb_cashier_cart where trade_day = #{day} and master_id = #{masterId} and shop_id = #{shopId} group by product_id ) a select ifnull(count(*),0) as productNum,ifnull(sum(number),0)as productSum from (select count(*),number from tb_cashier_cart where trade_day = #{day} and master_id = #{masterId} and shop_id = #{shopId} group by product_id ) a
</select> </select>
@@ -408,13 +429,22 @@
<select id="selectActivateByQrcode" <select id="selectActivateByQrcode"
resultType="com.chaozhanggui.system.cashierservice.entity.TbCashierCart"> resultType="com.chaozhanggui.system.cashierservice.entity.TbCashierCart">
select * from tb_cashier_cart where table_id = #{tableId} and shop_id = #{shopId} and status = 'create' select * from tb_cashier_cart where shop_id = #{shopId} and status = 'create'
and table_id = #{tableId}
<if test="userId != null">
and user_id=#{userId}
</if>
</select> </select>
<select id="selectProductNumByQrcode" <select id="selectProductNumByQrcode"
resultType="com.chaozhanggui.system.cashierservice.entity.po.QueryCartPo"> resultType="com.chaozhanggui.system.cashierservice.entity.po.QueryCartPo">
select ifnull(count(*),0) as productNum,ifnull(sum(number),0)as productSum select ifnull(count(*),0) as productNum,ifnull(sum(number),0)as productSum
from (select count(*),number from (select count(*),number
from tb_cashier_cart where table_id = #{qrcode} and shop_id = #{shopId} group by product_id ) a from tb_cashier_cart where table_id = #{tableId} and shop_id = #{shopId}
<if test="vipUserId != null">
and user_id=#{vipUserId}
</if>
group by product_id ) a
</select> </select>