|
@@ -0,0 +1,79 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
+<mapper namespace="com.lc.dao.ReportDao">
|
|
|
+ <resultMap id="BaseResultMap" type="com.lc.pojo.ReportMemberPojo">
|
|
|
+ <result column="reportDate" property="reportDate" />
|
|
|
+ <result column="todayNewMember" property="todayNewMember" />
|
|
|
+ <result column="totalMember" property="totalMember" />
|
|
|
+ <result column="thisWeekNewMember" property="thisWeekNewMember" />
|
|
|
+ <result column="thisMonthNewMember" property="thisMonthNewMember" />
|
|
|
+ <result column="todayOrderNumber" property="todayOrderNumber" />
|
|
|
+ <result column="todayVisitsNumber" property="todayVisitsNumber" />
|
|
|
+ <result column="thisWeekOrderNumber" property="thisWeekOrderNumber" />
|
|
|
+ <result column="thisWeekVisitsNumber" property="thisWeekVisitsNumber" />
|
|
|
+ <result column="thisMonthOrderNumber" property="thisMonthOrderNumber" />
|
|
|
+ <result column="thisMonthVisitsNumber" property="thisMonthVisitsNumber" />
|
|
|
+ </resultMap>
|
|
|
+
|
|
|
+ <select id="getBusinessReportData" resultMap="BaseResultMap" >
|
|
|
+ SELECT
|
|
|
+ (
|
|
|
+ SELECT FROM_UNIXTIME( UNIX_TIMESTAMP() ,"%Y-%m-%d")
|
|
|
+ ) AS reportDate,
|
|
|
+ (
|
|
|
+ SELECT COUNT(*) FROM t_member WHERE regTime >= FROM_UNIXTIME( UNIX_TIMESTAMP() ,"%Y-%m-%d")
|
|
|
+ ) AS todayNewMember,
|
|
|
+ (
|
|
|
+ SELECT COUNT(*) FROM t_member
|
|
|
+ ) AS totalMember,
|
|
|
+ (
|
|
|
+ SELECT COUNT(*) FROM t_member WHERE regTime >= FROM_UNIXTIME( UNIX_TIMESTAMP( DATE_SUB(NOW(), INTERVAL FROM_UNIXTIME( UNIX_TIMESTAMP(),"%w") - 1 DAY )), "%Y-%m-%d" )
|
|
|
+ ) AS thisWeekNewMember,
|
|
|
+ (
|
|
|
+ SELECT COUNT(*) FROM t_member WHERE regTime >= FROM_UNIXTIME( UNIX_TIMESTAMP( DATE_SUB(NOW(), INTERVAL FROM_UNIXTIME( UNIX_TIMESTAMP(),"%d") - 1 DAY )), "%Y-%m-%d" )
|
|
|
+ ) AS thisMonthNewMember,
|
|
|
+ (
|
|
|
+ SELECT COUNT(*) FROM t_order WHERE orderDate >= FROM_UNIXTIME( UNIX_TIMESTAMP() ,"%Y-%m-%d")
|
|
|
+ ) AS todayOrderNumber,
|
|
|
+ (
|
|
|
+ SELECT COUNT(*) FROM t_order WHERE orderDate >= FROM_UNIXTIME( UNIX_TIMESTAMP() ,"%Y-%m-%d") AND orderStatus = '已出游'
|
|
|
+ ) AS todayVisitsNumber,
|
|
|
+ (
|
|
|
+ SELECT COUNT(*) FROM t_order WHERE orderDate >= FROM_UNIXTIME( UNIX_TIMESTAMP( DATE_SUB(NOW(), INTERVAL FROM_UNIXTIME( UNIX_TIMESTAMP(),"%w") DAY )), "%Y-%m-%d" )
|
|
|
+ ) AS thisWeekOrderNumber,
|
|
|
+ (
|
|
|
+ SELECT COUNT(*) FROM t_order WHERE orderDate >= FROM_UNIXTIME( UNIX_TIMESTAMP( DATE_SUB(NOW(), INTERVAL FROM_UNIXTIME( UNIX_TIMESTAMP(),"%w") DAY)), "%Y-%m-%d" ) AND orderStatus = '已出游'
|
|
|
+ ) AS thisWeekVisitsNumber,
|
|
|
+ (
|
|
|
+ SELECT COUNT(*) FROM t_order WHERE orderDate >= FROM_UNIXTIME( UNIX_TIMESTAMP( DATE_SUB(NOW(), INTERVAL FROM_UNIXTIME( UNIX_TIMESTAMP(),"%d") DAY)), "%Y-%m-%d" )
|
|
|
+ ) AS thisMonthOrderNumber,
|
|
|
+ (
|
|
|
+ SELECT COUNT(*) FROM t_order WHERE orderDate >= FROM_UNIXTIME( UNIX_TIMESTAMP( DATE_SUB(NOW(), INTERVAL FROM_UNIXTIME( UNIX_TIMESTAMP(),"%d") DAY)), "%Y-%m-%d" ) AND orderStatus = '已出游'
|
|
|
+ ) AS thisMonthVisitsNumber
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <resultMap id="hotSetmealMap" type="com.lc.pojo.HotSetmealPojo">
|
|
|
+ <result column="name" property="name" />
|
|
|
+ <result column="setmeal_count" property="setmealCount" />
|
|
|
+ <result column="proportion" property="proportion" />
|
|
|
+ <result column="attention" property="attention" />
|
|
|
+ </resultMap>
|
|
|
+
|
|
|
+ <select id="getHotSetmeal" resultMap="hotSetmealMap">
|
|
|
+ SELECT `name`,
|
|
|
+ (SELECT COUNT(*) FROM t_order AS o WHERE o.setmeal_id = s.id ) AS setmeal_count,
|
|
|
+ ((SELECT COUNT(*) FROM t_order AS o WHERE o.setmeal_id = s.id ) / ( SELECT COUNT(*) FROM t_order ) ) AS proportion,
|
|
|
+ s.attention AS attention
|
|
|
+ FROM t_setmeal AS s
|
|
|
+ ORDER BY setmeal_count DESC LIMIT 6
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getMemberReport" resultType="com.lc.pojo.ReportMembers" >
|
|
|
+ SELECT
|
|
|
+ COUNT(*) AS memberCount,
|
|
|
+ MAX( m ) AS months
|
|
|
+ FROM
|
|
|
+ ( SELECT id, FROM_UNIXTIME( UNIX_TIMESTAMP(regTime), "%M" ) AS m FROM t_member WHERE NOT ISNULL(regTime) ) AS t GROUP BY m
|
|
|
+ </select>
|
|
|
+
|
|
|
+</mapper>
|