Merge branch 'refs/heads/stock-share' into dev

This commit is contained in:
GYJ
2024-06-26 09:16:26 +08:00
7 changed files with 280 additions and 159 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/target/

View File

@@ -34,4 +34,6 @@ public interface TbProductMapper {
void upGroupRealSalesNumber(@Param("id") String id,@Param("number") Integer number); void upGroupRealSalesNumber(@Param("id") String id,@Param("number") Integer number);
void updateStockById(@Param("productId") String productId, @Param("num") Integer num);
} }

View File

@@ -131,6 +131,8 @@ public class TbProduct implements Serializable {
private String cartNumber="0"; private String cartNumber="0";
private String groupCategoryId; private String groupCategoryId;
private Integer stockNumber;
public String getImages() { public String getImages() {
return images; return images;
@@ -650,4 +652,12 @@ public class TbProduct implements Serializable {
public void setSpecTableHeaders(String specTableHeaders) { public void setSpecTableHeaders(String specTableHeaders) {
this.specTableHeaders = specTableHeaders == null ? null : specTableHeaders.trim(); this.specTableHeaders = specTableHeaders == null ? null : specTableHeaders.trim();
} }
public void setStockNumber(Integer stockNumber) {
this.stockNumber = stockNumber;
}
public Integer getStockNumber() {
return this.stockNumber;
}
} }

View File

@@ -46,6 +46,8 @@ public class TbProductSku implements Serializable {
private Long updatedAt; private Long updatedAt;
private Integer isPauseSale = 0;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Integer getId() { public Integer getId() {
@@ -215,4 +217,12 @@ public class TbProductSku implements Serializable {
public void setUpdatedAt(Long updatedAt) { public void setUpdatedAt(Long updatedAt) {
this.updatedAt = updatedAt; this.updatedAt = updatedAt;
} }
public Integer getIsPauseSale() {
return isPauseSale;
}
public void setIsPauseSale(Integer isPauseSale) {
this.isPauseSale = isPauseSale;
}
} }

View File

@@ -94,58 +94,102 @@ public class CartService {
String tableId = jsonObject.getString("tableId"); String tableId = jsonObject.getString("tableId");
String shopId = jsonObject.getString("shopId"); String shopId = jsonObject.getString("shopId");
String productId = jsonObject.getString("productId"); String productId = jsonObject.getString("productId");
String key = tableId + "-" + shopId; String key = tableId + "-" + shopId;
TbProduct tbProduct = productMapper.selectById(Integer.valueOf(productId));
if (tbProduct == null) {
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("status", "fail");
jsonObject1.put("msg", "该商品不存在");
jsonObject1.put("data", new ArrayList<>());
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), key, jsonObject.getString("userId"), true);
log.error("该商品不存在 productId:{}", productId);
throw new MsgException("该商品不存在");
}
String skuId = jsonObject.getString("skuId");
JSONArray jsonArray = new JSONArray(); JSONArray jsonArray = new JSONArray();
BigDecimal amount = BigDecimal.ZERO; BigDecimal amount = BigDecimal.ZERO;
boolean exist = redisUtil.exists(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId")); TbProductSkuWithBLOBs tbProductSkuWithBLOBs = productSkuMapper.selectByPrimaryKey(Integer.valueOf(skuId));
if (!exist) {
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = productSkuMapper.selectByPrimaryKey(Integer.valueOf(jsonObject.getString("skuId")));
Double stock = tbProductSkuWithBLOBs.getStockNumber(); if (Integer.valueOf(tbProduct.getIsPauseSale()).equals(1)) {
redisUtil.saveMessage(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), Math.round(stock) + ""); JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("status", "fail");
jsonObject1.put("msg", "该商品已售罄");
jsonObject1.put("data", new ArrayList<>());
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), key, jsonObject.getString("userId"), true);
log.error("该商品已售罄 productId:{}", productId);
throw new MsgException("该商品已售罄");
} }
String skuNum = redisUtil.getMessage(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"));
TbProduct tbProduct = productMapper.selectById(Integer.valueOf(productId)); String skuNum;
// 1:共享库存 0:独立库存
if (Integer.valueOf(tbProduct.getIsDistribute()).equals(1)) {
boolean exist = redisUtil.exists(RedisCst.PRODUCT + shopId + ":product" + productId);
if (!exist) {
redisUtil.saveMessage(RedisCst.PRODUCT + shopId + ":product" + productId, tbProduct.getStockNumber() + "");
}
skuNum = redisUtil.getMessage(RedisCst.PRODUCT + shopId + ":product" + productId);
} else {
boolean exist = redisUtil.exists(RedisCst.PRODUCT + shopId + ":" + skuId);
if (!exist) {
Double stock = tbProductSkuWithBLOBs.getStockNumber();
redisUtil.saveMessage(RedisCst.PRODUCT + shopId + ":" + skuId, Math.round(stock) + "");
}
skuNum = redisUtil.getMessage(RedisCst.PRODUCT + shopId + ":" + skuId);
}
Integer buyNum = jsonObject.getInteger("num");
if (tbProduct.getIsStock() == 1) { if (tbProduct.getIsStock() == 1) {
if (Integer.valueOf(skuNum) < 1 && jsonObject.getInteger("num") > 0) { boolean flag = false;
String id = skuId;
if (Integer.valueOf(tbProduct.getIsDistribute()).equals(1)) {
if (tbProduct.getStockNumber() < 1 && buyNum > 0) {
flag = true;
id = productId;
}
} else {
if (tbProductSkuWithBLOBs.getIsPauseSale().equals(1)) {
flag = true;
} else if (Integer.valueOf(skuNum) < 1 && buyNum > 0) {
flag = true;
}
}
if (flag) {
JSONObject jsonObject1 = new JSONObject(); JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("status", "fail"); jsonObject1.put("status", "fail");
jsonObject1.put("msg", "该商品库存已售罄"); jsonObject1.put("msg", "该商品库存已售罄");
jsonObject1.put("data", new ArrayList<>()); jsonObject1.put("data", new ArrayList<>());
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), key, jsonObject.getString("userId"), true); PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), key, jsonObject.getString("userId"), true);
log.error("该商品库存已售罄 skuId:{}", jsonObject.getString("skuId")); log.error("该商品库存已售罄 skuId:{}", id);
throw new MsgException("该商品库存已售罄"); throw new MsgException("该商品库存已售罄");
} }
} }
if (redisUtil.exists(RedisCst.TABLE_CART.concat(jsonObject.getString("tableId").concat("-").concat(shopId)))) { if (redisUtil.exists(RedisCst.TABLE_CART.concat(jsonObject.getString("tableId").concat("-").concat(shopId)))) {
JSONArray array = JSON.parseArray(redisUtil.getMessage(RedisCst.TABLE_CART.concat(jsonObject.getString("tableId").concat("-").concat(shopId)))); JSONArray array = JSON.parseArray(redisUtil.getMessage(RedisCst.TABLE_CART.concat(jsonObject.getString("tableId").concat("-").concat(shopId))));
if (Objects.isNull(array) || array.isEmpty() || array.size() < 1) { if (Objects.isNull(array) || array.isEmpty()) {
if (jsonObject.getInteger("num") > 0) { if (buyNum > 0) {
TbCashierCart cashierCart = addCart(jsonObject.getString("productId"), jsonObject.getString("skuId"), TbCashierCart cashierCart = addCart(jsonObject.getString("productId"), skuId,
jsonObject.getInteger("userId"), jsonObject.getInteger("num"), tableId, jsonObject.getString("shopId")); jsonObject.getInteger("userId"), buyNum, tableId, shopId);
jsonArray.add(cashierCart); jsonArray.add(cashierCart);
amount = amount.add(new BigDecimal(cashierCart.getNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); amount = amount.add(new BigDecimal(cashierCart.getNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
if (jsonObject.getInteger("num") > 0) {
redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "1"); updateProductStock(tbProduct, tbProductSkuWithBLOBs, buyNum);
} else {
redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "2");
}
productSkuMapper.updateStockById(jsonObject.getString("skuId"), jsonObject.getInteger("num"));
} }
} else { } else {
boolean flag = true; boolean flag = true;
for (int i = 0; i < array.size(); i++) { for (int i = 0; i < array.size(); i++) {
JSONObject object = array.getJSONObject(i); JSONObject object = array.getJSONObject(i);
TbCashierCart cashierCart = JSONUtil.parseJSONStr2T(object.toJSONString(), TbCashierCart.class); TbCashierCart cashierCart = JSONUtil.parseJSONStr2T(object.toJSONString(), TbCashierCart.class);
if (cashierCart.getSkuId().equals(jsonObject.getString("skuId"))) { if (cashierCart.getSkuId().equals(skuId)) {
cashierCart.setTotalNumber(cashierCart.getTotalNumber() + jsonObject.getInteger("num")); cashierCart.setTotalNumber(cashierCart.getTotalNumber() + buyNum);
cashierCart.setNumber(cashierCart.getNumber() + jsonObject.getInteger("num")); cashierCart.setNumber(cashierCart.getNumber() + buyNum);
if (jsonObject.getInteger("num") > 0) { updateProductStock(tbProduct, tbProductSkuWithBLOBs, buyNum);
redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "1");
} else {
redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "2");
}
productSkuMapper.updateStockById(jsonObject.getString("skuId"), jsonObject.getInteger("num"));
if (cashierCart.getNumber() > 0) { if (cashierCart.getNumber() > 0) {
cashierCart.setTotalAmount(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); cashierCart.setTotalAmount(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
cashierCart.setUpdatedAt(Instant.now().toEpochMilli()); cashierCart.setUpdatedAt(Instant.now().toEpochMilli());
@@ -159,27 +203,21 @@ public class CartService {
jsonArray.add(cashierCart); jsonArray.add(cashierCart);
amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
} }
if (flag && jsonObject.getInteger("num") > 0) { if (flag && buyNum > 0) {
TbCashierCart cashierCart = addCart(jsonObject.getString("productId"), jsonObject.getString("skuId"), TbCashierCart cashierCart = addCart(jsonObject.getString("productId"), skuId,
jsonObject.getInteger("userId"), jsonObject.getInteger("num"), tableId, jsonObject.getString("shopId")); jsonObject.getInteger("userId"), buyNum, tableId, jsonObject.getString("shopId"));
jsonArray.add(cashierCart); jsonArray.add(cashierCart);
amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
if (jsonObject.getInteger("num") > 0) { updateProductStock(tbProduct, tbProductSkuWithBLOBs, buyNum);
redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "1");
} else {
redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "2");
}
productSkuMapper.updateStockById(jsonObject.getString("skuId"), jsonObject.getInteger("num"));
} }
} }
} else { } else {
if (jsonObject.getInteger("num") > 0) { if (buyNum > 0) {
TbCashierCart cashierCart = addCart(jsonObject.getString("productId"), jsonObject.getString("skuId"), TbCashierCart cashierCart = addCart(jsonObject.getString("productId"), skuId,
jsonObject.getInteger("userId"), jsonObject.getInteger("num"), tableId, jsonObject.getString("shopId")); jsonObject.getInteger("userId"), buyNum, tableId, jsonObject.getString("shopId"));
jsonArray.add(cashierCart); jsonArray.add(cashierCart);
amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "1"); updateProductStock(tbProduct, tbProductSkuWithBLOBs, buyNum);
productSkuMapper.updateStockById(jsonObject.getString("skuId"), jsonObject.getInteger("num"));
} }
} }
redisUtil.saveMessage(RedisCst.TABLE_CART.concat(tableId).concat("-").concat(shopId), jsonArray.toJSONString()); redisUtil.saveMessage(RedisCst.TABLE_CART.concat(tableId).concat("-").concat(shopId), jsonArray.toJSONString());
@@ -195,6 +233,22 @@ public class CartService {
} }
} }
private void updateProductStock(TbProduct product, TbProductSkuWithBLOBs productSku, Integer num) {
String key = RedisCst.PRODUCT + product.getShopId() + ":product" + product.getId();
if (product.getIsDistribute() == 1) {
productMapper.updateStockById(product.getId().toString(), num);
} else {
key = RedisCst.PRODUCT + product.getShopId() + ":" + productSku.getId();
productSkuMapper.updateStockById(productSku.getId().toString(), num);
}
if (num > 0) {
redisUtil.getIncrNum(key, "1");
} else {
redisUtil.getIncrNum(key, "2");
}
}
private TbCashierCart addCart(String productId, String skuId, Integer userId, Integer num, String tableId, String shopId) throws Exception { private TbCashierCart addCart(String productId, String skuId, Integer userId, Integer num, String tableId, String shopId) throws Exception {
try { try {
TbProduct product = productMapper.selectById(Integer.valueOf(productId)); TbProduct product = productMapper.selectById(Integer.valueOf(productId));
@@ -205,7 +259,7 @@ public class CartService {
jsonObject1.put("msg", "该商品不存在"); jsonObject1.put("msg", "该商品不存在");
jsonObject1.put("data", new ArrayList<>()); jsonObject1.put("data", new ArrayList<>());
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), key, userId.toString(), true); PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), key, userId.toString(), true);
log.error("购物车添加商品异常,该商品不存在:{}",productId); log.error("购物车添加商品异常,该商品不存在:{}", productId);
throw new MsgException("该商品不存在"); throw new MsgException("该商品不存在");
} }
TbProductSkuWithBLOBs productSku = productSkuMapper.selectByPrimaryKey(Integer.valueOf(skuId)); TbProductSkuWithBLOBs productSku = productSkuMapper.selectByPrimaryKey(Integer.valueOf(skuId));
@@ -215,7 +269,7 @@ public class CartService {
jsonObject1.put("msg", "该商品规格不存在"); jsonObject1.put("msg", "该商品规格不存在");
jsonObject1.put("data", new ArrayList<>()); jsonObject1.put("data", new ArrayList<>());
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), key, userId.toString(), true); PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), key, userId.toString(), true);
log.error("购物车添加商品异常该商品sku不存在{}",productId); log.error("购物车添加商品异常该商品sku不存在{}", productId);
throw new MsgException("该商品规格不存在"); throw new MsgException("该商品规格不存在");
} }
TbCashierCart cashierCart = new TbCashierCart(); TbCashierCart cashierCart = new TbCashierCart();
@@ -429,24 +483,24 @@ public class CartService {
orderInfo.setIsUseCoupon(isuseYhq); orderInfo.setIsUseCoupon(isuseYhq);
orderInfo.setUserCouponAmount(couponAmount); orderInfo.setUserCouponAmount(couponAmount);
JSONObject object=new JSONObject(); JSONObject object = new JSONObject();
String outNumber= redisUtil.getMessage(RedisCst.OUT_NUMBER.concat(jsonObject.getString("shopId"))); String outNumber = redisUtil.getMessage(RedisCst.OUT_NUMBER.concat(jsonObject.getString("shopId")));
Integer number=1; Integer number = 1;
if(Objects.isNull(outNumber)){ if (Objects.isNull(outNumber)) {
object.put("outNumber",number); object.put("outNumber", number);
object.put("times",DateUtils.getDay()); object.put("times", DateUtils.getDay());
}else { } else {
object=JSONObject.parseObject(outNumber); object = JSONObject.parseObject(outNumber);
if(object.getString("times").equals(DateUtils.getDay())){ if (object.getString("times").equals(DateUtils.getDay())) {
number=object.getInteger("outNumber")+1; number = object.getInteger("outNumber") + 1;
object.put("outNumber",number); object.put("outNumber", number);
}else { } else {
object.put("outNumber",number); object.put("outNumber", number);
object.put("times",DateUtils.getDay()); object.put("times", DateUtils.getDay());
} }
} }
orderInfo.setOutNumber(number+""); orderInfo.setOutNumber(number + "");
redisUtil.saveMessage(RedisCst.OUT_NUMBER.concat(jsonObject.getString("shopId")),object.toString()); redisUtil.saveMessage(RedisCst.OUT_NUMBER.concat(jsonObject.getString("shopId")), object.toString());
orderInfoMapper.insert(orderInfo); orderInfoMapper.insert(orderInfo);
orderId = orderInfo.getId(); orderId = orderInfo.getId();
} }
@@ -534,7 +588,7 @@ public class CartService {
if (Objects.isNull(array) || array.isEmpty() || array.size() < 1) { if (Objects.isNull(array) || array.isEmpty() || array.size() < 1) {
for (int i = 0; i < array.size(); i++) { for (int i = 0; i < array.size(); i++) {
TbCashierCart cashierCart = JSONUtil.parseJSONStr2T(array.get(i).toString(), TbCashierCart.class); TbCashierCart cashierCart = JSONUtil.parseJSONStr2T(array.get(i).toString(), TbCashierCart.class);
redisUtil.secAdd(RedisCst.PRODUCT+shopId+":"+jsonObject.getString("skuId"),cashierCart.getNumber().toString()); redisUtil.secAdd(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), cashierCart.getNumber().toString());
productSkuMapper.updateAddStockById(jsonObject.getString("skuId"), cashierCart.getNumber()); productSkuMapper.updateAddStockById(jsonObject.getString("skuId"), cashierCart.getNumber());
} }
@@ -737,24 +791,24 @@ public class CartService {
orderInfo.setIsUseCoupon(isuseYhq); orderInfo.setIsUseCoupon(isuseYhq);
orderInfo.setUserCouponAmount(couponAmount); orderInfo.setUserCouponAmount(couponAmount);
JSONObject object=new JSONObject(); JSONObject object = new JSONObject();
String outNumber= redisUtil.getMessage(RedisCst.OUT_NUMBER.concat(jsonObject.getString("shopId"))); String outNumber = redisUtil.getMessage(RedisCst.OUT_NUMBER.concat(jsonObject.getString("shopId")));
Integer number=1; Integer number = 1;
if(Objects.isNull(outNumber)){ if (Objects.isNull(outNumber)) {
object.put("outNumber",number); object.put("outNumber", number);
object.put("times",DateUtils.getDay()); object.put("times", DateUtils.getDay());
}else { } else {
object=JSONObject.parseObject(outNumber); object = JSONObject.parseObject(outNumber);
if(object.getString("times").equals(DateUtils.getDay())){ if (object.getString("times").equals(DateUtils.getDay())) {
number=object.getInteger("outNumber")+1; number = object.getInteger("outNumber") + 1;
object.put("outNumber",number); object.put("outNumber", number);
}else { } else {
object.put("outNumber",number); object.put("outNumber", number);
object.put("times",DateUtils.getDay()); object.put("times", DateUtils.getDay());
} }
} }
orderInfo.setOutNumber(number+""); orderInfo.setOutNumber(number + "");
redisUtil.saveMessage(RedisCst.OUT_NUMBER.concat(jsonObject.getString("shopId")),object.toString()); redisUtil.saveMessage(RedisCst.OUT_NUMBER.concat(jsonObject.getString("shopId")), object.toString());
orderInfoMapper.insert(orderInfo); orderInfoMapper.insert(orderInfo);

View File

@@ -63,6 +63,7 @@
<result column="tax_config_id" jdbcType="VARCHAR" property="taxConfigId" /> <result column="tax_config_id" jdbcType="VARCHAR" property="taxConfigId" />
<result column="spec_table_headers" jdbcType="VARCHAR" property="specTableHeaders" /> <result column="spec_table_headers" jdbcType="VARCHAR" property="specTableHeaders" />
<result column="group_category_id" jdbcType="VARCHAR" property="groupCategoryId" /> <result column="group_category_id" jdbcType="VARCHAR" property="groupCategoryId" />
<result column="stock_number" jdbcType="INTEGER" property="stockNumber" />
</resultMap> </resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.chaozhanggui.system.cashierservice.entity.TbProductWithBLOBs"> <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.chaozhanggui.system.cashierservice.entity.TbProductWithBLOBs">
<result column="images" jdbcType="LONGVARCHAR" property="images" /> <result column="images" jdbcType="LONGVARCHAR" property="images" />
@@ -81,7 +82,7 @@
created_at, updated_at, base_sales_number, real_sales_number, sales_number, thumb_count, created_at, updated_at, base_sales_number, real_sales_number, sales_number, thumb_count,
store_count, furnish_meal, furnish_express, furnish_draw, furnish_vir, is_combo, store_count, furnish_meal, furnish_express, furnish_draw, furnish_vir, is_combo,
is_show_cash, is_show_mall, is_need_examine, show_on_mall_status, show_on_mall_time, is_show_cash, is_show_mall, is_need_examine, show_on_mall_status, show_on_mall_time,
show_on_mall_error_msg, enable_label, tax_config_id, spec_table_headers,group_category_id show_on_mall_error_msg, enable_label, tax_config_id, spec_table_headers,group_category_id,stock_number
</sql> </sql>
<sql id="Blob_Column_List"> <sql id="Blob_Column_List">
images, video, notice, group_snap, spec_info, select_spec images, video, notice, group_snap, spec_info, select_spec
@@ -120,7 +121,7 @@
show_on_mall_status, show_on_mall_time, show_on_mall_error_msg, show_on_mall_status, show_on_mall_time, show_on_mall_error_msg,
enable_label, tax_config_id, spec_table_headers, enable_label, tax_config_id, spec_table_headers,
images, video, notice, images, video, notice,
group_snap, spec_info, select_spec group_snap, spec_info, select_spec,group_category_id,stock_number
) )
values (#{id,jdbcType=INTEGER}, #{categoryId,jdbcType=VARCHAR}, #{specId,jdbcType=INTEGER}, values (#{id,jdbcType=INTEGER}, #{categoryId,jdbcType=VARCHAR}, #{specId,jdbcType=INTEGER},
#{sourcePath,jdbcType=VARCHAR}, #{brandId,jdbcType=INTEGER}, #{merchantId,jdbcType=VARCHAR}, #{sourcePath,jdbcType=VARCHAR}, #{brandId,jdbcType=INTEGER}, #{merchantId,jdbcType=VARCHAR},
@@ -143,7 +144,9 @@
#{showOnMallStatus,jdbcType=TINYINT}, #{showOnMallTime,jdbcType=BIGINT}, #{showOnMallErrorMsg,jdbcType=VARCHAR}, #{showOnMallStatus,jdbcType=TINYINT}, #{showOnMallTime,jdbcType=BIGINT}, #{showOnMallErrorMsg,jdbcType=VARCHAR},
#{enableLabel,jdbcType=TINYINT}, #{taxConfigId,jdbcType=VARCHAR}, #{specTableHeaders,jdbcType=VARCHAR}, #{enableLabel,jdbcType=TINYINT}, #{taxConfigId,jdbcType=VARCHAR}, #{specTableHeaders,jdbcType=VARCHAR},
#{images,jdbcType=LONGVARCHAR}, #{video,jdbcType=LONGVARCHAR}, #{notice,jdbcType=LONGVARCHAR}, #{images,jdbcType=LONGVARCHAR}, #{video,jdbcType=LONGVARCHAR}, #{notice,jdbcType=LONGVARCHAR},
#{groupSnap,jdbcType=LONGVARCHAR}, #{specInfo,jdbcType=LONGVARCHAR}, #{selectSpec,jdbcType=LONGVARCHAR} #{groupSnap,jdbcType=LONGVARCHAR}, #{specInfo,jdbcType=LONGVARCHAR}, #{selectSpec,jdbcType=LONGVARCHAR},
#{groupCategoryId,jdbcType=VARCHAR},#{stockNumber,jdbcType=INTEGER},
#{groupCategoryId,jdbcType=VARCHAR},#{stockNumber,jdbcType=INTEGER}
) )
</insert> </insert>
<insert id="insertSelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProductWithBLOBs"> <insert id="insertSelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProductWithBLOBs">
@@ -347,6 +350,12 @@
<if test="selectSpec != null"> <if test="selectSpec != null">
select_spec, select_spec,
</if> </if>
<if test="groupCategoryId != null">
group_category_id,
</if>
<if test="stockNumber != null">
stock_number,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
@@ -547,6 +556,12 @@
<if test="selectSpec != null"> <if test="selectSpec != null">
#{selectSpec,jdbcType=LONGVARCHAR}, #{selectSpec,jdbcType=LONGVARCHAR},
</if> </if>
<if test="groupCategoryId != null">
#{groupCategoryId,jdbcType=VARCHAR},
</if>
<if test="stockNumber != null">
#{stockNumber,jdbcType=INTEGER},
</if>
</trim> </trim>
</insert> </insert>
<update id="updateByPrimaryKeySelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProductWithBLOBs"> <update id="updateByPrimaryKeySelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProductWithBLOBs">
@@ -747,6 +762,12 @@
<if test="selectSpec != null"> <if test="selectSpec != null">
select_spec = #{selectSpec,jdbcType=LONGVARCHAR}, select_spec = #{selectSpec,jdbcType=LONGVARCHAR},
</if> </if>
<if test="groupCategoryId != null">
group_category_id = #{groupCategoryId,jdbcType=VARCHAR},
</if>
<if test="stockNumber != null">
stock_number = #{stockNumber,jdbcType=INTEGER},
</if>
</set> </set>
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</update> </update>
@@ -816,7 +837,9 @@
notice = #{notice,jdbcType=LONGVARCHAR}, notice = #{notice,jdbcType=LONGVARCHAR},
group_snap = #{groupSnap,jdbcType=LONGVARCHAR}, group_snap = #{groupSnap,jdbcType=LONGVARCHAR},
spec_info = #{specInfo,jdbcType=LONGVARCHAR}, spec_info = #{specInfo,jdbcType=LONGVARCHAR},
select_spec = #{selectSpec,jdbcType=LONGVARCHAR} select_spec = #{selectSpec,jdbcType=LONGVARCHAR},
group_category_id = #{groupCategoryId,jdbcType=VARCHAR},
stock_number = #{stockNumber,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</update> </update>
<update id="updateByPrimaryKey" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProduct"> <update id="updateByPrimaryKey" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProduct">
@@ -879,7 +902,9 @@
show_on_mall_error_msg = #{showOnMallErrorMsg,jdbcType=VARCHAR}, show_on_mall_error_msg = #{showOnMallErrorMsg,jdbcType=VARCHAR},
enable_label = #{enableLabel,jdbcType=TINYINT}, enable_label = #{enableLabel,jdbcType=TINYINT},
tax_config_id = #{taxConfigId,jdbcType=VARCHAR}, tax_config_id = #{taxConfigId,jdbcType=VARCHAR},
spec_table_headers = #{specTableHeaders,jdbcType=VARCHAR} spec_table_headers = #{specTableHeaders,jdbcType=VARCHAR},
group_category_id = #{groupCategoryId,jdbcType=VARCHAR},
stock_number = #{stockNumber,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</update> </update>
<update id="upGroupRealSalesNumber"> <update id="upGroupRealSalesNumber">
@@ -888,6 +913,12 @@
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</update> </update>
<update id="updateStockById">
update tb_product
set stock_number = stock_number - #{number,jdbcType=INTEGER}
where id = #{productId}
</update>
<select id="selectByIdIn" resultMap="BaseResultMap"> <select id="selectByIdIn" resultMap="BaseResultMap">
select * select *
from tb_product from tb_product

View File

@@ -23,6 +23,7 @@
<result column="second_shared" jdbcType="DECIMAL" property="secondShared" /> <result column="second_shared" jdbcType="DECIMAL" property="secondShared" />
<result column="created_at" jdbcType="BIGINT" property="createdAt" /> <result column="created_at" jdbcType="BIGINT" property="createdAt" />
<result column="updated_at" jdbcType="BIGINT" property="updatedAt" /> <result column="updated_at" jdbcType="BIGINT" property="updatedAt" />
<result column="is_pause_sale" jdbcType="INTEGER" property="isPauseSale" />
</resultMap> </resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.chaozhanggui.system.cashierservice.entity.TbProductSkuWithBLOBs"> <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.chaozhanggui.system.cashierservice.entity.TbProductSkuWithBLOBs">
<result column="spec_info" jdbcType="LONGVARCHAR" property="specInfo" /> <result column="spec_info" jdbcType="LONGVARCHAR" property="specInfo" />
@@ -31,7 +32,7 @@
<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, strategy_price, stock_number, cover_img, warn_line, weight, sale_price, guide_price, strategy_price, stock_number, cover_img, warn_line, weight,
volume, real_sales_number, first_shared, second_shared, created_at, updated_at volume, real_sales_number, first_shared, second_shared, created_at, updated_at, is_pause_sale
</sql> </sql>
<sql id="Blob_Column_List"> <sql id="Blob_Column_List">
spec_info, spec_snap spec_info, spec_snap
@@ -61,7 +62,7 @@
cover_img, warn_line, weight, cover_img, warn_line, weight,
volume, real_sales_number, first_shared, volume, real_sales_number, first_shared,
second_shared, created_at, updated_at, second_shared, created_at, updated_at,
spec_info, spec_snap) spec_info, spec_snap, is_pause_sale)
values (#{id,jdbcType=INTEGER}, #{shopId,jdbcType=VARCHAR}, #{barCode,jdbcType=VARCHAR}, values (#{id,jdbcType=INTEGER}, #{shopId,jdbcType=VARCHAR}, #{barCode,jdbcType=VARCHAR},
#{productId,jdbcType=VARCHAR}, #{originPrice,jdbcType=DECIMAL}, #{costPrice,jdbcType=DECIMAL}, #{productId,jdbcType=VARCHAR}, #{originPrice,jdbcType=DECIMAL}, #{costPrice,jdbcType=DECIMAL},
#{memberPrice,jdbcType=DECIMAL}, #{mealPrice,jdbcType=DECIMAL}, #{salePrice,jdbcType=DECIMAL}, #{memberPrice,jdbcType=DECIMAL}, #{mealPrice,jdbcType=DECIMAL}, #{salePrice,jdbcType=DECIMAL},
@@ -69,7 +70,8 @@
#{coverImg,jdbcType=VARCHAR}, #{warnLine,jdbcType=INTEGER}, #{weight,jdbcType=DOUBLE}, #{coverImg,jdbcType=VARCHAR}, #{warnLine,jdbcType=INTEGER}, #{weight,jdbcType=DOUBLE},
#{volume,jdbcType=REAL}, #{realSalesNumber,jdbcType=DOUBLE}, #{firstShared,jdbcType=DECIMAL}, #{volume,jdbcType=REAL}, #{realSalesNumber,jdbcType=DOUBLE}, #{firstShared,jdbcType=DECIMAL},
#{secondShared,jdbcType=DECIMAL}, #{createdAt,jdbcType=BIGINT}, #{updatedAt,jdbcType=BIGINT}, #{secondShared,jdbcType=DECIMAL}, #{createdAt,jdbcType=BIGINT}, #{updatedAt,jdbcType=BIGINT},
#{specInfo,jdbcType=LONGVARCHAR}, #{specSnap,jdbcType=LONGVARCHAR}) #{specInfo,jdbcType=LONGVARCHAR}, #{specSnap,jdbcType=LONGVARCHAR}),
#{isPauseSale,jdbcType=INTEGER}
</insert> </insert>
<insert id="insertSelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProductSkuWithBLOBs"> <insert id="insertSelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProductSkuWithBLOBs">
insert into tb_product_sku insert into tb_product_sku
@@ -143,6 +145,9 @@
<if test="specSnap != null"> <if test="specSnap != null">
spec_snap, spec_snap,
</if> </if>
<if test="isPauseSale != null">
is_pause_sale,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
@@ -214,6 +219,9 @@
<if test="specSnap != null"> <if test="specSnap != null">
#{specSnap,jdbcType=LONGVARCHAR}, #{specSnap,jdbcType=LONGVARCHAR},
</if> </if>
<if test="isPauseSale != null">
#{isPauseSale,jdbcType=INTEGER},
</if>
</trim> </trim>
</insert> </insert>
<update id="updateByPrimaryKeySelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProductSkuWithBLOBs"> <update id="updateByPrimaryKeySelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProductSkuWithBLOBs">
@@ -285,6 +293,9 @@
<if test="specSnap != null"> <if test="specSnap != null">
spec_snap = #{specSnap,jdbcType=LONGVARCHAR}, spec_snap = #{specSnap,jdbcType=LONGVARCHAR},
</if> </if>
<if test="isPauseSale != null">
is_pause_sale = #{isPauseSale,jdbcType=INTEGER},
</if>
</set> </set>
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</update> </update>
@@ -311,7 +322,8 @@
created_at = #{createdAt,jdbcType=BIGINT}, created_at = #{createdAt,jdbcType=BIGINT},
updated_at = #{updatedAt,jdbcType=BIGINT}, updated_at = #{updatedAt,jdbcType=BIGINT},
spec_info = #{specInfo,jdbcType=LONGVARCHAR}, spec_info = #{specInfo,jdbcType=LONGVARCHAR},
spec_snap = #{specSnap,jdbcType=LONGVARCHAR} spec_snap = #{specSnap,jdbcType=LONGVARCHAR},
is_pause_sale = #{isPauseSale,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</update> </update>
<update id="updateByPrimaryKey" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProductSku"> <update id="updateByPrimaryKey" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProductSku">
@@ -335,7 +347,8 @@
first_shared = #{firstShared,jdbcType=DECIMAL}, first_shared = #{firstShared,jdbcType=DECIMAL},
second_shared = #{secondShared,jdbcType=DECIMAL}, second_shared = #{secondShared,jdbcType=DECIMAL},
created_at = #{createdAt,jdbcType=BIGINT}, created_at = #{createdAt,jdbcType=BIGINT},
updated_at = #{updatedAt,jdbcType=BIGINT} updated_at = #{updatedAt,jdbcType=BIGINT},
is_pause_sale = #{isPauseSale,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</update> </update>
<update id="updateStockById"> <update id="updateStockById">