|
|
@@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.google.common.collect.Lists;
|
|
|
+import com.jtzx.crm.module.sys.common.QueueCommon;
|
|
|
import com.jtzx.crm.module.sys.entity.*;
|
|
|
import com.jtzx.crm.module.sys.mapper.*;
|
|
|
import com.jtzx.crm.module.sys.model.request.AdminSysCustomerFollowInsertOrUpdateDTO;
|
|
|
@@ -13,13 +14,16 @@ import com.jtzx.crm.module.sys.model.response.CustomerFollowOverViewBO;
|
|
|
import com.jtzx.crm.module.sys.model.response.CustomerProductBO;
|
|
|
import com.jtzx.crm.module.sys.model.response.CustomerProductOverViewBO;
|
|
|
import com.jtzx.crm.module.sys.model.response.SysCustomerFollowDataBO;
|
|
|
+import com.redismq.utils.RedisMQTemplate;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.time.Duration;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.time.temporal.ChronoUnit;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Comparator;
|
|
|
import java.util.List;
|
|
|
@@ -50,6 +54,8 @@ public class SysCustomerFollowService {
|
|
|
|
|
|
private final SysCustomerDataPermissionService permissionService;
|
|
|
|
|
|
+ private final RedisMQTemplate redisMQTemplate;
|
|
|
+
|
|
|
/**
|
|
|
* 后台管理-新增
|
|
|
*/
|
|
|
@@ -64,16 +70,22 @@ public class SysCustomerFollowService {
|
|
|
this.handleParams(dto);
|
|
|
SysCustomerFollowEntity entity = new SysCustomerFollowEntity();
|
|
|
BeanUtil.copyProperties(dto, entity);
|
|
|
+ entity.setOrderStatus(0);
|
|
|
+ entity.setOrderDatetime(dto.getOrderDatetime());
|
|
|
sysCustomerFollowMapper.insert(entity);
|
|
|
if (dto.getOrderType() != null && dto.getOrderType() == 0 && dto.getOrderDatetime() != null) {
|
|
|
- entity.setOrderStatus(0);
|
|
|
- entity.setOrderDatetime(dto.getOrderDatetime());
|
|
|
- if (!dto.getOrderDatetime().isAfter(LocalDateTime.now())) {
|
|
|
- entity.setOrderStatus(1);
|
|
|
- }
|
|
|
- sysCustomerFollowMapper.updateById(entity);
|
|
|
- if (dto.getOrderDatetime().isAfter(LocalDateTime.now())) {
|
|
|
- //TODO 发送定时任务,时间到之后改为已结束
|
|
|
+
|
|
|
+// if (!dto.getOrderDatetime().isAfter(LocalDateTime.now())) {
|
|
|
+// entity.setOrderStatus(1);
|
|
|
+// }
|
|
|
+// sysCustomerFollowMapper.updateById(entity);
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ if (dto.getOrderDatetime().isAfter(now)) {
|
|
|
+ //发送定时任务,时间到之后改为已结束
|
|
|
+ long between = Math.abs(ChronoUnit.SECONDS.between(now, dto.getOrderDatetime()));
|
|
|
+ if (between > 0) {
|
|
|
+ redisMQTemplate.sendDelayMessage(entity.getId(), QueueCommon.FOLLOW_ORDER_DATA, Duration.ofSeconds(between));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -257,7 +269,7 @@ public class SysCustomerFollowService {
|
|
|
new LambdaQueryWrapper<>(SysCustomerFollowEntity.class)
|
|
|
.eq(SysCustomerFollowEntity::getCustomerId, customerId)
|
|
|
.eq(SysCustomerFollowEntity::getClaimUserId, userId)
|
|
|
- .eq(SysCustomerFollowEntity::getOrderStatus,0)//待开始的
|
|
|
+ .eq(SysCustomerFollowEntity::getOrderStatus, 0)//待开始的
|
|
|
.isNotNull(SysCustomerFollowEntity::getOrderType)//预约待办不能为空的
|
|
|
.orderByDesc(SysCustomerFollowEntity::getCreatedAt)
|
|
|
);
|