Browse Source

支付功能

Administrator 2 years ago
parent
commit
8a80ba6d54

+ 0 - 7
mhotel/src/com/happy/Until/ResponseUtil.java

@@ -78,13 +78,6 @@ public class ResponseUtil {
 		dataJson.put(B.code, ResultStatusCode.OK.getStatus());
 		dataJson.put(B.code, ResultStatusCode.OK.getStatus());
 		dataJson.put(B.message, "查询成功");
 		dataJson.put(B.message, "查询成功");
 		dataJson.put(B.data,iPage); // 分页数据
 		dataJson.put(B.data,iPage); // 分页数据
-
-//		if (iPage.getPageList() == null || iPage.getPageList().size() == 0) {
-//			dataJson.put(B.data, "");
-//		} else {
-//			dataJson.put(B.data,iPage); // 分页数据
-//		}
-
 		PrintWriter out;
 		PrintWriter out;
 		try {
 		try {
 			out = respone.getWriter();
 			out = respone.getWriter();

+ 3 - 2
mhotel/src/com/happy/Until/TimeExchange.java

@@ -43,7 +43,7 @@ public class TimeExchange {
 
 
         Date date = new Date();
         Date date = new Date();
         // 注意format的格式要与日期String的格式相匹配
         // 注意format的格式要与日期String的格式相匹配
-        DateFormat dateFormat = new SimpleDateFormat("HH:mm");
+        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         try {
         try {
             date = dateFormat.parse(time);
             date = dateFormat.parse(time);
             System.out.println(date.toString());
             System.out.println(date.toString());
@@ -179,10 +179,11 @@ public class TimeExchange {
         Calendar nowTime2 = Calendar.getInstance();
         Calendar nowTime2 = Calendar.getInstance();
         nowTime2.setTime(StringToDate2(time));
         nowTime2.setTime(StringToDate2(time));
         nowTime2.add(Calendar.MINUTE, m);//10分钟前的时间
         nowTime2.add(Calendar.MINUTE, m);//10分钟前的时间
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         return simpleDateFormat.format(nowTime2.getTime());
         return simpleDateFormat.format(nowTime2.getTime());
     }
     }
 
 
+
     // 当前时间减5分钟
     // 当前时间减5分钟
     public static String TimeRangeD(String time) throws ParseException {
     public static String TimeRangeD(String time) throws ParseException {
         Calendar nowTime2 = Calendar.getInstance();
         Calendar nowTime2 = Calendar.getInstance();

+ 2 - 2
mhotel/src/com/happy/Until/weixin/JaxbUtil.java

@@ -160,7 +160,7 @@ public class JaxbUtil {
         }
         }
         sb.append("</xml>");
         sb.append("</xml>");
 
 
-        return sb.toString();
-//        return new String(sb.toString().toString().getBytes(), "utf-8");
+//        return sb.toString();
+        return new String(sb.toString().toString().getBytes(), "utf-8");
     }
     }
 } 
 } 

+ 18 - 12
mhotel/src/com/happy/action/AppBookingAction.java

@@ -15,6 +15,7 @@ import com.happy.Until.weixin.JaxbUtil;
 import com.happy.Until.weixin.PayWxUtil;
 import com.happy.Until.weixin.PayWxUtil;
 import com.happy.Until.weixin.TongYiReturn;
 import com.happy.Until.weixin.TongYiReturn;
 import com.happy.common.http.Message;
 import com.happy.common.http.Message;
+import com.happy.common.http.Message2;
 import com.happy.common.wx.WxUtil;
 import com.happy.common.wx.WxUtil;
 import com.happy.constant.ResultStatusCode;
 import com.happy.constant.ResultStatusCode;
 import com.happy.service.AdminManagerService;
 import com.happy.service.AdminManagerService;
@@ -146,14 +147,15 @@ public class AppBookingAction extends ActionSupport implements ServletRequestAwa
                 if (booking == null  || Func.checkNull(booking.getCreateTime()) || Func.checkNull(booking.getLockTime()))
                 if (booking == null  || Func.checkNull(booking.getCreateTime()) || Func.checkNull(booking.getLockTime()))
                     continue;
                     continue;
 
 
+                Date createTime = DateUtil.parseDate(booking.getCreateTime(),DateUtil.Time_Formatter_Second);
                 // 对订单时间进行累加
                 // 对订单时间进行累加
-                String lockTime = TimeExchange.TimeRangeM(booking.getCreateTime(),Func.parseInt(booking.getLockTime()));
+                String lockTime = TimeExchange.TimeRangeM(DateUtil.getFormatPaternDate(createTime),Func.parseInt(booking.getLockTime()));
                 // 当前时间 大于 锁定时间 为true
                 // 当前时间 大于 锁定时间 为true
                 boolean flag = TimeExchange.CompareDate(lockTime, TimeExchange.getDate());
                 boolean flag = TimeExchange.CompareDate(lockTime, TimeExchange.getDate());
                 if (flag)
                 if (flag)
                 {
                 {
                     // 如果超时,则将订单状态修改为已超时
                     // 如果超时,则将订单状态修改为已超时
-                    booking.setOrderStatus(Func.parseStr(PayEnum.SIX.getPayStatus()));
+                    booking.setOrderStatus(Func.parseStr(PayEnum.SIX.getNum()));
                     booking.setUpdateTime(TimeExchange.getDate());
                     booking.setUpdateTime(TimeExchange.getDate());
                     bookService.updateBooking(booking);
                     bookService.updateBooking(booking);
                     System.out.println("已将订单"+booking.getOrderNum()+"标识为支付超时");
                     System.out.println("已将订单"+booking.getOrderNum()+"标识为支付超时");
@@ -629,7 +631,7 @@ public class AppBookingAction extends ActionSupport implements ServletRequestAwa
             params.put("nonce_str", w.getNonce_str());
             params.put("nonce_str", w.getNonce_str());
             params.put("body", w.getBody());
             params.put("body", w.getBody());
             params.put("out_trade_no", w.getOut_trade_no());
             params.put("out_trade_no", w.getOut_trade_no());
-            params.put("total_fee", w.getTotal_fee() + "");
+            params.put("total_fee", Func.parseStr(w.getTotal_fee()));
             params.put("spbill_create_ip", w.getSpbill_create_ip());
             params.put("spbill_create_ip", w.getSpbill_create_ip());
             params.put("notify_url", w.getNotify_url());
             params.put("notify_url", w.getNotify_url());
             params.put("trade_type", w.getTrade_type());
             params.put("trade_type", w.getTrade_type());
@@ -672,7 +674,7 @@ public class AppBookingAction extends ActionSupport implements ServletRequestAwa
 
 
                 // 保存支付信息
                 // 保存支付信息
                 booking.setUpdateTime(DateUtil.getFormatPaternDate(new Date()));
                 booking.setUpdateTime(DateUtil.getFormatPaternDate(new Date()));
-                booking.setOrderStatus(Func.parseStr(PayEnum.TWO.getNum()));
+                booking.setOrderStatus(Func.parseStr(PayEnum.ONE.getNum()));
                 booking.setPayTime(DateUtil.getFormatPaternDate(new Date()));
                 booking.setPayTime(DateUtil.getFormatPaternDate(new Date()));
                 booking.setPayAccount(totalPrice);
                 booking.setPayAccount(totalPrice);
                 booking.setPayWay(OrderEnum.微信支付.toString());
                 booking.setPayWay(OrderEnum.微信支付.toString());
@@ -723,9 +725,19 @@ public class AppBookingAction extends ActionSupport implements ServletRequestAwa
                 // 进行业务判断,如果是商家设定了自动接单,则支付状态直接变为待入住  接单设置(1自动接单 2手动接单)
                 // 进行业务判断,如果是商家设定了自动接单,则支付状态直接变为待入住  接单设置(1自动接单 2手动接单)
                 if ("1".equals(booking.getHotelIsCanorder()))
                 if ("1".equals(booking.getHotelIsCanorder()))
                 {
                 {
+                    // 自动接单,发消息给用户,并且订单状态修改为待入住
                     booking.setOrderStatus(Func.parseStr(PayEnum.THREE.getNum()));
                     booking.setOrderStatus(Func.parseStr(PayEnum.THREE.getNum()));
+                    String userId = booking.getCreateUserid();
+                    Users users = userService.queryByUserId(userId);
+                    String mess = "您已成功订房,订单号:"+order_num;
+                    Message.send(users.getOpenid(),order_num, users.getUser_name(),mess, booking.getPayTime());
+                }else {
+                    // 手动接单,发消息给商家
+                    AdminManager adminManager = adminManagerService.getById(Func.parseInt(booking.getHotelManagerId()));
+                    String sendMsg = "订单:"+ order_num +"已支付,请确认是否接单";
+                    String live_end = DateUtil.parseDate(booking.getOrderStartTime(),DateUtil.Time_Formatter_Day) +"至"+  DateUtil.parseDate(booking.getOrderEndTime(),DateUtil.Time_Formatter_Day);
+                    Message2.send(adminManager.getOpenid(),order_num,booking.getHouseName(),live_end,booking.getUserName(),booking.getHotelName());
                 }
                 }
-
                 int m = bookService.updateBooking(booking);
                 int m = bookService.updateBooking(booking);
                 if (m>0){
                 if (m>0){
                     String returnMsg = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
                     String returnMsg = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
@@ -736,14 +748,8 @@ public class AppBookingAction extends ActionSupport implements ServletRequestAwa
                     out.flush();
                     out.flush();
                     out.close(); // 发送成功消息给商家
                     out.close(); // 发送成功消息给商家
                 }
                 }
+                return null;
             }
             }
-
-            AdminManager adminManager = adminManagerService.getById(Func.parseInt(booking.getHotelManagerId()));
-            String sendMsg = "订单:"+ order_num +"已支付,请确认是否接单";
-             // 推送消息给商家 TODO
-            Message.send(adminManager.getOpenid(),booking.getOrderNum(),booking.getUserName(),sendMsg,booking.getCreateTime());
-
-
         } catch (Exception e){
         } catch (Exception e){
             resultjson.put("message", "支付失败");
             resultjson.put("message", "支付失败");
             resultjson.put("code", 205);
             resultjson.put("code", 205);

+ 1 - 0
mhotel/src/com/happy/action/AppHomePageAction.java

@@ -139,6 +139,7 @@ public class AppHomePageAction extends ActionSupport implements ServletRequestAw
         // 使用天去查"yyyy/MM/dd"
         // 使用天去查"yyyy/MM/dd"
         String startDate = DateUtil.parseDateToStr((Func.parseDate(queryStartTime)), DateUtil.Time_Formatter_Day);
         String startDate = DateUtil.parseDateToStr((Func.parseDate(queryStartTime)), DateUtil.Time_Formatter_Day);
         String endDate = DateUtil.parseDateToStr((Func.parseDate(queryEndTime)),  DateUtil.Time_Formatter_Day);
         String endDate = DateUtil.parseDateToStr((Func.parseDate(queryEndTime)),  DateUtil.Time_Formatter_Day);
+
         Hotel hotel = appHomePageService.getHotelAndHouseByHotelId(hotelId,startDate, endDate);
         Hotel hotel = appHomePageService.getHotelAndHouseByHotelId(hotelId,startDate, endDate);
 
 
         // 通过时间区间查询房间信息,并带好是否有房标识给前台
         // 通过时间区间查询房间信息,并带好是否有房标识给前台

+ 12 - 2
mhotel/src/com/happy/action/AppMePageAction.java

@@ -238,16 +238,26 @@ public class AppMePageAction extends ActionSupport implements ServletRequestAwar
     {
     {
         if (Func.checkNullOrEmpty(userId))
         if (Func.checkNullOrEmpty(userId))
             return;
             return;
+
+        JSONObject resultJson = new JSONObject();
         Users users = userService.queryByUserId(userId);
         Users users = userService.queryByUserId(userId);
+        if (users == null)
+        {
+            resultJson.put(B.code,ResultStatusCode.BAD_REQUEST.getStatus());
+            resultJson.put(B.message,"查无此用户数据,请先授权!");
+            ResponseUtil.writeJson(ServletActionContext.getResponse(),resultJson.toString());
+            return;
+        }
+
         users.setHeadPhoto(headPhoto);
         users.setHeadPhoto(headPhoto);
         users.setUser_name(userName);
         users.setUser_name(userName);
         users.setDataType(DataType.游客数据.toString());
         users.setDataType(DataType.游客数据.toString());
-
         userService.update(users);
         userService.update(users);
-        JSONObject resultJson = new JSONObject();
+
         resultJson.put(B.code,ResultStatusCode.OK.getStatus());
         resultJson.put(B.code,ResultStatusCode.OK.getStatus());
         resultJson.put(B.message,ResultStatusCode.OK.getMsg());
         resultJson.put(B.message,ResultStatusCode.OK.getMsg());
         ResponseUtil.writeJson(ServletActionContext.getResponse(),resultJson.toString());
         ResponseUtil.writeJson(ServletActionContext.getResponse(),resultJson.toString());
+        return;
     }
     }
 
 
     /**
     /**

+ 2 - 1
mhotel/src/com/happy/dao/impl/UserDaoImpl.java

@@ -56,13 +56,14 @@ public class UserDaoImpl implements UserDao {
 
 
     // 修改信息
     // 修改信息
     public int update(Users users){
     public int update(Users users){
-        String sql = "update `users` set user_name=:user_name,user_phone=:user_phone,user_zz=:user_zz,remark=:remark where id=:id ";
+        String sql = "update `users` set user_name=:user_name,user_phone=:user_phone,user_zz=:user_zz,remark=:remark, head_photo=:head_photo  where id=:id ";
         MapSqlParameterSource sps = new MapSqlParameterSource();
         MapSqlParameterSource sps = new MapSqlParameterSource();
         sps.addValue("id", users.getId());
         sps.addValue("id", users.getId());
         sps.addValue("user_name", users.getUser_name());
         sps.addValue("user_name", users.getUser_name());
         sps.addValue("user_phone", users.getUser_phone());
         sps.addValue("user_phone", users.getUser_phone());
         sps.addValue("user_zz", users.getUser_zz());
         sps.addValue("user_zz", users.getUser_zz());
         sps.addValue("remark", users.getRemark());
         sps.addValue("remark", users.getRemark());
+        sps.addValue("head_photo", users.getHeadPhoto());
         int num = 0;
         int num = 0;
         try{
         try{
             num = namedParameterJdbcTemplate.update(sql, sps);
             num = namedParameterJdbcTemplate.update(sql, sps);

+ 8 - 5
mhotel/src/com/happy/service/impl/AppBookImplService.java

@@ -166,7 +166,6 @@ public class AppBookImplService implements AppBookService {
 
 
     @Override
     @Override
     public String varificationHouse(String houseId, String startTime, String endTime) {
     public String varificationHouse(String houseId, String startTime, String endTime) {
-
         House house = houseService.getById(Func.parseInt(houseId));
         House house = houseService.getById(Func.parseInt(houseId));
         if (house == null)
         if (house == null)
             return "无此房间,请重新查询";
             return "无此房间,请重新查询";
@@ -175,16 +174,20 @@ public class AppBookImplService implements AppBookService {
         StringBuffer strSqlBook = new StringBuffer();
         StringBuffer strSqlBook = new StringBuffer();
         strSqlBook.append(" and house_id = '").append(house.getId()).append("' ");
         strSqlBook.append(" and house_id = '").append(house.getId()).append("' ");
         strSqlBook.append(" and hotel_manager_id = '").append(house.getManagerId()).append("' ");
         strSqlBook.append(" and hotel_manager_id = '").append(house.getManagerId()).append("' ");
-        strSqlBook.append(" and order_start_time >= '").append(startTime).append("' ");
-        strSqlBook.append(" and order_end_time < '").append(endTime).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已退款
         //1待支付,2已支付,3待入住,4已入住,5已消费,6支付超时,7已取消,8已退单,9已退款
-        strSqlBook.append(" and order_status = '").append(PayEnum.ONE.getNum()).append("' ");
+        strSqlBook.append(" and  ( order_status = '").append(PayEnum.ONE.getNum()).append("' ");
         strSqlBook.append(" or order_status = '").append(PayEnum.TWO.getNum()).append("' ");
         strSqlBook.append(" or order_status = '").append(PayEnum.TWO.getNum()).append("' ");
         strSqlBook.append(" or order_status = '").append(PayEnum.THREE.getNum()).append("' ");
         strSqlBook.append(" or order_status = '").append(PayEnum.THREE.getNum()).append("' ");
-        strSqlBook.append(" or order_status = '").append(PayEnum.FOUR.getNum()).append("' ");
+        strSqlBook.append(" or order_status = '").append(PayEnum.FOUR.getNum()).append("' ) ");
 
 
         List<Booking> bookList = bookService.queryList(strSqlBook.toString());
         List<Booking> bookList = bookService.queryList(strSqlBook.toString());
+        if (bookList == null)
+            return null;
 
 
         int totalNum = 0;
         int totalNum = 0;
         for (Booking booking: bookList) {
         for (Booking booking: bookList) {

+ 13 - 3
mhotel/src/com/happy/service/impl/AppHomePageImplService.java

@@ -5,6 +5,7 @@ import com.happy.Model.FileInfo;
 import com.happy.Model.Hotel;
 import com.happy.Model.Hotel;
 import com.happy.Model.House;
 import com.happy.Model.House;
 import com.happy.Until.DateUtil;
 import com.happy.Until.DateUtil;
+import com.happy.Until.Enum.PayEnum;
 import com.happy.Until.Func;
 import com.happy.Until.Func;
 import com.happy.Until.TimeExchange;
 import com.happy.Until.TimeExchange;
 import com.happy.dao.BookDao;
 import com.happy.dao.BookDao;
@@ -115,8 +116,15 @@ public class AppHomePageImplService implements AppHomePageService {
         if (!Func.checkNull(queryEndTime))
         if (!Func.checkNull(queryEndTime))
             strSqlBook.append(" and order_end_time < '").append(queryEndTime).append(" 23:59:59 ' ");
             strSqlBook.append(" and order_end_time < '").append(queryEndTime).append(" 23:59:59 ' ");
 
 
+
+        //1待支付,2已支付,3待入住,4已入住,5已消费,6支付超时,7已取消,8已退单,9已退款
+        strSqlBook.append(" and  ( order_status = '").append(PayEnum.ONE.getNum()).append("' ");
+        strSqlBook.append(" or order_status = '").append(PayEnum.TWO.getNum()).append("' ");
+        strSqlBook.append(" or order_status = '").append(PayEnum.THREE.getNum()).append("' ");
+        strSqlBook.append(" or order_status = '").append(PayEnum.FOUR.getNum()).append("   ' ) ");
         List<Booking> bookList = bookService.queryList(strSqlBook.toString());
         List<Booking> bookList = bookService.queryList(strSqlBook.toString());
 
 
+        // 订房数据字典Map<houseid, 订房数量>
         Map<String, Integer> houseBookingMap =  new HashMap();
         Map<String, Integer> houseBookingMap =  new HashMap();
         if (bookList != null  && bookList.size() > 0)
         if (bookList != null  && bookList.size() > 0)
         {
         {
@@ -130,14 +138,16 @@ public class AppHomePageImplService implements AppHomePageService {
                     numberTemp = houseBookingMap.get(booking.getHouseId());
                     numberTemp = houseBookingMap.get(booking.getHouseId());
                     int i = Func.parseInt(numberTemp) + booking.getHouseOrderNumber();
                     int i = Func.parseInt(numberTemp) + booking.getHouseOrderNumber();
                     houseBookingMap.put(booking.getHouseId(),i);
                     houseBookingMap.put(booking.getHouseId(),i);
-                    continue;
+                }else {
+                    houseBookingMap.put(booking.getHouseId(),booking.getHouseOrderNumber());
                 }
                 }
-                houseBookingMap.put(booking.getHouseId(),booking.getHouseOrderNumber());
+
             }
             }
         }
         }
 
 
 
 
         houseList.forEach((House house) ->{
         houseList.forEach((House house) ->{
+
             if (!houseBookingMap.containsKey(Func.parseStr(house.getId()))) {
             if (!houseBookingMap.containsKey(Func.parseStr(house.getId()))) {
                 house.setRemainRooms(Func.parseStr(house.getNumber()));
                 house.setRemainRooms(Func.parseStr(house.getNumber()));
                 return;
                 return;
@@ -147,7 +157,7 @@ public class AppHomePageImplService implements AppHomePageService {
             fileSqlx.append("and link_id = '").append(house.getId()).append("'");
             fileSqlx.append("and link_id = '").append(house.getId()).append("'");
             List<FileInfo> fileInfoList = fileService.queryList(fileSqlx.toString());
             List<FileInfo> fileInfoList = fileService.queryList(fileSqlx.toString());
 
 
-            int i = Func.parseInt(house.getNumber()) - Func.parseInt(houseBookingMap.get(house.getId()));
+            int i = Func.parseInt(house.getNumber()) - Func.parseInt(houseBookingMap.get(Func.parseStr(house.getId())));
             house.setRemainRooms(Func.parseStr(i));
             house.setRemainRooms(Func.parseStr(i));
             house.setFileInfoList(fileInfoList);
             house.setFileInfoList(fileInfoList);
         });
         });

+ 3 - 4
mhotel/src/com/happy/service/impl/BookImplService.java

@@ -107,21 +107,20 @@ public class BookImplService implements BookService {
             Message.send(adminManager.getOpenid(),book.getOrderNum(),book.getUserName(),sendMsg,book.getCreateTime());
             Message.send(adminManager.getOpenid(),book.getOrderNum(),book.getUserName(),sendMsg,book.getCreateTime());
 
 
             return null;
             return null;
-        }else if (status == 2)
+        }else if (status == 2 || status == 3)
         {
         {
             book.setOrderStatus(Func.parseStr(PayEnum.SEVEN.getNum()));
             book.setOrderStatus(Func.parseStr(PayEnum.SEVEN.getNum()));
             book.setUpdateTime(DateUtil.getFormatPaternDate(new Date()));
             book.setUpdateTime(DateUtil.getFormatPaternDate(new Date()));
-            // 注明需要退款:
+            // 注明需要退款: (标识走退款操作)
             book.setPayWay(OrderEnum.微信退款.toString());
             book.setPayWay(OrderEnum.微信退款.toString());
             bookDao.updateBooking(book);
             bookDao.updateBooking(book);
-            // 走退款操作
 
 
             String sendMsg = "订单:"+ book.getOrderNum() +"已取消";
             String sendMsg = "订单:"+ book.getOrderNum() +"已取消";
             // 推送消息给用户
             // 推送消息给用户
             Message.send(adminManager.getOpenid(),book.getOrderNum(),book.getUserName(),sendMsg,book.getCreateTime());
             Message.send(adminManager.getOpenid(),book.getOrderNum(),book.getUserName(),sendMsg,book.getCreateTime());
             return null;
             return null;
         }
         }
-        return "不可取消订单";
+        return "当前状态下,不可取消订单";
     }
     }
 
 
     @Override
     @Override