增加取消订单接口
增加根据id获取订单接口 增加获取我的订单接口 增加根据商品id查询商品接口
This commit is contained in:
parent
896d2a92a1
commit
aa3cdb1191
|
@ -205,6 +205,18 @@ public class CommoditiesController {
|
|||
// return ResultUtils.success(commoditiesVOPage);
|
||||
// }
|
||||
|
||||
/**
|
||||
*根据id获取商品
|
||||
*/
|
||||
@ApiOperation(value = "根据id获取商品信息")
|
||||
@GetMapping("/getById/commodities")
|
||||
public BaseResponse<CommoditiesVO> getCommoditiesById(@RequestParam Long id) {
|
||||
ThrowUtils.throwIf(id < 0, ErrorCode.NULL_ERROR);
|
||||
Commodities byId = commoditiesService.getById(id);
|
||||
CommoditiesVO commoditiesVO = commoditiesService.getCommoditiesVO(byId);
|
||||
return ResultUtils.success(commoditiesVO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -206,11 +206,9 @@ public class ManicuristController {
|
|||
* 用于展示店铺信息
|
||||
*/
|
||||
@ApiOperation(value = "用户查询全部美甲师")
|
||||
@PostMapping("/userQueryAll")
|
||||
public BaseResponse<List<ManicuristVO>> UserQueryAllManicurist(@RequestBody UserManicuristQueryRequest userManicuristQueryRequest){
|
||||
ThrowUtils.throwIf(userManicuristQueryRequest == null, ErrorCode.NULL_ERROR);
|
||||
@GetMapping("/userQueryAll")
|
||||
public BaseResponse<List<ManicuristVO>> UserQueryAllManicurist(@RequestParam Long businessId){
|
||||
|
||||
Integer businessId = userManicuristQueryRequest.getBusinessId();
|
||||
QueryWrapper<Manicurist> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("businessId", businessId);
|
||||
List<Manicurist> manicuristList = manicuristService.list(queryWrapper);
|
||||
|
|
|
@ -1,18 +1,22 @@
|
|||
package com.cj.jiaqingjiayi.controller;
|
||||
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.cj.jiaqingjiayi.common.BaseResponse;
|
||||
import com.cj.jiaqingjiayi.common.ErrorCode;
|
||||
import com.cj.jiaqingjiayi.common.ResultUtils;
|
||||
import com.cj.jiaqingjiayi.contant.UserConstant;
|
||||
import com.cj.jiaqingjiayi.exception.BusinessException;
|
||||
import com.cj.jiaqingjiayi.model.domain.Commodities;
|
||||
import com.cj.jiaqingjiayi.model.domain.OrderItems;
|
||||
import com.cj.jiaqingjiayi.model.domain.Orders;
|
||||
import com.cj.jiaqingjiayi.model.domain.User;
|
||||
import com.cj.jiaqingjiayi.exception.ThrowUtils;
|
||||
import com.cj.jiaqingjiayi.model.CommonRequest;
|
||||
import com.cj.jiaqingjiayi.model.domain.*;
|
||||
import com.cj.jiaqingjiayi.model.request.order.MyOrderQueryRequest;
|
||||
import com.cj.jiaqingjiayi.model.request.order.OrderAddRequest;
|
||||
import com.cj.jiaqingjiayi.model.request.order.OrderItemsAddRequest;
|
||||
import com.cj.jiaqingjiayi.model.request.order.OrderQueryRequest;
|
||||
import com.cj.jiaqingjiayi.model.vo.OrdersVO;
|
||||
import com.cj.jiaqingjiayi.service.*;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
@ -81,7 +85,7 @@ public class OrdersController {
|
|||
BeanUtils.copyProperties(item, orderItems);
|
||||
orderItemsService.validOrderItems(orderItems);
|
||||
Long commoditiesId = orderItems.getCommoditiesId();
|
||||
// 根据菜品设置价格
|
||||
// 根据商品设置价格
|
||||
Commodities commodities = commoditiesService.getById(commoditiesId);
|
||||
BigDecimal commoditiesPrice = BigDecimal.valueOf(commodities.getCommoditiesPrice());
|
||||
orderItems.setPrice(commoditiesPrice);
|
||||
|
@ -94,6 +98,76 @@ public class OrdersController {
|
|||
return ResultUtils.success(orderId, "订单创建成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消订单
|
||||
*/
|
||||
@ApiOperation(value = "订单取消接口")
|
||||
@PostMapping("/cancel")
|
||||
public BaseResponse<Boolean> cancelOrder(@RequestBody CommonRequest commonRequest, HttpServletRequest request) {
|
||||
Long orderId = commonRequest.getId();
|
||||
if (orderId == null || orderId <= 0) {
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR);
|
||||
}
|
||||
//
|
||||
Orders orders = ordersService.getById(orderId);
|
||||
ThrowUtils.throwIf(orders == null, ErrorCode.NOT_FOUND_ERROR);
|
||||
ThrowUtils.throwIf(orders.getPaymentStatus() != 0, ErrorCode.OPERATION_ERROR, "订单状态错误");
|
||||
// 判断是否为自己的订单
|
||||
User loginUser = userService.getLoginUser(request);
|
||||
if (!orders.getUserId().equals(loginUser.getId())) {
|
||||
throw new BusinessException(ErrorCode.NO_AUTH);
|
||||
}
|
||||
// 修改订单状态
|
||||
orders.setPaymentStatus(3);
|
||||
boolean update = ordersService.updateById(orders);
|
||||
ThrowUtils.throwIf(!update, ErrorCode.SYSTEM_ERROR);
|
||||
return ResultUtils.success(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据 id 获取订单信息(仅管理员)
|
||||
*/
|
||||
@ApiOperation(value = "根据 id 获取订单信息(仅管理员)")
|
||||
@GetMapping("/get")
|
||||
public BaseResponse<OrdersVO> getOrderVOById(@RequestParam Long id) {
|
||||
if (id <= 0) {
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR);
|
||||
}
|
||||
Orders orders = ordersService.getById(id);
|
||||
ThrowUtils.throwIf(orders == null, ErrorCode.NOT_FOUND_ERROR);
|
||||
return ResultUtils.success(ordersService.getOrdersVO(orders));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取我的订单
|
||||
*/
|
||||
@ApiOperation(value = "获取自己的订单")
|
||||
@PostMapping("/my/page")
|
||||
public BaseResponse<Page<OrdersVO>> getMyOrders(@RequestBody MyOrderQueryRequest myOrderQueryRequest, HttpServletRequest request) {
|
||||
if (myOrderQueryRequest == null) {
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR);
|
||||
}
|
||||
long current = myOrderQueryRequest.getCurrent();
|
||||
long size = myOrderQueryRequest.getPageSize();
|
||||
User loginUser = userService.getLoginUser(request);
|
||||
OrderQueryRequest orderQueryRequest = new OrderQueryRequest();
|
||||
BeanUtils.copyProperties(myOrderQueryRequest, orderQueryRequest);
|
||||
QueryWrapper<Orders> queryWrapper = ordersService.getQueryWrapper(orderQueryRequest);
|
||||
if (loginUser.getUserRole().equals(UserConstant.BUSINESS_ROLE)) {
|
||||
// 商家获取订单
|
||||
Business loginBusiness = businessService.getLoginBusiness(request);
|
||||
queryWrapper.eq("businessId", loginBusiness.getId());
|
||||
} else {
|
||||
// 用户获取订单
|
||||
queryWrapper.eq("userId", loginUser.getId());
|
||||
}
|
||||
Page<Orders> ordersPage = ordersService.page(new Page<>(current, size),
|
||||
queryWrapper);
|
||||
Page<OrdersVO> ordersVOPage = new Page<>(current, size, ordersPage.getTotal());
|
||||
List<OrdersVO> ordersVOList = ordersService.getOrdersVO(ordersPage.getRecords());
|
||||
ordersVOPage.setRecords(ordersVOList);
|
||||
return ResultUtils.success(ordersVOPage);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -128,7 +128,6 @@ public class UserController {
|
|||
|
||||
/**
|
||||
* 分页获取用户列表(仅管理员)
|
||||
*
|
||||
* @return 用户列表
|
||||
*/
|
||||
@ApiOperation(value = "分页查询用户")
|
||||
|
@ -183,7 +182,7 @@ public class UserController {
|
|||
*/
|
||||
@ApiOperation(value = "根据id获取用户")
|
||||
@GetMapping("/getById")
|
||||
public BaseResponse<User> getUserById(long id, HttpServletRequest request){
|
||||
public BaseResponse<User> getUserById(@RequestParam Long id, HttpServletRequest request){
|
||||
//判断是否为管理员
|
||||
userService.isAdmin(request);
|
||||
if(id < 0){
|
||||
|
@ -239,8 +238,8 @@ public class UserController {
|
|||
throw new BusinessException(ErrorCode.PARAMS_ERROR, "用户账号过短");
|
||||
}
|
||||
|
||||
//判断密码是否小于6
|
||||
if(userPassword.length() < 6){
|
||||
//判断密码是否小于8
|
||||
if(userPassword.length() < 8){
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR, "密码过短");
|
||||
}
|
||||
//判断是否有特殊字符
|
||||
|
|
|
@ -51,6 +51,7 @@ public class AppointmentsAddRequest implements Serializable {
|
|||
* 美甲师名
|
||||
*/
|
||||
private String manicuristName;
|
||||
|
||||
/**
|
||||
* 预约时间
|
||||
*/
|
||||
|
|
|
@ -4,6 +4,7 @@ package com.cj.jiaqingjiayi.service;
|
|||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.cj.jiaqingjiayi.model.domain.OrderItems;
|
||||
import com.cj.jiaqingjiayi.model.domain.Orders;
|
||||
import com.cj.jiaqingjiayi.model.vo.OrderItemsVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -18,4 +19,14 @@ public interface OrderItemsService extends IService<OrderItems> {
|
|||
* 校验订单商品
|
||||
*/
|
||||
void validOrderItems(OrderItems orderItems);
|
||||
|
||||
/**
|
||||
* 获取订单详情视图信息
|
||||
*/
|
||||
OrderItemsVO getOrderItemsVO(OrderItems orderItems);
|
||||
|
||||
/**
|
||||
* 获取订单详情视图信息
|
||||
*/
|
||||
List<OrderItemsVO> getOrderItemsVO(List<OrderItems> orderItemsList);
|
||||
}
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package com.cj.jiaqingjiayi.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.cj.jiaqingjiayi.model.domain.OrderItems;
|
||||
import com.cj.jiaqingjiayi.model.domain.Orders;
|
||||
import com.cj.jiaqingjiayi.model.request.order.OrderQueryRequest;
|
||||
import com.cj.jiaqingjiayi.model.vo.OrdersVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -25,4 +28,16 @@ public interface OrdersService extends IService<Orders> {
|
|||
* 校验订单
|
||||
*/
|
||||
void validOrder(Orders orders);
|
||||
|
||||
/**
|
||||
* 获取订单视图信息
|
||||
*/
|
||||
OrdersVO getOrdersVO(Orders orders);
|
||||
|
||||
List<OrdersVO> getOrdersVO(List<Orders> ordersList);
|
||||
|
||||
/**
|
||||
* 获取查询条件
|
||||
*/
|
||||
QueryWrapper<Orders> getQueryWrapper(OrderQueryRequest orderQueryRequest);
|
||||
}
|
||||
|
|
|
@ -109,7 +109,7 @@ public class CommoditiesServiceImpl extends ServiceImpl<CommoditiesMapper, Commo
|
|||
}
|
||||
long count = getCount(commodities);
|
||||
CommoditiesVO commoditiesVO = new CommoditiesVO();
|
||||
|
||||
BeanUtils.copyProperties(commodities, commoditiesVO);
|
||||
if (count > 0) {
|
||||
commoditiesVO.setIsSpecification(1);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.cj.jiaqingjiayi.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import com.cj.jiaqingjiayi.common.ErrorCode;
|
||||
|
@ -8,13 +9,19 @@ import com.cj.jiaqingjiayi.exception.ThrowUtils;
|
|||
import com.cj.jiaqingjiayi.mapper.OrderItemsMapper;
|
||||
import com.cj.jiaqingjiayi.model.domain.Commodities;
|
||||
import com.cj.jiaqingjiayi.model.domain.OrderItems;
|
||||
import com.cj.jiaqingjiayi.model.vo.CommoditiesVO;
|
||||
import com.cj.jiaqingjiayi.model.vo.OrderItemsVO;
|
||||
import com.cj.jiaqingjiayi.service.CommoditiesService;
|
||||
import com.cj.jiaqingjiayi.service.OrderItemsService;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author 高木
|
||||
|
@ -41,6 +48,32 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
|
|||
throw new BusinessException(ErrorCode.PARAMS_ERROR, "商品错误");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderItemsVO getOrderItemsVO(OrderItems orderItems) {
|
||||
if (orderItems == null) {
|
||||
return null;
|
||||
}
|
||||
OrderItemsVO orderItemsVO = new OrderItemsVO();
|
||||
BeanUtils.copyProperties(orderItems, orderItemsVO);
|
||||
// 关联查询商品信息
|
||||
Long commoditiesId = orderItems.getCommoditiesId();
|
||||
Commodities commodities = null;
|
||||
if (commoditiesId != null && commoditiesId > 0) {
|
||||
commodities = commoditiesService.getById(commoditiesId);
|
||||
}
|
||||
CommoditiesVO commoditiesVO = commoditiesService.getCommoditiesVO(commodities);
|
||||
orderItemsVO.setCommoditiesVO(commoditiesVO);
|
||||
return orderItemsVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderItemsVO> getOrderItemsVO(List<OrderItems> orderItemsList) {
|
||||
if (CollectionUtils.isEmpty(orderItemsList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return orderItemsList.stream().map(this::getOrderItemsVO).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,27 +1,40 @@
|
|||
package com.cj.jiaqingjiayi.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import com.cj.jiaqingjiayi.common.ErrorCode;
|
||||
import com.cj.jiaqingjiayi.contant.CommonConstant;
|
||||
import com.cj.jiaqingjiayi.exception.BusinessException;
|
||||
import com.cj.jiaqingjiayi.model.domain.Business;
|
||||
import com.cj.jiaqingjiayi.model.domain.OrderItems;
|
||||
import com.cj.jiaqingjiayi.model.domain.Orders;
|
||||
import com.cj.jiaqingjiayi.model.request.order.OrderQueryRequest;
|
||||
import com.cj.jiaqingjiayi.model.vo.BusinessVO;
|
||||
import com.cj.jiaqingjiayi.model.vo.OrderItemsVO;
|
||||
import com.cj.jiaqingjiayi.model.vo.OrdersVO;
|
||||
import com.cj.jiaqingjiayi.service.BusinessService;
|
||||
import com.cj.jiaqingjiayi.service.OrderItemsService;
|
||||
import com.cj.jiaqingjiayi.service.OrdersService;
|
||||
import com.cj.jiaqingjiayi.mapper.OrdersMapper;
|
||||
import com.cj.jiaqingjiayi.utils.RegexUtils;
|
||||
import com.cj.jiaqingjiayi.utils.SqlUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.naming.Name;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author 高木
|
||||
|
@ -35,6 +48,10 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Orders>
|
|||
@Resource
|
||||
private OrderItemsService orderItemsService;
|
||||
|
||||
@Resource
|
||||
private BusinessService businessService;
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public long addOrder(Orders orders, List<OrderItems> orderItemsList) {
|
||||
|
@ -84,6 +101,77 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Orders>
|
|||
throw new BusinessException(ErrorCode.PARAMS_ERROR, "参数不全");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrdersVO getOrdersVO(Orders orders) {
|
||||
if (orders == null) {
|
||||
return null;
|
||||
}
|
||||
OrdersVO ordersVO = new OrdersVO();
|
||||
BeanUtils.copyProperties(orders, ordersVO);
|
||||
// 关联查询商家信息
|
||||
Long businessId = orders.getBusinessId();
|
||||
Business business = null;
|
||||
if (businessId != null && businessId > 0) {
|
||||
business = businessService.getById(businessId);
|
||||
}
|
||||
|
||||
BusinessVO businessVO = businessService.getBusinessVO(business);
|
||||
ordersVO.setBusinessVO(businessVO);
|
||||
// 关联查询订单详情信息
|
||||
Long orderId = orders.getId();
|
||||
QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("orderId", orderId);
|
||||
List<OrderItems> orderItemsList = orderItemsService.list(queryWrapper);
|
||||
List<OrderItemsVO> orderItemsVOList = orderItemsService.getOrderItemsVO(orderItemsList);
|
||||
ordersVO.setOrderItemsVOList(orderItemsVOList);
|
||||
// 关联查询评价状态
|
||||
|
||||
// 设置商品数量
|
||||
Integer number = 0;
|
||||
for (OrderItemsVO detailsVO : orderItemsVOList) {
|
||||
number += detailsVO.getQuantity();
|
||||
}
|
||||
ordersVO.setNumber(number);
|
||||
return ordersVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrdersVO> getOrdersVO(List<Orders> ordersList) {
|
||||
if (CollectionUtils.isEmpty(ordersList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return ordersList.stream().map(this::getOrdersVO).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueryWrapper<Orders> getQueryWrapper(OrderQueryRequest orderQueryRequest) {
|
||||
if (orderQueryRequest == null) {
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数为空");
|
||||
}
|
||||
Long id = orderQueryRequest.getId();
|
||||
Long userId = orderQueryRequest.getUserId();
|
||||
Long businessId = orderQueryRequest.getBusinessId();
|
||||
String orderNumber = orderQueryRequest.getOrderNumber();
|
||||
Integer claimStatus = orderQueryRequest.getClaimStatus();
|
||||
Integer state = orderQueryRequest.getPaymentStatus();
|
||||
String startTime = orderQueryRequest.getStartTime();
|
||||
String endTime = orderQueryRequest.getEndTime();
|
||||
String sortField = orderQueryRequest.getSortField();
|
||||
String sortOrder = orderQueryRequest.getSortOrder();
|
||||
QueryWrapper<Orders> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.like(ObjectUtils.isNotEmpty(id), "id", id);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(userId), "userId", userId);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(businessId), "businessId", businessId);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(orderNumber), "orderNumber", orderNumber);
|
||||
queryWrapper.eq(ObjectUtils.isNotEmpty(state), "paymentStatus", state);
|
||||
queryWrapper.ge(claimStatus != null, "claimStatus", claimStatus);
|
||||
queryWrapper.ge(StringUtils.isNotBlank(startTime), "createTime", startTime);
|
||||
queryWrapper.le(StringUtils.isNotBlank(endTime), "createTime", endTime);
|
||||
queryWrapper.orderBy(SqlUtils.validSortField(sortField), sortOrder.equals(CommonConstant.SORT_ORDER_ASC),
|
||||
sortField);
|
||||
return queryWrapper;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user