From 50e5ebb2cf3a3d2a16d96d70c052bc5863a62a90 Mon Sep 17 00:00:00 2001 From: sdhkjh <2450473462@qq.com> Date: Sun, 8 Sep 2024 20:33:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=AE=80=E5=8C=96wall=E7=9A=84?= =?UTF-8?q?=E7=82=B9=E8=B5=9E=E4=BB=A3=E7=A0=81=EF=BC=8Cshop=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0shop=5Freande=5Fcart=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ShopTradeCartController.java | 81 ++++++++++ .../skyeye/store/dao/ShopTradeCartDao.java | 15 ++ .../skyeye/store/entity/ShopTradeCart.java | 44 ++++++ .../store/service/ShopTradeCartService.java | 26 ++++ .../impl/ShopTradeCartServiceImpl.java | 142 ++++++++++++++++++ .../service/impl/UpvoteServiceImpl.java | 7 +- 6 files changed, 312 insertions(+), 3 deletions(-) create mode 100644 skyeye-shop/shop-store/src/main/java/com/skyeye/store/controller/ShopTradeCartController.java create mode 100644 skyeye-shop/shop-store/src/main/java/com/skyeye/store/dao/ShopTradeCartDao.java create mode 100644 skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopTradeCart.java create mode 100644 skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/ShopTradeCartService.java create mode 100644 skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopTradeCartServiceImpl.java diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/controller/ShopTradeCartController.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/controller/ShopTradeCartController.java new file mode 100644 index 00000000..994e37fa --- /dev/null +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/controller/ShopTradeCartController.java @@ -0,0 +1,81 @@ +package com.skyeye.store.controller; + +import com.skyeye.annotation.api.Api; +import com.skyeye.annotation.api.ApiImplicitParam; +import com.skyeye.annotation.api.ApiImplicitParams; +import com.skyeye.annotation.api.ApiOperation; +import com.skyeye.common.object.InputObject; +import com.skyeye.common.object.OutputObject; +import com.skyeye.store.entity.ShopTradeCart; +import com.skyeye.store.service.ShopTradeCartService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ClassName: ShopAreaController + * @Description: 购物车管理控制类 + * @author: skyeye云系列--卫志强 + * @date: 2022/2/4 10:06 + * @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved. + * 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的 + */ +@RestController +@Api(value = "购物车管理", tags = "购物车管理", modelName = "购物车管理") +public class ShopTradeCartController { + + @Autowired + private ShopTradeCartService shopTradeCartService; + + /** + * 获取购物车信息 + * + * @param inputObject 入参以及用户信息等获取对象 + * @param outputObject 出参以及提示信息的返回值对象 + */ + @ApiOperation(id = "queryMyShopTradeCartList", value = "获取购物车信息", method = "POST", allUse = "2") + @RequestMapping("/post/ShopTradeCartController/queryMyShopTradeCartList") + public void queryShopTradeCartList(InputObject inputObject, OutputObject outputObject) { + shopTradeCartService.queryMyShopTradeCartList(inputObject, outputObject); + } + + @ApiOperation(id = "writeShopTradeCart", value = "新增/修改购物车信息", method = "POST", allUse = "2") + @ApiImplicitParams(classBean = ShopTradeCart.class) + @RequestMapping("/post/ShopTradeCartController/writeShopTradeCart") + public void insertShopTradeCart(InputObject inputObject, OutputObject outputObject) { + shopTradeCartService.saveOrUpdateEntity(inputObject, outputObject); + } + + @ApiOperation(id = "deleteShopTradCartByIds", value = "批量删除购物车信息", method = "DELETE", allUse = "2") + @ApiImplicitParams({ + @ApiImplicitParam(id = "ids", name = "ids", value = "主键id列表", required = "required")}) + @RequestMapping("/post/ShopTradeCartController/deleteShopTradCartByIds") + public void deleteShopTradCartByIds(InputObject inputObject, OutputObject outputObject) { + shopTradeCartService.deleteByIds(inputObject, outputObject); + } + + @ApiOperation(id = "changeCount", value = "更新购物车商品数量", method = "POST", allUse = "2") + @ApiImplicitParams({ + @ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required"), + @ApiImplicitParam(id = "sign", name = "sign", value = "修改标志0为减少,1为增加", required = "required")}) + @RequestMapping("/post/ShopTradeCartController/changeCount") + public void changeCount(InputObject inputObject, OutputObject outputObject) { + shopTradeCartService.changeCount(inputObject, outputObject); + } + + @ApiOperation(id = "changeSelected", value = "更新购物车商品选中", method = "POST", allUse = "2") + @ApiImplicitParams({ + @ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")}) + @RequestMapping("/post/ShopTradeCartController/changeSelected") + public void changeSelected(InputObject inputObject, OutputObject outputObject) { + shopTradeCartService.changeSelected(inputObject, outputObject); + } + + @ApiOperation(id = "resetShopTradeCart", value = "重置购物车信息", method = "POST", allUse = "2") + @RequestMapping("/post/ShopTradeCartController/resetShopTradeCart") + public void resetShopTradeCart(InputObject inputObject, OutputObject outputObject) { + shopTradeCartService.resetShopTradeCart(inputObject, outputObject); + } + + +} diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/dao/ShopTradeCartDao.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/dao/ShopTradeCartDao.java new file mode 100644 index 00000000..bb72bdec --- /dev/null +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/dao/ShopTradeCartDao.java @@ -0,0 +1,15 @@ +package com.skyeye.store.dao; + +import com.skyeye.eve.dao.SkyeyeBaseMapper; +import com.skyeye.store.entity.ShopTradeCart; + +/** + * @ClassName: ShopTradeCartDao + * @Description: 购物车管理数据接口层 + * @author: skyeye云系列--卫志强 + * @date: 2022/2/4 10:07 + * @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved. + * 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的 + */ +public interface ShopTradeCartDao extends SkyeyeBaseMapper { +} diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopTradeCart.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopTradeCart.java new file mode 100644 index 00000000..77d34254 --- /dev/null +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopTradeCart.java @@ -0,0 +1,44 @@ +package com.skyeye.store.entity; + + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.skyeye.annotation.api.ApiModel; +import com.skyeye.annotation.api.ApiModelProperty; +import com.skyeye.common.entity.features.OperatorUserInfo; +import lombok.Data; + +/** + * @ClassName: ShopTradeCart + * @Description: 品牌管理实体类 + * @author: skyeye云系列--卫志强 + * @date: 2022/2/4 10:12 + * @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved. + * 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的 + */ +@Data +@TableName(value = "Shop_trade_cart") +@ApiModel("购物车管理实体类") +public class ShopTradeCart extends OperatorUserInfo { + + @TableId("id") + @ApiModelProperty("主键id。为空时新增,不为空时编辑") + private String id; + + @TableField("material_id") + @ApiModelProperty(value = "商品id", required = "required") + private String materialId; + + @TableField("norms_id") + @ApiModelProperty(value = "规格id", required = "required") + private String normsId; + + @TableField("count") + @ApiModelProperty(value = "数量", required = "required") + private Integer count; + + @TableField("selected") + @ApiModelProperty(value = "是否选中", required = "required") + private Integer selected; +} diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/ShopTradeCartService.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/ShopTradeCartService.java new file mode 100644 index 00000000..f01938f4 --- /dev/null +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/ShopTradeCartService.java @@ -0,0 +1,26 @@ +package com.skyeye.store.service; + +import com.skyeye.base.business.service.SkyeyeBusinessService; +import com.skyeye.common.object.InputObject; +import com.skyeye.common.object.OutputObject; +import com.skyeye.store.entity.ShopTradeCart; + +/** + * @ClassName: ShopTradeCartService + * @Description: 购物车管理服务接口层 + * @author: skyeye云系列--卫志强 + * @date: 2022/2/4 10:07 + * @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved. + * 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的 + */ +public interface ShopTradeCartService extends SkyeyeBusinessService { + void queryMyShopTradeCartList(InputObject inputObject, OutputObject outputObject); + + void changeSelected(InputObject inputObject, OutputObject outputObject); + + void changeCount(InputObject inputObject, OutputObject outputObject); + + void resetShopTradeCart(InputObject inputObject, OutputObject outputObject); + + void deleteByIds(InputObject inputObject, OutputObject outputObject); +} diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopTradeCartServiceImpl.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopTradeCartServiceImpl.java new file mode 100644 index 00000000..fbffa76e --- /dev/null +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopTradeCartServiceImpl.java @@ -0,0 +1,142 @@ +package com.skyeye.store.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.skyeye.annotation.service.SkyeyeService; +import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl; +import com.skyeye.common.constans.CommonConstants; +import com.skyeye.common.constans.CommonNumConstants; +import com.skyeye.common.enumeration.WhetherEnum; +import com.skyeye.common.object.InputObject; +import com.skyeye.common.object.OutputObject; +import com.skyeye.common.util.mybatisplus.MybatisPlusUtil; +import com.skyeye.exception.CustomException; +import com.skyeye.store.dao.ShopTradeCartDao; +import com.skyeye.store.entity.ShopTradeCart; +import com.skyeye.store.service.ShopTradeCartService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @ClassName: ShopTradeCartServiceImpl + * @Description: 购物车管理服务层 + * @author: skyeye云系列--卫志强 + * @date: 2022/2/4 10:07 + * @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved. + * 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的 + */ +@Service +@SkyeyeService(name = "购物车管理", groupName = "购物车管理") +public class ShopTradeCartServiceImpl extends SkyeyeBusinessServiceImpl implements ShopTradeCartService { + + @Autowired + private ShopTradeCartService shopTradeCartService; + + @Override + public void validatorEntity(ShopTradeCart shopTradeCart) { + if (shopTradeCart.getCount() <= CommonNumConstants.NUM_ZERO) { + throw new CustomException("商品数量不能小于1"); + } + } + + @Override + public void queryMyShopTradeCartList(InputObject inputObject, OutputObject outputObject) { + String userId = InputObject.getLogParamsStatic().get("id").toString(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(MybatisPlusUtil.toColumns(ShopTradeCart::getCreateId), userId); + List> mapList = listMaps(queryWrapper); + Map priceAndNum = new HashMap<>(); + final Long[] sum = {0L}; + final int[] allCount = {0}; + mapList.forEach(map -> { + String normsId = map.get("norms_id").toString(); + int count = (int) map.get("count"); + //通过normsId获得单个商品的价格 + Long flag = 10L; + //-------------------- + sum[0] = sum[0] + flag; + allCount[0] = allCount[0] + count; + }); + priceAndNum.put("price", sum[0]); + priceAndNum.put("allCount", allCount[0]); + mapList.add(priceAndNum); + outputObject.setBeans(mapList); + outputObject.settotal(mapList.size()); + } + + @Override + public void changeSelected(InputObject inputObject, OutputObject outputObject) { + String userId = InputObject.getLogParamsStatic().get("id").toString(); + String id = inputObject.getParams().get("id").toString(); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq(CommonConstants.ID, id); + ShopTradeCart one = getOne(updateWrapper); + if (!userId.equals(one.getCreateId())) { + throw new CustomException("无权限!"); + } + if (Objects.equals(one.getSelected(), WhetherEnum.ENABLE_USING.getKey())) { + updateWrapper.set(MybatisPlusUtil.toColumns(ShopTradeCart::getSelected), WhetherEnum.DISABLE_USING.getKey()); + } else { + updateWrapper.set(MybatisPlusUtil.toColumns(ShopTradeCart::getSelected), WhetherEnum.ENABLE_USING.getKey()); + } + update(updateWrapper); + outputObject.setBean(getOne(updateWrapper)); + outputObject.settotal(CommonNumConstants.NUM_ONE); + } + + @Override + public void changeCount(InputObject inputObject, OutputObject outputObject) { + Map params = inputObject.getParams(); + String id = params.get("id").toString(); + Integer sign = Integer.parseInt(params.get("sign").toString()); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq(CommonConstants.ID, id); + ShopTradeCart one = getOne(updateWrapper); + Integer count = one.getCount(); + if (Objects.equals(sign, CommonNumConstants.NUM_ONE)) { + updateWrapper.set(MybatisPlusUtil.toColumns(ShopTradeCart::getCount), count + CommonNumConstants.NUM_ONE); + } else { + if (count <= CommonNumConstants.NUM_ONE) { + throw new CustomException("商品数量不能小于1"); + } + updateWrapper.set(MybatisPlusUtil.toColumns(ShopTradeCart::getCount), count - CommonNumConstants.NUM_ONE); + } + update(updateWrapper); + outputObject.setBean(getOne(updateWrapper)); + outputObject.settotal(CommonNumConstants.NUM_ONE); + } + + @Override + public void resetShopTradeCart(InputObject inputObject, OutputObject outputObject) { + String userId = InputObject.getLogParamsStatic().get("id").toString(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(MybatisPlusUtil.toColumns(ShopTradeCart::getCreateId), userId); + List list = list(queryWrapper); + remove(queryWrapper); + List idCollect = list.stream() + .map(ShopTradeCart::getId).collect(Collectors.toList()); + outputObject.setBeans(idCollect); + outputObject.settotal(idCollect.size()); + } + + @Override + public void deleteByIds(InputObject inputObject, OutputObject outputObject) { + String userId = InputObject.getLogParamsStatic().get("id").toString(); + String ids = inputObject.getParams().get("ids").toString(); + List idList = Arrays.asList(ids.split(",")); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in(CommonConstants.ID, idList); + List list = list(queryWrapper); + List MyCartIds = list.stream().filter( + shopTradeCart -> shopTradeCart.getCreateId().equals(userId) + ).collect(Collectors.toList()); + if (MyCartIds.size() == list.size()) { + shopTradeCartService.deleteById(idList); + } else { + throw new CustomException("存在无权限信息"); + } + } +} diff --git a/skyeye-wall/wall-pro/src/main/java/com/skyeye/upvote/service/impl/UpvoteServiceImpl.java b/skyeye-wall/wall-pro/src/main/java/com/skyeye/upvote/service/impl/UpvoteServiceImpl.java index 1aa80963..7dd7bd79 100644 --- a/skyeye-wall/wall-pro/src/main/java/com/skyeye/upvote/service/impl/UpvoteServiceImpl.java +++ b/skyeye-wall/wall-pro/src/main/java/com/skyeye/upvote/service/impl/UpvoteServiceImpl.java @@ -58,7 +58,7 @@ public class UpvoteServiceImpl extends SkyeyeBusinessServiceImpl