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 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;
|
|
@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("全部");
|
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);
|
shoppingGoodsListDto.setShopId(user.getShopId());
|
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("取消失败");
|
}
|
|
}
|