Selaa lähdekoodia

Merge branch 'master' of http://49.4.53.36:3000/hotel/hotel-saas-backend

覃浩 2 vuotta sitten
vanhempi
commit
4c1dff8b3d

+ 67 - 9
jeecg-mall-api/src/main/java/org/jeecg/modules/bus/controller/HotelController.java

@@ -25,18 +25,16 @@ import org.jeecg.config.ApiVersion;
 import org.jeecg.config.ApiVersionConstant;
 import org.jeecg.config.WebConfig;
 import org.jeecg.modules.business.dto.BookingOrderSaveDto;
-import org.jeecg.modules.business.entity.BusHotel;
-import org.jeecg.modules.business.entity.BusMarketCouponsCashUsed;
-import org.jeecg.modules.business.entity.BusMemberCard;
-import org.jeecg.modules.business.service.IBusHotelService;
-import org.jeecg.modules.business.service.IBusMemberCardService;
-import org.jeecg.modules.business.service.IBusRoomBookingOrdersService;
+import org.jeecg.modules.business.entity.*;
+import org.jeecg.modules.business.service.*;
 import org.jeecg.modules.business.util.MapUtil;
+import org.jeecg.modules.business.vo.KeLiItemVo;
 import org.jeecg.modules.order.entity.CesOrderComment;
 import org.jeecg.modules.order.service.impl.CesOrderCommentServiceImpl;
 import org.jeecg.modules.rooms.DTO.CanUseRequestParamDto;
 import org.jeecg.modules.rooms.Vo.CanUseResultVo;
 import org.jeecg.modules.rooms.entity.CesRoomLayout;
+import org.jeecg.modules.rooms.entity.CesRooms;
 import org.jeecg.modules.rooms.service.CesRoomLayoutPriceServiceImpl;
 import org.jeecg.modules.rooms.service.CesRoomLayoutServiceImpl;
 import org.jeecg.modules.rooms.service.CesRoomsServiceImpl;
@@ -75,6 +73,10 @@ public class HotelController extends WebConfig {
     private IBusRoomBookingOrdersService busRoomBookingOrdersService;
     @Resource
     private IBusMemberCardService busMemberCardService;
+    @Resource
+    private IBusRoomsLivingOrderService busRoomsLivingOrderService;
+    @Resource
+    private IBusBookingRoomsService busBookingRoomsService;
 
     /**
      * 酒店列表查询
@@ -194,15 +196,71 @@ public class HotelController extends WebConfig {
         busRoomBookingOrders.getOrderInfo().setBookingOrdersType(1);
         String tenantId = TenantContextHolder.getTenantId();
         String userId = ThirdSessionHolder.getUserId();
+        busRoomBookingOrders.getOrderInfo().setThirdLoginUserId(userId);
         LambdaQueryWrapper<BusMemberCard> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(BusMemberCard::getUserId, userId);
-        lambdaQueryWrapper.eq(BusMemberCard::getHotelId, busRoomBookingOrders.getHotelId());
-        Long count = busMemberCardService.count(lambdaQueryWrapper);
-        if (count > 0) {
+        lambdaQueryWrapper.eq(BusMemberCard::getHotelId, busRoomBookingOrders.getHotelId()).last("limit 1");
+        BusMemberCard busMemberCard = busMemberCardService.getOne(lambdaQueryWrapper);
+        if (busMemberCard != null) {
             busRoomBookingOrders.getOrderInfo().setCustomerType(2);
+            busRoomBookingOrders.getOrderInfo().setVipCustomerId(busMemberCard.getId());
         } else {
             busRoomBookingOrders.getOrderInfo().setCustomerType(1);
         }
         return Result.OK("预定成功", busRoomBookingOrdersService.bookingOrderSave(busRoomBookingOrders, isTeam));
     }
+
+
+    /**
+     * 预定/入住订单列表
+     * @param type 1 入住订单查询->livingStatus | 2 bookingStatus
+     * @param livingStatus -1 正常入住,1 已结账退房,2 先走未结,3 联房退房
+     * @param bookingStatus 1 预定中 2 在住 3 已取消
+     * @return
+     */
+    @ApiOperation(value="预定/入住订单列表", notes="预定/入住订单列表")
+    @RequestMapping(value = "/kedan-orders",method = RequestMethod.GET)
+    @ApiLogin
+    @ApiVersion(group = ApiVersionConstant.FAP_MALLAPI101)
+    public Result<IPage<KeLiItemVo>> keli(Page<KeLiItemVo> page,String keyw, Integer livingStatus, String hotelId, Integer type, Integer bookingStatus) {
+        if (type == null) throw new JeecgBootException("参数错误");
+        if (type == 1 && livingStatus == null) throw new JeecgBootException("参数错误");
+        if (type == 2 && bookingStatus == null) throw new JeecgBootException("参数错误");
+        String userId = ThirdSessionHolder.getUserId();
+        if (type == 1)
+            return Result.OK(busRoomBookingOrdersService.getLivingOrderKL(livingStatus, keyw, hotelId, userId, page));
+        if (type == 2)
+            return Result.OK(busRoomBookingOrdersService.getBookingOrderKL(bookingStatus, keyw, hotelId, userId, page));
+        return null;
+    }
+
+    /**
+     * 查询已入住酒店信息
+     * @return
+     */
+    @ApiOperation(value = "查询已入住酒店信息", notes = "查询已入住酒店信息")
+    @GetMapping(value = "/living-hotel-info")
+    @ApiLogin
+    @ApiVersion(group = ApiVersionConstant.FAP_MALLAPI101)
+    public Result<BusHotel> getLivingInfo() {
+        BusHotel busHotel = null;
+        String tenantId = TenantContextHolder.getTenantId();
+        String userId = ThirdSessionHolder.getUserId();
+        LambdaQueryWrapper<BusRoomsLivingOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(BusRoomsLivingOrder::getThirdLoginUserId, userId).orderByDesc(BusRoomsLivingOrder::getCreateTime).last("limit 1");
+        BusRoomsLivingOrder busRoomsLivingOrder = busRoomsLivingOrderService.getOne(lambdaQueryWrapper);
+        if (busRoomsLivingOrder != null && StringUtils.isNotBlank(busRoomsLivingOrder.getBookingOrderId())) {
+            LambdaQueryWrapper<BusBookingRooms> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper1.eq(BusBookingRooms::getBookingOrdersId, busRoomsLivingOrder.getBookingOrderId()).last("limit 1");
+            BusBookingRooms bookingRooms = busBookingRoomsService.getOne(lambdaQueryWrapper1);
+            if (bookingRooms != null) {
+                CesRooms cesRooms = cesRoomsService.getById(bookingRooms.getRoomId());
+                if (cesRooms != null) {
+                    busHotel = busHotelService.getById(cesRooms.getHotelId());
+                    busHotel.setRoomName(cesRooms.getName());
+                }
+            }
+        }
+        return Result.ok(busHotel);
+    }
 }

+ 113 - 0
jeecg-mall-api/src/main/java/org/jeecg/modules/bus/controller/OrderMessageController.java

@@ -0,0 +1,113 @@
+package org.jeecg.modules.bus.controller;
+
+import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.jeecg.annotation.ApiLogin;
+import org.jeecg.com.util.ThirdSessionHolder;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.TenantContextHolder;
+import org.jeecg.config.ApiVersion;
+import org.jeecg.config.ApiVersionConstant;
+import org.jeecg.config.WebConfig;
+import org.jeecg.modules.business.entity.BusBookingRooms;
+import org.jeecg.modules.business.entity.BusHotel;
+import org.jeecg.modules.business.entity.BusRoomsLivingOrder;
+import org.jeecg.modules.business.service.IBusBookingRoomsService;
+import org.jeecg.modules.business.service.IBusHotelService;
+import org.jeecg.modules.business.service.IBusRoomBookingOrdersService;
+import org.jeecg.modules.business.service.IBusRoomsLivingOrderService;
+import org.jeecg.modules.order.entity.CesOrderMessage;
+import org.jeecg.modules.order.service.ICesOrderMessageService;
+import org.jeecg.modules.rooms.entity.CesRooms;
+import org.jeecg.modules.rooms.service.CesRoomsServiceImpl;
+import org.jeecg.modules.wxuser.entity.MallUserInfo;
+import org.jeecg.modules.wxuser.service.IUserInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @Description: ces_order_message
+ * @Author: jeecg-boot
+ * @Date:   2023-03-24
+ * @Version: V1.0
+ */
+@Api(tags="留言/投诉添加")
+@RestController
+@RequestMapping("/mall-api/hotel-order-message")
+@Slf4j
+public class OrderMessageController extends WebConfig {
+	@Resource
+	private ICesOrderMessageService cesOrderMessageService;
+	 @Resource
+	 private IBusHotelService busHotelService;
+	@Resource
+	private IUserInfoService userInfoService;
+	@Resource
+	private IBusRoomsLivingOrderService busRoomsLivingOrderService;
+	@Resource
+	private IBusRoomBookingOrdersService busRoomBookingOrdersService;
+	@Resource
+	private IBusBookingRoomsService busBookingRoomsService;
+	@Resource
+	private CesRoomsServiceImpl cesRoomsService;
+
+
+	/**
+	 *   留言/投诉添加
+	 *
+	 * @param cesOrderMessage
+	 * @return
+	 */
+	@AutoLog(value = "留言/投诉添加")
+	@ApiOperation(value="留言/投诉添加", notes="留言/投诉添加")
+	@ApiLogin
+	@ApiVersion(group = ApiVersionConstant.FAP_MALLAPI101)
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody CesOrderMessage cesOrderMessage) {
+		String tenantId = TenantContextHolder.getTenantId();
+		String userId = ThirdSessionHolder.getUserId();
+		cesOrderMessage.setTenantId(tenantId);
+		cesOrderMessage.setUserId(userId);
+		cesOrderMessage.setCreateDate(DateTime.now());
+		MallUserInfo mallUserInfo = userInfoService.getById(userId);
+		if (mallUserInfo != null) {
+			cesOrderMessage.setUserMobile(mallUserInfo.getMobile());
+			cesOrderMessage.setUserName(mallUserInfo.getNickName());
+		}
+		LambdaQueryWrapper<BusRoomsLivingOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(BusRoomsLivingOrder::getThirdLoginUserId, userId).last("limit 1");
+		BusRoomsLivingOrder busRoomsLivingOrder = busRoomsLivingOrderService.getOne(lambdaQueryWrapper);
+		if (busRoomsLivingOrder != null && StringUtils.isNotBlank(busRoomsLivingOrder.getBookingOrderId())) {
+			LambdaQueryWrapper<BusBookingRooms> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper1.eq(BusBookingRooms::getBookingOrdersId, busRoomsLivingOrder.getBookingOrderId()).last("limit 1");
+			BusBookingRooms bookingRooms = busBookingRoomsService.getOne(lambdaQueryWrapper1);
+			if (bookingRooms != null) {
+				CesRooms cesRooms = cesRoomsService.getById(bookingRooms.getRoomId());
+				if (cesRooms != null) {
+					cesOrderMessage.setRoomNo(cesRooms.getName());
+				}
+			}
+		}
+		cesOrderMessageService.save(cesOrderMessage);
+		return Result.OK("添加成功!");
+	}
+
+
+}

+ 205 - 0
jeecg-mall-api/src/main/java/org/jeecg/modules/bus/controller/OrderRepairController.java

@@ -0,0 +1,205 @@
+package org.jeecg.modules.bus.controller;
+
+import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.lowagie.text.LargeElement;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.jeecg.annotation.ApiLogin;
+import org.jeecg.com.util.ThirdSessionHolder;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.TenantContextHolder;
+import org.jeecg.config.ApiVersion;
+import org.jeecg.config.ApiVersionConstant;
+import org.jeecg.config.WebConfig;
+import org.jeecg.modules.bus.vo.BusServiceRepairCategoryVo;
+import org.jeecg.modules.business.entity.*;
+import org.jeecg.modules.business.service.*;
+import org.jeecg.modules.order.entity.CesOrderRepair;
+import org.jeecg.modules.order.service.ICesOrderRepairService;
+import org.jeecg.modules.rooms.entity.CesRooms;
+import org.jeecg.modules.rooms.service.CesRoomsServiceImpl;
+import org.jeecg.modules.wxuser.entity.MallUserInfo;
+import org.jeecg.modules.wxuser.service.IUserInfoService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+import java.util.UUID;
+
+/**
+* @Description: ces_order_repair
+* @Author: jeecg-boot
+* @Date:   2023-03-27
+* @Version: V1.0
+*/
+@Api(tags="服务维修单")
+@RestController
+@RequestMapping("/mall-api/hotel-order-repair")
+@Slf4j
+public class OrderRepairController extends WebConfig {
+   @Resource
+   private ICesOrderRepairService cesOrderRepairService;
+    @Resource
+    private IBusHotelService busHotelService;
+    @Resource
+    private IUserInfoService userInfoService;
+    @Resource
+    private IBusRoomsLivingOrderService busRoomsLivingOrderService;
+    @Resource
+    private IBusRoomBookingOrdersService busRoomBookingOrdersService;
+    @Resource
+    private IBusBookingRoomsService busBookingRoomsService;
+    @Resource
+    private CesRoomsServiceImpl cesRoomsService;
+    @Resource
+    private IBusServiceRepairService busServiceRepairService;
+    @Resource
+    private IBusServiceRepairCategoryService busServiceRepairCategoryService;
+   /**
+    * 服务维修单分页列表查询
+    *
+    * @param cesOrderRepair
+    * @param pageNo
+    * @param pageSize
+    * @param req
+    * @return
+    */
+   @ApiLogin
+   @ApiVersion(group = ApiVersionConstant.FAP_MALLAPI101)
+   @ApiOperation(value="服务维修单分页列表查询", notes="服务维修单分页列表查询")
+   @GetMapping(value = "/list")
+   public Result<IPage<CesOrderRepair>> queryPageList(CesOrderRepair cesOrderRepair,
+                                  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+                                  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                                                      @RequestParam(name="startTime",required = false) String startTime,
+                                                      @RequestParam(name="endTime",required = false) String endTime,
+                                  HttpServletRequest req) {
+       LambdaQueryWrapper<CesOrderRepair> queryWrapper = QueryGenerator.initQueryWrapper(cesOrderRepair, req.getParameterMap()).lambda();
+       String tenantId = TenantContextHolder.getTenantId();
+       String userId = ThirdSessionHolder.getUserId();
+       queryWrapper.eq(CesOrderRepair::getUserId,userId);
+       Page<CesOrderRepair> page = new Page<CesOrderRepair>(pageNo, pageSize);
+       IPage<CesOrderRepair> pageList = cesOrderRepairService.page(page, queryWrapper);
+       pageList.getRecords().forEach(item -> {
+           BusHotel hotel = busHotelService.getById(item.getHotelId());
+           if (hotel != null) {
+               item.setHotelName(hotel.getName());
+           }
+       });
+       return Result.OK(pageList);
+   }
+
+   /**
+    *   服务/维修单添加
+    *
+    * @param cesOrderRepair
+    * @return
+    */
+   @AutoLog(value = "服务/维修单添加")
+   @ApiOperation(value="服务/维修单添加", notes="服务/维修单添加")
+   @ApiLogin
+   @ApiVersion(group = ApiVersionConstant.FAP_MALLAPI101)
+   @PostMapping(value = "/add")
+   public Result<String> add(@RequestBody CesOrderRepair cesOrderRepair) {
+       String tenantId = TenantContextHolder.getTenantId();
+       String userId = ThirdSessionHolder.getUserId();
+       cesOrderRepair.setTenantId(tenantId);
+       cesOrderRepair.setUserId(userId);
+       cesOrderRepair.setCreateDate(DateTime.now());
+       String prefix = "FW";
+       if (cesOrderRepair.getType().equals(2)) {
+           prefix = "WX";
+       }
+       cesOrderRepair.setOrderId(randomNumber(prefix));
+       MallUserInfo mallUserInfo = userInfoService.getById(userId);
+       if (mallUserInfo != null) {
+           cesOrderRepair.setUserMobile(mallUserInfo.getMobile());
+           cesOrderRepair.setUserName(mallUserInfo.getNickName());
+       }
+       LambdaQueryWrapper<BusRoomsLivingOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+       lambdaQueryWrapper.eq(BusRoomsLivingOrder::getThirdLoginUserId, userId).orderByDesc(BusRoomsLivingOrder::getCreateTime).last("limit 1");
+       BusRoomsLivingOrder busRoomsLivingOrder = busRoomsLivingOrderService.getOne(lambdaQueryWrapper);
+       if (busRoomsLivingOrder != null && StringUtils.isNotBlank(busRoomsLivingOrder.getBookingOrderId())) {
+           LambdaQueryWrapper<BusBookingRooms> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
+           lambdaQueryWrapper1.eq(BusBookingRooms::getBookingOrdersId, busRoomsLivingOrder.getBookingOrderId()).last("limit 1");
+           BusBookingRooms bookingRooms = busBookingRoomsService.getOne(lambdaQueryWrapper1);
+           if (bookingRooms != null) {
+               CesRooms cesRooms = cesRoomsService.getById(bookingRooms.getRoomId());
+               if (cesRooms != null) {
+                   cesOrderRepair.setRoomNo(cesRooms.getName());
+               }
+           }
+       }
+       cesOrderRepairService.save(cesOrderRepair);
+       return Result.OK("添加成功!");
+   }
+
+    /**
+     * 生成16位数字+prefix
+     * @param prefix
+     * @return
+     */
+    private String randomNumber(String prefix) {
+        int first = new Random(10).nextInt(8) + 1;
+        int hashCode = UUID.randomUUID().toString().hashCode();
+        if (hashCode < 0) {
+            hashCode = -hashCode;
+        }
+        return prefix + first + String.format("%015d", hashCode);
+    }
+
+    /**
+     * 维修项目列表
+     * @param hotleId
+     * @return
+     */
+    @ApiLogin
+    @ApiVersion(group = ApiVersionConstant.FAP_MALLAPI101)
+    @ApiOperation(value="维修项目列表", notes="维修项目列表")
+    @GetMapping(value = "/repair-project-list")
+    public Result<List<BusServiceRepair>> getRepairProjectList( @RequestParam(name="hotleId") String hotleId) {
+        LambdaQueryWrapper<BusServiceRepair> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(BusServiceRepair::getHotelId, hotleId);
+        queryWrapper.eq(BusServiceRepair::getType, 2);
+        List<BusServiceRepair> list = busServiceRepairService.list(queryWrapper);
+        return Result.OK(list);
+    }
+
+    /**
+     * 服务项目列表
+     * @param hotleId
+     * @return
+     */
+    @ApiLogin
+    @ApiVersion(group = ApiVersionConstant.FAP_MALLAPI101)
+    @ApiOperation(value="服务项目列表", notes="服务项目列表")
+    @GetMapping(value = "/service-project-list")
+    public Result<List<BusServiceRepairCategoryVo>> getServiceProjectList(@RequestParam(name="hotleId") String hotleId) {
+        LambdaQueryWrapper<BusServiceRepairCategory> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(BusServiceRepairCategory::getHotelId, hotleId);
+        List<BusServiceRepairCategoryVo> voList = new ArrayList<>();
+        List<BusServiceRepairCategory> list = busServiceRepairCategoryService.list(queryWrapper);
+        list.forEach(t -> {
+            BusServiceRepairCategoryVo vo = new BusServiceRepairCategoryVo();
+            vo.setName(t.getName());
+            LambdaQueryWrapper<BusServiceRepair> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper2.eq(BusServiceRepair::getHotelId, hotleId);
+            lambdaQueryWrapper2.eq(BusServiceRepair::getType, 1);
+            lambdaQueryWrapper2.eq(BusServiceRepair::getCategoryId, t.getId());
+            List<BusServiceRepair> busServiceRepairs = busServiceRepairService.list(lambdaQueryWrapper2);
+            vo.setList(busServiceRepairs);
+            voList.add(vo);
+        });
+        return Result.OK(voList);
+    }
+}

+ 11 - 0
jeecg-mall-api/src/main/java/org/jeecg/modules/bus/vo/BusServiceRepairCategoryVo.java

@@ -0,0 +1,11 @@
+package org.jeecg.modules.bus.vo;
+
+import lombok.Data;
+import org.jeecg.modules.business.entity.BusServiceRepair;
+import org.jeecg.modules.business.entity.BusServiceRepairCategory;
+
+import java.util.List;
+@Data
+public class BusServiceRepairCategoryVo extends BusServiceRepairCategory {
+    private List<BusServiceRepair> list;
+}

+ 4 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusHotel.java

@@ -282,4 +282,8 @@ public class BusHotel implements Serializable {
     @ApiModelProperty(value = "距离")
     @TableField(exist = false)
     private BigDecimal distance;
+
+    @ApiModelProperty(value = "房号")
+    @TableField(exist = false)
+    private String roomName;
 }