Browse Source

mobile项目详情和活动详情部分修改提交

dongbw 8 years ago
parent
commit
b5f4615775
19 changed files with 152 additions and 41 deletions
  1. 10 5
      donate-service/pom.xml
  2. 11 6
      donate-service/src/main/java/com/uas/service/donate/controller/ActivityController.java
  3. 14 2
      donate-service/src/main/java/com/uas/service/donate/controller/ProjectRecodeController.java
  4. 7 0
      donate-service/src/main/java/com/uas/service/donate/dao/ActivityRecodeDao.java
  5. 1 0
      donate-service/src/main/java/com/uas/service/donate/dao/UserDao.java
  6. 2 1
      donate-service/src/main/java/com/uas/service/donate/model/Activity.java
  7. 0 4
      donate-service/src/main/java/com/uas/service/donate/model/Project.java
  8. 18 6
      donate-service/src/main/java/com/uas/service/donate/model/ProjectQualification.java
  9. 7 0
      donate-service/src/main/java/com/uas/service/donate/service/ActivityService.java
  10. 2 0
      donate-service/src/main/java/com/uas/service/donate/service/ProjectRecodeService.java
  11. 26 0
      donate-service/src/main/java/com/uas/service/donate/service/impl/ActivityServiceImpl.java
  12. 14 0
      donate-service/src/main/java/com/uas/service/donate/service/impl/ProjectRecordServiceImpl.java
  13. 5 0
      donate-service/src/main/webapp/resources/js/common/query/Activity.js
  14. 2 2
      donate-service/src/main/webapp/resources/js/common/query/Project.js
  15. 2 2
      donate-service/src/main/webapp/resources/js/mobile/app.js
  16. 12 6
      donate-service/src/main/webapp/resources/js/mobile/controllers/MobileActivityDetailCtrl.js
  17. 6 4
      donate-service/src/main/webapp/resources/js/mobile/controllers/MobileProjectDetailCtrl.js
  18. 11 2
      donate-service/src/main/webapp/resources/view/mobile/mobile_activity_detail.html
  19. 2 1
      donate-service/src/main/webapp/resources/view/mobile/mobile_project_detail.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>

+ 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));
+    }
 }

+ 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);
 }

+ 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() {

+ 0 - 4
donate-service/src/main/java/com/uas/service/donate/model/Project.java

@@ -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);
 }

+ 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);
 
     //查询所有项目已筹集金额

+ 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;
+    }
+
 }

+ 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);
     }

+ 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';
                 }

+ 6 - 4
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,9 @@ define([ 'app/app' ], function(app) {
 
         // 捐款记录
         $scope.record = {
-          amount: null,
-          way: null
+            amount: null,
+            way: null,
+            proId : $scope.project.id
         };
 
         $scope.setMoney = function(value) {
@@ -74,7 +76,7 @@ define([ 'app/app' ], function(app) {
 
         // 捐款
         $scope.donate = function(record) {
-            Project.donate({}, record, function (data) {
+            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>

+ 2 - 1
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;