From 314a08f02d4efd29bc8ab4860bbb4d357c76de76 Mon Sep 17 00:00:00 2001 From: tangzh Date: Tue, 18 Mar 2025 14:31:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E7=AE=A1=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SystemHelpController.java | 12 +-- .../com/zbkj/common/constants/Constants.java | 4 + .../zbkj/common/request/BatchCartRequest.java | 33 +++++++++ .../zbkj/common/request/CartResetRequest.java | 1 - .../common/request/SystemHelpRequest.java | 9 +++ .../common/response/CartInfoResponse.java | 3 - .../response/ProductDetailResponse.java | 9 --- .../zbkj/front/controller/CartController.java | 24 ++++-- .../zbkj/front/controller/UserController.java | 11 --- .../service/service/StoreCartService.java | 12 ++- .../service/impl/StoreCartServiceImpl.java | 73 +++++++++++++++++-- 11 files changed, 144 insertions(+), 47 deletions(-) create mode 100644 food-common/src/main/java/com/zbkj/common/request/BatchCartRequest.java diff --git a/food-admin/src/main/java/com/zbkj/admin/controller/SystemHelpController.java b/food-admin/src/main/java/com/zbkj/admin/controller/SystemHelpController.java index c4c48a8..ab3edac 100644 --- a/food-admin/src/main/java/com/zbkj/admin/controller/SystemHelpController.java +++ b/food-admin/src/main/java/com/zbkj/admin/controller/SystemHelpController.java @@ -14,6 +14,7 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; import java.util.List; @Slf4j @@ -65,12 +66,13 @@ public class SystemHelpController { } } - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) + @RequestMapping(value = "/delete", method = RequestMethod.POST) @PreAuthorize("hasAuthority('admin:helpProblem:delete')") - public CommonResult delete(@PathVariable Integer id) { - if (helpService.removeById(id)) { + public CommonResult delete(@RequestBody Integer[] ids) { + System.out.println("111"); +// if (helpService.removeByIds(Arrays.asList(ids))) { return CommonResult.success(); - } - return CommonResult.failed(); +// } +// return CommonResult.failed(); } } diff --git a/food-common/src/main/java/com/zbkj/common/constants/Constants.java b/food-common/src/main/java/com/zbkj/common/constants/Constants.java index 1342186..be432c0 100644 --- a/food-common/src/main/java/com/zbkj/common/constants/Constants.java +++ b/food-common/src/main/java/com/zbkj/common/constants/Constants.java @@ -242,6 +242,10 @@ public class Constants { public static final String PRODUCT_TYPE_COMPONENT_STR= "组件"; public static final Integer PRODUCT_TYPE_GROUP = 0; + // 购物车类型标识,区分来自哪里的商品加购物车 + public static final String CART_DEFAULT = "default"; + public static final String CART_SETMEAL = "setmeal"; + // 楼层渠道 public static final Integer HOME_TYPE_1 = 1; public static final Integer HOME_TYPE_2 = 2; diff --git a/food-common/src/main/java/com/zbkj/common/request/BatchCartRequest.java b/food-common/src/main/java/com/zbkj/common/request/BatchCartRequest.java new file mode 100644 index 0000000..0cbd733 --- /dev/null +++ b/food-common/src/main/java/com/zbkj/common/request/BatchCartRequest.java @@ -0,0 +1,33 @@ +package com.zbkj.common.request; + +import com.zbkj.common.annotation.StringContains; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="BatchCartRequest对象", description="BatchCartRequest") +public class BatchCartRequest { + private static final long serialVersionUID=1L; + + @ApiModelProperty(value = "购物车商品信息(cartType=default,必传)") + private List cartList; + + @ApiModelProperty(value = "业务编号") + private String business; + + @ApiModelProperty(value = "业务类型(default 默认; setmeal 套餐)", required = true) + @StringContains(limitValues = {"default","setmeal"}, message = "未知的类型") + private String cartType; + +} diff --git a/food-common/src/main/java/com/zbkj/common/request/CartResetRequest.java b/food-common/src/main/java/com/zbkj/common/request/CartResetRequest.java index d4ba6a0..9618b16 100644 --- a/food-common/src/main/java/com/zbkj/common/request/CartResetRequest.java +++ b/food-common/src/main/java/com/zbkj/common/request/CartResetRequest.java @@ -1,6 +1,5 @@ package com.zbkj.common.request; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/food-common/src/main/java/com/zbkj/common/request/SystemHelpRequest.java b/food-common/src/main/java/com/zbkj/common/request/SystemHelpRequest.java index 7c8a09d..c6922d5 100644 --- a/food-common/src/main/java/com/zbkj/common/request/SystemHelpRequest.java +++ b/food-common/src/main/java/com/zbkj/common/request/SystemHelpRequest.java @@ -16,10 +16,19 @@ public class SystemHelpRequest implements Serializable { private static final long serialVersionUID=1L; + @ApiModelProperty(value = "id") + private Integer id; + @ApiModelProperty(value = "分类id") private String cid; + @ApiModelProperty(value = "内容") + private String content; + @ApiModelProperty(value = "标题") private String title; + @ApiModelProperty(value = "状态 0无效,1有效") + private Integer status; + } diff --git a/food-common/src/main/java/com/zbkj/common/response/CartInfoResponse.java b/food-common/src/main/java/com/zbkj/common/response/CartInfoResponse.java index b77e989..8760273 100644 --- a/food-common/src/main/java/com/zbkj/common/response/CartInfoResponse.java +++ b/food-common/src/main/java/com/zbkj/common/response/CartInfoResponse.java @@ -25,9 +25,6 @@ public class CartInfoResponse implements Serializable { @ApiModelProperty(value = "购物车表ID") private Long id; - @ApiModelProperty(value = "商品包") - private List packCartInfo; - @ApiModelProperty(value = "商品ID") private Integer productId; diff --git a/food-common/src/main/java/com/zbkj/common/response/ProductDetailResponse.java b/food-common/src/main/java/com/zbkj/common/response/ProductDetailResponse.java index 9b12e40..42b2c1e 100644 --- a/food-common/src/main/java/com/zbkj/common/response/ProductDetailResponse.java +++ b/food-common/src/main/java/com/zbkj/common/response/ProductDetailResponse.java @@ -14,15 +14,6 @@ import java.util.List; /** * 商品详情 - * +---------------------------------------------------------------------- - * | CRMEB [ CRMEB赋能开发者,助力企业发展 ] - * +---------------------------------------------------------------------- - * | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. - * +---------------------------------------------------------------------- - * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 - * +---------------------------------------------------------------------- - * | Author: CRMEB Team - * +---------------------------------------------------------------------- */ @Data @EqualsAndHashCode(callSuper = false) diff --git a/food-front/src/main/java/com/zbkj/front/controller/CartController.java b/food-front/src/main/java/com/zbkj/front/controller/CartController.java index 5d8109e..ea80158 100644 --- a/food-front/src/main/java/com/zbkj/front/controller/CartController.java +++ b/food-front/src/main/java/com/zbkj/front/controller/CartController.java @@ -1,12 +1,9 @@ package com.zbkj.front.controller; import com.zbkj.common.page.CommonPage; -import com.zbkj.common.request.CartNumRequest; -import com.zbkj.common.request.CartRequest; -import com.zbkj.common.request.CartResetRequest; +import com.zbkj.common.request.*; import com.zbkj.common.response.CartInfoResponse; import com.zbkj.common.response.CommonResult; -import com.zbkj.common.request.PageParamRequest; import com.zbkj.service.service.StoreCartService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -51,6 +48,23 @@ public class CartController { return CommonResult.success(restPage); } + /** + * 一键加入 + * @param storeCartRequest 新增参数 + */ + @ApiOperation(value = "一键加入购物车") + @RequestMapping(value = "/batchSave", method = RequestMethod.POST) + public CommonResult> batchSave(@RequestBody @Validated BatchCartRequest storeCartRequest) { + List cartIds = storeCartService.batchSaveCart(storeCartRequest); + if (!cartIds.isEmpty()) { + HashMap result = new HashMap<>(); + result.put("cartIds", cartIds); + return CommonResult.success(result); + } else { + return CommonResult.failed(); + } + } + /** * 新增购物车表 * @param storeCartRequest 新增参数 @@ -68,8 +82,6 @@ public class CartController { } } - - /** * 删除购物车表 * @param ids 购物车ids diff --git a/food-front/src/main/java/com/zbkj/front/controller/UserController.java b/food-front/src/main/java/com/zbkj/front/controller/UserController.java index 83f3388..dc4a93f 100644 --- a/food-front/src/main/java/com/zbkj/front/controller/UserController.java +++ b/food-front/src/main/java/com/zbkj/front/controller/UserController.java @@ -1,29 +1,18 @@ package com.zbkj.front.controller; -import com.zbkj.common.page.CommonPage; -import com.github.pagehelper.PageInfo; -import com.zbkj.common.model.system.SystemUserLevel; -import com.zbkj.common.model.user.User; -import com.zbkj.common.model.user.UserExperienceRecord; -import com.zbkj.common.model.user.UserIntegralRecord; import com.zbkj.common.request.*; import com.zbkj.common.response.*; import com.zbkj.front.service.UserCenterService; import com.zbkj.service.service.SystemGroupDataService; import com.zbkj.service.service.UserService; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.math.BigDecimal; -import java.util.HashMap; -import java.util.List; -import java.util.Map; /** * 用户 -- 用户中心 diff --git a/food-service/src/main/java/com/zbkj/service/service/StoreCartService.java b/food-service/src/main/java/com/zbkj/service/service/StoreCartService.java index 0423dbc..5a19fc3 100644 --- a/food-service/src/main/java/com/zbkj/service/service/StoreCartService.java +++ b/food-service/src/main/java/com/zbkj/service/service/StoreCartService.java @@ -1,10 +1,7 @@ package com.zbkj.service.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.zbkj.common.request.CartNumRequest; -import com.zbkj.common.request.CartRequest; -import com.zbkj.common.request.CartResetRequest; -import com.zbkj.common.request.PageParamRequest; +import com.zbkj.common.request.*; import com.zbkj.common.response.CartInfoResponse; import com.github.pagehelper.PageInfo; import com.zbkj.common.model.cat.StoreCart; @@ -40,6 +37,13 @@ public interface StoreCartService extends IService { */ String saveCate(CartRequest storeCartRequest); + /** + * 批量新增购物车数据 + * @param storeCartRequest 新增购物车参数 + * @return 新增结果 + */ + List batchSaveCart(BatchCartRequest storeCartRequest); + /** * 删除购物车 * @param ids 待删除id diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/StoreCartServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/StoreCartServiceImpl.java index 54d2670..2f6b75f 100644 --- a/food-service/src/main/java/com/zbkj/service/service/impl/StoreCartServiceImpl.java +++ b/food-service/src/main/java/com/zbkj/service/service/impl/StoreCartServiceImpl.java @@ -10,10 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zbkj.common.page.CommonPage; -import com.zbkj.common.request.CartNumRequest; -import com.zbkj.common.request.CartRequest; -import com.zbkj.common.request.CartResetRequest; -import com.zbkj.common.request.PageParamRequest; +import com.zbkj.common.request.*; import com.zbkj.common.constants.Constants; import com.zbkj.common.constants.RedisConstatns; import com.zbkj.common.exception.CrmebException; @@ -27,18 +24,23 @@ import com.zbkj.common.model.product.StoreProduct; import com.zbkj.common.model.product.StoreProductAttrValue; import com.zbkj.common.model.system.SystemUserLevel; import com.zbkj.common.model.user.User; +import com.zbkj.common.vo.HomeProductVo; +import com.zbkj.common.vo.product.ProductAttrValueVo; import com.zbkj.service.dao.StoreCartDao; import com.zbkj.service.service.*; +import io.swagger.annotations.ApiModelProperty; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -63,6 +65,9 @@ public class StoreCartServiceImpl extends ServiceImpl i @Autowired private SystemUserLevelService systemUserLevelService; + @Autowired + private EbHomeService homeService; + @Autowired private RedisUtil redisUtil; @@ -195,6 +200,58 @@ public class StoreCartServiceImpl extends ServiceImpl i } } + @Override + public List batchSaveCart(BatchCartRequest storeCartRequest) { + String cartType = storeCartRequest.getCartType(); + String business = storeCartRequest.getBusiness(); + List cartList = storeCartRequest.getCartList(); + if (cartType.equals(Constants.CART_SETMEAL)) { + SetMealFloorProRequest query = new SetMealFloorProRequest(); + query.setHomeId(business); + PageParamRequest page = new PageParamRequest(); + page.setPage(1); + page.setLimit(999); + List list = homeService.selectPageSetMealFloorPro(query, page); + cartList = list.stream().map(i -> { + CartRequest cart = new CartRequest(); + cart.setCartNum(1); + cart.setProductId(i.getProductId()); + cart.setProductAttrUnique(((ProductAttrValueVo) i.getProductValue().get(i.getProductAttr().get(0).getAttrValues())).getId() + ""); + return cart; + }).collect(Collectors.toList()); + } + // 普通商品部分(只有普通商品才能添加购物车) + // 是否已经有同类型商品在购物车,有则添加数量没有则新增 + List cartIds = new ArrayList<>(); + User currentUser = userService.getInfo(); + for (CartRequest cartRequest : cartList) { + if (null == cartRequest.getProductId()) throw new CrmebException("商品id不能为空"); + if (StringUtils.isEmpty(cartRequest.getProductAttrUnique())) throw new CrmebException("商品属性id不能为空"); + if (null == cartRequest.getCartNum()) throw new CrmebException("商品数量不能为空"); + if (cartRequest.getCartNum() < 1) throw new CrmebException("商品数量不能小于1"); + if (cartRequest.getCartNum() > 99) throw new CrmebException("商品数量不能大于99"); + StoreCart storeCartPram = new StoreCart(); + storeCartPram.setProductAttrUnique(cartRequest.getProductAttrUnique()); + storeCartPram.setUid(currentUser.getUid()); + List existCarts = getByEntity(storeCartPram); // 这里仅仅能获取一条以信息 + if (existCarts.size() > 0) { // 购物车添加数量 + StoreCart forUpdateStoreCart = existCarts.get(0); + forUpdateStoreCart.setCartNum(forUpdateStoreCart.getCartNum() + cartRequest.getCartNum()); + boolean updateResult = updateById(forUpdateStoreCart); + if (!updateResult) throw new CrmebException("添加购物车失败"); + cartIds.add(forUpdateStoreCart.getId() + ""); + } else {// 新增购物车数据 + StoreCart storeCart = new StoreCart(); + BeanUtils.copyProperties(cartRequest, storeCart); + storeCart.setUid(currentUser.getUid()); + storeCart.setType("product"); + if (dao.insert(storeCart) <= 0) throw new CrmebException("添加购物车失败"); + cartIds.add(storeCart.getId() + ""); + } + } + return cartIds; + } + /** * 删除购物车信息 * @param ids 待删除id