A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【郑州校区】传智健康项目讲义第九章 九

3.3 后台代码
3.3.1 Controller
health_backend工程中创建ReportController并提供getMemberReport方法
[AppleScript] 纯文本查看 复制代码
package com.itheima.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.itheima.constant.MessageConstant;
import com.itheima.entity.Result;
import com.itheima.pojo.Setmeal;
import com.itheima.service.MemberService;
import com.itheima.service.ReportService;
import com.itheima.service.SetmealService;
import com.itheima.utils.DateUtils;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* 统计报表
*/
@RestController
@RequestMapping("/report")
public class ReportController {
@Reference
private MemberService memberService;
/**
* 会员数量统计
* @return
*/
@RequestMapping("/getMemberReport")
public Result getMemberReport(){Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH,‐12);//获得当前日期之前12个月的日期
List<String> list = new ArrayList<>();
for(int i=0;i<12;i++){
calendar.add(Calendar.MONTH,1);
list.add(new
SimpleDateFormat("yyyy.MM").format(calendar.getTime()));
}
Map<String,Object> map = new HashMap<>();
map.put("months",list);
List<Integer> memberCount =
memberService.findMemberCountByMonth(list);
map.put("memberCount",memberCount);
return new Result(true,
MessageConstant.GET_MEMBER_NUMBER_REPORT_SUCCESS,map);
}
} 

3.3.2 服务接口
MemberService服务接口中扩展方法findMemberCountByMonth

[AppleScript] 纯文本查看 复制代码
public List<Integer> findMemberCountByMonth(List<String> month); 

3.2.3 服务实现类
MemberServiceImpl服务实现类中实现findMemberCountByMonth方法

[AppleScript] 纯文本查看 复制代码
//根据月份统计会员数量
public List<Integer> findMemberCountByMonth(List<String> month) {
List<Integer> list = new ArrayList<>();
for(String m : month){
m = m + ".31";//格式:2019.04.31
Integer count = memberDao.findMemberCountBeforeDate(m);
list.add(count);
}
return list;
} 

3.3.4 Dao接口
MemberDao接口中扩展方法findMemberCountBeforeDate
[AppleScript] 纯文本查看 复制代码
 public Integer findMemberCountBeforeDate(String date); 


3.3.5 Mapper映射文件
MemberDao.xml映射文件中提供SQL语句
[AppleScript] 纯文本查看 复制代码
 <!‐‐根据日期统计会员数,统计指定日期之前的会员数‐‐>
<select id="findMemberCountBeforeDate" parameterType="string"
resultType="int">
select count(id) from t_member where regTime <= #{value}
</select>



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马