Browse Source

fixed 预约订单提交

fushengqian 11 months ago
parent
commit
7d21e2bcf7

+ 7 - 0
fuint-application/src/main/java/com/fuint/common/dto/BookDto.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -46,9 +47,15 @@ public class BookDto implements Serializable {
     @ApiModelProperty("可预约日期")
     private String serviceDates;
 
+    @ApiModelProperty("可预约日期列表")
+    private List<DayDto> dateList;
+
     @ApiModelProperty("可预约时间段")
     private String serviceTimes;
 
+    @ApiModelProperty("可预约时间段列表")
+    private List<TimeDto> timeList;
+
     @ApiModelProperty("可预约员工ID")
     private String serviceStaffIds;
 

+ 26 - 0
fuint-application/src/main/java/com/fuint/common/dto/DayDto.java

@@ -0,0 +1,26 @@
+package com.fuint.common.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.io.Serializable;
+
+/**
+ * 日期Dto
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Getter
+@Setter
+public class DayDto implements Serializable {
+
+    @ApiModelProperty("星期")
+    private String week;
+
+    @ApiModelProperty("日期")
+    private String date;
+
+    @ApiModelProperty("是否可预订")
+    private Boolean enable;
+}

+ 23 - 0
fuint-application/src/main/java/com/fuint/common/dto/TimeDto.java

@@ -0,0 +1,23 @@
+package com.fuint.common.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.io.Serializable;
+
+/**
+ * 时间Dto
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Getter
+@Setter
+public class TimeDto implements Serializable {
+
+    @ApiModelProperty("时间段")
+    private String time;
+
+    @ApiModelProperty("是否可预订")
+    private Boolean enable;
+}

+ 2 - 1
fuint-application/src/main/java/com/fuint/common/service/BookService.java

@@ -6,6 +6,7 @@ import com.fuint.framework.pagination.PaginationRequest;
 import com.fuint.framework.pagination.PaginationResponse;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.repository.model.MtBook;
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -41,7 +42,7 @@ public interface BookService extends IService<MtBook> {
      * @throws BusinessCheckException
      * @return
      */
-    BookDto getBookById(Integer id) throws BusinessCheckException;
+    BookDto getBookById(Integer id) throws BusinessCheckException, ParseException;
 
     /**
      * 更新预约项目

+ 43 - 1
fuint-application/src/main/java/com/fuint/common/service/impl/BookServiceImpl.java

@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fuint.common.dto.BookDto;
+import com.fuint.common.dto.DayDto;
+import com.fuint.common.dto.TimeDto;
 import com.fuint.common.service.BookService;
 import com.fuint.common.service.StoreService;
+import com.fuint.common.util.DateUtil;
 import com.fuint.framework.annoation.OperationServiceLog;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.pagination.PaginationRequest;
@@ -16,6 +19,7 @@ import com.fuint.common.service.SettingService;
 import com.fuint.common.enums.StatusEnum;
 import com.fuint.repository.model.MtBook;
 import com.fuint.repository.model.MtStore;
+import com.fuint.utils.StringUtil;
 import com.github.pagehelper.PageHelper;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
@@ -27,6 +31,9 @@ import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -148,13 +155,48 @@ public class BookServiceImpl extends ServiceImpl<MtBookMapper, MtBook> implement
      * @return
      */
     @Override
-    public BookDto getBookById(Integer id) {
+    public BookDto getBookById(Integer id) throws ParseException {
         BookDto bookDto = new BookDto();
         MtBook mtBook = mtBookMapper.selectById(id);
         if (mtBook == null) {
             return null;
         }
         BeanUtils.copyProperties(mtBook, bookDto);
+
+        List<DayDto> dateList = new ArrayList<>();
+        String serviceDates = mtBook.getServiceDates();
+        if (StringUtil.isNotEmpty(serviceDates)) {
+            List<String> dates = Arrays.asList(serviceDates.split(",").clone());
+            if (dates.size() > 0) {
+                for (String date : dates) {
+                    Date currentDate = DateUtil.parseDate(date);
+                    SimpleDateFormat format = new SimpleDateFormat("EEEE");
+                    String week = format.format(currentDate);
+                    DayDto day = new DayDto();
+                    day.setWeek(week);
+                    day.setDate(DateUtil.formatDate(currentDate, "MM-dd"));
+                    day.setEnable(true);
+                    dateList.add(day);
+                }
+            }
+        }
+        bookDto.setDateList(dateList);
+
+        List<TimeDto> timeList = new ArrayList<>();
+        String serviceTimes = mtBook.getServiceTimes();
+        if (StringUtil.isNotEmpty(serviceTimes)) {
+            List<String> times = Arrays.asList(serviceTimes.split(",").clone());
+            if (times.size() > 0) {
+                for (String time : times) {
+                     TimeDto timeDto = new TimeDto();
+                     timeDto.setTime(time);
+                     timeDto.setEnable(true);
+                     timeList.add(timeDto);
+                }
+            }
+        }
+        bookDto.setTimeList(timeList);
+
         return bookDto;
     }
 

+ 3 - 2
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendBookController.java

@@ -25,6 +25,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -144,7 +145,7 @@ public class BackendBookController extends BaseController {
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
     @CrossOrigin
     @PreAuthorize("@pms.hasPermission('book:index')")
-    public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
+    public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException, ParseException {
         String token = request.getHeader("Access-Token");
         String status = params.get("status") != null ? params.get("status").toString() : StatusEnum.ENABLED.getKey();
         Integer id = params.get("id") == null ? 0 : Integer.parseInt(params.get("id").toString());
@@ -255,7 +256,7 @@ public class BackendBookController extends BaseController {
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
     @CrossOrigin
     @PreAuthorize("@pms.hasPermission('book:index')")
-    public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
+    public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException, ParseException {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
         if (accountInfo == null) {

+ 2 - 1
fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientBookController.java

@@ -22,6 +22,7 @@ import lombok.AllArgsConstructor;
 import java.lang.reflect.InvocationTargetException;
 import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -100,7 +101,7 @@ public class ClientBookController extends BaseController {
     @ApiOperation(value="获取预约项目详情", notes="根据ID获取预约项目详情")
     @RequestMapping(value = "/detail", method = RequestMethod.POST)
     @CrossOrigin
-    public ResponseObject detail(@RequestBody BookDetailParam param) throws BusinessCheckException, InvocationTargetException, IllegalAccessException {
+    public ResponseObject detail(@RequestBody BookDetailParam param) throws BusinessCheckException, InvocationTargetException, IllegalAccessException, ParseException {
         Integer bookId = param.getBookId() == null ? 0 : param.getBookId();
 
         BookDto bookInfo = bookService.getBookById(bookId);