Commit 9173d5a5 by biao

111

parent 6761e7c2
No related merge requests found
No preview for this file type
No preview for this file type
......@@ -97,6 +97,8 @@ define("THEME_IMAGES_PATH", COMPASS_ROOT . "/data/media");
define("GOVERNMENT_QR_MAX_COUNT", 5);
// 领导注册用二维码可用的时间(生成时间开始+天数)
define("GOVERNMENT_QR_MAX_DAY", 7);
// 最大可创建圈子数量
define("MAX_CIRCLE_COUNT", 3);
// ポップアップの窓が画像最低サイズ
define("POPUP_WINDOW_IMAGE_MIN_WIDTH", 480);
......
......@@ -8,11 +8,12 @@ ErrorLogger::doOutput("Compass...ajax_attend_volunteer_event_circle.php....Start
//获取参数
$unionId = ParamUtil::getRequestString("unionId");
$eventId = ParamUtil::getRequestNumber("eventId", 0);
$circleIds = ParamUtil::getRequestString("circleIds");
$result = array();
//参数检查
if(empty($unionId) || empty($eventId)) {
if(empty($unionId) || empty($eventId)|| empty($circleIds)) {
$result["message"] = "参数错误!";
responseNG($result);
}
......@@ -27,6 +28,8 @@ if(empty($userList)) {
responseNG($result);
}
$userMst = $userList[0];
//查询志愿者活动
$volunteerDat = VolunteerEventDat::getById($eventId);
if(empty($volunteerDat)) {
......@@ -34,8 +37,6 @@ if(empty($volunteerDat)) {
responseNG($result);
}
$userMst = $userList[0];
//是否已经报名
$param = array();
$param['volunteer_event_id'] = $eventId;
......@@ -47,55 +48,59 @@ if(!empty($tmpList)) {
responseNG($result);
}
//查找圈子信息
$param = array();
$param['owner_id'] = $userMst->id;
$param['delete_flg'] = false;
$tmpCircleDatList = CircleDat::getList($param, "id", "asc", 0, 1);
if(empty($tmpCircleDatList)) {
$result["message"] = "不是圈主!";
//分解获取圈子id参数
$tmpArray = explode("|",$circleIds);
$circleIdArray = array_filter($tmpArray);
if(empty($circleIdArray)) {
$result["message"] = "参数错误!";
responseNG($result);
}
$circleDat = $tmpCircleDatList[0];
//报名顺序
$param = array();
$param['volunteer_event_id'] = $userMst->id;
$param['delete_flg'] = false;
$tmpCount = VolunteerEventMemberDat::getListCount($param);
$indexNo = sprintf("%05d", $tmpCount+1);
//报名表插入数据
$volunteerEventMemberDat = new VolunteerEventMemberDat();
$volunteerEventMemberDat->volunteer_event_id = $volunteerDat->id;
$volunteerEventMemberDat->user_id = $userMst->id;
$volunteerEventMemberDat->circle_id = $circleDat->id;
$volunteerEventMemberDat->is_owner = true;
$volunteerEventMemberDat->index_no = $indexNo;
$volunteerEventMemberDat->mobile = $userMst->mobile;
$volunteerEventMemberDat->save();
//查找圈子成员,给圈子成员发送邀请消息
$param = array();
$param['circle_id'] = $circleDat->id;
$param['user_id_NOT'] = $userMst->id;//不包含自己
$param['delete_flg'] = false;
$tmpCircleMemberList = CircleMemberDat::getList($param);
if(!empty($tmpCircleMemberList)) {
foreach($tmpCircleMemberList as $tmpCircleMember) {
$userMessageDat = new UserMessageDat();
$userMessageDat->user_id = $tmpCircleMember->user_id;
$userMessageDat->title = "活动参加邀请通知";
$userMessageDat->comment = "嘀嘀嘀!圈主邀请您参加活动,快点击参加报名吧!";
//添加附件附件
$userMessageDat->attach_dat_type = "VOLUNTEER";
$userMessageDat->attach_dat_id = $circleDat->id;
$userMessageDat->attach_dat_path = "/pages/volunteersEventDetail/volunteersEventDetail?eventId={$volunteerDat->id}&circleId={$circleDat->id}";
$userMessageDat->save();
//循环处理圈子报名
foreach($circleIdArray as $circleId) {
$circleDat = CircleDat::getById($circleId);
if(empty($circleDat)) {
continue;
}
//报名顺序
$param = array();
$param['volunteer_event_id'] = $eventId;
$param['delete_flg'] = false;
$tmpCount = VolunteerEventMemberDat::getListCount($param);
$indexNo = sprintf("%05d", $tmpCount+1);
//报名表插入数据
$volunteerEventMemberDat = new VolunteerEventMemberDat();
$volunteerEventMemberDat->volunteer_event_id = $eventId;
$volunteerEventMemberDat->user_id = $userMst->id;
$volunteerEventMemberDat->circle_id = $circleId;
$volunteerEventMemberDat->is_owner = true;
$volunteerEventMemberDat->index_no = $indexNo;
$volunteerEventMemberDat->mobile = $userMst->mobile;
$volunteerEventMemberDat->save();
//查找圈子成员,给圈子成员发送邀请消息
$param = array();
$param['circle_id'] = $circleId;
$param['user_id_NOT'] = $userMst->id;//不包含自己
$param['delete_flg'] = false;
$tmpCircleMemberList = CircleMemberDat::getList($param);
if(!empty($tmpCircleMemberList)) {
foreach($tmpCircleMemberList as $tmpCircleMember) {
$userMessageDat = new UserMessageDat();
$userMessageDat->user_id = $tmpCircleMember->user_id;
$userMessageDat->title = "活动参加邀请通知";
$userMessageDat->comment = "嘀嘀嘀!圈主邀请您参加活动,快点击参加报名吧!";
//添加附件附件
$userMessageDat->attach_dat_type = "VOLUNTEER";
$userMessageDat->attach_dat_id = $circleDat->id;
$userMessageDat->attach_dat_path = "/pages/volunteersEventDetail/volunteersEventDetail?eventId={$eventId}&circleId={$circleId}";
$userMessageDat->save();
}
}
}
}
ErrorLogger::doOutput("Compass...ajax_attend_volunteer_event_circle.php....End.", 0);
......
......@@ -41,32 +41,32 @@ $param = array();
$param['volunteer_event_id'] = $eventId;
$param['user_id'] = $userMst->id;
$param['delete_flg'] = false;
$tmpVolunteerEventMemberList = VolunteerEventMemberDat::getList($param, "id", "desc", 0, 1);
$tmpVolunteerEventMemberList = VolunteerEventMemberDat::getList($param, "id", "desc");
if(empty($tmpVolunteerEventMemberList)) {
$result["message"] = "数据错误!";
responseNG($result);
}
$volunteerEventMemberDat = $tmpVolunteerEventMemberList[0];
//个人报名直接取消
if($volunteerEventMemberDat->circle_id == 0) {
$volunteerEventMemberDat->delete_flg = true;
$volunteerEventMemberDat->save();
} else {
//圈子报名
if($volunteerEventMemberDat->is_owner) {
//圈主取消的情况下,取消所有成员报名
$circleId = $volunteerEventMemberDat->circle_id;
$sql = "update volunteer_event_member_dat set delete_flg=true where delete_flg=false and volunteer_event_id='{$eventId}' and circle_id='{$circleId}'";
$db = &CompassDBManager::getInstance();
$db->executeQuery($sql);
} else {
//成员取消参加,之取消自己的的参加
foreach($tmpVolunteerEventMemberList as $volunteerEventMemberDat) {
//个人报名直接取消
if($volunteerEventMemberDat->circle_id == 0) {
$volunteerEventMemberDat->delete_flg = true;
$volunteerEventMemberDat->save();
} else {
//圈子报名
if($volunteerEventMemberDat->is_owner) {
//圈主取消的情况下,取消所有成员报名
$circleId = $volunteerEventMemberDat->circle_id;
$sql = "update volunteer_event_member_dat set delete_flg=true where delete_flg=false and volunteer_event_id='{$eventId}' and circle_id='{$circleId}'";
$db = &CompassDBManager::getInstance();
$db->executeQuery($sql);
} else {
//圈子成员只取消自己的的参加
$volunteerEventMemberDat->delete_flg = true;
$volunteerEventMemberDat->save();
}
}
}
ErrorLogger::doOutput("Compass...ajax_cancel_volunteer_event_personal.php....End.", 0);
......
......@@ -37,31 +37,16 @@ if(empty($userList)) {
$userMst = $userList[0];
//是否已经有圈子
//检查圈子数量
$param = array();
$param['owner_id'] = $userMst->id;
$param['delete_flg'] = false;
$circleCount = CircleDat::getListCount($param);
if($circleCount > 0 && !DEBUG_MODE) {
$result["message"] = "只能创建一个圈子!";
if($circleCount >= MAX_CIRCLE_COUNT) {
$result["message"] = "最多只能创建" + MAX_CIRCLE_COUNT + "个圈子!";
responseNG($result);
}
if(DEBUG_MODE) {
$param = array();
$param['owner_id'] = $userMst->id;
$param['delete_flg'] = false;
$circleList = CircleDat::getList($param, "id", "desc", 0, 1);
if(!empty($circleList)) {
$circleDat = $circleList[0];
//返回数据
$result["message"] = "重复建圈子!";
$result["circleDat"] = $circleDat;
responseOK($result);
}
}
//建立圈子
$circleDat = new CircleDat();
$circleDat->title = $title;
......
......@@ -112,7 +112,15 @@ $param = array();
$param['delete_flg'] = false;
$mediaList = CourseMediaDat::getList($param,'id','desc', 0, 3);
//未读消息数量
$param = array();
$param['user_id'] = $userMst->id;
$param['is_read'] = false;
$param['delete_flg'] = false;
$unreadMessageCount = UserMessageDat::getListCount($param);
//组装返回数据
$result["unreadMessageCount"] = $volunteerEventList;
$result["volunteerEventList"] = $volunteerEventList;
$result["familyEventList"] = $familyEventList;
$result["socialEventList"] = $socialEventList;
......
......@@ -51,13 +51,14 @@ if(!empty($tmpList)) {
}
}
//该用户是否为圈主
//该用户是否为圈主以及获取该用户所有自建圈子
$isCircleOwner = false;
$ownerCircleList = array();
$param = array();
$param['owner_id'] = $userMst->id;
$param['delete_flg'] = false;
$tmpCount = CircleDat::getListCount($param);
if($tmpCount > 0) {
$ownerCircleList = CircleDat::getList($param, "id", "desc");
if(!empty($ownerCircleList)) {
$isCircleOwner = true;
}
......@@ -80,12 +81,12 @@ $tmpMemberList1 = VolunteerEventMemberDat::getList($param, "id", "desc");
if(!empty($tmpMemberList1)) {
foreach($tmpMemberList1 as $tmpMember) {
$tmpUser = UserMst::getById($tmpMember->user_id);
$tmpArray= array("name"=>$tmpUser->name);
$tmpArray= array("name"=>$tmpUser->name, "header_img"=>$tmpUser->header_img );
$personalMemberList[] = $tmpArray;
}
}
//【圈子】
//【圈子已报名成员
$param = array();
$param['volunteer_event_id'] = $userMst->id;
$param['circle_id_MIN'] = 1;
......@@ -121,6 +122,7 @@ if($volunteerDat->include_social_user) {
$result["isEnrollFinish"] = $isEnrollFinish;
$result["isComplete"] = $isComplete;
$result["isCircleOwner"] = $isCircleOwner;
$result["ownerCircleList"] = $ownerCircleList;
$result["isMember"] = $isMember;
$result["volunteerEventDat"] = $volunteerDat;
$result["personalMemberList"] = $personalMemberList;
......
......@@ -18,9 +18,12 @@ Page({
isCircleOwner: false,
isMember: false,
isCircleOwner: false,
personalMemberList:[],
circleMemberList:[],
ownerCircleList:[],//圈主拥有的圈子列表
checkCircleIndex:[],//临时记录圈子选中状态
personalMemberList:[],//个人已报名
circleMemberList:[],//已报名团体
menuText:'',
showOwnerDialog:false,
showActionButton:false
},
......@@ -53,10 +56,23 @@ Page({
isEnrollFinish: res.data.result.isEnrollFinish,
isComplete: res.data.result.isComplete,
isCircleOwner: res.data.result.isCircleOwner,
ownerCircleList: res.data.result.ownerCircleList,
isMember: res.data.result.isMember,
personalMemberList: res.data.result.personalMemberList,
circleMemberList: res.data.result.circleMemberList
circleMemberList: res.data.result.circleMemberList,
showOwnerDialog: false
})
//设定选择的默认状态
if (res.data.result.isCircleOwner) {
var tmp = [];
for (var i = 0; i < res.data.result.ownerCircleList.length;i++) {
tmp[i] = false;
}
that.setData({
checkCircleIndex: tmp
})
}
//按钮文字控制
if (res.data.result.isMember == false && res.data.result.isEnrollFinish==false){
that.setData({
......@@ -101,107 +117,49 @@ Page({
onShareAppMessage: function () {
},
//点击选中圈子或者取消
onClickCircle(e) {
// e.detail 为当前输入的值
var index = e.currentTarget.dataset['index'];
var tmp = this.data.checkCircleIndex;
//赋值选中状态
if (tmp[index] != e.detail) {
tmp[index] = e.detail;
}
this.setData({
checkCircleIndex: tmp
})
},
//点击切换
onChange(event) {
},
//报名参加
//圈主返回
back(event) {
wx.navigateBack({
delta: 1,
})
},
//按钮事件处理
userAction(e){
var that = this;
var config = wx.getStorageSync('config');
//获取按钮上面的文字.
//圈主的情况下,显示圈主报名对话框
if (that.data.isCircleOwner && that.data.menuText =="报名参加") {
//圈主身份的时候报名处理,弹出选择对话框
Dialog.confirm({
title: '',
message: '检测到您为圈主,是否团队报名?',
confirmButtonText:'是',
cancelButtonText:'否'
}).then(() => {
//调用团队报名接口
wx.request({
url: app.url + 'ajax_attend_volunteer_event_circle.php',
data: {
unionId: config.unionId,
eventId: that.data.eventId,
circleId: that.data.circleId
},
header: { 'content-type': 'application/json' },
method: 'GET',
dataType: 'json',
success: function (res) {
console.log(res)
if (res.statusCode == 200) {
Notify({ type: 'success', message: res.data.result.message });
//如果报名成功则刷新本页面
if (res.data.status == "OK") {
that.onLoad();
}
}
},
fail: function (res) {
Notify({ type: 'danger', message: res.data.result.message });
},
complete: function (res) { },
})
}).catch(() => {
//调用个人报名接口
wx.request({
url: app.url + 'ajax_attend_volunteer_event_personal.php',
data: {
unionId: config.unionId,
eventId: that.data.eventId,
circleId: that.data.circleId
},
header: { 'content-type': 'application/json' },
method: 'GET',
dataType: 'json',
success: function (res) {
console.log(res)
if (res.statusCode == 200) {
Notify({ type: 'success', message: res.data.result.message });
//如果报名成功则刷新本页面
if (res.data.status == "OK") {
that.onLoad();
}
}
},
fail: function (res) {
Notify({ type: 'danger', message: res.data.result.message });
},
complete: function (res) { },
})
});
that.setData({
showOwnerDialog: true,
})
}
//个人报名【非圈主】
if (!that.data.isCircleOwner && that.data.menuText == "报名参加") {
//非圈主身份的时候个人报名处理
wx.request({
url: app.url +'ajax_attend_volunteer_event_personal.php',
data: {
unionId: config.unionId,
eventId: that.data.eventId,
circleId: that.data.circleId
},
header: { 'content-type': 'application/json'},
method: 'GET',
dataType: 'json',
success: function(res) {
console.log(res)
if(res.statusCode==200){
Notify({ type: 'success', message: res.data.result.message });
//如果报名成功则刷新本页面
if (res.data.status == "OK") {
that.onLoad();
}
}
},
fail: function(res) {
Notify({ type: 'danger', message: res.data.result.message });
},
complete: function(res) {},
})
that.personalEnroll();
}
if (that.data.menuText == "取消报名") {
......@@ -248,85 +206,83 @@ Page({
Notify({ type: 'danger', message: '取消报名' });
});
}
},
//个人报名
personalEnroll() {
var that = this;
var config = wx.getStorageSync('config');
wx.request({
url: app.url + 'ajax_attend_volunteer_event_personal.php',
data: {
unionId: config.unionId,
eventId: that.data.eventId,
circleId: that.data.circleId
},
header: { 'content-type': 'application/json' },
method: 'GET',
dataType: 'json',
success: function (res) {
console.log(res)
if (res.statusCode == 200) {
Notify({ type: 'success', message: res.data.result.message });
//如果报名成功则刷新本页面
if (res.data.status == "OK") {
that.onLoad();
}
}
},
fail: function (res) {
Notify({ type: 'danger', message: res.data.result.message });
},
complete: function (res) { },
})
},
// if(this.data.zhuangtai=='报名参加'){
// if(this.data.isOwner==true){
// Dialog.confirm({
// title: '',
// message: '检测到您为圈主,是否团队报名?',
// confirmButtonText:'是',
// cancelButtonText:'否'
// }).then(() => {
// Dialog.confirm({
// title: '',
// message: '是否团队报名?'
// }).then(() => {
// wx: wx.request({
// url: app.url + 'ajax_attend_volunteer_event_circle.php',
// header: { 'content-type': 'application/json' },
// method: 'GET',
// dataType: 'json',
// success: function (res) {
// if (res.statusCode == 200) {
// Notify({ type: 'success', message: '成功团队报名?' });
// }
// },
// fail: function (res) {
// Notify({ type: 'danger', message: '团队报名失败' });},
// complete: function (res) { },
// })
// }).catch(() => {
// Notify({ type: 'danger', message: '取消团队报名?' });
// });
// }).catch(() => {
// Dialog.confirm({
// title: '',
// message: '是否个人报名?'
// }).then(() => {
// wx:wx.request({
// url: app.url +'ajax_attend_volunteer_event_personal.php',
// header: { 'content-type': 'application/json'},
// method: 'GET',
// dataType: 'json',
// success: function(res) {
// console.log(res)
// if(res.statusCode==200){
// Notify({ type: 'success', message: '成功个人报名?' });
// }
// },
// fail: function(res) {
// Notify({ type: 'danger', message: '个人报名失败' });
// },
// complete: function(res) {},
// })
// }).catch(() => {
// Notify({ type: 'danger', message: '取消个人报名?' });
// });
// });
// }
// }
//团体报名
circleEnroll() {
var that = this;
var config = wx.getStorageSync('config');
//获取选中的圈子id
var haveSelected = false;
var circleIds = "";
for(var i=0;i<that.data.checkCircleIndex.length;i++) {
if (that.data.checkCircleIndex[i] == true) {
haveSelected = true
circleIds += "|" + that.data.ownerCircleList[i].id
}
}
if (haveSelected==false) {
Notify('请选择圈子')
return;
}
//调用接口
wx.request({
url: app.url + 'ajax_attend_volunteer_event_circle.php',
data: {
unionId: config.unionId,
eventId: that.data.eventId,
circleIds: circleIds
},
header: { 'content-type': 'application/json' },
method: 'GET',
dataType: 'json',
success: function (res) {
console.log(res)
if (res.statusCode == 200) {
Notify({ type: 'success', message: res.data.result.message });
//如果报名成功则刷新本页面
if (res.data.status == "OK") {
that.onLoad();
}
}
},
fail: function (res) {
Notify({ type: 'danger', message: res.data.result.message });
},
complete: function (res) { },
})
}
})
// wx: wx.request({
// url: app.url + 'ajax_cancel_volunteer_event_personal.php',
// header: { 'content-type': 'application/json' },
// data:{
// unionId: config.unionId,
// age:4
// },
// method: 'GET',
// dataType: 'json',
// success: function (res) {
// console.log(res)
// if (res.statusCode == 200) {
// Notify({ type: 'success', message: '成功取消报名?' });
// }
// },
// fail: function (res) {
// Notify({ type: 'danger', message: '取消报名失败' });
// },
// complete: function (res) { },
// })
}
})
\ No newline at end of file
......@@ -69,6 +69,21 @@
</van-tabs>
<view class='actionBtn' bindtap='userAction' wx:if="{{showActionButton}}">{{menuText}}</view>
</view>
<view class="ownerAttendDialog" wx:if="{{showOwnerDialog}}">
<view class="dialogMsg">检测到您为圈主身份,是否以圈主身份参加,确认后,邀请参加信息会通知您的圈内成员?</view>
<view class="circleList">
<view class="circleItem" wx:for="{{ownerCircleList}}" wx:for-index="i">
<van-checkbox value="{{ checkCircleIndex[i] }}" shape="square" bind:change="onClickCircle" icon-size="16px" data-index="{{i}}"/>
<view class="circleName">{{item.title}}</view>
</view>
</view>
<view class="buttonRow">
<view class="button" bindtap="circleEnroll">确认</view>
<view class="button" bindtap="personalEnroll">个人参加</view>
<view class="button" bindtap="back">返回</view>
</view>
</view>
</view>
<van-dialog id="van-dialog" />
<van-notify id="van-notify" />
......@@ -101,4 +101,69 @@
margin-bottom: 10px;
color: #fff;
border-radius: 15px;
}
/**圈主报名对话框**/
.ownerAttendDialog{
position: fixed;
bottom: 100px;
width: 90%;
margin-left:5%;
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
text-align: left;
z-index: 99;
color: #363636;
background:#fff;
border: 1rpx solid #969696;
}
.ownerAttendDialog .dialogMsg {
width: 90%;
margin:15px auto;
line-height: 20px;
font-weight: bold;
}
.ownerAttendDialog .circleList{
width: 90%;
margin:10px auto;
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
}
.ownerAttendDialog .circleList .circleItem{
width: 100%;
margin:5px auto;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.ownerAttendDialog .circleList .circleItem .circleName{
padding-left: 5px;
}
.ownerAttendDialog .buttonRow{
width: 90%;
margin:10px auto;
display: flex;
flex-direction: row;
justify-content: space-around;
align-items: center;
}
.ownerAttendDialog .buttonRow .button{
width: 28%;
height:32px;
line-height: 32px;
text-align: center;
border: 1rpx solid #969696;
border-radius: 4px;
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment