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