Przeglądaj źródła

donate-service添加移动端所需要的接口

shicr 8 lat temu
rodzic
commit
d0407f2a81
17 zmienionych plików z 318 dodań i 24 usunięć
  1. 8 5
      donate-service/pom.xml
  2. 5 0
      donate-service/src/main/java/com/uas/service/donate/Impl/ActivityServiceImpl.java
  3. 5 0
      donate-service/src/main/java/com/uas/service/donate/Impl/ProjectRecordServiceImpl.java
  4. 1 0
      donate-service/src/main/java/com/uas/service/donate/Impl/ProjectReportServiceImpl.java
  5. 7 1
      donate-service/src/main/java/com/uas/service/donate/Impl/ProjectServiceImpl.java
  6. 11 4
      donate-service/src/main/java/com/uas/service/donate/controller/ActivityController.java
  7. 0 4
      donate-service/src/main/java/com/uas/service/donate/controller/ActivityRecodeController.java
  8. 26 1
      donate-service/src/main/java/com/uas/service/donate/controller/ProjectController.java
  9. 16 0
      donate-service/src/main/java/com/uas/service/donate/controller/ProjectRecodeController.java
  10. 163 0
      donate-service/src/main/java/com/uas/service/donate/controller/indexController.java
  11. 5 0
      donate-service/src/main/java/com/uas/service/donate/dao/ActivityDao.java
  12. 6 1
      donate-service/src/main/java/com/uas/service/donate/dao/ProjectDao.java
  13. 1 0
      donate-service/src/main/java/com/uas/service/donate/dao/ProjectRecodeDao.java
  14. 55 7
      donate-service/src/main/java/com/uas/service/donate/model/ProjectRecode.java
  15. 3 0
      donate-service/src/main/java/com/uas/service/donate/service/ActivityService.java
  16. 3 0
      donate-service/src/main/java/com/uas/service/donate/service/ProjectRecodeService.java
  17. 3 1
      donate-service/src/main/java/com/uas/service/donate/service/ProjectService.java

+ 8 - 5
donate-service/pom.xml

@@ -20,7 +20,9 @@
                 <!-- static plugin -->
                 <static-path>static</static-path>
             </properties>
-
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
         </profile>
         <profile>
             <!-- 测试环境 -->
@@ -30,9 +32,7 @@
                 <!-- static plugin -->
                 <static-path>static</static-path>
             </properties>
-            <activation>
-                <activeByDefault>true</activeByDefault>
-            </activation>
+
         </profile>
         <profile>
             <!-- 生产环境 -->
@@ -92,7 +92,10 @@
             <groupId>org.springframework</groupId>
             <artifactId>spring-tx</artifactId>
         </dependency>
-
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-freemarker</artifactId>
+        </dependency>
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>

+ 5 - 0
donate-service/src/main/java/com/uas/service/donate/Impl/ActivityServiceImpl.java

@@ -88,4 +88,9 @@ public class ActivityServiceImpl implements ActivityService {
     public Double sumMoney(Long id){
         return activityDao.sumMoney(id);
     }
+
+    //根据活动名关键字,奖品名关键字查询活动
+    public List<Activity> search(String search){
+       return activityDao.search(search);
+    }
 }

+ 5 - 0
donate-service/src/main/java/com/uas/service/donate/Impl/ProjectRecordServiceImpl.java

@@ -45,4 +45,9 @@ public class ProjectRecordServiceImpl implements ProjectRecodeService {
         return projectRecodeDao.sumamount(proId);
     }
 
+    //根据捐款单号找到该条捐款单据
+    public ProjectRecode findOne(Long id){
+        return projectRecodeDao.findOne(id);
+    }
+
 }

+ 1 - 0
donate-service/src/main/java/com/uas/service/donate/Impl/ProjectReportServiceImpl.java

@@ -15,4 +15,5 @@ public class ProjectReportServiceImpl implements ProjectReportService {
     public ProjectReport save(ProjectReport projectReport){
             return projectReportDao.save(projectReport);
     }
+
 }

+ 7 - 1
donate-service/src/main/java/com/uas/service/donate/Impl/ProjectServiceImpl.java

@@ -3,6 +3,7 @@ package com.uas.service.donate.Impl;
 
 import com.uas.service.donate.dao.ProjectDao;
 import com.uas.service.donate.model.Project;
+import com.uas.service.donate.model.ProjectRecode;
 import com.uas.service.donate.service.ProjectService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -46,11 +47,15 @@ public class ProjectServiceImpl implements ProjectService {
     }
 
     //查询特定领域的项目
-    public List<Project> findArea(Integer area){
+    public List<Project> findArea(String area){
 
         return  projectDao.findArea(area);
     }
 
+    public Page<Project> findPageArea(String area,Pageable pageable){
+        return projectDao.findPageArea(area,pageable);
+    }
+
     public List<Project> findProjects(){
         return projectDao.findProjects();
     }
@@ -64,4 +69,5 @@ public class ProjectServiceImpl implements ProjectService {
         return projectDao.allArea();
     }
 
+
 }

+ 11 - 4
donate-service/src/main/java/com/uas/service/donate/controller/ActivityController.java

@@ -10,6 +10,7 @@ import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -36,16 +37,22 @@ public class ActivityController {
      */
     @ResponseBody
     @RequestMapping("/getActivities")
-    public List<Activity> getActivities(){
-        return activityService.findAll();
+    public List<Activity> getActivities(String status){
+        List<Activity> activityList=new ArrayList<Activity>();
+        if(status=="进行中"){
+            return activityService.findInProcess();
+        }else if(status=="已结束"){
+            return activityService.findEndActivities();
+        }
+        return activityList;
     }
 
     /**
      * 展示某具体活动
      */
     @ResponseBody
-    @RequestMapping("/detail")
-    public Activity findById(Long id){
+    @RequestMapping("/detail/{id}")
+    public Activity findById(@PathVariable("id") Long id){
         return activityService.fingById(id);
     }
 

+ 0 - 4
donate-service/src/main/java/com/uas/service/donate/controller/ActivityRecodeController.java

@@ -1,8 +1,5 @@
 package com.uas.service.donate.controller;
 
-import com.alibaba.fastjson.JSONObject;
-import com.uas.service.donate.dao.ActivityDao;
-import com.uas.service.donate.dao.ActivityRecodeDao;
 import com.uas.service.donate.model.Activity;
 import com.uas.service.donate.model.ActivityRecode;
 import com.uas.service.donate.service.ActivityRecodeService;
@@ -12,7 +9,6 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 

+ 26 - 1
donate-service/src/main/java/com/uas/service/donate/controller/ProjectController.java

@@ -66,6 +66,21 @@ public class ProjectController {
         return pageable;
     }
 
+    /**
+     * 根据项目状态获取列表
+     */
+    @ResponseBody
+    @RequestMapping("/status")
+    public Page<Project> findProjects(String status,Integer page ,Integer size){
+        Pageable pageable=new PageRequest(page,size);
+        if(status=="进行中"){
+            Page<Project> projects= projectService.findInProcess(pageable);
+        }else if(status=="已结束"){
+            Page<Project> projects=  projectService.findEndProject(pageable);
+        }
+        return null;
+    }
+
     /**
      * 查询出所有执行中项目
      */
@@ -98,10 +113,20 @@ public class ProjectController {
      */
     @ResponseBody
     @RequestMapping("/area")
-    public List<Project> findArea(Integer area){
+    public List<Project> findArea(String area){
         return projectService.findArea(area);
     }
 
+    /**
+     *获取特定领域的项目分页
+     */
+    @ResponseBody
+    @RequestMapping("/pageArea")
+    public Page<Project> findPageArea(String area,Integer page,Integer size){
+        Pageable pageable=new PageRequest(page,size);
+        return projectService.findPageArea(area,pageable);
+    }
+
 
     /**
      * 点击查看项目详情

+ 16 - 0
donate-service/src/main/java/com/uas/service/donate/controller/ProjectRecodeController.java

@@ -51,8 +51,15 @@ public class ProjectRecodeController {
         totalAmount+=amount;
         //重新设置该项目已筹集金额
         project.setTotalAmount(totalAmount);
+        //得到该项目的参与人数
+        Long joinAmount=project.getJoinAmount();
+        joinAmount++;
+        //重新设置该项目的参与人数
+        project.setJoinAmount(joinAmount);
         //保存项目
         projectService.save(project);
+        //设置项目待支付状态
+        projectRecode.setStatus((short)1);
 
         return projectRecodeService.join(projectRecode);
     }
@@ -94,4 +101,13 @@ public class ProjectRecodeController {
     public Double sumamount(Long proId){
         return projectRecodeService.sumamount(proId);
     }
+
+    /**
+     *  根据捐款单号找到该条捐款单据
+     */
+    @ResponseBody
+    @RequestMapping
+    public ProjectRecode findOne(Long id){
+        return projectRecodeService.findOne(id);
+    }
 }

+ 163 - 0
donate-service/src/main/java/com/uas/service/donate/controller/indexController.java

@@ -0,0 +1,163 @@
+package com.uas.service.donate.controller;
+
+import com.uas.service.donate.model.*;
+import com.uas.service.donate.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+
+@Controller
+public class indexController {
+
+    @Autowired
+    private ProjectRecodeController projectRecodeController;
+
+    @Autowired
+    private ProjectRecodeService projectRecodeService;
+
+    @Autowired
+    private CarouselService carouselService;
+
+    @Autowired
+    private ProjectController projectController;
+
+    @Autowired
+    private ProjectService projectService;
+
+    @Autowired
+    private ActivityController activityController;
+
+    @Autowired
+    private ActivityService activityService;
+
+    @Autowired
+    private ActivityRecodeService activityRecodeService;
+
+    /**
+     * 返回首页index.ftl的页面
+     */
+    @RequestMapping("/index")
+    public String returnIndex(Model model,@RequestParam(value = "page",defaultValue = "0")Integer page,
+                              @RequestParam(value = "size",defaultValue = "7")Integer size,
+                              @RequestParam(value = "area",defaultValue = "全部")String area,
+                              @RequestParam(value = "status",defaultValue = "全部")String status){
+        //得到历史参与总人数
+        Long historyPerson=projectRecodeService.historyPerson();
+        //得到历史参与总捐款额
+        Double totality=projectRecodeService.totality();
+
+        Pageable pageable=new PageRequest(page,size);
+
+        //领域是全部,那么只搜索状态
+        if (area=="全部"&&status!="全部") {
+            Page<Project> projects=projectController.findProjects(status,page,size);
+            model.addAttribute("page",projects);
+        }else if(status=="全部"&&area!="全部"){
+            Page<Project> projects=projectController.findPageArea(area,page,size);
+            model.addAttribute("page",projects);
+        }else if(status=="全部"&&area=="全部"){
+            Page<Project> projects=projectController.findAll(page,size);
+            model.addAttribute("page",projects);
+        }else{
+
+        }
+
+        List<Project> projectList= projectService.findProjects();
+        model.addAttribute("projects",projectList);
+        model.addAttribute("historyPerson",historyPerson);
+        model.addAttribute("totality",totality);
+        return "index";
+    }
+
+    /**
+     * 返回移动端首页轮播图
+     */
+    @ResponseBody
+    @RequestMapping("/appIndex")
+    public ModelMap returnapp(){
+        ModelMap modelMap=new ModelMap();
+        Double totality=projectRecodeService.totality();
+        //存入捐款总数
+        modelMap.put("totality",totality);
+        List<Carousel> carouselList=carouselService.findAll();
+        //存入首页轮播图
+        modelMap.put("carouselList",carouselList);
+        //查询项目中所有领域分类
+        List<String> allArea=projectService.allArea();
+        modelMap.put("allArea",allArea);
+        return modelMap;
+    }
+    /**
+     * 返回首页项目列表
+     */
+    @ResponseBody
+    @RequestMapping("/projects")
+    public ModelMap returnProjects(@RequestParam(value="area",defaultValue = "0")String area,
+                                   @RequestParam(value = "search",required = false)String search){
+        ModelMap modelMap=new ModelMap();
+        if(search!=null){
+            List<Project> projectList=projectService.search(search);
+            modelMap.put("projectList",projectList);
+        }
+        if(area!=null){
+            List<Project> projectList=projectService.findArea(area);
+            modelMap.put("projectList",projectList);
+        }
+        return modelMap;
+    }
+
+    /**
+     * 获取活动列表
+     */
+    @ResponseBody
+    @RequestMapping("/activities")
+    public ModelMap returnActivities(@RequestParam(value="status",defaultValue = "全部")String status,
+                                           @RequestParam(value = "search",required = false)String search){
+        ModelMap modelMap=new ModelMap();
+        if(status!=null){
+            List<Activity> activityList=activityController.getActivities(status);
+            modelMap.put("activityList",activityList);
+        }
+        if(search!=null){
+            List<Activity> activityList=activityService.search(search);
+            modelMap.put("activityList",activityList);
+        }
+        return modelMap;
+    }
+
+    /**
+     * 获取当前用户的捐款信息
+     * 传入用户UUID
+     */
+    @ResponseBody
+    @RequestMapping("/donateDetail/{uuid}")
+    public ModelMap projectRecodeList(@PathVariable("uuid") Long uuid){
+        ModelMap modelMap=new ModelMap();
+        List<ProjectRecode> projectRecodeList=projectRecodeService.findByuuid(uuid);
+        modelMap.put("projectRecodeList",projectRecodeList);
+        return modelMap;
+    }
+
+    /**
+     * 查询某一用户参与的活动
+     */
+    @ResponseBody
+    @RequestMapping("/joinActivity/{uuid}")
+    public ModelMap queryOne(@PathVariable("uuid")Long uuid){
+        ModelMap modelMap=new ModelMap();
+        List<ActivityRecode> activityRecodeList=activityRecodeService.queryOne(uuid);
+        modelMap.put("activityRecodeList",activityRecodeList);
+        return modelMap;
+    }
+}

+ 5 - 0
donate-service/src/main/java/com/uas/service/donate/dao/ActivityDao.java

@@ -35,4 +35,9 @@ public interface ActivityDao extends JpaRepository<Activity,Long>,JpaSpecificati
     @Query("select sum(p.totalAmount) from Project p where p.id in (select pq.proId from ProjectQualification pq where pq.activityId=:activityId)")
     Double sumMoney(@Param("activityId")Long activityId);
 
+    //根据活动名关键字,奖品名关键字查询活动
+    @Query("from Activity a where a.name like %:search% or a.id in (select aw.activityId from Award aw where aw.awardName like %:search%)")
+    List<Activity> search(@Param("search")String search);
+
 }
+

+ 6 - 1
donate-service/src/main/java/com/uas/service/donate/dao/ProjectDao.java

@@ -30,8 +30,13 @@ public interface ProjectDao extends JpaRepository<Project,Long>,JpaSpecification
 
     //查询特定领域的项目
     @Query("from Project p where p.area=:area and p.status=1 and publish=2 order by p.startTime desc")
-    List<Project> findArea(@Param("area")Integer area);
+    List<Project> findArea(@Param("area")String area);
 
+    //查询特定领域分页
+    @Query("from Project p where p.area=:area and p.status=1 and publish=2 order by p.startTime desc")
+    Page<Project> findPageArea(@Param("area")String area,Pageable pageable);
+
+    //找到所有进行中和已结束的项目
     @Query("from Project p where now()>=p.startTime and p.status=1 and p.publish=2 order by p.startTime desc")
     List<Project> findProjects();
 

+ 1 - 0
donate-service/src/main/java/com/uas/service/donate/dao/ProjectRecodeDao.java

@@ -31,4 +31,5 @@ public interface ProjectRecodeDao extends JpaRepository<ProjectRecode,Long>,JpaS
     //查询某项目已筹集金额
     @Query("select sum(amount) from ProjectRecode where proId=:proId")
     Double sumamount(@Param("proId")Long proId);
+
 }

+ 55 - 7
donate-service/src/main/java/com/uas/service/donate/model/ProjectRecode.java

@@ -1,11 +1,14 @@
 package com.uas.service.donate.model;
 
 import javax.persistence.*;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 
 @Entity
 @Table(name="donate$projectrecode")
 public class ProjectRecode {
     private static final long serialVersionUID = 1L;
+    private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm");
 
     @Id
     @GeneratedValue(strategy= GenerationType.IDENTITY)
@@ -40,11 +43,31 @@ public class ProjectRecode {
     private Double amount;
 
     /**
-     * 祝福语
+     * 捐款时间
      * @return
      */
-    @Column(name = "pr_bless")
-    private String bless;
+    @Column(name = "pr_time")
+    private Date time;
+
+    /**
+     * 捐赠项目
+     * @return
+     */
+    @Column(name = "pr_pro_name")
+    private String projectName;
+
+    /**
+     * 收益机构
+     */
+    @Column(name = "pr_org_name")
+    private String orgName;
+
+    /**
+     * 支付状态(1:待支付,2:已支付)
+     * @return
+     */
+    @Column(name = "pr_status")
+    private short status;
 
     public Long getId() {
         return id;
@@ -86,11 +109,36 @@ public class ProjectRecode {
         this.amount = amount;
     }
 
-    public String getBless() {
-        return bless;
+    public String getTime() {
+        Date time=this.time;
+        return time!=null?sdf.format(time):null;
+    }
+
+    public void setTime(Date time) {
+        this.time = time;
+    }
+
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    public String getOrgName() {
+        return orgName;
+    }
+
+    public void setOrgName(String orgName) {
+        this.orgName = orgName;
+    }
+
+    public short getStatus() {
+        return status;
     }
 
-    public void setBless(String bless) {
-        this.bless = bless;
+    public void setStatus(short status) {
+        this.status = status;
     }
 }

+ 3 - 0
donate-service/src/main/java/com/uas/service/donate/service/ActivityService.java

@@ -24,4 +24,7 @@ public interface ActivityService {
 
     //计算与活动相关的项目筹集的总金额
     Double sumMoney(Long id);
+
+    //根据活动名关键字,奖品名关键字查询活动
+    List<Activity> search(String search);
 }

+ 3 - 0
donate-service/src/main/java/com/uas/service/donate/service/ProjectRecodeService.java

@@ -23,4 +23,7 @@ public interface ProjectRecodeService {
 
     //查询某项目已筹集金额
     Double sumamount(Long proId);
+
+    //根据捐款单号找到该条捐款单据
+    ProjectRecode findOne(Long id);
 }

+ 3 - 1
donate-service/src/main/java/com/uas/service/donate/service/ProjectService.java

@@ -24,7 +24,9 @@ public interface ProjectService {
     Page<Project> findEndProject(Pageable pageable);
 
     //查询特定领域的项目
-    List<Project> findArea(Integer area);
+    List<Project> findArea(String area);
+
+    Page<Project> findPageArea(String area,Pageable pageable);
 
     List<Project> findProjects();