修复多表查询MPJLambdaWrapper<OrderInfo>...

This commit is contained in:
2024-07-11 02:12:12 +08:00
parent 74889d0d4b
commit 7a975fa91d
13 changed files with 232 additions and 124 deletions
@@ -1,6 +1,7 @@
package com.gxwebsoft.booking.controller; package com.gxwebsoft.booking.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.booking.service.FieldService; import com.gxwebsoft.booking.service.FieldService;
import com.gxwebsoft.booking.entity.Field; import com.gxwebsoft.booking.entity.Field;
@@ -146,12 +147,15 @@ public class FieldController extends BaseController {
final Set<String> collect = loginUser.getRoles().stream().map(Role::getRoleCode).collect(Collectors.toSet()); final Set<String> collect = loginUser.getRoles().stream().map(Role::getRoleCode).collect(Collectors.toSet());
collect.forEach(d -> { collect.forEach(d -> {
if(d.equals("merchant") || d.equals("merchantClerk")){ if(d.equals("merchant") || d.equals("merchantClerk")){
orderInfoService.updateBatchById(order.getOrderInfo());
order.setOrderStatus(1); order.setOrderStatus(1);
orderService.updateById(order); orderService.updateById(order);
order.getOrderInfo().forEach(v -> {
v.setOrderStatus(1); // 已核销
v.setAdultNumUse(v.getAdultNumUse() + 1); // 核销票数
orderInfoService.update(new LambdaUpdateWrapper<OrderInfo>().eq(OrderInfo::getOrderId,order.getOrderId()).set(OrderInfo::getOrderStatus,1));
});
} }
}); });
return success("核销成功"); return success("核销成功");
} }
} }
@@ -93,13 +93,15 @@ public class PeriodController extends BaseController {
// 今日订单信息 按Key分组(组合规则:日期+时间段+场馆id+场地id) // 今日订单信息 按Key分组(组合规则:日期+时间段+场馆id+场地id)
Map<String, List<OrderInfo>> collectKey; Map<String, List<OrderInfo>> collectKey;
// System.out.println("param = " + param);
List<OrderInfo> orderInfoList = orderInfoService.getTodayOrder(param); List<OrderInfo> orderInfoList = orderInfoService.getTodayOrder(param);
// System.out.println("orderInfoList = " + orderInfoList.size());
// List<OrderInfo> orderInfoList = orderInfoService.list(new LambdaQueryWrapper<OrderInfo>().eq(OrderInfo::getDateTime, param.getDateTime()).eq(OrderInfo::getMerchantId,param.getMerchantId()).gt(OrderInfo::getExpirationTime, LocalDateTime.now())); // List<OrderInfo> orderInfoList = orderInfoService.list(new LambdaQueryWrapper<OrderInfo>().eq(OrderInfo::getDateTime, param.getDateTime()).eq(OrderInfo::getMerchantId,param.getMerchantId()).gt(OrderInfo::getExpirationTime, LocalDateTime.now()));
collectKey = orderInfoList.stream().collect(Collectors.groupingBy(OrderInfo::getOrderCode)); collectKey = orderInfoList.stream().collect(Collectors.groupingBy(OrderInfo::getOrderCode));
// System.out.println("collectKey = " + collectKey);
// 查询是否含有未支付订单 // 查询是否含有未支付订单
final User loginUser = getLoginUser(); final User loginUser = getLoginUser();
if(loginUser != null){ if(loginUser != null && param.getAdmin() == null){
if (orderService.count(new LambdaQueryWrapper<Order>().eq(Order::getType,1).eq(Order::getPayStatus,0).eq(Order::getOrderStatus,0).eq(Order::getUserId,loginUser.getUserId())) > 0) { if (orderService.count(new LambdaQueryWrapper<Order>().eq(Order::getType,1).eq(Order::getPayStatus,0).eq(Order::getOrderStatus,0).eq(Order::getUserId,loginUser.getUserId())) > 0) {
return fail("您还有未支付订单,请先支付",null); return fail("您还有未支付订单,请先支付",null);
} }
@@ -120,7 +122,6 @@ public class PeriodController extends BaseController {
} }
redisUtil.set(param.getMerchantId().toString(),fields); redisUtil.set(param.getMerchantId().toString(),fields);
list.forEach(d -> { list.forEach(d -> {
// 查询可预定场地 // 查询可预定场地
final String string = redisUtil.get(param.getMerchantId().toString()); final String string = redisUtil.get(param.getMerchantId().toString());
@@ -128,11 +129,11 @@ public class PeriodController extends BaseController {
final List<Field> fieldList = JSONObject.parseArray(string, Field.class); final List<Field> fieldList = JSONObject.parseArray(string, Field.class);
fieldList.forEach(f -> { fieldList.forEach(f -> {
final String key = getKey(param.getDateTime().concat(d.getTimePeriod().concat(d.getMerchantId().toString()).concat(f.getFieldId().toString()))); final String key = getKey(param.getDateTime().concat(d.getTimePeriod().concat(d.getMerchantId().toString()).concat(f.getFieldId().toString())));
// System.out.println("key = " + key);
final List<OrderInfo> orderInfos = collectKey.get(key); final List<OrderInfo> orderInfos = collectKey.get(key);
if (!CollectionUtils.isEmpty(orderInfos)) { if (!CollectionUtils.isEmpty(orderInfos)) {
final OrderInfo orderInfo = orderInfos.get(0); final OrderInfo orderInfo = orderInfos.get(0);
if (orderInfo.getOrderCode().equals(key)) { if (orderInfo.getOrderCode().equals(key)) {
System.out.println("f.getNum = " + f.getNum());
if(f.getIsRepeat().equals(0)){ if(f.getIsRepeat().equals(0)){
f.setSold(true); f.setSold(true);
} }
@@ -213,7 +213,6 @@ public class UserInvoiceController extends BaseController {
return fail("发票开具失败"); return fail("发票开具失败");
} }
@ApiOperation("根据id查询发票") @ApiOperation("根据id查询发票")
@GetMapping("/showInvoice/{orderId}") @GetMapping("/showInvoice/{orderId}")
public ApiResult<String> showInvoice(@PathVariable("orderId") Integer orderId) { public ApiResult<String> showInvoice(@PathVariable("orderId") Integer orderId) {
@@ -1,6 +1,8 @@
package com.gxwebsoft.booking.param; package com.gxwebsoft.booking.param;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableField;
import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam; import com.gxwebsoft.common.core.web.BaseParam;
@@ -88,4 +90,8 @@ public class PeriodParam extends BaseParam {
@QueryField(type = QueryType.EQ) @QueryField(type = QueryType.EQ)
private String merchantCode; private String merchantCode;
@ApiModelProperty(value = "是否管理端请求")
@QueryField(type = QueryType.EQ)
private Boolean admin;
} }
@@ -16,6 +16,7 @@ import com.gxwebsoft.booking.entity.UserCard;
import com.gxwebsoft.booking.param.UserCardParam; import com.gxwebsoft.booking.param.UserCardParam;
import com.gxwebsoft.booking.service.CardService; import com.gxwebsoft.booking.service.CardService;
import com.gxwebsoft.booking.service.UserCardService; import com.gxwebsoft.booking.service.UserCardService;
import com.gxwebsoft.common.core.exception.BusinessException;
import com.gxwebsoft.common.core.security.JwtUtil; import com.gxwebsoft.common.core.security.JwtUtil;
import com.gxwebsoft.common.core.utils.CommonUtil; import com.gxwebsoft.common.core.utils.CommonUtil;
import com.gxwebsoft.common.core.utils.RequestUtil; import com.gxwebsoft.common.core.utils.RequestUtil;
@@ -161,6 +162,19 @@ public class OrderController extends BaseController {
if (StrUtil.isBlank(order.getComments())) { if (StrUtil.isBlank(order.getComments())) {
return fail("商品描述(必填)"); return fail("商品描述(必填)");
} }
// 判断场地是否被抢占
if (order.getType().equals(1)) {
order.getOrderInfo().forEach(d -> {
if (orderInfoService.count(new LambdaUpdateWrapper<OrderInfo>()
.eq(OrderInfo::getPayStatus,1)
.eq(OrderInfo::getOrderCode,d.getOrderCode())) > 0) {
order.setScene(1234);
}
});
if(order.getScene().equals(1234)){
return fail("场地不存在");
}
}
// 微信支付(商品金额不能为0) // 微信支付(商品金额不能为0)
// if (order.getPayType().equals(1)) { // if (order.getPayType().equals(1)) {
// if (order.getTotalPrice().compareTo(BigDecimal.ZERO) == 0) { // if (order.getTotalPrice().compareTo(BigDecimal.ZERO) == 0) {
@@ -221,6 +235,7 @@ public class OrderController extends BaseController {
d.setUserId(getLoginUser().getUserId()); d.setUserId(getLoginUser().getUserId());
d.setDateTime(d.getDateTime()); d.setDateTime(d.getDateTime());
d.setExpirationTime(order.getExpirationTime()); d.setExpirationTime(order.getExpirationTime());
d.setTenantId(order.getTenantId());
}); });
orderInfoService.saveBatch(order.getOrderInfo()); orderInfoService.saveBatch(order.getOrderInfo());
} }
@@ -9,11 +9,19 @@ import com.gxwebsoft.shop.param.UsersParam;
import com.gxwebsoft.shop.service.UsersService; import com.gxwebsoft.shop.service.UsersService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 用户控制器 * 用户控制器
@@ -134,5 +142,35 @@ public class UsersController extends BaseController {
} }
return fail("删除失败"); return fail("删除失败");
} }
@ApiOperation("上传身份证")
@GetMapping("/idCardOcr")
public ApiResult<?> idCardOcr() throws IOException {
String url = "https://idcardocrc.shumaidata.com/getidcardocrc";
String appCode = "1e74aff57b2542359290e877975b8377";
Map<String, String> params = new HashMap<>();
//image 和 url 二选一 ,选择其中一个时,请注释另外一个参数,默认使用image
//params.put("url", "http://.../image.jpg");
params.put("url", "https://oss.wsdns.cn/20240710/56cef2c4269d4ec7967eedbac6765254.jpeg");
String result = postForm(appCode, url, params);
System.out.println(result);
return success(result);
}
public static String postForm(String appCode, String url, Map<String, String> params) throws IOException {
OkHttpClient client = new OkHttpClient.Builder().build();
FormBody.Builder formbuilder = new FormBody.Builder();
Iterator<String> it = params.keySet().iterator();
while (it.hasNext()) {
String key = it.next();
formbuilder.add(key, params.get(key));
}
FormBody body = formbuilder.build();
Request request = new Request.Builder().url(url).addHeader("Authorization", "APPCODE " + appCode).post(body).build();
Response response = client.newCall(request).execute();
System.out.println("返回状态码" + response.code() + ",message:" + response.message());
String result = response.body().string();
return result;
}
} }
@@ -131,7 +131,8 @@ public class WxPayNotifyController extends BaseController {
System.out.println("实际付款金额 = " + order.getPayPrice()); System.out.println("实际付款金额 = " + order.getPayPrice());
orderService.updateByOutTradeNo(order); orderService.updateByOutTradeNo(order);
// 6. TODO 同步更新订单明细的支付状态 // 6. TODO 同步更新订单明细的支付状态
orderInfoService.updateByOutTradeNo(order); orderInfoService.update(new LambdaUpdateWrapper<OrderInfo>().eq(OrderInfo::getOrderId,order.getOrderId()).set(OrderInfo::getPayStatus,1));
// orderInfoService.updateByOutTradeNo(order);
// 7.同步会员卡状态 // 7.同步会员卡状态
if(order.getType().equals(2)){ if(order.getType().equals(2)){
final UserCard userCard = userCardService.getById(order.getCardId()); final UserCard userCard = userCardService.getById(order.getCardId());
@@ -68,11 +68,16 @@ public class OrderInfo implements Serializable {
@ApiModelProperty(value = "儿童人数") @ApiModelProperty(value = "儿童人数")
private Integer childrenNum; private Integer childrenNum;
@ApiModelProperty(value = "已核销的成人票数")
private Integer adultNumUse;
@ApiModelProperty(value = "已核销的儿童票数")
private Integer childrenNumUse;
@ApiModelProperty(value = "0 未付款 1已付款,2无需付款或占用状态") @ApiModelProperty(value = "0 未付款 1已付款,2无需付款或占用状态")
private Integer payStatus; private Integer payStatus;
@ApiModelProperty(value = "0未使用,1已完成,2已取消,3取消中,4退款申请中,5退款被拒绝,6退款成功,7客户端申请退款") @ApiModelProperty(value = "0未使用,1已完成,2已取消,3取消中,4退款申请中,5退款被拒绝,6退款成功,7客户端申请退款")
@TableField(exist = false)
private Integer orderStatus; private Integer orderStatus;
@ApiModelProperty(value = "是否免费:0收费、1免费") @ApiModelProperty(value = "是否免费:0收费、1免费")
@@ -105,7 +105,7 @@
<!-- 更新订单状态 --> <!-- 更新订单状态 -->
<select id="updateByOutTradeNo" resultType="com.gxwebsoft.shop.entity.OrderInfo"> <select id="updateByOutTradeNo" resultType="com.gxwebsoft.shop.entity.OrderInfo">
UPDATE shop_order_info SET pay_status = 2,expiration_time = #{param.expirationTime} WHERE order_id = #{param.orderId} UPDATE shop_order_info SET pay_status = 1,expiration_time = #{param.expirationTime} WHERE order_id = #{param.orderId}
</select> </select>
</mapper> </mapper>
@@ -1,21 +1,17 @@
package com.gxwebsoft.shop.service.impl; package com.gxwebsoft.shop.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.gxwebsoft.booking.param.PeriodParam; import com.gxwebsoft.booking.param.PeriodParam;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.shop.entity.ChatConversation;
import com.gxwebsoft.shop.entity.Order;
import com.gxwebsoft.shop.mapper.OrderInfoMapper;
import com.gxwebsoft.shop.service.OrderInfoService;
import com.gxwebsoft.shop.entity.OrderInfo;
import com.gxwebsoft.shop.param.OrderInfoParam;
import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.shop.entity.Order;
import com.gxwebsoft.shop.entity.OrderInfo;
import com.gxwebsoft.shop.mapper.OrderInfoMapper;
import com.gxwebsoft.shop.param.OrderInfoParam;
import com.gxwebsoft.shop.service.OrderInfoService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
@@ -65,9 +61,9 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
.select(Order::getOrderStatus) .select(Order::getOrderStatus)
.leftJoin(Order.class,Order::getOrderId,OrderInfo::getOrderId) .leftJoin(Order.class,Order::getOrderId,OrderInfo::getOrderId)
.eq(OrderInfo::getDateTime,param.getDateTime()) .eq(OrderInfo::getDateTime,param.getDateTime())
.eq(OrderInfo::getMerchantId,param.getMerchantId()) .eq(Order::getPayStatus,1)
.eq(Order::getOrderStatus,0) .eq(OrderInfo::getMerchantId,param.getMerchantId());
.gt(OrderInfo::getExpirationTime, LocalDateTime.now()); // .gt(OrderInfo::getExpirationTime, LocalDateTime.now());
return baseMapper.selectJoinList(OrderInfo.class, mpjLambdaWrapper); return baseMapper.selectJoinList(OrderInfo.class, mpjLambdaWrapper);
} }
@@ -7,6 +7,7 @@ import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.booking.entity.UserCard; import com.gxwebsoft.booking.entity.UserCard;
import com.gxwebsoft.booking.entity.UserCardLog; import com.gxwebsoft.booking.entity.UserCardLog;
@@ -318,6 +319,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
order.setPayTime(DateUtil.date()); order.setPayTime(DateUtil.date());
order.setExpirationTime(DateUtil.offset(DateUtil.date(), DateField.YEAR, 10)); order.setExpirationTime(DateUtil.offset(DateUtil.date(), DateField.YEAR, 10));
orderService.updateById(order); orderService.updateById(order);
orderInfoService.update(new LambdaUpdateWrapper<OrderInfo>().eq(OrderInfo::getOrderId,order.getOrderId()).set(OrderInfo::getPayStatus,1));
// 更新会员卡状态 // 更新会员卡状态
if(order.getType().equals(2)){ if(order.getType().equals(2)){
final UserCard userCard = userCardService.getById(order.getCardId()); final UserCard userCard = userCardService.getById(order.getCardId());
@@ -375,6 +377,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
order.setPayTime(DateUtil.date()); order.setPayTime(DateUtil.date());
order.setExpirationTime(DateUtil.offset(DateUtil.date(), DateField.YEAR, 10)); order.setExpirationTime(DateUtil.offset(DateUtil.date(), DateField.YEAR, 10));
orderService.updateById(order); orderService.updateById(order);
orderInfoService.update(new LambdaUpdateWrapper<OrderInfo>().eq(OrderInfo::getOrderId,order.getOrderId()).set(OrderInfo::getPayStatus,1));
return true; return true;
} }
// //
@@ -2,17 +2,15 @@ package com.gxwebsoft.shop.task;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gxwebsoft.cms.entity.ServerTimeVO;
import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.shop.entity.Order; import com.gxwebsoft.shop.entity.Order;
import com.gxwebsoft.shop.entity.OrderInfo; import com.gxwebsoft.shop.entity.OrderInfo;
import com.gxwebsoft.shop.mapper.OrderMapper;
import com.gxwebsoft.shop.param.OrderParam;
import com.gxwebsoft.shop.service.OrderInfoService; import com.gxwebsoft.shop.service.OrderInfoService;
import com.gxwebsoft.shop.service.OrderService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@@ -29,15 +27,49 @@ import java.util.List;
@RestController @RestController
@RequestMapping("/api/shop/order-info") @RequestMapping("/api/shop/order-info")
public class OrderInfoTask extends BaseController { public class OrderInfoTask extends BaseController {
@Resource
private OrderService orderService;
@Resource @Resource
private OrderInfoService orderInfoService; private OrderInfoService orderInfoService;
/** /**
* 自动处理过期订单任务 * 自动处理过期订单任务
*/ */
// @Scheduled(cron="*/10 * * * * *") @Scheduled(cron="*/10 * * * * *")
// @Transactional(rollbackFor = {Exception.class}) @Transactional(rollbackFor = {Exception.class})
public void settledExpirationOrder() { public void settledExpirationOrder() {
// final List<OrderInfo> list = orderInfoService.list(new LambdaQueryWrapper<OrderInfo>().eq(OrderInfo::getOrderStatus, 0)); final Order order = new Order();
final int hour = DateUtil.hour(DateUtil.date(), true);
final int minute = DateUtil.minute(DateUtil.date());
final int second = DateUtil.second(DateUtil.date());
final String startTime = String.format("%02d", hour).concat(":").concat(String.format("%02d", minute)).concat(":").concat(String.format("%02d", second));
final List<OrderInfo> list = orderInfoService.list(new LambdaQueryWrapper<OrderInfo>().eq(OrderInfo::getOrderStatus, 0).ne(OrderInfo::getMerchantId,3028).eq(OrderInfo::getDateTime,DateUtil.today()).lt(OrderInfo::getStartTime,startTime));
list.forEach(d -> {
d.setOrderStatus(1);
order.setOrderId(d.getOrderId());
});
orderInfoService.updateBatchById(list);
order.setOrderStatus(1);
orderService.updateById(order);
System.out.println("自动核销订单 = " + list.size());
}
/**
* 自动处理过期订单任务(游泳馆专用)
* Scheduled(cron="0 30 21 * * ?")
*/
@Scheduled(cron="*/30 * * * * *")
@Transactional(rollbackFor = {Exception.class})
public void settledExpirationOrderBy3028() {
final Order order = new Order();
final List<OrderInfo> list = orderInfoService.list(new LambdaQueryWrapper<OrderInfo>().eq(OrderInfo::getOrderStatus, 0).eq(OrderInfo::getMerchantId,3028).eq(OrderInfo::getDateTime,DateUtil.today()).lt(OrderInfo::getStartTime,"21:30:00"));
list.forEach(d -> {
d.setOrderStatus(1);
order.setOrderId(d.getOrderId());
});
orderInfoService.updateBatchById(list);
if(!CollectionUtils.isEmpty(list)){
orderService.updateById(order);
}
System.out.println("自动核销订单(游泳馆) = " + list.size());
} }
} }
@@ -5,6 +5,7 @@ import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.shop.entity.Order; import com.gxwebsoft.shop.entity.Order;
import com.gxwebsoft.shop.mapper.OrderMapper; import com.gxwebsoft.shop.mapper.OrderMapper;
import com.gxwebsoft.shop.param.OrderParam; import com.gxwebsoft.shop.param.OrderParam;
import com.gxwebsoft.shop.service.OrderService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -24,6 +25,8 @@ import java.util.List;
@RestController @RestController
@RequestMapping("/api/shop/order") @RequestMapping("/api/shop/order")
public class OrderTask extends BaseController { public class OrderTask extends BaseController {
@Resource
private OrderService orderService;
@Resource @Resource
private OrderMapper orderMapper; private OrderMapper orderMapper;
/** /**
@@ -37,8 +40,13 @@ public class OrderTask extends BaseController {
p.setExpirationTime(DateUtil.date()); p.setExpirationTime(DateUtil.date());
final List<Order> list = orderMapper.selectExpirationOrder(p); final List<Order> list = orderMapper.selectExpirationOrder(p);
list.forEach(d -> { list.forEach(d -> {
System.out.println("任务1:处理未支付订单超时自动关闭 = " + d); d.setOrderStatus(2);
orderMapper.updateExpirationOrder(d.getOrderId());
}); });
orderService.updateBatchById(list);
System.out.println("自动处理过期订单 = " + list.size());
// list.forEach(d -> {
// System.out.println("任务1:处理未支付订单超时自动关闭 = " + d);
// orderMapper.updateExpirationOrder(d.getOrderId());
// });
} }
} }