Browse Source

fixed 预约接口问题修复

fushengqian 1 week ago
parent
commit
e79010bd06

+ 3 - 1
fuint-application/src/main/java/com/fuint/common/service/BookItemService.java

@@ -6,6 +6,8 @@ import com.fuint.framework.pagination.PaginationRequest;
 import com.fuint.framework.pagination.PaginationResponse;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.repository.model.MtBookItem;
+
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -32,7 +34,7 @@ public interface BookItemService extends IService<MtBookItem> {
      * @throws BusinessCheckException
      * @return
      */
-    MtBookItem addBookItem(MtBookItem mtBookItem) throws BusinessCheckException;
+    MtBookItem addBookItem(MtBookItem mtBookItem) throws BusinessCheckException, ParseException;
 
     /**
      * 根据ID获取预约订单信息

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

@@ -40,10 +40,11 @@ public interface BookService extends IService<MtBook> {
      * 根据ID获取预约项目信息
      *
      * @param  id 预约项目ID
+     * @param fillDate 填充日期
      * @throws BusinessCheckException
      * @return
      */
-    BookDto getBookById(Integer id) throws BusinessCheckException, ParseException;
+    BookDto getBookById(Integer id, boolean fillDate) throws BusinessCheckException, ParseException;
 
     /**
      * 更新预约项目
@@ -61,7 +62,7 @@ public interface BookService extends IService<MtBook> {
      * @throws BusinessCheckException
      * @return
      * */
-    List<String> isBookable(BookableParam param) throws BusinessCheckException;
+    List<String> isBookable(BookableParam param) throws BusinessCheckException, ParseException;
 
     /**
      * 根据条件搜索预约项目

+ 3 - 1
fuint-application/src/main/java/com/fuint/common/service/impl/BookItemServiceImpl.java

@@ -33,6 +33,8 @@ 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.util.*;
 
 /**
@@ -137,7 +139,7 @@ public class BookItemServiceImpl extends ServiceImpl<MtBookItemMapper, MtBookIte
      */
     @Override
     @OperationServiceLog(description = "新增预约订单")
-    public MtBookItem addBookItem(MtBookItem mtBookItem) throws BusinessCheckException {
+    public MtBookItem addBookItem(MtBookItem mtBookItem) throws BusinessCheckException, ParseException {
         Integer storeId = mtBookItem.getStoreId() == null ? 0 : mtBookItem.getStoreId();
         if (mtBookItem.getMerchantId() == null || mtBookItem.getMerchantId() <= 0) {
             throw new BusinessCheckException("新增预约订单失败:所属商户不能为空!");

+ 27 - 14
fuint-application/src/main/java/com/fuint/common/service/impl/BookServiceImpl.java

@@ -37,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
+import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 
@@ -167,10 +168,11 @@ public class BookServiceImpl extends ServiceImpl<MtBookMapper, MtBook> implement
      * 根据ID获取预约项目信息
      *
      * @param id 预约项目ID
+     * @param fillDate 填充日期
      * @return
      */
     @Override
-    public BookDto getBookById(Integer id) throws ParseException {
+    public BookDto getBookById(Integer id, boolean fillDate) throws ParseException {
         BookDto bookDto = new BookDto();
         MtBook mtBook = mtBookMapper.selectById(id);
         if (mtBook == null) {
@@ -192,24 +194,28 @@ public class BookServiceImpl extends ServiceImpl<MtBookMapper, MtBook> implement
                  dates.add(dateString);
             }
             serviceDates = String.join(",", dates);
-            bookDto.setServiceDates(serviceDates);
+            if (fillDate) {
+                bookDto.setServiceDates(serviceDates);
+            }
         }
 
         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);
+                    Date currentDate = DateUtil.parseDate(date + " 23:59:59");
                     Date now = new Date();
-                    if (now.before(currentDate)) {
-                        SimpleDateFormat format = new SimpleDateFormat("EEEE", Locale.CHINA);
-                        String week = format.format(currentDate);
-                        DayDto day = new DayDto();
-                        day.setWeek(week);
-                        day.setDate(DateUtil.formatDate(currentDate, "MM-dd"));
+                    SimpleDateFormat format = new SimpleDateFormat("EEEE", Locale.CHINA);
+                    String week = format.format(currentDate);
+                    DayDto day = new DayDto();
+                    day.setWeek(week);
+                    day.setDate(DateUtil.formatDate(currentDate, "MM-dd"));
+                    if (now.compareTo(currentDate) <= 0) {
                         day.setEnable(true);
-                        dateList.add(day);
+                    } else {
+                        day.setEnable(false);
                     }
+                    dateList.add(day);
                 }
             }
         }
@@ -255,7 +261,6 @@ public class BookServiceImpl extends ServiceImpl<MtBookMapper, MtBook> implement
         if (book == null) {
             throw new BusinessCheckException("该预约项目状态异常");
         }
-        book.setId(book.getId());
         if (mtBook.getLogo() != null) {
             book.setLogo(mtBook.getLogo());
         }
@@ -305,7 +310,7 @@ public class BookServiceImpl extends ServiceImpl<MtBookMapper, MtBook> implement
      * @return
      * */
     @Override
-    public List<String> isBookable(BookableParam param) throws BusinessCheckException {
+    public List<String> isBookable(BookableParam param) throws BusinessCheckException,ParseException {
        MtBook mtBook = mtBookMapper.selectById(param.getBookId());
        List<String> result = new ArrayList<>();
        if (mtBook == null) {
@@ -339,9 +344,15 @@ public class BookServiceImpl extends ServiceImpl<MtBookMapper, MtBook> implement
                }
            }
        }
+       Date now = new Date();
        if (bookNum < limit) {
            if (StringUtil.isNotEmpty(param.getTime())) {
-               result.add(param.getTime());
+               String[] arr = param.getTime().split("-");
+               String dateTime = param.getDate() + " " + arr[1]+":00";
+               Date currentDate = DateUtil.parseDate(dateTime);
+               if (now.compareTo(currentDate) < 0) {
+                   result.add(param.getTime());
+               }
            } else {
                String[] times = mtBook.getServiceTimes().split(",");
                if (times.length > 0) {
@@ -349,7 +360,9 @@ public class BookServiceImpl extends ServiceImpl<MtBookMapper, MtBook> implement
                         String[] arr = str.split("-");
                         if (arr.length > 2) {
                             String item = arr[0] + "-" + arr[1];
-                            if (!bookList.contains(item)) {
+                            String dateTime = param.getDate() + " " + arr[1]+":00";
+                            Date currentDate = DateUtil.parseDate(dateTime);
+                            if (!bookList.contains(item) && now.compareTo(currentDate) < 0) {
                                 result.add(item);
                             }
                         }

+ 2 - 2
fuint-application/src/main/java/com/fuint/common/service/impl/OrderServiceImpl.java

@@ -661,7 +661,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
     public Map<String, Object> doSettle(HttpServletRequest request, SettlementParam param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         String isWechat = request.getHeader("isWechat") == null ? YesOrNoEnum.NO.getKey() : request.getHeader("isWechat");
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
         String platform = request.getHeader("platform") == null ? "" : request.getHeader("platform");
         String merchantNo = request.getHeader("merchantNo") == null ? "" : request.getHeader("merchantNo");
         String ip = CommonUtil.getIPFromHttpRequest(request);
@@ -2269,7 +2269,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
      * */
     @Override
     public MtOrder doRecharge(HttpServletRequest request, RechargeParam rechargeParam) throws BusinessCheckException {
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
         String platform = request.getHeader("platform") == null ? "" : request.getHeader("platform");
         String merchantNo = request.getHeader("merchantNo") == null ? "" : request.getHeader("merchantNo");
 

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

@@ -147,7 +147,7 @@ public class BackendBookController extends BaseController {
 
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
 
-        BookDto bookDto = bookService.getBookById(id);
+        BookDto bookDto = bookService.getBookById(id, false);
         if (bookDto == null) {
             return getFailureResult(201);
         }
@@ -187,7 +187,6 @@ public class BackendBookController extends BaseController {
         List<LinkedHashMap> times = params.get("times") == null ? new ArrayList<>() : (List) params.get("times");
 
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
-
         if (accountInfo.getMerchantId() == null || accountInfo.getMerchantId() < 1) {
             throw new BusinessCheckException("平台方帐号无法执行该操作,请使用商户帐号操作");
         }
@@ -249,7 +248,7 @@ public class BackendBookController extends BaseController {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
 
-        BookDto bookDto = bookService.getBookById(id);
+        BookDto bookDto = bookService.getBookById(id, false);
 
         if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
             if (!bookDto.getMerchantId().equals(accountInfo.getMerchantId())) {

+ 2 - 1
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendBookItemController.java

@@ -26,6 +26,7 @@ import lombok.AllArgsConstructor;
 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.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -179,7 +180,7 @@ public class BackendBookItemController extends BaseController {
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @CrossOrigin
     @PreAuthorize("@pms.hasPermission('book:index')")
-    public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
+    public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException, ParseException {
         String token = request.getHeader("Access-Token");
         String id = params.get("id") == null ? "" : params.get("id").toString();
         String mobile = params.get("name") == null ? "" : params.get("name").toString();

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

@@ -83,7 +83,7 @@ public class ClientBookController extends BaseController {
     @CrossOrigin
     public ResponseObject list(HttpServletRequest request, @RequestBody BookListParam param) throws BusinessCheckException, InvocationTargetException, IllegalAccessException {
         String merchantNo = request.getHeader("merchantNo") == null ? "" : request.getHeader("merchantNo");
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
         String name = param.getName();
         Integer cateId = param.getCateId();
         Integer page = param.getPage() == null ? Constants.PAGE_NUMBER : param.getPage();
@@ -135,7 +135,7 @@ public class ClientBookController extends BaseController {
     public ResponseObject detail(@RequestBody BookDetailParam param) throws BusinessCheckException, InvocationTargetException, IllegalAccessException, ParseException {
         Integer bookId = param.getBookId() == null ? 0 : param.getBookId();
 
-        BookDto bookInfo = bookService.getBookById(bookId);
+        BookDto bookInfo = bookService.getBookById(bookId, true);
         Map<String, Object> result = new HashMap<>();
         result.put("bookInfo", bookInfo);
 
@@ -150,7 +150,7 @@ public class ClientBookController extends BaseController {
     @CrossOrigin
     public ResponseObject cateList(HttpServletRequest request) throws BusinessCheckException {
         String merchantNo = request.getHeader("merchantNo") == null ? "" : request.getHeader("merchantNo");
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
 
         Map<String, Object> param = new HashMap<>();
         param.put("status", StatusEnum.ENABLED.getKey());
@@ -174,7 +174,7 @@ public class ClientBookController extends BaseController {
     @ApiOperation(value="获取预约项目详情", notes="根据ID获取预约项目详情")
     @RequestMapping(value = "/bookable", method = RequestMethod.POST)
     @CrossOrigin
-    public ResponseObject bookable(@RequestBody BookableParam param) throws BusinessCheckException {
+    public ResponseObject bookable(@RequestBody BookableParam param) throws BusinessCheckException,ParseException {
         List<String> result = bookService.isBookable(param);
         return getSuccessResult(result);
     }
@@ -187,7 +187,7 @@ public class ClientBookController extends BaseController {
     @CrossOrigin
     public ResponseObject submit(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException, ParseException {
         String token = request.getHeader("Access-Token");
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
         String bookId = param.get("bookId") == null ? "" : param.get("bookId").toString();
         String remark = param.get("remark") == null ? "" : param.get("remark").toString();
         String mobile = param.get("mobile") == null ? "" : param.get("mobile").toString();
@@ -201,7 +201,7 @@ public class ClientBookController extends BaseController {
         }
 
         MtUser mtUser = memberService.queryMemberById(loginInfo.getId());
-        BookDto bookInfo = bookService.getBookById(Integer.parseInt(bookId));
+        BookDto bookInfo = bookService.getBookById(Integer.parseInt(bookId), true);
         if (bookInfo == null) {
             return getFailureResult(2001);
         }

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

@@ -76,7 +76,7 @@ public class ClientCartController extends BaseController {
     public ResponseObject save(HttpServletRequest request, @RequestBody CartSaveParam saveParam) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         String merchantNo = request.getHeader("merchantNo") == null ? "" : request.getHeader("merchantNo");
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
         Integer cartId = saveParam.getCartId() == null ? 0 : saveParam.getCartId();
         Integer goodsId = saveParam.getGoodsId() == null ? 0 : saveParam.getGoodsId();
         Integer skuId = saveParam.getSkuId() == null ? 0 : saveParam.getSkuId();
@@ -203,7 +203,7 @@ public class ClientCartController extends BaseController {
     public ResponseObject list(HttpServletRequest request, @RequestBody CartListParam params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         String merchantNo = request.getHeader("merchantNo") == null ? "" : request.getHeader("merchantNo");
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
         String platform = request.getHeader("platform") == null ? "" : request.getHeader("platform");
         Integer goodsId = params.getGoodsId() == null ? 0 : params.getGoodsId();
         Integer skuId = params.getSkuId() == null ? 0 : params.getSkuId();

+ 3 - 3
fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientGoodsController.java

@@ -73,7 +73,7 @@ public class ClientGoodsController extends BaseController {
     @CrossOrigin
     public ResponseObject cateList(HttpServletRequest request) throws BusinessCheckException {
         String merchantNo = request.getHeader("merchantNo") == null ? "" : request.getHeader("merchantNo");
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
         String platform = request.getHeader("platform") == null ? "" : request.getHeader("platform");
 
         Integer merchantId = merchantService.getMerchantId(merchantNo);
@@ -113,7 +113,7 @@ public class ClientGoodsController extends BaseController {
     @RequestMapping(value = "/list", method = RequestMethod.GET)
     @CrossOrigin
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
         String platform = request.getHeader("platform") == null ? "" : request.getHeader("platform");
         Map<String, Object> goodsData = goodsService.getStoreGoodsList(storeId, "", platform, 0,1, 200);
         return getSuccessResult(goodsData.get("goodsList"));
@@ -126,7 +126,7 @@ public class ClientGoodsController extends BaseController {
     @RequestMapping(value = "/search", method = RequestMethod.POST)
     @CrossOrigin
     public ResponseObject search(HttpServletRequest request, @RequestBody GoodsSearchRequest params) throws BusinessCheckException {
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
         String merchantNo = request.getHeader("merchantNo") == null ? "" : request.getHeader("merchantNo");
         String platform = request.getHeader("platform") == null ? "" : request.getHeader("platform");
         Integer page = params.getPage() == null ? 1 : params.getPage();

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

@@ -7,6 +7,7 @@ import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.web.BaseController;
 import com.fuint.framework.web.ResponseObject;
 import com.fuint.repository.model.MtBanner;
+import com.fuint.utils.StringUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -46,7 +47,7 @@ public class ClientPageController extends BaseController {
     @CrossOrigin
     public ResponseObject getPageData(HttpServletRequest request, @RequestParam Map<String, Object> param) throws BusinessCheckException {
         String merchantNo = request.getHeader("merchantNo") == null ? "" : request.getHeader("merchantNo");
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
 
         Map<String, Object> params = new HashMap<>();
         params.put("status", StatusEnum.ENABLED.getKey());

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

@@ -97,7 +97,7 @@ public class ClientPayController extends BaseController {
     @CrossOrigin
     public ResponseObject prePay(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
         String useFor = request.getParameter("type") == null ? "" : request.getParameter("type");
         String merchantNo = request.getHeader("merchantNo");
         UserInfo userInfo = TokenUtil.getUserInfoByToken(token);

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

@@ -197,7 +197,7 @@ public class ClientSignController extends BaseController {
         String captchaCode = param.get("captchaCode") == null ? "" : param.get("captchaCode").toString();
         String uuid = param.get("uuid") == null ? "" : param.get("uuid").toString();
         String shareId = param.get("shareId") == null ? "0" : param.get("shareId").toString();
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
         String userAgent = request.getHeader("user-agent") == null ? "" : request.getHeader("user-agent");
         String ip = CommonUtil.getIPFromHttpRequest(request);
         if (StringUtil.isEmpty(account)) {

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

@@ -6,6 +6,7 @@ import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.web.BaseController;
 import com.fuint.framework.web.ResponseObject;
 import com.fuint.repository.model.MtStore;
+import com.fuint.utils.StringUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -63,7 +64,7 @@ public class ClientStoreController extends BaseController {
     @RequestMapping(value = "/detail", method = RequestMethod.GET)
     @CrossOrigin
     public ResponseObject detail(HttpServletRequest request) throws BusinessCheckException {
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        Integer storeId = StringUtil.isEmpty(request.getHeader("storeId")) ? 0 : Integer.parseInt(request.getHeader("storeId"));
 
         MtStore storeInfo = storeService.queryStoreById(storeId);