From 1686145ab9887b35d6d133a1edec8bcac7a58081 Mon Sep 17 00:00:00 2001 From: qinzexin <“731344816@qq.com”> Date: Sat, 7 Jun 2025 15:37:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E5=8D=95=E5=A2=9E=E5=8A=A0=E4=B8=8B?= =?UTF-8?q?=E5=8D=95=E4=BA=BA=E5=91=98=E7=AE=A1=E7=90=86=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=B8=8B=E5=8D=95=E5=A4=87=E6=B3=A8=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=B4=BB=E5=8A=A8=E7=BE=A4=E4=BA=8C=E7=BB=B4=E7=A0=81?= =?UTF-8?q?=20=E4=BB=A5=E4=B8=8A=E5=89=A9=E4=BD=99=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lang/zh-cn/school/activity/activity.php | 1 + .../view/school/activity/activity/add.html | 18 ++++ .../view/school/activity/activity/copy.html | 18 ++++ .../view/school/activity/activity/edit.html | 19 +++++ .../school/activity/order/order/edit.html | 12 +++ .../api/controller/school/NewActivity.php | 29 +++++++ .../controller/school/newactivity/Order.php | 14 ++- .../school/newworker/activity/Order.php | 5 ++ .../common/model/school/activity/Activity.php | 85 ++++++++++++++++++- .../common/model/school/activity/Join.php | 7 +- .../model/school/activity/order/Order.php | 8 ++ .../model/school/activity/order/OrderCode.php | 2 +- .../js/backend/school/activity/activity.js | 3 + .../js/backend/school/activity/order/order.js | 4 + .../school/activity/order/order_code.js | 7 ++ 15 files changed, 222 insertions(+), 10 deletions(-) diff --git a/application/admin/lang/zh-cn/school/activity/activity.php b/application/admin/lang/zh-cn/school/activity/activity.php index 0a2a66f..8c94ba0 100644 --- a/application/admin/lang/zh-cn/school/activity/activity.php +++ b/application/admin/lang/zh-cn/school/activity/activity.php @@ -4,6 +4,7 @@ return [ 'User_id' => '发布用户', 'Title' => '标题', 'Images' => '轮播图', + 'Image' => '加群二维码', 'Address_city' => '城市选择', 'Cate_ids' => '平台分类(标签)', 'Province' => '省编号', diff --git a/application/admin/view/school/activity/activity/add.html b/application/admin/view/school/activity/activity/add.html index 0a8c0c0..87606be 100644 --- a/application/admin/view/school/activity/activity/add.html +++ b/application/admin/view/school/activity/activity/add.html @@ -33,6 +33,24 @@ ( 推荐图片比例为 690*580 ) + +
+ +
+
+ +
+ + +
+ +
+ +
( 推荐图片尺寸:320:459 )
+
+
+ +
diff --git a/application/admin/view/school/activity/activity/copy.html b/application/admin/view/school/activity/activity/copy.html index 7a5c37c..62bf8ab 100644 --- a/application/admin/view/school/activity/activity/copy.html +++ b/application/admin/view/school/activity/activity/copy.html @@ -38,6 +38,24 @@
+ +
+ +
+
+ +
+ + +
+ +
+ +
( 推荐图片尺寸:320:459 )
+
+
+ +
diff --git a/application/admin/view/school/activity/activity/edit.html b/application/admin/view/school/activity/activity/edit.html index bd06975..4ac7ba3 100644 --- a/application/admin/view/school/activity/activity/edit.html +++ b/application/admin/view/school/activity/activity/edit.html @@ -37,6 +37,25 @@
+ +
+ +
+
+ +
+ + +
+ +
+ +
( 推荐图片尺寸:320:459 )
+
+
+ + +
diff --git a/application/admin/view/school/activity/order/order/edit.html b/application/admin/view/school/activity/order/order/edit.html index 21f6e27..4f18034 100644 --- a/application/admin/view/school/activity/order/order/edit.html +++ b/application/admin/view/school/activity/order/order/edit.html @@ -252,6 +252,18 @@
+ + + +
+ +
+ +
+
+ + + diff --git a/application/api/controller/school/NewActivity.php b/application/api/controller/school/NewActivity.php index f85254a..3571115 100644 --- a/application/api/controller/school/NewActivity.php +++ b/application/api/controller/school/NewActivity.php @@ -259,6 +259,7 @@ class NewActivity extends Base * @ApiParams(name = "content", type = "string",required=false,description = "活动详情") * @ApiParams(name = "price", type = "string",required=false,description = "报名单价 0为免费") * @ApiParams(name = "stock", type = "string",required=false,description = "活动限制人数") + * @ApiParams(name = "image", type = "string",required=false,description = "入群二维码") * @ApiReturn({ * *}) @@ -278,6 +279,7 @@ class NewActivity extends Base $params["title"] = $this->request->post('title/s', ''); //老师id $params["images"] = $this->request->post('images/s', ''); //老师id + $params["image"] = $this->request->post('image/s', ''); //老师id $params["stock"] = $this->request->post('stock/d', 0); //核销次数 // @@ -374,5 +376,32 @@ class NewActivity extends Base $this->success('活动取消成功', $res); } + + /** + * @ApiTitle( 活动更换入群二维码) + * @ApiSummary(活动更换入群二维码)) + * @ApiMethod(POST) + * @ApiParams(name = "id", type = "string",required=true,description = "活动id") + * @ApiParams(name = "image", type = "string",required=true,description = "加群二维码") + * @ApiReturn({ + * + *}) + */ + public function edit_qrcode(){ +// $this->transactionCheck(); + $user_id = 0; + $user = $this->auth->getUser();//登录用户 + if($user)$user_id = $user['id']; + $id = $this->request->post('id/d', ''); //订单号 + $image = $this->request->post('image/s', ''); //订单号 + try{ + //当前申请状态 + $res = $this->model->editQrcode($user_id,$id,$image,true); + }catch (\Throwable $e){ + $this->error($e->getMessage()); + } + $this->success('活动更换入群二维码成功', $res); + } + } diff --git a/application/api/controller/school/newactivity/Order.php b/application/api/controller/school/newactivity/Order.php index 628c7a4..88381f4 100644 --- a/application/api/controller/school/newactivity/Order.php +++ b/application/api/controller/school/newactivity/Order.php @@ -108,6 +108,10 @@ class Order extends Base // if($user_id =='670153'){ // file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql()); // } + $res['activity_info'] = null; + if($activity_id){ + $res['activity_info'] = (new \app\common\model\school\activity\Activity)->getActivityPeopleInfo($activity_id); + } }catch (\Exception $e){ $this->error($e->getMessage()); @@ -145,6 +149,7 @@ class Order extends Base * @ApiTitle( 订单确认/订单计算接口) * @ApiSummary(订单确认/订单计算接口【有过期时间】) * @ApiMethod(POST) + * @ApiParams(name = "num", type = "int",required=true,description = "人数") * @ApiParams(name = "activity_id", type = "int",required=true,description = "活动id") * @ApiParams(name = "order_no", type = "string",required=false,description = "缓存key") * @ApiParams(name = "people", type = "string",required=true,description = "(需url编码)参与人员信息json [{name:"小明",idnum:"410303199501220515"}]") @@ -159,15 +164,16 @@ class Order extends Base $user = $this->auth->getUser();//登录用户 if($user)$user_id = $user['id']; $activity_id = $this->request->post('activity_id/d', 0); //课程id -// $num = $this->request->post('num/d', 0); //想同时约的课时id - $num = 0; //想同时约的课时id + $num = $this->request->post('num/d', 0); //想同时约的课时id +// $num = 0; //想同时约的课时id $param = []; $people = urldecode($this->request->post('people/s', "{}") ?: "{}"); //参数 // if($people){ - $param["people"] = json_decode($people,true); - $num = count($param["people"]); + $param["people"] = json_decode($people,true) ?: []; +// var_dump($param["people"]);die; +// $num = count($param["people"]); // } diff --git a/application/api/controller/school/newworker/activity/Order.php b/application/api/controller/school/newworker/activity/Order.php index 0ded45e..196d5e3 100644 --- a/application/api/controller/school/newworker/activity/Order.php +++ b/application/api/controller/school/newworker/activity/Order.php @@ -100,6 +100,11 @@ class Order extends Base //当前申请状态 $res = $this->model::workList($user_id,$page, $limit,$keywords,$status,$activity_id,$this->activity_ids,0,$server_status,$params); // var_dump($this->model->getLastSql()); + $res['activity_info'] = null; + if($activity_id){ + $res['activity_info'] = (new \app\common\model\school\activity\Activity)->getActivityPeopleInfo($activity_id); + } + }catch (\Exception $e){ $this->error($e->getMessage()); diff --git a/application/common/model/school/activity/Activity.php b/application/common/model/school/activity/Activity.php index 6516475..2812298 100644 --- a/application/common/model/school/activity/Activity.php +++ b/application/common/model/school/activity/Activity.php @@ -76,6 +76,12 @@ class Activity extends BaseModel return $imagesArray; } + public function getImageAttr($value, $data) + { + if (!empty($value)) return cdnurl($value,true); + } + + @@ -1000,6 +1006,9 @@ class Activity extends BaseModel $self['is_collect'] = 0; //是否购买 $self['have_buy'] = 0; + //是否是拥有者 + $self['is_owner'] = $self['user_id'] == $user_id ? 1 : 0; + if($user_id){ //判断是否收藏 $self['is_collect'] = Collect::where("user_id",$user_id)->where("classes_activity_id",$id)->count() ? 1:0 ; @@ -1009,6 +1018,15 @@ class Activity extends BaseModel ->where("user_id",$user_id) ->where("status","not in",["-3","6","9"]) ->count() ? 1 : 0 ; + //即非购买者,也非拥有者,则隐藏图片字段 + if(!$self['have_buy'] && $self["user_id"] != $user_id){ + //隐藏敏感字段 + $self["image"] = null; + } + + }else{ + //隐藏敏感字段 + $self["image"] = null; } // @@ -1402,10 +1420,14 @@ class Activity extends BaseModel */ public static function getSomePeople($id,$limit=3) { + $as = (new OrderCode)->getWithAlisaName(); + $peoples = OrderCode::with("activityorder") + ->where("activityorder.status","not in", ['-3','0',"5","6"]) + ->where("{$as}.activity_id",$id) + ->order("{$as}.id","desc") + ->limit($limit)->select(); - $users = []; - - return compact("users"); + return compact("peoples"); } @@ -1619,4 +1641,61 @@ class Activity extends BaseModel } + + + + + /** 编辑入群二维码 + * @param $image + * @param $trans + * @return $this + * @throws \Exception + */ + public function editQrcode($user_id,$id,$image="",$trans=false){ + + $row = self::where("user_id",$user_id)->where("id",$id)->find(); + if (!$row) { + throw new \Exception(__('No Results were found')); + } + +//判断逻辑 + if($trans){ + self::beginTrans(); + } + $res = true; + try{ + + + $result = $row->allowField(true)->save([ + "image"=>$image + ]); + + if($trans){ + self::commitTrans(); + } + }catch (\Exception $e){ + if($trans){ + self::rollbackTrans(); + } + throw new \Exception($e->getMessage().$e->getFile().$e->getLine()); + } + return $row; + } + + + public function getActivityPeopleInfo($id){ + + $total_num = $sign_num = $verification_num = 0; + $activity = self::where("id",$id)->find(); + if(!$activity) return compact("total_num","sign_num","verification_num"); + //活动总人数 + $total_num = $activity["stock"]; + //报名人数 + $sign_num = $activity["sign_num"]; + //核销人数 + $verification_num = $activity["verification_num"]; + return compact("total_num","sign_num","verification_num"); + } + + } diff --git a/application/common/model/school/activity/Join.php b/application/common/model/school/activity/Join.php index dad9a67..93d256e 100644 --- a/application/common/model/school/activity/Join.php +++ b/application/common/model/school/activity/Join.php @@ -294,8 +294,11 @@ class Join extends BaseModel $with_field = [ 'base'=>['*'], ]; - $alisa = (new self)->getWithAlisaName(); - $sort = "{$alisa}.id desc"; +// $alisa = (new self)->getWithAlisaName(); +// $sort = "{$alisa}.id desc"; + + $sort = "id desc"; + $serch_where = []; $serch_where = array_merge($serch_where,$params); return (new self)->getBaseList($serch_where, $page, $limit,$sort,$with_field); diff --git a/application/common/model/school/activity/order/Order.php b/application/common/model/school/activity/order/Order.php index b961093..c144abc 100644 --- a/application/common/model/school/activity/order/Order.php +++ b/application/common/model/school/activity/order/Order.php @@ -633,6 +633,12 @@ class Order extends BaseModel } } + $people_num = count($param["people"]?? []) ; + //人数与参与数量需对上 + if($people_num != $num){ + throw new \Exception("请选择正确的报名人数!"); + } + } @@ -666,6 +672,7 @@ class Order extends BaseModel } + // $activity_info['use_num'] = 0;//已使用课时 // $activity_info['sub_num'] = $activity_info['classes_num'];//剩余课时 // //单价 = 课程价格/总课时 @@ -983,6 +990,7 @@ class Order extends BaseModel self::beginTrans(); } try { +// var_dump($orderInfo['param']);die; //'classes_activity_id','classes_activity_item_id' //1订单执行创建 $order = $this->createOrder($user_id,$orderInfo['activity_id'],$orderInfo['num'],$order_no,$orderInfo['param'],$remark); diff --git a/application/common/model/school/activity/order/OrderCode.php b/application/common/model/school/activity/order/OrderCode.php index 40b37f2..c16baad 100644 --- a/application/common/model/school/activity/order/OrderCode.php +++ b/application/common/model/school/activity/order/OrderCode.php @@ -85,7 +85,7 @@ class OrderCode extends BaseModel } - public function order() + public function activityorder() { return $this->belongsTo(Order::class, 'activity_order_id', 'id', [], 'LEFT')->setEagerlyType(0); } diff --git a/public/assets/js/backend/school/activity/activity.js b/public/assets/js/backend/school/activity/activity.js index d5f4421..87a592c 100644 --- a/public/assets/js/backend/school/activity/activity.js +++ b/public/assets/js/backend/school/activity/activity.js @@ -43,6 +43,9 @@ define(['jquery', 'bootstrap', 'backend', 'csmtable', 'form'], function ($, unde {field: 'platform', title: __('Platform'), searchList: platformListJson, formatter: Table.api.formatter.flag}, {field: 'show', title: __('Show'), searchList: {"1":__('Show 1'),"2":__('Show 2')}, formatter: Table.api.formatter.status}, {field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"2":__('Status 2'),"3":__('Status 3'),"4":__('Status 4'),"5":__('Status 5'),"-1":__('Status -1')}, formatter: Table.api.formatter.status}, + + {field: 'image', title: __('Image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image}, + {field: 'auth_status', title: __('Auth_status'), searchList: {"0":__('Auth_status 0'),"1":__('Auth_status 1'),"2":__('Auth_status 2')}, formatter: Table.api.formatter.status}, {field: 'reason', title: __('Reason'), operate: 'LIKE'}, diff --git a/public/assets/js/backend/school/activity/order/order.js b/public/assets/js/backend/school/activity/order/order.js index 1cb5790..4626f44 100644 --- a/public/assets/js/backend/school/activity/order/order.js +++ b/public/assets/js/backend/school/activity/order/order.js @@ -60,6 +60,10 @@ define(['jquery', 'bootstrap', 'backend', 'csmtable', 'form'], function ($, unde {field: 'num', title: __('购买人数'), operate:'BETWEEN'}, {field: 'detail.price', title: __('购买单价'), operate:'BETWEEN'}, + + {field: 'desc', title: __('下单备注'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, + + {field: 'payprice', title: __('Payprice'), operate:'BETWEEN'}, {field: 'pay_type', title: __('Pay_type'), searchList: {"yue":__('Pay_type yue'),"wechat":__('Pay_type wechat')}, formatter: Table.api.formatter.normal}, {field: 'before_status',visible:false, title: __('Before_status'), searchList: {"-3":__('Before_status -3'),"0":__('Before_status 0'),"2":__('Before_status 2'),"3":__('Before_status 3'),"4":__('Before_status 4'),"6":__('Before_status 6'),"9":__('Before_status 9')}, formatter: Table.api.formatter.status}, diff --git a/public/assets/js/backend/school/activity/order/order_code.js b/public/assets/js/backend/school/activity/order/order_code.js index 1342b1a..64a98bf 100644 --- a/public/assets/js/backend/school/activity/order/order_code.js +++ b/public/assets/js/backend/school/activity/order/order_code.js @@ -30,6 +30,13 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin {checkbox: true}, {field: 'id', title: __('Id')}, {field: 'activity_order_id', title: __('Activity_order_id')}, + + {field: 'name', title: __('姓名'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, + + {field: 'idnum', title: __('身份证号'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, + + + {field: 'code', title: __('Code'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, {field: 'miniurl', title: __('核销码内容'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},