From 029af9c4503d6838bddd55a6ecd6b73705ca1522 Mon Sep 17 00:00:00 2001 From: phpcjl <phpcjl@gmail.com> Date: 星期二, 26 十一月 2024 17:08:00 +0800 Subject: [PATCH] 1.完善接口的定义 2.完成部分接口的开发 3.集成基于Redisson的分布式锁 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java | 33 +++++++++++++++++++++++++++++++-- 1 files changed, 31 insertions(+), 2 deletions(-) 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 a1e6e7f..6fb0962 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 @@ -1,19 +1,25 @@ package com.ruoyi.other.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.other.api.domain.Technician; +import com.ruoyi.other.mapper.TechnicianMapper; import com.ruoyi.other.mapper.TechnicianSubscribeMapper; import com.ruoyi.other.api.domain.TechnicianSubscribe; import com.ruoyi.other.service.TechnicianSubscribeService; import com.ruoyi.other.vo.TechnicianSubscribeVO; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Collections; +import java.time.LocalDateTime; import java.util.List; /** * <p> - * 服务实现类 + * 服务实现类 * </p> * * @author luodangjia @@ -23,9 +29,32 @@ public class TechnicianSubscribeServiceImpl extends ServiceImpl<TechnicianSubscribeMapper, TechnicianSubscribe> implements TechnicianSubscribeService { @Resource private TechnicianSubscribeMapper technicianSubscribeMapper; + @Resource + private TechnicianMapper technicianMapper; @Override public List<TechnicianSubscribeVO> getTechnicianSubscribeByUserAndShop(Long userId, Long shopId) { return technicianSubscribeMapper.getTechnicianSubscribeByUserAndShop(userId, shopId); } + + @Override + @Transactional(rollbackFor = Exception.class) + public void subscribe(TechnicianSubscribe technicianSubscribe) { + Long technicianId = technicianSubscribe.getTechnicianId(); + Technician technician = technicianMapper.selectOne(new LambdaQueryWrapper<Technician>() + .eq(Technician::getId, technicianId) + .eq(Technician::getStatus, 1) + .eq(Technician::getSubscribeStatus, 1)); + if (null == technician) { + throw new ServiceException("不满足预约条件"); + } + Long userId = SecurityUtils.getUserId(); + TechnicianSubscribe subscribe = new TechnicianSubscribe(); + subscribe.setAppUserId(userId); + subscribe.setDelFlag(0); + subscribe.setCreateTime(LocalDateTime.now()); + technicianSubscribeMapper.insert(subscribe); + technician.setSubscribeStatus(2); + technicianMapper.updateById(technician); + } } -- Gitblit v1.7.1