Prechádzať zdrojové kódy

微信支付成功自动参加活动添加;开奖修改。

dongbw 8 rokov pred
rodič
commit
180d8b8f4c
33 zmenil súbory, kde vykonal 311 pridanie a 151 odobranie
  1. 2 5
      donate-console/src/main/java/com/uas/console/donate/controller/ActivityController.java
  2. 10 7
      donate-console/src/main/java/com/uas/console/donate/model/Activity.java
  3. 1 1
      donate-console/src/main/java/com/uas/console/donate/service/ActivityService.java
  4. 9 2
      donate-console/src/main/java/com/uas/console/donate/service/impl/ActivityServiceImpl.java
  5. 2 1
      donate-console/src/main/webapp/resources/css/base.css
  6. 17 12
      donate-console/src/main/webapp/resources/js/index/app.js
  7. 2 2
      donate-console/src/main/webapp/resources/view/activity/activity_launch.html
  8. 5 5
      donate-console/src/main/webapp/resources/view/activity/activity_list.html
  9. 3 3
      donate-console/src/main/webapp/resources/view/project/project_list.html
  10. 0 5
      donate-console/src/main/webapp/resources/view/project/project_list_finance.html
  11. 0 6
      donate-console/src/main/webapp/resources/view/project/project_list_report.html
  12. 3 3
      donate-console/src/main/webapp/resources/view/user/organization_list.html
  13. 13 2
      donate-service/src/main/java/com/uas/service/donate/controller/ActivityRecodeController.java
  14. 2 2
      donate-service/src/main/java/com/uas/service/donate/controller/AppController.java
  15. 29 0
      donate-service/src/main/java/com/uas/service/donate/controller/UserController.java
  16. 1 1
      donate-service/src/main/java/com/uas/service/donate/dao/ProjectRecodeDao.java
  17. 4 1
      donate-service/src/main/java/com/uas/service/donate/model/Activity.java
  18. 1 1
      donate-service/src/main/java/com/uas/service/donate/service/ProjectRecodeService.java
  19. 6 0
      donate-service/src/main/java/com/uas/service/donate/service/UserService.java
  20. 5 4
      donate-service/src/main/java/com/uas/service/donate/service/impl/ProjectRecordServiceImpl.java
  21. 33 0
      donate-service/src/main/java/com/uas/service/donate/service/impl/UserServiceImpl.java
  22. 1 1
      donate-service/src/main/webapp/resources/js/activity/controllers/ActivityListCtrl.js
  23. 1 1
      donate-service/src/main/webapp/resources/js/approval/controllers/ApprovalCtrl.js
  24. 3 3
      donate-service/src/main/webapp/resources/js/common/query/User.js
  25. 6 0
      donate-service/src/main/webapp/resources/js/mobile/app.js
  26. 4 6
      donate-service/src/main/webapp/resources/js/mobile/controllers/MobileProjectDetailCtrl.js
  27. 19 0
      donate-service/src/main/webapp/resources/js/project/app.js
  28. 11 3
      donate-service/src/main/webapp/resources/js/user/controllers/UserCtrl.js
  29. 2 2
      donate-service/src/main/webapp/resources/view/activity/activity_detail.html
  30. 1 1
      donate-service/src/main/webapp/resources/view/common/nav.html
  31. 3 1
      donate-service/src/main/webapp/resources/view/mobile/mobile_project_detail.html
  32. 1 1
      donate-service/src/main/webapp/resources/view/project/project_detail.html
  33. 111 69
      donate-service/src/main/webapp/resources/view/user/user_center.html

+ 2 - 5
donate-console/src/main/java/com/uas/console/donate/controller/ActivityController.java

@@ -283,11 +283,8 @@ public class ActivityController {
      */
     @RequestMapping(value = "/openAward/{id}", method = RequestMethod.POST)
     @ResponseBody
-    public ResponseEntity<ModelMap> openAward(@PathVariable("id") Long id){
-        ModelMap map = new ModelMap();
-        Activity activity = activityService.openAward(id);
-        map.put("id", id);
-        return new ResponseEntity<ModelMap>(map, HttpStatus.OK);
+    public ModelMap openAward(@PathVariable("id") Long id){
+        return activityService.openAward(id);
     }
 
     /**

+ 10 - 7
donate-console/src/main/java/com/uas/console/donate/model/Activity.java

@@ -106,11 +106,11 @@ public class Activity implements Serializable{
     private Integer priority;
 
     /**
-     * 活动参人数
+     * 活动参人数
      * @return
      */
-    @Column(name="act_joined_person")
-    private Integer joinedPerson;
+    @Column(name = "act_joinAmount")
+    private Long joinAmount;
 
     /**
      * 活动中奖人数
@@ -356,12 +356,15 @@ public class Activity implements Serializable{
         this.actImg = actImg;
     }
 
-    public Integer getJoinedPerson() {
-        return joinedPerson;
+    public Long getJoinAmount() {
+        if (null != joinAmount) {
+            return joinAmount;
+        }
+        return (long) this.getActivityRecords().size();
     }
 
-    public void setJoinedPerson(Integer joinedPerson) {
-        this.joinedPerson = joinedPerson;
+    public void setJoinAmount(Long joinAmount) {
+        this.joinAmount = joinAmount;
     }
 
     public Long getUserUU() {

+ 1 - 1
donate-console/src/main/java/com/uas/console/donate/service/ActivityService.java

@@ -50,7 +50,7 @@ public interface ActivityService {
 
     ModelMap getActivitiesNum();
 
-    Activity openAward(Long activityId);
+    ModelMap openAward(Long activityId);
 
 
     List<Project> getActivityRelatedProjects(String keyword, List<String> proIds);

+ 9 - 2
donate-console/src/main/java/com/uas/console/donate/service/impl/ActivityServiceImpl.java

@@ -219,11 +219,18 @@ public class ActivityServiceImpl implements ActivityService{
     }
 
     @Override
-    public Activity openAward(Long activityId) {
+    public ModelMap openAward(Long activityId) {
         //TODO 开奖算法
+        ModelMap map = new ModelMap();
         Activity activity = activityDao.findOne(activityId);
+        if (activity.getActivityRecords().size() == 0) {
+            map.put("error", "该活动暂时无人参加,无法开奖!");
+            return map;
+        }
         activity.setLuckyTime(new Date());
-        return activityDao.save(activity);
+        activityDao.save(activity);
+        map.put("success", "开奖成功!");
+        return map;
     }
 
     @Override

+ 2 - 1
donate-console/src/main/webapp/resources/css/base.css

@@ -1,6 +1,7 @@
 *{box-sizing: border-box;padding: 0;margin:0; font-family: "Microsoft Yahei", "微软雅黑";}
 html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
-body,ol,table,tr,td,ul,li,dt,dd,dl,h1,h2,h3,h4,h5,h6,form,input,select,textarea,p,em,i,b,strong,span{font-size: 12px;font-weight: normal;list-style-type:none;font-style: inherit; padding-right: 0!important;}
+body,ol,table,tr,td,ul,li,dt,dd,dl,h1,h2,h3,h4,h5,h6,form,input,select,textarea,p,em,i,b,strong,span{font-size: 12px;font-weight: normal;list-style-type:none;font-style: inherit;}
+body{ padding-right: 0!important;}
 h1,h2,h3,h4,h5,h6{
 	margin: 0 !important;
 }

+ 17 - 12
donate-console/src/main/webapp/resources/js/index/app.js

@@ -2064,9 +2064,14 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
 
             // 开奖
             $scope.openAward = function(id) {
-                Activity.openAward({id: id}, {}, function() {
-                    toaster.pop('success', '开奖成功');
-                    $scope.activityParams.reload();
+                Activity.openAward({id: id}, {}, function(data) {
+                    if (data.success) {
+                        toaster.pop('success', data.success);
+                        $scope.activityParams.reload();
+                    }
+                    if (data.error) {
+                        toaster.pop('warning', data.error);
+                    }
                 }, function(response) {
                     toaster.pop('error', '数据加载错误');
                 });
@@ -2542,18 +2547,18 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
             $scope.setActive = function (value) {
                 if ($scope.active != value) {
                     $scope.active = value;
-                    if ($scope.activityParams.page() == 1)
-                        $scope.activityParams.reload();
+                    if ($scope.orgParams.page() == 1)
+                        $scope.orgParams.reload();
                     else
-                        $scope.activityParams.page(1);
+                        $scope.orgParams.page(1);
                 }
             };
 
             $scope.reload = function() {
-                if ($scope.activityParams.page() == 1)
-                    $scope.activityParams.reload();
+                if ($scope.orgParams.page() == 1)
+                    $scope.orgParams.reload();
                 else
-                    $scope.activityParams.page(1);
+                    $scope.orgParams.page(1);
             };
 
             $scope.orgParams = new ngTableParams({
@@ -2589,10 +2594,10 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
             });
 
             $scope.onSearch = function () {
-                if ($scope.activityParams.page() == 1)
-                    $scope.activityParams.reload();
+                if ($scope.orgParams.page() == 1)
+                    $scope.orgParams.reload();
                 else
-                    $scope.activityParams.page(1);
+                    $scope.orgParams.page(1);
             };
 
             var getNum = function() {

+ 2 - 2
donate-console/src/main/webapp/resources/view/activity/activity_launch.html

@@ -748,8 +748,8 @@
                                 <div class="award-detail clearfix">
                                     <span class="fl">赠送方式</span>
                                     <select name="" ng-model="award.way" class="form-control fl" ng-init="award.way = 1">
-                                        <option value="1">短信通知</option>
-                                        <option value="2">快递配送</option>
+                                        <option value="1">快递配送</option>
+                                        <option value="2">短信通知</option>
                                     </select>
                                     <!--<a class="edit-template fl" data-target="#redact" data-toggle="modal">编辑模板</a>-->
                                 </div>

+ 5 - 5
donate-console/src/main/webapp/resources/view/activity/activity_list.html

@@ -795,10 +795,10 @@
     <section class="content-header clearfix">
         <h1>活动列表</h1>
         <div class="all">
-            <span class="active" ng-click="setActive('done')">正在进行<em>({{doneNum}})</em><b class="line"></b></span>
-            <span ng-click="setActive('todo')">未开始<em>({{todoNum}})</em><b class="line"></b></span>
-            <span ng-click="setActive('end')">已结束<em>({{endNum}})</em><b class="line"></b></span>
-            <span ng-click="setActive('waiting')">草稿箱<em>({{waitingNum}})</em></span>
+            <span class="active" ng-click="setActive('done')">正在进行<em>({{doneNum || 0 | number}})</em><b class="line"></b></span>
+            <span ng-click="setActive('todo')">未开始<em>({{todoNum || 0 | number}})</em><b class="line"></b></span>
+            <span ng-click="setActive('end')">已结束<em>({{endNum || 0 | number}})</em><b class="line"></b></span>
+            <span ng-click="setActive('waiting')">草稿箱<em>({{waitingNum || 0 | number}})</em></span>
         </div>
         <form class="form-horizontal" method="POST" action="">
             <div class="input-group input-group-sm">
@@ -838,7 +838,7 @@
                             <td>
                                 <div class="name clearfix">
                                     <p class="fl" ng-click="showDetail(activity.id)">{{activity.name}}</p>
-                                    <div class="fl"><a ng-click="openAward(activity.id)" class="open-award">开奖</a></div>
+                                    <div class="fl" ng-if="active == 'done'"><a ng-click="openAward(activity.id)" class="open-award">开奖</a></div>
                                 </div>
                             </td>
                             <td>{{activity.sumconnect}}</td>

+ 3 - 3
donate-console/src/main/webapp/resources/view/project/project_list.html

@@ -725,9 +725,9 @@
         <h1>项目列表</h1>
         <div class="row content-row clearfix">
             <div class="all">
-                <span ng-class="{'active' : active == 'audited'}" ng-click="setState('audited')">已审核<em>({{auditedNum}})</em><b class="line"></b></span>
-                <span ng-class="{'active' : active == 'unaudited'}" ng-click="setState('unaudited')">未审核<em>({{unauditedNum}})</em><b class="line"></b></span>
-                <span ng-class="{'active' : active == 'disagreed'}" ng-click="setState('disagreed')">未通过<em>({{disagreedNum}})</em></span>
+                <span ng-class="{'active' : active == 'audited'}" ng-click="setState('audited')">已审核<em>({{auditedNum || 0 | number}})</em><b class="line"></b></span>
+                <span ng-class="{'active' : active == 'unaudited'}" ng-click="setState('unaudited')">未审核<em>({{unauditedNum || 0 | number}})</em><b class="line"></b></span>
+                <span ng-class="{'active' : active == 'disagreed'}" ng-click="setState('disagreed')">未通过<em>({{disagreedNum || 0 | number}})</em></span>
             </div>
             <!--<form class="form-horizontal" method="POST" action="">-->
             <div class="input-group input-group-sm fr">

+ 0 - 5
donate-console/src/main/webapp/resources/view/project/project_list_finance.html

@@ -745,11 +745,6 @@
     <section class="content-header clearfix">
         <div class="row content-row clearfix">
             <h1>项目列表</h1>
-            <!--<div class="all">-->
-                <!--<span class="active" ng-click="setState('audited')">已审核<em>({{numOfAudited}})</em><b class="line"></b></span>-->
-                <!--<span ng-click="setState('unaudited')">未审核<em>({{numOfUnaudited}})</em><b class="line"></b></span>-->
-                <!--<span ng-click="setState('disagreed')">未通过<em>({{numOfUnagreed}})</em></span>-->
-            <!--</div>-->
             <div style="float: right;" class="input-group input-group-sm">
                 <input id="post-search-input" class="form-control" type="search" ng-model="keyword" ng-search="onSearch()" value="" name="" placeholder="请输入关键词">&nbsp;&nbsp;
                 <input id="search-submit" class="btn btn-default btn-sm" type="submit" value="搜索" ng-click="onSearch()">

+ 0 - 6
donate-console/src/main/webapp/resources/view/project/project_list_report.html

@@ -747,12 +747,6 @@
     <section class="content-header clearfix">
         <div class="row content-row clearfix">
             <h1>项目列表</h1>
-            <!--<div class="all">-->
-                <!--<span class="active" ng-click="setState('audited')">已审核<em>({{numOfAudited}})</em><b class="line"></b></span>-->
-                <!--<span ng-click="setState('unaudited')">未审核<em>({{numOfUnaudited}})</em><b class="line"></b></span>-->
-                <!--<span ng-click="setState('disagreed')">未通过<em>({{numOfUnagreed}})</em></span>-->
-            <!--</div>-->
-            <!--<form class="form-horizontal" method="POST" action="">-->
             <div style="float:right;" class="input-group input-group-sm">
                 <input id="post-search-input" class="form-control" type="search" ng-model="keyword" ng-search="onSearch()" value="" name="" placeholder="请输入关键词">&nbsp;&nbsp;
                 <input id="search-submit" class="btn btn-default btn-sm" type="submit" value="搜索" ng-click="onSearch()">

+ 3 - 3
donate-console/src/main/webapp/resources/view/user/organization_list.html

@@ -487,9 +487,9 @@
         <h1>机构列表</h1>
         <div class="row content-row clearfix">
             <div class="all">
-                <span class="active" ng-click="setState('audited')">已审核<em>({{auditedNum}})</em><b class="line"></b></span>
-                <span ng-click="setState('unaudited')">未审核<em>({{unauditedNum}})</em><b class="line"></b></span>
-                <span ng-click="setState('disagreed')">未通过<em>({{disagreedNum}})</em></span>
+                <span class="active" ng-click="setState('audited')">已审核<em>({{auditedNum || 0 | number}})</em><b class="line"></b></span>
+                <span ng-click="setState('unaudited')">未审核<em>({{unauditedNum || 0 | number}})</em><b class="line"></b></span>
+                <span ng-click="setState('disagreed')">未通过<em>({{disagreedNum || 0 | number}})</em></span>
             </div>
             <div class="input-group input-group-sm">
                 <input id="post-search-input" class="form-control" type="search" ng-model="keyword" ng-search="onSearch()" value="" name="" placeholder="请输入关键词">&nbsp;&nbsp;

+ 13 - 2
donate-service/src/main/java/com/uas/service/donate/controller/ActivityRecodeController.java

@@ -1,6 +1,6 @@
 package com.uas.service.donate.controller;
 
-import com.uas.service.donate.model.Activity;
+import com.uas.service.donate.core.support.SystemSession;
 import com.uas.service.donate.model.ActivityRecode;
 import com.uas.service.donate.service.ActivityRecodeService;
 import com.uas.service.donate.service.ActivityService;
@@ -10,7 +10,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import java.util.Date;
 import java.util.List;
 
 @Controller
@@ -65,4 +64,16 @@ public class ActivityRecodeController {
         return activityRecodeService.receive(activityId,uuid);
     }
 
+    /**
+     * 付款完毕后调用,参加对应活动
+     * @param projectRecodeId
+     */
+    @ResponseBody
+    @RequestMapping(value = "/joinAfterDonate",method = RequestMethod.POST)
+    public void joinAfterDonate(Long projectRecodeId){
+        if (null != SystemSession.getUser().getUserUU()) {
+            activityRecodeService.joinAfterDonate(projectRecodeId, SystemSession.getUser().getUserUU());
+        }
+    }
+
 }

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

@@ -116,7 +116,7 @@ public class AppController {
         Long sumJoin=projectRecodeService.sumJoin(user.getUserUU());
         modelMap.put("sumJoin",sumJoin);
         //捐赠的善款总数
-        Long sumMoney=projectRecodeService.sumMoney(user.getUserUU());
+        Double sumMoney=projectRecodeService.sumMoney(user.getUserUU());
         modelMap.put("sumMoney",sumMoney);
         return modelMap;
     }
@@ -147,7 +147,7 @@ public class AppController {
         ModelMap modelMap=new ModelMap();
         modelMap.put("user",user);
         //捐赠的善款总数
-        Long sumMoney=projectRecodeService.sumMoney(user.getUserUU());
+        Double sumMoney=projectRecodeService.sumMoney(user.getUserUU());
         modelMap.put("sumMoney",sumMoney);
         //计算某人参与的活动总数
         Long sumActJoin=activityRecodeService.sumJoin(user.getUserUU());

+ 29 - 0
donate-service/src/main/java/com/uas/service/donate/controller/UserController.java

@@ -16,11 +16,40 @@ public class UserController {
     @Autowired
     private UserService userService;
 
+    /**
+     * 根据imid获取用userUU
+     * @param imId
+     * @return
+     */
     @RequestMapping(value = "/getUserUUByImId/{imId}", method = RequestMethod.GET)
     @ResponseBody
     public ModelMap getUserUUByImId (@PathVariable("imId") Long imId) {
         return new ModelMap("userUU", userService.getUserByImId(imId));
     }
 
+    @RequestMapping(value = "/getUserHistory", method = RequestMethod.GET)
+    @ResponseBody
+    public ModelMap getUserHistory () {
+        ModelMap map = new ModelMap();
+        map.put("joinedProjectNum", userService.getJoinedProjectNum());
+        map.put("joinedActivityNum", userService.getJoinedActivityNum());
+        map.put("sumDonation", userService.getSumDonation());
+        return map;
+    }
+
+
+//TODO message
+//    @RequestMapping(value = "/getMessage", method = RequestMethod.GET)
+//    @ResponseBody
+//    public Page<Message> getMessage () {
+//        return new ModelMap("userUU", userService.getMessage());
+//    }
+
+//    @RequestMapping(value = "/getUnreadMessageNum", method = RequestMethod.GET)
+//    @ResponseBody
+//    public ModelMap getUnreadMessageNum () {
+//        return new ModelMap("unreadMessage", userService.getUnreadMessageNum());
+//    }
+
 
 }

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

@@ -22,7 +22,7 @@ public interface ProjectRecodeDao extends JpaRepository<ProjectRecode,Long>,JpaS
 
     //计算某人捐赠的总善款
     @Query("select sum(amount) from ProjectRecode where uuid=:uuid")
-    Long sumMoney(@Param("uuid")Long uuid);
+    Double sumMoney(@Param("uuid")Long uuid);
 
     //查询所有项目已筹集金额
     @Query("select  sum(amount) from ProjectRecode where status=2")

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

@@ -348,7 +348,10 @@ public class Activity implements Serializable{
     }
 
     public Long getJoinAmount() {
-        return joinAmount;
+        if (null != joinAmount) {
+            return joinAmount;
+        }
+        return (long) this.getActivityRecords().size();
     }
 
     public void setJoinAmount(Long joinAmount) {

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

@@ -28,7 +28,7 @@ public interface ProjectRecodeService {
 	 * @param uuid
 	 * @return
 	 */
-	Long sumMoney(Long uuid);
+	Double sumMoney(Long uuid);
 
     ProjectRecode join(ProjectRecode projectRecode);
 

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

@@ -13,4 +13,10 @@ public interface UserService {
      * @return
      */
     User getUserByImId(Long imId);
+
+    Long getJoinedProjectNum();
+
+    Integer getJoinedActivityNum();
+
+    Double getSumDonation();
 }

+ 5 - 4
donate-service/src/main/java/com/uas/service/donate/service/impl/ProjectRecordServiceImpl.java

@@ -1,9 +1,8 @@
 package com.uas.service.donate.service.impl;
 
+import com.uas.service.donate.core.support.SystemSession;
 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;
@@ -49,12 +48,14 @@ public class ProjectRecordServiceImpl implements ProjectRecodeService {
 	 * @param uuid
 	 * @return
 	 */
-	public Long sumMoney(Long uuid) {
+	public Double sumMoney(Long uuid) {
         return projectRecodeDao.sumMoney(uuid);
     }
 
     public ProjectRecode join(ProjectRecode projectRecode) {
-
+		if (SystemSession.getUser() != null) {
+			projectRecode.setUuid(SystemSession.getUser().getUserUU());
+		}
         //设置项目待支付状态
         projectRecode.setStatus((short) 1);
 

+ 33 - 0
donate-service/src/main/java/com/uas/service/donate/service/impl/UserServiceImpl.java

@@ -1,6 +1,9 @@
 package com.uas.service.donate.service.impl;
 
 import com.uas.account.util.AccountUtils;
+import com.uas.service.donate.core.support.SystemSession;
+import com.uas.service.donate.dao.ActivityRecodeDao;
+import com.uas.service.donate.dao.ProjectRecodeDao;
 import com.uas.service.donate.dao.UserDao;
 import com.uas.service.donate.model.User;
 import com.uas.service.donate.service.UserService;
@@ -13,6 +16,12 @@ public class UserServiceImpl implements UserService {
     @Autowired
     private UserDao userDao;
 
+    @Autowired
+    private ActivityRecodeDao activityRecodeDao;
+
+    @Autowired
+    private ProjectRecodeDao projectRecodeDao;
+
     //返回某人个人信息
     public User findOne(Long id){
         return userDao.findOne(id);
@@ -42,4 +51,28 @@ public class UserServiceImpl implements UserService {
         }
         return null;
     }
+
+    @Override
+    public Long getJoinedProjectNum() {
+        if (null != SystemSession.getUser()) {
+            return projectRecodeDao.sumJoin(SystemSession.getUser().getUserUU());
+        }
+        return null;
+    }
+
+    @Override
+    public Integer getJoinedActivityNum() {
+        if (null != SystemSession.getUser()) {
+            return activityRecodeDao.findByUuid(SystemSession.getUser().getUserUU()).size();
+        }
+        return null;
+    }
+
+    @Override
+    public Double getSumDonation() {
+        if (null != SystemSession.getUser()) {
+            return projectRecodeDao.sumMoney(SystemSession.getUser().getUserUU());
+        }
+        return null;
+    }
 }

+ 1 - 1
donate-service/src/main/webapp/resources/js/activity/controllers/ActivityListCtrl.js

@@ -50,7 +50,7 @@ define([ 'app/app' ], function(app) {
                 Activity[getState($scope.active)].call(null, BaseService.parseParams(pageParams), function (page) {
                     $scope.loading = false;
                     if (page) {
-                        params.total(page.totalElement);
+                        params.total(page.totalElements);
                         $defer.resolve(page.content);
                         // $scope.keywordXls = angular.copy($scope.keyword); // 保存当前取值的关键词  做导出时需要的字段
                     }

+ 1 - 1
donate-service/src/main/webapp/resources/js/approval/controllers/ApprovalCtrl.js

@@ -50,7 +50,7 @@ define([ 'app/app' ], function(app) {
                 Approval[getState($scope.active)].call(null, BaseService.parseParams(pageParams), function (page) {
                     $scope.loading = false;
                     if (page) {
-                        params.total(page.totalElement);
+                        params.total(page.totalElements);
                         $defer.resolve(page.content);
                         // $scope.keywordXls = angular.copy($scope.keyword); // 保存当前取值的关键词  做导出时需要的字段
                     }

+ 3 - 3
donate-service/src/main/webapp/resources/js/common/query/User.js

@@ -14,17 +14,17 @@ define ([ 'ngResource' ], function() {
             },
             // 获取消息
             getMessage: {
-                url: '',
+                url: 'user/getMessage',
                 method: 'GET'
             },
             // 获取人员历史记录
             getUserHistory: {
-                url: '',
+                url: 'user/getUserHistory',
                 method: 'GET'
             },
             // 获取消息未读数量
             getUnreadMessageNum: {
-                url: '',
+                url: 'user/getUnreadMessageNum',
                 method: 'GET'
             },
             // 根据imId 获取 uuid

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

@@ -28,6 +28,12 @@ define([ 'angularAMD', 'ngRoute', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTab
             templateUrl : 'static/view/mobile/mobile_project_detail.html',
             controller : 'MobileProjectDetailCtrl',
             controllerUrl : 'app/controllers/MobileProjectDetailCtrl'
+        })).state("project_detail_sharing", angularAMD.route({
+            url : '/project/detail/:id',
+            title : '项目详情分享页',
+            templateUrl : 'static/view/mobile/mobile_project_detail.html',
+            controller : 'MobileProjectDetailCtrl',
+            controllerUrl : 'app/controllers/MobileProjectDetailCtrl'
         })).state("activityDetail", angularAMD.route({
             url : '/activity/detail/:id/:imId',
             title : '活动详情',

+ 4 - 6
donate-service/src/main/webapp/resources/js/mobile/controllers/MobileProjectDetailCtrl.js

@@ -4,8 +4,10 @@ define([ 'app/app' ], function(app) {
         function ($scope, $rootScope, Project, $stateParams, $http, toaster, User, $sce) {
         $rootScope.page = 'project';
         var id = $stateParams.id;
-        var imId = $stateParams.imId;
-        $scope.uuid = null;
+        $scope.imId = null;
+        if (!angular.isUndefined($stateParams.imId)) {
+            $scope.imId = $stateParams.imId;
+        }
         var init = function () {
 
             Project.getDetailById({ id: id}, {}, function (data) {
@@ -61,10 +63,6 @@ define([ 'app/app' ], function(app) {
             Project.getCarousels({useFor: useFor}, {}, function(data) {
                 $scope.carousels = data;
             });
-
-            User.getUserUUByImId({imId : imId}, {}, function(data) {
-                $scope.uuid = data.userUU;
-            });
         };
         init();
 

+ 19 - 0
donate-service/src/main/webapp/resources/js/project/app.js

@@ -108,6 +108,8 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
                 },
                 success : function(res){
                     if ("SUCCESS" == res) {
+                        // 如果验证成功,且已登录就自动参加活动。
+                        joinActivityAfterDonate(outTradeNo);
                         self.clearInterval(orderInterval);
                         window.location.href = "http://lj.ubtob.com/project#/donationsOver/" + outTradeNo;
                     } else if ("WAITING" == res) {
@@ -125,6 +127,23 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
             });
         }
 
+        var joinActivityAfterDonate = function(outTradeNo) {
+            $.ajax({
+                type : "POST",
+                url : "/activityRecode/joinAfterDonate",
+                dataType : "json",
+                data: {
+                    projectRecodeId : outTradeNo
+                },
+                success : function(){
+                    console.log("捐款完成,自动参加活动成功");
+                },
+                error : function () {
+                    console.log("捐款完成,自动参加活动失败");
+                }
+            });
+        };
+
 
         function getCookie(key){
             var arr1 = document.cookie.split('; ');

+ 11 - 3
donate-service/src/main/webapp/resources/js/user/controllers/UserCtrl.js

@@ -20,8 +20,8 @@ define([ 'app/app' ], function(app) {
         return fn;
     };
 
-    app.register.controller('UserCtrl', ['$scope', 'toaster', 'User', 'ngTableParams', 'BaseService',
-        function ($scope, toaster, User, ngTableParams, BaseService) {
+    app.register.controller('UserCtrl', ['$scope', 'toaster', 'User', 'ngTableParams', 'BaseService', 'AuthenticationService',
+        function ($scope, toaster, User, ngTableParams, BaseService, AuthenticationService) {
         BaseService.scrollBackToTop();
         // 根据标签获取不同数据
         $scope.tableParams = new ngTableParams({
@@ -48,7 +48,7 @@ define([ 'app/app' ], function(app) {
                 User[getState($scope.active)].call(null, BaseService.parseParams(pageParams), function (page) {
                     $scope.loading = false;
                     if (page) {
-                        params.total(page.totalElement);
+                        params.total(page.totalElements);
                         $defer.resolve(page.content);
                         // $scope.keywordXls = angular.copy($scope.keyword); // 保存当前取值的关键词  做导出时需要的字段
                     }
@@ -61,6 +61,14 @@ define([ 'app/app' ], function(app) {
 
         // 获取历史数据
         var loadData = function() {
+            // 获取已登录的用户信息
+            AuthenticationService.getAuthentication().success(function(data) {
+                if(data && data.content) {
+                    $scope.user = data.content;
+                }
+                // $scope.isAuthed = data !== null && !angular.isUndefined(data.content);
+            });
+
             User.getUserHistory({}, {}, function(data) {
                 $scope.joinedProjectNum = data.joinedProjectNum;
                 $scope.joinedActivityNum = data.joinedActivityNum;

+ 2 - 2
donate-service/src/main/webapp/resources/view/activity/activity_detail.html

@@ -684,12 +684,12 @@
                             <option value="">省</option>
                         </select>
                         <select class="area-select" ng-model="activityRecord.city"
-                                          ng-options="key as key for (key,value) in provinces[ship.province]"
+                                          ng-options="key as key for (key,value) in provinces[activityRecord.province]"
                                           ng-change="ship.district='';" required="true">
                             <option value="">市</option>
                         </select>
                         <select class="area-select" ng-model="activityRecord.district"
-                                      ng-options="value as value for value in provinces[ship.province][ship.city]"
+                                      ng-options="value as value for value in provinces[activityRecord.province][activityRecord.city]"
                                       required="true">
                             <option value="">区</option>
                         </select>

+ 1 - 1
donate-service/src/main/webapp/resources/view/common/nav.html

@@ -22,7 +22,7 @@
             <a href="http://www.ubtob.com" target="_blank">进入优软云</a>
         </div>
         <div class="fr" ng-if="isAuthed">
-            <a><span ng-bind="userInfo.name"></span><i class="fa fa-user fa-lg"></i></a>
+            <a href="/userCenter"><span ng-bind="userInfo.name"></span><i class="fa fa-user fa-lg"></i></a>
             <a ng-click="logout()">退出</a>
             <a href="http://www.ubtob.com" target="_blank">进入优软云</a>
         </div>

+ 3 - 1
donate-service/src/main/webapp/resources/view/mobile/mobile_project_detail.html

@@ -981,7 +981,9 @@
                     </div>
                 </div>
                 <div class="btn">
-                    <button type="button" ng-disabled="donationForm.$invalid || !checked || record.amount == null || record.amount == 0"  onclick="pay(angular.element(this).scope().project.id, angular.element(this).scope().record.amount, angular.element(this).scope().record.way, angular.element(this).scope().uuid)">立即捐款</button>
+                    <button type="button" ng-disabled="donationForm.$invalid || !checked || record.amount == null || record.amount == 0"
+                            onclick="pay(angular.element(this).scope().project.id, angular.element(this).scope().record.amount,
+                            angular.element(this).scope().record.way, angular.element(this).scope().imId)">立即捐款</button>
                 </div>
             </form>
         </div>

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

@@ -842,7 +842,7 @@
                         <!--<span class="fl best">我的祝福:</span>
                         <textarea ng-model="projectRecord.bless" cols="30" rows="10" class="fl form-control" maxlength="300"></textarea>-->
                         <div class="fl agree clearfix">
-                            <input type="checkbox" class="fl" required ng-checked="checked" ng-click="changeChecked()"><span class="fl">111同意并接受《<a href="/userAgreement" target="_blank" style="color: #5078cb;">优软一元捐用户协议</a>》</span>
+                            <input type="checkbox" class="fl" required ng-checked="checked" ng-click="changeChecked()"><span class="fl">同意并接受《<a href="/userAgreement" target="_blank" style="color: #5078cb;">优软一元捐用户协议</a>》</span>
                         </div>
                     </div>
                     <button type="button" ng-disabled="donationForm.$invalid || !checked || projectRecord.amount == 0" onclick="pay(angular.element(this).scope().project.id, angular.element(this).scope().projectRecord.amount, angular.element(this).scope().projectRecord.way)" style="margin-top: 15px;">确认捐款</button>

+ 111 - 69
donate-service/src/main/webapp/resources/view/user/user_center.html

@@ -784,30 +784,30 @@
                         </div>
                     </div>
                     <div class="detail">
-                        <div class="name"><img src="static/images/name.png" alt=""/><span ng-bind="user.userName"></span></div>
+                        <div class="name"><img src="static/images/name.png" alt=""/><span ng-bind="user.name"></span></div>
                         <div class="item clearfix">
                             <span class="fl">联系电话:</span>
-                            <span class="fl" ng-bind="user.userTel"></span>
+                            <span class="fl" ng-bind="user.tel"></span>
                         </div>
-                        <div class="item clearfix">
-                            <span class="fl">所在公司:</span>
-                            <span class="fl" ng-bind="user.enName"></span>
-                        </div>
-                        <div class="item clearfix">
-                            <span class="fl">居住地址:</span>
-                            <span class="fl overTop">{{user.address}}</span>
+                        <div ng-if="user.org != null" class="item clearfix">
+                            <span class="fl">所属机构:</span>
+                            <span class="fl" ng-bind="user.org.name"></span>
                         </div>
+                        <!--<div class="item clearfix">-->
+                            <!--<span class="fl">居住地址:</span>-->
+                            <!--<span class="fl overTop">{{user.address}}</span>-->
+                        <!--</div>-->
                         <div class="item items clearfix">
                             <span class="fl">参与项目:</span>
-                            <span class="fl part"><em>{{joinedProjectNum}}</em>个</span>
+                            <span class="fl part"><em>{{joinedProjectNum || 0 | number}}</em>次</span>
                         </div>
                         <div class="item items clearfix">
                             <span class="fl">参与活动:</span>
-                            <span class="fl part"><em>{{joinedActivityNum}}</em>个</span>
+                            <span class="fl part"><em>{{joinedActivityNum || 0 | number}}</em>个</span>
                         </div>
                         <div class="item items clearfix">
                             <span class="fl">捐赠善款:</span>
-                            <div class="count"><span>{{sumDonation}}</span><span>元</span></div>
+                            <div class="count"><span>{{sumDonation || 0 | number:2}}</span><span>元</span></div>
                         </div>
                     </div>
                 </div>
@@ -828,6 +828,20 @@
                                 <td width="150">项目状态</td>
                             </tr>
                             </thead>
+                            <tbody ng-if="tableParams.total() == 0">
+                            <tr>
+                                <td colspan="6">
+                                    <div class="section noSearch">
+                                        <div class="img">
+                                            <img src="static/images/noSearch.png" alt=""/>
+                                        </div>
+                                        <div class="txt">
+                                            <p>没有找到符合条件的内容</p>
+                                        </div>
+                                    </div>
+                                </td>
+                            </tr>
+                            </tbody>
                             <tbody ng-repeat="projectRecord in $data">
                             <tr>
                                 <td>{{$index + 1}}</td>
@@ -879,6 +893,20 @@
                                 <td width="150">活动状态</td>
                             </tr>
                             </thead>
+                            <tbody ng-if="tableParams.total() == 0">
+                            <tr>
+                                <td colspan="6">
+                                    <div class="section noSearch">
+                                        <div class="img">
+                                            <img src="static/images/noSearch.png" alt=""/>
+                                        </div>
+                                        <div class="txt">
+                                            <p>没有找到符合条件的内容</p>
+                                        </div>
+                                    </div>
+                                </td>
+                            </tr>
+                            </tbody>
                             <tbody ng-repeat="activityRecord in $data">
                             <tr>
                                 <td>{{$index + 1}}</td>
@@ -920,6 +948,20 @@
                                 <td width="400">内容</td>
                             </tr>
                             </thead>
+                            <tbody ng-if="tableParams.total() == 0">
+                            <tr>
+                                <td colspan="6">
+                                    <div class="section noSearch">
+                                        <div class="img">
+                                            <img src="static/images/noSearch.png" alt=""/>
+                                        </div>
+                                        <div class="txt">
+                                            <p>没有找到符合条件的内容</p>
+                                        </div>
+                                    </div>
+                                </td>
+                            </tr>
+                            </tbody>
                             <tbody ng-repeat="message in $data">
                             <tr class="news-list">
                                 <td class="read">{{$index + 1}}<em ng-class="{'red':message.readStatus != 1}"></em></td>
@@ -951,63 +993,63 @@
         </div>
     </div>
 </div>
-<!--登录弹出框-->
-<div class="login modal" role='dialog' id='login'>
-    <div class="modal-dialog">
-        <div class="modal-content">
-            <div class="header modal-header clearfix">
-                <p class="fl">请登录</p>
-                <div class="close fr" data-dismiss="modal">&times;</div>
-            </div>
-            <div class="body modal-body">
-                <div class="x-login">
-                    <div class="x-login-header">
-                        <div class="x-login-tab fl" aria-controls="qrcode-wrap" aria-left="0">
-                            <a href="javascript:void(0)"> 扫码登录 </a>
-                        </div>
-                        <div class="x-login-tab active fr" aria-controls="form-wrap" aria-left="50%">
-                            <a href="javascript:void(0)"> 账户登录 </a>
-                        </div>
-                    </div>
-                    <!-- qrcode login wrap -->
-                    <div id="qrcode-wrap" class="x-login-qrcode show-form">
-                        <div class="x-qrcode-help">
-                            <span>打开手机客户端,扫描下面的二维码</span>
-                        </div>
-                        <div class="x-qrcode-img">
-                            <img src="static/images/qrcode.png">
-                        </div>
-                    </div>
-                    <!-- user & pwd login wrap -->
-                    <div id="form-wrap" class="x-login-form show-form show">
-                        <form name="loginForm">
-                            <input type="hidden" name="appId" value="mall"> <input type="hidden" name="returnUrl" value=""> <input type="hidden" name="spaceId" value="">
-                            <div class="form-group">
-                                <div class="x-has-feedback-left">
-                                    <input type="text" class="form-control x-input" placeholder="手机号/邮箱" name="username" required=""><i class="fa fa-user" aria-hidden="true"></i>
-                                </div>
-                            </div>
-                            <div class="form-group">
-                                <div class="x-has-feedback-left">
-                                    <input type="password" class="form-control x-input" placeholder="密码" name="password" required=""> <i class="fa fa-lock" aria-hidden="true"></i>
-                                </div>
-                            </div>
-                            <div class="form-group">
-                                <div>
-                                    <button class="btn x-btn x-btn-primary btn-block" type="button">登录</button>
-                                </div>
-                            </div>
-                        </form>
-                        <div class="x-login-help clearfix">
-                            <a href="https://account.ubtob.com/user/pwd" class="fl"><i class="iconfont icon-left icon-question"></i>忘记密码</a>
-                            <a href="https://account.ubtob.com/sso/register" class="fr"><i class="iconfont icon-left icon-arrow"></i>免费注册</a>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
+<!--登录弹出框-->  <!-- 未使用 -->
+<!--<div class="login modal" role='dialog' id='login'>-->
+    <!--<div class="modal-dialog">-->
+        <!--<div class="modal-content">-->
+            <!--<div class="header modal-header clearfix">-->
+                <!--<p class="fl">请登录</p>-->
+                <!--<div class="close fr" data-dismiss="modal">&times;</div>-->
+            <!--</div>-->
+            <!--<div class="body modal-body">-->
+                <!--<div class="x-login">-->
+                    <!--<div class="x-login-header">-->
+                        <!--<div class="x-login-tab fl" aria-controls="qrcode-wrap" aria-left="0">-->
+                            <!--<a href="javascript:void(0)"> 扫码登录 </a>-->
+                        <!--</div>-->
+                        <!--<div class="x-login-tab active fr" aria-controls="form-wrap" aria-left="50%">-->
+                            <!--<a href="javascript:void(0)"> 账户登录 </a>-->
+                        <!--</div>-->
+                    <!--</div>-->
+                    <!--&lt;!&ndash; qrcode login wrap &ndash;&gt;-->
+                    <!--<div id="qrcode-wrap" class="x-login-qrcode show-form">-->
+                        <!--<div class="x-qrcode-help">-->
+                            <!--<span>打开手机客户端,扫描下面的二维码</span>-->
+                        <!--</div>-->
+                        <!--<div class="x-qrcode-img">-->
+                            <!--<img src="static/images/qrcode.png">-->
+                        <!--</div>-->
+                    <!--</div>-->
+                    <!--&lt;!&ndash; user & pwd login wrap &ndash;&gt;-->
+                    <!--<div id="form-wrap" class="x-login-form show-form show">-->
+                        <!--<form name="loginForm">-->
+                            <!--<input type="hidden" name="appId" value="mall"> <input type="hidden" name="returnUrl" value=""> <input type="hidden" name="spaceId" value="">-->
+                            <!--<div class="form-group">-->
+                                <!--<div class="x-has-feedback-left">-->
+                                    <!--<input type="text" class="form-control x-input" placeholder="手机号/邮箱" name="username" required=""><i class="fa fa-user" aria-hidden="true"></i>-->
+                                <!--</div>-->
+                            <!--</div>-->
+                            <!--<div class="form-group">-->
+                                <!--<div class="x-has-feedback-left">-->
+                                    <!--<input type="password" class="form-control x-input" placeholder="密码" name="password" required=""> <i class="fa fa-lock" aria-hidden="true"></i>-->
+                                <!--</div>-->
+                            <!--</div>-->
+                            <!--<div class="form-group">-->
+                                <!--<div>-->
+                                    <!--<button class="btn x-btn x-btn-primary btn-block" type="button">登录</button>-->
+                                <!--</div>-->
+                            <!--</div>-->
+                        <!--</form>-->
+                        <!--<div class="x-login-help clearfix">-->
+                            <!--<a href="https://account.ubtob.com/user/pwd" class="fl"><i class="iconfont icon-left icon-question"></i>忘记密码</a>-->
+                            <!--<a href="https://account.ubtob.com/sso/register" class="fr"><i class="iconfont icon-left icon-arrow"></i>免费注册</a>-->
+                        <!--</div>-->
+                    <!--</div>-->
+                <!--</div>-->
+            <!--</div>-->
+        <!--</div>-->
+    <!--</div>-->
+<!--</div>-->
 <script>
 
     $(document).ready(function (){