diff --git a/HMS/src/main/java/com/hqyj/seven/dao/CustomerDao.java b/HMS/src/main/java/com/hqyj/seven/dao/CustomerDao.java index 168af532c45b40f69bea5f294aeaf007e8340dfd..10b6b192cc03935b818c1ecd2a329bade835b042 100644 --- a/HMS/src/main/java/com/hqyj/seven/dao/CustomerDao.java +++ b/HMS/src/main/java/com/hqyj/seven/dao/CustomerDao.java @@ -8,4 +8,5 @@ import java.util.List; public interface CustomerDao { List queryAll(); int updataByCustomerIdToremainder(@Param("money") double money, @Param("id") int id); + Customer queryByCustomer(int CustomerId); } diff --git a/HMS/src/main/java/com/hqyj/seven/dao/EnterDao.java b/HMS/src/main/java/com/hqyj/seven/dao/EnterDao.java index 42a01ee2c8af62f11d706091433254b60bbeefc7..d7ba0624152d1a86b7d831271cddbec1e53d7955 100644 --- a/HMS/src/main/java/com/hqyj/seven/dao/EnterDao.java +++ b/HMS/src/main/java/com/hqyj/seven/dao/EnterDao.java @@ -1,7 +1,9 @@ package com.hqyj.seven.dao; import com.hqyj.seven.pojo.Enter; +import org.apache.ibatis.annotations.Param; public interface EnterDao { int inserintoEnter(Enter enter); + Enter queryByHouseIdAndTime(@Param("HouseId") int HouseId, @Param("time") String time); } diff --git a/HMS/src/main/java/com/hqyj/seven/dao/Feedao.java b/HMS/src/main/java/com/hqyj/seven/dao/Feedao.java index 4232d7f52c0a1130085f3e482821d9c39cd8ada3..fb04441abff58c2881a9440f876ae829abc5d5b1 100644 --- a/HMS/src/main/java/com/hqyj/seven/dao/Feedao.java +++ b/HMS/src/main/java/com/hqyj/seven/dao/Feedao.java @@ -6,4 +6,5 @@ import com.hqyj.seven.pojo.Fee; public interface Feedao { //插入数据 int inserintoFee(Fee fee); + } diff --git a/HMS/src/main/java/com/hqyj/seven/service/CustomerService.java b/HMS/src/main/java/com/hqyj/seven/service/CustomerService.java index f847b96a552bf82f380b0ccef74c6dd57b96d501..3c950a2850b6a77c856a6acfb574a7b0cb1c7f50 100644 --- a/HMS/src/main/java/com/hqyj/seven/service/CustomerService.java +++ b/HMS/src/main/java/com/hqyj/seven/service/CustomerService.java @@ -1,5 +1,10 @@ package com.hqyj.seven.service; +import com.hqyj.seven.pojo.Customer; + public interface CustomerService { + //住房更新金额 int updateByNameToRemainder(double money, int id); + //按id查找用户 + Customer queryById(int customerId); } diff --git a/HMS/src/main/java/com/hqyj/seven/service/EnterService.java b/HMS/src/main/java/com/hqyj/seven/service/EnterService.java index 2bc0d41f383b070497257bcb77f44729304bfac7..dc35666cc594b57de43cf4625d447c3ebccfa0d8 100644 --- a/HMS/src/main/java/com/hqyj/seven/service/EnterService.java +++ b/HMS/src/main/java/com/hqyj/seven/service/EnterService.java @@ -5,4 +5,6 @@ import com.hqyj.seven.pojo.Enter; public interface EnterService { int insertEnter(Enter enter); + //安照房间号和住房时间查找住房id + Enter queryByHouseIdAndTime(int CustomerId, String time); } diff --git a/HMS/src/main/java/com/hqyj/seven/service/FeeService.java b/HMS/src/main/java/com/hqyj/seven/service/FeeService.java index b0b76fed6b5cc6ffdce3d2572272ce881919d62f..c1c4d504826776a00cf32ee57f98a31acfb93cec 100644 --- a/HMS/src/main/java/com/hqyj/seven/service/FeeService.java +++ b/HMS/src/main/java/com/hqyj/seven/service/FeeService.java @@ -1,8 +1,11 @@ package com.hqyj.seven.service; +import com.hqyj.seven.pojo.Enter; import com.hqyj.seven.pojo.Fee; public interface FeeService { //插入数据 int insertFee(Fee fee); + //安照房间号和住房时间查找住房id + } diff --git a/HMS/src/main/java/com/hqyj/seven/service/HouseService.java b/HMS/src/main/java/com/hqyj/seven/service/HouseService.java index a3cff22cfe60ad70bb51435cf81139f948222b0a..aaf21a96713beacf2b1157e28bc2f830453475a6 100644 --- a/HMS/src/main/java/com/hqyj/seven/service/HouseService.java +++ b/HMS/src/main/java/com/hqyj/seven/service/HouseService.java @@ -4,6 +4,7 @@ import com.hqyj.seven.pojo.Enter; import com.hqyj.seven.pojo.House; import com.hqyj.seven.pojo.User; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -27,5 +28,5 @@ public interface HouseService { //删除客房 int deleteHouseI(int house_id); //住房功能 - int checkIn( int customerId,String name,int day); + public Map checkIn(int customerId, String name,int day,int numberOfPeople,int userId) throws ParseException; } diff --git a/HMS/src/main/java/com/hqyj/seven/service/impl/CustomerServiceImpl.java b/HMS/src/main/java/com/hqyj/seven/service/impl/CustomerServiceImpl.java index fbed7e088c11087e5e6af8b90dc96f55088721e0..ecbe30cd4e3f4adb895dc95952b02625650e3f61 100644 --- a/HMS/src/main/java/com/hqyj/seven/service/impl/CustomerServiceImpl.java +++ b/HMS/src/main/java/com/hqyj/seven/service/impl/CustomerServiceImpl.java @@ -1,6 +1,7 @@ package com.hqyj.seven.service.impl; import com.hqyj.seven.dao.CustomerDao; +import com.hqyj.seven.pojo.Customer; import com.hqyj.seven.service.CustomerService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -9,9 +10,13 @@ import org.springframework.stereotype.Service; public class CustomerServiceImpl implements CustomerService { @Autowired private CustomerDao customerDao; - @Override public int updateByNameToRemainder(double money, int id) { - return customerDao.updataByCustomerIdToremainder(money,id); + return customerDao.updataByCustomerIdToremainder(money,id); + } + //按用户id查找信息 + @Override + public Customer queryById(int customerId) { + return customerDao.queryByCustomer(customerId); } } diff --git a/HMS/src/main/java/com/hqyj/seven/service/impl/EnterServiceImpl.java b/HMS/src/main/java/com/hqyj/seven/service/impl/EnterServiceImpl.java index 8ccd20788aaa2766336c9deb237ad841b66a0538..8a7e30d360d84cdf811b5bf7f5a6f38bfd4d19f3 100644 --- a/HMS/src/main/java/com/hqyj/seven/service/impl/EnterServiceImpl.java +++ b/HMS/src/main/java/com/hqyj/seven/service/impl/EnterServiceImpl.java @@ -15,4 +15,8 @@ public class EnterServiceImpl implements EnterService { public int insertEnter(Enter enter) { return enterDao.inserintoEnter(enter); } + @Override + public Enter queryByHouseIdAndTime(int CustomerId, String time) { + return enterDao.queryByHouseIdAndTime(CustomerId,time); + } } diff --git a/HMS/src/main/java/com/hqyj/seven/service/impl/FeeServiceImpl.java b/HMS/src/main/java/com/hqyj/seven/service/impl/FeeServiceImpl.java index 2257fdae23b7a32334f534137d876d4a803cef5f..d9cda85cbd2e8217a1f3b3b5226c1c2120c84773 100644 --- a/HMS/src/main/java/com/hqyj/seven/service/impl/FeeServiceImpl.java +++ b/HMS/src/main/java/com/hqyj/seven/service/impl/FeeServiceImpl.java @@ -1,6 +1,7 @@ package com.hqyj.seven.service.impl; import com.hqyj.seven.dao.Feedao; +import com.hqyj.seven.pojo.Enter; import com.hqyj.seven.pojo.Fee; import com.hqyj.seven.service.FeeService; import org.springframework.beans.factory.annotation.Autowired; @@ -17,4 +18,6 @@ public class FeeServiceImpl implements FeeService { return feedao.inserintoFee(fee); } + + } diff --git a/HMS/src/main/java/com/hqyj/seven/service/impl/HouseServiceImpl.java b/HMS/src/main/java/com/hqyj/seven/service/impl/HouseServiceImpl.java index 95884d322d60d4bfe400910053266ab799d69761..7950c744a22c4b24078fb482c6ffbb1d84bef3d3 100644 --- a/HMS/src/main/java/com/hqyj/seven/service/impl/HouseServiceImpl.java +++ b/HMS/src/main/java/com/hqyj/seven/service/impl/HouseServiceImpl.java @@ -1,12 +1,20 @@ package com.hqyj.seven.service.impl; +import com.hqyj.seven.dao.CustomerDao; +import com.hqyj.seven.dao.EnterDao; +import com.hqyj.seven.dao.Feedao; import com.hqyj.seven.dao.HouseDao; +import com.hqyj.seven.pojo.Customer; import com.hqyj.seven.pojo.Enter; +import com.hqyj.seven.pojo.Fee; import com.hqyj.seven.pojo.House; import com.hqyj.seven.service.HouseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -15,7 +23,12 @@ import java.util.Map; public class HouseServiceImpl implements HouseService { @Autowired private HouseDao houseDao; - + @Autowired + private CustomerDao customerDao; + @Autowired + private EnterDao enterDao; + @Autowired + private Feedao feedao; @Override public Map reservation(int customerId, String name ) { Map result = new HashMap<>(); @@ -65,8 +78,91 @@ public class HouseServiceImpl implements HouseService { return houseDao.deleteHouse(house_id); } @Override - public int checkIn(int customerId, String name,int day) { - return houseDao.updateByHouseNametocheckIn(customerId,name,day); + //参数分别为顾客id,房间name,入住人数,userID + public Map checkIn(int customerId, String name,int day,int numberOfPeople,int userId) throws ParseException { + Map result = new HashMap<>(); + //按照name获取house数据 + House house=houseDao.queryByHousename(name); + //按照id获取customer数据 + Customer customer=customerDao.queryByCustomer(customerId); + Date time=new Date(); + //更新字符串 如果numberOfPeople=2,字符串则更新为2人已入住 + String str1=numberOfPeople+"人已入住"; + //预定时间+day为预定退房时间,实际退房时间 退房时更新 + int day2 = day*24*60*60*1000; + long time2=time.getTime()+day2; + Date time3=new Date(time2); + System.out.println(time); + //如果房间是空闲则之间可以入住 + if (house.getState().equals("空闲")) + { + double money=house.getPrice()*day; + //如果余额不足则会提示 + if (money>customer.getRemainder()) + result.put("用户余额不足可以尝试充值或者减少预定住房时间",-1); + else { + //更新顾客表余额的数据 + customerDao.updataByCustomerIdToremainder(money,customerId); + //插入顾客表 + enterDao.inserintoEnter(new Enter(house.getHouseId(),customerId, + numberOfPeople,time,time3,null,money,1,userId,"已结账",house.getPrice())); + //设置时间格式为yyyy-MM-dd HH:mm:ss以便插入 + SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); + //规范化插入表时的时间和获取的时间有点误差 + long day3 = time.getTime()+500; + Date time4=new Date(day3); + Enter enter= enterDao.queryByHouseIdAndTime(house.getHouseId(),sdf.format(time4)); + + //插入缴费表 + feedao.inserintoFee(new Fee( enter.getEnter_id(),"缴费",customerId,money,house.getHouseId(), + str1,userId,"会员卡扣费")); + //更新房间为入住 + houseDao.updateByHouseNametocheckIn(customerId,name,day); + result.put("入住成功",1); + + } + + } + else { + if ((house.getState().equals("已定"))) { + //判断预定房间号的顾客id和现在的顾客id是否一致 + if (house.getCustomerId() == customerId) { + double money = house.getPrice() * day; + //如果余额不足则会提示 + if (money > customer.getRemainder()) + result.put("用户余额不足可以尝试充值或者减少预定住房时间", -1); + else { + //更新顾客表余额的数据 + customerDao.updataByCustomerIdToremainder(money, customerId); + //插入顾客表 + enterDao.inserintoEnter(new Enter(house.getHouseId(), customerId, + numberOfPeople, time, time3, null, money, 1, userId, "已结账", house.getPrice())); + //设置时间格式为yyyy-MM-dd HH:mm:ss以便插入 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + //规范化插入表时的时间和获取的时间有点误差 + long day3 = time.getTime() + 500; + Date time4 = new Date(day3); + Enter enter = enterDao.queryByHouseIdAndTime(house.getHouseId(), sdf.format(time4)); + + //插入缴费表 + feedao.inserintoFee(new Fee(enter.getEnter_id(), "缴费", customerId, money, house.getHouseId(), + str1, userId, "会员卡扣费")); + //更新房间为入住 + houseDao.updateByHouseNametocheckIn(customerId, name, day); + result.put("入住预定的房间成功", 2); + } + + + } else { + result.put("此房间不是该顾客预定的哟", -3); + } + } else { + result.put("房间预定或者已经入住", -2); + } + } + return result; } } + + diff --git a/HMS/src/main/resources/mapper/CustomerDaoMapper.xml b/HMS/src/main/resources/mapper/CustomerDaoMapper.xml index a6fd31f2e439162d7b4afaf88277496093f1b5b3..8cc4778c321a2e846e993ce87960615222d8255f 100644 --- a/HMS/src/main/resources/mapper/CustomerDaoMapper.xml +++ b/HMS/src/main/resources/mapper/CustomerDaoMapper.xml @@ -8,6 +8,9 @@ update customer set remainder=remainder-#{money} where customer_id=#{id} + diff --git a/HMS/src/main/resources/mapper/enterDaoMapper.xml b/HMS/src/main/resources/mapper/enterDaoMapper.xml index 5c27cbe9ba1b2a2b164935a2ca035da47dc49ac4..19b476f8f8a1ab91fb3d42baee29d0586a5f8b12 100644 --- a/HMS/src/main/resources/mapper/enterDaoMapper.xml +++ b/HMS/src/main/resources/mapper/enterDaoMapper.xml @@ -11,5 +11,7 @@ (#{house_id},#{customer_id},#{customer_info},#{start_time},#{end_time_estimate},#{end_time_actual},#{fee_total}, #{fee_info},#{user_id},#{state},#{price}) - + \ No newline at end of file