From dc7a9552aace158014d8aecb5be7609a9938382c Mon Sep 17 00:00:00 2001 From: Caps <279205343@qq.com> Date: Sat, 14 Dec 2019 19:41:53 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BA=8B=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hxtec/polaris/service/impl/CartItemServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/hxtec/polaris/service/impl/CartItemServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/CartItemServiceImpl.java index 20109e8..f198dfd 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/CartItemServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/CartItemServiceImpl.java @@ -15,6 +15,7 @@ import com.hxtec.polaris.service.UserService; import org.apache.commons.lang3.StringUtils; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import tk.mybatis.mapper.entity.Example; import javax.annotation.Resource; @@ -42,6 +43,7 @@ public class CartItemServiceImpl implements CartItemService { private StockService stockService; @Override + @Transactional(rollbackFor = Exception.class) public Map addTocart(int sku, int quantity) { // String phone = this.getUser(); String phone="12345678900"; -- Gitee From 7e5086f571a0889bb50760a4f49c8ce473347034 Mon Sep 17 00:00:00 2001 From: Caps <279205343@qq.com> Date: Wed, 18 Dec 2019 18:27:10 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../polaris/commons/dto/OrderInfoDto.java | 19 ++++++ .../polaris/controller/CartController.java | 16 +++-- .../polaris/controller/OrderController.java | 5 +- .../polaris/service/CartItemService.java | 11 ++-- .../hxtec/polaris/service/OrderService.java | 5 +- .../service/impl/CartItemServiceImpl.java | 65 +++++++------------ .../service/impl/OrderServiceImpl.java | 26 +++++--- 7 files changed, 80 insertions(+), 67 deletions(-) create mode 100644 src/main/java/com/hxtec/polaris/commons/dto/OrderInfoDto.java diff --git a/src/main/java/com/hxtec/polaris/commons/dto/OrderInfoDto.java b/src/main/java/com/hxtec/polaris/commons/dto/OrderInfoDto.java new file mode 100644 index 0000000..a649051 --- /dev/null +++ b/src/main/java/com/hxtec/polaris/commons/dto/OrderInfoDto.java @@ -0,0 +1,19 @@ +package com.hxtec.polaris.commons.dto; + +import com.hxtec.polaris.entity.ShopAddress; +import lombok.Data; + +import java.util.List; + +/** + * @author Caps + * @date 2019/12/17 + */ +@Data +public class OrderInfoDto { + + private ShopAddress address; + + private List cartIds; + +} diff --git a/src/main/java/com/hxtec/polaris/controller/CartController.java b/src/main/java/com/hxtec/polaris/controller/CartController.java index d8ff623..ac2a0af 100644 --- a/src/main/java/com/hxtec/polaris/controller/CartController.java +++ b/src/main/java/com/hxtec/polaris/controller/CartController.java @@ -12,6 +12,7 @@ import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -53,10 +54,17 @@ public class CartController { return Result.ok(cartItemList); } - @ApiOperation(value = "获取购物车列表") - @PostMapping("checkCart") - public Result checkCart(String cartIdData){ - Map map = cartService.checkCart(cartIdData); + @ApiOperation(value = "获取购物车选择的购物数据") + @GetMapping("getCartCheckedGoods") + public Result getCartCheckedGoods(String cartIdData){ + List cartCheckedGoods = cartService.getCartCheckedGoods(cartIdData); + return Result.ok(cartCheckedGoods); + } + + @ApiOperation(value = "删除购物车") + @DeleteMapping("deleteCart") + public Result deleteCart(String cartIdData){ + Map map = cartService.deleteCart(cartIdData); return Result.ok(map); } } diff --git a/src/main/java/com/hxtec/polaris/controller/OrderController.java b/src/main/java/com/hxtec/polaris/controller/OrderController.java index 196e516..9a39130 100644 --- a/src/main/java/com/hxtec/polaris/controller/OrderController.java +++ b/src/main/java/com/hxtec/polaris/controller/OrderController.java @@ -1,6 +1,7 @@ package com.hxtec.polaris.controller; import com.hxtec.polaris.commons.api.vo.Result; +import com.hxtec.polaris.commons.dto.OrderInfoDto; import com.hxtec.polaris.entity.ShopAddress; import com.hxtec.polaris.service.OrderService; import io.swagger.annotations.Api; @@ -55,8 +56,8 @@ public class OrderController { @PostMapping("submitOrder") - public Result submitOrder(@RequestBody ShopAddress shopAddress) { - Map map=orderService.submitOrder(shopAddress); + public Result submitOrder(@RequestBody OrderInfoDto orderInfoDto) { + Map map=orderService.submitOrder(orderInfoDto); return Result.ok(map); } } diff --git a/src/main/java/com/hxtec/polaris/service/CartItemService.java b/src/main/java/com/hxtec/polaris/service/CartItemService.java index 427b3c7..4c67243 100644 --- a/src/main/java/com/hxtec/polaris/service/CartItemService.java +++ b/src/main/java/com/hxtec/polaris/service/CartItemService.java @@ -58,18 +58,15 @@ public interface CartItemService { */ void delCart(String cartId, String memberId); - /** - * 购物车去结算 - * @param ids - * @return - */ - Map checkCart(String ids); - /** * 删除购物车 * @param ids * @return */ Map deleteCart(String ids); + + List getCartCheckedGoods(String cartIdData); + + void delCartById(List cartIds); } diff --git a/src/main/java/com/hxtec/polaris/service/OrderService.java b/src/main/java/com/hxtec/polaris/service/OrderService.java index 7779346..44b439a 100644 --- a/src/main/java/com/hxtec/polaris/service/OrderService.java +++ b/src/main/java/com/hxtec/polaris/service/OrderService.java @@ -1,5 +1,6 @@ package com.hxtec.polaris.service; +import com.hxtec.polaris.commons.dto.OrderInfoDto; import com.hxtec.polaris.entity.ShopAddress; import com.hxtec.polaris.entity.ShopOrder; @@ -24,10 +25,10 @@ public interface OrderService { /** * 提交订单 - * @param shopAddress + * @param orderInfoDto * @return */ - Map submitOrder(ShopAddress shopAddress); + Map submitOrder(OrderInfoDto orderInfoDto); Optional getOne(String orderId); } diff --git a/src/main/java/com/hxtec/polaris/service/impl/CartItemServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/CartItemServiceImpl.java index f198dfd..584bf95 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/CartItemServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/CartItemServiceImpl.java @@ -95,13 +95,7 @@ public class CartItemServiceImpl implements CartItemService { shopCartItem.setQuantity(shopCartItem.getQuantity()+quantity); i=this.updateCart(shopCartItem); } - if(i.equals(1)){ - map.put(CommonContants.STATUS,"success"); - } - else { - map.put(CommonContants.STATUS,"updateError"); - } - map.put(CommonContants.COUNTS,i); + map.put("cartId",i); return map; } @@ -148,8 +142,9 @@ public class CartItemServiceImpl implements CartItemService { } @Override - public Map checkCart(String ids) { + public Map deleteCart(String ids) { String phone="12345678900"; + String memberId="6"; Map map=new HashMap<>(); //未登录 if(StringUtils.equals("anonymousUser",phone)){ @@ -160,45 +155,29 @@ public class CartItemServiceImpl implements CartItemService { String[] cartIds=ids.split(","); List idList = Arrays.asList(cartIds); idList.forEach(id->{ - Example example=new Example(ShopCartItem.class); - example.createCriteria().andEqualTo("memberId","6") - .andEqualTo("id",id); - List shopCartItemList = cartItemMapper.selectByExample(example); - if (null !=shopCartItemList && 0!=shopCartItemList.size()){ - shopCartItemList.forEach(cartItem -> { - cartItem.setIsChecked("Y"); - Integer i = cartItemMapper.updateByPrimaryKeySelective(cartItem); - if(! i.equals(1)){ - map.put(CommonContants.STATUS,"updateError"); - } - }); - } + this.delCart(id, memberId); }); - if(map.size()>0){ - return map; - } map.put(CommonContants.STATUS,"success"); return map; } @Override - public Map deleteCart(String ids) { - String phone="12345678900"; - String memberId="6"; - Map map=new HashMap<>(); - //未登录 - if(StringUtils.equals("anonymousUser",phone)){ - map.put(CommonContants.STATUS,"error"); - map.put(CommonContants.MESSAGE,"userError"); - return map; - } - String[] cartIds=ids.split(","); - List idList = Arrays.asList(cartIds); - idList.forEach(id->{ - this.delCart(id, memberId); + public List getCartCheckedGoods(String cartIdData) { + String[] cartIdDatas =cartIdData.split(","); + List cartIdList = Arrays.asList(cartIdDatas); + List shopCartItemList=new ArrayList<>(); + cartIdList.forEach(id->{ + ShopCartItem shopCartItem = cartItemMapper.selectByPrimaryKey(id); + shopCartItemList.add(shopCartItem); + }); + return shopCartItemList; + } + + @Override + public void delCartById(List cartIds) { + cartIds.forEach(id->{ + cartItemMapper.deleteByPrimaryKey(id); }); - map.put(CommonContants.STATUS,"success"); - return map; } @@ -209,7 +188,8 @@ public class CartItemServiceImpl implements CartItemService { @Override public int insertTocart(ShopCartItem cartItem) { if (StringUtils.isNotEmpty(String.valueOf(cartItem.getMemberId()))) { - return cartItemMapper.insert(cartItem); + cartItemMapper.insert(cartItem); + return cartItem.getId(); } return 0; } @@ -227,7 +207,8 @@ public class CartItemServiceImpl implements CartItemService { public int updateCart(ShopCartItem cartItem) { Example example=new Example(ShopCartItem.class); example.createCriteria().andEqualTo("id",cartItem.getId()); - return cartItemMapper.updateByExampleSelective(cartItem,example); + cartItemMapper.updateByExampleSelective(cartItem, example); + return cartItem.getId(); } diff --git a/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java index 6726b0b..a01a242 100644 --- a/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/hxtec/polaris/service/impl/OrderServiceImpl.java @@ -5,6 +5,7 @@ import com.hxtec.polaris.commons.constant.Code; import com.hxtec.polaris.commons.constant.Log; import com.hxtec.polaris.commons.constant.Msg; import com.hxtec.polaris.commons.contants.CommonContants; +import com.hxtec.polaris.commons.dto.OrderInfoDto; import com.hxtec.polaris.commons.dto.Page; import com.hxtec.polaris.commons.exception.MyException; import com.hxtec.polaris.entity.ShopAddress; @@ -20,6 +21,7 @@ import com.hxtec.polaris.service.CartItemService; import com.hxtec.polaris.service.OrderService; import com.hxtec.polaris.service.UserService; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; @@ -105,7 +107,7 @@ public class OrderServiceImpl implements OrderService{ } @Override - public Map submitOrder(ShopAddress shopAddress) { + public Map submitOrder(OrderInfoDto orderInfoDto) { String phone="12345678900"; ShopUser userInfo=userService.getUserInfoByPhone(phone); Map map=new HashMap<>(); @@ -115,7 +117,10 @@ public class OrderServiceImpl implements OrderService{ map.put(CommonContants.MESSAGE,"userError"); return map; } - + ShopAddress shopAddress=new ShopAddress(); + BeanUtils.copyProperties(orderInfoDto.getAddress(),shopAddress); + List cartIds = orderInfoDto.getCartIds(); + //地址信息 ShopOrder shopOrder =ShopOrder.builder() .autoConfirmDay(7) .createTime(new Date()) @@ -125,13 +130,14 @@ public class OrderServiceImpl implements OrderService{ .receiverPhone(shopAddress.getComment2()) .addressDetail(shopAddress.getRegion()+shopAddress.getDetail()) .confirmStatus(0).build(); - - Example example=new Example(ShopCartItem.class); - example.createCriteria().andEqualTo("memberId",userInfo.getId()) - .andEqualTo("isChecked","Y"); - List shopCartItemList = cartItemMapper.selectByExample(example); + //从购物车中查找订单信息 + List shopCartItemList =new ArrayList<>(); + cartIds.forEach(id->{ + ShopCartItem shopCartItem = cartItemMapper.selectByPrimaryKey(id); + shopCartItemList.add(shopCartItem); + }); List shopOrderItems=new ArrayList<>(); - + //根据购物车数据生成订单数据 BigDecimal price=new BigDecimal("0.0"); BigDecimal discountPrice=new BigDecimal("0.0"); for (ShopCartItem cartItem:shopCartItemList){ @@ -161,6 +167,8 @@ public class OrderServiceImpl implements OrderService{ shopOrder.setDiscountPrice(discountPrice); shopOrder.setPayPrice(price); this.saveOrder(shopOrder); + // 删除购物车数据 + cartItemService.delCartById(cartIds); map.put(CommonContants.STATUS,"success"); return map; } @@ -181,8 +189,6 @@ public class OrderServiceImpl implements OrderService{ shopOrderItemMapper.insertSelective(shopOrderItem); }); - // 删除已选购物车数据 - cartItemService.delCheckedCart(); } private String getUser(){ -- Gitee