Browse Source

添加数据中台接口

raojiaolong@163.com 2 years ago
parent
commit
4206b858e8

+ 123 - 0
mhotel/src/com/happy/action/IDCAction.java

@@ -0,0 +1,123 @@
+package com.happy.action;
+
+import com.happy.Until.ResUtil;
+import com.happy.dto.IDCBookStatusEto;
+import com.happy.dto.IDCHotelEto;
+import com.happy.dto.IDCRankEto;
+import com.happy.service.IDCService;
+import com.opensymphony.xwork2.ActionSupport;
+import net.sf.json.JSONObject;
+import org.apache.struts2.ServletActionContext;
+import org.apache.struts2.interceptor.ServletRequestAware;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class IDCAction extends ActionSupport implements ServletRequestAware {
+
+    private HttpServletRequest request;
+    public HttpServletResponse response;
+
+    private IDCService idcService;
+
+    public HttpServletRequest getRequest() {
+        return request;
+    }
+
+    public void setRequest(HttpServletRequest request) {
+        this.request = request;
+    }
+
+    public void setServletRequest(HttpServletRequest request) {
+        this.request = request;
+    }
+
+    public HttpServletResponse getResponse() {
+        return response;
+    }
+
+    public void setResponse(HttpServletResponse response) {
+        this.response = response;
+    }
+
+    /**
+     * 描述:获取订单状态占比数据
+     * @return
+     */
+    public String getBookStatusData(){
+        JSONObject resultJson = new JSONObject();
+        IDCBookStatusEto idcBookStatusEto = idcService.getBookStatusData();
+        if (idcBookStatusEto == null) {
+            resultJson.put("message", "数据为空");
+            resultJson.put("code", 500);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+            return null;
+        }
+        resultJson.put("message", "查询成功");
+        resultJson.put("code", 500);
+        resultJson.put("data", idcBookStatusEto);
+        ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+        return null;
+    }
+
+    /**
+     * 描述:获取各县民宿数量
+     * @return
+     */
+    public String getHotelData() {
+        JSONObject resultJson = new JSONObject();
+        IDCHotelEto idcHotelEto = idcService.getHotelData();
+        if (idcHotelEto == null) {
+            resultJson.put("message", "数据为空");
+            resultJson.put("code", 500);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+            return null;
+        }
+        resultJson.put("message", "查询成功");
+        resultJson.put("code", 500);
+        resultJson.put("data", idcHotelEto);
+        ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+        return null;
+    }
+
+    /**
+     * 描述:获取订单量排行
+     * @return
+     */
+    public String getRankBookNumData() {
+        JSONObject resultJson = new JSONObject();
+        IDCRankEto idcRankEto = idcService.getRankBookNumData();
+        if (idcRankEto == null) {
+            resultJson.put("message", "数据为空");
+            resultJson.put("code", 500);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+            return null;
+        }
+        resultJson.put("message", "查询成功");
+        resultJson.put("code", 500);
+        resultJson.put("data", idcRankEto);
+        ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+        return null;
+    }
+
+    /**
+     * 描述:获取销售额排行
+     * @return
+     */
+    public String getRankSalesAmountData(){
+        JSONObject resultJson = new JSONObject();
+        IDCRankEto idcRankEto = idcService.getRankSalesAmountData();
+        if (idcRankEto == null) {
+            resultJson.put("message", "数据为空");
+            resultJson.put("code", 500);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+            return null;
+        }
+        resultJson.put("message", "查询成功");
+        resultJson.put("code", 500);
+        resultJson.put("data", idcRankEto);
+        ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+        return null;
+    }
+
+}

+ 101 - 10
mhotel/src/com/happy/action/bookAction.java

@@ -2,6 +2,7 @@ package com.happy.action;
 
 
 import com.baidubce.model.User;
 import com.baidubce.model.User;
 import com.happy.Model.Booking;
 import com.happy.Model.Booking;
+import com.happy.Model.HotelDict;
 import com.happy.Model.weixin.Users;
 import com.happy.Model.weixin.Users;
 import com.happy.Until.*;
 import com.happy.Until.*;
 import com.happy.Until.Excel.toExcel;
 import com.happy.Until.Excel.toExcel;
@@ -9,6 +10,7 @@ import com.happy.common.http.Message;
 import com.happy.dto.BookTypeEto;
 import com.happy.dto.BookTypeEto;
 import com.happy.dto.IPage;
 import com.happy.dto.IPage;
 import com.happy.service.BookService;
 import com.happy.service.BookService;
+import com.happy.service.HotelDictService;
 import com.happy.service.UserService;
 import com.happy.service.UserService;
 import com.opensymphony.xwork2.ActionSupport;
 import com.opensymphony.xwork2.ActionSupport;
 import net.sf.json.JSONObject;
 import net.sf.json.JSONObject;
@@ -20,7 +22,9 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 import java.util.Vector;
 import java.util.Vector;
+import java.util.stream.Collectors;
 
 
 public class bookAction extends ActionSupport implements ServletRequestAware {
 public class bookAction extends ActionSupport implements ServletRequestAware {
 
 
@@ -31,6 +35,8 @@ public class bookAction extends ActionSupport implements ServletRequestAware {
     public BookService bookService;
     public BookService bookService;
     @Resource
     @Resource
     public UserService userService;
     public UserService userService;
+    @Resource
+    public HotelDictService hotelDictService;
 
 
     public int page; // 当前页
     public int page; // 当前页
     public int rows;// 每页显示的行数rows
     public int rows;// 每页显示的行数rows
@@ -79,14 +85,20 @@ public class bookAction extends ActionSupport implements ServletRequestAware {
         }
         }
         //根据id获取当前订单信息
         //根据id获取当前订单信息
         Booking book = bookService.getById(id);
         Booking book = bookService.getById(id);
-        //获取用户openId
-        Users user = userService.queryByUserId(book.getCreateUserid());
-        if(user.getOpenid()==null){
-            resultJson.put("message", "用户openId为空,请用户授权才能操作。");
-            resultJson.put("code", 502);
+        if(book==null){
+            resultJson.put("message", "未查询到订单");
+            resultJson.put("code", 500);
             ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
             ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
             return null;
             return null;
         }
         }
+        //获取用户openId
+//        Users user = userService.queryByUserId(book.getCreateUserid());
+//        if(user.getOpenid()==null){
+//            resultJson.put("message", "用户openId为空,请该订单用户授权才能操作。");
+//            resultJson.put("code", 502);
+//            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+//            return null;
+//        }
         String msg = "";
         String msg = "";
         String sendMsg = "";
         String sendMsg = "";
         try{
         try{
@@ -145,10 +157,10 @@ public class bookAction extends ActionSupport implements ServletRequestAware {
             }
             }
             int m = bookService.updateBooking(book);
             int m = bookService.updateBooking(book);
             if (m > 0) {
             if (m > 0) {
-                //推送信息
-                if(!"".equals(sendMsg)){
-                    Message.send(user.getOpenid(),book.getOrderNum(),book.getUserName(),sendMsg,book.getCreateTime());
-                }
+//                //推送信息
+//                if(!"".equals(sendMsg)){
+//                    Message.send(user.getOpenid(),book.getOrderNum(),book.getUserName(),sendMsg,book.getCreateTime());
+//                }
                 resultJson.put("message", msg+"成功");
                 resultJson.put("message", msg+"成功");
                 resultJson.put("code", 200);
                 resultJson.put("code", 200);
                 ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
                 ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
@@ -287,7 +299,9 @@ public class bookAction extends ActionSupport implements ServletRequestAware {
         JSONObject resultJson = new JSONObject();
         JSONObject resultJson = new JSONObject();
         StringBuilder s1 = new StringBuilder("");
         StringBuilder s1 = new StringBuilder("");
         s1.append(" and order_status = 5");
         s1.append(" and order_status = 5");
-        s1.append(" and hotel_manager_id = '").append(managerId).append("'");
+        if(managerId!=null){
+            s1.append(" and hotel_manager_id = '").append(managerId).append("'");
+        }
         if (ledgerParam!=null){
         if (ledgerParam!=null){
             s1.append(" and (order_num like '%").append(ledgerParam).append("%'")
             s1.append(" and (order_num like '%").append(ledgerParam).append("%'")
                 .append(" or user_name like '%").append(ledgerParam).append("%'")
                 .append(" or user_name like '%").append(ledgerParam).append("%'")
@@ -418,4 +432,81 @@ public class bookAction extends ActionSupport implements ServletRequestAware {
         }
         }
         return null;
         return null;
     }
     }
+
+
+    /**
+     * 描述:导出台账 管理端
+     * @return
+     */
+    public String toLedgerAdmimnExcel() {
+        JSONObject resultJson = new JSONObject();
+        StringBuilder s1 = new StringBuilder("");
+        s1.append(" and order_status = 5");
+        if (ledgerParam!=null){
+            s1.append(" and (order_num like '%").append(ledgerParam).append("%'")
+                    .append(" or user_name like '%").append(ledgerParam).append("%'")
+                    .append(" or user_phone like '%").append(ledgerParam).append("%')");
+        }
+        if(payStartTime!=null && payEndTime!=null){
+            s1.append(" and pay_time >= '").append(payStartTime).append("'")
+                    .append(" and pay_time <= '").append(payEndTime).append("'");
+        }
+        if(hotelTownship!=null){
+            s1.append(" and hotel_township = '").append(payStartTime).append("'");
+        }
+        if(minTotalPrice!=null){
+            s1.append(" and house_total_price >= '").append(minTotalPrice).append("'");
+        }
+        if(maxTotalPrice!=null){
+            s1.append(" and house_total_price <= '").append(maxTotalPrice).append("'");
+        }
+
+        List<Booking> list = bookService.queryList(s1.toString()); // 查询列表
+        List<HotelDict> hotelDicts = hotelDictService.queryList("and code = 10");
+        Map<Integer, String> dictMap = null;
+        if(hotelDicts!=null && hotelDicts.size()>0){
+            dictMap = hotelDicts.stream().collect(Collectors.toMap(HotelDict::getId, HotelDict::getName, (key1, key2) -> key1 ));
+        }else{
+            resultJson.put("message", "未查到民宿乡镇信息");
+            resultJson.put("code", 500);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+            return null;
+        }
+        List<Vector> vectorsList = new ArrayList<>();
+        for(Booking book:list){
+            Vector columnValue = new Vector();
+            columnValue.add(dictMap.get(Integer.valueOf(book.getHotelTownship())));//所属乡镇
+            columnValue.add(book.getHotelName());//乡宿名称
+            columnValue.add(book.getOrderNum());//订单号
+            columnValue.add(book.getPayAccount());//订单金额
+            columnValue.add(book.getPayTime());//退房时间
+            vectorsList.add(columnValue);
+        }
+        // 项目路径地址
+        String path = request.getSession().getServletContext()
+                .getRealPath("/download/");// File.separator
+
+        try{
+            Vector columnName = new Vector();
+            columnName.add("所属乡镇");
+            columnName.add("民宿名称");
+            columnName.add("订单号");
+            columnName.add("订单金额(元)");
+            columnName.add("退房时间");
+
+            String filePathName ="台账信息" + UUIDUtil.generateID() +"Report.xls";
+            // 导出文件
+            new toExcel().book(vectorsList, path + filePathName,
+                    "sheet1", columnName);
+            String url = "http://"+request.getServerName()+":"+request.getServerPort() + request.getSession().getServletContext().getContextPath();
+            resultJson.put("downurl", url + "/download/" + filePathName);
+            resultJson.put("code", 200);
+            resultJson.put("message", "导出成功");
+            ResponseUtil.writeJson(ServletActionContext.getResponse(),
+                    resultJson.toString());
+        } catch (Exception e){
+            e.printStackTrace();
+        }
+        return null;
+    }
 }
 }

+ 31 - 0
mhotel/src/com/happy/action/houseAction.java

@@ -5,6 +5,7 @@ import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 import com.google.gson.reflect.TypeToken;
 import com.happy.Model.*;
 import com.happy.Model.*;
 import com.happy.Until.*;
 import com.happy.Until.*;
+import com.happy.dto.HouseSumEto;
 import com.happy.dto.IPage;
 import com.happy.dto.IPage;
 import com.happy.service.BookService;
 import com.happy.service.BookService;
 import com.happy.service.FileService;
 import com.happy.service.FileService;
@@ -36,6 +37,8 @@ public class houseAction extends ActionSupport implements ServletRequestAware {
     public String hName;//房型名称
     public String hName;//房型名称
     public int page; // 当前页
     public int page; // 当前页
     public int rows;// 每页显示的行数rows
     public int rows;// 每页显示的行数rows
+    public String orderTime;//住房时间
+    public String houseName;//房型名称
 
 
     public String fileListJson;
     public String fileListJson;
 
 
@@ -288,4 +291,32 @@ public class houseAction extends ActionSupport implements ServletRequestAware {
         return null;
         return null;
     }
     }
 
 
+    /**
+     * 描述:房源分页查询
+     * @return
+     */
+    public String queryPageHouseSum(){
+        JSONObject resultJson = new JSONObject();
+        StringBuilder s1 = new StringBuilder("");
+        if (orderTime!=null){
+            s1.append("  and DATE_FORMAT(order_start_time,'%Y-%m-%d') <= '").append(orderTime).append("'")
+                .append("  and DATE_FORMAT(order_end_time,'%Y-%m-%d') >= '").append(orderTime).append("'");
+        }
+        if (houseName!=null){
+            s1.append("  and house_name like '%").append(houseName).append("%'");
+        }
+        IPage<HouseSumEto> houseIPage = houseService.queryPageHouseSum(s1.toString(),page,rows);
+        if(houseIPage!=null && !"".equals(houseIPage)){
+            resultJson.put("message", "查询分页成功");
+            resultJson.put("code", 200);
+            resultJson.put("data", houseIPage);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+        }else{
+            resultJson.put("message", "查询分页失败");
+            resultJson.put("code", 500);
+            ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
+        }
+        return null;
+    }
+
 }
 }

+ 4 - 2
mhotel/src/com/happy/action/uploadAction.java

@@ -107,7 +107,9 @@ public class uploadAction extends ActionSupport implements ServletRequestAware {
                         resultJson.toString());
                         resultJson.toString());
                 return null;
                 return null;
             }
             }
-            File destFile = new File(filepath, myFileFileName);
+            Long uuid = UUIDUtil.generateID();
+
+            File destFile = new File(filepath, uuid+myFileFileName);
             // 获取图片大小
             // 获取图片大小
             long size = myFile.length();
             long size = myFile.length();
             // 获取图片尺寸
             // 获取图片尺寸
@@ -119,7 +121,7 @@ public class uploadAction extends ActionSupport implements ServletRequestAware {
             FileUtils.copyFile(myFile, destFile);
             FileUtils.copyFile(myFile, destFile);
             // 返回图片url路径
             // 返回图片url路径
             String url = "http://"+request.getServerName()+":"+request.getServerPort() + request.getSession().getServletContext().getContextPath();
             String url = "http://"+request.getServerName()+":"+request.getServerPort() + request.getSession().getServletContext().getContextPath();
-            String fileurl = url + "/download/" + myFileFileName;
+            String fileurl = url + "/download/" + uuid + myFileFileName;
             FileInfo fileInfo = new FileInfo();
             FileInfo fileInfo = new FileInfo();
             fileInfo.setName(myFileFileName);
             fileInfo.setName(myFileFileName);
             fileInfo.setUrl(fileurl);
             fileInfo.setUrl(fileurl);

+ 17 - 0
mhotel/src/com/happy/dao/HouseDao.java

@@ -2,6 +2,7 @@ package com.happy.dao;
 
 
 import com.happy.Model.House;
 import com.happy.Model.House;
 import com.happy.Model.House;
 import com.happy.Model.House;
+import com.happy.dto.HouseSumEto;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -59,4 +60,20 @@ public interface HouseDao {
      */
      */
     List<House> queryList(String sqlx);
     List<House> queryList(String sqlx);
 
 
+    /**
+     * 描述:分页查询房源
+     * @param sqlx
+     * @param page
+     * @param rows
+     * @return
+     */
+    List<HouseSumEto> queryPageHouseSum(String sqlx, int page, int rows);
+
+    /**
+     * 描述:获取房源总数
+     * @param sqlx
+     * @return
+     */
+    int queryPageHouseSumTotal(String sqlx);
+
 }
 }

+ 34 - 0
mhotel/src/com/happy/dao/IDCDao.java

@@ -0,0 +1,34 @@
+package com.happy.dao;
+
+import com.happy.dto.IDCBookStatusEto;
+import com.happy.dto.IDCHotelEto;
+import com.happy.dto.IDCRankEto;
+
+public interface IDCDao {
+
+
+    /**
+     * 描述:获取订单状态占比数据
+     * @return
+     */
+    IDCBookStatusEto getBookStatusData();
+
+    /**
+     * 描述:获取各县民宿数量
+     * @return
+     */
+    IDCHotelEto getHotelData();
+
+    /**
+     * 描述:获取订单量排行
+     * @return
+     */
+    IDCRankEto getRankBookNumData();
+
+    /**
+     * 描述:获取销售额排行
+     * @return
+     */
+    IDCRankEto getRankSalesAmountData();
+
+}

+ 0 - 1
mhotel/src/com/happy/dao/UserDao.java

@@ -1,6 +1,5 @@
 package com.happy.dao;
 package com.happy.dao;
 
 
-import com.happy.Model.Booking;
 import com.happy.Model.weixin.Users;
 import com.happy.Model.weixin.Users;
 
 
 import java.util.List;
 import java.util.List;

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

@@ -201,7 +201,7 @@ public class BookImplDao implements BookDao {
 
 
     @Override
     @Override
     public List<Booking> queryList(String sqlx) {
     public List<Booking> queryList(String sqlx) {
-        String sql = "SELECT *,case when order_status=1 then '待支付' when order_status=2 then '已支付' when order_status=3 then '待入住' when order_status=4 then '已入住' when order_status=5 then '已消费' when order_status=6 then '支付超时' when order_status=7 then '已取消' when order_status=8 then '已退单' when order_status=9 then '已退款' else '无状态' end order_name FROM `booking` WHERE is_delete=1 "+sqlx;
+            String sql = "SELECT *,case when order_status=1 then '待支付' when order_status=2 then '已支付' when order_status=3 then '待入住' when order_status=4 then '已入住' when order_status=5 then '已消费' when order_status=6 then '支付超时' when order_status=7 then '已取消' when order_status=8 then '已退单' when order_status=9 then '已退款' else '无状态' end order_name FROM `booking` WHERE is_delete=1 "+sqlx;
         List<Booking> list = null;
         List<Booking> list = null;
         try{
         try{
             list = namedParameterJdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Booking.class));
             list = namedParameterJdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Booking.class));

File diff suppressed because it is too large
+ 25 - 3
mhotel/src/com/happy/dao/impl/HouseImplDao.java


File diff suppressed because it is too large
+ 81 - 0
mhotel/src/com/happy/dao/impl/IDCImplDap.java


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

@@ -14,7 +14,7 @@ import org.springframework.stereotype.Repository;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
-@Repository("UserDao")
+@Repository("UsersDao")
 public class UserDaoImpl implements UserDao {
 public class UserDaoImpl implements UserDao {
 
 
     @Autowired
     @Autowired

+ 75 - 0
mhotel/src/com/happy/dto/HouseSumEto.java

@@ -0,0 +1,75 @@
+package com.happy.dto;
+
+public class HouseSumEto {
+
+    //商户Id
+    private Integer managerId;
+    //房型Id
+    private Integer houseId;
+    //房型名称
+    private String houseName;
+    //锁定房数
+    private Integer houseLockNum;
+    //预定房数
+    private Integer houseDueNum;
+    //剩余房数
+    private Integer houseResidueNum;
+    //总房数
+    private Integer houseNum;
+
+    public Integer getManagerId() {
+        return managerId;
+    }
+
+    public void setManagerId(Integer managerId) {
+        this.managerId = managerId;
+    }
+
+    public Integer getHouseId() {
+        return houseId;
+    }
+
+    public void setHouseId(Integer houseId) {
+        this.houseId = houseId;
+    }
+
+    public String getHouseName() {
+        return houseName;
+    }
+
+    public void setHouseName(String houseName) {
+        this.houseName = houseName;
+    }
+
+    public Integer getHouseLockNum() {
+        return houseLockNum;
+    }
+
+    public void setHouseLockNum(Integer houseLockNum) {
+        this.houseLockNum = houseLockNum;
+    }
+
+    public Integer getHouseDueNum() {
+        return houseDueNum;
+    }
+
+    public void setHouseDueNum(Integer houseDueNum) {
+        this.houseDueNum = houseDueNum;
+    }
+
+    public Integer getHouseResidueNum() {
+        return houseResidueNum;
+    }
+
+    public void setHouseResidueNum(Integer houseResidueNum) {
+        this.houseResidueNum = houseResidueNum;
+    }
+
+    public Integer getHouseNum() {
+        return houseNum;
+    }
+
+    public void setHouseNum(Integer houseNum) {
+        this.houseNum = houseNum;
+    }
+}

+ 49 - 0
mhotel/src/com/happy/dto/IDCBookStatusEto.java

@@ -0,0 +1,49 @@
+package com.happy.dto;
+
+public class IDCBookStatusEto {
+
+    //订单状态
+    private Integer orderStatus;
+
+    //订单状态名称
+    private String orderStatusMame;
+
+    //数量
+    private String statusNum;
+
+    //比例
+    private Double proportion;
+
+
+    public Integer getOrderStatus() {
+        return orderStatus;
+    }
+
+    public void setOrderStatus(Integer orderStatus) {
+        this.orderStatus = orderStatus;
+    }
+
+    public String getOrderStatusMame() {
+        return orderStatusMame;
+    }
+
+    public void setOrderStatusMame(String orderStatusMame) {
+        this.orderStatusMame = orderStatusMame;
+    }
+
+    public String getStatusNum() {
+        return statusNum;
+    }
+
+    public void setStatusNum(String statusNum) {
+        this.statusNum = statusNum;
+    }
+
+    public Double getProportion() {
+        return proportion;
+    }
+
+    public void setProportion(Double proportion) {
+        this.proportion = proportion;
+    }
+}

+ 26 - 0
mhotel/src/com/happy/dto/IDCHotelEto.java

@@ -0,0 +1,26 @@
+package com.happy.dto;
+
+public class IDCHotelEto {
+
+    //乡镇
+    private String hposition;
+
+    //民宿数量
+    private Integer hotelNum;
+
+    public String getHposition() {
+        return hposition;
+    }
+
+    public void setHposition(String hposition) {
+        this.hposition = hposition;
+    }
+
+    public Integer getHotelNum() {
+        return hotelNum;
+    }
+
+    public void setHotelNum(Integer hotelNum) {
+        this.hotelNum = hotelNum;
+    }
+}

+ 48 - 0
mhotel/src/com/happy/dto/IDCRankEto.java

@@ -0,0 +1,48 @@
+package com.happy.dto;
+
+public class IDCRankEto {
+
+    //排名
+    private Integer rank;
+
+    //民宿名称
+    private String hotelName;
+
+    //订单量
+    private Integer bookNum;
+
+    //销售额
+    private Double salesAmount;
+
+    public Integer getRank() {
+        return rank;
+    }
+
+    public void setRank(Integer rank) {
+        this.rank = rank;
+    }
+
+    public String getHotelName() {
+        return hotelName;
+    }
+
+    public void setHotelName(String hotelName) {
+        this.hotelName = hotelName;
+    }
+
+    public Integer getBookNum() {
+        return bookNum;
+    }
+
+    public void setBookNum(Integer bookNum) {
+        this.bookNum = bookNum;
+    }
+
+    public Double getSalesAmount() {
+        return salesAmount;
+    }
+
+    public void setSalesAmount(Double salesAmount) {
+        this.salesAmount = salesAmount;
+    }
+}

+ 4 - 0
mhotel/src/com/happy/dto/IDCSum.java

@@ -0,0 +1,4 @@
+package com.happy.dto;
+
+public class IDCSum {
+}

+ 10 - 0
mhotel/src/com/happy/service/HouseService.java

@@ -2,6 +2,7 @@ package com.happy.service;
 
 
 import com.happy.Model.House;
 import com.happy.Model.House;
 import com.happy.Model.House;
 import com.happy.Model.House;
+import com.happy.dto.HouseSumEto;
 import com.happy.dto.IPage;
 import com.happy.dto.IPage;
 
 
 import java.util.List;
 import java.util.List;
@@ -58,4 +59,13 @@ public interface HouseService {
      * @return
      * @return
      */
      */
     House getOen(String sqlx);
     House getOen(String sqlx);
+
+    /**
+     * 描述:分页查询房源
+     * @param sqlx
+     * @param page
+     * @param rows
+     * @return
+     */
+    IPage<HouseSumEto> queryPageHouseSum(String sqlx, int page, int rows);
 }
 }

+ 33 - 0
mhotel/src/com/happy/service/IDCService.java

@@ -0,0 +1,33 @@
+package com.happy.service;
+
+import com.happy.dto.IDCBookStatusEto;
+import com.happy.dto.IDCHotelEto;
+import com.happy.dto.IDCRankEto;
+
+public interface IDCService {
+
+    /**
+     * 描述:获取订单状态占比数据
+     * @return
+     */
+    IDCBookStatusEto getBookStatusData();
+
+    /**
+     * 描述:获取各县民宿数量
+     * @return
+     */
+    IDCHotelEto getHotelData();
+
+    /**
+     * 描述:获取订单量排行
+     * @return
+     */
+    IDCRankEto getRankBookNumData();
+
+    /**
+     * 描述:获取销售额排行
+     * @return
+     */
+    IDCRankEto getRankSalesAmountData();
+
+}

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

@@ -1,192 +1,192 @@
-package com.happy.service.impl;
-
-import com.baidubce.model.User;
-import com.happy.Model.AdminManager;
-import com.happy.Model.Booking;
-import com.happy.Model.Hotel;
-import com.happy.Model.House;
-import com.happy.Model.weixin.Users;
-import com.happy.Until.DateUtil;
-import com.happy.Until.Enum.OrderEnum;
-import com.happy.Until.Enum.PayEnum;
-import com.happy.Until.Func;
-import com.happy.Until.TimeExchange;
-import com.happy.common.wx.WxUtil;
-import com.happy.constant.ResultStatusCode;
-import com.happy.dao.BookDao;
-import com.happy.dto.IPage;
-import com.happy.service.*;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-
-@Service("AppBookService")
-public class AppBookImplService implements AppBookService {
-
-    @Resource
-    public BookService bookService;
-    @Resource
-    public HotelService hotelService;
-    @Resource
-    public HouseService houseService;
-    @Resource
-    public UserService userService;
-    @Resource
-    public AdminManagerService adminManagerService;
-
-    @Override
-    public String createOrder(String houseId, String startTime, String endTime, String houseOrderNumber, String userName, String userPhone, String userId) {
-        if (Func.checkNull(houseId) ||Func.checkNull(startTime) ||Func.checkNull(endTime)
-                ||Func.checkNull(houseOrderNumber) ||Func.checkNull(userName) ||Func.checkNull(userPhone) ||Func.checkNull(userId))
-            return null;
-
-        House house = houseService.getById(Func.parseInt(houseId));
-        StringBuilder s1 = new StringBuilder("");
-        s1.append(" and manager_id = '").append(house.getManagerId()).append("'");
-        Hotel hotel = hotelService.getOen(s1.toString());
-        Users user = userService.queryByUserId(userId);
-        AdminManager adminManager = adminManagerService.getById(Func.parseInt(house.getManagerId()));
-        if (house == null || hotel == null || user == null  || adminManager == null)
-            return "无法获取数据";
-
-        Booking booking = new Booking();
-
-        // 设置民宿信息
-        booking.setHotelName(hotel.getHname());
-        booking.setHotelHposition(hotel.getHposition());
-        booking.setHotelHpositionWens(hotel.getHpositionWens());
-        booking.setHotelManagerId(hotel.getManagerId());
-        booking.setHotelTownship(adminManager.getHotelTownship());
-        booking.setHotelConfig(hotel.getHconfig());
-        booking.setHotelType(hotel.getHtype());
-        booking.setHotelIsCanorder(Func.parseStr(hotel.getIsCanorder()));
-        booking.setHotelManagerId(house.getManagerId());
-
-        // 设置房型信息
-        booking.setHouseId(Func.parseStr(house.getId()));
-        booking.setHouseName(house.gethName());
-        booking.setHouseConfig(house.gethConfig());
-        booking.setHouseUnitPrice(house.getPrice());
-        booking.setHouseOrderNumber(Func.parseInt(houseOrderNumber));
-        booking.setHouseAreas(house.gethAreas());
-        booking.setHouseRemake(house.getRemark());
-        double totalPrice = Func.parseInt(houseOrderNumber) * house.getPrice();
-        booking.setHouseTotalPrice(totalPrice);
-
-        // 设置住客信息
-        booking.setUserName(userName);
-        booking.setUserPhone(userPhone);
-        booking.setOrderStartTime(startTime);
-        booking.setOrderEndTime(endTime);
-        int day = DateUtil.getDayDiff(startTime,endTime);
-        String orderLiveTime= day+ OrderEnum.间.toString()+ day +OrderEnum.晚.toString();
-        booking.setOrderLiveTime(orderLiveTime);
-
-        // 订单信息
-        booking.setOrderNum(Func.parseStr(WxUtil.mchOrderNo()));// 订单号
-        booking.setOrderStatus(Func.parseStr(PayEnum.ONE.getNum())); // 1待支付状态
-        booking.setCreateTime(DateUtil.getFormatPaternDate(DateUtil.getCurrentDate()));
-        int i = bookService.insertBooking(booking);
-        if ( i == 0)
-            return ResultStatusCode.CANNTBOOKING.CANNTBOOKING.getMsg();
-
-        return null;
-    }
-
-    @Override
-    public String reCreateOrder(String houseId, String startTime, String endTime, String houseOrderNumber, String userName, String userPhone, String userId) {
-        if (Func.checkNull(houseId) ||Func.checkNull(startTime) ||Func.checkNull(endTime)
-                ||Func.checkNull(houseOrderNumber) ||Func.checkNull(userName) ||Func.checkNull(userPhone) ||Func.checkNull(userId))
-            return null;
-
-        House house = houseService.getById(Func.parseInt(houseId));
-        StringBuilder s1 = new StringBuilder("");
-        s1.append(" and manager_id = '").append(house.getManagerId()).append("'");
-        Hotel hotel = hotelService.getOen(s1.toString());
-        Users user = userService.queryByUserId(userId);
-        AdminManager adminManager = adminManagerService.getById(Func.parseInt(house.getManagerId()));
-        if (house == null || hotel == null || user == null  || adminManager == null)
-            return "无法获取数据";
-
-        Booking booking = new Booking();
-
-        // 设置民宿信息
-        booking.setHotelName(hotel.getHname());
-        booking.setHotelHposition(hotel.getHposition());
-        booking.setHotelHpositionWens(hotel.getHpositionWens());
-        booking.setHotelManagerId(hotel.getManagerId());
-        booking.setHotelTownship(adminManager.getHotelTownship());
-        booking.setHotelConfig(hotel.getHconfig());
-        booking.setHotelType(hotel.getHtype());
-        booking.setHotelIsCanorder(Func.parseStr(hotel.getIsCanorder()));
-        booking.setHotelManagerId(house.getManagerId());
-
-        // 设置房型信息
-        booking.setHouseId(Func.parseStr(house.getId()));
-        booking.setHouseName(house.gethName());
-        booking.setHouseConfig(house.gethConfig());
-        booking.setHouseUnitPrice(house.getPrice());
-        booking.setHouseOrderNumber(Func.parseInt(houseOrderNumber));
-        booking.setHouseAreas(house.gethAreas());
-        booking.setHouseRemake(house.getRemark());
-        double totalPrice = Func.parseInt(houseOrderNumber) * house.getPrice();
-        booking.setHouseTotalPrice(totalPrice);
-
-        // 设置住客信息
-        booking.setUserName(userName);
-        booking.setUserPhone(userPhone);
-        booking.setOrderStartTime(startTime);
-        booking.setOrderEndTime(endTime);
-        int day = DateUtil.getDayDiff(startTime,endTime);
-        String orderLiveTime= day+ OrderEnum.间.toString()+ day +OrderEnum.晚.toString();
-        booking.setOrderLiveTime(orderLiveTime);
-
-        // 订单信息
-        booking.setOrderNum(Func.parseStr(WxUtil.mchOrderNo()));// 订单号
-        booking.setOrderStatus(Func.parseStr(PayEnum.ONE.getNum())); // 待支付状态
-        booking.setCreateTime(DateUtil.getFormatPaternDate(DateUtil.getCurrentDate()));
-        bookService.insertBooking(booking);
-
-
-        return null;
-    }
-
-    @Override
-    public String varificationHouse(String houseId, String startTime, String endTime) {
-
-        House house = houseService.getById(Func.parseInt(houseId));
-        if (house == null)
-            return "无此房间,请重新查询";
-
-        // 判断是否有房间,对每个房型进行标识
-        StringBuffer strSqlBook = new StringBuffer();
-        strSqlBook.append(" and house_id = '").append(house.getId()).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("' ");
-
-        //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());
-
-        int totalNum = 0;
-        for (Booking booking: bookList) {
-            if (Func.checkNull(booking.getHouseId()))
-                continue;
-
-            totalNum += booking.getHouseOrderNumber();
-        }
-
-        if (totalNum >= house.getNumber())
-            return OrderEnum.房间已满.toString();
-        return null;
-    }
-}
+//package com.happy.service.impl;
+//
+//import com.baidubce.model.User;
+//import com.happy.Model.AdminManager;
+//import com.happy.Model.Booking;
+//import com.happy.Model.Hotel;
+//import com.happy.Model.House;
+//import com.happy.Model.weixin.Users;
+//import com.happy.Until.DateUtil;
+//import com.happy.Until.Enum.OrderEnum;
+//import com.happy.Until.Enum.PayEnum;
+//import com.happy.Until.Func;
+//import com.happy.Until.TimeExchange;
+//import com.happy.common.wx.WxUtil;
+//import com.happy.constant.ResultStatusCode;
+//import com.happy.dao.BookDao;
+//import com.happy.dto.IPage;
+//import com.happy.service.*;
+//import org.springframework.stereotype.Service;
+//
+//import javax.annotation.Resource;
+//import java.util.HashMap;
+//import java.util.List;
+//import java.util.Map;
+//
+//
+//@Service("AppBookService")
+//public class AppBookImplService implements AppBookService {
+//
+//    @Resource
+//    public BookService bookService;
+//    @Resource
+//    public HotelService hotelService;
+//    @Resource
+//    public HouseService houseService;
+//    @Resource
+//    public UserService userService;
+//    @Resource
+//    public AdminManagerService adminManagerService;
+//
+//    @Override
+//    public String createOrder(String houseId, String startTime, String endTime, String houseOrderNumber, String userName, String userPhone, String userId) {
+//        if (Func.checkNull(houseId) ||Func.checkNull(startTime) ||Func.checkNull(endTime)
+//                ||Func.checkNull(houseOrderNumber) ||Func.checkNull(userName) ||Func.checkNull(userPhone) ||Func.checkNull(userId))
+//            return null;
+//
+//        House house = houseService.getById(Func.parseInt(houseId));
+//        StringBuilder s1 = new StringBuilder("");
+//        s1.append(" and manager_id = '").append(house.getManagerId()).append("'");
+//        Hotel hotel = hotelService.getOen(s1.toString());
+//        Users user = userService.queryByUserId(userId);
+//        AdminManager adminManager = adminManagerService.getById(Func.parseInt(house.getManagerId()));
+//        if (house == null || hotel == null || user == null  || adminManager == null)
+//            return "无法获取数据";
+//
+//        Booking booking = new Booking();
+//
+//        // 设置民宿信息
+//        booking.setHotelName(hotel.getHname());
+//        booking.setHotelHposition(hotel.getHposition());
+//        booking.setHotelHpositionWens(hotel.getHpositionWens());
+//        booking.setHotelManagerId(hotel.getManagerId());
+//        booking.setHotelTownship(adminManager.getHotelTownship());
+//        booking.setHotelConfig(hotel.getHconfig());
+//        booking.setHotelType(hotel.getHtype());
+//        booking.setHotelIsCanorder(Func.parseStr(hotel.getIsCanorder()));
+//        booking.setHotelManagerId(house.getManagerId());
+//
+//        // 设置房型信息
+//        booking.setHouseId(Func.parseStr(house.getId()));
+//        booking.setHouseName(house.gethName());
+//        booking.setHouseConfig(house.gethConfig());
+//        booking.setHouseUnitPrice(house.getPrice());
+//        booking.setHouseOrderNumber(Func.parseInt(houseOrderNumber));
+//        booking.setHouseAreas(house.gethAreas());
+//        booking.setHouseRemake(house.getRemark());
+//        double totalPrice = Func.parseInt(houseOrderNumber) * house.getPrice();
+//        booking.setHouseTotalPrice(totalPrice);
+//
+//        // 设置住客信息
+//        booking.setUserName(userName);
+//        booking.setUserPhone(userPhone);
+//        booking.setOrderStartTime(startTime);
+//        booking.setOrderEndTime(endTime);
+//        int day = DateUtil.getDayDiff(startTime,endTime);
+//        String orderLiveTime= day+ OrderEnum.间.toString()+ day +OrderEnum.晚.toString();
+//        booking.setOrderLiveTime(orderLiveTime);
+//
+//        // 订单信息
+//        booking.setOrderNum(Func.parseStr(WxUtil.mchOrderNo()));// 订单号
+//        booking.setOrderStatus(Func.parseStr(PayEnum.ONE.getNum())); // 1待支付状态
+//        booking.setCreateTime(DateUtil.getFormatPaternDate(DateUtil.getCurrentDate()));
+//        int i = bookService.insertBooking(booking);
+//        if ( i == 0)
+//            return ResultStatusCode.CANNTBOOKING.CANNTBOOKING.getMsg();
+//
+//        return null;
+//    }
+//
+//    @Override
+//    public String reCreateOrder(String houseId, String startTime, String endTime, String houseOrderNumber, String userName, String userPhone, String userId) {
+//        if (Func.checkNull(houseId) ||Func.checkNull(startTime) ||Func.checkNull(endTime)
+//                ||Func.checkNull(houseOrderNumber) ||Func.checkNull(userName) ||Func.checkNull(userPhone) ||Func.checkNull(userId))
+//            return null;
+//
+//        House house = houseService.getById(Func.parseInt(houseId));
+//        StringBuilder s1 = new StringBuilder("");
+//        s1.append(" and manager_id = '").append(house.getManagerId()).append("'");
+//        Hotel hotel = hotelService.getOen(s1.toString());
+//        Users user = userService.queryByUserId(userId);
+//        AdminManager adminManager = adminManagerService.getById(Func.parseInt(house.getManagerId()));
+//        if (house == null || hotel == null || user == null  || adminManager == null)
+//            return "无法获取数据";
+//
+//        Booking booking = new Booking();
+//
+//        // 设置民宿信息
+//        booking.setHotelName(hotel.getHname());
+//        booking.setHotelHposition(hotel.getHposition());
+//        booking.setHotelHpositionWens(hotel.getHpositionWens());
+//        booking.setHotelManagerId(hotel.getManagerId());
+//        booking.setHotelTownship(adminManager.getHotelTownship());
+//        booking.setHotelConfig(hotel.getHconfig());
+//        booking.setHotelType(hotel.getHtype());
+//        booking.setHotelIsCanorder(Func.parseStr(hotel.getIsCanorder()));
+//        booking.setHotelManagerId(house.getManagerId());
+//
+//        // 设置房型信息
+//        booking.setHouseId(Func.parseStr(house.getId()));
+//        booking.setHouseName(house.gethName());
+//        booking.setHouseConfig(house.gethConfig());
+//        booking.setHouseUnitPrice(house.getPrice());
+//        booking.setHouseOrderNumber(Func.parseInt(houseOrderNumber));
+//        booking.setHouseAreas(house.gethAreas());
+//        booking.setHouseRemake(house.getRemark());
+//        double totalPrice = Func.parseInt(houseOrderNumber) * house.getPrice();
+//        booking.setHouseTotalPrice(totalPrice);
+//
+//        // 设置住客信息
+//        booking.setUserName(userName);
+//        booking.setUserPhone(userPhone);
+//        booking.setOrderStartTime(startTime);
+//        booking.setOrderEndTime(endTime);
+//        int day = DateUtil.getDayDiff(startTime,endTime);
+//        String orderLiveTime= day+ OrderEnum.间.toString()+ day +OrderEnum.晚.toString();
+//        booking.setOrderLiveTime(orderLiveTime);
+//
+//        // 订单信息
+//        booking.setOrderNum(Func.parseStr(WxUtil.mchOrderNo()));// 订单号
+//        booking.setOrderStatus(Func.parseStr(PayEnum.ONE.getNum())); // 待支付状态
+//        booking.setCreateTime(DateUtil.getFormatPaternDate(DateUtil.getCurrentDate()));
+//        bookService.insertBooking(booking);
+//
+//
+//        return null;
+//    }
+//
+//    @Override
+//    public String varificationHouse(String houseId, String startTime, String endTime) {
+//
+//        House house = houseService.getById(Func.parseInt(houseId));
+//        if (house == null)
+//            return "无此房间,请重新查询";
+//
+//        // 判断是否有房间,对每个房型进行标识
+//        StringBuffer strSqlBook = new StringBuffer();
+//        strSqlBook.append(" and house_id = '").append(house.getId()).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("' ");
+//
+//        //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());
+//
+//        int totalNum = 0;
+//        for (Booking booking: bookList) {
+//            if (Func.checkNull(booking.getHouseId()))
+//                continue;
+//
+//            totalNum += booking.getHouseOrderNumber();
+//        }
+//
+//        if (totalNum >= house.getNumber())
+//            return OrderEnum.房间已满.toString();
+//        return null;
+//    }
+//}

+ 14 - 0
mhotel/src/com/happy/service/impl/HouseImplService.java

@@ -4,6 +4,7 @@ import com.happy.Model.Hotel;
 import com.happy.Model.House;
 import com.happy.Model.House;
 import com.happy.Model.House;
 import com.happy.Model.House;
 import com.happy.dao.HouseDao;
 import com.happy.dao.HouseDao;
+import com.happy.dto.HouseSumEto;
 import com.happy.dto.IPage;
 import com.happy.dto.IPage;
 import com.happy.service.HouseService;
 import com.happy.service.HouseService;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -62,4 +63,17 @@ public class HouseImplService implements HouseService {
         if(list!=null && list.size()>0) return list.get(0);
         if(list!=null && list.size()>0) return list.get(0);
         return null;
         return null;
     }
     }
+
+    @Override
+    public IPage<HouseSumEto> queryPageHouseSum(String sqlx, int page, int rows){
+        IPage<HouseSumEto> iPage = new IPage();
+        List<HouseSumEto> houseList = houseDao.queryPageHouseSum(sqlx,page,rows);
+        int total = houseDao.queryPageHouseSumTotal(sqlx);
+        iPage.setPageList(houseList);
+        iPage.setPage(page);
+        iPage.setTotalPage( (int)Math.ceil((double)total/rows));
+        iPage.setRows(rows);
+        iPage.setTotal(total);
+        return iPage;
+    }
 }
 }

+ 37 - 0
mhotel/src/com/happy/service/impl/IDCImplService.java

@@ -0,0 +1,37 @@
+package com.happy.service.impl;
+
+import com.happy.dao.IDCDao;
+import com.happy.dto.IDCBookStatusEto;
+import com.happy.dto.IDCHotelEto;
+import com.happy.dto.IDCRankEto;
+import com.happy.service.IDCService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service("IDCService")
+public class IDCImplService implements IDCService {
+
+    @Resource
+    private IDCDao idcDao;
+
+    @Override
+    public IDCBookStatusEto getBookStatusData() {
+        return idcDao.getBookStatusData();
+    }
+
+    @Override
+    public IDCHotelEto getHotelData() {
+        return idcDao.getHotelData();
+    }
+
+    @Override
+    public IDCRankEto getRankBookNumData() {
+        return idcDao.getRankBookNumData();
+    }
+
+    @Override
+    public IDCRankEto getRankSalesAmountData() {
+        return idcDao.getRankSalesAmountData();
+    }
+}

+ 0 - 3
mhotel/src/com/happy/service/impl/UserServiceImpl.java

@@ -1,11 +1,8 @@
 package com.happy.service.impl;
 package com.happy.service.impl;
 
 
-import com.happy.Model.Booking;
 import com.happy.Model.weixin.Users;
 import com.happy.Model.weixin.Users;
 import com.happy.dao.UserDao;
 import com.happy.dao.UserDao;
 import com.happy.service.UserService;
 import com.happy.service.UserService;
-import org.springframework.jdbc.core.BeanPropertyRowMapper;
-import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;