소스 검색

提交商城相关

1021934019@qq.com 4 년 전
부모
커밋
4d9e221197

+ 3 - 1
blade-service-api/store-goods-api/src/main/java/com/store/goods/entity/OrderAddress.java

@@ -107,7 +107,7 @@ public class OrderAddress implements Serializable {
 	* 是否已删除(0 否 1是)
 	*/
 		@ApiModelProperty(value = "是否已删除(0 否 1是)")
-		@TableLogic
+		/*@TableLogic*/
 		private Integer isDeleted;
 
 	/**
@@ -120,4 +120,6 @@ public class OrderAddress implements Serializable {
 	private String area;
 
 
+	@ApiModelProperty(value = "0.不是默认地址  1. 默认地址")
+	private Integer isDefault;
 }

+ 3 - 1
blade-service-api/store-goods-api/src/main/java/com/store/goods/entity/OrderItems.java

@@ -109,7 +109,7 @@ public class OrderItems implements Serializable {
 	* 是否已删除(0 否 1是)
 	*/
 		@ApiModelProperty(value = "是否已删除(0 否 1是)")
-		@TableLogic
+		/*@TableLogic*/
 		private Integer isDeleted;
 
 	/**
@@ -125,6 +125,8 @@ public class OrderItems implements Serializable {
 	@ApiModelProperty(value = "商品名称(回显专用)")
 	@TableField(exist = false)
 	private String cName;
+	@ApiModelProperty(value = "0.正常购物商品 1.购物车商品")
+	private Integer isNormal;
 
 
 }

+ 70 - 0
blade-service-api/store-goods-api/src/main/java/com/store/goods/vo/ShoppingCartVO.java

@@ -0,0 +1,70 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package com.store.goods.vo;
+
+import com.store.goods.entity.Order;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * 订单表视图实体类
+ *
+ * @author BladeX
+ * @since 2021-11-24
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(value = "购物车列表返回对象", description = "购物车列表返回对象")
+public class ShoppingCartVO  {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "购物车表id")
+	private Long id;
+
+	@ApiModelProperty(value = "商品表id")
+	private Long itemsId;
+
+	@ApiModelProperty(value = "商品规格名称")
+	private String cName;
+
+	@ApiModelProperty(value = "商品名称")
+	private String goodsName;
+
+	@ApiModelProperty(value = "商品图片")
+	private String priture;
+
+	@ApiModelProperty(value = "单价")
+	private BigDecimal price;
+
+	@ApiModelProperty(value = "购买数量")
+	private int number;
+
+	@ApiModelProperty(value = "商品状态: 0待审核 1上架中 2已下架")
+	private int goodsStatus;
+
+	@ApiModelProperty(value = "大标题名称")
+	private String descName;
+
+
+}

+ 18 - 1
blade-service/store-goods/src/main/java/com/store/goods/controller/GoodsItemsController.java

@@ -16,6 +16,9 @@
  */
 package com.store.goods.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.store.goods.entity.OrderAddress;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -34,6 +37,8 @@ import com.store.goods.vo.GoodsItemsVO;
 import com.store.goods.service.IGoodsItemsService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.List;
+
 /**
  *  控制器
  *
@@ -119,7 +124,19 @@ public class GoodsItemsController extends BladeController {
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(goodsItemsService.removeByIds(Func.toLongList(ids)));
+		List<Long> longs = Func.toLongList(ids);
+		LambdaQueryWrapper<GoodsItems> orderAddressLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		orderAddressLambdaQueryWrapper.in(GoodsItems::getId,longs);
+		List<GoodsItems> goodsItems = goodsItemsService.list(orderAddressLambdaQueryWrapper);
+		if(CollectionUtils.isEmpty(goodsItems))
+		{
+			throw new SecurityException("暂未查到相关地址");
+		}
+		goodsItems.forEach(e->{
+			e.setIsDeleted(1);
+			goodsItemsService.updateById(e);
+		});
+		return R.success("删除成功");
 	}
 
 

+ 64 - 1
blade-service/store-goods/src/main/java/com/store/goods/controller/OrderAddressController.java

@@ -16,6 +16,10 @@
  */
 package com.store.goods.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.store.goods.entity.Order;
+import com.store.goods.service.IOrderService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -36,6 +40,7 @@ import com.store.goods.service.IOrderAddressService;
 import org.springblade.core.boot.ctrl.BladeController;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 订单收货地址表 控制器
@@ -51,6 +56,8 @@ public class OrderAddressController extends BladeController {
 
 	private final IOrderAddressService orderAddressService;
 
+	private final IOrderService iOrderService;
+
 	/**
 	 * 详情
 	 */
@@ -95,6 +102,22 @@ public class OrderAddressController extends BladeController {
 		orderAddress.setTenantId(AuthUtil.getTenantId());
 		orderAddress.setCreateTime(new Date());
 		orderAddress.setCreateUser(AuthUtil.getUserId());
+		//判断有没有其他默认地址, 如果有其他地址需要取消
+		if(orderAddress.getIsDefault()==1)
+		{
+			LambdaQueryWrapper<OrderAddress> orderAddressLambdaQueryWrapper=new LambdaQueryWrapper<>();
+			orderAddressLambdaQueryWrapper
+				.eq(OrderAddress::getIsDefault,1)
+				.eq(OrderAddress::getUserId,AuthUtil.getUserId());
+			List<OrderAddress> addressList = orderAddressService.list(orderAddressLambdaQueryWrapper);
+			if(CollectionUtils.isNotEmpty(addressList))
+			{
+				addressList.forEach(e->{
+					e.setIsDefault(0);
+					orderAddressService.updateById(e);
+				});
+			}
+		}
 		return R.status(orderAddressService.save(orderAddress));
 	}
 
@@ -107,6 +130,22 @@ public class OrderAddressController extends BladeController {
 	public R update(@Valid @RequestBody OrderAddress orderAddress) {
 		orderAddress.setUpdateTime(new Date());
 		orderAddress.setUpdateUser(AuthUtil.getUserId());
+		//判断有没有其他默认地址, 如果有其他地址需要取消
+		if(orderAddress.getIsDefault()==1)
+		{
+			LambdaQueryWrapper<OrderAddress> orderAddressLambdaQueryWrapper=new LambdaQueryWrapper<>();
+			orderAddressLambdaQueryWrapper
+				.eq(OrderAddress::getIsDefault,1)
+				.eq(OrderAddress::getUserId,AuthUtil.getUserId());
+			List<OrderAddress> addressList = orderAddressService.list(orderAddressLambdaQueryWrapper);
+			if(CollectionUtils.isNotEmpty(addressList))
+			{
+				addressList.forEach(e->{
+					e.setIsDefault(0);
+					orderAddressService.updateById(e);
+				});
+			}
+		}
 		return R.status(orderAddressService.updateById(orderAddress));
 	}
 
@@ -127,8 +166,32 @@ public class OrderAddressController extends BladeController {
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(orderAddressService.removeByIds(Func.toLongList(ids)));
+		List<Long> longs = Func.toLongList(ids);
+		LambdaQueryWrapper<OrderAddress> orderAddressLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		orderAddressLambdaQueryWrapper.in(OrderAddress::getId,longs);
+		List<OrderAddress> addressList = orderAddressService.list(orderAddressLambdaQueryWrapper);
+		if(CollectionUtils.isEmpty(addressList))
+		{
+			throw new SecurityException("暂未查到相关地址");
+		}
+		addressList.forEach(e->{
+			e.setIsDeleted(1);
+			orderAddressService.updateById(e);
+		});
+		return R.success("删除成功");
 	}
 
+	@PostMapping("/getDefaultAddress")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "获取默认地址", notes = "无需传入")
+	public R getDefaultAddress()
+	{
+		LambdaQueryWrapper<OrderAddress> orderAddressLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		orderAddressLambdaQueryWrapper.eq(OrderAddress::getUserId,AuthUtil.getUserId()).eq(OrderAddress::getIsDefault,1);
+		OrderAddress orderAddress = orderAddressService.getOne(orderAddressLambdaQueryWrapper,false);
+		return R.data(orderAddress);
+	}
+
+
 
 }

+ 53 - 0
blade-service/store-goods/src/main/java/com/store/goods/controller/OrderController.java

@@ -18,11 +18,13 @@ package com.store.goods.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.store.goods.entity.GoodsItems;
 import com.store.goods.entity.OrderItems;
 import com.store.goods.service.IGoodsItemsService;
 import com.store.goods.service.IOrderAddressService;
 import com.store.goods.service.IOrderItemsService;
+import com.store.goods.vo.ShoppingCartVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -44,9 +46,11 @@ import com.store.goods.vo.OrderVO;
 import com.store.goods.service.IOrderService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 订单表 控制器
@@ -261,4 +265,53 @@ public class OrderController extends BladeController {
 
 	 }
 
+		/**
+		 *  添加购物车
+		 *  * * */
+         @PostMapping("/addShoppingCart")
+		 @ApiOperationSupport(order = 8)
+		 @ApiOperation(value = "添加购物车", notes = "传入itemList")
+		 public R addShoppingCart(@RequestBody Order order)
+		 {
+		 	if(CollectionUtils.isEmpty(order.getItemList()))
+		 	{
+		 		throw new SecurityException("传入item为空");
+			}
+			 orderService.addShoppingCart(order.getItemList());
+		 	return R.success("添加购物车成功");
+		 }
+
+
+		 /**
+		  *  购物车接口
+		  *  * * */
+		@GetMapping("/shoppingCart")
+		@ApiOperationSupport(order = 8)
+		@ApiOperation(value = "购物车接口", notes = "无需传入")
+	    public R<Map<String,List<ShoppingCartVO>>> shoppingCart()
+		{
+
+			Long userId = AuthUtil.getUserId();
+			List<ShoppingCartVO> shoppingCartVOS = orderService.shoppingCart(userId);
+			if(CollectionUtils.isEmpty(shoppingCartVOS))
+			{
+				return R.data(Collections.EMPTY_MAP);
+			}
+			//筛选失效和有效的购物车
+			Map<String,List<ShoppingCartVO>> map=new HashMap<>();
+			map.put("valid",shoppingCartVOS.stream().filter(e -> e.getGoodsStatus() != 2).collect(Collectors.toList()));
+			map.put("invalid",shoppingCartVOS.stream().filter(e -> e.getGoodsStatus() == 2).collect(Collectors.toList()));
+			return R.data(map);
+		}
+
+
+		@DeleteMapping("deleteInvalidShoppingCart")
+		@ApiOperationSupport(order = 8)
+		@ApiOperation(value = "删除无效购物车", notes = "不传入ids则删除全部的无效购物车")
+	    public R deleteInvalidShoppingCart(@RequestParam(value = "ids", required = false)  String ids)
+		{
+                orderService.deleteInvalidShoppingCart(ids);
+                return R.success("删除成功");
+		}
+
 }

+ 1 - 1
blade-service/store-goods/src/main/java/com/store/goods/entity/GoodsItems.java

@@ -171,7 +171,7 @@ public class GoodsItems implements Serializable {
 		* 是否已删除(0 否 1是)
 		*/
 		@ApiModelProperty(value = "是否已删除(0 否 1是)")
-		@TableLogic
+		/*@TableLogic*/
 		private Integer isDeleted;
 
 		@ApiModelProperty(value = "租户id")

+ 4 - 0
blade-service/store-goods/src/main/java/com/store/goods/mapper/OrderMapper.java

@@ -20,6 +20,8 @@ import com.store.goods.entity.Order;
 import com.store.goods.vo.OrderVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.store.goods.vo.ShoppingCartVO;
+
 import java.util.List;
 
 /**
@@ -39,4 +41,6 @@ public interface OrderMapper extends BaseMapper<Order> {
 	 */
 	List<OrderVO> selectOrderPage(IPage page, OrderVO order);
 
+	List<ShoppingCartVO> shoppingCart(Long UserId);
+
 }

+ 23 - 0
blade-service/store-goods/src/main/java/com/store/goods/mapper/OrderMapper.xml

@@ -28,4 +28,27 @@
         select * from store_order where is_deleted = 0
     </select>
 
+    <select id="shoppingCart" resultType="com.store.goods.vo.ShoppingCartVO">
+        SELECT
+        a.id AS id,
+        b.id AS itemsId,
+        c.c_name AS descName,
+        b.c_name AS cName,
+        b.goods_name AS goodsName,
+        b.priture AS priture,
+        a.price AS price,
+        a.number AS number,
+        b.goods_status AS goodsStatus
+         FROM
+        store_order_items a,
+        store_goods_items b,
+        store_goods_desc c
+        WHERE
+        a.items_id = b.id
+        AND b.pid = c.id
+        AND a.is_normal = 1
+        AND a.is_deleted = 0
+        AND a.create_user = #{userId}
+    </select>
+
 </mapper>

+ 16 - 0
blade-service/store-goods/src/main/java/com/store/goods/service/IOrderService.java

@@ -17,9 +17,13 @@
 package com.store.goods.service;
 
 import com.store.goods.entity.Order;
+import com.store.goods.entity.OrderItems;
 import com.store.goods.vo.OrderVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.store.goods.vo.ShoppingCartVO;
+
+import java.util.List;
 
 /**
  * 订单表 服务类
@@ -48,6 +52,18 @@ public interface IOrderService extends IService<Order> {
 	  * 修改订单状态
 	  * */
      void updateOrderStatus(Order order);
+
+     /**
+	  * 添加购物车
+	  * */
+     void addShoppingCart(List<OrderItems> itemsList);
+
+     /**
+	  * 购物车列表
+	  * */
+	 List<ShoppingCartVO> shoppingCart(Long UserId);
+
+	 void  deleteInvalidShoppingCart(String ids);
 }
 
 

+ 58 - 0
blade-service/store-goods/src/main/java/com/store/goods/service/impl/OrderServiceImpl.java

@@ -16,12 +16,14 @@
  */
 package com.store.goods.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.store.goods.entity.*;
 import com.store.goods.mapper.*;
 import com.store.goods.vo.OrderVO;
 import com.store.goods.service.IOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.store.goods.vo.ShoppingCartVO;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +36,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Random;
+import java.util.stream.Collectors;
 
 /**
  * 订单表 服务实现类
@@ -90,6 +93,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		baseMapper.insert(order);
 		//新增订单下的物品明细
 		itemList.forEach(e->{
+			e.setId(null);
+			e.setIsNormal(0);
 			e.setOrderId(order.getId());
 			e.setItemsId(e.getItemsId());
 			e.setNumber(e.getNumber());
@@ -161,4 +166,57 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 	}
 
+	@Override
+	@Transactional
+	public void addShoppingCart(List<OrderItems> itemsList)
+	{
+		itemsList.forEach(e->{
+			e.setOrderId(-1L);
+			e.setIsNormal(1);
+			e.setCreateUser(AuthUtil.getUserId());
+			e.setCreateTime(new Date());
+			orderItemsMapper.insert(e);
+		});
+	}
+
+	@Override
+	public List<ShoppingCartVO> shoppingCart(Long UserId)
+	{
+
+		return baseMapper.shoppingCart(UserId);
+	}
+
+	@Override
+	@Transactional
+	public void deleteInvalidShoppingCart(String ids)
+	{
+		LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		//删除指定无效购物车
+		if(Func.isNotBlank(ids))
+		{
+			List<Long> longs = Func.toLongList(ids);
+			if(CollectionUtils.isEmpty(longs))
+			{
+				throw new SecurityException("未找到指定数据");
+			}
+			orderItemsLambdaQueryWrapper.in(OrderItems::getId,longs);
+		}
+		//删除全部的购物车
+		else
+		{
+			List<ShoppingCartVO> shoppingCartVOS = baseMapper.shoppingCart(AuthUtil.getUserId());
+			if(CollectionUtils.isEmpty(shoppingCartVOS))
+			{
+				throw new SecurityException("未找到指定数据");
+			}
+			List<Long> orderItemIds = shoppingCartVOS.stream().filter(e -> e.getGoodsStatus() == 2).map(ShoppingCartVO::getId).collect(Collectors.toList());
+			orderItemsLambdaQueryWrapper.in(OrderItems::getId,orderItemIds);
+		}
+		List<OrderItems> orderItems = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
+		orderItems.forEach(e->{
+			e.setIsDeleted(1);
+			orderItemsMapper.updateById(e);
+		});
+	}
+
 }