package com.xiaofei.service.order.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.xiaofei.constant.OrderStatus;
import com.xiaofei.common.SearchCondition;
import com.xiaofei.entity.base.TrackCompanyEntity;
import com.xiaofei.entity.order.OrderCommentEntity;
import com.xiaofei.entity.order.OrderInfoEntity;
import com.xiaofei.entity.order.PaymentInfoEntity;
import com.xiaofei.entity.user.UserInfoEntity;
import com.xiaofei.mapper.order.OrderCommentMapper;
import com.xiaofei.mapper.order.OrderInfoMapper;
import com.xiaofei.mapper.order.PaymentInfoMapper;
import com.xiaofei.mapper.user.UserInfoMapper;
import com.xiaofei.service.base.TrackCompanyService;
import com.xiaofei.service.order.OrderInfoService;
import com.xiaofei.utils.OrderUtils;
import com.xiaofei.dto.OrderInfoDto;
import com.xiaofei.dto.PaymentDto;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* TODO 类描述
*
* @date 2022/4/9 15:05
*/
@Service
public class OrderInfoServiceImpl implements OrderInfoService {
@Resource
private OrderInfoMapper orderInfoMapper;
@Resource
private OrderCommentMapper orderCommentMapper;
@Resource
private UserInfoMapper userInfoMapper;
@Resource
private TrackCompanyService trackCompanyService;
@Resource
private PaymentInfoMapper paymentInfoMapper;
@Override
public List<OrderInfoEntity> selectOrderByUserId(String userName) {
QueryWrapper<OrderInfoEntity> wrapper = new QueryWrapper<>();
wrapper.eq("userId", userName);
List<OrderInfoEntity> list = orderInfoMapper.selectList(wrapper);
if (CollectionUtils.isEmpty(list)) {
return new ArrayList<>();
}
return list;
}
/**
* 根据配送用户,查询订单信息
*
* @param deliveryManId
*/
@Override
public List<OrderInfoEntity> selectOrderByDeliveryManId(String deliveryManId) {
QueryWrapper<OrderInfoEntity> wrapper = new QueryWrapper<>();
wrapper.eq("deliveryManId", deliveryManId);
List<OrderInfoEntity> list = orderInfoMapper.selectList(wrapper);
if (CollectionUtils.isEmpty(list)) {
return new ArrayList<>();
}
return list;
}
/**
* 从订单信息中汇总仪表板信息
*
* @param orders
*/
@Override
public List<String> collectOrderIds(List<OrderInfoEntity> orders) {
List<String> orderIds = new ArrayList<>();
for (OrderInfoEntity order : orders) {
orderIds.add(order.getId());
}
if (CollectionUtils.isEmpty(orderIds)) {
return new ArrayList<>();
}
return orderIds;
}
/**
* 获取等待接单或正在派送的订单数
*
* @param orders
*/
@Override
public Map<String, Integer> filterWaitAndDispatchOrderNumber(List<OrderInfoEntity> orders) {
Map<String, Integer> map = new HashMap<>();
map.put("wait", 0);
map.put("dispatch", 0);
for (OrderInfoEntity entity : orders) {
Integer status = entity.getOrderStatus();
if (status == 10) {
map.put("wait", map.get("wait") + 1);
} else if (status == 20) {
map.put("dispatch", map.get("dispatch") + 1);
}
}
return map;
}
/**
* 新增订单
*
* @param orderInfo
*/
@Override
@Transactional(rollbackFor = Exception.class)
public String insertOrder(OrderInfoEntity orderInfo) {
int insertFlag = orderInfoMapper.insert(orderInfo);
if (insertFlag > 0) {
return orderInfo.getId();
}
return "";
}
/**
* 获取【没有被删除或撤销】或者被删除或撤销的订单
*/
@Override
public PageInfo<OrderInfoEntity> selectOrderBelongGeneral(SearchCondition search, String userName, Boolean flag) {
QueryWrapper<UserInfoEntity> wrapper = new QueryWrapper<>();
wrapper.eq("userName", userName);
UserInfoEntity entity = userInfoMapper.selectOne(wrapper);
Integer curPage = search.getCurrentPage() == 0 ? 1 : search.getCurrentPage();
PageHelper.startPage(curPage, search.getPageSize());
QueryWrapper<OrderInfoEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("userId", entity.getUserId());
if (flag) {
queryWrapper.eq("isDel", 0);
} else {
queryWrapper.in("isDel", 1, -1);
}
//订单号
if (StringUtils.isNotEmpty(search.getId())) {
queryWrapper.like("id", search.getId());
}
//订单状态
if (search.getOrderStatus() != null && search.getOrderStatus() != 0) {
queryWrapper.eq("orderStatus", search.getOrderStatus());
}
//起始日期
if (!CollectionUtils.isEmpty(search.getStartEndTime())) {
List<Date> startEndTime = search.getStartEndTime();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date start = startEndTime.get(0);
Date end = startEndTime.get(1);
if (start != null) {
String formatStart = format.format(start);
String formatEnd = format.format(end);
if (StringUtils.compare(formatStart, formatEnd) == 0) {
formatEnd = formatEnd + " 23:59:59";
} else {
queryWrapper
.ge("createTime", format.format(start))
.le("createTime", format.format(end));
}
}
}
List<OrderInfoEntity> entityList = orderInfoMapper.selectList(queryWrapper);
if (CollectionUtils.isEmpty(entityList)) {
return new PageInfo<OrderInfoEntity>();
}
return new PageInfo<OrderInfoEntity>(entityList);
}
/**
* 管理员查询被删除和撤销的订单
*
* @param search
* @param flag
*/
@Override
public PageInfo<OrderInfoEntity> selectAllOrder(SearchCondition search, Boolean flag) {
//支付状态
QueryWrapper<PaymentInfoEntity> wrapper = new QueryWrapper<>();
List<PaymentInfoEntity> paymentInfoEntities = new ArrayList<>();
if (search.getPaymentStatus() != null && search.getPaymentStatus() != -1) {
wrapper.eq("paymentStatus", search.getPaymentStatus());
paymentInfoEntities = paymentInfoMapper.selectList(wrapper);
//当存在支付状态信息,但是查询无结果时,直接返回
if (CollectionUtils.isEmpty(paymentInfoEntities)) {
return new PageInfo<OrderInfoEntity>();
}
}
//收集订单id
List<String> orderIds = new ArrayList<>();
for (PaymentInfoEntity entity : paymentInfoEntities) {
if (StringUtils.isNotEmpty(entity.getOrderid())) {
orderIds.add(entity.getOrderid());
}
}
QueryWrapper<OrderInfoEntity> queryWrapper = new QueryWrapper<>();
Integer curPage = search.getCurrentPage() == 0 ? 1 : search.getCurrentPage();
PageHelper.startPage(curPage, search.getPageSize());
if (!CollectionUtils.isEmpty(paymentInfoEntities)) {
queryWrapper.in("id", orderIds);
}
if (flag) {
queryWrapper.eq("isDel", 0);
} else {
queryWrapper.in("isDel", 1, -1);
}
//订单状态
if (search.getOrderStatus() != null
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1、技术栈介绍 前端 vue2 + element-ui + axios 后端 springboot + redis + mysql-Plus + JSON WEB TOKEN 2、功能描述 用户角色:普通用户 、配送员、管理员 主要功能如下: 用户登录,退出 个人中心 订单回收站 发布代取订单 切换配送员 修改订单信息 评价中心 切换普通用户 接单模块 分配订单给配送员 冻结用户 删除订单 撤销订单 订单异常等功能
资源推荐
资源详情
资源评论
收起资源包目录
基于springboot+vue实现快递代取系统【源码+数据库】 (130个子文件)
mvnw.cmd 6KB
.gitignore 333B
.gitignore 231B
index.html 591B
favicon.ico 25KB
maven-wrapper.jar 50KB
OrderInfoServiceImpl.java 21KB
UserController.java 15KB
UserInfoInfoServiceImpl.java 11KB
DeliveryController.java 11KB
GeneralController.java 10KB
DashBoardController.java 9KB
ManagerController.java 8KB
RedisUtils.java 8KB
MavenWrapperDownloader.java 5KB
OrderCommentServiceImpl.java 4KB
PaymentInfoServiceImpl.java 3KB
OrderInfoService.java 3KB
LoginPersistenceServiceImpl.java 3KB
WebConfig.java 3KB
UserInfoEntity.java 3KB
OrderInfoEntity.java 2KB
HttpUtils.java 2KB
JwtUtils.java 2KB
AllRequestInterceptor.java 2KB
DateUtils.java 2KB
SchoolServiceImpl.java 2KB
SchoolController.java 2KB
UserInfoService.java 2KB
ExpressPickupApplicationTests.java 2KB
CommonResponse.java 1KB
OrderUtils.java 1KB
ProvinceController.java 1KB
OrderCommentEntity.java 1KB
ProvinceServiceImpl.java 1KB
RedisConfig.java 1KB
TrackCompanyServiceImpl.java 1KB
PaymentInfoEntity.java 1KB
SearchCondition.java 1KB
OrderInfoMapper.java 1KB
OrderCommentService.java 1012B
QuartzConfig.java 998B
UserRoleServiceImpl.java 915B
PaymentInfoService.java 862B
CodecUtils.java 728B
SchoolEntity.java 682B
TrackCompanyEntity.java 648B
ProvinceEntity.java 635B
UserInfoMapper.java 631B
LoginPersistenceEntity.java 616B
UserRoleEntity.java 612B
LoginPersistenceService.java 584B
SchoolService.java 503B
LoginPersistenceMapper.java 412B
ExpressPickupApplication.java 398B
ProvinceService.java 374B
SchoolServiceCache.java 356B
OrderCommentMapper.java 329B
TrackCompanyMapper.java 328B
PaymentInfoMapper.java 326B
TrackCompanyService.java 316B
ProvinceMapper.java 315B
UserRoleMapper.java 313B
SchoolMapper.java 309B
UserRoleService.java 268B
UserRoleNameUtils.java 141B
login1.jpg 1.05MB
register1.jpg 1.02MB
register2.jpg 603KB
login.jpg 176KB
register.jpg 110KB
index.js 7KB
main.js 4KB
http.js 4KB
index.js 3KB
index.js 2KB
managerOrder.js 1KB
user.js 1KB
order.js 1KB
deliveryOrder.js 1KB
selectInfo.js 516B
dashboard.js 382B
babel.config.js 264B
vue.config.js 182B
menu.js 165B
package-lock.json 1.04MB
package.json 1KB
.keep 0B
LICENSE 11KB
mvnw 10KB
erͼ.png 104KB
系统结构功能图.png 92KB
系统架构流程图.png 83KB
image-20220408214710279.png 45KB
三层架构应用图.png 41KB
数据模型 E-R 图.png 30KB
maven-wrapper.properties 218B
PersonalCenter.vue 30KB
DeliveryPersonalCenter.vue 30KB
OrderManager.vue 29KB
共 130 条
- 1
- 2
资源评论
飞翔的佩奇
- 粉丝: 3968
- 资源: 841
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功