Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
package com.chaozhanggui.system.cashierservice.constant;
|
||||||
|
|
||||||
|
public interface TableConstant {
|
||||||
|
|
||||||
|
String CART_SEAT_ID = "-999";
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.chaozhanggui.system.cashierservice.constant.TableConstant;
|
||||||
import com.chaozhanggui.system.cashierservice.dao.*;
|
import com.chaozhanggui.system.cashierservice.dao.*;
|
||||||
import com.chaozhanggui.system.cashierservice.entity.*;
|
import com.chaozhanggui.system.cashierservice.entity.*;
|
||||||
import com.chaozhanggui.system.cashierservice.entity.Enum.*;
|
import com.chaozhanggui.system.cashierservice.entity.Enum.*;
|
||||||
@@ -178,21 +179,31 @@ public class CartService {
|
|||||||
tableId = null;
|
tableId = null;
|
||||||
}
|
}
|
||||||
String tableCartKey = RedisCst.getTableCartKey(shopId, tableId, userId);
|
String tableCartKey = RedisCst.getTableCartKey(shopId, tableId, userId);
|
||||||
TbCashierCart seatCartInfo = null;
|
// 免除座位费,删除当前台桌座位费信息
|
||||||
if (redisUtil.exists(tableCartKey)) {
|
TbShopInfo shopInfo = shopEatTypeInfoDTO.getShopInfo();
|
||||||
array = JSON.parseArray(redisUtil.getMessage(tableCartKey));
|
boolean ignoreTableFee = shopInfo.getIsTableFee() != null && shopInfo.getIsTableFee() == 1;
|
||||||
for (int i = 0; i < array.size(); i++) {
|
|
||||||
JSONObject object = array.getJSONObject(i);
|
TbCashierCart seatCartInfo = null;
|
||||||
TbCashierCart cashierCart = JSONUtil.parseJSONStr2T(object.toJSONString(), TbCashierCart.class);
|
// if (redisUtil.exists(tableCartKey)) {
|
||||||
if (cashierCart.getNumber() > 0) {
|
// JSONArray jsonArray = JSON.parseArray(redisUtil.getMessage(tableCartKey));
|
||||||
amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
|
// for (int i = 0; i < jsonArray.size(); i++) {
|
||||||
}
|
// JSONObject object = array.getJSONObject(i);
|
||||||
|
// TbCashierCart cashierCart = JSONUtil.parseJSONStr2T(object.toJSONString(), TbCashierCart.class);
|
||||||
|
// if ((!TableConstant.CART_SEAT_ID.equals(cashierCart.getProductId()) || !ignoreTableFee) && cashierCart.getNumber() > 0) {
|
||||||
|
// amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (TableConstant.CART_SEAT_ID.equals(cashierCart.getProductId())) {
|
||||||
|
// seatCartInfo = cashierCart;
|
||||||
|
// if (!ignoreTableFee) {
|
||||||
|
// array.add(cashierCart);
|
||||||
|
// }
|
||||||
|
// }else {
|
||||||
|
// array.add(cashierCart);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
|
||||||
if ("-999".equals(cashierCart.getProductId())) {
|
|
||||||
seatCartInfo = cashierCart;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 查询购物车所有信息
|
// 查询购物车所有信息
|
||||||
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
||||||
.eq(TbCashierCart::getShopId, shopId)
|
.eq(TbCashierCart::getShopId, shopId)
|
||||||
@@ -209,18 +220,28 @@ public class CartService {
|
|||||||
List<TbCashierCart> tbCashierCarts = mpCashierCartMapper.selectList(queryWrapper);
|
List<TbCashierCart> tbCashierCarts = mpCashierCartMapper.selectList(queryWrapper);
|
||||||
if (!CollectionUtils.isEmpty(tbCashierCarts)) {
|
if (!CollectionUtils.isEmpty(tbCashierCarts)) {
|
||||||
for (TbCashierCart cashierCart : tbCashierCarts) {
|
for (TbCashierCart cashierCart : tbCashierCarts) {
|
||||||
if ("-999".equals(cashierCart.getProductId())) {
|
if (TableConstant.CART_SEAT_ID.equals(cashierCart.getProductId())) {
|
||||||
seatCartInfo = cashierCart;
|
seatCartInfo = cashierCart;
|
||||||
|
if (!ignoreTableFee) {
|
||||||
|
array.add(cashierCart);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
array.add(cashierCart);
|
||||||
}
|
}
|
||||||
array.add(cashierCart);
|
|
||||||
if (cashierCart.getIsVip().equals((byte) 1)) continue;
|
if (cashierCart.getIsVip().equals((byte) 1)) continue;
|
||||||
amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
|
if ((!TableConstant.CART_SEAT_ID.equals(cashierCart.getProductId()) || !ignoreTableFee) && cashierCart.getNumber() > 0) {
|
||||||
|
amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
redisUtil.saveMessage(tableCartKey, array.toString(), 60 * 60 * 12L);
|
redisUtil.saveMessage(tableCartKey, array.toString(), 60 * 60 * 12L);
|
||||||
}
|
}
|
||||||
}
|
// }
|
||||||
|
|
||||||
redisUtil.saveMessage(RedisCst.getCurrentTableSeatCount(shopEatTypeInfoDTO.getShopInfo().getId(), tableId), JSONObject.toJSONString(seatCartInfo), 60 * 60 * 12L);
|
if (ignoreTableFee && seatCartInfo != null) {
|
||||||
|
mpCashierCartMapper.deleteById(seatCartInfo.getId());
|
||||||
|
}else {
|
||||||
|
redisUtil.saveMessage(RedisCst.getCurrentTableSeatCount(shopEatTypeInfoDTO.getShopInfo().getId(), tableId), JSONObject.toJSONString(seatCartInfo), 60 * 60 * 12L);
|
||||||
|
}
|
||||||
|
|
||||||
JSONObject jsonObject1 = new JSONObject();
|
JSONObject jsonObject1 = new JSONObject();
|
||||||
jsonObject1.put("status", "success");
|
jsonObject1.put("status", "success");
|
||||||
@@ -855,6 +876,7 @@ public class CartService {
|
|||||||
TbProduct product = productMapper.selectById(Integer.valueOf(cart.getProductId()));
|
TbProduct product = productMapper.selectById(Integer.valueOf(cart.getProductId()));
|
||||||
cart.setPackFee(product.getPackFee() != null ?
|
cart.setPackFee(product.getPackFee() != null ?
|
||||||
product.getPackFee().multiply(BigDecimal.valueOf(cart.getNumber())) : BigDecimal.ZERO);
|
product.getPackFee().multiply(BigDecimal.valueOf(cart.getNumber())) : BigDecimal.ZERO);
|
||||||
|
cart.setIsPack("true");
|
||||||
} else {
|
} else {
|
||||||
cart.setTableId(tableId);
|
cart.setTableId(tableId);
|
||||||
cart.setPackFee(BigDecimal.ZERO);
|
cart.setPackFee(BigDecimal.ZERO);
|
||||||
@@ -1568,6 +1590,7 @@ public class CartService {
|
|||||||
public List<TbCashierCart> choseEatModel(ChoseEatModelDTO choseEatModelDTO) {
|
public List<TbCashierCart> choseEatModel(ChoseEatModelDTO choseEatModelDTO) {
|
||||||
Integer userId = TokenUtil.getUserId();
|
Integer userId = TokenUtil.getUserId();
|
||||||
List<TbCashierCart> cashierCartList;
|
List<TbCashierCart> cashierCartList;
|
||||||
|
// 外带模式
|
||||||
if (choseEatModelDTO.getType() == 1) {
|
if (choseEatModelDTO.getType() == 1) {
|
||||||
// 查询购物车所有信息
|
// 查询购物车所有信息
|
||||||
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
||||||
@@ -1576,9 +1599,30 @@ public class CartService {
|
|||||||
.isNull(TbCashierCart::getOrderId)
|
.isNull(TbCashierCart::getOrderId)
|
||||||
.ne(TbCashierCart::getProductId, "-999")
|
.ne(TbCashierCart::getProductId, "-999")
|
||||||
.eq(TbCashierCart::getStatus, "create");
|
.eq(TbCashierCart::getStatus, "create");
|
||||||
// 外带模式
|
|
||||||
queryWrapper.eq(TbCashierCart::getUserId, userId);
|
queryWrapper.eq(TbCashierCart::getUserId, userId);
|
||||||
cashierCartList = mpCashierCartMapper.selectList(queryWrapper);
|
cashierCartList = mpCashierCartMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
// 计算打包费
|
||||||
|
if (cashierCartList.isEmpty()) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> productIds = cashierCartList.stream().map(TbCashierCart::getProductId).collect(Collectors.toList());
|
||||||
|
Map<Integer, TbProduct> productMap = productMapper.selectByIds(productIds).stream()
|
||||||
|
.collect(Collectors.toMap(
|
||||||
|
TbProduct::getId, // keyMapper,使用 Product 的 getId() 方法作为 key
|
||||||
|
product -> product // valueMapper,直接使用 Product 对象作为 value
|
||||||
|
));
|
||||||
|
cashierCartList.forEach(item -> {
|
||||||
|
TbProduct tbProduct = productMap.get(Integer.parseInt(item.getProductId()));
|
||||||
|
item.setIsPack("true");
|
||||||
|
if (tbProduct != null && tbProduct.getPackFee() != null) {
|
||||||
|
BigDecimal packFee = tbProduct.getPackFee().multiply(BigDecimal.valueOf(item.getNumber()));
|
||||||
|
item.setPackFee(packFee);
|
||||||
|
item.setTotalAmount(item.getTotalAmount().add(packFee));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
cashierCartList = new ArrayList<>();
|
cashierCartList = new ArrayList<>();
|
||||||
String tableCartKey = RedisCst.getTableCartKey(choseEatModelDTO.getShopId().toString(), choseEatModelDTO.getTableId(), userId);
|
String tableCartKey = RedisCst.getTableCartKey(choseEatModelDTO.getShopId().toString(), choseEatModelDTO.getTableId(), userId);
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.chaozhanggui.system.cashierservice.constant.TableConstant;
|
||||||
import com.chaozhanggui.system.cashierservice.dao.*;
|
import com.chaozhanggui.system.cashierservice.dao.*;
|
||||||
import com.chaozhanggui.system.cashierservice.entity.*;
|
import com.chaozhanggui.system.cashierservice.entity.*;
|
||||||
import com.chaozhanggui.system.cashierservice.entity.Enum.OrderUseTypeEnum;
|
import com.chaozhanggui.system.cashierservice.entity.Enum.OrderUseTypeEnum;
|
||||||
@@ -925,8 +926,8 @@ public class ProductService {
|
|||||||
tbCashierCart.setStatus("create");
|
tbCashierCart.setStatus("create");
|
||||||
tbCashierCart.setTotalAmount(new BigDecimal(choseCountDTO.getNum()).multiply(shopInfo.getTableFee()));
|
tbCashierCart.setTotalAmount(new BigDecimal(choseCountDTO.getNum()).multiply(shopInfo.getTableFee()));
|
||||||
tbCashierCart.setPlaceNum(1);
|
tbCashierCart.setPlaceNum(1);
|
||||||
tbCashierCart.setProductId("-999");
|
tbCashierCart.setProductId(TableConstant.CART_SEAT_ID);
|
||||||
tbCashierCart.setSkuId("-999");
|
tbCashierCart.setSkuId(TableConstant.CART_SEAT_ID);
|
||||||
tbCashierCart.setPackFee(BigDecimal.ZERO);
|
tbCashierCart.setPackFee(BigDecimal.ZERO);
|
||||||
tbCashierCart.setNumber(choseCountDTO.getNum());
|
tbCashierCart.setNumber(choseCountDTO.getNum());
|
||||||
tbCashierCart.setTotalNumber(choseCountDTO.getNum());
|
tbCashierCart.setTotalNumber(choseCountDTO.getNum());
|
||||||
@@ -954,7 +955,7 @@ public class ProductService {
|
|||||||
jsonArray = new JSONArray();
|
jsonArray = new JSONArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
long count = jsonArray.stream().filter(item -> "-999".equals(((JSONObject) item).getString("productId"))).count();
|
long count = jsonArray.stream().filter(item -> TableConstant.CART_SEAT_ID.equals(((JSONObject) item).getString("productId"))).count();
|
||||||
if (count < 1) {
|
if (count < 1) {
|
||||||
jsonArray.add(tbCashierCart);
|
jsonArray.add(tbCashierCart);
|
||||||
redisUtil.saveMessage(tableCartKey, jsonArray.toJSONString());
|
redisUtil.saveMessage(tableCartKey, jsonArray.toJSONString());
|
||||||
@@ -970,11 +971,11 @@ public class ProductService {
|
|||||||
private TbCashierCart getSeatCartInfo(Object shopId, String tableId, Integer userId, ShopEatTypeInfoDTO shopEatTypeInfoDTO) {
|
private TbCashierCart getSeatCartInfo(Object shopId, String tableId, Integer userId, ShopEatTypeInfoDTO shopEatTypeInfoDTO) {
|
||||||
LambdaQueryWrapper<TbCashierCart> query = new LambdaQueryWrapper<TbCashierCart>()
|
LambdaQueryWrapper<TbCashierCart> query = new LambdaQueryWrapper<TbCashierCart>()
|
||||||
.eq(TbCashierCart::getShopId, shopId)
|
.eq(TbCashierCart::getShopId, shopId)
|
||||||
.eq(TbCashierCart::getProductId, "-999")
|
.eq(TbCashierCart::getProductId, TableConstant.CART_SEAT_ID)
|
||||||
.eq(TbCashierCart::getSkuId, "-999")
|
.eq(TbCashierCart::getSkuId, TableConstant.CART_SEAT_ID)
|
||||||
.eq(TbCashierCart::getStatus, "create")
|
.eq(TbCashierCart::getStatus, "create")
|
||||||
.gt(TbCashierCart::getCreatedAt, DateUtil.offsetDay(DateUtil.date(), -1).getTime())
|
.gt(TbCashierCart::getCreatedAt, DateUtil.offsetDay(DateUtil.date(), -1).getTime())
|
||||||
.and(r -> r.eq(TbCashierCart::getUserId, userId).or().isNull(TbCashierCart::getUserId))
|
// .and(r -> r.eq(TbCashierCart::getUserId, userId).or().isNull(TbCashierCart::getUserId))
|
||||||
.eq(TbCashierCart::getUseType, shopEatTypeInfoDTO.getUseType())
|
.eq(TbCashierCart::getUseType, shopEatTypeInfoDTO.getUseType())
|
||||||
.eq(TbCashierCart::getTableId, tableId);
|
.eq(TbCashierCart::getTableId, tableId);
|
||||||
return mpCashierCartMapper.selectOne(query);
|
return mpCashierCartMapper.selectOne(query);
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
</resultMap>
|
</resultMap>
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
id, shop_id, bar_code, product_id, origin_price, cost_price, member_price, meal_price,
|
id, shop_id, bar_code, product_id, origin_price, cost_price, member_price, meal_price,
|
||||||
sale_price, guide_price,suit, strategy_price, stock_number, cover_img, warn_line, weight,
|
sale_price, guide_price,suit, strategy_price, stock_number, cover_img, weight,
|
||||||
volume, real_sales_number, first_shared, second_shared, created_at, updated_at, is_pause_sale ,is_del,is_grounding
|
volume, real_sales_number, first_shared, second_shared, created_at, updated_at, is_pause_sale ,is_del,is_grounding
|
||||||
</sql>
|
</sql>
|
||||||
<sql id="Blob_Column_List">
|
<sql id="Blob_Column_List">
|
||||||
|
|||||||
Reference in New Issue
Block a user