Explorar o código

添加三大运营商

liu hai 10 meses
pai
achega
0abcbb81f2

+ 1 - 0
db/update_250814.sql

@@ -0,0 +1 @@
+ALTER TABLE tb_order ADD id_card varchar(30)  COMMENT '身份证号';

+ 3 - 0
src/main/java/com/sqx/modules/order/entity/TbOrder.java

@@ -306,4 +306,7 @@ public class TbOrder implements Serializable {
     @ApiModelProperty("完成订单时间")
     @ApiModelProperty("完成订单时间")
     @TableField(exist = false)
     @TableField(exist = false)
     private String finishTime;
     private String finishTime;
+
+    @ApiModelProperty("身份证号")
+    private String idCard;
 }
 }

+ 43 - 12
src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java

@@ -65,6 +65,7 @@ import com.sqx.modules.goods.entity.Goods;
 import com.sqx.modules.goods.entity.GoodsShop;
 import com.sqx.modules.goods.entity.GoodsShop;
 import com.sqx.modules.goods.entity.GoodsShopRelevancy;
 import com.sqx.modules.goods.entity.GoodsShopRelevancy;
 import com.sqx.modules.goods.entity.GoodsSku;
 import com.sqx.modules.goods.entity.GoodsSku;
+import com.sqx.modules.goods.service.GoodsShopService;
 import com.sqx.modules.integral.dao.UserIntegralDao;
 import com.sqx.modules.integral.dao.UserIntegralDao;
 import com.sqx.modules.integral.dao.UserIntegralDetailsDao;
 import com.sqx.modules.integral.dao.UserIntegralDetailsDao;
 import com.sqx.modules.integral.entity.UserIntegralDetails;
 import com.sqx.modules.integral.entity.UserIntegralDetails;
@@ -98,7 +99,9 @@ import com.sqx.modules.pay.service.PayDetailsService;
 import com.sqx.modules.pay.service.WxErrService;
 import com.sqx.modules.pay.service.WxErrService;
 import com.sqx.modules.pay.vo.AliPayTransactionsParam;
 import com.sqx.modules.pay.vo.AliPayTransactionsParam;
 import com.sqx.modules.pay.vo.PayTransactionsVO;
 import com.sqx.modules.pay.vo.PayTransactionsVO;
+import com.sqx.modules.shop.entity.ShopType;
 import com.sqx.modules.shop.service.ShopMessageService;
 import com.sqx.modules.shop.service.ShopMessageService;
+import com.sqx.modules.shop.service.ShopTypeService;
 import com.sqx.modules.sys.entity.SysUserEntity;
 import com.sqx.modules.sys.entity.SysUserEntity;
 import com.sqx.modules.sys.service.SysUserService;
 import com.sqx.modules.sys.service.SysUserService;
 import com.sqx.modules.utils.SenInfoCheckUtil;
 import com.sqx.modules.utils.SenInfoCheckUtil;
@@ -214,6 +217,11 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
 
     @Autowired
     @Autowired
     private EvaluateRiderService evaluateRiderService;
     private EvaluateRiderService evaluateRiderService;
+    @Autowired
+    private ShopTypeService shopTypeService;
+
+    @Autowired
+    private GoodsShopService goodsShopService;
 
 
     @Resource
     @Resource
     private RedissonClient redissonClient;
     private RedissonClient redissonClient;
@@ -457,11 +465,33 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
     @Transactional(propagation = Propagation.SUPPORTS)
     @Transactional(propagation = Propagation.SUPPORTS)
     @Override
     @Override
     public TbOrder prepareOrder(Long userId, PayOrderDTO payOrderDTO) {
     public TbOrder prepareOrder(Long userId, PayOrderDTO payOrderDTO) {
+        //        获取三大运营商的店铺id
+        List<Long> shopList = new ArrayList<>();
+        QueryWrapper<ShopType> wrapperShopType = new QueryWrapper<>();
+        wrapperShopType.eq("shop_type_name", "三大运营商");
+        ShopType shopType = shopTypeService.getOne(wrapperShopType);
+        if (ObjectUtils.isNotEmpty(shopType)) {
+            QueryWrapper<GoodsShop> wrapperGoodShop = new QueryWrapper<>();
+            wrapperGoodShop.eq("shop_type_id", shopType.getId());
+            List<GoodsShop> goodsShops = goodsShopService.list(wrapperGoodShop);
+            for (GoodsShop goodsShop : goodsShops) {
+                Long shopId = goodsShop.getShopId();
+                shopList.add(shopId);
+            }
+        }
         // 获取订单信息
         // 获取订单信息
         TbOrder parentOrder = appOrderDao.selectById(payOrderDTO.getParentId());
         TbOrder parentOrder = appOrderDao.selectById(payOrderDTO.getParentId());
         if (parentOrder == null) {
         if (parentOrder == null) {
             throw new SqxException("无效的订单id");
             throw new SqxException("无效的订单id");
         }
         }
+        if (shopList.contains(parentOrder.getShopId())) {
+            if (ObjectUtils.isEmpty(payOrderDTO.getIdCard())) {
+                throw new SqxException("请输入身份证号");
+            }else {
+                //        将身份证号设置到订单里
+                parentOrder.setIdCard(payOrderDTO.getIdCard());
+            }
+        }
 
 
         if (parentOrder.getIsPay() == 1) {
         if (parentOrder.getIsPay() == 1) {
             throw new SqxException("当前订单已支付,请勿重复支付!");
             throw new SqxException("当前订单已支付,请勿重复支付!");
@@ -1409,18 +1439,19 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 //        pages.setOptimizeCountSql(false);
 //        pages.setOptimizeCountSql(false);
 //        pages.setSearchCount(false);
 //        pages.setSearchCount(false);
 //        pages.setTotal()
 //        pages.setTotal()
-        if (org.springframework.util.StringUtils.hasText(queryDto.getEndTime())) {
-            queryDto.setEndTime(queryDto.getEndTime() + " 23:59:59");
-        }
-        // if (org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())) {
-        //     queryDto.setPayEndTime(queryDto.getPayEndTime() + " 23:59:59");
-        // }
-        if (org.springframework.util.StringUtils.hasText(queryDto.getStartTime())) {
-            queryDto.setStartTime(queryDto.getStartTime() + " 00:00:00");
-        }
-        // if (org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())) {
-        //     queryDto.setPayStartTime(queryDto.getPayStartTime() + " 00:00:00");
-        // }
+
+//        if (org.springframework.util.StringUtils.hasText(queryDto.getEndTime())) {
+//            queryDto.setEndTime(queryDto.getEndTime() + " 23:59:59");
+//        }
+//         if (org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())) {
+//             queryDto.setPayEndTime(queryDto.getPayEndTime() + " 23:59:59");
+//         }
+//        if (org.springframework.util.StringUtils.hasText(queryDto.getStartTime())) {
+//            queryDto.setStartTime(queryDto.getStartTime() + " 00:00:00");
+//        }
+//         if (org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())) {
+//             queryDto.setPayStartTime(queryDto.getPayStartTime() + " 00:00:00");
+//         }
         IPage<TbOrder> tbOrderIPage = appOrderDao.selectAllOrderAdmin(pages, queryDto);
         IPage<TbOrder> tbOrderIPage = appOrderDao.selectAllOrderAdmin(pages, queryDto);
         for (int i = 0; i < tbOrderIPage.getRecords().size(); i++) {
         for (int i = 0; i < tbOrderIPage.getRecords().size(); i++) {
             List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>()
             List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>()

+ 3 - 0
src/main/java/com/sqx/modules/pay/dto/PayOrderDTO.java

@@ -45,4 +45,7 @@ public class PayOrderDTO {
     @ApiModelProperty("期待送达时间 yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty("期待送达时间 yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date expectDeliveryTime;
     private Date expectDeliveryTime;
+
+    @ApiModelProperty("身份证号")
+    private String idCard;
 }
 }

+ 28 - 2
src/main/java/com/sqx/scheduler/order/OrderScheduler.java

@@ -2,6 +2,8 @@ package com.sqx.scheduler.order;
 
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ekyong.www.pay.pay.qrcode.api.RhtQrcodePayApi;
 import com.ekyong.www.pay.pay.qrcode.api.RhtQrcodePayApi;
@@ -10,6 +12,8 @@ import com.ekyong.www.pay.pay.qrcode.bean.QrcodeQueryResponseBean;
 import com.github.wxpay.sdk.WXPay;
 import com.github.wxpay.sdk.WXPay;
 import com.sqx.modules.common.entity.CommonInfo;
 import com.sqx.modules.common.entity.CommonInfo;
 import com.sqx.modules.common.service.CommonInfoService;
 import com.sqx.modules.common.service.CommonInfoService;
+import com.sqx.modules.goods.entity.GoodsShop;
+import com.sqx.modules.goods.service.GoodsShopService;
 import com.sqx.modules.order.entity.TbOrder;
 import com.sqx.modules.order.entity.TbOrder;
 import com.sqx.modules.order.service.AppOrderService;
 import com.sqx.modules.order.service.AppOrderService;
 import com.sqx.modules.pay.config.WXConfig;
 import com.sqx.modules.pay.config.WXConfig;
@@ -17,7 +21,10 @@ import com.sqx.modules.pay.config.WechatPayConfig;
 import com.sqx.modules.pay.entity.PayDetails;
 import com.sqx.modules.pay.entity.PayDetails;
 import com.sqx.modules.pay.enums.PayStateEnums;
 import com.sqx.modules.pay.enums.PayStateEnums;
 import com.sqx.modules.pay.service.PayDetailsService;
 import com.sqx.modules.pay.service.PayDetailsService;
+import com.sqx.modules.shop.entity.ShopType;
+import com.sqx.modules.shop.service.ShopTypeService;
 import com.sqx.scheduler.config.SchedulerLock;
 import com.sqx.scheduler.config.SchedulerLock;
+import io.swagger.models.auth.In;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RLock;
 import org.redisson.api.RLock;
@@ -52,6 +59,10 @@ public class OrderScheduler {
     private final CommonInfoService commonInfoService;
     private final CommonInfoService commonInfoService;
     private final PayDetailsService payDetailsService;
     private final PayDetailsService payDetailsService;
 
 
+    private final ShopTypeService shopTypeService;
+
+    private final GoodsShopService goodsShopService;
+
     private final static String RHT_PAY_BASE_URL = "https://api.ekbuyclub.com";
     private final static String RHT_PAY_BASE_URL = "https://api.ekbuyclub.com";
 
 
     /**
     /**
@@ -152,12 +163,27 @@ public class OrderScheduler {
             log.info("自动完成订单任务开始运行");
             log.info("自动完成订单任务开始运行");
             CommonInfo one = commonInfoService.findOne(268);
             CommonInfo one = commonInfoService.findOne(268);
             DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
             DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+//            查询三大运营商的店铺
+            List<Long> shopList = new ArrayList<>();
+            QueryWrapper<ShopType> wrapperShopType = new QueryWrapper<>();
+            wrapperShopType.eq("shop_type_name", "三大运营商");
+            ShopType shopType = shopTypeService.getOne(wrapperShopType);
+            if (ObjectUtils.isNotEmpty(shopType)) {
+                QueryWrapper<GoodsShop> wrapperGoodShop = new QueryWrapper<>();
+                wrapperGoodShop.eq("shop_type_id", shopType.getId());
+                List<GoodsShop> goodsShops = goodsShopService.list(wrapperGoodShop);
+                for (GoodsShop goodsShop : goodsShops) {
+                    Long shopId = goodsShop.getShopId();
+                    shopList.add(shopId);
+                }
+            }
             // 查询所有 待取餐/派送中 状态的订单
             // 查询所有 待取餐/派送中 状态的订单
             QueryWrapper<TbOrder> queryWrapper = new QueryWrapper<>();
             QueryWrapper<TbOrder> queryWrapper = new QueryWrapper<>();
             queryWrapper.eq("status", 3);
             queryWrapper.eq("status", 3);
+            queryWrapper.notIn(shopList.size()>0,"shop_id",shopList);
             List<TbOrder> orders = orderService.list(queryWrapper);
             List<TbOrder> orders = orderService.list(queryWrapper);
-
-            for (TbOrder order: orders) {
+            for (TbOrder order : orders) {
                 try {
                 try {
                     LocalDateTime updateTime = LocalDateTime.parse(order.getUpdateTime(), df);
                     LocalDateTime updateTime = LocalDateTime.parse(order.getUpdateTime(), df);
                     // 计算当前订单什么时候超时完成
                     // 计算当前订单什么时候超时完成