Pārlūkot izejas kodu

删除 AppBookImplService.java

陈士柏 2 gadi atpakaļ
vecāks
revīzija
3291791444
1 mainītis faili ar 0 papildinājumiem un 327 dzēšanām
  1. 0 327
      mhotel/src/com/happy/service/impl/AppBookImplService.java

+ 0 - 327
mhotel/src/com/happy/service/impl/AppBookImplService.java

@@ -1,327 +0,0 @@
-package com.happy.service.impl;
-
-import com.baidubce.model.User;
-import com.happy.Model.*;
-import com.happy.Model.weixin.Users;
-import com.happy.Until.DateUtil;
-import com.happy.Until.Enum.OrderEnum;
-import com.happy.Until.Enum.PayEnum;
-import com.happy.Until.Func;
-import com.happy.Until.TimeExchange;
-import com.happy.Until.UUIDUtil;
-import com.happy.common.wx.WxUtil;
-import com.happy.constant.ResultStatusCode;
-import com.happy.dao.BookDao;
-import com.happy.dto.IPage;
-import com.happy.service.*;
-import com.happy.vo.DailyPriceVo;
-import com.happy.vo.HousePriceDataVo;
-import com.happy.vo.HousePriceOneDataVo;
-import com.happy.vo.HousePriceResultVo;
-import org.apache.struts2.ServletActionContext;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
-import java.math.BigDecimal;
-import java.text.ParseException;
-import java.util.*;
-import java.util.stream.Collectors;
-
-
-@Service("AppBookService")
-public class AppBookImplService implements AppBookService {
-
-    @Resource
-    public BookService bookService;
-    @Resource
-    public BookinglogService bookinglogService;
-    @Resource
-    public HotelService hotelService;
-    @Resource
-    public HouseService houseService;
-    @Resource
-    public UserService userService;
-    @Resource
-    public HotelDictService hotelDictService;
-    @Resource
-    public AdminManagerService adminManagerService;
-    @Resource
-    public HousePriceService housePriceService;
-
-    @Resource
-    public HotelCoupomService hotelCoupomService;
-    @Resource
-    public HotelCoupomStatusService hotelCoupomStatusService;
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public String createOrder(String bookingId, String houseId, String startTime, String endTime, String houseOrderNumber, String userName, String userPhone, String userId, String complaintId, String useId) throws ParseException {
-        if (Func.checkNull(houseId) || Func.checkNull(startTime) || Func.checkNull(endTime)
-                || Func.checkNull(houseOrderNumber) || Func.checkNull(userName) || Func.checkNull(userPhone) || Func.checkNull(userId))
-            return null;
-
-        House house = houseService.getById(houseId);
-        StringBuilder s1 = new StringBuilder("");
-        s1.append(" and manager_id = '").append(house.getManagerId()).append("' ");
-        Hotel hotel = hotelService.getOen(s1.toString());
-        Users user = userService.queryByUserId(userId);
-        AdminManager adminManager = adminManagerService.getById(Func.parseInt(house.getManagerId()));
-        if (house == null || hotel == null || user == null || adminManager == null)
-            return "无法获取数据";
-
-        Booking booking = new Booking();
-
-        int day = DateUtil.getDayDiff(startTime, endTime); // 中间多少天
-        String orderLiveTime = Func.parseInt(houseOrderNumber) + OrderEnum.间.toString() + day + OrderEnum.晚.toString();
-        String hotelType = hotelDictService.getDictNameById(Integer.parseInt(hotel.getHtype()));// 民宿类型hotel.getHtype()
-
-
-        // 设置民宿信息
-        booking.setHotelId(Func.parseStr(hotel.getId()));
-        booking.setHotelName(adminManager.getHotelName()); // 创建表单的时候,取酒店名称(数据来源于admin_manager中的hotelname)
-        booking.setHotelHposition(hotel.getHposition());
-        booking.setHotelHpositionWens(hotel.getHpositionWens());
-        booking.setHotelManagerId(hotel.getManagerId());
-        booking.setHotelTownship(adminManager.getHotelTownship());
-        booking.setHotelConfig(hotel.getHconfig());
-        booking.setHotelType(hotelType);  // 民宿类型(舒适形、舒适型、包吃住型、普通型)
-        booking.setHotelIsCanorder(Func.parseStr(hotel.getIsCanorder())); // 是否自动取消订单
-        booking.setHotelIsOrder(Func.parseStr(hotel.getIsOrder())); // 是否自动接单
-        booking.setHotelIsCheckout(Func.parseStr(hotel.getIsCheckout())); // 是否自动离店
-        booking.setHotelPhone(adminManager.getCorpnPhone());
-        booking.setHotelPerson(adminManager.getCorpnName());
-        booking.setLockTime(hotel.getLockTime());
-
-        // 设置房型信息
-        booking.setHouseId(Func.parseStr(house.getId()));
-        booking.setHouseName(house.gethName());
-        booking.setHouseConfig(house.gethConfig());
-        booking.setHouseUnitPrice(house.getPrice());
-        booking.setHouseOrderNumber(Func.parseInt(houseOrderNumber));
-        booking.setHouseAreas(house.gethAreas());
-        booking.setHouseRemake(house.getRemark());
-
-        /**
-         * 2023-09-15 A-jax 订单总价等于房间数量 * 这些天的价格总和
-         */
-        List<HousePriceDataVo> priceDatas = housePriceService.queryPriceByHouseId(house.getId(), startTime, TimeExchange.TimeDesD(endTime, -1));
-
-        List<HousePriceOneDataVo> oneDatas = new ArrayList<>();
-        //将数据处理成单天的
-        for (HousePriceDataVo hp : priceDatas) {
-            if (hp.getStartTime().equals(hp.getEndTime())) {
-                HousePriceOneDataVo oneData = new HousePriceOneDataVo();
-                oneData.setSetDate(hp.getStartTime());
-                oneData.setCreateDate(hp.getCreateDate());
-                oneData.setPrice(hp.getPrice());
-                oneData.setHouseId(hp.getHouseId());
-                oneDatas.add(oneData);
-            } else {
-                int beDateNum = TimeExchange.daysBetween(hp.getStartTime(), hp.getEndTime());
-                for (int i = 0; i <= beDateNum; i++) {
-                    HousePriceOneDataVo oneData = new HousePriceOneDataVo();
-                    oneData.setSetDate(TimeExchange.TimeDesD(hp.getStartTime(), i));
-                    oneData.setCreateDate(hp.getCreateDate());
-                    oneData.setPrice(hp.getPrice());
-                    oneData.setHouseId(hp.getHouseId());
-                    oneDatas.add(oneData);
-                }
-            }
-        }
-
-        List<String> dateStrs = new ArrayList<>();
-        int dateNum = TimeExchange.daysBetween(startTime, endTime);
-        for (int i = 0; i <= dateNum; i++) {
-            String date = TimeExchange.TimeDesD(startTime, i);
-            dateStrs.add(date);
-        }
-
-        /**
-         * 获取该房型默认价格
-         */
-        Double housePrice = houseService.queryPriceByHouseId(house.getId());
-        Double dayPrices = 0.0;
-        for (String dateStr : dateStrs) {
-            HousePriceResultVo data = new HousePriceResultVo();
-            data.setDate(dateStr);
-            List<HousePriceOneDataVo> datas = oneDatas.stream().filter(e -> e.getSetDate().equals(dateStr)).sorted(Comparator.comparing(HousePriceOneDataVo::getCreateDate, Comparator.reverseOrder())).collect(Collectors.toList());
-
-            if (!dateStr.equals(endTime)) {
-                if (datas.size() > 0) {
-                    dayPrices = dayPrices + datas.get(0).getPrice();
-                } else {
-                    dayPrices = dayPrices + housePrice;
-                }
-            }
-        }
-
-        double totalPrice = Func.parseDbl(houseOrderNumber) * dayPrices;
-
-        if (!Func.checkNull(complaintId) && !Func.checkNull(useId)) {
-            HotelCouponStatus hotelCouponStatus = hotelCoupomStatusService.getById(useId);
-            if (hotelCouponStatus != null) {
-                hotelCouponStatus.setStatus(2);
-                hotelCouponStatus.setBookingId(bookingId);
-                BigDecimal totalPriceBigDecimal = new BigDecimal(totalPrice);
-
-                //        优惠券
-                HotelCoupon hotelCoupon = hotelCoupomService.getById(complaintId);
-                Integer type = hotelCoupon.getType();
-                if (1 == type) {
-//            满减金额
-                    Double meetPrice = hotelCoupon.getMeetPrice();
-                    BigDecimal meetPriceBigDecimal = new BigDecimal(meetPrice);
-
-                    if (meetPrice < totalPrice) {
-                        //            减免金额
-                        Double deductionPrice = hotelCoupon.getDeductionPrice();
-                        BigDecimal deductionPriceBigDecimal = new BigDecimal(deductionPrice);
-                        //            实付金额
-                        BigDecimal subtract = totalPriceBigDecimal.subtract(deductionPriceBigDecimal);
-                        totalPrice = subtract.doubleValue();
-                        hotelCouponStatus.setDiscountAmount(deductionPrice);
-                        hotelCoupomStatusService.update(hotelCouponStatus);
-                    }
-
-                } else if (2 == type) {
-//            享受的折扣
-                    Double rebatePrice = hotelCoupon.getRebatePrice();
-                    BigDecimal rebatePriceBigDecimal = new BigDecimal(rebatePrice / 10);
-
-//            最大减免金额
-                    Double maxDeduction = hotelCoupon.getMaxDeduction();
-                    BigDecimal maxDeductionBigDecimal = new BigDecimal(maxDeduction);
-
-//            折扣后的价格
-                    BigDecimal bigDecimal = totalPriceBigDecimal.multiply(rebatePriceBigDecimal).setScale(2, BigDecimal.ROUND_HALF_UP);
-                    double v = bigDecimal.doubleValue();
-
-//            减去最大折扣后的价格
-                    BigDecimal subtract = totalPriceBigDecimal.subtract(maxDeductionBigDecimal);
-                    double v1 = subtract.doubleValue();
-
-                    if (v > v1) {
-                        totalPrice = v;
-                        BigDecimal subtract1 = totalPriceBigDecimal.subtract(bigDecimal);
-                        hotelCouponStatus.setDiscountAmount(subtract1.doubleValue());
-                    } else if (v < v1) {
-                        totalPrice = v1;
-                        hotelCouponStatus.setDiscountAmount(maxDeduction);
-                    } else if (v == v1) {
-                        totalPrice = v1;
-                        hotelCouponStatus.setDiscountAmount(maxDeduction);
-                    }
-
-                    hotelCoupomStatusService.update(hotelCouponStatus);
-
-                }
-            }
-        }
-
-        booking.setHouseTotalPrice(totalPrice);
-
-
-        // 设置住客信息
-        booking.setUserName(userName);
-        booking.setUserPhone(userPhone);
-        booking.setOrderStartTime(startTime);
-        booking.setOrderEndTime(endTime);
-        booking.setOrderLiveTime(orderLiveTime);
-
-        // 订单信息
-        booking.setOrderNum(Func.parseStr(WxUtil.mchOrderNo()));// 订单号
-        booking.setOrderStatus(Func.parseStr(PayEnum.待支付.getNum())); // 1待支付状态
-        booking.setCreateTime(DateUtil.getFormatPaternDate(DateUtil.getCurrentDate()));
-        booking.setCreateUserid(userId);
-        booking.setId(Func.parseInt(bookingId));
-        int i = bookService.insertBooking(booking);
-
-        // 生成订单时,写入数据操作
-        bookinglogService.addBooklog(OrderEnum.生成订单.toString(), booking);
-
-        if (i == 0)
-            return ResultStatusCode.CANNTBOOKING.CANNTBOOKING.getMsg();
-
-        return null;
-    }
-
-    @Override
-    public String varificationHouse(String houseId, String startTime, String endTime, String houseOrderNumber) {
-        House house = houseService.getById(houseId);
-        if (house == null)
-            return "无此房间,请重新查询";
-        if (Func.checkNull(houseOrderNumber))
-            houseOrderNumber = "0";
-
-        if (house.getNumber() < Func.parseInt(houseOrderNumber))
-            return OrderEnum.超出限定房间数量.toString();
-
-        // 判断是否有房间,对每个房型进行标识
-        StringBuffer strSqlBook = new StringBuffer();
-        strSqlBook.append(" and house_id = '").append(house.getId()).append("' ");
-        strSqlBook.append(" and hotel_manager_id = '").append(house.getManagerId()).append("' ");
-//        if (!Func.checkNull(startTime))
-//            strSqlBook.append(" and order_start_time >= '").append(startTime).append(" 00:00:00  ' ");
-//        if (!Func.checkNull(endTime))
-//            strSqlBook.append(" and order_end_time < '").append(endTime).append(" 23:59:59 ' ");
-
-        //1待支付,2已支付,3待入住,4已入住,5已消费,6支付超时,7已取消,8已退单,9已退款
-        strSqlBook.append(" and  ( order_status = '").append(PayEnum.待支付.getNum()).append("' ");
-        strSqlBook.append(" or order_status = '").append(PayEnum.已支付.getNum()).append("' ");
-        strSqlBook.append(" or order_status = '").append(PayEnum.待入住.getNum()).append("' ");
-        strSqlBook.append(" or order_status = '").append(PayEnum.已入住.getNum()).append("' ) ");
-
-        List<Booking> bookList = bookService.queryList(strSqlBook.toString());
-        if (bookList == null)
-            return null;
-
-        Map<String, Integer> timeMap = new HashMap(); // map<时间,天数>进行累加
-//        int totalNum = 0;
-        for (Booking booking : bookList) {
-            if (Func.checkNull(booking.getHouseId()))
-                continue;
-
-            int day = DateUtil.getDayDiff(booking.getOrderStartTime(), booking.getOrderEndTime());
-            for (int i = 0; i < day; i++) {
-                String time = DateUtil.parseDateToStr(DateUtil.addDate(DateUtil.parseDateOnly(booking.getOrderStartTime()), Calendar.DATE, i), DateUtil.Time_Formatter_Day);
-                if (!timeMap.containsKey(time)) {
-                    timeMap.put(time, booking.getHouseOrderNumber());
-                    continue;
-                }
-
-                timeMap.put(time, booking.getHouseOrderNumber() + Func.parseInt(timeMap.get(time)));
-            }
-        }
-
-        List<String> dayQueryList = new ArrayList();
-        // 遍历查询的每一天当做一个列表数据
-        int dayQuerys = DateUtil.getDayDiff(startTime, endTime);
-        for (int i = 0; i < dayQuerys; i++) {
-            String time = DateUtil.parseDateToStr(DateUtil.addDate(DateUtil.parseDateOnly(startTime), Calendar.DATE, i), DateUtil.Time_Formatter_Day);
-            dayQueryList.add(time);
-        }
-
-
-        for (String dayQuery : dayQueryList) {
-            if (Func.checkNull(dayQuery))
-                continue;
-
-            if (timeMap.containsKey(dayQuery)) {
-                int totalNum = timeMap.get(dayQuery); // 当天房间的数量
-                // 订单中房数量》= 总房间数量 表示已满
-                if (totalNum >= house.getNumber())
-                    return dayQuery + OrderEnum.房间已满.toString();
-
-                // 现存房数量 《 要订的订房数量   表示已满
-                if ((house.getNumber() - totalNum) < Func.parseInt(houseOrderNumber))
-                    return dayQuery + OrderEnum.房间已满.toString();
-            }
-
-        }
-
-
-        return null;
-    }
-
-}