From a80570a44c3af790ceec687e1f43976212cb56b3 Mon Sep 17 00:00:00 2001
From: qinzexin <“731344816@qq.com”>
Date: Tue, 12 Aug 2025 18:58:05 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8B=89=E5=8D=A1=E6=8B=89=E6=94=AF=E4=BB=98?=
=?UTF-8?q?=E3=80=82=E6=89=8B=E6=9C=BA=E5=8F=B7=E5=A2=9E=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/school/activity/Activity.php | 29 +++
.../view/school/activity/activity/add.html | 4 +-
.../view/school/activity/activity/copy.html | 4 +-
.../view/school/activity/activity/edit.html | 4 +-
.../api/controller/school/NewActivity.php | 58 ++++-
.../school/newactivity/ActivityJoin.php | 10 +-
.../api/controller/school/newactivity/Pay.php | 87 +++++++-
.../common/model/school/activity/Join.php | 46 ++--
.../model/school/activity/order/Order.php | 43 ++--
.../model/school/activity/order/OrderCode.php | 210 +++++++++++++++++-
.../controller/school/activity/Activity.php | 28 +++
.../view/school/activity/activity/add.html | 4 +-
.../view/school/activity/activity/copy.html | 4 +-
.../view/school/activity/activity/edit.html | 4 +-
.../js/backend/school/activity/activity.js | 66 ++++++
.../js/manystore/school/activity/activity.js | 69 ++++++
16 files changed, 608 insertions(+), 62 deletions(-)
diff --git a/application/admin/controller/school/activity/Activity.php b/application/admin/controller/school/activity/Activity.php
index 232c807..7b144d7 100644
--- a/application/admin/controller/school/activity/Activity.php
+++ b/application/admin/controller/school/activity/Activity.php
@@ -428,6 +428,35 @@ class Activity extends Backend
}
+
+ /**
+ * 微信短链接
+ * @return string
+ * @throws \think\Exception
+ * @throws \think\db\exception\BindParamException
+ * @throws \think\exception\DbException
+ * @throws \think\exception\PDOException
+ */
+ public function miniurl($ids = ''){
+ $param = $this->request->param();
+ if($this->request->isPost()){
+ try{
+ if(isset($param['ids']))$ids = $param['ids'];
+ //设置模拟资格
+ $url = \app\common\model\school\activity\Activity::getMiniQrcodeLink($ids);
+
+ }catch (\Exception $e){
+ $this->error($e->getMessage());
+ }
+ $this->success($url["url_link"]);
+ }
+ $row = $this->model->get($ids);
+ $this->view->assign('vo', $row);
+ return $this->view->fetch();
+ }
+
+
+
/**
* 微信小程序码
* @return string
diff --git a/application/admin/view/school/activity/activity/add.html b/application/admin/view/school/activity/activity/add.html
index e9bf17a..5bdc252 100644
--- a/application/admin/view/school/activity/activity/add.html
+++ b/application/admin/view/school/activity/activity/add.html
@@ -24,8 +24,8 @@
diff --git a/application/admin/view/school/activity/activity/copy.html b/application/admin/view/school/activity/activity/copy.html
index f117430..0114866 100644
--- a/application/admin/view/school/activity/activity/copy.html
+++ b/application/admin/view/school/activity/activity/copy.html
@@ -27,8 +27,8 @@
diff --git a/application/admin/view/school/activity/activity/edit.html b/application/admin/view/school/activity/activity/edit.html
index e58b6b9..d6c2174 100644
--- a/application/admin/view/school/activity/activity/edit.html
+++ b/application/admin/view/school/activity/activity/edit.html
@@ -27,8 +27,8 @@
diff --git a/application/api/controller/school/NewActivity.php b/application/api/controller/school/NewActivity.php
index 32b9adf..9d2aa1b 100644
--- a/application/api/controller/school/NewActivity.php
+++ b/application/api/controller/school/NewActivity.php
@@ -5,6 +5,7 @@ namespace app\api\controller\school;
use app\common\model\school\activity\Activity;
use app\common\model\school\activity\Cate;
+use app\common\model\school\activity\order\OrderCode;
use app\common\model\school\activity\order\SettleLog;
use app\common\model\school\activity\Refund;
@@ -13,7 +14,7 @@ use app\common\model\school\activity\Refund;
*/
class NewActivity extends Base
{
- protected $noNeedLogin = ['cate_list',"activity_list","detail","refund_list","add"];
+ protected $noNeedLogin = ['cate_list',"activity_list","detail","refund_list","add","people_list"];
protected $noNeedRight = '*';
protected $model = null;
@@ -562,5 +563,60 @@ class NewActivity extends Base
+
+ /**
+ * @ApiTitle( 活动参与人列表)
+ * @ApiSummary(活动参与人列表)
+ * @ApiMethod(GET)
+ * @ApiParams(name = "keywords", type = "string",required=false,description = "搜索关键字")
+ * @ApiParams(name = "my", type = "string",required=true,description = "是否查自己(需登录) 1是 0否")
+ * @ApiParams(name = "page", type = "string",required=true,description = "页数")
+ * @ApiParams(name = "limit", type = "string",required=true,description = "条数")
+ * @ApiParams(name = "code_status", type = "int",required=false,description = "核销状态:3=未核销,6=已核销")
+ * @ApiParams(name = "activity_id", type = "string",required=false,description = "活动id 多值逗号拼接")
+ * @ApiParams(name = "status", type = "string",required=false,description = "订单状态:-3=已取消,0=待支付,2=已报名,3=核销中,4=售后中,5=退款结算中,6=已退款,7=售后挂起,9=已完成,不传查所有,可按多值逗号拼接")
+ * @ApiParams(name = "order", type = "string",required=false,description = " normal=综合排序,earliest=早优先,new=最新优先,recently=最近优先")
+ * @ApiReturn({
+ *
+ *})
+ */
+ public function people_list()
+ {
+ $user_id = 0;
+ $user = $this->auth->getUser();//登录用户
+ if($user)$user_id = $user['id'];
+ $params =[];
+
+
+ $params["my"] = $this->request->get('my/d', 0); //机构店铺id
+ $params["my_user_id"] = $user_id;
+ $params["page"] = $this->request->get('page/d', 1); //页数
+ $params["limit"] = $this->request->get('limit/d', 10); //条数
+ $params["keywords"] = $this->request->get('keywords/s', ''); //搜索关键字
+ $params["activity_id"] = $this->request->get('activity_id/d', ''); //机构店铺id
+ $params["code_status"] = $this->request->get('code_status/s', ''); //机构店铺id
+ $params["status"] = $this->request->get('status/s', ''); //机构店铺id
+ $params["order"] = $this->request->get('order/s', 'normal'); //机构店铺id
+
+
+// $type = $this->request->get('type/s', ''); //筛选学员和教练单
+
+ try{
+ //当前申请状态
+ $res = OrderCode::getVaildList($params);
+ $count = OrderCode::getVaildList($params,true);
+// if($user_id =='670153'){
+// file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql());
+// }
+ }catch (\Exception $e){
+
+ $this->error($e->getMessage());
+ }
+ $this->success('查询成功', ["list"=>$res,"count"=>$count]);
+ }
+
+
+
+
}
diff --git a/application/api/controller/school/newactivity/ActivityJoin.php b/application/api/controller/school/newactivity/ActivityJoin.php
index c6654d0..e6adca0 100644
--- a/application/api/controller/school/newactivity/ActivityJoin.php
+++ b/application/api/controller/school/newactivity/ActivityJoin.php
@@ -135,6 +135,8 @@ class ActivityJoin extends Base
* @ApiMethod(POST)
* @ApiParams(name = "name", type = "int",required=true,description = "姓名")
* @ApiParams(name = "idnum", type = "string",required=true,description = "身份证号")
+ * @ApiParams(name = "mobile", type = "string",required=true,description = "手机号")
+ * @ApiParams(name = "open", type = "string",required=true,description = "是否公开:0=否,1=是")
* @ApiReturn({
*
*})
@@ -151,6 +153,9 @@ class ActivityJoin extends Base
$params["user_id"] = $user_id; //老师id
$params["name"] = $this->request->post('name/s', ''); //课程标签
$params["idnum"] = $this->request->post('idnum/s', ''); //课程标签
+ $params["mobile"] = $this->request->post('mobile/s', ''); //课程标签
+ $params["open"] = $this->request->post('open/s', '1'); //课程标签
+
try{
$res = $this->model->add($params,true);
@@ -170,6 +175,8 @@ class ActivityJoin extends Base
* @ApiParams (name="ids", type="string", required=true, description="需要编辑的id")
* @ApiParams(name = "name", type = "int",required=true,description = "姓名")
* @ApiParams(name = "idnum", type = "string",required=true,description = "身份证号")
+ * @ApiParams(name = "mobile", type = "string",required=true,description = "手机号")
+ * @ApiParams(name = "open", type = "string",required=true,description = "是否公开:0=否,1=是")
* @ApiReturn({
*
*})
@@ -185,7 +192,8 @@ class ActivityJoin extends Base
$params["user_id"] = $user_id; //老师id
$params["name"] = $this->request->post('name/s', ''); //课程标签
$params["idnum"] = $this->request->post('idnum/s', ''); //课程标签
-
+ $params["mobile"] = $this->request->post('mobile/s', ''); //课程标签
+ $params["open"] = $this->request->post('open/s', '1'); //课程标签
try{
$res = $this->model->edit($ids,$params,true);
}catch (\Throwable $e){
diff --git a/application/api/controller/school/newactivity/Pay.php b/application/api/controller/school/newactivity/Pay.php
index 319989c..8af9d81 100644
--- a/application/api/controller/school/newactivity/Pay.php
+++ b/application/api/controller/school/newactivity/Pay.php
@@ -79,9 +79,31 @@ class Pay extends Base
$this->error("支付金额必须大于0");
}
- if (!$type || !in_array($type, ['alipay', 'wechat'])) {
+ if (!$type || !in_array($type, ['alipay', 'wechat',"lakala"])) {
$this->error("支付类型不能为空");
}
+ //订单号
+ $out_trade_no = $order_no;
+
+ //订单标题
+ $title = '活动订单['.$out_trade_no."]支付";
+
+ if($lakala){
+
+ if (!$method || !in_array($method, ['miniapp'])) {
+ $this->error("目前仅支持小程序发起拉卡拉支付!");
+ }
+
+ try {
+ $lakala_params = OrderModel::getLakalaOrderPayParams($order_no,"wechat",$openid);
+ }catch (\Exception $e){
+ $this->error($e->getMessage(),["error_code"=> $e->getCode()]);
+ }
+ $this->success('获取成功!', $lakala_params);
+
+ }
+
+
if (in_array($method, ['miniapp', 'mp']) && !$openid) {
@@ -105,11 +127,7 @@ class Pay extends Base
}
}
- //订单号
- $out_trade_no = $order_no;
- //订单标题
- $title = '活动订单['.$out_trade_no."]支付";
//回调链接
$notifyurl = $this->request->root(true) . '/api/school.newactivity.pay/notifyx/paytype/' . $type. '/platform/' . $method;
@@ -134,6 +152,65 @@ class Pay extends Base
{
$paytype = $this->request->param('paytype');
$platform = $this->request->param('platform');
+
+
+ //如果是拉卡拉则走拉卡拉的支付回调逻辑
+ if ($paytype == 'lakala') {
+ $lakala = lakala_sdk();
+ $api = $lakala->v3(\Lakala\OpenAPISDK\V3\Api\LakalaNotifyApi::class);
+ try {
+ # 接收通知请求
+ $request = $api->notiApi();
+ # 通知请求头信息
+ $headers = $request->getHeaders();
+ # 通知请求原文
+ $originalText = $request->getOriginalText();
+
+ $data = json_decode($originalText, true);
+
+ // 处理$obj中交易状态 -> 可能多次调用
+ $out_trade_no = $data['out_trade_no'];
+
+ // 支付成功流程
+ //获取支付金额、订单号
+ $pay_fee = bcdiv($data['payer_amount'], 100, 2);
+
+ //你可以在此编写订单逻辑
+ $order = OrderModel::getNopayOrder($out_trade_no);
+
+ if (!$order || $order["status"] != '0') {
+ // 订单不存在,或者订单已支付
+ $api->success();
+ return null;
+ }
+ $notify = [
+ 'order_no' => $data['out_trade_no'],
+ 'transaction_id' => $data['trade_no'],
+ 'notify_time' => date('Y-m-d H:i:s', strtotime($data['time_end'])),
+ 'buyer_email' => $data['user_id1'] ?? $data['user_id2'] ?? "",
+ 'payment_json' => json_encode($data),
+ 'pay_fee' => $pay_fee,
+ 'pay_type' => $paytype, // 支付方式
+ 'platform' => $platform,
+ ];
+
+ $this->model->paySuccess($order['order_no'],$notify,$pay_fee,true,true);
+
+
+ // 通知拉卡拉业,务处理成功
+ $api->success();
+ } catch (\Exception $e) {
+ // echo $e->getMessage();
+ // 通知拉卡拉,发生异常
+ $api->fail($e->getMessage());
+ }
+
+ return null;
+ }
+
+
+
+
$pay = Service::checkNotify($paytype);
if (!$pay) {
return json(['code' => 'FAIL', 'message' => '失败'], 500, ['Content-Type' => 'application/json']);
diff --git a/application/common/model/school/activity/Join.php b/application/common/model/school/activity/Join.php
index ed40ac2..5903684 100644
--- a/application/common/model/school/activity/Join.php
+++ b/application/common/model/school/activity/Join.php
@@ -65,26 +65,25 @@ class Join extends BaseModel
throw new \Exception(__('Parameter %s can not be empty', ''));
}
-
- if(config("site.activity_idcard_need")){
- $rule = [
- 'user_id'=>'require',
- 'name'=>'require',
- 'idnum'=>'require',
- ];
- }else{
- $rule = [
- 'user_id'=>'require',
- 'name'=>'require',
+ $rule = [
+ 'user_id'=>'require',
+ 'name'=>'require',
// 'idnum'=>'require',
- ];
+ ];
+ if(config("site.activity_idcard_need")){
+ $rule[ 'idnum'] = 'require';
}
+ if(config("site.activity_idcard_need")){
+ $rule[ 'mobile'] = 'require';
+ }
+
$rule_msg = [
"user_id.require"=>'用户必填',
"name.require"=>'姓名必填',
"idnum.require"=>'身份证号必填',
+ "mobile.require"=>'手机号必填',
];
self::check($params,$rule,$rule_msg);
@@ -138,24 +137,25 @@ class Join extends BaseModel
- if(config("site.activity_idcard_need")){
- $rule = [
- 'user_id'=>'require',
- 'name'=>'require',
- 'idnum'=>'require',
- ];
- }else{
- $rule = [
- 'user_id'=>'require',
- 'name'=>'require',
+ $rule = [
+ 'user_id'=>'require',
+ 'name'=>'require',
// 'idnum'=>'require',
- ];
+ ];
+ if(config("site.activity_idcard_need")){
+ $rule[ 'idnum'] = 'require';
}
+ if(config("site.activity_idcard_need")){
+ $rule[ 'mobile'] = 'require';
+ }
+
+
$rule_msg = [
"user_id.require"=>'用户必填',
"name.require"=>'姓名必填',
"idnum.require"=>'身份证号必填',
+ "mobile.require"=>'手机号必填',
];
self::check($params,$rule,$rule_msg);
diff --git a/application/common/model/school/activity/order/Order.php b/application/common/model/school/activity/order/Order.php
index daeb3ba..d62d56f 100644
--- a/application/common/model/school/activity/order/Order.php
+++ b/application/common/model/school/activity/order/Order.php
@@ -965,6 +965,8 @@ class Order extends BaseModel
if($people && isset($people[$i])){
$params["name"] = $people[$i]["name"];
$params["idnum"] = $people[$i]["idnum"] ?? "";
+ $params["mobile"] = $people[$i]["mobile"] ?? "";
+ $params["open"] = $people[$i]["open"] ?? "1";
}
@@ -2743,9 +2745,9 @@ class Order extends BaseModel
$order = self::getOrder($order_no);
$detail = $order->detail;
if(!$detail)throw new \Exception("找不到活动!");
- $lakalaBusiness = LakalaBusiness::where("user_id",$detail["user_id"]);
- $lakala = $lakalaBusiness->where("status",config("site.lakala_test_switch")? '2':'1' )->find();
- if(!$lakala)throw new \Exception("商户未开通拉卡拉钱包不具备收款能力!");
+ $lakalaBusinessModel = LakalaBusiness::where("user_id",$detail["user_id"]);
+ $lakalaBusiness = $lakalaBusinessModel->where("status",config("site.lakala_test_switch")? '2':'1' )->find();
+ if(!$lakalaBusiness)throw new \Exception("商户未开通拉卡拉钱包不具备收款能力!");
//金额需大于0
if($order["totalprice"] <= 0)throw new \Exception("金额需大于0!");
@@ -2764,8 +2766,8 @@ class Order extends BaseModel
// 必填参数
- $request->setMerchantNo($lakala["merchant_no"]);
- $request->setTermNo($lakala["online_scanning_terminal_no"]);
+ $request->setMerchantNo($lakalaBusiness["merchant_no"]);
+ $request->setTermNo($lakalaBusiness["online_scanning_terminal_no"]);
$request->setOutTradeNo($order["order_no"]);
$request->setAccountType('WECHAT');
$request->setTransType('71');
@@ -2833,25 +2835,28 @@ class Order extends BaseModel
// try {
$response = $api->transPreorder($request);
- if ($response->getRespData()) {
- print_r($response->getRespData());
- print_r($response->getAccRespFields());
- }
- else {
- print_r($response);
- }
- echo $response->getCode();
+// if ($response->getRespData()) {
+// print_r($response->getRespData());
+// print_r($response->getAccRespFields());
+// }
+// else {
+// print_r($response);
+// }
+// echo $response->getCode();
+//
+// # 响应头信息
+// print_r($response->getHeaders());
- # 响应头信息
- print_r($response->getHeaders());
-
- # 响应原文
- echo $response->getOriginalText();
+ $bbs_code = $response->getCode();
+ $responsedata = json_decode($response->getOriginalText(),true);
+ if($bbs_code != "BBS00000"){
+ throw new \Exception($responsedata["msg"],$responsedata["code"]);
+ }
// } catch (\Lakala\OpenAPISDK\V3\ApiException $e) {
// echo $e->getMessage();
// }
- return $response->getOriginalText();
+ return $responsedata;
}
diff --git a/application/common/model/school/activity/order/OrderCode.php b/application/common/model/school/activity/order/OrderCode.php
index 7c4be1b..1ae966c 100644
--- a/application/common/model/school/activity/order/OrderCode.php
+++ b/application/common/model/school/activity/order/OrderCode.php
@@ -107,6 +107,8 @@ class OrderCode extends BaseModel
*/
public static function updateVerification($code,$oper_id = 0,$oper_type='user',$check=true){
if(is_string($code))$code = self::getHaveVerificationOrderCode($code,$check);
+// if($code["status"] == "6")return $code;
+
$code->status = "6";//refund_status
$code->verification_user_id = $oper_id;
$code->verification_type = $oper_type;
@@ -128,7 +130,8 @@ class OrderCode extends BaseModel
*/
public static function getHaveVerificationOrderCode($code,$check=true){
// $where = [self::STATUS_NOPAY,self::STATUS_PAYED];
- $ordercode = self::where('code',$code)->where("status","in",['3'])->find();
+// $ordercode = self::where('code',$code)->where("status","in",['3'])->find();
+ $ordercode = self::where('code',$code)->find();
if(!$ordercode)throw new \Exception("当前码已存在或核销过!");
$order = $ordercode->activityorder;
if(!$order)throw new \Exception("订单异常!");
@@ -155,8 +158,11 @@ class OrderCode extends BaseModel
*/
public function forceVerification($code,$oper_type='user',$oper_id=0,$check=true)
{
+ if(is_string($code))$code = self::getHaveVerificationOrderCode($code,$check);
+ if($code["status"] == "6")return $code;
$ordercode = self::updateVerification($code,$oper_id,$oper_type,$check);
+
$order = $ordercode->activityorder;
if($check){
@@ -194,6 +200,10 @@ class OrderCode extends BaseModel
public function verification($code,$user_id=0,$check=false,$oper_type='user',$oper_id=0,$trans=false){
//得到可取消订单
$ordercode = self::getHaveVerificationOrderCode($code,$check);
+
+ if($ordercode["status"] == "6")return $ordercode;
+
+
$order = $ordercode->activityorder;
if(!$order) throw new \Exception("订单异常!");
$detail = $order->detail;
@@ -236,5 +246,203 @@ class OrderCode extends BaseModel
+ /**
+ * 获取所有报名人列表
+ */
+ public static function getVaildList($params,$count=false) {
+ extract($params);
+// $a = '';
+ $a = (new self)->getWithAlisaName().'.';
+ $with = ['user'];
+// if (isset($has_shop) && $has_shop) {
+ $with[] = 'activityorder';
+// }
+
+
+
+
+
+// $cate_list = Cate::where("status",'1')->column("name","id");
+// $label_list = Label::where("status",'1')->column("name","id");
+// $type_list = Type::where("status",'1')->column("name","id");
+ $selfetch = self::with($with);
+
+// $selfetch = self::where("{$a}show", '=', '1');
+
+ $order = $order?? 'normal';
+ $per_page = $limit ?? 10;
+
+
+// $field = "{$a}id,{$a}title,{$a}image,{$a}status,{$a}video_file,{$a}recommend,{$a}show,{$a}weigh,{$a}views,{$a}collect,{$a}release_time,{$a}createtime,{$a}updatetime,{$a}deletetime";
+//
+// //得到距离
+// if (isset($latitude) && isset($longitude) && $latitude && $longitude) {
+// $field .= ', '.getDistanceBuilder($latitude, $longitude,$a);
+// }else{
+// $field .= ', 0 as distance';
+// }
+
+ //得到每个
+
+
+// $selfetch = $selfetch->field($field);
+ if (isset($keywords) && $keywords) {
+// //查询分类名获得分类id
+// $keywords_cate_ids = Cate::where("name",'like', '%' . $keywords . '%')->column("id");
+//
+// if($keywords_cate_ids){
+// $keywords_cate_ids = implode("|",$keywords_cate_ids);
+// $selfetch = $selfetch->where(function ($query)use($a,$keywords_cate_ids,$keywords){
+// $query->whereRaw(" {$a}cate_ids REGEXP '({$keywords_cate_ids})'")
+// ->whereOr("{$a}title|{$a}platform_title|{$a}content|{$a}address|{$a}address_detail|{$a}address_city", 'like', '%' . $keywords . '%');
+// });
+//
+//// $selfetch = $selfetch->whereOr( function ($query)use($a,$keywords_cate_ids){
+//// $query->whereRaw(" {$a}cate_ids REGEXP '({$keywords_cate_ids})'")
+//// ->where("{$a}show", '=', '1');
+//// });
+// }else{
+ $selfetch = $selfetch->where("{$a}name|{$a}idnum|{$a}mobile", 'like', '%' . $keywords . '%');
+// }
+
+
+ }
+
+
+
+
+
+ if (isset($user_id) && $user_id) {
+ $selfetch = $selfetch->where("{$a}user_id", 'in', ''.$user_id);
+ }
+
+ if (isset($my) && $my && isset($my_user_id) && $my_user_id) {
+ $selfetch = $selfetch->where("{$a}user_id", 'in', ''.$my_user_id);
+ }
+ if($my ==1 && empty($my_user_id)){
+ $selfetch = $selfetch->where("{$a}user_id", 'in', [-3]);
+ }
+
+
+
+
+ if (isset($activity_id) && $activity_id) {
+ $selfetch = $selfetch->where("{$a}activity_id", 'in', ''.$activity_id);
+ }
+
+
+
+
+ //设置订单信息
+ if(isset($status) && $status !=='' && $status !==null){
+ $selfetch = $selfetch->where("activityorder.status", 'in', ''.$status);
+ }
+
+
+ if(isset($code_status) && $code_status !=='' && $code_status !==null){
+ $selfetch = $selfetch->where("{$a}status", 'in', ''.$code_status);
+ }
+
+
+
+
+
+// $collect_classes_lib_ids = [-1];
+// //需登录查询条件:
+// if(isset($my_user_id) && $my_user_id){
+// //得到我收藏的课程ids
+// $collect_classes_lib_ids = Collect::where("user_id",$my_user_id)->column("meal_classes_id");
+// //专查我的收藏
+// if(isset($collect) && $collect){
+// $selfetch = $selfetch->where("{$a}id","in",$collect_classes_lib_ids);
+// }
+//
+// }
+
+
+
+
+ //排序
+ switch ($order) {
+ case "normal": //综合排序(推薦優先)
+ $selfetch = $selfetch->order("{$a}id desc");
+ break;
+// case "distance": //距离优先 权重
+// $selfetch = $selfetch->order("distance asc,{$a}recommend desc,{$a}weigh desc,{$a}id desc");
+// break;
+
+// case "recommend": //推薦优先
+// $selfetch = $selfetch->order("{$a}recommend desc,{$a}weigh desc,{$a}id desc");
+// break;
+
+ case "earliest": //浏览量优先
+ $selfetch = $selfetch->order("{$a}id asc");
+ break;
+ case "new": //收藏量优先
+ $selfetch = $selfetch->order("{$a}id desc");
+ break;
+ case "recently": //收藏量优先
+ $selfetch = $selfetch->order("{$a}id desc");
+ break;
+ default:
+ throw new \Exception("不支持的排序类型");
+ }
+
+// if(isset($nearby) && $nearby) {
+//// throw new \Exception("现版本不支持");
+// $selfetch = $selfetch->having("distance <= {$nearby}");
+// }
+ if($count){
+ $total = $selfetch->count();
+ return $total;
+ }
+
+
+
+
+ $selfetch = $selfetch->page($page,$limit)->select();
+
+
+// foreach ($selfetch as $row) {
+//
+//// $row->getRelation('manystore')->visible(['nickname']);
+//// $row->getRelation('user')->visible(['nickname','avatar']);
+// }
+ $rows = $selfetch;
+// $total = $selfetch->total();
+
+
+
+ //额外附加数据
+ foreach ($rows as &$row) { //迭代器魔术方法遍历,填值自动引用传值
+ //设置是否已收藏
+ if (isset($my) && $my) {
+ if (isset($my_user_id) && $my_user_id) {
+ //正常全显示
+ }else{
+ $row["name"] = "***";
+ if($row["idnum"] && $row["open"] == '0'){
+ //替换除了前三位往后所有字符为*
+ $row["idnum"] = substr_replace($row["idnum"], "***", 3, -4);
+ }
+ }
+
+ }
+
+// $classes_cate_ids = $row['cate_ids'];
+// $classes_cate = [];
+// foreach (explode(",", $classes_cate_ids) as $classes_cate_id){
+// if(isset($cate_list[$classes_cate_id]))$classes_cate[] = $cate_list[$classes_cate_id];
+// }
+// $row['cate'] = $classes_cate;
+
+ }
+// $result = array("data" => $rows);
+ return $rows;
+ }
+
+
+
+
}
diff --git a/application/manystore/controller/school/activity/Activity.php b/application/manystore/controller/school/activity/Activity.php
index 68dd5d5..5303237 100644
--- a/application/manystore/controller/school/activity/Activity.php
+++ b/application/manystore/controller/school/activity/Activity.php
@@ -508,6 +508,34 @@ class Activity extends ManystoreBase
}
+
+ /**
+ * 微信短链接
+ * @return string
+ * @throws \think\Exception
+ * @throws \think\db\exception\BindParamException
+ * @throws \think\exception\DbException
+ * @throws \think\exception\PDOException
+ */
+ public function miniurl($ids = ''){
+ $param = $this->request->param();
+ if($this->request->isPost()){
+ try{
+ if(isset($param['ids']))$ids = $param['ids'];
+ //设置模拟资格
+ $url = \app\common\model\school\activity\Activity::getMiniQrcodeLink($ids);
+
+ }catch (\Exception $e){
+ $this->error($e->getMessage());
+ }
+ $this->success($url["url_link"]);
+ }
+ $row = $this->model->get($ids);
+ $this->view->assign('vo', $row);
+ return $this->view->fetch();
+ }
+
+
/**
* 微信小程序码
* @return string
diff --git a/application/manystore/view/school/activity/activity/add.html b/application/manystore/view/school/activity/activity/add.html
index 9290c3c..60b6d2f 100644
--- a/application/manystore/view/school/activity/activity/add.html
+++ b/application/manystore/view/school/activity/activity/add.html
@@ -24,8 +24,8 @@
diff --git a/application/manystore/view/school/activity/activity/copy.html b/application/manystore/view/school/activity/activity/copy.html
index 3500695..603a71d 100644
--- a/application/manystore/view/school/activity/activity/copy.html
+++ b/application/manystore/view/school/activity/activity/copy.html
@@ -27,8 +27,8 @@
diff --git a/application/manystore/view/school/activity/activity/edit.html b/application/manystore/view/school/activity/activity/edit.html
index 4556f34..038b6cd 100644
--- a/application/manystore/view/school/activity/activity/edit.html
+++ b/application/manystore/view/school/activity/activity/edit.html
@@ -27,8 +27,8 @@
diff --git a/public/assets/js/backend/school/activity/activity.js b/public/assets/js/backend/school/activity/activity.js
index 38ae903..4d1bf8f 100644
--- a/public/assets/js/backend/school/activity/activity.js
+++ b/public/assets/js/backend/school/activity/activity.js
@@ -16,6 +16,8 @@ define(['jquery', 'bootstrap', 'backend', 'csmtable', 'form'], function ($, unde
lookminiqrcode_url: 'school/activity/activity/lookminiqrcode',
miniqrcode_url: 'school/activity/activity/miniqrcode',
+ url_url: 'school/activity/activity/url',
+ miniurl_url: 'school/activity/activity/miniurl',
table: 'school_activity',
}
@@ -110,6 +112,70 @@ define(['jquery', 'bootstrap', 'backend', 'csmtable', 'form'], function ($, unde
{field: 'operate', title: __('Operate'), table: table , buttons: [
+ {name: 'url',
+ text: '查看小程序内链',
+ icon: 'fa fa-chain',
+ classname: 'btn btn-ajax',
+ url: $.fn.bootstrapTable.defaults.extend.url_url,
+ confirm: '查看小程序内部连接,用于配置轮播图跳转',
+ dropdown : '更多',
+ success: function (data, ret) {
+ //JS将内容放入复制板
+ try {
+ navigator.clipboard.writeText(ret.msg);
+ console.log('Text copied to clipboard');
+ Layer.alert("已自动复制内容 : " + ret.msg );
+ } catch (err) {
+ console.error('Failed to copy: ', err);
+ Layer.alert("浏览器不支持复制,请自行复制 : " + ret.msg );
+ }
+
+ $(".btn-refresh").trigger("click");
+ },
+ error: function (data, ret) {
+ Layer.alert(ret.msg);
+ return false;
+ },
+ // visible: function (row) {
+ // //显示条件 只能待入住订单
+ // if(row.status == '3'){
+ // return true;
+ // }
+ // return false;
+ // }
+ },
+ {name: 'miniurl',
+ text: '查看小程序外链',
+ icon: 'fa fa-chain',
+ classname: 'btn btn-ajax',
+ url: $.fn.bootstrapTable.defaults.extend.miniurl_url,
+ confirm: '查看小程序外部连接,用于第三方程序引流,网址跳转用',
+ dropdown : '更多',
+ success: function (data, ret) {
+ //JS将内容放入复制板
+ try {
+ navigator.clipboard.writeText(ret.msg);
+ console.log('Text copied to clipboard');
+ Layer.alert("已自动复制内容 : " + ret.msg );
+ } catch (err) {
+ console.error('Failed to copy: ', err);
+ Layer.alert("浏览器不支持复制,请自行复制 : " + ret.msg );
+ }
+
+ $(".btn-refresh").trigger("click");
+ },
+ error: function (data, ret) {
+ Layer.alert(ret.msg);
+ return false;
+ },
+ // visible: function (row) {
+ // //显示条件 只能待入住订单
+ // if(row.status == '3'){
+ // return true;
+ // }
+ // return false;
+ // }
+ },
{name: 'cancel',
text: '取消活动',
icon: 'fa fa-user-times',
diff --git a/public/assets/js/manystore/school/activity/activity.js b/public/assets/js/manystore/school/activity/activity.js
index 0a60c04..fcd3c95 100644
--- a/public/assets/js/manystore/school/activity/activity.js
+++ b/public/assets/js/manystore/school/activity/activity.js
@@ -17,6 +17,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
lookminiqrcode_url: 'school/activity/activity/lookminiqrcode',
miniqrcode_url: 'school/activity/activity/miniqrcode',
+ url_url: 'school/activity/activity/url',
+ miniurl_url: 'school/activity/activity/miniurl',
+
table: 'school_activity',
}
@@ -110,6 +113,72 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
{field: 'operate', title: __('Operate'), table: table , buttons: [
+ {name: 'url',
+ text: '查看小程序内链',
+ icon: 'fa fa-chain',
+ classname: 'btn btn-ajax',
+ url: $.fn.bootstrapTable.defaults.extend.url_url,
+ confirm: '查看小程序内部连接,用于配置轮播图跳转',
+ dropdown : '更多',
+ success: function (data, ret) {
+ //JS将内容放入复制板
+ try {
+ navigator.clipboard.writeText(ret.msg);
+ console.log('Text copied to clipboard');
+ Layer.alert("已自动复制内容 : " + ret.msg );
+ } catch (err) {
+ console.error('Failed to copy: ', err);
+ Layer.alert("浏览器不支持复制,请自行复制 : " + ret.msg );
+ }
+
+ $(".btn-refresh").trigger("click");
+ },
+ error: function (data, ret) {
+ Layer.alert(ret.msg);
+ return false;
+ },
+ // visible: function (row) {
+ // //显示条件 只能待入住订单
+ // if(row.status == '3'){
+ // return true;
+ // }
+ // return false;
+ // }
+ },
+ {name: 'miniurl',
+ text: '查看小程序外链',
+ icon: 'fa fa-chain',
+ classname: 'btn btn-ajax',
+ url: $.fn.bootstrapTable.defaults.extend.miniurl_url,
+ confirm: '查看小程序外部连接,用于第三方程序引流,网址跳转用',
+ dropdown : '更多',
+ success: function (data, ret) {
+ //JS将内容放入复制板
+ try {
+ navigator.clipboard.writeText(ret.msg);
+ console.log('Text copied to clipboard');
+ Layer.alert("已自动复制内容 : " + ret.msg );
+ } catch (err) {
+ console.error('Failed to copy: ', err);
+ Layer.alert("浏览器不支持复制,请自行复制 : " + ret.msg );
+ }
+
+ $(".btn-refresh").trigger("click");
+ },
+ error: function (data, ret) {
+ Layer.alert(ret.msg);
+ return false;
+ },
+ // visible: function (row) {
+ // //显示条件 只能待入住订单
+ // if(row.status == '3'){
+ // return true;
+ // }
+ // return false;
+ // }
+ },
+
+
{name: 'cancel',
text: '取消活动',
icon: 'fa fa-user-times',