package ltd.Emallix.mall.service.impl;
import ltd.Emallix.mall.common.*;
import ltd.Emallix.mall.controller.vo.*;
import ltd.Emallix.mall.dao.EmallixMallGoodsMapper;
import ltd.Emallix.mall.dao.EmallixMallOrderItemMapper;
import ltd.Emallix.mall.dao.EmallixMallOrderMapper;
import ltd.Emallix.mall.dao.EmallixMallShoppingCartItemMapper;
import ltd.Emallix.mall.entity.EmallixMallGoods;
import ltd.Emallix.mall.entity.EmallixMallOrder;
import ltd.Emallix.mall.entity.EmallixMallOrderItem;
import ltd.Emallix.mall.entity.StockNumDTO;
import ltd.Emallix.mall.service.EmallixMallOrderService;
import ltd.Emallix.mall.util.BeanUtil;
import ltd.Emallix.mall.util.NumberUtil;
import ltd.Emallix.mall.util.PageQueryUtil;
import ltd.Emallix.mall.util.PageResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import static java.util.stream.Collectors.groupingBy;
@Service
@Transactional
public class EmallixMallOrderServiceImpl implements EmallixMallOrderService {
@Autowired
private EmallixMallOrderMapper EmallixMallOrderMapper;
@Autowired
private EmallixMallOrderItemMapper EmallixMallOrderItemMapper;
@Autowired
private EmallixMallShoppingCartItemMapper EmallixMallShoppingCartItemMapper;
@Autowired
private EmallixMallGoodsMapper EmallixMallGoodsMapper;
@Override
public PageResult getEmallixMallOrdersPage(PageQueryUtil pageUtil) {
List<EmallixMallOrder> EmallixMallOrders = EmallixMallOrderMapper.findEmallixMallOrderList(pageUtil);
int total = EmallixMallOrderMapper.getTotalEmallixMallOrders(pageUtil);
PageResult pageResult = new PageResult(EmallixMallOrders, total, pageUtil.getLimit(), pageUtil.getPage());
return pageResult;
}
@Override
@Transactional
public String updateOrderInfo(EmallixMallOrder EmallixMallOrder) {
EmallixMallOrder temp = EmallixMallOrderMapper.selectByPrimaryKey(EmallixMallOrder.getOrderId());
//不为空且orderStatus>=0且状态为出库之前可以修改部分信息
if (temp != null && temp.getOrderStatus() >= 0 && temp.getOrderStatus() < 3) {
temp.setTotalPrice(EmallixMallOrder.getTotalPrice());
temp.setUserAddress(EmallixMallOrder.getUserAddress());
temp.setUpdateTime(new Date());
if (EmallixMallOrderMapper.updateByPrimaryKeySelective(temp) > 0) {
return ServiceResultEnum.SUCCESS.getResult();
}
return ServiceResultEnum.DB_ERROR.getResult();
}
return ServiceResultEnum.DATA_NOT_EXIST.getResult();
}
@Override
@Transactional
public String checkDone(Long[] ids) {
//查询所有的订单 判断状态 修改状态和更新时间
List<EmallixMallOrder> orders = EmallixMallOrderMapper.selectByPrimaryKeys(Arrays.asList(ids));
String errorOrderNos = "";
if (!CollectionUtils.isEmpty(orders)) {
for (EmallixMallOrder EmallixMallOrder : orders) {
if (EmallixMallOrder.getIsDeleted() == 1) {
errorOrderNos += EmallixMallOrder.getOrderNo() + " ";
continue;
}
if (EmallixMallOrder.getOrderStatus() != 1) {
errorOrderNos += EmallixMallOrder.getOrderNo() + " ";
}
}
if (!StringUtils.hasText(errorOrderNos)) {
//订单状态正常 可以执行配货完成操作 修改订单状态和更新时间
if (EmallixMallOrderMapper.checkDone(Arrays.asList(ids)) > 0) {
return ServiceResultEnum.SUCCESS.getResult();
} else {
return ServiceResultEnum.DB_ERROR.getResult();
}
} else {
//订单此时不可执行出库操作
if (errorOrderNos.length() > 0 && errorOrderNos.length() < 100) {
return errorOrderNos + "订单的状态不是支付成功无法执行出库操作";
} else {
return "你选择了太多状态不是支付成功的订单,无法执行配货完成操作";
}
}
}
//未查询到数据 返回错误提示
return ServiceResultEnum.DATA_NOT_EXIST.getResult();
}
@Override
@Transactional
public String checkOut(Long[] ids) {
//查询所有的订单 判断状态 修改状态和更新时间
List<EmallixMallOrder> orders = EmallixMallOrderMapper.selectByPrimaryKeys(Arrays.asList(ids));
String errorOrderNos = "";
if (!CollectionUtils.isEmpty(orders)) {
for (EmallixMallOrder EmallixMallOrder : orders) {
if (EmallixMallOrder.getIsDeleted() == 1) {
errorOrderNos += EmallixMallOrder.getOrderNo() + " ";
continue;
}
if (EmallixMallOrder.getOrderStatus() != 1 && EmallixMallOrder.getOrderStatus() != 2) {
errorOrderNos += EmallixMallOrder.getOrderNo() + " ";
}
}
if (!StringUtils.hasText(errorOrderNos)) {
//订单状态正常 可以执行出库操作 修改订单状态和更新时间
if (EmallixMallOrderMapper.checkOut(Arrays.asList(ids)) > 0) {
return ServiceResultEnum.SUCCESS.getResult();
} else {
return ServiceResultEnum.DB_ERROR.getResult();
}
} else {
//订单此时不可执行出库操作
if (errorOrderNos.length() > 0 && errorOrderNos.length() < 100) {
return errorOrderNos + "订单的状态不是支付成功或配货完成无法执行出库操作";
} else {
return "你选择了太多状态不是支付成功或配货完成的订单,无法执行出库操作";
}
}
}
//未查询到数据 返回错误提示
return ServiceResultEnum.DATA_NOT_EXIST.getResult();
}
@Override
@Transactional
public String closeOrder(Long[] ids) {
//查询所有的订单 判断状态 修改状态和更新时间
List<EmallixMallOrder> orders = EmallixMallOrderMapper.selectByPrimaryKeys(Arrays.asList(ids));
String errorOrderNos = "";
if (!CollectionUtils.isEmpty(orders)) {
for (EmallixMallOrder EmallixMallOrder : orders) {
// isDeleted=1 一定为已关闭订单
if (EmallixMallOrder.getIsDeleted() == 1) {
errorOrderNos += EmallixMallOrder.getOrderNo() + " ";
continue;
}
//已关闭或者已完成无法关闭订单
if (EmallixMallOrder.getOrderStatus() == 4 || EmallixMallOrder.getOrderStatus() < 0) {
errorOrderNos += EmallixMallOrder.getOrderNo() + " ";
}
}
if (!StringUtils.hasText(errorOrderNos)) {
//订单状态正常 可以执行关闭操作 修改订单状态和更新时间&&恢复库存
if (EmallixMallOrderMapper.closeOrder(Arrays.asList(ids), EmallixOrderStatusEnum.ORDER_CLOSED_BY_JUDGE.getOrderStatus()) > 0 && recoverStockNum(Arrays.asList(ids))) {
return ServiceResultEnum.SUCCESS.getResult();
} else {
return ServiceResultEnum.DB_ERROR.getResult();
}
} else {
//订单此时不可执行关闭操作
if (errorOrderNos.length() > 0 && errorOrderNos.length() < 100) {
return er
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
数据库课程作业,仿天猫商场,着重数据库的设计,前端由thymeleaf设计, (1224个子文件)
adminlte.css 246KB
adminlte.min.css 201KB
bootstrap.css 183KB
bootstrap.min.css 137KB
bootstrap3.3.7.min.css 118KB
bootstrap-modal.css 106KB
style.css 51KB
ionicons.min.css 50KB
bootstrap-grid.css 37KB
website.css 31KB
bootstrap-grid.min.css 28KB
font-awesome.min.css 26KB
ui.jqgrid-bootstrap4.css 23KB
sweetalert2.min.css 20KB
ui.jqgrid.css 20KB
ui.jqgrid-bootstrap.css 19KB
select2.css 17KB
select2.min.css 15KB
style.css 15KB
swiper-bundle.min.css 13KB
index.css 9KB
order-detail.css 9KB
website.css 8KB
header.css 8KB
my-orders.css 8KB
order-settle.css 6KB
cart.css 6KB
pay.css 5KB
search.css 5KB
bootstrap-reboot.css 5KB
addresses.css 4KB
bootstrap-reboot.min.css 4KB
pay-select.css 3KB
detail.css 3KB
ebook.css 3KB
iconfont.css 3KB
login.css 2KB
personal.css 2KB
main.css 2KB
search.css 1KB
common.css 987B
ui.jqgrid-bootstrap-ui.css 662B
style.css 265B
style.css 137B
font-awesome.css 0B
font-awesome.min.css 0B
bootstrap-grid.css 0B
bootstrap.min.css 0B
bootstrap-reboot.css 0B
bootstrap-grid.min.css 0B
bootstrap-reboot.min.css 0B
bootstrap.css 0B
fontawesome-webfont.eot 75KB
fontawesome-webfont.eot 67KB
glyphicons-halflings-regular.eot 20KB
iconfont.eot 2KB
fontawesome-webfont.eot 0B
.gitattributes 58B
.gitignore 483B
tooltip.html 40KB
line.html 31KB
bar.html 28KB
api.html 27KB
legend.html 27KB
index.html 26KB
styling.html 26KB
axes.html 26KB
linear.html 26KB
elements.html 25KB
time.html 25KB
radar.html 24KB
charts.html 24KB
bubble.html 24KB
doughnut.html 23KB
usage.html 23KB
animations.html 22KB
index.html 22KB
plugins.html 22KB
modes.html 22KB
linear.html 22KB
category.html 22KB
area.html 22KB
responsive.html 22KB
polar.html 22KB
index.html 22KB
contributing.html 21KB
installation.html 21KB
colors.html 21KB
extensions.html 21KB
mixed.html 21KB
labelling.html 20KB
index.html 20KB
fonts.html 20KB
options.html 20KB
title.html 20KB
comparison.html 20KB
index.html 19KB
integration.html 19KB
events.html 19KB
index.html 19KB
共 1224 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13
资源评论
好家伙VCC
- 粉丝: 2373
- 资源: 9142
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 凸轮裁切机step全套技术资料100%好用.zip
- Java源码jsp高校科研管理系统-毕业设计-期末大作业.zip
- Java源码jsp高校大学生信息发布网-毕业设计-期末大作业.zip
- Java源码jsp高校规章制度管理系统-毕业设计-期末大作业.zip
- Java源码jsp个人理财系统-毕业设计-期末大作业.zip
- Java源码jsp高校体育器材管理系统-毕业设计-期末大作业.zip
- Java源码jsp高校评教教师工作量管理系统-毕业设计-期末大作业.zip
- 自适应滑模(SMO)-永磁同步电机-示例C语言定点代码和仿真模型 1. 相比普通的滑模算法,不使用低通滤波器,调参更为简单 2. 相比普通的滑模算法,估算的角度更加准确,速度更加稳定 3. 详细原
- 论文文档搬运机器人毕业设计说明书
- Java源码jsp个人网站管理系统-毕业设计-期末大作业.zip
- Java源码jsp工会会员管理系统ssh(企鹅毕设)-毕业设计-期末大作业.zip
- Java源码jsp工程项目管理系统-毕业设计-期末大作业.zip
- Java源码jsp供暖企业信息化报修平台-毕业设计-期末大作业.zip
- Java源码jsp光明旅行社网站-毕业设计-期末大作业.zip
- Java源码jsp华美家装预算系统-毕业设计-期末大作业.zip
- 论文文档保护轻载传动的转矩限制器
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功