From a5c5fc7c86c37519dbe42b148b47ebfc00f89ca9 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期三, 09 七月 2025 10:56:42 +0800
Subject: [PATCH] bug修改
---
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java | 113 ++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 92 insertions(+), 21 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 6781191..7fe2a38 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
@@ -1,23 +1,36 @@
package com.ruoyi.shop.controller.miniapp;
+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.core.utils.uuid.IdUtils;
import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.system.api.service.RemoteConfigService;
-import com.ruoyi.system.api.service.RemoteMemberService;
-import com.ruoyi.system.api.domain.dto.AppBaseGetDto;
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;
+import com.ruoyi.system.api.domain.dto.AppBaseGetDto;
+import com.ruoyi.system.api.domain.dto.AppointmentTimeDto;
+import com.ruoyi.system.api.domain.dto.ShopAppointmentTimeDto;
import com.ruoyi.system.api.domain.poji.member.Member;
+import com.ruoyi.system.api.domain.poji.shop.ShopNonAppointableTime;
+import com.ruoyi.system.api.domain.poji.shop.TShopAppointableTime;
+import com.ruoyi.system.api.service.RemoteMemberService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.log4j.Log4j2;
-import org.springframework.beans.factory.annotation.Autowired;
-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;
/**
* @author jqs34
@@ -31,36 +44,94 @@
@RequestMapping("/app/home")
@Log4j2
public class AppHomeController {
-
-
- @Autowired
+
+ @Resource
private RemoteMemberService memberService;
-
- RemoteConfigService remoteConfigService;
-
- @Autowired
+
+ @Resource
private ShopService shopService;
-
+
+ @Resource
+ private ShopNonAppointableTimeService shopNonAppointableTimeService;
+
+ @Resource
+ private ShopAppointableTimeService shopAppointableTimeService;
+
+
@RequestMapping(value = "/getNearbyShop", method = RequestMethod.POST)
@ApiOperation(value = "获取最近商户")
public R<AppNearbyShopVo> getNearbyShop(@RequestBody AppNearbyShopDto appNearbyShopDto) {
Long userId = SecurityUtils.getUserId();
Member member = null;
- if(userId!=null){
+ if (userId != null) {
member = memberService.getMember(userId).getData();
}
+ log.info("获取最近商户:userId=" + userId + "&appNearbyShopDto=" + JSON.toJSONString(appNearbyShopDto));
appNearbyShopDto.setUserId(userId);
AppNearbyShopVo appNearbyShopVo = shopService.getNearbyShop(appNearbyShopDto,member);
return R.ok(appNearbyShopVo);
}
-
-
+
+
@RequestMapping(value = "/getShopInfo", method = RequestMethod.POST)
@ApiOperation(value = "获取商户详情")
public R<AppShopInfoVo> getShopInfo(@RequestBody AppBaseGetDto appBaseGetDto) {
AppShopInfoVo appShopInfoVo = shopService.getAppShopInfo(Long.valueOf(appBaseGetDto.getId()));
return R.ok(appShopInfoVo);
}
-
-
+
+ @RequestMapping(value = "/getShopAppointmentTime", method = RequestMethod.POST)
+ @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() + "' = DATE(non_appointable_start_time) order by non_appointable_start_time"));
+ return R.ok(list);
+ }
+
+ @RequestMapping(value = "/appointmentTime", method = RequestMethod.POST)
+ @ApiOperation(value = "门店详情预约操作【2.0】")
+ public R appointmentTime(@RequestBody AppointmentTimeDto dto) {
+ TShopAppointableTime one = shopAppointableTimeService.getOne(new LambdaQueryWrapper<TShopAppointableTime>().eq(TShopAppointableTime::getShopId, dto.getShopId())
+ .last(" and DATE_FORMAT(appointment_time, '%Y-%m-%d %H:%i:%s') = '" + dto.getTime() + "'"));
+ if (null != one) {
+ return R.fail("不能重复预约");
+ }
+ Long userId = SecurityUtils.getUserId();
+ one = new TShopAppointableTime();
+ one.setId(IdUtils.fastSimpleUUID());
+ one.setShopId(dto.getShopId());
+ one.setAppointmentTime(LocalDateTime.parse(dto.getTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ 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();
+ TShopAppointableTime 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