|
|
|
@ -1,5 +1,4 @@
|
|
|
|
|
package com.shanzhu.flower.controller;
|
|
|
|
|
|
|
|
|
|
import com.shanzhu.flower.config.Constant;
|
|
|
|
|
import com.shanzhu.flower.config.HttpMsg;
|
|
|
|
|
import com.shanzhu.flower.dao.OrderDao;
|
|
|
|
@ -11,16 +10,14 @@ import com.shanzhu.flower.entity.User;
|
|
|
|
|
import com.shanzhu.flower.service.OrderService;
|
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
import tk.mybatis.mapper.util.StringUtil;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 订单 控制层
|
|
|
|
|
* 提供订单相关的RESTful API接口,包括查询订单、分页查询订单列表、更新订单状态、删除订单等。
|
|
|
|
|
*
|
|
|
|
|
* @author: ShanZhu
|
|
|
|
|
* @date: 2024-01-24
|
|
|
|
@ -28,92 +25,140 @@ import java.util.Map;
|
|
|
|
|
@RestController
|
|
|
|
|
@RequestMapping("order")
|
|
|
|
|
public class OrderController {
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private OrderService orderService;
|
|
|
|
|
|
|
|
|
|
private OrderService orderService; // 注入订单服务层
|
|
|
|
|
@Resource
|
|
|
|
|
private UserDao userDao;
|
|
|
|
|
|
|
|
|
|
private UserDao userDao; // 注入用户数据访问对象
|
|
|
|
|
@Resource
|
|
|
|
|
private OrderDao orderDao;
|
|
|
|
|
|
|
|
|
|
private OrderDao orderDao; // 注入订单数据访问对象
|
|
|
|
|
/**
|
|
|
|
|
* 根据账号查询订单
|
|
|
|
|
* 查询指定账号的所有订单。
|
|
|
|
|
*
|
|
|
|
|
* @param account 用户账号
|
|
|
|
|
* @return 订单列表
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/queryByAccount")
|
|
|
|
|
R queryByAccount(@RequestParam("account") String account) {
|
|
|
|
|
R r = new R();
|
|
|
|
|
R r = new R(); // 创建响应对象
|
|
|
|
|
// 检查账号是否为空
|
|
|
|
|
if (StringUtil.isEmpty(account)) {
|
|
|
|
|
return r.setCode(4000).setMsg(HttpMsg.INVALID_PARAM);
|
|
|
|
|
return r.setCode(4000).setMsg(HttpMsg.INVALID_PARAM); // 参数不合法
|
|
|
|
|
}
|
|
|
|
|
List<Order> orders = orderService.queryByAccount(account);
|
|
|
|
|
return r.setCode(2000).setData(orders);
|
|
|
|
|
// 查询订单
|
|
|
|
|
List orders = orderService.queryByAccount(account);
|
|
|
|
|
return r.setCode(2000).setData(orders); // 返回订单列表
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 分页查询订单
|
|
|
|
|
* 根据查询条件和页码分页查询订单列表。
|
|
|
|
|
*
|
|
|
|
|
* @param page 页码
|
|
|
|
|
* @param searchKey 查询条件
|
|
|
|
|
* @param account 用户账号
|
|
|
|
|
* @return 分页后的订单列表
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/find")
|
|
|
|
|
R find(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey, @RequestParam("account") String account) {
|
|
|
|
|
R r = new R();
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
List<Order> orders = orderService.find(searchKey, account);
|
|
|
|
|
R r = new R(); // 创建响应对象
|
|
|
|
|
Map map = new HashMap<>(); // 创建返回数据的Map
|
|
|
|
|
// 查询订单列表
|
|
|
|
|
List orders = orderService.find(searchKey, account);
|
|
|
|
|
if (orders == null) {
|
|
|
|
|
return r.setCode(2000);
|
|
|
|
|
return r.setCode(2000); // 没有查询到数据
|
|
|
|
|
}
|
|
|
|
|
// 将订单列表放入Map
|
|
|
|
|
map.put("items", orders);
|
|
|
|
|
map.put("len", orders.size());
|
|
|
|
|
return r.setCode(2000).setData(map);
|
|
|
|
|
return r.setCode(2000).setData(map); // 返回分页后的订单列表
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 分页查询所有订单
|
|
|
|
|
* 查询所有订单,并根据页码分页。
|
|
|
|
|
*
|
|
|
|
|
* @param page 页码
|
|
|
|
|
* @param searchKey 查询条件
|
|
|
|
|
* @return 分页后的订单列表
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/findAll")
|
|
|
|
|
R findAll(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) {
|
|
|
|
|
R r = new R();
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
List<Order> orders = orderService.findAll(searchKey);
|
|
|
|
|
R r = new R(); // 创建响应对象
|
|
|
|
|
Map map = new HashMap<>(); // 创建返回数据的Map
|
|
|
|
|
// 查询所有订单
|
|
|
|
|
List orders = orderService.findAll(searchKey);
|
|
|
|
|
if (orders == null) {
|
|
|
|
|
return r.setCode(2000);
|
|
|
|
|
return r.setCode(2000); // 没有查询到数据
|
|
|
|
|
}
|
|
|
|
|
List<Order> items = orders.size() >= page * Constant.PAGE_SIZE ?
|
|
|
|
|
orders.subList((page - 1) * Constant.PAGE_SIZE, page * Constant.PAGE_SIZE)
|
|
|
|
|
: orders.subList((page - 1) * Constant.PAGE_SIZE, orders.size());
|
|
|
|
|
int len = orders.size() % Constant.PAGE_SIZE == 0 ? orders.size() / Constant.PAGE_SIZE
|
|
|
|
|
: (orders.size() / Constant.PAGE_SIZE + 1);
|
|
|
|
|
List<OrderVo> vos = new ArrayList<>();
|
|
|
|
|
// 计算分页信息
|
|
|
|
|
int totalSize = orders.size(); // 总记录数
|
|
|
|
|
int pageSize = Constant.PAGE_SIZE; // 每页大小
|
|
|
|
|
int totalPages = (totalSize + pageSize - 1) / pageSize; // 总页数
|
|
|
|
|
// 获取当前页的数据
|
|
|
|
|
int start = (page - 1) * pageSize;
|
|
|
|
|
int end = Math.min(start + pageSize, totalSize);
|
|
|
|
|
List<Order> items = orders.subList(start, end);
|
|
|
|
|
// 将订单信息转换为OrderVo
|
|
|
|
|
List vos = new ArrayList<>();
|
|
|
|
|
for (Order item : items) {
|
|
|
|
|
User user = userDao.queryById(item.getUid());
|
|
|
|
|
OrderVo vo = new OrderVo();
|
|
|
|
|
User user = userDao.queryById(item.getUid()); // 查询用户信息
|
|
|
|
|
OrderVo vo = new OrderVo(); // 创建OrderVo对象
|
|
|
|
|
vo.setAddress(user.getAddress()).setPhone(user.getPhone()).setUsername(user.getName())
|
|
|
|
|
.setAmount(item.getAmount()).setFlower(item.getFlower()).setId(item.getId())
|
|
|
|
|
.setUid(item.getUid()).setOrder_guid(item.getOrder_guid()).setPrice(item.getPrice())
|
|
|
|
|
.setState(item.getState());
|
|
|
|
|
vos.add(vo);
|
|
|
|
|
vos.add(vo); // 添加到列表
|
|
|
|
|
}
|
|
|
|
|
// 将分页信息和订单列表放入Map
|
|
|
|
|
map.put("items", vos);
|
|
|
|
|
map.put("len", len);
|
|
|
|
|
return r.setCode(2000).setData(map);
|
|
|
|
|
map.put("len", totalPages);
|
|
|
|
|
return r.setCode(2000).setData(map); // 返回分页后的订单列表
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 更新订单
|
|
|
|
|
* 更新指定订单的信息。
|
|
|
|
|
*
|
|
|
|
|
* @param order 订单信息
|
|
|
|
|
* @return 更新结果
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/update")
|
|
|
|
|
R update(@RequestBody Order order) {
|
|
|
|
|
R r = new R();
|
|
|
|
|
R r = new R(); // 创建响应对象
|
|
|
|
|
// 调用服务层更新订单
|
|
|
|
|
int ans = orderService.update(order);
|
|
|
|
|
// 根据返回结果设置响应
|
|
|
|
|
if (ans >= 0) {
|
|
|
|
|
return r.setCode(2000).setMsg(HttpMsg.UPDATE_USER_OK);
|
|
|
|
|
return r.setCode(2000).setMsg(HttpMsg.UPDATE_USER_OK); // 更新成功
|
|
|
|
|
}
|
|
|
|
|
return r.setCode(4000).setMsg(HttpMsg.UPDATE_USER_FAILED);
|
|
|
|
|
return r.setCode(4000).setMsg(HttpMsg.UPDATE_USER_FAILED); // 更新失败
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 改变订单状态
|
|
|
|
|
* 更新指定订单的状态。
|
|
|
|
|
*
|
|
|
|
|
* @param order 订单信息
|
|
|
|
|
* @return 更新结果
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/changeState")
|
|
|
|
|
R changeState(@RequestBody Order order) {
|
|
|
|
|
orderDao.changeState(order);
|
|
|
|
|
return new R().setCode(2000).setMsg(HttpMsg.UPDATE_ORDER_OK);
|
|
|
|
|
orderDao.changeState(order); // 调用数据访问对象更新订单状态
|
|
|
|
|
return new R().setCode(2000).setMsg(HttpMsg.UPDATE_ORDER_OK); // 返回成功响应
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除订单
|
|
|
|
|
* 根据订单ID删除订单。
|
|
|
|
|
*
|
|
|
|
|
* @param id 订单ID
|
|
|
|
|
* @return 删除结果
|
|
|
|
|
*/
|
|
|
|
|
@DeleteMapping("/delete")
|
|
|
|
|
R delete(@RequestParam("id") int id) {
|
|
|
|
|
R r = new R();
|
|
|
|
|
R r = new R(); // 创建响应对象
|
|
|
|
|
// 调用服务层删除订单
|
|
|
|
|
int ans = orderService.delete(id);
|
|
|
|
|
// 根据返回结果设置响应
|
|
|
|
|
if (ans == 1) {
|
|
|
|
|
return r.setCode(2000).setMsg(HttpMsg.DELETE_USER_OK);
|
|
|
|
|
return r.setCode(2000).setMsg(HttpMsg.DELETE_USER_OK); // 删除成功
|
|
|
|
|
}
|
|
|
|
|
return r.setCode(4000).setMsg(HttpMsg.DELETE_USER_FAILED);
|
|
|
|
|
return r.setCode(4000).setMsg(HttpMsg.DELETE_USER_FAILED); // 删除失败
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|