<?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.xiong.mendianfu.dao.DingDanDao">
<resultMap id="dingdanbean" type="com.xiong.mendianfu.bean.Dingdan">
<id property="dingdanid" column="dingdanid"></id>
<result property="dingdanjine" column="dingdanjine"></result>
<result property="dingdanzhuangtai" column="dingdanzhuangtai"></result>
<result property="dingdanshijian" column="dingdanshijian"></result>
<association property="mendian" javaType="com.xiong.mendianfu.bean.Mendian" >
<id property="mendianid" column="mendianid"></id>
<result property="biaoshi" column="biaoshi"></result>
<result property="mingcheng" column="mingcheng"></result>
<result property="dizhi" column="dizhi"></result>
<result property="dianhua" column="dianhua"></result>
<result property="adminopenid" column="adminopenid"></result>
</association>
</resultMap>
<select id="queryDingdan" parameterType="java.util.Map" resultMap="dingdanbean">
SELECT dingdanid,dingdanjine, dingdanzhuangtai,dingdanshijian,
b.biaoshi,b.mingcheng,b.dizhi,b.dianhua,b.adminopenid
FROM dingdan a
INNER JOIN mendian b ON a.mendianid = b.mendianid
<if test="biaoshi!=null and biaoshi !=''">
WHERE b.biaoshi LIKE CONCAT(CONCAT('%', #{keyword}, '%'))
</if>
<if test="mingcheng!=null and mingcheng !=''">
WHERE b.mingcheng LIKE CONCAT(CONCAT('%', #{keyword}, '%'))
</if>
LIMIT #{currentRow},#{pageSize}
</select>
<select id="getPageCount" resultType="java.util.Map" parameterType="java.util.Map">
SELECT COUNT(*) AS totalRow,CEIL(COUNT(*)/#{pageSize}) AS totalPage
FROM (SELECT dingdanid,dingdanjine, dingdanzhuangtai,dingdanshijian,
b.biaoshi,b.mingcheng,b.dizhi,b.dianhua,b.adminopenid
FROM dingdan a
INNER JOIN mendian b ON a.mendianid = b.mendianid
<if test="biaoshi!=null and biaoshi !=''">
WHERE b.biaoshi LIKE CONCAT( CONCAT('%', #{keyword}, '%'))
</if>
<if test="mingcheng!=null and mingcheng !=''">
WHERE b.mingcheng LIKE CONCAT(CONCAT('%', #{keyword}, '%'))
</if>
)
AS amendian
</select>
<select id="queryDingdanByqiye" resultType="java.util.Map" parameterType="java.util.Map">
SELECT SUM(a.dingdanjine) AS dingdansum , c.qiyeid AS qiyeid,c.mingcheng AS qiyemingcheng
FROM dingdan a LEFT JOIN mendian d ON d.mendianid=a.mendianid
LEFT JOIN qiye c ON c.qiyeid=d.qiyeid
WHERE a.dingdanzhuangtai='ZHIFU'
<if test="_parameter.containsKey('mingcheng')">
AND c.mingcheng
IN
<foreach collection="list" item="item" open="(" close=")" index="index" separator=",">
#{item}
</foreach>
</if>
<if test="_parameter.containsKey('year')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 YEAR )
</if>
<if test="_parameter.containsKey('halfyear')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 6 MONTH )
</if>
<if test="_parameter.containsKey('month')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 MONTH )
</if>
<if test="_parameter.containsKey('week')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 WEEK)
</if>
<if test="_parameter.containsKey('day')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 DAY)
</if>
GROUP BY c.qiyeid
</select>
<select id="queryDingdanBymendian" parameterType="java.util.Map" resultType="java.util.Map">
SELECT SUM(a.dingdanjine) AS dingdansum ,d.mingcheng AS mendianmingcheng , c.qiyeid AS qiyeid,c.mingcheng AS qiyemingcheng
FROM dingdan a LEFT JOIN mendian d ON d.mendianid=a.mendianid
LEFT JOIN qiye c ON c.qiyeid=d.qiyeid
WHERE a.dingdanzhuangtai='ZHIFU'
AND c.qiyeid=#{qiyeid}
<if test="_parameter.containsKey('mingcheng')">
AND d.mingcheng
IN
<foreach collection="list" item="item" open="(" close=")" index="index" separator=",">
#{item}
</foreach>
</if>
<if test="_parameter.containsKey('year')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 YEAR )
</if>
<if test="_parameter.containsKey('halfyear')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 6 MONTH )
</if>
<if test="_parameter.containsKey('month')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 MONTH )
</if>
<if test="_parameter.containsKey('week')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 WEEK)
</if>
<if test="_parameter.containsKey('day')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 DAY)
</if>
GROUP BY d.mendianid
</select>
<select id="queryDingdanByID" resultMap="dingdanbean">
SELECT dingdanid,dingdanjine, dingdanzhuangtai,dingdanshijian,
b.biaoshi,b.mingcheng,b.dizhi,b.dianhua,b.adminopenid
FROM dingdan a
INNER JOIN mendian b ON a.mendianid = b.mendianid
WHERE a.dingdanid=#{dingdanid}
</select>
<select id="queryDingdanByqiyeAdminopenid" parameterType="java.util.Map" resultType="java.util.Map">
SELECT SUM(a.dingdanjine) AS dingdansum ,d.mingcheng AS mendianmingcheng , c.qiyeid AS qiyeid,c.mingcheng AS qiyemingcheng
FROM dingdan a LEFT JOIN mendian d ON d.mendianid=a.mendianid
LEFT JOIN qiye c ON c.qiyeid=d.qiyeid
WHERE a.dingdanzhuangtai='ZHIFU'
AND c.adminopenid=#{adminopenid}
<if test="_parameter.containsKey('year')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 YEAR )
</if>
<if test="_parameter.containsKey('halfyear')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 6 MONTH )
</if>
<if test="_parameter.containsKey('month')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 MONTH )
</if>
<if test="_parameter.containsKey('week')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 WEEK)
</if>
<if test="_parameter.containsKey('day')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 DAY)
</if>
GROUP BY d.mendianid
LIMIT #{currentRow},#{pageSize}
</select>
<select id="queryDingdanBymendianAdmin" parameterType="java.util.Map" resultType="java.util.Map">
SELECT SUM(a.dingdanjine) AS dingdansum ,d.mingcheng AS mendianmingcheng , c.qiyeid AS qiyeid,c.mingcheng AS qiyemingcheng
FROM dingdan a LEFT JOIN mendian d ON d.mendianid=a.mendianid
LEFT JOIN qiye c ON c.qiyeid=d.qiyeid
WHERE a.dingdanzhuangtai='ZHIFU'
AND d.adminopenid=#{adminopenid}
<if test="_parameter.containsKey('year')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 YEAR )
</if>
<if test="_parameter.containsKey('halfyear')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 6 MONTH )
</if>
<if test="_parameter.containsKey('month')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 MONTH )
</if>
<if test="_parameter.containsKey('week')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 WEEK)
</if>
<if test="_parameter.containsKey('day')">
AND a.dingdanshijian > date_sub(curdate(), INTERVAL 1 DAY)
</if>
GROUP BY d.mendianid
LIMIT #{currentRow},#{pageSize}
</select>
</mapper>
package com.xiong.mendianfu.services.impl;
import com.xiong.mendianfu.bean.PageList;
import com.xiong.mendianfu.dao.DingDanDao;
import com.xiong.mendianfu.dao.QiYeDao;
import com.xiong.mendianfu.services.DingdanService;
import com.xiong.mendianfu.utils.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class DingdanServiceImpl implements DingdanService {
@Resource
DingDanDao dingDanDao;
/**
*@see com.xiong.mendianfu.services.DingdanService#(String)
*/
public PageList queryDingdan(String keyword,int currentPage,int pageSize,String biaoshi,String mingcheng){
PageList pageList = new PageList();
pageList.setCurrentPage(currentPage);
int currentRow = (currentPage-1) * pageSize;
Map map=new HashMap();
map.put("keyword",keyword);
map.put("currentRow",currentRow);
map.put("pageSize",pageSize);
map.put("biaoshi",biaoshi);
map.put("mingcheng",mingcheng);
List list = dingDanDao.queryDingdan(map);
Map<String, Object> pageCountMap = dingDanDao.getPageCount(map);
pageList.setTotalRow(((Long)pageCountMap.get("totalRow")).intValue());
pageList.setTotalPage(((BigDecimal)pageCountMap.get("totalPage")).intValue());
pageList.setList(list);
return pageList;
}
public PageList queryDingdanByqiye(String mingchengs, String fanwei,int currentPage,int pageSize){
PageList pageList = new PageList();
pageList.setCurrentPage(currentPage);
int currentRow = (currentPage-1) * pageSize;
Map map=new HashMap();
map.put("fanwei",fanwei);
map.put("currentRow",currentRow);
map.put("pageSize",pageSize);
if(mingchengs!=null){
List list=new ArrayList();
String [] qiyemingchengs=mingchengs.split(",");
for(String qiyemingcheng:qiyemingchengs){
list.add(qiyemingcheng);
}
map.put("list",list);
map.put("mingcheng",null);
}
Map maps = MapUtils.getmap(map, fanwei);
List list = dingDanDao.queryDingdanByqiye(maps);
Map<String, Object> pageCountMap = dingDanDao.getPageCount(map);
pageList.setTotalRow(((Long)pageCountMap.get("totalRow")).intValue());
pageList.setTotalPage(((BigDecimal)pageCountMap.get("totalPage")).intValue());
pageList.setList(list);
return pageList ;
}
package com.xiong.mendianfu.controllers;
import com.xiong.mendianfu.bean.Dingdan;
import com.xiong.mendianfu.bean.PageList;
import com.xiong.mendianfu.services.DingdanService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*用於實現訂單的統計
*
*/
@Controller
@RequestMapping("/dingdan")
public class DingdanController {
@Resource
private DingdanService dingdanService;
@RequestMapping("/querydingdan")
public ModelAndView queryDingdan(HttpServletRequest request, HttpServletResponse response){
ModelAndView mv=new ModelAndView();
String message=request.getParameter("message");
String mingcheng=request.getParameter("mingcheng");
String biaoshi=request.getParameter("biaoshi");
int currentPage = Integer.parseInt(StringUtils.defaultString(request.getParameter("currentpage"), "1"));
PageList pageList = new PageList();
pageList.setCurrentPage(currentPage);
int pageSize = 10;
PageList list=dingdanService.queryDingdan(message,currentPage,pageSize,biaoshi,mingcheng);
mv.addObject("DINGDANLIST", list);
mv.setViewName("/dingdan/dingdanlist.jsp");
return mv;
}
@RequestMapping("/queryDingdanByqiye")
public ModelAndView queryDingdanByqiye(HttpServletRequest request, HttpServletResponse response){
ModelAndView mv=new ModelAndView();
String mingcheng=request.getParameter("mingcheng");
String fanwei=request.getParameter("fanwei");
int currentPage = Integer.parseInt(StringUtils.defaultString(request.getParameter("currentpage"), "1"));
int pageSize=10;
PageList list = dingdanService.queryDingdanByqiye(mingcheng,fanwei,currentPage,pageSize);
mv.addObject("DINGDANQIYELIST", list);
mv.setViewName("/dingdan/qiyedingdan.jsp");
return mv;
}
@RequestMapping("/queryDingdanBymendian")
public ModelAndView queryDingdanBymendian(HttpServletRequest request, HttpServletResponse response){
ModelAndView mv=new ModelAndView();
String qiyeid=request.getParameter("qiyeid");
String fanwei=request.getParameter("fanwei");
String mingcheng=request.getParameter("mingcheng");
int currentPage = Integer.parseInt(StringUtils.defaultString(request.getParameter("currentpage"), "1"));
int pageSize=10;
PageList list = dingdanService.queryDingdanBymendian(qiyeid,mingcheng,fanwei,currentPage,pageSize);
mv.addObject("QIYEIDINGDAN", list);
mv.setViewName("/dingdan/qiyeshoufei.jsp");
return mv;
}
@RequestMapping("/queryDingdanByID")
public ModelAndView queryDingdanByID(HttpServletRequest request, HttpServletResponse response){
ModelAndView mv=new ModelAndView();
String dingdanid=request.getParameter("dingdanid");
Dingdan dingdanbean = (Dingdan)dingdanService.queryDingdanByID(dingdanid);
mv.addObject("DINGDANBEAN", dingdanbean);
mv.setViewName("/dingdan/dingdanzhanshi.jsp");
return mv;
}
}
public PageList queryDingdanBymendian(String qiyeid, String mingcheng, String fanwei,int currentPage,int pageSize){
PageList pageList = new PageList();
pageList.setCurrentPage(currentPage);
int currentRow = (currentPage-1) * pageSize;
Map map=new HashMap();
map.put("qiyeid",qiyeid);
if(mingcheng!=null){
String [] mendianmingchengs=mingcheng.split(",");
List list=new ArrayList();
for(String mendianmingcheng:mendianmingchengs){
list.add(mendianmingcheng);
}
map.put("list",list);
map.put("mingcheng",null);
}
map.put("currentRow",currentRow);
map.put("pageSize",pageSize);
Map maps = MapUtils.getmap(map, fanwei);
List list = dingDanDao.queryDingdanBymendian(maps);
Map<String, Object> pageCountMap = dingDanDao.getPageCount(maps);
pageList.setTotalRow(((Long)pageCountMap.get("totalRow")).intValue());
pageList.setTotalPage(((BigDecimal)pageCountMap.get("totalPage")).intValue());
pageList.setList(list);
return pageList;
}
public PageList queryDingdanByqiyeAdminopenid(String openid, String fanwei,int currentPage,int pageSize){
PageList pageList = new PageList();
pageList.setCurrentPage(currentPage);
int currentRow = (currentPage-1) * pageSize;
Map map=new HashMap();
map.put("adminopenid",openid);
map.put("fanwei",fanwei);
map.put("currentRow",currentRow);
map.put("pageSize",pageSize);
Map maps = MapUtils.getmap(map, fanwei);
List list = dingDanDao.queryDingdanByqiyeAdminopenid(maps);
Map<String, Object> pageCountMap = dingDanDao.getPageCount(maps);
pageList.setTotalRow(((Long)pageCountMap.get("totalRow")).intValue());
pageList.setTotalPage(((BigDecimal)pageCountMap.get("totalPage")).intValue());
pageList.setList(list);
return pageList;
}
public PageList queryDingdanBymendianAdmin(String openid, String fanwei,int currentPage,int pageSize){
PageList pageList = new PageList();
pageList.setCurrentPage(currentPage);
int currentRow = (currentPage-1) * pageSize;
Map map=new HashMap();
map.put("adminopenid",openid);
map.put("fanwei",fanwei);
map.put("currentRow",currentRow);
map.put("pageSize",pageSize);
Map maps = MapUtils.getmap(map, fanwei);
List list = dingDanDao.queryDingdanBymendianAdmin(maps);
Map<String, Object> pageCountMap = dingDanDao.getPageCount(maps);
pageList.setTotalRow(((Long)pageCountMap.get("totalRow")).intValue());
pageList.setTotalPage(((BigDecimal)pageCountMap.get("totalPage")).intValue());
pageList.setList(list);
return pageList;
}
public Object queryDingdanByID(String dingdanid){
return dingDanDao.queryDingdanByID(dingdanid);
}
public DingDanDao getDingDanDao() {
return dingDanDao;
}
public void setDingDanDao(DingDanDao dingDanDao) {
this.dingDanDao = dingDanDao;
}
}
package com.xiong.mendianfu.dao;
import com.xiong.mendianfu.bean.Dingdan;
import java.util.List;
import java.util.Map;
/**
* Created by Administrator on 2016/11/25.
*/
public interface DingDanDao {
/**
*查詢訂單,可以根據訂單號、門店標識、門店名模糊查詢
*該功能需要帶翻頁
*
*
*/
List queryDingdan(Map map);
/**
*根據企業信息查詢該企業的所有門店在一定時期內的微信收款金額
*返回list<Map>類型的數據
*每個map包含:企業id,企業名稱,收款金額
*@param mingcheng 企業名稱,多個名稱中間使用逗號分隔,如果爲空則默認全部
*@param fanwei 時間範圍,其值包括下面幾種
*日消費/周消費/近一個月/近半年/近一年統
*該值如果爲空則認爲是全部
*
*/
List queryDingdanByqiye(Map map);
/**
*按門店查詢收款統計,
*@param qiyeid 企業id
*@param mingcheng 門店名稱,多個門店名稱中間使用逗號分隔,若爲空則表示全部
*
*/
List queryDingdanBymendian(Map map);
/**
*根據企業的openid查詢該企業及其下屬門店的收款情況
*@param openid 管理員openid
*@param fanwei 查詢範圍,其值包括下面幾種
*日消費/周消費/近一個月/近半年/近一年統
*該值如果爲空則認爲是全部
*/
List queryDingdanByqiyeAdminopenid(Map map);
/**
*
*根據openid查詢門店的收款情況
*@param openid 門店的openid
*@param fanwei
*其值包括下面幾種
*日消費/周消費/近一個月/近半年/近一年統
*該值如果爲空則認爲是全部
*/
List queryDingdanBymendianAdmin(Map map);
/**
*根據訂單id查詢訂單明細
*/
Dingdan queryDingdanByID(String dingdanid);
Map<String,Object> getPageCount(Map map);
}
mybatis整合spring配置文件 這個配置可能不是最好的
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">
<!-- 開啓註解 -->
<context:annotation-config />
<!-- 指定掃描包 -->
<context:component-scan base-package="com.xiong.mendianfu.controllers" />
<context:component-scan base-package="com.xiong.mendianfu.services.impl" />
<!-- 開啓springmvc註解 -->
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!-- spring mybitis的配置 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="jdbc:mysql://localhost:3306/mendianfu?useUnicode=true&characterEncoding=utf-8"/>
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
<!-- mybatis的sessionFactoty -->
<bean id="sqlSessionFactoryd" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:QiYeDao.xml"></property>
</bean>
<bean id="qiYeDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.xiong.mendianfu.dao.QiYeDao"></property>
<property name="sqlSessionFactory" ref="sqlSessionFactoryd" ></property>
</bean>
<bean id="dingdanService" class="com.xiong.mendianfu.services.impl.DingdanServiceImpl">
<property name="dingDanDao" ref="dingDanDao"></property>
</bean>
</beans>