Browse Source

Merge branch 'master' of https://e.coding.net/chuanghaikeji/jinganxiangsu/Homestay_app_houtai

# Conflicts:
#	mhotel/src/com/happy/Model/HouseNumberStatus.java
liujunqiang 2 years ago
parent
commit
5024b508cb
31 changed files with 1376 additions and 289 deletions
  1. 30 0
      mhotel/src/com/happy/Model/Booking.java
  2. 194 0
      mhotel/src/com/happy/Model/BookingComment.java
  3. 12 0
      mhotel/src/com/happy/Model/Hotel.java
  4. 66 37
      mhotel/src/com/happy/Model/HotelCoupon.java
  5. 8 68
      mhotel/src/com/happy/Model/HotelCouponStatus.java
  6. 9 9
      mhotel/src/com/happy/Model/HouseNumber.java
  7. 105 13
      mhotel/src/com/happy/Model/HouseNumberStatus.java
  8. 89 100
      mhotel/src/com/happy/action/AppBookingAction.java
  9. 265 0
      mhotel/src/com/happy/action/AppBookingCommentAction.java
  10. 8 6
      mhotel/src/com/happy/action/AppMePageAction.java
  11. 59 11
      mhotel/src/com/happy/action/bookAction.java
  12. 141 4
      mhotel/src/com/happy/action/hotelCoupomAction.java
  13. 42 5
      mhotel/src/com/happy/action/houseAction.java
  14. 8 0
      mhotel/src/com/happy/dao/BookingCommentDao.java
  15. 5 1
      mhotel/src/com/happy/dao/HotelCouponDao.java
  16. 6 6
      mhotel/src/com/happy/dao/impl/AdminManagerImplDao.java
  17. 2 2
      mhotel/src/com/happy/dao/impl/BookImplDao.java
  18. 76 0
      mhotel/src/com/happy/dao/impl/BookingCommentDaoImpl.java
  19. 77 8
      mhotel/src/com/happy/dao/impl/HotelCouponImplDao.java
  20. 13 12
      mhotel/src/com/happy/dao/impl/HotelImplDao.java
  21. 1 1
      mhotel/src/com/happy/dao/impl/HouseImplDao.java
  22. 7 2
      mhotel/src/com/happy/dao/impl/UserDaoImpl.java
  23. 5 1
      mhotel/src/com/happy/dao/impl/UserVisitsDaoImpl.java
  24. 37 0
      mhotel/src/com/happy/dto/OrderRateDto.java
  25. 12 0
      mhotel/src/com/happy/service/BookingCommentService.java
  26. 2 0
      mhotel/src/com/happy/service/FileService.java
  27. 4 1
      mhotel/src/com/happy/service/HotelCoupomService.java
  28. 66 0
      mhotel/src/com/happy/service/impl/BookingCommentImplService.java
  29. 9 0
      mhotel/src/com/happy/service/impl/FileImplService.java
  30. 15 2
      mhotel/src/com/happy/service/impl/HotelCoupomImplService.java
  31. 3 0
      mhotel/src/struts.xml

+ 30 - 0
mhotel/src/com/happy/Model/Booking.java

@@ -59,8 +59,14 @@ public class Booking {
   private int status_del; // 是否假删除:0删除,1正常
   private String liveTime;//入住时间
 
+  private List<HouseNumber> houseNumbers;//可分配房间号
+
   private String lockTime; // 锁定时间
 
+  private Integer hstatus;//酒店营业状态(1 营业 2.休息)
+
+  private Integer hotelStatus;//酒店状态(0删除 1正常,2冻结)
+
   private List<FileInfo> houseFileInfoList; // 房型详细图
   public Integer getId() {
     return id;
@@ -497,4 +503,28 @@ public class Booking {
   public void setStatus_del(int status_del) {
     this.status_del = status_del;
   }
+
+  public List<HouseNumber> getHouseNumbers() {
+    return houseNumbers;
+  }
+
+  public void setHouseNumbers(List<HouseNumber> houseNumbers) {
+    this.houseNumbers = houseNumbers;
+  }
+
+  public Integer getHstatus() {
+    return hstatus;
+  }
+
+  public void setHstatus(Integer hstatus) {
+    this.hstatus = hstatus;
+  }
+
+  public Integer getHotelStatus() {
+    return hotelStatus;
+  }
+
+  public void setHotelStatus(Integer hotelStatus) {
+    this.hotelStatus = hotelStatus;
+  }
 }

+ 194 - 0
mhotel/src/com/happy/Model/BookingComment.java

@@ -0,0 +1,194 @@
+package com.happy.Model;
+
+
+import lombok.Builder;
+
+@Builder
+public class BookingComment {
+    //    主键
+    private Integer id;
+
+    //    回复评论id
+    private String commentId;
+
+    //    评论订单id
+    private String bookingId;
+
+    //    评论民宿id
+    private String hotelId;
+
+    //    评论房型id
+    private String houseId;
+
+    //    内容
+    private String content;
+
+    //    评价状态
+    private String commentStatus;
+
+    //    总评分
+    private Double score;
+
+    //    卫生评分
+    private Double scoreWs;
+
+    //    服务评分
+    private Double scoreFw;
+
+    //    设施评分
+    private Double scoreSs;
+
+    //    位置评分
+    private Double scoreWz;
+
+    //    创建人
+    private Integer createId;
+
+    private String createUsername;
+
+    //    创建时间
+    private String createDate;
+
+    //    修改时间
+    private String modifyDate;
+
+    //    状态(0删除 1正常)
+    private String status;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getCommentId() {
+        return commentId;
+    }
+
+    public void setCommentId(String commentId) {
+        this.commentId = commentId;
+    }
+
+    public String getBookingId() {
+        return bookingId;
+    }
+
+    public void setBookingId(String bookingId) {
+        this.bookingId = bookingId;
+    }
+
+    public String getHotelId() {
+        return hotelId;
+    }
+
+    public void setHotelId(String hotelId) {
+        this.hotelId = hotelId;
+    }
+
+    public String getHouseId() {
+        return houseId;
+    }
+
+    public void setHouseId(String houseId) {
+        this.houseId = houseId;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getCommentStatus() {
+        return commentStatus;
+    }
+
+    public void setCommentStatus(String commentStatus) {
+        this.commentStatus = commentStatus;
+    }
+
+    public Double getScore() {
+        return score;
+    }
+
+    public void setScore(Double score) {
+        this.score = score;
+    }
+
+    public Double getScoreWs() {
+        return scoreWs;
+    }
+
+    public void setScoreWs(Double scoreWs) {
+        this.scoreWs = scoreWs;
+    }
+
+    public Double getScoreFw() {
+        return scoreFw;
+    }
+
+    public void setScoreFw(Double scoreFw) {
+        this.scoreFw = scoreFw;
+    }
+
+    public Double getScoreSs() {
+        return scoreSs;
+    }
+
+    public void setScoreSs(Double scoreSs) {
+        this.scoreSs = scoreSs;
+    }
+
+    public Double getScoreWz() {
+        return scoreWz;
+    }
+
+    public void setScoreWz(Double scoreWz) {
+        this.scoreWz = scoreWz;
+    }
+
+    public Integer getCreateId() {
+        return createId;
+    }
+
+    public void setCreateId(Integer createId) {
+        this.createId = createId;
+    }
+
+    public String getCreateUsername() {
+        return createUsername;
+    }
+
+    public void setCreateUsername(String createUsername) {
+        this.createUsername = createUsername;
+    }
+
+    public String getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(String createDate) {
+        this.createDate = createDate;
+    }
+
+    public String getModifyDate() {
+        return modifyDate;
+    }
+
+    public void setModifyDate(String modifyDate) {
+        this.modifyDate = modifyDate;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+}

+ 12 - 0
mhotel/src/com/happy/Model/Hotel.java

@@ -166,6 +166,10 @@ public class Hotel {
 
 	private String collect_hotel;
 	private boolean is_collect_hotel;
+	/**
+	 * 720全景图链接
+	 */
+	private String linkProUrl;
 
 	public Integer getId() {
 		return id;
@@ -442,4 +446,12 @@ public class Hotel {
 	public void setIs_collect_hotel(boolean is_collect_hotel) {
 		this.is_collect_hotel = is_collect_hotel;
 	}
+
+	public String getLinkProUrl() {
+		return linkProUrl;
+	}
+
+	public void setLinkProUrl(String linkProUrl) {
+		this.linkProUrl = linkProUrl;
+	}
 }

+ 66 - 37
mhotel/src/com/happy/Model/HotelCoupon.java

@@ -1,5 +1,7 @@
 package com.happy.Model;
 
+import com.happy.Until.DateUtil;
+
 import java.util.Date;
 
 /**
@@ -10,7 +12,7 @@ import java.util.Date;
 public class HotelCoupon {
 
 
-    private Integer id; // 主键
+    private String id; // 主键
 
     private String hotelIds; // 适用民宿
 
@@ -26,36 +28,42 @@ public class HotelCoupon {
 
     private Integer grantNumber; // 发放数量
 
-    private Date limitNumber; // 每人限领
+    private Integer limitNumber; // 每人限领
 
-    private Date grantStartDate; // 发放开始时间
+    private String grantStartDate; // 发放开始时间
 
-    private Date grantEndDate; // 发放结束时间
+    private String grantEndDate; // 发放结束时间
 
     private Double meetPrice; // 满减金额
 
-    private Date effectiveStartDate; // 有效期开始时间
+    private String effectiveStartDate; // 有效期开始时间
+
+    private String effectiveEndDate; // 有效期结束时间
 
-    private Date effectiveEndDate; // 有效期结束时间
+    private Integer effectiveType;//有效期类型
 
     private Integer effectiveDay; // 生效时间天数
 
-    private Integer loseEffectiveDay; // 失效时间天数
+    private Integer effectiveLoseDay; // 失效时间天数
 
     private Integer createId; // 创建人
 
-    private Date createDate; // 创建时间
+    private String createDate; // 创建时间
 
-    private Date modifyDate; // 修改时间
+    private String modifyDate; // 修改时间
 
     private Integer status; // 状态(0删除 1正常)
 
+    private Integer remainderNumber; //剩余数量
+
+    private Integer reversedNumber; //已核销数量
 
-    public Integer getId() {
+
+    public String getId() {
         return id;
     }
 
-    public void setId(Integer id) {
+    public void setId(String id) {
         this.id = id;
     }
 
@@ -123,29 +131,29 @@ public class HotelCoupon {
     }
 
 
-    public Date getLimitNumber() {
+    public Integer getLimitNumber() {
         return limitNumber;
     }
 
-    public void setLimitNumber(Date limitNumber) {
+    public void setLimitNumber(Integer limitNumber) {
         this.limitNumber = limitNumber;
     }
 
 
-    public Date getGrantStartDate() {
-        return grantStartDate;
+    public String getGrantStartDate() {
+        return DateUtil.convertDateTimeMysql(grantStartDate);
     }
 
-    public void setGrantStartDate(Date grantStartDate) {
+    public void setGrantStartDate(String grantStartDate) {
         this.grantStartDate = grantStartDate;
     }
 
 
-    public Date getGrantEndDate() {
-        return grantEndDate;
+    public String getGrantEndDate() {
+        return DateUtil.convertDateTimeMysql(grantEndDate);
     }
 
-    public void setGrantEndDate(Date grantEndDate) {
+    public void setGrantEndDate(String grantEndDate) {
         this.grantEndDate = grantEndDate;
     }
 
@@ -159,20 +167,28 @@ public class HotelCoupon {
     }
 
 
-    public Date getEffectiveStartDate() {
-        return effectiveStartDate;
+    public Integer getEffectiveType() {
+        return effectiveType;
     }
 
-    public void setEffectiveStartDate(Date effectiveStartDate) {
+    public void setEffectiveType(Integer effectiveType) {
+        this.effectiveType = effectiveType;
+    }
+
+    public String getEffectiveStartDate() {
+        return DateUtil.convertDateTimeMysql(effectiveStartDate);
+    }
+
+    public void setEffectiveStartDate(String effectiveStartDate) {
         this.effectiveStartDate = effectiveStartDate;
     }
 
 
-    public Date getEffectiveEndDate() {
-        return effectiveEndDate;
+    public String getEffectiveEndDate() {
+        return DateUtil.convertDateTimeMysql(effectiveEndDate);
     }
 
-    public void setEffectiveEndDate(Date effectiveEndDate) {
+    public void setEffectiveEndDate(String effectiveEndDate) {
         this.effectiveEndDate = effectiveEndDate;
     }
 
@@ -185,16 +201,14 @@ public class HotelCoupon {
         this.effectiveDay = effectiveDay;
     }
 
-
-    public Integer getLoseEffectiveDay() {
-        return loseEffectiveDay;
+    public Integer getEffectiveLoseDay() {
+        return effectiveLoseDay;
     }
 
-    public void setLoseEffectiveDay(Integer loseEffectiveDay) {
-        this.loseEffectiveDay = loseEffectiveDay;
+    public void setEffectiveLoseDay(Integer effectiveLoseDay) {
+        this.effectiveLoseDay = effectiveLoseDay;
     }
 
-
     public Integer getCreateId() {
         return createId;
     }
@@ -204,23 +218,38 @@ public class HotelCoupon {
     }
 
 
-    public Date getCreateDate() {
-        return createDate;
+    public String getCreateDate() {
+        return DateUtil.convertDateTimeMysql(createDate);
     }
 
-    public void setCreateDate(Date createDate) {
+    public void setCreateDate(String createDate) {
         this.createDate = createDate;
     }
 
 
-    public Date getModifyDate() {
-        return modifyDate;
+    public String getModifyDate() {
+        return DateUtil.convertDateTimeMysql(modifyDate);
     }
 
-    public void setModifyDate(Date modifyDate) {
+    public void setModifyDate(String modifyDate) {
         this.modifyDate = modifyDate;
     }
 
+    public Integer getRemainderNumber() {
+        return remainderNumber;
+    }
+
+    public void setRemainderNumber(Integer remainderNumber) {
+        this.remainderNumber = remainderNumber;
+    }
+
+    public Integer getReversedNumber() {
+        return reversedNumber;
+    }
+
+    public void setReversedNumber(Integer reversedNumber) {
+        this.reversedNumber = reversedNumber;
+    }
 
     public Integer getStatus() {
         return status;

+ 8 - 68
mhotel/src/com/happy/Model/HotelCouponStatus.java

@@ -1,5 +1,7 @@
 package com.happy.Model;
 
+import lombok.Data;
+
 import java.util.Date;
 
 /**
@@ -7,11 +9,10 @@ import java.util.Date;
  * @Author  raojiaolong
  * @Date 2023-08-21 
  */
-
+@Data
 public class HotelCouponStatus {
 
-
-	private Integer id; // 主键
+	private String id; // 主键
 
 	private Integer complaintId; // 优惠卷id
 
@@ -19,73 +20,12 @@ public class HotelCouponStatus {
 
 	private Integer createId; // 创建人
 
-	private Date createDate; // 创建时间
-
-	private Date modifyDate; // 修改时间
-
-	private Integer status; // 状态(0删除/失效 1正常2.已核销已使用)
-
-
-	public Integer getId() {
-		return id;
-	}
-
-	public void setId(Integer id) {
-		this.id = id;
-	}
-
-
-	public Integer getComplaintId() {
-		return complaintId;
-	}
-
-	public void setComplaintId(Integer complaintId) {
-		this.complaintId = complaintId;
-	}
-
+	private String createDate; // 创建时间
 
-	public Integer getProgressType() {
-		return progressType;
-	}
+	private String modifyDate; // 修改时间
 
-	public void setProgressType(Integer progressType) {
-		this.progressType = progressType;
-	}
+	private String lapseDate; // 失效时间
 
-
-	public Integer getCreateId() {
-		return createId;
-	}
-
-	public void setCreateId(Integer createId) {
-		this.createId = createId;
-	}
-
-
-	public Date getCreateDate() {
-		return createDate;
-	}
-
-	public void setCreateDate(Date createDate) {
-		this.createDate = createDate;
-	}
-
-
-	public Date getModifyDate() {
-		return modifyDate;
-	}
-
-	public void setModifyDate(Date modifyDate) {
-		this.modifyDate = modifyDate;
-	}
-
-
-	public Integer getStatus() {
-		return status;
-	}
-
-	public void setStatus(Integer status) {
-		this.status = status;
-	}
+	private Integer status; // 状态(0删除/失效 1正常2.已核销已使用)
 
 }

+ 9 - 9
mhotel/src/com/happy/Model/HouseNumber.java

@@ -9,29 +9,29 @@ import java.util.Date;
 
 public class HouseNumber {
 
-	private Integer id; // 主键
-	private Integer houseId; // 房型id
+	private String id; // 主键
+	private String houseId; // 房型id
 	private String numberName; // 房间号
-	private Integer createId; // 创建人
+	private String createId; // 创建人
 	private Date createDate; // 创建时间
 	private Date modifyDate; // 修改时间
 	private Integer status; // 状态(0.删除 1.正常)
 
 
-	public Integer getId() {
+	public String getId() {
 		return id;
 	}
 
-	public void setId(Integer id) {
+	public void setId(String id) {
 		this.id = id;
 	}
 
 
-	public Integer getHouseId() {
+	public String getHouseId() {
 		return houseId;
 	}
 
-	public void setHouseId(Integer houseId) {
+	public void setHouseId(String houseId) {
 		this.houseId = houseId;
 	}
 
@@ -45,11 +45,11 @@ public class HouseNumber {
 	}
 
 
-	public Integer getCreateId() {
+	public String getCreateId() {
 		return createId;
 	}
 
-	public void setCreateId(Integer createId) {
+	public void setCreateId(String createId) {
 		this.createId = createId;
 	}
 

+ 105 - 13
mhotel/src/com/happy/Model/HouseNumberStatus.java

@@ -1,20 +1,112 @@
 package com.happy.Model;
 
-import com.happy.common.model.BaseModel;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
+import java.util.Date;
 /**
- * 民宿房态表Model
+ * @Description  
+ * @Author  raojiaolong
+ * @Date 2023-08-23 
  */
-@EqualsAndHashCode(callSuper = true)
-@Data
-public class HouseNumberStatus extends BaseModel {
 
-    private Integer numberId; // 房间号id
-    private Integer closeType; // 关房类型(1.停用房 2.维修房 3.保留房)
-    private String remark; // 备注
-    private String setDate; // 设置日期
-    private Integer status; // 状态(0删除 1.正常 2.关房 3.脏房 4.净房)
+public class HouseNumberStatus {
+
+	private String id; // 主键
+	private String numberId; // 房间号id
+	private Integer closeType; // 关房类型(1.停用房 2.维修房 3.保留房)
+
+	private String bookingId;//订单id
+	private String remark; // 备注
+	private String setDate; // 设置日期
+	private String createId; // 创建人
+	private Date createDate; // 创建时间
+	private Date modifyDate; // 修改时间
+	private Integer status; // 状态(0删除 1.正常 2.关房 3.脏房 4.净房)
+
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
+
+
+	public String getNumberId() {
+		return numberId;
+	}
+
+	public void setNumberId(String numberId) {
+		this.numberId = numberId;
+	}
+
+
+	public Integer getCloseType() {
+		return closeType;
+	}
+
+	public void setCloseType(Integer closeType) {
+		this.closeType = closeType;
+	}
+
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+
+	public String getSetDate() {
+		return setDate;
+	}
+
+	public void setSetDate(String setDate) {
+		this.setDate = setDate;
+	}
+
+
+	public String getCreateId() {
+		return createId;
+	}
+
+	public void setCreateId(String createId) {
+		this.createId = createId;
+	}
+
+
+	public Date getCreateDate() {
+		return createDate;
+	}
+
+	public void setCreateDate(Date createDate) {
+		this.createDate = createDate;
+	}
+
+
+	public Date getModifyDate() {
+		return modifyDate;
+	}
+
+	public void setModifyDate(Date modifyDate) {
+		this.modifyDate = modifyDate;
+	}
+
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public String getBookingId() {
+		return bookingId;
+	}
 
+	public void setBookingId(String bookingId) {
+		this.bookingId = bookingId;
+	}
 }

+ 89 - 100
mhotel/src/com/happy/action/AppBookingAction.java

@@ -342,60 +342,60 @@ public class AppBookingAction extends ActionSupport implements ServletRequestAwa
 
         // 取消订单,修改订单的支付状态
         Booking book = bookService.getById(Func.parseInt(bookingId));
-        if (book == null )
-        {
+        if (book == null ) {
             jsonObject.put(B.code, ResultStatusCode.BAD_REQUEST.getStatus());
             jsonObject.put(B.message, "未获取到订单信息,请重新查询");
             ResponseUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
             return null;
         }
-
-        AdminManager adminManager = adminManagerService.getById(Func.parseInt(book.getHotelManagerId()));
-
+        // 查询用户信息
+        Users users = userService.queryByUserId(book.getCreateUserid());
+        if (users == null) {
+            jsonObject.put(B.code, ResultStatusCode.BAD_REQUEST.getStatus());
+            jsonObject.put(B.message, "未查询到当前用户数据users,请先授权");
+            ResponseUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
+            return null;
+        }
+        //是否能取消订单(1是 2否)
+        if (Func.parseInt(book.getHotelIsCanorder()) == 2) {
+            jsonObject.put(B.code, ResultStatusCode.BAD_REQUEST.getStatus());
+            jsonObject.put(B.message, "商家设置不可取消订单,请联系商家");
+            ResponseUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
+            return null;
+        }
         //1待支付,2已支付,3待入住,4已入住,5已消费,6支付超时,7已取消,8已退单,9已退款,10退款中
         int status = Func.parseInt(book.getOrderStatus());
-        if (status == PayEnum.待入住.getNum())
-        {
+        if (status == PayEnum.待支付.getNum() || status == PayEnum.支付超时.getNum()) {
             book.setOrderStatus(Func.parseStr(PayEnum.已取消.getNum())); // 如果在1待支付情况,用户点击取消订单按钮,后台直接修改取消订单操作
             book.setUpdateTime(DateUtil.getFormatPaternDate(new Date()));
             book.setRemake(Func.parseStr(PayEnum.已取消.getPayStatus()));
             bookService.updateBooking(book);
             jsonObject.put(B.code, ResultStatusCode.OK.getStatus());
-            jsonObject.put(B.message, "已取消订单");
+            jsonObject.put(B.message, "已取消");
             ResponseUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
             return null;
-
-        }else if (status == PayEnum.已支付.getNum() || status == PayEnum.待入住.getNum())
-        {
-            // 如果在2已支付,3待入住 情况,用户点击取消订单按钮,后台先修改状态为退款中,然后走退款流程
-            book.setOrderStatus(Func.parseStr(PayEnum.退款中.getNum()));
-            book.setUpdateTime(DateUtil.getFormatPaternDate(new Date()));
-            book.setRemake(Func.parseStr(PayEnum.已取消.getPayStatus()));
-            if (book.getPayAccount() > 0)
-            {
-                // 注明如果支付金额大于0,则需要退款: (标识走退款操作)
-                book.setRefundWay(OrderEnum.微信退款.toString());
-            }
         }
-
-        //是否能取消订单(1是 2否)
-        if (Func.parseInt(book.getHotelIsCanorder()) == 2)
-        {
+        if (status == PayEnum.已入住.getNum()) {
             jsonObject.put(B.code, ResultStatusCode.BAD_REQUEST.getStatus());
-            jsonObject.put(B.message, "商家设置不可取消订单,请联系商家");
+            jsonObject.put(B.message, "已入住,请前往前台办理退款");
             ResponseUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
             return null;
         }
-
-        Users users = userService.queryByUserId(book.getCreateUserid()); // 用户信息
-        if (users == null) {
+        if (status == PayEnum.已消费.getNum() || status == PayEnum.已取消.getNum() || status == PayEnum.已退单.getNum() || status == PayEnum.已退款.getNum()) {
             jsonObject.put(B.code, ResultStatusCode.BAD_REQUEST.getStatus());
-            jsonObject.put(B.message, "未查询到当前用户数据users,请先授权");
+            jsonObject.put(B.message, "订单已完成,不可进行操作");
+            ResponseUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
+            return null;
+        }
+        if (status == PayEnum.退款中.getNum()) {
+            jsonObject.put(B.code, ResultStatusCode.BAD_REQUEST.getStatus());
+            jsonObject.put(B.message, "退款中,请勿重复操作");
             ResponseUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
             return null;
         }
-
         // 退款操作
+        book.setRemake(Func.parseStr(PayEnum.已取消.getPayStatus()));
+        book.setRefundWay(OrderEnum.微信退款.toString());
         jsonObject = refundMethod(book,users.getOpenid());
         jsonObject.put(B.data, book);
         ResponseUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
@@ -411,81 +411,70 @@ public class AppBookingAction extends ActionSupport implements ServletRequestAwa
      */
     public JSONObject refundMethod(Booking book,String open_id) throws Exception {
         JSONObject  jsonObject  = new JSONObject();
-        if (book == null || Func.checkNull(open_id))
-        {
+        if (book == null || Func.checkNull(open_id)) {
             jsonObject.put("code", 400);
             jsonObject.put("message", "未传入book和open_id数据---refundMethod");
             return jsonObject;
         }
-
         // 进行判断如果订单是退款中,并且标识字段微信退款,则进入退款流程
-        if (Func.parseStr(PayEnum.退款中.getNum()).equals(book.getOrderStatus()) && OrderEnum.微信退款.toString().equals(book.getRefundWay())) {
-            String ip = WeiXinUtil.ip;
-            double money = book.getPayAccount();
-            int a = (int) (money * 100);
-            WechatUnifiedOrder w = new WechatUnifiedOrder();
-            w.setAppid(WeiXinUtil.appid_c);
-            w.setAttach("chuanghai");
-            w.setBody("chuanghai");
-            w.setMch_id(WeiXinUtil.account);
-            w.setNonce_str(PayWxUtil.getNonceStr());// 随机支付串
-            w.setNotify_url(WeiXinUtil.ip_h + "/abkquery_refund.action");// 支付结果回调地址
-            w.setOpenid(open_id);
-            w.setOut_trade_no(book.getOrderNum());
-            String refund_order = WxUtil.mchOrderNo();
-            w.setOut_refund_no(refund_order);   // 退款单号
-            w.setSpbill_create_ip(ip);
-            w.setTotal_fee(a);
-            w.setRefund_fee(a);   // 退款金额
-            w.setTrade_type("JSAPI");
-            SortedMap<String, String> params = new TreeMap<>();
-            params.put("appid", w.getAppid());
-            params.put("mch_id", w.getMch_id());
-            params.put("nonce_str", w.getNonce_str());
-            params.put("notify_url", w.getNotify_url());
-            params.put("out_refund_no", w.getOut_refund_no());   // 退款单号
-            params.put("out_trade_no", w.getOut_trade_no());
-            params.put("refund_fee",w.getRefund_fee()+"");  // 退款金额
-            params.put("total_fee", w.getTotal_fee() + "");
-
-            w.setSign(PayWxUtil.getSign(params, WeiXinUtil.key));
-            params.put("sign", w.getSign());
-            //String retXml = JaxbUtil.getRequestXml(params);
-            String xml = "<xml>" +
-                    "<appid>" + w.getAppid() + "</appid>" +
-                    "<mch_id>" + w.getMch_id() + "</mch_id>" +
-                    "<nonce_str>" + w.getNonce_str() + "</nonce_str>" +
-                    "<notify_url>" + w.getNotify_url() + "</notify_url>" +
-                    "<out_refund_no>" + w.getOut_refund_no() + "</out_refund_no>" +
-                    "<out_trade_no>" + w.getOut_trade_no() + "</out_trade_no>"	+
-                    "<refund_fee>" + w.getRefund_fee()+"" + "</refund_fee>" +
-                    "<total_fee>" + w.getTotal_fee() + "" + "</total_fee>" +
-                    "<sign>" + w.getSign() + "</sign>"	+
-                    "</xml>";
-            //String msg = HttpsClient.sendPost2("https://api.mch.weixin.qq.com/secapi/pay/refund", retXml);
-            String msg = HttpUtils.post2("https://api.mch.weixin.qq.com/secapi/pay/refund", xml);
-            if (msg.indexOf("FAIL") > -1) {
-                jsonObject.put("code", 507);
-                jsonObject.put("message", "退款失败");
-                ResUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
-                return null;
-            }
-
-            // 设置订单状态为退款中
-            book.setOrderStatus(Func.parseStr(PayEnum.退款中.getNum()));
-            book.setUpdateTime(DateUtil.parseDateToStr(new Date(),DateUtil.Time_Formatter_Second));
-            bookService.updateBooking(book);  // 退款中
-
-            // 用户在待支付状态下取消了订单时,写入数据操作
-            bookinglogService.addBooklog("用户在取消了订单,正进入退款流程",book);
-
-            jsonObject.put("code", 200);
-            jsonObject.put("message", "申请已提交,请稍候查询");
-            return jsonObject;
+        String ip = WeiXinUtil.ip;
+        double money = book.getPayAccount();
+        int a = (int) (money * 100);
+        WechatUnifiedOrder w = new WechatUnifiedOrder();
+        w.setAppid(WeiXinUtil.appid_c);
+        w.setAttach("chuanghai");
+        w.setBody("chuanghai");
+        w.setMch_id(WeiXinUtil.account);
+        w.setNonce_str(PayWxUtil.getNonceStr());// 随机支付串
+        w.setNotify_url(WeiXinUtil.ip_h + "/abkquery_refund.action");// 支付结果回调地址
+        w.setOpenid(open_id);
+        w.setOut_trade_no(book.getOrderNum());
+        String refund_order = WxUtil.mchOrderNo();
+        w.setOut_refund_no(refund_order);   // 退款单号
+        w.setSpbill_create_ip(ip);
+        w.setTotal_fee(a);
+        w.setRefund_fee(a);   // 退款金额
+        w.setTrade_type("JSAPI");
+        SortedMap<String, String> params = new TreeMap<>();
+        params.put("appid", w.getAppid());
+        params.put("mch_id", w.getMch_id());
+        params.put("nonce_str", w.getNonce_str());
+        params.put("notify_url", w.getNotify_url());
+        params.put("out_refund_no", w.getOut_refund_no());   // 退款单号
+        params.put("out_trade_no", w.getOut_trade_no());
+        params.put("refund_fee",w.getRefund_fee()+"");  // 退款金额
+        params.put("total_fee", w.getTotal_fee() + "");
+
+        w.setSign(PayWxUtil.getSign(params, WeiXinUtil.key));
+        params.put("sign", w.getSign());
+        //String retXml = JaxbUtil.getRequestXml(params);
+        String xml = "<xml>" +
+                "<appid>" + w.getAppid() + "</appid>" +
+                "<mch_id>" + w.getMch_id() + "</mch_id>" +
+                "<nonce_str>" + w.getNonce_str() + "</nonce_str>" +
+                "<notify_url>" + w.getNotify_url() + "</notify_url>" +
+                "<out_refund_no>" + w.getOut_refund_no() + "</out_refund_no>" +
+                "<out_trade_no>" + w.getOut_trade_no() + "</out_trade_no>"	+
+                "<refund_fee>" + w.getRefund_fee()+"" + "</refund_fee>" +
+                "<total_fee>" + w.getTotal_fee() + "" + "</total_fee>" +
+                "<sign>" + w.getSign() + "</sign>"	+
+                "</xml>";
+        //String msg = HttpsClient.sendPost2("https://api.mch.weixin.qq.com/secapi/pay/refund", retXml);
+        String msg = HttpUtils.post2("https://api.mch.weixin.qq.com/secapi/pay/refund", xml);
+        if (msg.indexOf("FAIL") > -1) {
+            jsonObject.put("code", 507);
+            jsonObject.put("message", "退款失败");
+            ResUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
+            return null;
         }
-
-        jsonObject.put("code", 400);
-        jsonObject.put("message", "提交申请失败");
+        // 设置订单状态为退款中
+        book.setOrderStatus(Func.parseStr(PayEnum.退款中.getNum()));
+        book.setUpdateTime(DateUtil.parseDateToStr(new Date(),DateUtil.Time_Formatter_Second));
+        bookService.updateBooking(book);  // 退款中
+        // 用户在待支付状态下取消了订单时,写入数据操作
+        bookinglogService.addBooklog("用户在取消了订单,正进入退款流程",book);
+        jsonObject.put("code", 200);
+        jsonObject.put("message", "申请已提交,请稍候查询");
         return jsonObject;
     }
 
@@ -868,7 +857,7 @@ public class AppBookingAction extends ActionSupport implements ServletRequestAwa
                 {
                     hotelName = book.getHouseName();
                 }
-                Message2.send(adminManager.getOpenid(),order_num,book.getHotelType(),live_end,book.getUserName(),hotelName, Func.parseStr(book.getId()));
+                Message2.send(adminManager.getOpenid(),order_num,book.getHouseName(),live_end,book.getUserName(),hotelName, Func.parseStr(book.getId()));
 
                 int m = bookService.updateBooking(book);
                 //用户支付,写入数据操作

+ 265 - 0
mhotel/src/com/happy/action/AppBookingCommentAction.java

@@ -0,0 +1,265 @@
+package com.happy.action;
+
+import com.happy.Model.BookingComment;
+import com.happy.Until.Func;
+import com.happy.Until.ResUtil;
+import com.happy.dto.OrderRateDto;
+import com.happy.service.BookingCommentService;
+import com.opensymphony.xwork2.ActionSupport;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.struts2.ServletActionContext;
+import org.apache.struts2.interceptor.ServletRequestAware;
+import org.springframework.web.bind.annotation.RequestBody;
+
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+
+/**
+ * 评价
+ */
+
+public class AppBookingCommentAction extends ActionSupport implements ServletRequestAware {
+
+    private HttpServletRequest request;
+
+    public HttpServletResponse response;
+
+    public HttpServletRequest getRequest() {
+        return request;
+    }
+
+    public void setRequest(HttpServletRequest request) {
+        this.request = request;
+    }
+
+    @Override
+    public void setServletRequest(HttpServletRequest request) {
+        this.request = request;
+    }
+
+    public HttpServletResponse getResponse() {
+        return response;
+    }
+
+    public void setResponse(HttpServletResponse response) {
+        this.response = response;
+    }
+
+
+    @Resource
+    public BookingCommentService bookingCommentService;
+
+
+    //    评论订单id
+    public String bookingId;
+
+    //    评论民宿id
+    public String hotelId;
+
+    //    评论房型id
+    public String houseId;
+
+    //    内容
+    public String content;
+
+    //    总评分
+    public Double score;
+
+    //    卫生评分
+    public Double scoreWs;
+
+    //    服务评分
+    public Double scoreFw;
+
+    //    设施评分
+    public Double scoreSs;
+
+    //    位置评分
+    public Double scoreWz;
+
+    //    创建人
+    public Integer createId;
+
+    public String createUsername;
+
+    //    创建时间
+    public String createDate;
+
+    //    修改时间
+    public String modifyDate;
+
+    public List<String> pictureList;
+
+    public List<String> getPictureList() {
+        return pictureList;
+    }
+
+    public void setPictureList(List<String> pictureList) {
+        this.pictureList = pictureList;
+    }
+
+    public String getBookingId() {
+        return bookingId;
+    }
+
+    public void setBookingId(String bookingId) {
+        this.bookingId = bookingId;
+    }
+
+    public String getHotelId() {
+        return hotelId;
+    }
+
+    public void setHotelId(String hotelId) {
+        this.hotelId = hotelId;
+    }
+
+    public String getHouseId() {
+        return houseId;
+    }
+
+    public void setHouseId(String houseId) {
+        this.houseId = houseId;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Double getScore() {
+        return score;
+    }
+
+    public void setScore(Double score) {
+        this.score = score;
+    }
+
+    public Double getScoreWs() {
+        return scoreWs;
+    }
+
+    public void setScoreWs(Double scoreWs) {
+        this.scoreWs = scoreWs;
+    }
+
+    public Double getScoreFw() {
+        return scoreFw;
+    }
+
+    public void setScoreFw(Double scoreFw) {
+        this.scoreFw = scoreFw;
+    }
+
+    public Double getScoreSs() {
+        return scoreSs;
+    }
+
+    public void setScoreSs(Double scoreSs) {
+        this.scoreSs = scoreSs;
+    }
+
+    public Double getScoreWz() {
+        return scoreWz;
+    }
+
+    public void setScoreWz(Double scoreWz) {
+        this.scoreWz = scoreWz;
+    }
+
+    public Integer getCreateId() {
+        return createId;
+    }
+
+    public void setCreateId(Integer createId) {
+        this.createId = createId;
+    }
+
+    public String getCreateUsername() {
+        return createUsername;
+    }
+
+    public void setCreateUsername(String createUsername) {
+        this.createUsername = createUsername;
+    }
+
+    public String getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(String createDate) {
+        this.createDate = createDate;
+    }
+
+    public String getModifyDate() {
+        return modifyDate;
+    }
+
+    public void setModifyDate(String modifyDate) {
+        this.modifyDate = modifyDate;
+    }
+
+    /**
+     * 添加评论
+     */
+    public JSONObject orderRate() {
+        JSONObject jsonObject = new JSONObject();
+        if (score == null || score < 0 || scoreFw == null || scoreFw < 0 || scoreSs == null || scoreSs < 0 || scoreWs == null || scoreWs < 0 || scoreWz == null || scoreWz < 0 || bookingId == null || hotelId == null || houseId == null) {
+            jsonObject.put("code", 400);
+            jsonObject.put("message", "未传入orderRateDto数据---orderRate");
+            ResUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
+            return null;
+        }
+
+        BookingComment bookingComment = BookingComment.builder().bookingId(bookingId)
+                .hotelId(hotelId).houseId(houseId).content(content)
+                .score(score).scoreWs(scoreWs).scoreFw(scoreFw)
+                .scoreSs(scoreSs).scoreWz(scoreWz).createId(createId)
+                .createUsername(createUsername).createDate(createDate)
+                .modifyDate(modifyDate).build();
+
+
+        int a = bookingCommentService.orderRate(bookingComment,pictureList);
+
+
+        if (a>0) {
+            jsonObject.put("code", 200);
+            jsonObject.put("message", "添加成功");
+            ResUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
+            return null;
+        }
+        jsonObject.put("message", "未知异常");
+        jsonObject.put("code", 205);
+        ResUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
+        return null;
+    }
+
+
+    /**
+     * 评价列表
+     *
+     * @return
+     */
+    public JSONObject evaluateList() {
+        JSONObject jsonObject = new JSONObject();
+        if (Func.checkNull(hotelId)) {
+            jsonObject.put("code", 400);
+            jsonObject.put("message", "未传入hotel_id数据---evaluateList");
+            ResUtil.writeJson(ServletActionContext.getResponse(), jsonObject.toString());
+            return null;
+        }
+
+
+        return null;
+
+    }
+
+
+}

+ 8 - 6
mhotel/src/com/happy/action/AppMePageAction.java

@@ -131,13 +131,15 @@ public class AppMePageAction extends ActionSupport implements ServletRequestAwar
 
         IPage<Booking> iPage = bookService.queryPage(querySql.toString(), page, rows);
         List<Booking> bookList =iPage.getPageList();
-        for (Booking book: bookList) {
-            if (book == null || Func.checkNull(book.getHouseId()))
-                continue;
+        if(bookList!=null){
+            for (Booking book: bookList) {
+                if (book == null || Func.checkNull(book.getHouseId()))
+                    continue;
 
-            // 将房间图片,写入房型对象中
-            List<FileInfo> fileInfoList = fileService.queryListByLinkId(book.getHouseId());
-            book.setHouseFileInfoList(fileInfoList);
+                // 将房间图片,写入房型对象中
+                List<FileInfo> fileInfoList = fileService.queryListByLinkId(book.getHouseId());
+                book.setHouseFileInfoList(fileInfoList);
+            }
         }
 
         ResponseUtil.writeJsonIPage(ServletActionContext.getResponse(),iPage);

+ 59 - 11
mhotel/src/com/happy/action/bookAction.java

@@ -1,9 +1,7 @@
 package com.happy.action;
 
 import com.baidubce.model.User;
-import com.happy.Model.AdminManager;
-import com.happy.Model.Booking;
-import com.happy.Model.HotelDict;
+import com.happy.Model.*;
 import com.happy.Model.weixin.Users;
 import com.happy.Until.*;
 import com.happy.Until.Enum.TempEnum;
@@ -11,10 +9,7 @@ import com.happy.Until.Excel.toExcel;
 import com.happy.common.http.Message;
 import com.happy.dto.BookTypeEto;
 import com.happy.dto.IPage;
-import com.happy.service.AdminManagerService;
-import com.happy.service.BookService;
-import com.happy.service.HotelDictService;
-import com.happy.service.UserService;
+import com.happy.service.*;
 import com.opensymphony.xwork2.ActionSupport;
 import net.sf.json.JSONObject;
 import org.apache.struts2.ServletActionContext;
@@ -23,10 +18,10 @@ import org.apache.struts2.interceptor.ServletRequestAware;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 import java.util.stream.Collectors;
 
 public class bookAction extends ActionSupport implements ServletRequestAware {
@@ -43,6 +38,12 @@ public class bookAction extends ActionSupport implements ServletRequestAware {
     @Resource
     public AdminManagerService adminManagerService;
 
+    @Resource
+    public HouseNumberStatusService houseNumberStatusService;
+
+    @Resource
+    public HouseNumberService houseNumberService;
+
     public int page; // 当前页
     public int rows;// 每页显示的行数rows
     public Integer id;
@@ -55,6 +56,7 @@ public class bookAction extends ActionSupport implements ServletRequestAware {
     public String hotelTownship;//所属乡镇
     public String minTotalPrice;//最小订单总价
     public String maxTotalPrice;//最大订单总价
+    public String houseNumberIds; // 房间号ids
 
     public HttpServletRequest getRequest() {
         return request;
@@ -119,6 +121,50 @@ public class bookAction extends ActionSupport implements ServletRequestAware {
                     book.setUpdateTime(UUIDUtil.getNewDate());
                     msg = "接单";
                     sendMsg = "商家已接单";
+                    //验证民宿房态表
+                    List<HouseNumber> houseNumbers = houseNumberService.queryHouseStatus(book);
+                    List<String> Ids = Arrays.asList(houseNumberIds.split(","));
+                    if (houseNumbers!=null){
+                        for (String id: Ids){
+                            for (HouseNumber houseNumber: houseNumbers){
+                                if (houseNumber.getStatus() != null && houseNumber.getStatus()==3 && id.equals(houseNumber.getId())){
+                                    resultJson.put("message", "选择的房间该时间段已有预定!请重新选择房间!");
+                                    resultJson.put("code", 502);
+                                    ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+                                    return null;
+                                }
+                            }
+                        }
+                    }
+                    //添加民宿房态表
+                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                    DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+                    LocalDateTime str = LocalDateTime.parse(book.getOrderStartTime(), inputFormatter);
+                    LocalDateTime end = LocalDateTime.parse(book.getOrderEndTime(), inputFormatter);
+                    String a = str.format(formatter);
+                    String B = end.format(formatter);
+                    LocalDate strDate = LocalDate.parse(a, formatter);
+                    LocalDate endDate = LocalDate.parse(B, formatter);
+                    List<HouseNumberStatus> list = new ArrayList<>();
+                    for (String number : Ids){
+                        for (LocalDate date = strDate;!date.isAfter(endDate.minusDays(1));date = date.plusDays(1)){
+                            HouseNumberStatus houseNumberStatus = new HouseNumberStatus();
+                            houseNumberStatus.setNumberId(number);
+                            houseNumberStatus.setRemark("");
+                            houseNumberStatus.setBookingId(String.valueOf(book.getId()));
+                            houseNumberStatus.setSetDate(date.format(formatter));
+                            houseNumberStatus.setStatus(5);//状态(0删除 1.正常 2.关房 3.脏房 4.净房 5.预定 6.入住)
+                            list.add(houseNumberStatus);
+                        }
+                    }
+
+                    int m = houseNumberStatusService.saveBatch(list);
+                    if (m == 0){
+                        resultJson.put("message", "确认失败");
+                        resultJson.put("code", 502);
+                        ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+                        return null;
+                    }
                     break;
                 case 2://入住
                     if(!"3".equals(book.getOrderStatus())){
@@ -371,6 +417,8 @@ public class bookAction extends ActionSupport implements ServletRequestAware {
             return null;
         }
         Booking book = bookService.getById(id);
+        List<HouseNumber> houseNumbers = houseNumberService.queryHouseStatus(book);
+        book.setHouseNumbers(houseNumbers);
         if (book != null) {
             resultJson.put("message", "查询成功");
             resultJson.put("code", 200);

+ 141 - 4
mhotel/src/com/happy/action/hotelCoupomAction.java

@@ -1,25 +1,44 @@
 package com.happy.action;
 
 import com.baidubce.services.media.model.Job;
+import com.google.common.base.Joiner;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
+import com.happy.Model.Admin;
 import com.happy.Model.AdminManager;
 import com.happy.Model.HotelCoupon;
 import com.happy.Model.HotelDict;
+import com.happy.Until.Func;
 import com.happy.Until.GetHttpParam;
 import com.happy.Until.ResUtil;
+import com.happy.Until.UUIDUtil;
 import com.happy.common.controller.BaseController;
 import com.happy.dao.HotelCouponDao;
 import com.happy.dto.IPage;
 import com.happy.service.HotelCoupomService;
+import com.happy.service.HotelCoupomStatusService;
 import net.sf.json.JSONObject;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.interceptor.ServletRequestAware;
 
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+
 public class hotelCoupomAction extends BaseController implements ServletRequestAware {
 
+
+    public List<String> ids; //优惠卷id
+    public String name; //优惠卷名称
+    public String type; //类型
+    public String grantStartDate;//发放时间
+    public String grantEndDate;//发放时间
+
+    @Resource(name = "hotelCoupomService")
     private HotelCoupomService hotelCoupomService;
 
+    @Resource(name = "hotelCoupomStatusService")
+    private HotelCoupomStatusService hotelCoupomStatusService;
     /**
      * 描述:新增优惠卷
      * @return
@@ -35,13 +54,26 @@ public class hotelCoupomAction extends BaseController implements ServletRequestA
         }
         HotelCoupon hotelCoupon = null;
         try{
-            hotelCoupon = gson.fromJson(json.toString(), new TypeToken<HotelDict>() {}.getType());
+            hotelCoupon = gson.fromJson(json.toString(), new TypeToken<HotelCoupon>() {}.getType());
             if(hotelCoupon==null){
                 resultJson.put("message", "数据为空");
                 resultJson.put("code", 500);
                 ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
                 return null;
             }
+            //格式化
+            hotelCoupon.setRemainderNumber(hotelCoupon.getGrantNumber());
+            hotelCoupon.setReversedNumber(0);
+            int m = hotelCoupomService.insert(hotelCoupon);
+            if (m > 0) {
+                resultJson.put("message", "添加成功");
+                resultJson.put("code", 200);
+            } else {
+                resultJson.put("message", "添加失败");
+                resultJson.put("code", 502);
+            }
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+            return null;
         }catch (Exception e){
             e.printStackTrace();
             resultJson.put("message", "未知异常:"+ e);
@@ -69,7 +101,28 @@ public class hotelCoupomAction extends BaseController implements ServletRequestA
         }
         HotelCoupon hotelCoupon = null;
         try{
-            hotelCoupon = gson.fromJson(json.toString(), new TypeToken<HotelDict>() {}.getType());
+            hotelCoupon = gson.fromJson(json.toString(), new TypeToken<HotelCoupon>() {}.getType());
+            if (hotelCoupon.getId()==null || "".equals(hotelCoupon.getId())){
+                resultJson.put("message", "请传入优惠卷id");
+                ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+                return null;
+            }
+            HotelCoupon h1 = hotelCoupomService.getById(hotelCoupon.getId());
+            if (h1==null){
+                resultJson.put("message", "修改失败,未查询到优惠卷");
+                ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+                return null;
+            }
+            int m = hotelCoupomService.update(hotelCoupon);
+            if (m > 0) {
+                resultJson.put("message", "修改成功");
+                resultJson.put("code", 200);
+            } else {
+                resultJson.put("message", "修改失败");
+                resultJson.put("code", 502);
+            }
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+            return null;
         }catch (Exception e){
             e.printStackTrace();
             resultJson.put("message", "未知异常:"+ e);
@@ -89,7 +142,27 @@ public class hotelCoupomAction extends BaseController implements ServletRequestA
     public String queryPage(){
         JSONObject resultJson = new JSONObject();
         StringBuilder s1 = new StringBuilder("");
-        IPage<HotelCoupon> adminIPage = hotelCoupomService.queryPage(s1.toString(),page,rows);
+        if (name != null){
+            s1.append(" and name like '%").append(name).append("%' ");
+        }
+        if (status != null){
+            s1.append(" and status = ").append(status).append(" ");
+        }
+        if (grantStartDate != null && grantEndDate != null){
+            s1.append(" and DATE_FORMAT(grant_start_date,'%Y-%m-%d') >= '").append(grantStartDate).append("' ");
+            s1.append(" and DATE_FORMAT(grant_end_date,'%Y-%m-%d') <= '").append(grantEndDate).append("' ");
+        }
+        IPage<HotelCoupon> hotelCouponIPage = hotelCoupomService.queryPage(s1.toString(),page,rows);
+        if(hotelCouponIPage!=null && !"".equals(hotelCouponIPage)){
+            resultJson.put("message", "查询分页成功");
+            resultJson.put("code", 200);
+            resultJson.put("data", hotelCouponIPage);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+        }else{
+            resultJson.put("message", "查询分页失败");
+            resultJson.put("code", 500);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+        }
         return null;
     }
 
@@ -99,13 +172,63 @@ public class hotelCoupomAction extends BaseController implements ServletRequestA
      */
     public String getById(){
         JSONObject resultJson = new JSONObject();
-        if (id==null && id == 0) {
+        if (id==null || "".equals(id)) {
             resultJson.put("message", "请传入id");
             resultJson.put("code", 500);
             ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
             return null;
         }
         HotelCoupon hotelCoupon = hotelCoupomService.getById(id);
+        if (hotelCoupon != null) {
+            resultJson.put("message", "查询成功");
+            resultJson.put("code", 200);
+            resultJson.put("data", hotelCoupon);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+            return null;
+        }else{
+            resultJson.put("message", "未查询到优惠卷信息");
+            resultJson.put("code", 500);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+            return null;
+        }
+    }
+
+    /**
+     * 描述:优惠卷批量失效
+     */
+    public String saveBatchLapse(){
+        JSONObject resultJson = new JSONObject();
+        Gson gson = new Gson();
+        com.alibaba.fastjson.JSONObject json = GetHttpParam.getRequestParameters(request);
+        if (json == null) {
+            resultJson.put("message", "请传入参数");
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+            return null;
+        }
+        HotelCoupon hotelCoupon = null;
+        try {
+            hotelCoupon = gson.fromJson(json.toString(), new TypeToken<HotelCoupon>() {}.getType());
+            if (ids == null){
+                resultJson.put("message", "请传入优惠卷id");
+                ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+                return null;
+            }
+            int m = hotelCoupomService.updateLapse(ids);
+            //TODO 修改用户领取的优惠卷
+            int n = hotelCoupomStatusService.updateLapse(ids);
+            resultJson.put("message", "修改成功");
+            resultJson.put("code", 200);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+            return null;
+        }catch (Exception e){
+            e.printStackTrace();
+            resultJson.put("message", "未知异常:"+ e);
+            resultJson.put("code", 205);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+        }
+        resultJson.put("message", "未知异常");
+        resultJson.put("code", 205);
+        ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
         return null;
     }
 
@@ -113,6 +236,20 @@ public class hotelCoupomAction extends BaseController implements ServletRequestA
      * 描述:定时任务修改优惠卷状态
      */
     public void setCoupomStatus(){
+        JSONObject resultJson = new JSONObject();
+        try {
+            int n =  hotelCoupomService.updateExpire();
+            int m =   hotelCoupomStatusService.updateExpir();
+            resultJson.put("message", "修改成功");
+            resultJson.put("code", 200);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+
+        }catch (Exception e){
+            e.printStackTrace();
+            resultJson.put("message", "未知异常:"+ e);
+            resultJson.put("code", 205);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+        }
         System.out.println(1111);
     }
 

+ 42 - 5
mhotel/src/com/happy/action/houseAction.java

@@ -7,10 +7,7 @@ import com.happy.Model.*;
 import com.happy.Until.*;
 import com.happy.dto.HouseSumEto;
 import com.happy.dto.IPage;
-import com.happy.service.BookService;
-import com.happy.service.FileService;
-import com.happy.service.HotelDictService;
-import com.happy.service.HouseService;
+import com.happy.service.*;
 import com.opensymphony.xwork2.ActionSupport;
 import net.sf.json.JSONObject;
 import org.apache.struts2.ServletActionContext;
@@ -19,6 +16,8 @@ import org.apache.struts2.interceptor.ServletRequestAware;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
@@ -35,6 +34,8 @@ public class houseAction extends ActionSupport implements ServletRequestAware {
     public FileService fileService;
     @Resource
     public HotelDictService hotelDictService;
+    @Resource
+    public HouseNumberService houseNumberService;
 
     public Integer id;
     public Integer managerId;
@@ -44,6 +45,7 @@ public class houseAction extends ActionSupport implements ServletRequestAware {
     public String orderTime;//住房时间
 
     public String fileListJson;
+    public String houseNumber; // 房间号
 
     public HttpServletRequest getRequest() {
         return request;
@@ -100,6 +102,8 @@ public class houseAction extends ActionSupport implements ServletRequestAware {
 //                ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
 //                return null;
 //            }
+//            List<String> numberList = JSONArray.parseArray(houseNumberList, String.class);
+
             StringBuilder getOneSqlx = new StringBuilder("");
             getOneSqlx.append(" and h_name = '").append(house.gethName()).append("'")
                     .append(" and manager_id = '").append(house.getManagerId()).append("'");
@@ -110,7 +114,27 @@ public class houseAction extends ActionSupport implements ServletRequestAware {
                 ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
                 return null;
             }
-            house.setId(Math.toIntExact(UUIDUtil.generateID()));
+            //房型验证成功添加房号
+            Long id = UUIDUtil.generateID();
+            List<String> houseNumberList = Arrays.asList(houseNumber.split(","));
+            List<HouseNumber> houseNumbers = new ArrayList<HouseNumber>();
+            long count = houseNumberList.stream().distinct().count();
+            if (count != houseNumberList.size()){
+                resultJson.put("message", "房号不可重复");
+                resultJson.put("code", 500);
+                ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+                return null;
+            }
+            for (String s : houseNumberList){
+                HouseNumber h1 = new HouseNumber();
+                h1.setHouseId(Long.toString(id));
+                h1.setNumberName(s);
+                h1.setStatus(1);
+                houseNumbers.add(h1);
+            }
+            //执行批量房间号表操作
+            int a = houseNumberService.saveBatch(houseNumbers);
+            house.setId(Math.toIntExact(id));
             int m = houseService.insertHouse(house);
             if (m > 0) {
                 for(FileInfo file : fileList){
@@ -182,6 +206,8 @@ public class houseAction extends ActionSupport implements ServletRequestAware {
 //                ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
 //                return null;
 //            }
+//            List<String> numberList = JSONArray.parseArray(houseNumberList, String.class);
+
             StringBuilder getOneSqlx = new StringBuilder("");
             getOneSqlx.append(" and h_name = '").append(house.gethName()).append("'");
             getOneSqlx.append(" and manager_id = '").append(house.getManagerId()).append("'");
@@ -193,6 +219,17 @@ public class houseAction extends ActionSupport implements ServletRequestAware {
                 ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
                 return null;
             }
+            //验证成功修改房号表
+            List<String> houseNumberList = Arrays.asList(houseNumber.split(","));
+            List<HouseNumber> houseNumbers = new ArrayList<HouseNumber>();
+            for (String s : houseNumberList){
+                HouseNumber h1 = new HouseNumber();
+                h1.setHouseId(Long.toString(house.getId()));
+                h1.setNumberName(s);
+                h1.setStatus(1);
+                houseNumbers.add(h1);
+            }
+            int a = houseNumberService.updateBatch(houseNumbers);
             int m = houseService.updateHouse(house);
             if (m > 0) {
                 if(house.getId()!= null){

+ 8 - 0
mhotel/src/com/happy/dao/BookingCommentDao.java

@@ -0,0 +1,8 @@
+package com.happy.dao;
+
+import com.happy.Model.BookingComment;
+
+public interface BookingCommentDao {
+    String insertBookingComment(BookingComment bookingComment);
+
+}

+ 5 - 1
mhotel/src/com/happy/dao/HotelCouponDao.java

@@ -32,7 +32,7 @@ public interface HotelCouponDao {
      * @param id
      * @return
      */
-    HotelCoupon getById(Integer id);
+    HotelCoupon getById(String id);
 
     /**
      * 描述:分页查询
@@ -57,4 +57,8 @@ public interface HotelCouponDao {
      */
     List<HotelCoupon> queryList(String sqlx);
 
+    int updateExpire();
+
+    int updateLapse(List<String> coupomIds);
+
 }

+ 6 - 6
mhotel/src/com/happy/dao/impl/AdminManagerImplDao.java

@@ -32,7 +32,7 @@ public class AdminManagerImplDao implements AdminManagerDao {
 
     public String selectSql =
         "select " +
-        "a.id, a.type, a.manager_id, a.linkpro_url, a.admin_name, a.hotel_name, a.hotel_township, b.name hotel_township_name, a.corpn_name, a.corpn_phone, a.level, a.admin_power, a.bank_card, a.card_name, a.bank_name, a.create_id, DATE_FORMAT(a.create_date,'%Y-%m-%d %T') create_date,DATE_FORMAT(a.modify_date,'%Y-%m-%d %T') modify_date,a.status,a.remark,a.openid " +
+        "a.id, a.type, a.manager_id, a.link_pro_url, a.admin_name, a.hotel_name, a.hotel_township, b.name hotel_township_name, a.corpn_name, a.corpn_phone, a.level, a.admin_power, a.bank_card, a.card_name, a.bank_name, a.create_id, DATE_FORMAT(a.create_date,'%Y-%m-%d %T') create_date,DATE_FORMAT(a.modify_date,'%Y-%m-%d %T') modify_date,a.status,a.remark,a.openid " +
         "from `admin_manager` a " +
         "left join hotel_dict b on a.hotel_township = b.id";
 
@@ -40,14 +40,14 @@ public class AdminManagerImplDao implements AdminManagerDao {
     @Override
     public int insertAdmin(AdminManager adminManager) {
 
-        String sql = "INSERT INTO admin_manager (id, type, manager_id, admin_name, password, linkpro_url, hotel_name, hotel_township, corpn_name, corpn_phone, level, admin_power, bank_card, card_name, bank_name, create_id, create_date, status, remark) VALUES (:id, :type, :manager_id ,:admin_name, :password, :linkpro_url, :hotel_name, :hotel_township, :corpn_name, :corpn_phone, :level, :admin_power, :bank_card, :card_name, :bank_name, :create_id, :create_date, :status, :remark)";
+        String sql = "INSERT INTO admin_manager (id, type, manager_id, admin_name, password, link_pro_url, hotel_name, hotel_township, corpn_name, corpn_phone, level, admin_power, bank_card, card_name, bank_name, create_id, create_date, status, remark) VALUES (:id, :type, :manager_id ,:admin_name, :password, :link_pro_url, :hotel_name, :hotel_township, :corpn_name, :corpn_phone, :level, :admin_power, :bank_card, :card_name, :bank_name, :create_id, :create_date, :status, :remark)";
 
         MapSqlParameterSource sps = new MapSqlParameterSource();
         sps.addValue("type", adminManager.getType());
         sps.addValue("manager_id", adminManager.getManagerId());
         sps.addValue("admin_name", adminManager.getAdminName());
         sps.addValue("password", adminManager.getPassword());
-        sps.addValue("linkpro_url", adminManager.getLinkProUrl());
+        sps.addValue("link_pro_url", adminManager.getLinkProUrl());
         sps.addValue("hotel_name", adminManager.getHotelName());
         sps.addValue("hotel_township", adminManager.getHotelTownship());
         sps.addValue("corpn_name", adminManager.getCorpnName());
@@ -163,7 +163,7 @@ public class AdminManagerImplDao implements AdminManagerDao {
 
     @Override
     public List<townshipCountDTO> getTownshipCount(){
-        String sql = "select a.name,count(1) sumNumber,case when b.type=1 then 1 else 0 end aSum,case when b.type=2 then 1 else 0 end bSum,case when b.type=3 then 1 else 0 end cSum from \n" +
+        String sql = "select a.name,sum(case when b.id is not null then 1 else 0 end) sumNumber,sum(case when b.type=1 then 1 else 0 end) aSum,sum(case when b.type=2 then 1 else 0 end) bSum,sum(case when b.type=3 then 1 else 0 end) cSum from \n" +
                 "(select * from hotel_dict where code = 10 ) a\n" +
                 "left join (select a.*,b.hstatus from admin_manager a\n" +
                 "left join hotel b on a.id = b.manager_id\n" +
@@ -208,8 +208,8 @@ public class AdminManagerImplDao implements AdminManagerDao {
             sps.addValue("type", adminManager.getType());
         }
         if (!Func.checkNull(adminManager.getLinkProUrl())){
-            stringBuffer.append(" linkpro_url=:linkpro_url ,");
-            sps.addValue("linkpro_url", adminManager.getLinkProUrl());
+            stringBuffer.append(" link_pro_url=:link_pro_url ,");
+            sps.addValue("link_pro_url", adminManager.getLinkProUrl());
         }
         if (!Func.checkNull(adminManager.getAdminName())){
             stringBuffer.append(" admin_name=:admin_name ,");

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

@@ -202,7 +202,7 @@ public class BookImplDao implements BookDao {
 
     @Override
     public Booking getById(int id) {
-        String sql = "SELECT "+selectCol+" FROM `booking` WHERE id = :id ";
+        String sql = "SELECT a.*,b.name hotel_township_name,c.hstatus hstatus,c.status hotelStatus FROM (select "+selectCol+" from booking) a left join hotel_dict b on a.hotel_township = b.id left join hotel c on a.hotel_id = c.id WHERE a.id = :id ";
         MapSqlParameterSource sps = new MapSqlParameterSource();
         sps.addValue("id",id);
         List<Booking> list = null;
@@ -221,7 +221,7 @@ public class BookImplDao implements BookDao {
         SqlUtil.filterKeyword(sqlx);
 
         int start = (page - 1) * rows;// 每页的起始下标
-        String sql = "SELECT a.*,b.name hotel_township_name FROM (select "+selectCol+" from booking) a left join hotel_dict b on a.hotel_township = b.id WHERE 1=1 "+sqlx+" ORDER BY create_time DESC limit :start,:rows ";
+        String sql = "SELECT a.*,b.name hotel_township_name,c.hstatus hstatus,c.status hotelStatus FROM (select "+selectCol+" from booking) a left join hotel_dict b on a.hotel_township = b.id left join hotel c on a.hotel_id = c.id WHERE 1=1 "+sqlx+" ORDER BY create_time DESC limit :start,:rows ";
         MapSqlParameterSource sps = new MapSqlParameterSource();
         sps.addValue("start", start);
         sps.addValue("rows", rows);

+ 76 - 0
mhotel/src/com/happy/dao/impl/BookingCommentDaoImpl.java

@@ -0,0 +1,76 @@
+package com.happy.dao.impl;
+
+import com.happy.Model.BookingComment;
+import com.happy.Until.UUIDUtil;
+import com.happy.dao.BookingCommentDao;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
+import org.springframework.stereotype.Repository;
+
+@Repository("BookingCommentDao")
+public class BookingCommentDaoImpl implements BookingCommentDao {
+    @Autowired
+    private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
+
+    public NamedParameterJdbcTemplate getNamedParameterJdbcTemplate() {
+        return namedParameterJdbcTemplate;
+    }
+
+    public void setNamedParameterJdbcTemplate(
+            NamedParameterJdbcTemplate namedParameterJdbcTemplate) {
+        this.namedParameterJdbcTemplate = namedParameterJdbcTemplate;
+    }
+
+    /**
+     * Ìí¼ÓÆÀ¼Û£¬²¢·µ»ØÖ÷¼ü
+     * @param bookingComment
+     * @return
+     */
+    @Override
+    public String insertBookingComment(BookingComment bookingComment) {
+        String sql = "insert into `booking_comment`(id,comment_id,booking_id,hotel_id,house_id,content,comment_status,score, score_ws,score_fw,score_ss,score_wz,create_id,create_username,create_date,modify_date,status) values(:id,:comment_id,:booking_id,:hotel_id,:house_id,:content,:comment_status,:score,:score_ws,:score_fw,:score_ss,:score_wz,:create_id,:create_username,:create_date,:modify_date,:status) ";
+        MapSqlParameterSource sps = new MapSqlParameterSource();
+        sps.addValue("comment_id", bookingComment.getCommentId());
+        sps.addValue("booking_id",bookingComment.getBookingId());
+        sps.addValue("hotel_id", bookingComment.getHotelId());
+        sps.addValue("house_id", bookingComment.getHouseId());
+        sps.addValue("content", bookingComment.getContent());
+        sps.addValue("comment_status",bookingComment.getCommentStatus());
+        sps.addValue("score", bookingComment.getScore());
+        sps.addValue("score_ws", bookingComment.getScoreWs());
+        sps.addValue("score_fw", bookingComment.getScoreFw());
+        sps.addValue("score_ss", bookingComment.getScoreSs());
+        sps.addValue("score_wz", bookingComment.getScoreWz());
+        sps.addValue("create_id", bookingComment.getCreateId());
+        sps.addValue("create_username",bookingComment.getCreateUsername() );
+        sps.addValue("create_date",bookingComment.getCreateDate());
+        sps.addValue("modify_date",bookingComment.getModifyDate());
+        sps.addValue("status", 1);
+
+        String id ="";
+        if(bookingComment.getId()==null){
+            id = UUIDUtil.generateID()+"";
+            sps.addValue("id", id);
+        }else{
+            id=bookingComment.getId()+"";
+            sps.addValue("id", id);
+        }
+        int num = 0;
+        try{
+            num = namedParameterJdbcTemplate.update(sql, sps);
+        }
+        catch(Exception e){
+            e.printStackTrace();
+        }
+        if (num>0) {
+            return id;
+        }else {
+            id=num+"";
+        }
+        return id;
+    }
+
+
+
+}

File diff suppressed because it is too large
+ 77 - 8
mhotel/src/com/happy/dao/impl/HotelCouponImplDao.java


+ 13 - 12
mhotel/src/com/happy/dao/impl/HotelImplDao.java

@@ -109,9 +109,9 @@ public class HotelImplDao implements HotelDao {
     @Override
     public Hotel getById(int id) {
 
-        String sql = " SELECT   a.*, c.manager_phone, b.hotel_township_name,c.hotel_name,d.hTypeName,f.room_number_calc  FROM `hotel` a  " +
+        String sql = " SELECT   a.*, c.manager_phone, b.hotel_township_name,c.hotel_name,d.hTypeName,f.room_number_calc,c.link_pro_url  FROM `hotel` a  " +
                 "left join (select manager_id,min(price) min_price ,sum(number) AS room_number_calc from house where status=1 group by manager_id) f on a.manager_id = f.manager_id " +
-                " LEFT JOIN (SELECT   id, corpn_phone manager_phone, hotel_township,hotel_name FROM  admin_manager ) c ON a.manager_id = c.id " +
+                " LEFT JOIN (SELECT   id, corpn_phone manager_phone, hotel_township,hotel_name,link_pro_url FROM  admin_manager ) c ON a.manager_id = c.id " +
                 " LEFT JOIN (  SELECT  id,name as hotel_township_name  FROM  hotel_dict GROUP BY  id) b ON b.id = c.hotel_township   "+
                 " LEFT JOIN (  SELECT  id,name as hTypeName  FROM  hotel_dict GROUP BY  id) d ON d.id = a.htype   "+
                 " WHERE  a.STATUS = 1  AND a.id =  :id ";
@@ -132,8 +132,8 @@ public class HotelImplDao implements HotelDao {
     @Override
     public Hotel getByManagerId(int id) {
 
-        String sql = " SELECT   a.*, c.manager_phone, b.hotel_township_name,c.hotel_name  FROM `hotel` a  " +
-                " LEFT JOIN (SELECT   id, corpn_phone manager_phone, hotel_township,hotel_name FROM  admin_manager ) c ON a.manager_id = c.id " +
+        String sql = " SELECT   a.*, c.manager_phone, b.hotel_township_name,c.hotel_name,c.link_pro_url  FROM `hotel` a  " +
+                " LEFT JOIN (SELECT   id, corpn_phone manager_phone, hotel_township,hotel_name,link_pro_url FROM  admin_manager ) c ON a.manager_id = c.id " +
                 " LEFT JOIN (  SELECT  id,name as hotel_township_name  FROM  hotel_dict GROUP BY  id) b ON b.id = c.hotel_township   "+
                 " WHERE  a.STATUS != 0  AND a.manager_id =  :manager_id ";
         MapSqlParameterSource sps = new MapSqlParameterSource();
@@ -169,12 +169,12 @@ public class HotelImplDao implements HotelDao {
     public List<Hotel> queryPagePrice(String sqlx, int page, int rows) {
         SqlUtil.filterKeyword(sqlx);
         int start = (page - 1) * rows;// 每页的起始下标
-        String sql = "SELECT a.*,b.min_price,c.hotel_township,d.hotel_township_name, e.h_type_name,c.hotel_name FROM `hotel` a " +
+        String sql = "SELECT a.*,b.min_price,c.hotel_township,d.hotel_township_name, e.h_type_name,c.hotel_name,c.link_pro_url FROM `hotel` a " +
                 "left join (select manager_id,min(price) min_price from house where status=1 group by manager_id) b on a.manager_id = b.manager_id " +
-                "left join (select id,manager_id,hotel_township,hotel_name,type from admin_manager ) c on a.manager_id = c.id " +
-                "LEFT JOIN (  SELECT  id,name as hotel_township_name  FROM  hotel_dict GROUP BY  id) d ON d.id = c.hotel_township " +
+                "left join (select id,manager_id,hotel_township,hotel_name,type,status,link_pro_url from admin_manager ) c on a.manager_id = c.id " +
+                "LEFT JOIN (  SELECT  id,name as hotel_township_name,status  FROM  hotel_dict GROUP BY  id) d ON d.id = c.hotel_township " +
                 "LEFT JOIN (  SELECT  id,name as h_type_name  FROM  hotel_dict GROUP BY  id) e ON e.id = a.htype      " +
-                " WHERE status=1 "+sqlx+" ORDER BY id DESC limit :start,:rows ";
+                " WHERE hstatus = 1 and a.status=1 and c.status = 1 "+sqlx+" ORDER BY id DESC limit :start,:rows ";
         MapSqlParameterSource sps = new MapSqlParameterSource();
         sps.addValue("start", start);
         sps.addValue("rows", rows);
@@ -190,11 +190,12 @@ public class HotelImplDao implements HotelDao {
 //                "left join (select manager_id,hotel_township hotel_township from admin_manager group by manager_id) c on a.manager_id = c.manager_id " +
 //                "where status=1 "+sqlx;
         SqlUtil.filterKeyword(sqlx);
-        String sql = "SELECT count(*) FROM `hotel` a " +
+        String sql = "SELECT count(1) FROM `hotel` a " +
                 "left join (select manager_id,min(price) min_price from house where status=1 group by manager_id) b on a.manager_id = b.manager_id " +
-                "left join (select manager_id,hotel_township hotel_township,type from admin_manager group by manager_id) c on a.manager_id = c.manager_id " +
-                "LEFT JOIN (  SELECT  id,name as hotel_township_name  FROM  hotel_dict GROUP BY  id) d ON d.id = c.hotel_township " +
-                " WHERE status=1 "+sqlx;
+                "left join (select id,manager_id,hotel_township,hotel_name,type,status,link_pro_url from admin_manager ) c on a.manager_id = c.id " +
+                "LEFT JOIN (  SELECT  id,name as hotel_township_name,status  FROM  hotel_dict GROUP BY  id) d ON d.id = c.hotel_township " +
+                "LEFT JOIN (  SELECT  id,name as h_type_name  FROM  hotel_dict GROUP BY  id) e ON e.id = a.htype      " +
+                " WHERE hstatus = 1 and a.status=1 and c.status = 1 "+sqlx;
         MapSqlParameterSource sps = new MapSqlParameterSource();
         return namedParameterJdbcTemplate.queryForInt(sql, sps);
     }

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

@@ -82,7 +82,7 @@ public class HouseImplDao implements HouseDao {
 
     @Override
     public int delHouse(int id) {
-        String sql = "update `house` set status=0 where id=:id";
+        String sql = "update `house` set status = 0 where id=:id";
         MapSqlParameterSource sps = new MapSqlParameterSource();
         sps.addValue("id",id);
         int num = 0;

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

@@ -30,8 +30,8 @@ public class UserDaoImpl implements UserDao {
     }
 
     public int insert(Users users){
-        String sql = "insert into `users`(card_number,user_name,user_phone,user_zz,openid,create_time,remark,identity_type,contact_id,contact_name,data_type,head_photo,collect_hotel,live_hotel)" +
-                " values(:card_number,:user_name,:user_phone,:user_zz,:openid,:create_time,:remark,:identity_type,:contact_id,:contact_name,:data_type,:head_photo,:collect_hotel,:live_hotel) ";
+        String sql = "insert into `users`(id,card_number,user_name,user_phone,user_zz,openid,create_time,remark,identity_type,contact_id,contact_name,data_type,head_photo,collect_hotel,live_hotel)" +
+                " values(:id,:card_number,:user_name,:user_phone,:user_zz,:openid,:create_time,:remark,:identity_type,:contact_id,:contact_name,:data_type,:head_photo,:collect_hotel,:live_hotel) ";
         MapSqlParameterSource sps = new MapSqlParameterSource();
         sps.addValue("card_number", users.getCard_number());
         sps.addValue("user_name", users.getUser_name());
@@ -47,6 +47,11 @@ public class UserDaoImpl implements UserDao {
         sps.addValue("head_photo", users.getHeadPhoto());
         sps.addValue("collect_hotel", users.getCollect_hotel());
         sps.addValue("live_hotel", users.getLive_hotel());
+        if(users.getId()==0){
+            sps.addValue("id", UUIDUtil.generateID());
+        }else{
+            sps.addValue("id", users.getId());
+        }
         int num = 0;
         try{
             num = namedParameterJdbcTemplate.update(sql, sps);

+ 5 - 1
mhotel/src/com/happy/dao/impl/UserVisitsDaoImpl.java

@@ -41,7 +41,11 @@ public class UserVisitsDaoImpl implements UserVisitsDao {
         String sql = "insert into `user_visits`(id,userid,create_time,type,remark) " +
                 "values(:id,:userid,:create_time,:type,:remark) ";
         MapSqlParameterSource sps = new MapSqlParameterSource();
-        sps.addValue("id", userVisits.getId());
+        if(userVisits.getId()==0){
+            sps.addValue("id", UUIDUtil.generateID());
+        }else{
+            sps.addValue("id", userVisits.getId());
+        }
         sps.addValue("userid", userVisits.getUserid());
         sps.addValue("create_time", UUIDUtil.getNewDate());
         sps.addValue("type", userVisits.getType());

+ 37 - 0
mhotel/src/com/happy/dto/OrderRateDto.java

@@ -0,0 +1,37 @@
+package com.happy.dto;
+
+import com.happy.Model.BookingComment;
+import com.happy.Model.FileInfo;
+
+import java.util.List;
+
+public class OrderRateDto {
+    //         ¸½¼þ
+    private List<FileInfo> fileInfoList;
+//  ÆÀ¼Û
+    private BookingComment bookingComment;
+
+    public List<FileInfo> getFileInfoList() {
+        return fileInfoList;
+    }
+
+    public void setFileInfoList(List<FileInfo> fileInfoList) {
+        this.fileInfoList = fileInfoList;
+    }
+
+    public BookingComment getBookingComment() {
+        return bookingComment;
+    }
+
+    public void setBookingComment(BookingComment bookingComment) {
+        this.bookingComment = bookingComment;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderRateDto{" +
+                "fileInfoList=" + fileInfoList +
+                ", bookingComment=" + bookingComment +
+                '}';
+    }
+}

+ 12 - 0
mhotel/src/com/happy/service/BookingCommentService.java

@@ -0,0 +1,12 @@
+package com.happy.service;
+
+import com.happy.Model.BookingComment;
+import com.happy.Model.FileInfo;
+
+import java.util.List;
+
+public interface BookingCommentService {
+
+
+    int orderRate( BookingComment bookingComment,List<String> pictureList);
+}

+ 2 - 0
mhotel/src/com/happy/service/FileService.java

@@ -78,4 +78,6 @@ public interface FileService {
      * 描述:批量上传图片
      */
     void uploadImp(List<File> fileList, HttpServletRequest request);
+
+    int batchInsertFile(List<FileInfo> fileInfoList);
 }

+ 4 - 1
mhotel/src/com/happy/service/HotelCoupomService.java

@@ -33,7 +33,7 @@ public interface HotelCoupomService {
      * @param id
      * @return
      */
-    HotelCoupon getById(Integer id);
+    HotelCoupon getById(String id);
 
     /**
      * 描述:分页查询
@@ -51,4 +51,7 @@ public interface HotelCoupomService {
      */
     List<HotelCoupon> queryList(String sqlx);
 
+    int updateExpire();
+
+    int updateLapse(List<String> coupomIds);
 }

+ 66 - 0
mhotel/src/com/happy/service/impl/BookingCommentImplService.java

@@ -0,0 +1,66 @@
+package com.happy.service.impl;
+
+import com.happy.Model.BookingComment;
+import com.happy.Model.FileInfo;
+import com.happy.dao.BookingCommentDao;
+import com.happy.service.BookingCommentService;
+import com.happy.service.FileService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service("BookingCommentService")
+
+public class BookingCommentImplService implements BookingCommentService {
+
+    @Resource
+    BookingCommentDao bookingCommentDao;
+
+    @Resource
+    FileService fileService;
+
+
+
+    /**
+     * 添加评论
+     *
+     * @param pictureList
+     * @param bookingComment
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int orderRate( BookingComment bookingComment,List<String> pictureList) {
+
+//        添加评论表并返回主键
+
+        String id = bookingCommentDao.insertBookingComment(bookingComment);
+        int i = 1;
+        if (pictureList.size() > 0) {
+            List<FileInfo> fileInfoList = new ArrayList<>();
+            for (String s : pictureList) {
+                String[] split = s.split("/");
+                String s1 = split[split.length-1];
+                FileInfo fileInfo = new FileInfo();
+                fileInfo.setLinkId(id);
+                fileInfo.setName(s1);
+                fileInfo.setUrl(s);
+
+                fileInfoList.add(fileInfo);
+            }
+
+            i = fileService.batchInsertFile(fileInfoList);
+        }
+        if (Long.valueOf(id) > 0 && i > 0) {
+            return i;
+        }else {
+            return 0;
+        }
+
+    }
+
+
+}

+ 9 - 0
mhotel/src/com/happy/service/impl/FileImplService.java

@@ -116,4 +116,13 @@ public class FileImplService implements FileService {
             }
         }
     }
+
+    @Override
+    public int batchInsertFile(List<FileInfo> fileInfoList) {
+        int i=0;
+        for (FileInfo fileInfo : fileInfoList) {
+            i=fileDao.insertFile(fileInfo);
+        }
+        return i;
+    }
 }

+ 15 - 2
mhotel/src/com/happy/service/impl/HotelCoupomImplService.java

@@ -2,13 +2,16 @@ package com.happy.service.impl;
 
 import com.happy.Model.AdminManager;
 import com.happy.Model.HotelCoupon;
+import com.happy.Until.DateUtil;
 import com.happy.dao.HotelCouponDao;
 import com.happy.dto.IPage;
 import com.happy.service.HotelCoupomService;
+import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Date;
 import java.util.List;
-
+@Service("hotelCoupomService")
 public class HotelCoupomImplService implements HotelCoupomService {
 
     @Resource
@@ -30,7 +33,7 @@ public class HotelCoupomImplService implements HotelCoupomService {
     }
 
     @Override
-    public HotelCoupon getById(Integer id) {
+    public HotelCoupon getById(String id) {
         return hotelCouponDao.getById(id);
     }
 
@@ -51,4 +54,14 @@ public class HotelCoupomImplService implements HotelCoupomService {
     public List<HotelCoupon> queryList(String sqlx) {
         return hotelCouponDao.queryList(sqlx);
     }
+
+    @Override
+    public  int updateExpire() {
+        return hotelCouponDao.updateExpire();
+    }
+
+    @Override
+    public int updateLapse(List<String> coupomIds) {
+        return hotelCouponDao.updateLapse(coupomIds);
+    }
 }

+ 3 - 0
mhotel/src/struts.xml

@@ -31,6 +31,8 @@
 		</action>
 		<action name="hotel*" method = "{1}" class="com.happy.action.hotelAction">
 		</action>
+		<action name="Coupom*" method = "{1}" class="com.happy.action.hotelCoupomAction">
+		</action>
 		<action name="house*" method = "{1}" class="com.happy.action.houseAction">
 		</action>
 		<action name="house/price/*" method = "{1}" class="com.happy.action.HousePriceAction">
@@ -48,6 +50,7 @@
 		<action name="abk*" method = "{1}" class="com.happy.action.AppBookingAction"></action>
 		<action name="ahp*" method = "{1}" class="com.happy.action.AppHomePageAction"></action>
 		<action name="amp*" method = "{1}" class="com.happy.action.AppMePageAction"></action>
+		<action name="abca*" method = "{1}" class="com.happy.action.AppBookingCommentAction"></action>
 
 	</package>
 	<package name="interfaces" namespace="/interfaces" extends="struts-default">