From 13bf32fd3427b2571f718596fa2dc7227a92f0c0 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 10 十二月 2024 17:50:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java           |    4 +
 ruoyi-modules/ruoyi-job/pom.xml                                                                           |   12 ++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java |    1 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianSubscribeController.java     |    8 --
 ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/TechnicianSubscribe.java                         |   28 +++++++
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/PointSetting.java                      |   23 ++---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java                    |   15 ++-
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java      |    6 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java                |   21 -----
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TechnicianClient.java             |    3 
 ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java                              |   11 ++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/CommissionController.java              |   21 +++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java  |   27 +++---
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/TechnicianClientFallbackFactory.java  |    5 -
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TechnicianSubscribe.java               |    7 -
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java           |    7 +
 16 files changed, 122 insertions(+), 77 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java
index 00e5cd1..1b22b70 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java
@@ -8,6 +8,7 @@
 import org.springframework.cloud.openfeign.FallbackFactory;
 
 import java.util.List;
+import java.util.Set;
 
 @Slf4j
 public class RemoteOrderGoodsFallbackFactory implements FallbackFactory<RemoteOrderGoodsClient> {
@@ -40,6 +41,11 @@
             public R<Void> subscribe(Long id, Integer technicianId) {
                 return R.fail("预约失败");
             }
+
+            @Override
+            public R<Void> calculationCommission(Set<String> orderIds) {
+                return R.fail("计算佣金失败");
+            }
         };
 
     }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java
index 5aadf65..8a35d2e 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java
@@ -13,6 +13,7 @@
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
+import java.util.Set;
 
 @FeignClient(contextId = "RemoteOrderGoodsClient", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = RemoteOrderGoodsFallbackFactory.class)
 public interface RemoteOrderGoodsClient {
@@ -46,4 +47,10 @@
      */
     @PostMapping("/order/subscribe")
     public R<Void> subscribe(@RequestParam(value = "id" , required = false) Long id ,@RequestParam(value = "technicianId", required = false) Integer technicianId);
+
+    /**
+     * 预约技师
+     */
+    @PostMapping("/commission/calculationCommission")
+    public R<Void> calculationCommission(@RequestBody Set<String> orderIds);
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/PointSetting.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/PointSetting.java
index 15a7069..df0ccbe 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/PointSetting.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/PointSetting.java
@@ -7,7 +7,6 @@
 import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
-import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
@@ -41,23 +40,23 @@
 
     @ApiModelProperty(value = "拉新人积分")
     @TableField("new_point")
-    private BigDecimal newPoint;
+    private Integer newPoint;
 
     @ApiModelProperty(value = "每日分享积分")
     @TableField("every_share_point")
-    private BigDecimal everySharePoint;
+    private Integer everySharePoint;
 
     @ApiModelProperty(value = "每日签到积分")
     @TableField("sign_point")
-    private BigDecimal signPoint;
+    private Integer signPoint;
 
     @ApiModelProperty(value = "使用一小时积分")
     @TableField("hour_point")
-    private BigDecimal hourPoint;
+    private Integer hourPoint;
 
     @ApiModelProperty(value = "注册积分")
     @TableField("regis_point")
-    private BigDecimal regisPoint;
+    private Integer regisPoint;
 
     @ApiModelProperty(value = "注册积分 1开0关")
     @TableField("regis_point_open")
@@ -69,7 +68,7 @@
 
     @ApiModelProperty(value = "消费积分")
     @TableField("buy_point")
-    private BigDecimal buyPoint;
+    private Integer buyPoint;
 
     @ApiModelProperty(value = "消费积分积分 1开0关")
     @TableField("buy_point_open")
@@ -81,7 +80,7 @@
 
     @ApiModelProperty(value = "返佣积分")
     @TableField("share_point")
-    private BigDecimal sharePoint;
+    private Integer sharePoint;
 
     @ApiModelProperty(value = "返佣积分 1开0关")
     @TableField("share_point_open")
@@ -93,7 +92,7 @@
 
     @ApiModelProperty(value = "门店返佣积分")
     @TableField("shop_share_point")
-    private BigDecimal shopSharePoint;
+    private Integer shopSharePoint;
 
     @ApiModelProperty(value = "门店返佣积分 1开0关")
     @TableField("shop_share_point_open")
@@ -117,7 +116,7 @@
 
     @ApiModelProperty(value = "技师业绩积分")
     @TableField("person_point")
-    private BigDecimal personPoint;
+    private Integer personPoint;
 
     @ApiModelProperty(value = "技师业绩积分 1开0关")
     @TableField("person_point_open")
@@ -141,7 +140,7 @@
 
     @ApiModelProperty(value = "注册积分")
     @TableField("get_regis_point")
-    private BigDecimal getRegisPoint;
+    private Integer getRegisPoint;
 
     @ApiModelProperty(value = "注册积分 1开0关")
     @TableField("get_regis_point_open")
@@ -153,7 +152,7 @@
 
     @ApiModelProperty(value = "做工积分")
     @TableField("work_point")
-    private BigDecimal workPoint;
+    private Integer workPoint;
 
     @ApiModelProperty(value = "做工积分 1开0关")
     @TableField("work_point_open")
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TechnicianSubscribe.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TechnicianSubscribe.java
index 50e6938..2d883b2 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TechnicianSubscribe.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TechnicianSubscribe.java
@@ -68,13 +68,10 @@
     @TableField("create_time")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime createTime;
-
-
-    @ApiModelProperty(value = "订单id")
-    private Long orderId;
-
     @TableField(exist = false)
     private String idStr;
+    @TableField(exist = false)
+    private Long orderId;
 
 
     public void setId(Long id) {
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/TechnicianClientFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/TechnicianClientFallbackFactory.java
index 1cdb2b2..b8a9b5e 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/TechnicianClientFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/TechnicianClientFallbackFactory.java
@@ -19,11 +19,6 @@
             public R<Void> updateStatus(Integer status, Long subscribeId) {
                 return R.fail("跟新技师预约状态失败:" + cause.getMessage());
             }
-
-            @Override
-            public R<TechnicianSubscribe> getSubscribeByOrderId(Long orderId) {
-                return R.fail("根据订单id获取预约信息失败:" + cause.getMessage());
-            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TechnicianClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TechnicianClient.java
index 5a9ad6a..4e4977e 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TechnicianClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TechnicianClient.java
@@ -18,7 +18,4 @@
 
     @PutMapping("/technician-subscribe/updateStatus")
     R<Void> updateStatus(@RequestParam("status") Integer status, @RequestParam("subscribeId") Long subscribeId);
-
-    @GetMapping("/technician-subscribe/getSubscribeByOrderId")
-    R<TechnicianSubscribe> getSubscribeByOrderId(@RequestParam("orderId") Long orderId);
 }
diff --git a/ruoyi-modules/ruoyi-job/pom.xml b/ruoyi-modules/ruoyi-job/pom.xml
index 107092d..7322497 100644
--- a/ruoyi-modules/ruoyi-job/pom.xml
+++ b/ruoyi-modules/ruoyi-job/pom.xml
@@ -19,10 +19,16 @@
 
         <dependency>
             <groupId>com.ruoyi</groupId>
-            <artifactId>ruoyi-modules-order</artifactId>
-            <version>3.6.2</version>
+            <artifactId>ruoyi-api-account</artifactId>
         </dependency>
-    	
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-api-other</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-api-order</artifactId>
+        </dependency>
     	<!-- SpringCloud Alibaba Nacos -->
         <dependency>
             <groupId>com.alibaba.cloud</groupId>
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java
index 87ee464..9eccf63 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java
@@ -1,5 +1,7 @@
 package com.ruoyi.job.task;
 
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.order.feignClient.RemoteOrderGoodsClient;
 import com.ruoyi.order.service.CommissionService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -8,13 +10,13 @@
 import javax.annotation.Resource;
 import java.util.Set;
 
-@Component("ryTask")
+@Component("afterSalesTask")
 @Log4j2
 public class AfterSalesTask {
     @Resource
     private RedisTemplate<String, String> redisTemplate;
     @Resource
-    private CommissionService commissionService;
+    private RemoteOrderGoodsClient remoteOrderGoodsClient;
 
     /**
      * 计算佣金(设置每分钟执行一次)
@@ -25,7 +27,10 @@
         // 从延迟队列中获取需要处理的订单
         Set<String> orderIds = redisTemplate.opsForZSet().rangeByScore("delay_queue:commission", 0, now);
         if (orderIds != null && !orderIds.isEmpty()) {
-            commissionService.calculationCommission(orderIds);
+            R<Void> r = remoteOrderGoodsClient.calculationCommission(orderIds);
+            if (R.isError(r)) {
+                log.error("计算佣金失败,订单号:{},错误信息:{}", orderIds, r.getMsg());
+            }
             // 处理完后移除已处理的订单
             redisTemplate.opsForZSet().removeRangeByScore("delay_queue:commission", 0, now);
         }
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/TechnicianSubscribe.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/TechnicianSubscribe.java
new file mode 100644
index 0000000..cb0f7b5
--- /dev/null
+++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/TechnicianSubscribe.java
@@ -0,0 +1,28 @@
+package com.ruoyi.job.task;
+
+import com.ruoyi.other.api.feignClient.TechnicianClient;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.Set;
+
+@Component("technicianSubscribe")
+@Log4j2
+public class TechnicianSubscribe {
+    @Resource
+    private TechnicianClient technicianClient;
+    @Resource
+    private RedisTemplate<String, String> redisTemplate;
+
+    public void updateStatus() {
+        long now = System.currentTimeMillis() / 1000; // 获取当前时间戳(秒)
+        Set<String> subscribeIds = redisTemplate.opsForZSet().rangeByScore("delay_queue:subscribe", 0, now);
+        if (subscribeIds != null) {
+            subscribeIds.forEach(subscribeId -> {
+                technicianClient.updateStatus(2, Long.valueOf(subscribeId));
+            });
+        }
+    }
+}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java
index bbee426..aefe7ea 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java
@@ -45,6 +45,7 @@
         AppUser appUser = appUserService.getById(loginUserApplet.getUserid());
 
         agentApplication.setAppUserId(loginUserApplet.getUserid());
+        agentApplication.setStatus(1);
         agentApplication.setApplicationTime(LocalDateTime.now());
         agentApplication.setShopPoint(appUser.getShopPoint());
         agentApplication.setSharePoint(appUser.getSharePoint());
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/CommissionController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/CommissionController.java
new file mode 100644
index 0000000..58a8425
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/CommissionController.java
@@ -0,0 +1,21 @@
+package com.ruoyi.order.controller;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.order.service.CommissionService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Set;
+
+@RestController
+@RequestMapping("commission")
+public class CommissionController {
+    @Resource
+    private CommissionService commissionService;
+
+    @PostMapping("/calculationCommission")
+    public R<Void> calculationCommission(@RequestBody Set<String> orderIds){
+        commissionService.calculationCommission(orderIds);
+        return R.ok();
+    }
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
index a2d00ce..b31cce9 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
@@ -13,6 +13,7 @@
 import com.ruoyi.order.model.OrderGood;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -50,6 +51,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void calculationCommission(Set<String> orderIds) {
         List<OrderGood> orderGoods = orderGoodService.list(new LambdaQueryWrapper<OrderGood>()
                 .in(OrderGood::getOrderId, orderIds));
@@ -63,6 +65,8 @@
             if (order.getIsCommission() == 1) {
                 continue;
             }
+            order.setIsCommission(1);
+            orderService.updateById(order);
             R<Shop> r = shopClient.getShopById(order.getShopId());
             if (!R.isSuccess(r)) {
                 throw new RuntimeException("获取门店信息失败");
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index ddb3407..6a40224 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -142,12 +142,6 @@
             }
             technician = shopdetail.getData();
         }
-        R<TechnicianSubscribe> subscribeR = technicianClient.getSubscribeByOrderId(orderId);
-        if (!R.isSuccess(subscribeR)){
-            throw new ServiceException("获取预约信息失败");
-        }
-        TechnicianSubscribe subscribe = subscribeR.getData();
-
         Shop shop = shopR.getData();
         orderDetailVO.setId(order.getId());
         orderDetailVO.setOrderStatus(order.getOrderStatus());
@@ -172,9 +166,6 @@
         orderDetailVO.setLatitude(shop.getLatitude());
         orderDetailVO.setShopId(shop.getId());
         orderDetailVO.setTechnicianName(technician.getName());
-        if(null != subscribe){
-            orderDetailVO.setTechnicianSubscribeId(String.valueOf(subscribe.getId()));
-        }
         return orderDetailVO;
     }
 
@@ -218,18 +209,6 @@
         order.setOrderStatus(OrderStatus.COMPLETED.getCode());
         orderMapper.updateById(order);
         Integer orderType = order.getOrderType();
-        if (orderType.equals(OrderType.SERVICE.getCode())){
-            R<TechnicianSubscribe> subscribeR = technicianClient.getSubscribeByOrderId(order.getId());
-            if (R.isError(subscribeR)){
-                throw new ServiceException("获取预约信息失败");
-            }
-            TechnicianSubscribe subscribe = subscribeR.getData();
-            subscribe.setStatus(2);
-            R<Void> r = technicianClient.updateStatus(subscribe.getStatus(), subscribe.getId());
-            if (R.isError(r)){
-                throw new ServiceException("更新预约状态失败");
-            }
-        }
 
         // 售后设置
         R<BaseSetting> baseSettingR = baseSettingClient.getBaseSetting(5);
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
index a5f04a0..d8220b8 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.account.api.model.AppUser;
+import com.ruoyi.account.api.model.AppUserShop;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.controller.BaseController;
 import com.ruoyi.common.security.service.TokenService;
@@ -25,7 +26,9 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -84,10 +87,14 @@
     @GetMapping("/shopByUser")
     @ApiOperation(value = "查询当前店长所属门店", tags = {"小程序-个人中心-首页"}, notes = "可绑定的门店列表")
     public R<List<Shop>> shopByUser() {
-        List<Shop> list = shopService.list(new LambdaQueryWrapper<Shop>()
-                .eq(Shop::getAppUserId, SecurityUtils.getUserId())
-                .eq(Shop::getStatus, ShopStatus.SHOP_STATUS_NORMAL.getCode()));
-        return R.ok(list);
+        R<List<AppUserShop>> r = appUserClient.getAppUserShop(SecurityUtils.getUserId());
+        if (R.isSuccess(r)){
+            List<AppUserShop> appUserShopList = r.getData();
+            List<Integer> shopIds = appUserShopList.stream().map(AppUserShop::getShopId).collect(Collectors.toList());
+            List<Shop> shopList = shopService.listByIds(shopIds);
+            return R.ok(shopList);
+        }
+        return R.ok(new ArrayList<>());
     }
 
     /**
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianSubscribeController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianSubscribeController.java
index 85e0ecf..a17ee84 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianSubscribeController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianSubscribeController.java
@@ -104,13 +104,5 @@
         return R.ok(technicianSubscribeService.getTechnicianSubscribeByUser(page, SecurityUtils.getUserId(), status));
     }
 
-    @GetMapping("/getSubscribeByOrderId")
-    @ApiOperation(value = "根据订单id获取预约信息", notes = "根据订单id获取预约信息", tags = {"后台-技师预约管理-根据订单id获取预约信息"})
-    public R<TechnicianSubscribe> getSubscribeByOrderId(@ApiParam(value = "订单id") @RequestParam Long orderId) {
-        return R.ok(technicianSubscribeService.getOne(new LambdaQueryWrapper<TechnicianSubscribe>()
-                .eq(TechnicianSubscribe::getOrderId, orderId)));
-    }
-
-
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java
index 2067116..50f8621 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java
@@ -11,10 +11,12 @@
 import com.ruoyi.other.mapper.TechnicianSubscribeMapper;
 import com.ruoyi.other.service.TechnicianSubscribeService;
 import com.ruoyi.other.vo.TechnicianSubscribeVO;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.List;
 
 /**
@@ -31,6 +33,8 @@
     private TechnicianSubscribeMapper technicianSubscribeMapper;
     @Resource
     private RemoteOrderGoodsClient orderGoodsClient;
+    @Resource
+    private RedisTemplate<String, String> redisTemplate;
 
     @Override
     public List<TechnicianSubscribeVO> getTechnicianSubscribeByUserAndShop(Long shopId, Integer status) {
@@ -43,20 +47,17 @@
 
     @Override
     public void subscribe(TechnicianSubscribe subscribe) {
-        if (StringUtils.isNotEmpty(subscribe.getIdStr())){
-            subscribe.setId(Long.parseLong(subscribe.getIdStr()));
-            technicianSubscribeMapper.updateById(subscribe);
-        }else {
-            Long userId = SecurityUtils.getUserId();
-            subscribe.setAppUserId(userId);
-            subscribe.setStatus(TechnicianStatus.UNSUBSCRIBE.getCode());
-            subscribe.setDelFlag(0);
-            subscribe.setCreateTime(LocalDateTime.now());
-            technicianSubscribeMapper.insert(subscribe);
-        }
-        if (subscribe.getTechnicianId() != null){
+        Long userId = SecurityUtils.getUserId();
+        subscribe.setAppUserId(userId);
+        subscribe.setStatus(TechnicianStatus.UNSUBSCRIBE.getCode());
+        subscribe.setDelFlag(0);
+        subscribe.setCreateTime(LocalDateTime.now());
+        technicianSubscribeMapper.insert(subscribe);
+        if (subscribe.getOrderId() != null){
             orderGoodsClient.subscribe(subscribe.getOrderId(), subscribe.getTechnicianId());
         }
-
+        LocalDateTime subscribeTime = subscribe.getSubscribeTime();
+        long deadlineTimestamp = subscribeTime.atZone(ZoneId.systemDefault()).toEpochSecond();
+        redisTemplate.opsForZSet().add("delay_queue:subscribe", subscribe.getId().toString(), deadlineTimestamp);
     }
 }

--
Gitblit v1.7.1