From 4536a68f86f50e09032066e00e9e3cacf366cbd4 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 23 Jun 2021 11:02:33 +0800 Subject: [PATCH] modify --- zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 170 insertions(+), 6 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java index 966de14..67a8262 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java +++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java @@ -1,22 +1,186 @@ package com.matrix.system.app.action; +import com.matrix.core.constance.MatrixConstance; +import com.matrix.core.exception.GlobleException; import com.matrix.core.pojo.AjaxResult; +import com.matrix.core.pojo.PaginationVO; +import com.matrix.core.tools.WebUtil; +import com.matrix.system.app.dto.CreateOderItemDto; +import com.matrix.system.app.dto.CreateOrderDto; +import com.matrix.system.app.dto.OrderListDto; +import com.matrix.system.app.dto.ShoppingGoodsListDto; +import com.matrix.system.app.vo.OrderDetailVo; +import com.matrix.system.app.vo.ShoppingGoodsDetailVo; +import com.matrix.system.app.vo.ShoppingGoodsListVo; +import com.matrix.system.common.bean.SysUsers; +import com.matrix.system.common.tools.DataAuthUtil; +import com.matrix.system.hive.action.util.QueryUtil; +import com.matrix.system.hive.bean.*; +import com.matrix.system.hive.dao.SysShopInfoDao; +import com.matrix.system.hive.plugin.util.CollectionUtils; +import com.matrix.system.hive.pojo.ShoppingCarItem; +import com.matrix.system.hive.pojo.ShoppingCarItemsVo; +import com.matrix.system.hive.service.ShoppingGoodsCategoryService; +import com.matrix.system.hive.service.ShoppingGoodsService; +import com.matrix.system.hive.service.SysOrderService; import io.swagger.annotations.Api; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * @author wzy * @date 2020-12-21 **/ @Api(value = "ApiOrderAction", tags = "订单接口类") +@RestController @RequestMapping(value = "/api/order") public class ApiOrderAction { + @Autowired + private ShoppingGoodsCategoryService shoppingGoodsCategoryService; - @PostMapping(value = "/createOrder") - public AjaxResult createOrder() { - return null; + @Autowired + private ShoppingGoodsService shoppingGoodsService; + + @Autowired + private SysOrderService sysOrderService; + + @Autowired + private SysShopInfoDao shopInfoDao; + + @ApiOperation(value = "获取商品类型列表", notes = "获取商品类型列表") + @ApiResponses({ + @ApiResponse(code = 200, message = "ok", response = ShoppingGoodsCategory.class) + }) + @GetMapping(value = "/findShoppingGoodsType") + public AjaxResult findShoppingGoodsType() { + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + + SysShopInfo zbShop = shopInfoDao.selectZbShop(user.getCompanyId()); + ShoppingGoodsCategory category = new ShoppingGoodsCategory(); + category.setShopId(zbShop.getId()); + List<ShoppingGoodsCategory> list = new ArrayList<>(); + List<ShoppingGoodsCategory> byModel = shoppingGoodsCategoryService.findByModel(category); + ShoppingGoodsCategory type = new ShoppingGoodsCategory(); + type.setName("全部"); + type.setParentId(0L); + list.add(type); + list.addAll(byModel); + return AjaxResult.buildSuccessInstance(list); } -} + @ApiOperation(value = "获取商品列表", notes = "获取商品列表") + @ApiResponses({ + @ApiResponse(code = 200, message = "ok", response = ShoppingGoodsListVo.class) + }) + @PostMapping(value = "/findShoppingGoods") + public AjaxResult findShoppingGoods(@RequestBody @Validated ShoppingGoodsListDto shoppingGoodsListDto) { + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + if (!DataAuthUtil.hasAllShopAuth()) { + shoppingGoodsListDto.setShopId(user.getShopId()); + } + QueryUtil.setQueryLimitCom(shoppingGoodsListDto); + return AjaxResult.buildSuccessInstance(shoppingGoodsService.findShoppingGoodsListForApi(shoppingGoodsListDto), shoppingGoodsService.findShoppingGoodsListTotalForApi(shoppingGoodsListDto)); + } + + + @ApiOperation(value = "获取商品详情", notes = "获取商品详情") + @ApiResponses({ + @ApiResponse(code = 200, message = "ok", response = ShoppingGoodsDetailVo.class) + }) + @GetMapping(value = "/findGoodsDetailById/{goodsId}") + public AjaxResult findGoodsDetailById(@PathVariable("goodsId") Long goodsId) { + ShoppingGoodsDetailVo goodsDetail = shoppingGoodsService.findApiShoppingGoodsDetailById(goodsId); + AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); + ajaxResult.putInMap("goods", goodsDetail); + return ajaxResult; + } + + + @ApiOperation(value = "创建订单", notes = "创建订单") + @PostMapping(value = "/createOrder") + public AjaxResult createOrder(@RequestBody @Validated CreateOrderDto createOrderDto) { + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + + ShoppingCarItemsVo car = new ShoppingCarItemsVo(); + car.setVipId(createOrderDto.getVipId()); + + if (CollectionUtils.isNotEmpty(createOrderDto.getItems())) { + List<ShoppingCarItem> list = new ArrayList<>(); + for (CreateOderItemDto item : createOrderDto.getItems()) { + ShoppingCarItem carItem = new ShoppingCarItem(); + carItem.setCount(item.getCount()); + carItem.setGoodsId(item.getGoodsId()); + carItem.setIsFree(item.getIsFree()); + carItem.setType(item.getGoodsType()); + + carItem.setShoppingGoods(shoppingGoodsService.findById(item.getGoodsId())); + list.add(carItem); + } + car.setCarItems(list); + } + int i = sysOrderService.createOrder(WebUtil.getSession(), car); + if (i > 0) { + return AjaxResult.buildSuccessInstance("下单成功"); + } + + return AjaxResult.buildFailInstance("下单失败"); + } + + @ApiOperation(value = "获取订单列表", notes = "获取订单列表") + @ApiResponses({ + @ApiResponse(code = 200, message = "ok", response = OrderDetailVo.class) + }) + @PostMapping(value = "/findOrderList") + public AjaxResult findOrderList(@RequestBody @Validated OrderListDto orderListDto) { + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + int offset = (orderListDto.getPageNum() - 1) * orderListDto.getPageSize(); + int limit = orderListDto.getPageSize(); + PaginationVO pageVo = new PaginationVO(); + pageVo.setOffset(offset); + pageVo.setLimit(limit); + + if (!DataAuthUtil.hasAllShopAuth()) { + orderListDto.setShopId(user.getShopId()); + } + QueryUtil.setQueryLimitCom(orderListDto); + return AjaxResult.buildSuccessInstance(sysOrderService.findApiOrderListInPage(orderListDto, pageVo), sysOrderService.findApiOrderListTotal(orderListDto)); + } + + @ApiOperation(value = "获取订单详情", notes = "获取订单详情") + @ApiResponses({ + @ApiResponse(code = 200, message = "ok", response = OrderDetailVo.class) + }) + @GetMapping(value = "/findOrderDetail/{orderId}") + public AjaxResult findOrderDetail(@PathVariable("orderId") Long orderId) { + OrderDetailVo orderDetail = sysOrderService.findApiOrderDetailByOrderId(orderId); + AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); + ajaxResult.putInMap("orderDetail", orderDetail); + return ajaxResult; + } + + @ApiOperation(value = "取消订单", notes = "取消订单") + @GetMapping(value = "/cancelOrder/{orderId}") + public AjaxResult cancelOrder(@PathVariable("orderId") Long orderId) { + SysOrder order = sysOrderService.findById(orderId); + if (order == null) { + throw new GlobleException("订单不存在"); + } + + + int i = sysOrderService.cancelOrder(orderId); + if (i > 0) { + return AjaxResult.buildSuccessInstance("取消成功"); + } + return AjaxResult.buildFailInstance("取消失败"); + } + +} \ No newline at end of file -- Gitblit v1.9.1