From fd502b62d729b82a4a4486810f5bbf54bebec049 Mon Sep 17 00:00:00 2001 From: wanghongjun <1445693971@qq,com> Date: Tue, 24 Oct 2023 16:42:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=A1=E5=9B=AD=E6=B4=BB=E5=8A=A8=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/weliam_smartcity/api/Member.php | 2 +- addons/weliam_smartcity/api/Student.php | 22 ++++--- .../core/model/MemberCampusActivities.mod.php | 57 +++++++++++++++++++ .../member/campusActivities.ctrl.php | 7 ++- .../member/campus_activities/edit.html | 4 +- 5 files changed, 78 insertions(+), 14 deletions(-) create mode 100644 addons/weliam_smartcity/core/model/MemberCampusActivities.mod.php diff --git a/addons/weliam_smartcity/api/Member.php b/addons/weliam_smartcity/api/Member.php index 47520c2..fed1ad9 100644 --- a/addons/weliam_smartcity/api/Member.php +++ b/addons/weliam_smartcity/api/Member.php @@ -736,7 +736,7 @@ class MemberModuleUniapp extends Uniapp // $collectnum = pdo_fetchcolumn('SELECT COUNT(id) FROM ' . tablename(PDO_NAME . 'storefans') . " WHERE uniacid={$_W['uniacid']} and mid={$_W['mid']}"); // $pocketcollectnum = pdo_fetchcolumn('SELECT COUNT(id) FROM ' . tablename(PDO_NAME . 'pocket_collection') . " WHERE uniacid={$_W['uniacid']} and mid={$_W['mid']}"); // $citycardcollectnum = pdo_fetchcolumn('SELECT COUNT(id) FROM ' . tablename(PDO_NAME . 'citycard_collect') . " WHERE mid={$_W['mid']}"); - $collect_activities = pdo_count(PDO_NAME . 'member_collect_activities',['mid' => $_W['mid']]); + $collect_activities = MemberCampusActivities::getCollectActivitiesCount($_W['mid']); $data['collectnum'] = $collect_activities ?: 0; //收藏店铺数量 //统计用户的未读信息数量 $data['news_total'] = pdo_getcolumn(PDO_NAME . "im" , [ diff --git a/addons/weliam_smartcity/api/Student.php b/addons/weliam_smartcity/api/Student.php index f55fbfb..4040062 100644 --- a/addons/weliam_smartcity/api/Student.php +++ b/addons/weliam_smartcity/api/Student.php @@ -171,7 +171,7 @@ class StudentModuleUniapp extends Uniapp $total = pdo_count(PDO_NAME . 'member_campus_activities',$where); $list = pdo_getall(PDO_NAME . 'member_campus_activities',$where,$field,'','publish_time desc',[$pindex,$psize]); foreach ($list as &$val) { - $val['promotional_img'] = tomedia($val['promotional_img']); + $val['promotional_img'] = MemberCampusActivities::handlePromotionalImg($val['promotional_img'],2); $val['publish_time'] = $val['publish_time'] ? date("Y-m-d H:i:s",$val['publish_time']) : ''; #发布人 $val['nickname'] = '小粤'; @@ -212,8 +212,9 @@ class StudentModuleUniapp extends Uniapp $data['cc_name'] = $cc_name ?: ''; $where = ['campus_activities_id' => $data['id']]; // 活动评价内容 $where2 = ['campus_activities_id' => $data['id'], 'mid' => $_W['mid']]; + # 处理图集 + $data['promotional_img'] = MemberCampusActivities::handlePromotionalImg($data['promotional_img']); - $data['promotional_img'] = tomedia($data['promotional_img']); $thumbs_up_count = pdo_count(PDO_NAME . 'member_thumbs_up_activities',$where); // 活动点赞数 $data['thumbs_up_count'] = $thumbs_up_count ?: 0; $is_thumbs_up = pdo_get(PDO_NAME . 'member_thumbs_up_activities',$where2); @@ -423,7 +424,7 @@ class StudentModuleUniapp extends Uniapp 'title' => '', 'cc_id' => '', 'describe' => '', - 'promotional_img' => '', + 'promotional_img' => [], 'status' => 0, 'reject' => '' ]; @@ -432,6 +433,7 @@ class StudentModuleUniapp extends Uniapp if (!empty($queryRes)) { $data = $queryRes; if ($data['status'] != 2) $data['reject'] = ''; + $data['promotional_img'] = MemberCampusActivities::promotionalImgArr($data['promotional_img']); } } #unset($data['status']); @@ -452,18 +454,22 @@ class StudentModuleUniapp extends Uniapp $cc_id = $_GPC['cc_id']; $title = trim($_GPC['title']); $describe = $_GPC['describe']; - $promotional_img = trim($_GPC['promotional_img']); + $promotional_img = $_GPC['promotional_img']; // 验证必填数据 if (empty($title)) $this->renderError('请填写活动标题'); if (empty($describe)) $this->renderError('请填写活动内容'); - if (empty($promotional_img)) $this->renderError('请上传活动宣传图'); + if (empty($promotional_img)) $this->renderError('请上传图集'); + if (!is_array($promotional_img)) $this->renderError('图集数据类型错误'); // 验证数据是否违规 $textRes = Filter::init($title,$_W['source'],1); if($textRes['errno'] == 0) $this->renderError('活动标题'.$textRes['message']); $textRes = Filter::init($describe,$_W['source'],1); if($textRes['errno'] == 0) $this->renderError('活动内容'.$textRes['message']); - $textRes = Filter::init($promotional_img,$_W['source'],2); - if($textRes['errno'] == 0) $this->renderError('活动宣传图'.$textRes['message']); + foreach ($promotional_img as $image) { + $textRes = Filter::init($image,$_W['source'],2); + if($textRes['errno'] == 0) $this->renderError('图集'.$textRes['message']); + } + $promotional_img_str = MemberCampusActivities::promotionalImgStr($promotional_img); // 验证活动标题是否存在 $queryWhere = " title = '{$title}'"; $queryWhere .= $id ? " and id != {$id} " : ''; @@ -475,7 +481,7 @@ class StudentModuleUniapp extends Uniapp 'title' => $title, 'cc_id' => $cc_id, 'describe' => htmlspecialchars_decode($describe), - 'promotional_img' => $promotional_img + 'promotional_img' => $promotional_img_str ]; if ($id) { $data['status'] = 0; diff --git a/addons/weliam_smartcity/core/model/MemberCampusActivities.mod.php b/addons/weliam_smartcity/core/model/MemberCampusActivities.mod.php new file mode 100644 index 0000000..de3af08 --- /dev/null +++ b/addons/weliam_smartcity/core/model/MemberCampusActivities.mod.php @@ -0,0 +1,57 @@ + $imageVal) { + $promotional_img[$imageKey] = tomedia($imageVal); + } + $image_val = array_values($promotional_img); + $first_image = $image_val[0]; + return $type == 1 ? $promotional_img : $first_image; + } + + /** + * 返回数组 展示 + * @param $promotionalImg + * @return false|string[] + */ + public static function promotionalImgArr($promotionalImg) + { + return explode("||",$promotionalImg); + } + + /** + * 返回字符串 保存 + * @param $promotionalImg + * @return string + */ + public static function promotionalImgStr($promotionalImg) + { + return implode("||",$promotionalImg); + } + + /** + * 获取收藏数量 + * @param $mid + * @return int|mixed + */ + public static function getCollectActivitiesCount($mid) + { + $sql = "select count(a.id) as `count` from ".tablename(PDO_NAME . 'member_collect_activities') + ." as a join ".tablename(PDO_NAME . 'member_campus_activities') . " as b" + ." on a.campus_activities_id = b.id where a.mid = '{$mid}'"; + + $res = pdo_fetch($sql); + return $res['count'] ?: 0; + } +} \ No newline at end of file diff --git a/addons/weliam_smartcity/sys/controller/member/campusActivities.ctrl.php b/addons/weliam_smartcity/sys/controller/member/campusActivities.ctrl.php index 3f2380c..a02e0c2 100644 --- a/addons/weliam_smartcity/sys/controller/member/campusActivities.ctrl.php +++ b/addons/weliam_smartcity/sys/controller/member/campusActivities.ctrl.php @@ -27,7 +27,7 @@ class campusActivities_WeliamController { $ccRes = Category::getSingleCategory($item['cc_id'],'name'); $item['cc_name'] = $ccRes['name']; } - $item['promotional_img'] = tomedia($item['promotional_img']); + $item['promotional_img'] = MemberCampusActivities::handlePromotionalImg($item['promotional_img'],2); $item['nickname'] = '小粤'; $item['avatar'] = $_W['wlsetting']['base']['logo'] ? tomedia($_W['wlsetting']['base']['logo']) : tomedia('headimg_'.$_W['account']['acid'].'.jpg'); if ($item['create_place'] == 2) Member::getMemberInfo($item,$item['create_user_id']); @@ -51,12 +51,12 @@ class campusActivities_WeliamController { if (empty($data['title'])) wl_message('请填写活动标题','refresh','error'); if (strlen($data['title']) > 128) wl_message('活动标题不得超过128个字符','refresh','error'); if (empty($data['describe'])) wl_message('请填写活动描述','refresh','error'); - if (empty($data['promotional_img'])) wl_message('请填写上传活动宣传图','refresh','error'); + if (empty($data['promotional_img'])) wl_message('请填写上传图集','refresh','error'); $data['uniacid'] = $_W['uniacid']; $data['title'] = trim($data['title']); $data['recommend'] = $data['recommend'] ?: 0; - $data['promotional_img'] = trim($data['promotional_img']); + $data['promotional_img'] = MemberCampusActivities::promotionalImgStr($data['promotional_img']); $data['describe'] = htmlspecialchars_decode($data['describe']); $where = ['title' => $data['title']]; @@ -81,6 +81,7 @@ class campusActivities_WeliamController { $register = []; if (!empty($id)) { $register = pdo_get(PDO_NAME . 'member_campus_activities', ['id' => $id]); + $register['promotional_img'] = MemberCampusActivities::promotionalImgArr($register['promotional_img']); } $category = Category::getChildCategoryAll(6,'*',true); diff --git a/addons/weliam_smartcity/sys/view/default/member/campus_activities/edit.html b/addons/weliam_smartcity/sys/view/default/member/campus_activities/edit.html index 2a8614c..9de4c99 100644 --- a/addons/weliam_smartcity/sys/view/default/member/campus_activities/edit.html +++ b/addons/weliam_smartcity/sys/view/default/member/campus_activities/edit.html @@ -33,9 +33,9 @@
- +
- {php echo attachment_select('register[promotional_img]', $register['promotional_img'])} + {php echo attachment_select_multi('register[promotional_img]', $register['promotional_img'])}