Просмотр исходного кода

Merge remote-tracking branch 'origin/dev' into dev

huangct 8 лет назад
Родитель
Сommit
597629013f
35 измененных файлов с 556 добавлено и 95 удалено
  1. 64 12
      donate-console/src/main/java/com/uas/console/donate/model/User.java
  2. 20 0
      donate-console/src/main/webapp/WEB-INF/views/index.html
  3. 10 5
      donate-service/pom.xml
  4. 10 2
      donate-service/src/main/java/com/uas/service/donate/controller/ActiveCenterController.java
  5. 11 6
      donate-service/src/main/java/com/uas/service/donate/controller/ActivityController.java
  6. 21 0
      donate-service/src/main/java/com/uas/service/donate/controller/OrgController.java
  7. 14 2
      donate-service/src/main/java/com/uas/service/donate/controller/ProjectRecodeController.java
  8. 7 0
      donate-service/src/main/java/com/uas/service/donate/dao/ActivityRecodeDao.java
  9. 12 0
      donate-service/src/main/java/com/uas/service/donate/dao/ProjectDao.java
  10. 1 0
      donate-service/src/main/java/com/uas/service/donate/dao/UserDao.java
  11. 2 1
      donate-service/src/main/java/com/uas/service/donate/model/Activity.java
  12. 1 5
      donate-service/src/main/java/com/uas/service/donate/model/Project.java
  13. 18 6
      donate-service/src/main/java/com/uas/service/donate/model/ProjectQualification.java
  14. 7 0
      donate-service/src/main/java/com/uas/service/donate/service/ActivityService.java
  15. 6 0
      donate-service/src/main/java/com/uas/service/donate/service/OrgService.java
  16. 2 0
      donate-service/src/main/java/com/uas/service/donate/service/ProjectRecodeService.java
  17. 3 0
      donate-service/src/main/java/com/uas/service/donate/service/ProjectService.java
  18. 26 0
      donate-service/src/main/java/com/uas/service/donate/service/impl/ActivityServiceImpl.java
  19. 32 0
      donate-service/src/main/java/com/uas/service/donate/service/impl/OrgServiceImpl.java
  20. 14 0
      donate-service/src/main/java/com/uas/service/donate/service/impl/ProjectRecordServiceImpl.java
  21. 6 0
      donate-service/src/main/java/com/uas/service/donate/service/impl/ProjectServiceImpl.java
  22. 58 0
      donate-service/src/main/resources/config/application-prod.properties
  23. 18 7
      donate-service/src/main/resources/templates/activeCenter.ftl
  24. 26 24
      donate-service/src/main/resources/templates/index.ftl
  25. 1 1
      donate-service/src/main/webapp/WEB-INF/views/donationsOver.html
  26. 1 1
      donate-service/src/main/webapp/WEB-INF/views/personalCenter.html
  27. 119 0
      donate-service/src/main/webapp/resources/css/kkpager_orange.css
  28. 5 0
      donate-service/src/main/webapp/resources/js/common/query/Activity.js
  29. 2 2
      donate-service/src/main/webapp/resources/js/common/query/Project.js
  30. 2 2
      donate-service/src/main/webapp/resources/js/mobile/app.js
  31. 12 6
      donate-service/src/main/webapp/resources/js/mobile/controllers/MobileActivityDetailCtrl.js
  32. 7 5
      donate-service/src/main/webapp/resources/js/mobile/controllers/MobileProjectDetailCtrl.js
  33. 11 2
      donate-service/src/main/webapp/resources/view/mobile/mobile_activity_detail.html
  34. 6 5
      donate-service/src/main/webapp/resources/view/mobile/mobile_project_detail.html
  35. 1 1
      donate-service/src/main/webapp/resources/view/project/donationsOver.html

+ 64 - 12
donate-console/src/main/java/com/uas/console/donate/model/User.java

@@ -9,29 +9,57 @@ public class User implements Serializable{
 
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 用户uu号
+     */
     @Id
     @GeneratedValue(strategy= GenerationType.IDENTITY)
-    @Column(name="user_id")
-    private  Long id;
+    @Column(name = "user_uu")
+    private Long userUU;
 
+    /**
+     * 用户名
+     */
     @Column(name = "user_name")
     private String name;
 
+    /**
+     * 用户密码
+     */
+    @Column(name = "user_pwd")
+    private String pwd;
+
+    /**
+     * 用户手机号
+     */
     @Column(name = "user_tel")
     private Long tel;
 
     @Column(name = "user_identity")
     private Integer identity;
 
-    @Column(name = "user_uu")
-    private Long userUU;
+    /**
+     * 用户在的公司
+     */
+    @Column(name = "user_company")
+    private String company;
+
+    @Column(name = "user_imid")
+    private Long userIMId;
+
+    /**
+     *用户所属类型
+     */
+    @Column(name = "user_type")
+    private String type;
 
-    public Long getId() {
-        return id;
+
+    public Long getUserUU() {
+        return userUU;
     }
 
-    public void setId(Long id) {
-        this.id = id;
+    public void setUserUU(Long userUU) {
+        this.userUU = userUU;
     }
 
     public String getName() {
@@ -42,6 +70,14 @@ public class User implements Serializable{
         this.name = name;
     }
 
+    public String getPwd() {
+        return pwd;
+    }
+
+    public void setPwd(String pwd) {
+        this.pwd = pwd;
+    }
+
     public Long getTel() {
         return tel;
     }
@@ -58,11 +94,27 @@ public class User implements Serializable{
         this.identity = identity;
     }
 
-    public Long getUserUU() {
-        return userUU;
+    public String getCompany() {
+        return company;
     }
 
-    public void setUserUU(Long userUU) {
-        this.userUU = userUU;
+    public void setCompany(String company) {
+        this.company = company;
+    }
+
+    public Long getUserIMId() {
+        return userIMId;
+    }
+
+    public void setUserIMId(Long userIMId) {
+        this.userIMId = userIMId;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
     }
 }

+ 20 - 0
donate-console/src/main/webapp/WEB-INF/views/index.html

@@ -168,6 +168,26 @@
             data.content && (window.location.href = data.content);
         });
     });
+
+    $(document).ready(function() {
+        var btn = document.getElementsByClassName('dropdown-toggle');
+        console.log(btn.length);
+        for (var i = 0; i < btn.length; i++) {
+            console.log(btn);
+            var sib = btn[i].nextElementSibling;
+            var flag = true;
+            console.log(btn[i].nextElementSibling);
+            btn[i].onclick = function () {
+                if (flag) {
+                    sib.style.display = 'none';
+                    flag = false
+                } else {
+                    sib.style.display = 'block';
+                    flag = true
+                }
+            }
+        }
+    });
 </script>
 </body>
 </html>

+ 10 - 5
donate-service/pom.xml

@@ -196,11 +196,16 @@
             <artifactId>weixin-java-mp</artifactId>
             <version>2.8.6.BETA</version>
         </dependency>
-<!--        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>3.5</version>
-        </dependency>-->
+        <dependency>
+            <groupId>com.uas.donate</groupId>
+            <artifactId>donate-console</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <!--        <dependency>
+                    <groupId>org.apache.commons</groupId>
+                    <artifactId>commons-lang3</artifactId>
+                    <version>3.5</version>
+                </dependency>-->
     </dependencies>
 
     <build>

+ 10 - 2
donate-service/src/main/java/com/uas/service/donate/controller/ActiveCenterController.java

@@ -1,9 +1,11 @@
 package com.uas.service.donate.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.uas.service.donate.model.Activity;
 import com.uas.service.donate.model.Award;
 import com.uas.service.donate.service.ActivityService;
 import com.uas.service.donate.service.AwardService;
+import com.uas.service.donate.service.CarouselService;
 import com.uas.service.donate.service.ProjectRecodeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -30,6 +32,9 @@ public class ActiveCenterController {
     @Autowired
     private AwardService awardService;
 
+    @Autowired
+    private CarouselService carouselService;
+
     /**
      * 返回一元捐活动列表freemarker页面
      * @param modelMap
@@ -44,13 +49,16 @@ public class ActiveCenterController {
                                  @RequestParam(value = "status", defaultValue = "全部") String status,
                                  @RequestParam(value = "search", required = false) String search,
                                  @RequestParam(value = "page", defaultValue = "0") int page,
-                                 @RequestParam(value = "size", defaultValue = "7") int size) {
+                                 @RequestParam(value = "size", defaultValue = "7") int size,
+                                 @RequestParam(value = "useFor",defaultValue ="donate")String useFor) {
         //得到历史参与总人数
         Long historyPerson = projectRecodeService.historyPerson();
         //得到历史参与总捐款额
         Double totality = projectRecodeService.totality();
 
         PageRequest pageable = new PageRequest(page, size);
+        //得到轮播图
+        List<JSONObject> carouselList=carouselService.getCarousels(useFor);
 
         //根据活动状态查询出所有活动
         if ("进行中".equals(status)) {
@@ -80,7 +88,7 @@ public class ActiveCenterController {
                 activity.setAwards(awardList);
             }
         }
-
+        modelMap.put("carouselList",carouselList);
         modelMap.put("historyPerson", historyPerson);
         modelMap.put("totality", totality);
         return "activeCenter";

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

@@ -1,21 +1,15 @@
 package com.uas.service.donate.controller;
 
 import com.uas.service.donate.model.Activity;
-import com.uas.service.donate.model.Award;
 import com.uas.service.donate.service.ActivityService;
 import com.uas.service.donate.service.AwardService;
 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.data.domain.Sort;
-import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.*;
 
-import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -109,4 +103,15 @@ public class ActivityController {
         return new ModelMap("sum",activityService.sumMoney(id));
     }
 
+
+    /**
+     * 获取当前登录用户参加活动资格
+     * @param id
+     * @return 0无资格  1有已参加
+     */
+    @ResponseBody
+    @RequestMapping(value = "/getQualification/{id}",method = RequestMethod.GET)
+    public ModelMap getQualification(@PathVariable("id") Long id) {
+        return new ModelMap("qualification",activityService.getQualification(id));
+    }
 }

+ 21 - 0
donate-service/src/main/java/com/uas/service/donate/controller/OrgController.java

@@ -3,6 +3,7 @@ package com.uas.service.donate.controller;
 import com.alibaba.fastjson.JSONObject;
 
 import com.uas.service.donate.model.Org;
+import com.uas.service.donate.model.Project;
 import com.uas.service.donate.service.OrgService;
 import com.uas.service.donate.util.FileUrl;
 import com.uas.service.donate.util.HttpUtils;
@@ -10,11 +11,13 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 @Controller
@@ -86,4 +89,22 @@ public class OrgController {
 
         return org;
     }
+
+    /**
+     * 计算该机构捐款总人次
+     */
+    @ResponseBody
+    @RequestMapping(value = "/sumJoinPerson", method = RequestMethod.GET)
+    public Long sumJoinPerson(@RequestParam("orgId") Long orgId){
+        return orgService.sumJoinPerson(orgId);
+    }
+
+    /**
+     * 计算该机构捐款总善款
+     */
+    @ResponseBody
+    @RequestMapping(value = "/findProjectsByOrg", method = RequestMethod.GET)
+    public Double sumTotalMoney(@RequestParam("orgId") Long orgId){
+        return orgService.sumTotalMoney(orgId);
+    }
 }

+ 14 - 2
donate-service/src/main/java/com/uas/service/donate/controller/ProjectRecodeController.java

@@ -1,8 +1,6 @@
 package com.uas.service.donate.controller;
 
 import com.alibaba.fastjson.JSONObject;
-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.ProjectRecodeService;
 import com.uas.service.donate.service.ProjectService;
@@ -50,6 +48,20 @@ public class ProjectRecodeController {
         return projectRecodeService.join(projectRecode);
     }
 
+    /**
+     * 参与捐款,重新设置项目捐款总额-mobile
+     * @param jsonStr
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/join/mobile",method = RequestMethod.POST)
+    public ProjectRecode joinMobile(Long imId, String jsonStr){
+
+        ProjectRecode projectRecode= JSONObject.parseObject(jsonStr,ProjectRecode.class);
+
+        return projectRecodeService.joinMobile(imId, projectRecode);
+    }
+
     /**
      * 计算历史捐款总额
      * @return

+ 7 - 0
donate-service/src/main/java/com/uas/service/donate/dao/ActivityRecodeDao.java

@@ -23,4 +23,11 @@ public interface ActivityRecodeDao extends JpaRepository<ActivityRecode,Long>,Jp
     @Query("select count(*) from ActivityRecode where  uuid=:uuid")
     Long sumJoin(@Param("uuid")Long uuid);
 
+    /**
+     * 根据活动id和用户id查找参与活动记录
+     * @param id
+     * @param userUU
+     * @return
+     */
+    ActivityRecode findByActivityIdAndUuid(Long id, Long userUU);
 }

+ 12 - 0
donate-service/src/main/java/com/uas/service/donate/dao/ProjectDao.java

@@ -79,4 +79,16 @@ public interface ProjectDao extends JpaRepository<Project,Long>,JpaSpecification
      */
     @Query("select sum(p.totalAmount) from Project p where p.status = 1 and p.publish = 1")
     Double findAllDonationHistory();
+
+    /**
+     * 查出某机构下的所有项目
+     */
+    @Query("from Project  p where p.orgId=:orgId")
+    List<Project> findProjectsByOrg(@Param("orgId") Long orgId);
+
+    /**
+     * 获取某项目的两个相关项目
+     */
+ /*   @Query("from Project p where p.type")
+    List<Project> findSimilar(@Param("id")Long id)*/
 }

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

@@ -8,4 +8,5 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface UserDao extends JpaRepository<User,Long>,JpaSpecificationExecutor<User>{
 
+    User findByUserIMId(Long imId);
 }

+ 2 - 1
donate-service/src/main/java/com/uas/service/donate/model/Activity.java

@@ -151,7 +151,8 @@ public class Activity implements Serializable{
     @OneToMany(cascade = CascadeType.REFRESH)
     private  List<Award> awards;
 
-    @OneToMany(cascade = CascadeType.REFRESH)
+    @OneToMany(mappedBy = "activity", cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)
+    @OrderBy("activityId")
     private List<ProjectQualification> projectQualificationList;
 
     public Long getId() {

+ 1 - 5
donate-service/src/main/java/com/uas/service/donate/model/Project.java

@@ -15,7 +15,7 @@ import java.util.Date;
 public class Project implements Serializable{
 
     private static final long serialVersionUID = 1L;
-    private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+    private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 
     /**
      * 项目编号
@@ -205,7 +205,6 @@ public class Project implements Serializable{
 
     /**
      * 是否是提交状态 (1 为草稿  2为提交)
-     * @return
      */
     @Column(name = "pro_publish")
     private Integer publish;
@@ -213,14 +212,12 @@ public class Project implements Serializable{
 
     /**
      * 项目已筹款金额
-     * @return
      */
     @Column(name = "pro_total_amount")
     private Double totalAmount;
 
     /**
      * 项目已支出
-     * @return
      */
     @Column(name = "pro_total_cost")
     private Double totalCost;
@@ -245,7 +242,6 @@ public class Project implements Serializable{
 
     /**
      * 是否已结束 (1已过期,0未过期)
-     * @return
      */
     @Transient
     private Short overdue;

+ 18 - 6
donate-service/src/main/java/com/uas/service/donate/model/ProjectQualification.java

@@ -1,5 +1,8 @@
 package com.uas.service.donate.model;
 
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
 import javax.persistence.*;
 
 @Entity
@@ -27,12 +30,12 @@ public class ProjectQualification {
     @Column(name = "actqua_pro_summary")
     private String projectSummary;
 
-//    /**
-//     * 活动
-//     */
-//    @ManyToOne(cascade = {CascadeType.MERGE, CascadeType.REFRESH})
-//    @JoinColumn(name = "actqua_act_id", nullable = false)
-//    private Activity activity;
+    /**
+     * 活动
+     */
+    @ManyToOne(cascade = {CascadeType.MERGE, CascadeType.REFRESH})
+    @JoinColumn(name = "actqua_act_id", nullable = false, insertable = false, updatable = false)
+    private Activity activity;
 
     public Long getId() {
         return id;
@@ -82,4 +85,13 @@ public class ProjectQualification {
         this.projectSummary = projectSummary;
     }
 
+    @JsonIgnore
+    @JSONField(serialize = false)
+    public Activity getActivity() {
+        return activity;
+    }
+
+    public void setActivity(Activity activity) {
+        this.activity = activity;
+    }
 }

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

@@ -35,4 +35,11 @@ public interface ActivityService {
     List<Activity> search(String search);
 
     Page<Activity> search(String search,Pageable pageable);
+
+    /**
+     * 获取当前登录用户参加活动资格
+     * @param id
+     * @return 0无资格  1已参加
+     */
+    Short getQualification(Long id);
 }

+ 6 - 0
donate-service/src/main/java/com/uas/service/donate/service/OrgService.java

@@ -8,4 +8,10 @@ public interface OrgService {
     Org save(Org org);
 
     Org findOne(Long id);
+
+    //计算该机构的捐款总人次
+    Long sumJoinPerson(Long orgId);
+
+    //计算该机构的捐款总数
+    Double sumTotalMoney(Long orgId);
 }

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

@@ -17,6 +17,8 @@ public interface ProjectRecodeService {
 
     ProjectRecode join(ProjectRecode projectRecode);
 
+    ProjectRecode joinMobile(Long imId, ProjectRecode projectRecode);
+
     void update(ProjectRecode projectRecode);
 
     //查询所有项目已筹集金额

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

@@ -61,4 +61,7 @@ public interface ProjectService {
     //根据area查询所有已结束项目
     Page<Project> findEndProjectArea(Pageable pageable,String area);
 
+    //找出某机构下面的所有项目
+    List<Project> findProjectsByOrg(Long orgId);
+
 }

+ 26 - 0
donate-service/src/main/java/com/uas/service/donate/service/impl/ActivityServiceImpl.java

@@ -1,9 +1,12 @@
 package com.uas.service.donate.service.impl;
 
 import com.uas.service.donate.dao.ActivityDao;
+import com.uas.service.donate.dao.ActivityRecodeDao;
 import com.uas.service.donate.dao.AwardDao;
 import com.uas.service.donate.model.Activity;
+import com.uas.service.donate.model.ActivityRecode;
 import com.uas.service.donate.model.Award;
+import com.uas.service.donate.model.SystemSession;
 import com.uas.service.donate.service.ActivityService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -22,6 +25,9 @@ public class ActivityServiceImpl implements ActivityService {
     @Autowired
     private AwardDao awardDao;
 
+    @Autowired
+    private ActivityRecodeDao activityRecodeDao;
+
     /**
      * 将活动关联的奖品存进活动字段
      * @return
@@ -111,4 +117,24 @@ public class ActivityServiceImpl implements ActivityService {
         return activityDao.search(search,pageable);
     }
 
+    /**
+     * 获取当前登录用户参加活动资格
+     *
+     * @param id 活动id
+     * @return 0无资格  1已参加
+     */
+    @Override
+    public Short getQualification(Long id) {
+        if (null != SystemSession.getUser()) {
+            Long userUU = SystemSession.getUser().getUserUU();
+            ActivityRecode record = activityRecodeDao.findByActivityIdAndUuid(id, userUU);
+            if (null == record) {
+                return 0;
+            } else {
+                return 1;
+            }
+        }
+        return 0;
+    }
+
 }

+ 32 - 0
donate-service/src/main/java/com/uas/service/donate/service/impl/OrgServiceImpl.java

@@ -3,9 +3,12 @@ package com.uas.service.donate.service.impl;
 import com.uas.service.donate.dao.OrgDao;
 import com.uas.service.donate.model.*;
 import com.uas.service.donate.service.OrgService;
+import com.uas.service.donate.service.ProjectService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 
 @Service
 public class OrgServiceImpl implements OrgService{
@@ -13,6 +16,9 @@ public class OrgServiceImpl implements OrgService{
     @Autowired
     private OrgDao orgDao;
 
+    @Autowired
+    private ProjectService projectService;
+
     public Org save(Org org){
         return orgDao.saveAndFlush(org);
     }
@@ -20,4 +26,30 @@ public class OrgServiceImpl implements OrgService{
     public Org findOne(Long id){
         return orgDao.findOne(id);
     }
+
+    //计算该机构的捐款总人次
+    public Long sumJoinPerson(Long orgId){
+        Long sumJoinPerson=0L;
+        List<Project>projects=projectService.findProjectsByOrg(orgId);
+        for(Project project:projects){
+            Long joinAmount=project.getJoinAmount();
+             if(joinAmount!=null){
+                 sumJoinPerson+=joinAmount;
+             }
+        }
+        return sumJoinPerson;
+    }
+
+    //计算该机构的捐款总数
+    public Double sumTotalMoney(Long orgId){
+        Double sumTotalMoney=0.0;
+        List<Project> projects=projectService.findProjectsByOrg(orgId);
+        for(Project project:projects){
+            Double totalAmount=project.getTotalAmount();
+            if(totalAmount!=null){
+                sumTotalMoney+=totalAmount;
+            }
+        }
+        return sumTotalMoney;
+    }
 }

+ 14 - 0
donate-service/src/main/java/com/uas/service/donate/service/impl/ProjectRecordServiceImpl.java

@@ -1,9 +1,11 @@
 package com.uas.service.donate.service.impl;
 
 import com.uas.service.donate.dao.ProjectRecodeDao;
+import com.uas.service.donate.dao.UserDao;
 import com.uas.service.donate.model.Org;
 import com.uas.service.donate.model.Project;
 import com.uas.service.donate.model.ProjectRecode;
+import com.uas.service.donate.model.User;
 import com.uas.service.donate.service.OrgService;
 import com.uas.service.donate.service.ProjectRecodeService;
 import com.uas.service.donate.service.ProjectService;
@@ -24,6 +26,9 @@ public class ProjectRecordServiceImpl implements ProjectRecodeService {
     @Autowired
     private OrgService orgService;
 
+    @Autowired
+    private UserDao userDao;
+
     public List<ProjectRecode> findByuuid(Long uuid) {
         return projectRecodeDao.findByuuid(uuid);
     }
@@ -72,6 +77,15 @@ public class ProjectRecordServiceImpl implements ProjectRecodeService {
         return projectRecodeDao.save(projectRecode);
     }
 
+    @Override
+    public ProjectRecode joinMobile(Long imId, ProjectRecode projectRecode) {
+        User user = userDao.findByUserIMId(imId);
+        if (null != user) {
+            projectRecode.setUuid(user.getUserUU());
+        }
+        return join(projectRecode);
+    }
+
     public void update(ProjectRecode projectRecode) {
         projectRecodeDao.save(projectRecode);
     }

+ 6 - 0
donate-service/src/main/java/com/uas/service/donate/service/impl/ProjectServiceImpl.java

@@ -171,4 +171,10 @@ public class ProjectServiceImpl implements ProjectService {
     }
 
 
+    //找出某机构下面的所有项目
+    public List<Project> findProjectsByOrg(Long orgId){
+        return projectDao.findProjectsByOrg(orgId);
+    }
+
+
 }

+ 58 - 0
donate-service/src/main/resources/config/application-prod.properties

@@ -0,0 +1,58 @@
+datasource.url=jdbc:mysql://192.168.253.12:3306/donate?characterEncoding=utf-8
+datasource.username=root
+datasource.password=select111***
+datasource.driverClassName=com.mysql.jdbc.Driver
+datasource.initialSize=3
+datasource.minIdle=1
+datasource.maxActive=20
+datasource.maxWait=60000
+datasource.timeBetweenEvictionRunsMillis=60000
+datasource.minEvictableIdleTimeMillis=300000
+datasource.validationQuery=SELECT 1 FROM DUAL
+datasource.testWhileIdle=true
+datasource.testOnBorrow=true
+datasource.testOnReturn=false
+datasource.poolPreparedStatements=true
+datasource.timeBetweenLogStatsMillis=60000
+datasource.maxPoolPreparedStatementPerConnectionSize=20
+datasource.filters=stat,slf4j
+datasource.connectionProperties=druid.stat.mergeSql=false;druid.stat.slowSqlMillis=5000
+
+security.basic.enabled=true
+security.basic.path=/service
+security.user.name=admin
+security.user.password=select111***
+security.user.role=ADMIN
+security.ignored=false
+
+## message config
+message.send.url=http://message.ubtob.com/sms/send
+message.tplInvitationForB2B=
+message.msgInvitationForB2B=
+
+
+
+### sso config
+#sso.app=donate
+## token secretkey
+#sso.secretkey=
+#sso.cookie.domain=.ubtob.com
+#sso.cookie.secure=false
+#sso.login.url=https://account.ubtob.com/sso/login
+
+
+
+spring.jpa.hibernate.show-sql= true  
+spring.jpa.hibernate.ddl-auto=update
+spring.jpa.hibernate.dialect=org.hibernate.dialect.5DiGlect  
+spring.jackson.serialization.indent_output=false  
+
+zk.url=zookeeper://10.10.100.11:2181
+dubbo.owner=dev
+dubbo.group=dev
+
+#设定ftl文件路径
+spring.freemarker.template-loader-path=classpath:/templates
+#设定静态文件路径,js,css等
+spring.mvc.static-path-pattern=/static/*
+spring.freemarker.cache=false

+ 18 - 7
donate-service/src/main/resources/templates/activeCenter.ftl

@@ -383,6 +383,17 @@
     <i></i>
 </div>
 <div ng-include src="'static/view/common/nav.html'"></div>
+<div id="nav">
+    <div class="container clearfix">
+        <div class="fl"><a href=""><img src="static/images/uas.png" alt=""/></a><span>一元捐</span></div>
+        <div class="fr">
+            <a href="https://account.ubtob.com/sso/login">登录</a>
+            <a href="javascript:void(0)">注册</a>
+            <a href="http://www.ubtob.com/" target="_blank">进入优软云</a>
+        </div>
+    </div>
+</div>
+
 <div class="main">
     <div class="container">
         <div class="section section1">
@@ -418,18 +429,18 @@
                         </a>
                     </div>
                     <div class="top-item">
-                        <a href="">
+                        <a href="/personalCenter">
                             <img src="static/images/index/icon_2.png" alt=""/>
                             <p>消息中心</p>
                             <em class="red"></em>
                         </a>
                     </div>
-                    <div class="top-item">
-                        <a href="">
-                            <img src="static/images/index/icon_3.png" alt=""/>
-                            <p>发起项目</p>
-                        </a>
-                    </div>
+                    <#--<div class="top-item">-->
+                        <#--<a href="selectInstitutionsNature">-->
+                            <#--<img src="static/images/index/icon_3.png" alt=""/>-->
+                            <#--<p>发起项目</p>-->
+                        <#--</a>-->
+                    <#--</div>-->
                 </div>
                 <div class="button">
                     <a href="/index"><span>项目中心</span></a><span class="active">活动中心</span>

+ 26 - 24
donate-service/src/main/resources/templates/index.ftl

@@ -12,7 +12,7 @@
     <link href="static/images/icon/u.png" rel="icon" type="image/x-icon" />
     <link rel="stylesheet" href="static/css/bootstrap.min.css">
     <link rel="stylesheet" href="static/css/base.css">
-    <link rel="stylesheet" type="text/css" href="static/css/kkpager_blue.css" />
+    <link rel="stylesheet" type="text/css" href="static/css/kkpager_orange.css" />
 
     <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
     <script type="text/javascript" src ="static/js/pay.js"></script>
@@ -346,7 +346,7 @@
         }
         .section2 .list-item .project-progress{
             width: 190px;
-            height: 130px;
+            /*height: 130px;*/
             margin: 15px 0 12px 0;
             padding-left: 20px;
             background: #f5f5f5;
@@ -355,21 +355,25 @@
             margin-bottom: 16px;
         }
         .section2 .list-item .project-progress div:first-child{
-            margin-top:26px;
+            margin-top:16px;
         }
         .section2 .list-item .project-progress div span{
-            font-size: 14px;
+            font-size: 13px;
             color: #787878;
         }
         .section2 .list-item .project-progress div span em{
-            font-size: 14px;
+            font-size: 13px;
             color: #323232;
             font-style: normal;
-            font-weight: bold;
+            /*font-weight: bold;*/
         }
-        .section2 .list-item .project-progress div:first-child span em {
-            font-weight: normal;
+        .section2 .list-item .project-progress div span em.red{
+            color: #ef613b;
+            font-weight: bold;
         }
+        /*.section2 .list-item .project-progress div:first-child span em {*/
+            /*font-weight: normal;*/
+        /*}*/
         .section2 .list-item a.donation{
             display: inline-block;
             width: 190px;
@@ -638,9 +642,6 @@
         .show{
             display: block;
         }
-        #kkpager {
-            margin-bottom: 130px!important;
-        }
         #carousel-fragment li {
             width: 12px;
             height: 12px;
@@ -714,18 +715,18 @@
                         </a>
                     </div>
                     <div class="top-item">
-                        <a href="personalCenter">
+                        <a href="/personalCenter">
                             <img src="static/images/index/icon_2.png" alt=""/>
                             <p>消息中心</p>
                             <em class="red"></em>
                         </a>
                     </div>
-                    <div class="top-item">
-                        <a href="selectInstitutionsNature">
-                            <img src="static/images/index/icon_3.png" alt=""/>
-                            <p>发起项目</p>
-                        </a>
-                    </div>
+                    <#--<div class="top-item">-->
+                        <#--<a href="selectInstitutionsNature">-->
+                            <#--<img src="static/images/index/icon_3.png" alt=""/>-->
+                            <#--<p>发起项目</p>-->
+                        <#--</a>-->
+                    <#--</div>-->
                 </div>
                 <div class="button">
                     <span class="active">项目中心</span><a href="activeCenter"><span>活动中心</span></a>
@@ -733,12 +734,12 @@
                 <!--切换&ndash;&gt;-->
                 <div class="buttons show">
                     <div class="bottom-item">
-                        <div class="title"><span>历史参加人</span></div>
+                        <div class="title"><span>历史参加人</span></div>
                         <div class="count"><span class="historyperson">${historyPerson!''}</span><span>人次</span></div>
                     </div>
                     <div class="bottom-item">
                         <div class="title"><span>历史捐款总额</span></div>
-                        <div class="count" style="margin-left: -10px;"><span class="totality">${totality!''}</span><span>元</span></div>
+                        <div class="count" style="margin-left: -14px;"><span class="totality">${totality!''}</span><span>元</span></div>
                     </div>
                 </div>
             </div>
@@ -783,9 +784,10 @@
                     <div><span>执&nbsp;行&nbsp;方:</span><span>${project.orgName!''}</span></div>
                 </div>
                 <div class="project-progress fr">
-                    <div><span>项目状态:<em>${project.overdue!''}</em></span></div>
-                    <div><span>已参与:<em>${project.joinAmount!'0'}</em>人</span></div>
-                    <div><span>已筹款:<em>${project.totalAmount!'0'}</em>元<#if project.target?exists><#if project.totalAmount?exists>(${project.totalAmount/project.target*100!''}%)</#if></#if></span></div>
+                    <div><span>状态:<em>${project.overdue!''}</em></span></div>
+                    <div><span>参与:<em>${project.joinAmount!'0'}</em>人</span></div>
+                    <div><span>筹款:<em class="red">${project.totalAmount!'0'}</em>元</span></div>
+                    <div><span>进度:<#if project.target?exists><#if project.totalAmount?exists>(${project.totalAmount/project.target*100!''}%)</#if></#if></span></div>
                 </div>
                     <a class="fr donation" onclick="donate(this)">我要捐款</a>
                 </div>
@@ -813,7 +815,7 @@
                             <div class="fl pay" id="pay-way">
                                 <div class="item active"><img src="static/images/zfb.png" alt=""/>支付宝</div>
                                 <div class="item"><img src="static/images/wx.png" alt=""/>微信支付</div>
-                                <div class="item"><img src="static/images/bank.png" alt=""/>网银支付</div>
+                                <#--<div class="item"><img src="static/images/bank.png" alt=""/>网银支付</div>-->
                             </div>
                         </div>
                         <div class="choose clearfix">

+ 1 - 1
donate-service/src/main/webapp/WEB-INF/views/donationsOver.html

@@ -179,7 +179,7 @@
                 <div class="item fl">
                     <p>捐款方式:微信支付</p>
                     <p>执行机构:深圳市优软科技有限公司</p>
-                    <p>参与活动:优软一元捐感恩活动03</p>
+                    <!--<p>参与活动:优软一元捐感恩活动03</p>-->
                 </div>
             </div>
             <div class="txt">捐款成功后自动参与<span>【优软一元捐感恩回馈07】</span>活动,将有机会获得丰厚奖品。<a href="">立即查看</a></div>

+ 1 - 1
donate-service/src/main/webapp/WEB-INF/views/personalCenter.html

@@ -809,7 +809,7 @@
     <div class="container">
         <div class="section">
           <div class="nav">
-              <span><a href="">项目列表</a></span><span>&gt;</span><span>个人中心</span>
+              <span><a href="/">首页</a></span><span>&gt;</span><span>个人中心</span>
           </div>
           <div class="personalCenter clearfix">
             <div class="personal-center fl">

+ 119 - 0
donate-service/src/main/webapp/resources/css/kkpager_orange.css

@@ -0,0 +1,119 @@
+#kkpager{
+	margin-top: 20px;
+	clear:both;
+	color:#999;
+	padding:5px 0px 5px 0px;
+	font-size:13px;
+}
+#kkpager a{
+	float: left;
+	border: 1px solid #ccc;
+	display: inline;
+	padding: 3px 10px 3px 10px;
+	margin-right: 5px;
+	border-radius: 3px;
+	-moz-border-radius: 3px;
+	-webkit-border-radius: 3px;
+	cursor: pointer;
+	background: #fff;
+	text-decoration:none;
+	color:#999;
+}
+
+#kkpager span.disabled{
+	float: left;
+	display: inline;
+	padding: 3px 10px 3px 10px;
+	margin-right: 5px;
+	border-radius: 3px;
+	-moz-border-radius: 3px;
+	-webkit-border-radius: 3px;
+	border:1px solid #DFDFDF;
+	background-color:#FFF;
+	color:#DFDFDF;
+}
+#kkpager span.curr{
+	float: left;
+	display: inline;
+	padding: 3px 10px 3px 10px;
+	margin-right: 5px;
+	border-radius: 3px;
+	-moz-border-radius: 3px;
+	-webkit-border-radius: 3px;
+	border: 1px solid #ef613b;
+	background: #ef613b;
+	color: #fff;
+}
+#kkpager a:hover{
+	border: 1px solid #ef613b;
+	background-color: #ef613b;
+	color: #fff;
+}
+#kkpager span.normalsize{
+}
+#kkpager_gopage_wrap{
+	position:relative;
+	left:0px;
+	top:0px;
+}
+#kkpager_btn_go {
+	margin:0px;
+	top: -4px;
+	margin-top: 0;
+	margin-left: 15px;
+	width: 45px;
+	height: 25px;
+	background: #ef613b;
+	border:0px;
+	overflow:hidden;
+	line-height:140%;
+	padding:0px;
+	text-align:center;
+	cursor:pointer;
+	color:#FFF;
+	position:absolute;
+	left:0px;
+	-moz-border-radius: 3px;
+	-webkit-border-radius: 3px;
+	display:none;
+}
+#kkpager_btn_go_input{
+	width: 30px;
+	height: 25px;
+	color:#999;
+	text-align:center;
+	margin-left:1px;
+	margin-right:1px;
+	border:1px solid #DFDFDF;
+	position:relative;
+	-moz-border-radius: 3px;
+	-webkit-border-radius: 3px;
+	left:0px;
+	top:0px;
+	outline:none;
+}
+
+#kkpager_btn_go_input.focus{
+	border-color:#FF6600;
+}
+
+#kkpager .pageBtnWrap{
+	float:left;
+}
+#kkpager .infoTextAndGoPageBtnWrap{
+	margin-left: 15px;
+	padding-top: 0;
+	float: left;
+}
+#kkpager .spanDot{
+	float:left;
+	margin-right:5px;
+}
+
+#kkpager .currPageNum{
+	color:#FD7F4D;
+}
+
+#kkpager .infoTextAndGoPageBtnWrap{
+	padding-top:0px;
+}

+ 5 - 0
donate-service/src/main/webapp/resources/js/common/query/Activity.js

@@ -48,6 +48,11 @@ define ([ 'ngResource' ], function() {
                 params: {
                     id: 'id'
                 }
+            },
+            // 获取当前登录人员资格
+            getQualification: {
+                url: 'activity/getQualification',
+                method: 'GET'
             }
         });
     }]);

+ 2 - 2
donate-service/src/main/webapp/resources/js/common/query/Project.js

@@ -78,9 +78,9 @@ define ([ 'ngResource' ], function() {
                 method: 'GET',
                 isArray : true
             },
-            // 捐款
+            // h5页面捐款
             donate : {
-              url : 'projectrecode/join',
+              url : 'projectrecode/join/mobile',
               method: 'POST'
             }
         });

+ 2 - 2
donate-service/src/main/webapp/resources/js/mobile/app.js

@@ -23,13 +23,13 @@ define([ 'angularAMD', 'ngRoute', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTab
     app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
         // $urlRouterProvider.otherwise("/project");
         $stateProvider.state("projectDetail", angularAMD.route({
-            url : '/project/detail/:id',
+            url : '/project/detail/:id/:imId',
             title : '项目详情',
             templateUrl : 'static/view/mobile/mobile_project_detail.html',
             controller : 'MobileProjectDetailCtrl',
             controllerUrl : 'app/controllers/MobileProjectDetailCtrl'
         })).state("activityDetail", angularAMD.route({
-            url : '/activity/detail/:id',
+            url : '/activity/detail/:id/:imId',
             title : '活动详情',
             templateUrl : 'static/view/mobile/mobile_activity_detail.html',
             controller : 'MobileActivityDetailCtrl',

+ 12 - 6
donate-service/src/main/webapp/resources/js/mobile/controllers/MobileActivityDetailCtrl.js

@@ -1,11 +1,12 @@
 define([ 'app/app' ], function(app) {
     'use strict';
 
-    app.register.controller('MobileActivityDetailCtrl', ['$scope', 'Activity', '$stateParams', '$http',
-        function ($scope, Activity, $stateParams, $http) {
+    app.register.controller('MobileActivityDetailCtrl', ['$scope', 'Activity', '$stateParams', '$http', 'toaster',
+        function ($scope, Activity, $stateParams, $http, toaster) {
 
+        var id = $stateParams.id;
+        var imId = $stateParams.imId;
         var init = function () {
-            var id = $stateParams.id;
 
             // 获取活动详情
             Activity.getDetailById({id: id}, {}, function(data) {
@@ -19,10 +20,15 @@ define([ 'app/app' ], function(app) {
             Activity.getThisAmount({id: id}, {}, function(data) {
                 $scope.donationHistory = data.sum;
             });
+
+            // 获取当前人员参加活动资格 (0无资格, 1有资格)
+            Activity.getQualification({id: id}, {}, function(data) {
+                $scope.qualification = data.qualification;
+            });
         };
         init();
 
-        // 验证领奖
+        //TODO 验证领奖
         $scope.verifyAward = function() {
             Activity.getActivityRecord({id: id}, {}, function(data) {
                 if (null == data) {
@@ -44,9 +50,9 @@ define([ 'app/app' ], function(app) {
             $scope.provinces = response.data;
         });
 
-        // 确认领奖
+        //TODO 确认领奖
         $scope.takeAward = function() {
-            Activity.takeAward({id:id}, {}, function(data) {
+            Activity.takeAward({id: id, imId: imId}, {}, function(data) {
                 if (data.success) {
                     $scope.awardStatus = 'success';
                 }

+ 7 - 5
donate-service/src/main/webapp/resources/js/mobile/controllers/MobileProjectDetailCtrl.js

@@ -4,8 +4,9 @@ define([ 'app/app' ], function(app) {
         function ($scope, $rootScope, Project, $stateParams, $http, toaster) {
         $rootScope.page = 'project';
 
+        var id = $stateParams.id;
+        var imId = $stateParams.imId;
         var init = function () {
-            var id = $stateParams.id;
 
             Project.getDetailById({ id: id}, {}, function (data) {
                 console.log('detail', data);
@@ -62,8 +63,8 @@ define([ 'app/app' ], function(app) {
 
         // 捐款记录
         $scope.record = {
-          amount: null,
-          way: null
+            amount: null,
+            way: null
         };
 
         $scope.setMoney = function(value) {
@@ -73,8 +74,9 @@ define([ 'app/app' ], function(app) {
         };
 
         // 捐款
-        $scope.donate = function(record) {
-            Project.donate({}, record, function (data) {
+        $scope.donate = function(id, record) {
+            record.proId = id;
+            Project.donate({imId: imId}, record, function (data) {
 
             }, function () {
                 toaster.pop('error', '出现错误,操作失败');

+ 11 - 2
donate-service/src/main/webapp/resources/view/mobile/mobile_activity_detail.html

@@ -157,13 +157,20 @@
     .footer a.attend{
         float: right;
         display: inline-block;
-        width: 3.1rem;
+        /*width: 3.1rem;*/
+        width: 100%;
         height: 1rem;
         font-size: .3rem;
         color: #fff;
         text-align: center;
         background: #a0a0a0;
     }
+    .footer a.opening{
+        background: #ef613b;
+    }
+    .footer a.doing{
+        background: #ef815c;
+    }
     .footer a.attend:active{
         text-decoration: none;
     }
@@ -250,7 +257,9 @@
             </div>
         </div>
         <div class="footer">
-            <a href="" class="attend">未参加活动</a>
+            <a class="attend" ng-if="qualification == 0">未参加活动</a>
+            <a class="attend doing" ng-if="qualification == 1 && activity.stage != '兑奖中'">{{activity.stage}}</a>
+            <a class="attend opening" ng-click="takeAward()" ng-if="qualification == 1 && activity.stage == '兑奖中'">领奖</a>
         </div>
     </div>
 </div>

+ 6 - 5
donate-service/src/main/webapp/resources/view/mobile/mobile_project_detail.html

@@ -33,7 +33,8 @@
     .footer a.attend{
         float: right;
         display: inline-block;
-        width: 3.1rem;
+        /*width: 3.1rem;*/
+        width: 100%;
         height: 1rem;
         font-size: .3rem;
         color: #fff;
@@ -509,7 +510,7 @@
         </div>
         <div class="footer">
             <!--<a href="" class="look"><img src="../static/images/mobile/list-ul.png" alt=""/>查看同类其他项目</a>-->
-            <a class="attend" ng-click="donate()">我要捐款</a>
+            <a class="attend" ng-click="donate(project.id, record)">我要捐款</a>
         </div>
     </div>
     <!--进度-->
@@ -541,7 +542,7 @@
         <!--</div>-->
         <div class="footer">
             <!--<a href="" class="look"><img src="../static/images/mobile/list-ul.png" alt=""/>查看同类其他项目</a>-->
-            <a href="" class="attend" ng-click="donate()">我要捐款</a>
+            <a href="" class="attend" ng-click="donate(project.id, record)">我要捐款</a>
         </div>
     </div>
     <!--活动-->
@@ -573,7 +574,7 @@
         </div>
         <div class="footer">
             <!--<a href="" class="look"><img src="../static/images/mobile/list-ul.png" alt=""/>查看同类其他项目</a>-->
-            <a href="" class="attend" ng-click="donate()">我要捐款</a>
+            <a href="" class="attend" ng-click="donate(project.id, record)">我要捐款</a>
         </div>
     </div>
     <!--机构-->
@@ -613,7 +614,7 @@
         </div>
         <div class="footer">
             <!--<a href="" class="look"><img src="../static/images/mobile/list-ul.png" alt=""/>查看同类其他项目</a>-->
-            <a href="" class="attend" ng-click="donate()">我要捐款</a>
+            <a href="" class="attend" ng-click="donate(project.id, record)">我要捐款</a>
         </div>
     </div>
     <!--结项报告-->

+ 1 - 1
donate-service/src/main/webapp/resources/view/project/donationsOver.html

@@ -182,7 +182,7 @@
                 <div class="item fl">
                     <p>捐款方式:{{projectRecode.way}}</p>
                     <p>执行机构:{{projectRecode.orgName}}</p>
-                    <p>参与活动:</p>
+                    <!--<p>参与活动:</p>-->
                 </div>
             </div>
             <div class="txt">捐款成功后自动参与<span>【优软一元捐感恩回馈07】</span>活动,将有机会获得丰厚奖品。<a href="">立即查看</a></div>