毕竟是三年前的视频,日历功能的css和sql语句貌似都有问题
CSS的问题
css的问题体现在
只能显示10-12月份的数据,之前的数据都显示不出来。
根据大佬的提示,原因是axios请求中1-6月应该在前面加个0,才能正常传参。
也就是:将this.currentMonth改为三目运算的方式
(this.currentMonth > 9 ? this.currentMonth : "0"+this.currentMonth)
如果月份大于9月,正常发送请求,否则就在当前按月份前加个 “0”
SQL语句的问题
SQL语句的问题是因为语法的改变
原先要查询每年每月的每日,可以用between 查询 当年当月 -1 日 and 当年当月 -31日 ,也就是:
select * from t_ordersetting where orderDate between'2019-2-1' and '2019-2-31'
这样查询,不管是只有29天的2月,还是有30天的6月或者是有31天的7月都可以查询出来
但现在不可以了
又经过大佬的提示应该采用like 模糊查询,
select * from t_ordersetting where orderDate like '2019-06-%'
这样就可以将当月有的日查询出来了
实现类的更改:
public List<Map> getOrderSettingByMonth(String date) {
//String begin = date + "-1";
//String end = date + "-31";
//Map<String,String> map = new HashMap<>();
//map.put("begin",begin);
//map.put("end",end);
//List<OrderSetting> list = orderSettingDao.getOrderSettingByMonth(map);
String begin = date + "-%";
//getOrderSettingByMonth方法传递的参数也要根据定义的修改,dao接口的方法应改为参数是string类型,映射文件传递的不再是map而是string
List<OrderSetting> list = orderSettingDao.getOrderSettingByMonth(begin);
List<Map> result = new ArrayList<>();
if (list != null && list.size() > 0){
for (OrderSetting orderSetting : list) {
Map<String,Object> m = new HashMap<>();
m.put("date",orderSetting.getOrderDate().getDate());
m.put("number",orderSetting.getNumber());
m.put("reservations",orderSetting.getReservations());
result.add(m);
}
}
return result;
}
映射文件的更改:
<select id="getOrderSettingByMonth" resultType="com.itheima.pojo.OrderSetting" parameterType="string">
// select * from t_ordersetting where orderDate between #{begin} and #{end}
select * from t_ordersetting where orderDate like #{begin}
</select>