package com.doumee.api.web.mall;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.doumee.api.web.ApiController;
|
import com.doumee.config.annotation.LoginRequired;
|
import com.doumee.core.annotation.trace.Trace;
|
import com.doumee.core.model.ApiResponse;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.utils.kuaidi100.DeliveryDTO;
|
import com.doumee.core.utils.kuaidi100.ExpressUtils;
|
import com.doumee.core.wx.SendWxMessage;
|
import com.doumee.dao.business.model.Goodsorder;
|
import com.doumee.dao.business.model.Member;
|
import com.doumee.dao.web.dto.CouponDTO;
|
import com.doumee.dao.web.request.OrderPayRequest;
|
import com.doumee.dao.web.request.PageRequest;
|
import com.doumee.dao.web.request.goods.DealOrderRequest;
|
import com.doumee.dao.web.request.goods.MemberOrderRequest;
|
import com.doumee.dao.web.request.goods.OrderCommentRequest;
|
import com.doumee.dao.web.response.MyPageResponse;
|
import com.doumee.dao.web.response.OrderCommentResponse;
|
import com.doumee.dao.web.response.OrderDetailResponse;
|
import com.doumee.dao.web.response.goods.MemberOrderResponse;
|
import com.doumee.dao.web.response.goods.PayResponse;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.validation.Valid;
|
import java.math.BigDecimal;
|
import java.util.Date;
|
|
/**
|
* Created by IntelliJ IDEA.
|
*
|
* @Author : Rk
|
* @create 2023/3/24 14:30
|
*/
|
@Api(tags = "订单信息业务")
|
@Trace(exclude = true)
|
@RestController
|
@RequestMapping("/web/orders")
|
@Slf4j
|
public class OrderApi extends ApiController {
|
@LoginRequired
|
@ApiOperation("咖啡计划已订阅列表")
|
@PostMapping("/planOrdersPage")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Long", name = "current", value = "页码", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Long", name = "size", value = "每页记录数", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "goodsId", value = "商品主键", required = true)
|
})
|
public ApiResponse<IPage<OrderDetailResponse>> planOrdersPage(PageRequest pageable, Integer goodsId) {
|
IPage<OrderDetailResponse> page = goodsorderDetailService.pageList(pageable.toPage(),goodsId,getMemberId());
|
return ApiResponse.success("查询成功",page);
|
}
|
|
@LoginRequired
|
@ApiOperation("订单评价分页列表")
|
@PostMapping("/orderCommentPage")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Long", name = "current", value = "页码", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Long", name = "size", value = "每页记录数", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "goodsId", value = "商品主键", required = true)
|
})
|
public ApiResponse<IPage<OrderCommentResponse>> orderCommentPage(PageRequest pageable,Integer goodsId) {
|
IPage<OrderCommentResponse> page = orderCommentService.pageList(pageable.toPage(),goodsId);
|
return ApiResponse.success("查询成功",page);
|
}
|
|
|
@LoginRequired
|
@ApiOperation("会员优惠券")
|
@GetMapping("/memberCouponPage")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Long", name = "current", value = "页码", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Long", name = "size", value = "每页记录数", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "couponType", value = "优惠券类别:0商家优惠券 1平台优惠券", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "limitPrice", value = "满额", required = false)
|
})
|
public ApiResponse<IPage<CouponDTO>> memberCouponPage(PageRequest pageable, Integer couponType, BigDecimal limitPrice) {
|
IPage<CouponDTO> page = memberCouponService.memberCouponPage(pageable.toPage(),limitPrice,getMemberId(),couponType);
|
return ApiResponse.success("查询成功",page);
|
}
|
|
@LoginRequired
|
@ApiOperation("可用优惠券数量")
|
@GetMapping("/memberCouponNum")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "couponType", value = "优惠券类别", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "limitPrice", value = "满额", required = true)
|
})
|
public ApiResponse<Long> memberCouponNum(Integer couponType, BigDecimal limitPrice) {
|
return ApiResponse.success("查询成功", memberCouponService.memberCouponNum(limitPrice,getMemberId(),couponType));
|
}
|
|
|
@LoginRequired
|
@ApiOperation("订单支付")
|
@PostMapping("/orderPay")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
|
})
|
public ApiResponse<PayResponse> orderPay(@Valid @RequestBody OrderPayRequest orderPayRequest) {
|
orderPayRequest.setMemberId(getMemberId());
|
return ApiResponse.success("操作成功", goodsorderService.orderPay(orderPayRequest));
|
}
|
|
@LoginRequired
|
@ApiOperation("订单重新支付")
|
@GetMapping("/replayPay")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
|
})
|
public ApiResponse<PayResponse> orderPay(@RequestParam Integer orderId) {
|
return ApiResponse.success("操作成功", goodsorderService.replayPay(orderId));
|
}
|
|
@LoginRequired
|
@ApiOperation("订单详情")
|
@GetMapping("/orderDetail")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "orderId", value = "订单主键", required = true),
|
})
|
public ApiResponse<MemberOrderResponse> orderDetail(@RequestParam Integer orderId) {
|
return ApiResponse.success("查询成功", goodsorderService.getGoodsOrderDetail(orderId));
|
}
|
|
@LoginRequired
|
@ApiOperation("我的订单列表")
|
@PostMapping("/orderPage")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
})
|
public ApiResponse<IPage<MemberOrderResponse>> orderPage(@RequestBody PageWrap<MemberOrderRequest> pageWrap) {
|
pageWrap.getModel().setMemberId(getMemberId());
|
IPage<MemberOrderResponse> page = goodsorderService.getGoodsOrderPage(pageWrap);
|
return ApiResponse.success("查询成功",page);
|
}
|
|
@LoginRequired
|
@ApiOperation("修改订单收货地址")
|
@PostMapping("/updateAddress")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
})
|
public ApiResponse updateAddress(@RequestBody DealOrderRequest dealOrderRequest) {
|
dealOrderRequest.setMemberId(getMemberId());
|
goodsorderService.updAddress(dealOrderRequest);
|
return ApiResponse.success("操作成功");
|
}
|
|
@LoginRequired
|
@ApiOperation("取消订单")
|
@PostMapping("/cancelOrder")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
})
|
public ApiResponse cancelOrder(@RequestBody DealOrderRequest dealOrderRequest) {
|
goodsorderService.cancelOrder(dealOrderRequest.getOrderId(),getMemberId(),dealOrderRequest.getCancelInfo());
|
return ApiResponse.success("操作成功");
|
}
|
|
@LoginRequired
|
@ApiOperation("催发货")
|
@PostMapping("/urgeSend")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
})
|
public ApiResponse urgeSend(@RequestBody DealOrderRequest dealOrderRequest) {
|
goodsorderService.urgeSend(dealOrderRequest.getOrderId(),getMemberId());
|
return ApiResponse.success("操作成功");
|
}
|
|
@LoginRequired
|
@ApiOperation("确认收货")
|
@PostMapping("/affirmOrder")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
})
|
public ApiResponse affirmOrder(@RequestBody DealOrderRequest dealOrderRequest) {
|
goodsorderService.affirmOrder(dealOrderRequest.getOrderId(),getMemberId());
|
return ApiResponse.success("操作成功");
|
}
|
|
|
@LoginRequired
|
@ApiOperation("订单评论")
|
@PostMapping("/orderComment")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
})
|
public ApiResponse orderComment(@RequestBody OrderCommentRequest orderCommentRequest) {
|
orderCommentRequest.setMemberId(getMemberId());
|
goodsorderService.orderComment(orderCommentRequest);
|
return ApiResponse.success("操作成功");
|
}
|
|
@LoginRequired
|
@ApiOperation("订单统计")
|
@GetMapping("/ordersStatistics")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
})
|
public ApiResponse<MyPageResponse> ordersStatistics() {
|
return ApiResponse.success("操作成功",goodsorderService.ordersStatistics(getMemberId()));
|
}
|
|
@LoginRequired
|
@ApiOperation("物流查询")
|
@GetMapping("/queryExpress")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "String", name = "expressCode", value = "物流单号", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "String", name = "company", value = "物流公司", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "String", name = "phone", value = "手机号", required = true),
|
})
|
public ApiResponse<DeliveryDTO> queryExpress(@RequestParam String expressCode,@RequestParam String company,@RequestParam String phone) {
|
DeliveryDTO deliveryDTO = ExpressUtils.queryExpress(expressCode,company,phone);
|
return ApiResponse.success("操作成功",deliveryDTO);
|
}
|
|
}
|