Commit c598aed5 by 吕明尚

写预约订单到期自动更新

parent d855f56d
......@@ -2,6 +2,9 @@ package share.web.controller.system;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -38,7 +41,7 @@ public class SOrderController extends BaseController
* 查询订单列表
*/
@PreAuthorize("@ss.hasPermi('system:order:list')")
@GetMapping("/list")
@GetMapping("/query")
public TableDataInfo list(SOrder sOrder)
{
startPage();
......@@ -47,6 +50,17 @@ public class SOrderController extends BaseController
}
/**
* 查询退款订单列表
*/
@PreAuthorize("@ss.hasPermi('system:order:list')")
@GetMapping("/query")
public TableDataInfo query() {
startPage();
List<SOrder> list = sOrderService.queryList();
return getDataTable(list);
}
/**
* 导出订单列表
*/
@PreAuthorize("@ss.hasPermi('system:order:export')")
......
package share.quartz.task;
import org.omg.CORBA.ORB;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import share.common.utils.DateUtils;
import share.common.utils.StringUtils;
import share.system.domain.SOrder;
import share.system.domain.SRoom;
import share.system.domain.vo.SRoomVo;
import share.system.mapper.SRoomMapper;
import share.system.service.ISOrderService;
import share.system.service.ISRoomService;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 定时任务调度测试
......@@ -11,6 +25,10 @@ import share.common.utils.StringUtils;
@Component("ryTask")
public class RyTask
{
@Autowired
private ISOrderService orderService;
@Autowired
private SRoomMapper roomMapper;
public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
{
System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
......@@ -25,4 +43,32 @@ public class RyTask
{
System.out.println("执行无参方法");
}
//预约订单到期自动更新订单状态,更新房间状态
public void autoToStore() {
//查询所有已支付的订单
SOrder order = new SOrder();
order.setPayStatus(1);
order.setStatus(0);
order.setRefundStatus(0);
List<SOrder> sOrders = orderService.selectSOrderList(order);
if (CollectionUtils.isEmpty(sOrders)) {
return;
}
sOrders.forEach(item -> {
//判断预约开始时间是否已到期
if ((Math.abs(item.getPreStartDate().getTime() - new Date().getTime())) / (60 * 1000) == 0) {
//更改订单状态,房间状态,开始时间,结束时间
item.setStatus(1);
item.setUpdateTime(new Date());
item.setStartDate(item.getPreStartDate());
item.setEndDate(item.getPreEndDate());
orderService.updateSOrder(item);
SRoom sRoom = roomMapper.selectById(item.getRoomId());
sRoom.setStatus("2");
sRoom.setUpdateTime(new Date());
roomMapper.updateById(sRoom);
}
});
}
}
......@@ -100,4 +100,6 @@ public interface ISOrderService extends IService<SOrder>
String openDoor(Long id);
SOrder getInfoByEntity(SOrder orderParam);
List<SOrder> queryList();
}
......@@ -62,7 +62,16 @@ public class SConsumerCouponServiceImpl extends ServiceImpl<SConsumerCouponMappe
*/
@Override
public List<SConsumerCoupon> selectSConsumerCouponList(SConsumerCoupon sConsumerCoupon) {
return sConsumerCouponMapper.selectSConsumerCouponList(sConsumerCoupon);
List<SConsumerCoupon> sConsumerCoupons = sConsumerCouponMapper.selectSConsumerCouponList(sConsumerCoupon);
sConsumerCoupons.forEach(item -> {
if (item.getUseStatus().equals(0)) {
if (item.getEndDate().compareTo(new Date()) < 0) {
item.setUseStatus(2);
sConsumerCouponMapper.updateSConsumerCoupon(item);
}
}
});
return sConsumerCoupons;
}
/**
......
......@@ -278,6 +278,14 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper,SOrder> implemen
}
@Override
public List<SOrder> queryList() {
LambdaQueryWrapper<SOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SOrder::getPayStatus, 1);
queryWrapper.ne(SOrder::getRefundStatus, 0);
return sOrderMapper.selectList(queryWrapper);
}
@Override
public String openDoor(Long id) {
SOrder sOrder = sOrderMapper.selectSOrderById(id);
if (Objects.isNull(sOrder)) {
......@@ -293,6 +301,14 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper,SOrder> implemen
String password = sRoomVo.getPassword();
if(true){
//TODO 开门成功
//更改订单状态,房间状态,开始时间,结束时间
sOrder.setStatus(1);
//计算预约开始和结束时间时长
BigDecimal bigDecimal = DateUtils.differentHour(sOrder.getPreStartDate(), sOrder.getPreEndDate());
sOrder.setStartDate(new Date());
//结束时间为开始时间+预约时长
sOrder.setEndDate(DateUtils.addHours(new Date(), bigDecimal.intValue()));
sOrderMapper.updateById(sOrder);
return "开门成功";
}else{
//TODO 开门失败
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment