package com.uas.service.donate.controller; import com.alibaba.fastjson.JSONObject; import com.uas.service.donate.core.model.Status; import com.uas.service.donate.model.*; import com.uas.service.donate.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Date; import java.util.List; /** * 提供给移动端的控制器 */ @Controller @RequestMapping("/app") public class AppController { @Autowired private ProjectRecodeService projectRecodeService; @Autowired private CarouselService carouselService; @Autowired private ProjectService projectService; @Autowired private ActivityController activityController; @Autowired private ActivityService activityService; @Autowired private ActivityRecodeService activityRecodeService; @Autowired private UserService userService; /** * 默认排行行数 */ private static final Integer DEFAULT_RANK_NUMBER = 10; /** * 返回移动端首页轮播图 */ @ResponseBody @RequestMapping(value = "/appIndex",method = RequestMethod.GET) public ModelMap returnapp(@RequestParam(value = "useFor",defaultValue ="donate-app")String useFor){ ModelMap modelMap=new ModelMap(); Double totality = projectRecodeService.totality(); totality = new BigDecimal(totality).setScale(2, RoundingMode.UP).doubleValue(); //存入捐款总数 modelMap.put("totality",totality); Integer times = projectRecodeService.sumAllPersonTimes(); //存入捐款总人数 modelMap.put("totality",totality); List carouselList = carouselService.getCarousels(useFor); //存入首页轮播图 modelMap.put("carouselList",carouselList); //查询项目中所有领域分类 List allArea = projectService.allArea(); modelMap.put("allArea",allArea); return modelMap; } /** * 返回首页项目列表 */ @ResponseBody @RequestMapping(value = "/projects",method = RequestMethod.GET) public ModelMap returnProjects(@RequestParam(value="area",defaultValue = "全部")String area, @RequestParam(value = "search",required = false)String search){ ModelMap modelMap=new ModelMap(); if (Status.ALL.getPhrase().equals(area)) { List projectList=projectService.findProjects(); modelMap.put("projectList",projectList); }else{ List projectList=projectService.findArea(area); modelMap.put("projectList",projectList); } if(search!=null){ List projectList=projectService.search(search); modelMap.put("projectList",projectList); } return modelMap; } /** * 获取活动列表 */ @ResponseBody @RequestMapping(value = "/activities",method = RequestMethod.GET) public ModelMap returnActivities(@RequestParam(value="status",defaultValue = "全部")String status, @RequestParam(value = "keyWork",defaultValue = "")String keyWork){ ModelMap modelMap=new ModelMap(); Date before = new Date(); if("全部".equals(status)){ List activityList=activityService.findAll(); modelMap.put("activityList",activityList); }else{ List activityList=activityController.getActivities(status); modelMap.put("activityList",activityList); } if(!"".equals(keyWork)){ List activityList=activityService.search(keyWork); modelMap.put("activityList",activityList); } Date after = new Date(); System.out.println("before " + before.getTime()); System.out.println("after " + after.getTime()); System.out.println("after-before: " + (after.getTime() - before.getTime())); return modelMap; } /** * 获取当前用户的捐款信息 * 传入用户UUID */ @ResponseBody @RequestMapping(value = "/donateDetail/{imid}",method = RequestMethod.GET) public ModelMap projectRecodeList(@PathVariable("imid") String imid)throws Exception{ User user= userService.getUserByImId(Long.valueOf(imid)); ModelMap modelMap=new ModelMap(); List projectRecodeList=projectRecodeService.findByuuid(user.getUserUU()); modelMap.put("projectRecodeList",projectRecodeList); //计算参与的项目总数 Long sumJoin=projectRecodeService.sumJoin(user.getUserUU()); modelMap.put("sumJoin",sumJoin); //捐赠的善款总数 Double sumMoney=projectRecodeService.sumMoney(user.getUserUU()); modelMap.put("sumMoney",sumMoney); return modelMap; } /** * 查询某一用户参与的活动 */ @ResponseBody @RequestMapping(value = "/joinActivity/{imid}",method = RequestMethod.GET) public ModelMap queryOne(@PathVariable("imid")String imid)throws Exception{ User user= userService.getUserByImId(Long.valueOf(imid)); ModelMap modelMap=new ModelMap(); List activityRecodeList=activityRecodeService.queryOne(user.getUserUU()); modelMap.put("activityRecodeList",activityRecodeList); //计算某人参与的活动总数 Long sumJoin=activityRecodeService.sumJoin(user.getUserUU()); modelMap.put("sumJoin",sumJoin); return modelMap; } /** * 个人中心列表 */ @ResponseBody @RequestMapping(value = "/center",method = RequestMethod.GET) public ModelMap center(String imid) throws Exception { User user= userService.getUserByImId(Long.valueOf(imid)); ModelMap modelMap=new ModelMap(); modelMap.put("user",user); //捐赠的善款总数 Double sumMoney=projectRecodeService.sumMoney(user.getUserUU()); modelMap.put("sumMoney",sumMoney); //计算某人参与的活动总数 Long sumActJoin=activityRecodeService.sumJoin(user.getUserUU()); modelMap.put("sumActJoin",sumActJoin); //计算参与的项目总数 Long sumProJoin=projectRecodeService.sumJoin(user.getUserUU()); modelMap.put("sumProJoin",sumProJoin); return modelMap; } /** * 项目捐款排行 * @param id 项目id * @param number 行数 不传默认10 * @return 项目捐款排行 */ @ResponseBody @RequestMapping(value = "/rank",method = RequestMethod.GET) public List donateRank(Long id, Integer number) { if (null == number) { number = DEFAULT_RANK_NUMBER; } return projectRecodeService.donateRank(id, number); } /** * 点击查看项目详情 * @param id 项目id * @return 项目 */ @ResponseBody @RequestMapping(value = "/project/detail",method = RequestMethod.GET) public ModelMap showDetail(Long id) { ModelMap map = new ModelMap(); Project project = projectService.findOne(id); map.put("project", project); return map; } }