package com.qcl.paotuischool.runorder;
import com.qcl.api.ResultApi;
import com.qcl.enums.OrderStatusEnum;
import com.qcl.enums.OrderTypeEnum;
import com.qcl.enums.PayStatusEnum;
import com.qcl.enums.ResultEnum;
import com.qcl.exception.SellException;
import com.qcl.paotuischool.bean.RunOrderForm2DTOConverter;
import com.qcl.paotuischool.bean.RunSchoolOrder;
import com.qcl.paotuischool.bean.SchoolRunner;
import com.qcl.paotuischool.form.RobOrderForm;
import com.qcl.paotuischool.form.RunSchoolOrderForm;
import com.qcl.paotuischool.runner.SchoolerService;
import com.qcl.paotuischool.wechat.AjaxJson;
import com.qcl.paotuischool.wechat.WxPayService;
import com.qcl.utils.ProtectUserUtils;
import com.qcl.utils.ResultApiUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j;
/**
* 找我呀----跑腿
*/
@RestController
@RequestMapping("/runSchoolOrder")
@Slf4j
public class SchoolOrderController {
@Autowired
private SchoolOrderService service;
//查询跑腿员信息
@Autowired
private SchoolerService schoolerService;
@Autowired
private WxPayService wxPayService; //微信支付的服务
//创建单个订单
@PostMapping("/create")
public ResultApi create(@Valid RunSchoolOrderForm orderForm,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
log.error("[创建订单] 参数不正确,orderForm={}", orderForm);
throw new SellException(ResultEnum.PARAM_ERROR.getCode()
, bindingResult.getFieldError().getDefaultMessage());
}
//金额必须大于0
if (orderForm.getTotalMoney() == null || orderForm.getTotalMoney() <= 0) {
throw new SellException(ResultEnum.ORDER_MONEY_ERROR);
}
RunSchoolOrder orderDTO = RunOrderForm2DTOConverter.converter(orderForm);
RunSchoolOrder result = service.create(orderDTO);
return ResultApiUtil.success(result);
}
/**
* 跑腿员抢单
*/
@PostMapping("/robOrder")
public ResultApi robOneOrder(@Valid RobOrderForm orderForm,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
log.error("[创建订单] 参数不正确,orderForm={}", orderForm);
throw new SellException(ResultEnum.PARAM_ERROR.getCode()
, bindingResult.getFieldError().getDefaultMessage());
}
//-1审核失败,1审核中的跑腿员,2审核通过普通跑腿员,3培训过可以寄件跑腿员
SchoolRunner schoolRunner = schoolerService.findOneOpenid(orderForm.getOpenid());
if (schoolRunner == null || schoolRunner.getType() < 2) {
log.error("[查询可抢订单列表] 跑腿员没有审核通过");
throw new SellException(ResultEnum.USER_NO_AUTHORITY);
}
RunSchoolOrder order = service.findOne(orderForm.getOrderid());
if (order == null) {
throw new SellException(ResultEnum.ORDER_NOT_EXIST);
}
//0代取快递,1代寄快递;只有培训过的跑腿员才可以抢寄件单
if (order.getOrderType() == OrderTypeEnum.SEND.getCode()) {
//-1审核失败,1审核中的跑腿员,2审核通过普通跑腿员,3培训过可以寄件跑腿员
if (schoolRunner.getType() < 3) {
log.error("[查询可抢订单列表] 跑腿员没有培训过");
throw new SellException(ResultEnum.USER_NO_TRAINING);
}
}
//订单状态 -1取消订单,0新下单待抢单,1已被抢单,2已取到,3已送达,4客户确认收货
//只有新下单并支付过的订单才可以抢
if (order.getOrderStatus() != 0) {
throw new SellException(ResultEnum.ORDER_HAS_ROBBED);
}
//支付状态 -2已退款,-1已申请退款,0等待支付,1支付完成
//未支付的订单不能抢
if (order.getPayStatus() != 1) {
throw new SellException(ResultEnum.ORDER_HAS_NOPAY);
}
order.setOrderStatus(OrderStatusEnum.HAS_BE_ROBBED.getCode());//设置已被抢单
order.setRunnerId(orderForm.getOpenid());
order.setRunnerName(orderForm.getName());
order.setRunnerPhone(orderForm.getPhone());
RunSchoolOrder result = service.create(order);
return ResultApiUtil.success(result);
}
/**
* 某一个用户的所有订单
*/
@PostMapping("/myOrderList")
public ResultApi list(
@RequestParam("openid") String openid,
@RequestParam(value = "page", defaultValue = "0") int page,
@RequestParam(value = "size", defaultValue = "200") int size) {
if (StringUtils.isEmpty(openid)) {
log.error("[查询订单列表] openid为空");
throw new SellException(ResultEnum.PARAM_ERROR);
}
//按订单创建时间到排序,新订单在最前面
Sort sort = new Sort(Sort.Direction.DESC, "updateTime");
PageRequest request = new PageRequest(page, size, sort);
Page<RunSchoolOrder> orderPage = service.findList(openid, request);
return ResultApiUtil.success(orderPage.getContent());
}
/**
* 查询某一个订单
*/
@PostMapping("/oneOrder")
public ResultApi oneOrder(
@RequestParam("orderid") String orderid) {
if (StringUtils.isEmpty(orderid)) {
log.error("[查询订单列表] 订单号不能为空");
throw new SellException(ResultEnum.ORDER_NOT_EXIST);
}
RunSchoolOrder order = service.findOne(orderid);
if (order == null) {
throw new SellException(ResultEnum.ORDER_NOT_EXIST);
}
return ResultApiUtil.success(order);
}
/**
* 某一个跑腿员抢的所有订单
* runnerOrderType: 0新抢到待取件,1已取件,2已送达
*/
@PostMapping("/ruunerOrderList")
public ResultApi runerOrderlist(
@RequestParam("runnerOpenid") String runnerOpenid,
@RequestParam("runnerOrderType") int runnerOrderType,
@RequestParam(value = "page", defaultValue = "0") int page,
@RequestParam(value = "size", defaultValue = "1000") int size) {
if (StringUtils.isEmpty(runnerOpenid)) {
log.error("[查询订单列表] openid为空");
throw new SellException(ResultEnum.PARAM_ERROR);
}
//按订单创建时间到排序,新订单在最前面,加急排前
List<Sort.Order> list = new ArrayList<>(2);
Sort.Order order1 = new Sort.Order(Sort.Direction.DESC, "isJiaJi");
Sort.Order order2 = new Sort.Order(Sort.Direction.DESC, "updateTime");
list.add(order1);
list.add(order2);
Sort sort = new Sort(list);
PageRequest request = new PageRequest(page, size, sort);
Page<RunSchoolOrder> orderPage = service.findRunnerList(runnerOpenid, runnerOrderType, request);
return ResultApiUtil.success(orderPage.getContent());
}
/**
* 查询所有可以被抢的订单
* orderType;//0代取快递,1代寄快递
*/
@PostMapping("/canRobbedOrders")
public ResultApi canRob
没有合适的资源?快使用搜索试试~ 我知道了~
基于springboot+jpa实现java后台api接口,点餐系统.zip
共582个文件
js:190个
java:150个
html:109个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 191 浏览量
2023-06-28
16:01:02
上传
评论
收藏 3.14MB ZIP 举报
温馨提示
本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!! 本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!! 本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!!
资源推荐
资源详情
资源评论
收起资源包目录
基于springboot+jpa实现java后台api接口,点餐系统.zip (582个子文件)
AUTHORS 6KB
editormd.css 81KB
editormd.min.css 60KB
editormd.preview.css 59KB
editormd.preview.min.css 44KB
ambiance.css 26KB
codemirror.css 8KB
codemirror.min.css 5KB
mdn-like.css 5KB
solarized.css 5KB
merge.css 3KB
lint.css 3KB
xq-dark.css 3KB
lesser-dark.css 2KB
pastel-on-dark.css 2KB
xq-light.css 2KB
editormd.logo.css 2KB
tomorrow-night-eighties.css 2KB
erlang-dark.css 2KB
zenburn.css 2KB
twilight.css 2KB
midnight.css 2KB
vibrant-ink.css 2KB
mbo.css 2KB
base16-dark.css 2KB
base16-light.css 2KB
tern.css 2KB
3024-night.css 2KB
paraiso-dark.css 2KB
paraiso-light.css 2KB
tomorrow-night-bright.css 2KB
3024-day.css 2KB
blackboard.css 2KB
colorforth.css 2KB
editormd.logo.min.css 2KB
the-matrix.css 2KB
night.css 2KB
rubyblue.css 2KB
monokai.css 1KB
cobalt.css 1KB
simplescrollbars.css 1KB
eclipse.css 1KB
neo.css 932B
header.css 787B
elegant.css 768B
neat.css 693B
show-hint.css 662B
index.css 538B
dialog.css 502B
tiki.css 440B
foldgutter.css 435B
tiddlywiki.css 220B
matchesonscrollbar.css 188B
fullscreen.css 116B
ambiance-mobile.css 103B
Thumbs.db 34KB
Dockerfile 142B
fontawesome-webfont.eot 59KB
editormd-logo.eot 1KB
.gitignore 271B
scala.html 28KB
2048.html 22KB
index.html 22KB
index.html 17KB
index.html 13KB
index.html 13KB
index.html 11KB
index.html 10KB
index.html 9KB
index.html 8KB
index.html 8KB
shenjingmao.html 7KB
index.html 7KB
index.html 7KB
index.html 6KB
index.html 6KB
index.html 6KB
index.html 6KB
index.html 6KB
index.html 6KB
index.html 5KB
index.html 5KB
index.html 4KB
index.html 4KB
shuxue.html 4KB
index.html 4KB
index.html 4KB
article.html 4KB
index.html 4KB
index.html 4KB
index.html 4KB
less.html 4KB
index.html 4KB
xiaoniao.html 4KB
index.html 3KB
index.html 3KB
index.html 3KB
index.html 3KB
index.html 3KB
index.html 3KB
共 582 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
白话机器学习
- 粉丝: 9278
- 资源: 7681
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功