修复多表查询MPJLambdaWrapper<OrderInfo>...
This commit is contained in:
@@ -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());
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user