Browse Source

提交物流管理

cangku
Houpn 3 years ago
parent
commit
9fd77c8e92
  1. 1
      hiver-core/src/main/java/cc/hiver/core/dao/OrderDao.java
  2. 4
      hiver-core/src/main/java/cc/hiver/core/entity/Order.java
  3. 4
      hiver-core/src/main/java/cc/hiver/core/entity/Worker.java
  4. 5
      hiver-core/src/main/java/cc/hiver/core/service/OrderService.java
  5. 8
      hiver-core/src/main/java/cc/hiver/core/serviceimpl/OrderServiceImpl.java
  6. 56
      hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/OrderController.java

1
hiver-core/src/main/java/cc/hiver/core/dao/OrderDao.java

@ -11,5 +11,6 @@ import cc.hiver.core.entity.Order;
*/ */
public interface OrderDao extends HiverBaseDao<Order, String> { public interface OrderDao extends HiverBaseDao<Order, String> {
Order findByOrderId(String orderId);
} }

4
hiver-core/src/main/java/cc/hiver/core/entity/Order.java

@ -94,7 +94,7 @@ public class Order implements Serializable {
*/ */
@ApiModelProperty("订单是否超时") @ApiModelProperty("订单是否超时")
@Column(name = "is_timeout") @Column(name = "is_timeout")
private Boolean timeout; private String timeout;
/** /**
* 订单状态 * 订单状态
@ -155,7 +155,7 @@ public class Order implements Serializable {
/** /**
* 订单工修改时间 * 关联订单工
*/ */
@ManyToOne(targetEntity = Worker.class) @ManyToOne(targetEntity = Worker.class)
@NotFound(action= NotFoundAction.IGNORE) @NotFound(action= NotFoundAction.IGNORE)

4
hiver-core/src/main/java/cc/hiver/core/entity/Worker.java

@ -116,8 +116,10 @@ public class Worker implements Serializable {
/** /**
* 订单与抢单工映射关系 * 订单与抢单工映射关系
*
* 多端中的列键值外键指向一端 一对多的单向关联我们还是推荐使用一张中间表来建立关系
*/ */
@OneToMany(targetEntity = Order.class,mappedBy = "orderByWorker") @OneToMany(targetEntity = Order.class,mappedBy = "orderByWorker",cascade = CascadeType.ALL,fetch = FetchType.EAGER)
private List<Order> order; private List<Order> order;
} }

5
hiver-core/src/main/java/cc/hiver/core/service/OrderService.java

@ -3,7 +3,6 @@ package cc.hiver.core.service;
import cc.hiver.core.base.HiverBaseService; import cc.hiver.core.base.HiverBaseService;
import cc.hiver.core.common.vo.SearchVo; import cc.hiver.core.common.vo.SearchVo;
import cc.hiver.core.entity.Order; import cc.hiver.core.entity.Order;
import cc.hiver.core.entity.Order;
import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheConfig;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
@ -21,11 +20,13 @@ public interface OrderService extends HiverBaseService<Order, String> {
/** /**
* 多条件分页获取用户 * 多条件分页获取用户
* *
* @param Order * @param
* @param searchVo * @param searchVo
* @param pageable * @param pageable
* @return * @return
*/ */
Page<Order> findByCondition(Order order, SearchVo searchVo, Pageable pageable); Page<Order> findByCondition(Order order, SearchVo searchVo, Pageable pageable);
Order findByOrderId(String orderId);
} }

8
hiver-core/src/main/java/cc/hiver/core/serviceimpl/OrderServiceImpl.java

@ -5,6 +5,7 @@ import cc.hiver.core.common.vo.SearchVo;
import cc.hiver.core.dao.OrderDao; import cc.hiver.core.dao.OrderDao;
import cc.hiver.core.entity.Order; import cc.hiver.core.entity.Order;
import cc.hiver.core.entity.User;
import cc.hiver.core.service.OrderService; import cc.hiver.core.service.OrderService;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@ -96,4 +97,11 @@ public class OrderServiceImpl implements OrderService {
} }
}, pageable); }, pageable);
} }
@Override
public Order findByOrderId(String orderId) {
return orderDao.findByOrderId(orderId);
}
} }

56
hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/OrderController.java

@ -66,8 +66,9 @@ public class OrderController {
private EntityManager entityManager; private EntityManager entityManager;
/**
* 该接口即可展示实时物流管理页面可复用
*/
@RequestMapping(value = "/getByCondition", method = RequestMethod.GET) @RequestMapping(value = "/getByCondition", method = RequestMethod.GET)
@ApiOperation(value = "多条件分页获取订单列表") @ApiOperation(value = "多条件分页获取订单列表")
public Result<Page<Order>> getByCondition(Order order, public Result<Page<Order>> getByCondition(Order order,
@ -111,4 +112,55 @@ public class OrderController {
} }
/**
* 需要进行如下判定
* 1.当前抢单工的抢单状态需进行查验非正常无法进行抢单
* 2.正常状态下判定当前抢单工押金余额是否充足不足时需要将当前扛包工状态自动修正为不可接单状态同时当前订单无法抢购
* 3.正常抢单情况下需要在redis中设置抢单后的剩余押金金额要存在抢单锁机制实时更新余额
*/
@RequestMapping(value = "/rush/order/{orderId}", method = RequestMethod.POST)
@ApiOperation(value = "抢单接口", notes = "需要通过下单编号获取订单信息后进行绑定")
public Result rush(Order u,
@RequestParam(required = false) String[] roleIds) {
orderService.update(u);
return ResultUtil.success("抢单成功");
}
/**
* 需要进行如下判定订单/抢单工/抢单时间/是否超时
* 1.定时任务轮训修正订单是否超时当前抢单时间和当前时间做比较
* 2.当前解绑操作暂定为 超时后手工解绑创建订单人享有解绑权限解绑后订单可重新进行抢单但是否需要标注将原接单人不可见
*
*/
@RequestMapping(value = "/unbind/order/{orderId}", method = RequestMethod.POST)
@ApiOperation(value = "解绑订单接口", notes = "需要通过下单编号获取订单信息后进行解绑")
public Result revoke(Order u,
@ApiParam("订单唯一id标识") @PathVariable String orderId) {
Order o = orderService.findById(orderId);
o.setOrderByWorker("");
o.setOrderByWorkertime(null);
orderService.update(o);
return ResultUtil.success("解绑成功");
}
/**
* 该接口即可展示实时物流管理页面可复用
*/
@RequestMapping(value = "/ow/getAllByCondition", method = RequestMethod.GET)
@ApiOperation(value = "多条件分页获取订单列表")
public Result<Page<Order>> getAllByCondition(Order order,
SearchVo searchVo,
PageVo pageVo) {
Page<Order> page = orderService.findByCondition(order, searchVo, PageUtil.initPage(pageVo));
return new ResultUtil<Page<Order>>().setData(page);
}
} }

Loading…
Cancel
Save