From 1730a7fc4bb96f258d9dc8dec2e629cadbfdefc0 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期三, 18 六月 2025 13:47:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0 --- ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java | 42 +++++++++++++++++++++++++++++++++++------- 1 files changed, 35 insertions(+), 7 deletions(-) diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java index e73b8fb..c4ebd06 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java @@ -3,11 +3,14 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.shop.domain.dto.AppNearbyShopDto; +import com.ruoyi.shop.domain.dto.MyAppointmentListDto; import com.ruoyi.shop.domain.vo.AppNearbyShopVo; import com.ruoyi.shop.domain.vo.AppShopInfoVo; +import com.ruoyi.shop.domain.vo.MyAppointmentListVo; import com.ruoyi.shop.service.shop.ShopAppointableTimeService; import com.ruoyi.shop.service.shop.ShopNonAppointableTimeService; import com.ruoyi.shop.service.shop.ShopService; @@ -21,13 +24,11 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.log4j.Log4j2; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.List; /** @@ -82,7 +83,7 @@ @ApiOperation(value = "获取商户不可预约时间段【2.0】") public R<List<ShopNonAppointableTime>> getShopAppointmentTime(@RequestBody ShopAppointmentTimeDto dto) { List<ShopNonAppointableTime> list = shopNonAppointableTimeService.list(new QueryWrapper<ShopNonAppointableTime>().eq("shop_id", dto.getId()) - .last(" and '" + dto.getDate() + "' like CONCAT('%', non_appointable_start_time, '%') order by non_appointable_start_time")); + .last(" and '" + dto.getDate() + "' = DATE(non_appointable_start_time) order by non_appointable_start_time")); return R.ok(list); } @@ -90,18 +91,45 @@ @ApiOperation(value = "门店详情预约操作【2.0】") public R appointmentTime(@RequestBody AppointmentTimeDto dto) { ShopAppointableTime one = shopAppointableTimeService.getOne(new LambdaQueryWrapper<ShopAppointableTime>().eq(ShopAppointableTime::getShopId, dto.getShopId()) - .eq(ShopAppointableTime::getAppointableTime, dto.getTime())); + .last(" and DATE_FORMAT(appointable_time, '%Y-%m-%d %H:%i') = '" + dto.getTime() + "'")); if (null != one) { return R.fail("不能重复预约"); } Long userId = SecurityUtils.getUserId(); one = new ShopAppointableTime(); one.setShopId(dto.getShopId()); - one.setAppointableTime(dto.getTime()); + one.setAppointableTime(LocalDateTime.parse(dto.getTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"))); one.setUserId(userId); one.setStatus(1); one.setCreateTime(LocalDateTime.now()); shopAppointableTimeService.save(one); return R.ok(); } + + @RequestMapping(value = "/getMyAppointmentList", method = RequestMethod.POST) + @ApiOperation(value = "获取我的预约列表【2.0】") + public R<Page<MyAppointmentListVo>> getMyAppointmentList(@RequestBody MyAppointmentListDto dto) { + Page<MyAppointmentListVo> page = new Page<>(); + page.setSize(dto.getPageSize()); + page.setCurrent(dto.getPageNum()); + List<MyAppointmentListVo> myAppointmentListVos = shopAppointableTimeService.pageMyAppointmentList(page, dto); + return R.ok(page.setRecords(myAppointmentListVos)); + } + + + @RequestMapping(value = "/cancelAppointmentTime/{id}", method = RequestMethod.POST) + @ApiOperation(value = "取消预约【2.0】") + public R cancelAppointmentTime(@PathVariable("id") String id) { + Long userId = SecurityUtils.getUserId(); + ShopAppointableTime one = shopAppointableTimeService.getById(id); + if (null == one) { + return R.fail("预约不存在"); + } + if (!one.getUserId().equals(userId)) { + return R.fail("不能取消别人的预约"); + } + one.setStatus(0); + shopAppointableTimeService.updateById(one); + return R.ok(); + } } -- Gitblit v1.7.1