diff --git a/application/admin/controller/manystore/Rule.php b/application/admin/controller/manystore/Rule.php
index 2a2ade7..27940fe 100644
--- a/application/admin/controller/manystore/Rule.php
+++ b/application/admin/controller/manystore/Rule.php
@@ -106,7 +106,7 @@ class Rule extends Backend
}
//自己不能是自己的上级
- if ($params['pid'] == $params['id']) {
+ if ($params['pid'] == $row['id']) {
$this->error(__('The parent can not be itself'));
}
if ($params['pid'] != $row['pid']) {
diff --git a/application/admin/controller/school/activity/order/Order.php b/application/admin/controller/school/activity/order/Order.php
index 62d35aa..3d6fc06 100644
--- a/application/admin/controller/school/activity/order/Order.php
+++ b/application/admin/controller/school/activity/order/Order.php
@@ -221,8 +221,8 @@ class Order extends Backend
try{
$params = $this->request->post("row/a");
$order_no = $params["order_no"];
- $reject_reason = $params["reject_reason"];
- $price = $params["price"];
+ $reject_reason = $params["reject_reason"] ?? "";
+ $price = $params["price"] ?? 0;
$status = $params["status"];
$model = (new \app\common\model\school\activity\order\Order());
$model->shopConfirmation($order_no,$status,$price,$reject_reason,0,true,'admin',$this->auth->id,true);
@@ -259,11 +259,11 @@ class Order extends Backend
$params = $this->request->post("row/a");
$order_no = $params["order_no"];
$status = $params["status"];
- $price = $params["price"];
+ $price = $params["price"] ?? 0;
$model = (new \app\common\model\school\activity\order\Order());
$model->adminConfirmation($order_no,$status,$price,0,true,'admin',$this->auth->id,true);
}catch (\Exception $e){
- $this->error($e->getMessage());
+ $this->error($e->getMessage() . $e->getFile() . $e->getLine());
}
$this->success("已完成审核");
@@ -296,7 +296,7 @@ class Order extends Backend
$params = $this->request->post("row/a");
$classes_order = $params["id"];
$reason = $params["reason"];
- $num = $params["num"];
+ $num = $params["num"] ?? 0;
$model = (new \app\common\model\school\activity\order\Order());
$order = $model->afterSales($classes_order,$num,$reason,0 ,false,'admin',$this->auth->id,true);
diff --git a/application/admin/lang/zh-cn/school/activity/order/order.php b/application/admin/lang/zh-cn/school/activity/order/order.php
index 51a3311..1ce921c 100644
--- a/application/admin/lang/zh-cn/school/activity/order/order.php
+++ b/application/admin/lang/zh-cn/school/activity/order/order.php
@@ -80,4 +80,5 @@ return [
'Suspend_status 0' => '未挂起',
'Suspend_status 1' => '售后拒绝',
'Suspend_status 2' => '售后超时',
+ 'Reject_reason' => '售後拒絕原因',
];
diff --git a/application/admin/view/school/activity/refund/index.html b/application/admin/view/school/activity/refund/index.html
index ed91bb0..b267137 100644
--- a/application/admin/view/school/activity/refund/index.html
+++ b/application/admin/view/school/activity/refund/index.html
@@ -20,7 +20,7 @@
{:__('Add')}
{:__('Edit')}
{:__('Delete')}
-
+
{:__('More')}
diff --git a/application/api/controller/Index.php b/application/api/controller/Index.php
index 4567b57..212fa3e 100644
--- a/application/api/controller/Index.php
+++ b/application/api/controller/Index.php
@@ -61,6 +61,15 @@ class Index extends Api
'entry_agreement_file' => config("site.entry_agreement_file"),
"privacy_file"=> config("site.privacy_file"),
"user_protocol_file"=> config("site.user_protocol_file"),
+
+
+
+ "commitment_activity"=> config("site.commitment_activity"),
+ "commitment_activity_file"=> config("site.commitment_activity_file"),
+ "user_participation_notice"=> config("site.user_participation_notice"),
+ "user_participation_notice_file"=> config("site.user_participation_notice_file"),
+
+
];
$this->success(__('查询成功'), $data);
diff --git a/application/api/controller/school/NewActivity.php b/application/api/controller/school/NewActivity.php
index 3571115..072aac4 100644
--- a/application/api/controller/school/NewActivity.php
+++ b/application/api/controller/school/NewActivity.php
@@ -305,7 +305,9 @@ class NewActivity extends Base
$res = $this->model->add($params,$user_id,'user',$user_id,true);
}catch (\Throwable $e){
- $this->error($e->getMessage());
+ $this->error($e->getMessage(),[
+ "errcode"=>$e->getCode()
+ ]);
}
$this->success('添加成功', $res);
}
diff --git a/application/common/controller/ManystoreBase.php b/application/common/controller/ManystoreBase.php
index 0e58567..053cb8f 100644
--- a/application/common/controller/ManystoreBase.php
+++ b/application/common/controller/ManystoreBase.php
@@ -128,6 +128,40 @@ class ManystoreBase extends Controller
protected $need_auth = false;
protected $no_auth_fields = [];
+
+
+ protected function transactionCheck()
+ {
+ // 得到活动交易关闭时间段列表
+ $activity_close_times = config("site.activity_close_time") ?: [];
+ foreach ($activity_close_times as $key => $value) {
+ // 解析时间区间
+ $time_arr = explode("-", $value);
+ $start_time = trim($time_arr[0]);
+ $end_time = trim($time_arr[1]);
+
+ // 当前时间
+ $current_time = date("H:i");
+
+ // 跨天时间段的处理
+ if ($start_time > $end_time) {
+ // 如果当前时间大于等于开始时间 或者 小于等于结束时间,则认为在范围内
+ if ($current_time >= $start_time || $current_time <= $end_time) {
+ $this->error("活动交易已关闭进入结算周期,期间您无法交易!");
+ }
+ } else {
+ // 普通时间段的处理
+ if ($current_time >= $start_time && $current_time <= $end_time) {
+ $this->error("活动交易已关闭进入结算周期,期间您无法交易!");
+ }
+ }
+ }
+
+
+ }
+
+
+
protected function no_auth_fields_check($params,$row){
if($this->no_auth_fields == "*")return $this->have_auth;
@@ -278,7 +312,8 @@ class ManystoreBase extends Controller
$this->error(__('Please login first'), url('index/login', ['url' => $url]));
}
-
+ //交易时间检测
+ $this->transactionCheck();
// 判断是否需要验证权限
diff --git a/application/common/listener/manystore/ShopHook.php b/application/common/listener/manystore/ShopHook.php
index f9868c4..f2c6bff 100644
--- a/application/common/listener/manystore/ShopHook.php
+++ b/application/common/listener/manystore/ShopHook.php
@@ -30,34 +30,34 @@ class ShopHook
["shop"=>$shop] = $params;
//同步所有机构地址
- $classesLibs = \app\common\model\school\classes\ClassesLib::where("shop_id",$shop["id"])->where("address_type","1")->select();
- foreach ($classesLibs as $classesLib){
- $classesLib["address_city"] = $shop["address_city"];
- $classesLib["province"] = $shop["province"];
- $classesLib["city"] = $shop["city"];
- $classesLib["district"] = $shop["district"];
- $classesLib["longitude"] = $shop["longitude"];
- $classesLib["latitude"] = $shop["latitude"];
- $classesLib["address"] = $shop["address"];
- $classesLib["address_detail"] = $shop["address_detail"];
- $classesLib->save();
- \app\common\model\school\classes\ClassesLib::update_classes($classesLib["id"]);
- }
-
-
- $activitys = \app\common\model\school\classes\activity\Activity::where("shop_id",$shop["id"])->where("address_type","1")->select();
- foreach ($activitys as $activity){
- $activity["address_city"] = $shop["address_city"];
- $activity["province"] = $shop["province"];
- $activity["city"] = $shop["city"];
- $activity["district"] = $shop["district"];
- $activity["longitude"] = $shop["longitude"];
- $activity["latitude"] = $shop["latitude"];
- $activity["address"] = $shop["address"];
- $activity["address_detail"] = $shop["address_detail"];
- $activity->save();
- \app\common\model\school\classes\activity\Activity::update_classes($activity["id"]);
- }
+// $classesLibs = \app\common\model\school\classes\ClassesLib::where("shop_id",$shop["id"])->where("address_type","1")->select();
+// foreach ($classesLibs as $classesLib){
+// $classesLib["address_city"] = $shop["address_city"];
+// $classesLib["province"] = $shop["province"];
+// $classesLib["city"] = $shop["city"];
+// $classesLib["district"] = $shop["district"];
+// $classesLib["longitude"] = $shop["longitude"];
+// $classesLib["latitude"] = $shop["latitude"];
+// $classesLib["address"] = $shop["address"];
+// $classesLib["address_detail"] = $shop["address_detail"];
+// $classesLib->save();
+// \app\common\model\school\classes\ClassesLib::update_classes($classesLib["id"]);
+// }
+//
+//
+// $activitys = \app\common\model\school\classes\activity\Activity::where("shop_id",$shop["id"])->where("address_type","1")->select();
+// foreach ($activitys as $activity){
+// $activity["address_city"] = $shop["address_city"];
+// $activity["province"] = $shop["province"];
+// $activity["city"] = $shop["city"];
+// $activity["district"] = $shop["district"];
+// $activity["longitude"] = $shop["longitude"];
+// $activity["latitude"] = $shop["latitude"];
+// $activity["address"] = $shop["address"];
+// $activity["address_detail"] = $shop["address_detail"];
+// $activity->save();
+// \app\common\model\school\classes\activity\Activity::update_classes($activity["id"]);
+// }
}
diff --git a/application/common/model/school/activity/Activity.php b/application/common/model/school/activity/Activity.php
index 2812298..1eea285 100644
--- a/application/common/model/school/activity/Activity.php
+++ b/application/common/model/school/activity/Activity.php
@@ -537,6 +537,15 @@ class Activity extends BaseModel
if(!$image) throw new \Exception("轮播图不能为空");
}
+ //发活动是否需要实名认证
+ if(config("site.activity_realname_switch")){
+ //查询是否实名认证
+ $real_name_info = (new \app\common\model\cardocr\Card)->checkRealname($params["user_id"]);
+ if($real_name_info["status"]!=1) throw new \Exception("请先实名认证",1001100);
+ }
+
+
+
if($params["price"]>0){
@@ -1055,6 +1064,8 @@ class Activity extends BaseModel
//退款政策
$self['refund_info'] = Refund::where("id",$self["refund_id"])->find();
+ $self['refund_desc'] = $this->refund_desc($id,$order_id=0);
+
//只退百分之50的起始时间点
$return_50 = 0;
if($self['refund_info']){
@@ -1071,7 +1082,6 @@ class Activity extends BaseModel
}
-
}
$self["return_50"] = $return_50;
$self["last_time"] = $self["end_time"] + config("site.activity_end_sales");
@@ -1698,4 +1708,172 @@ class Activity extends BaseModel
}
+ public function refund_desc($id=0,$order_id=0){
+ if(!$id && !$order_id) throw new \Exception("参数错误");
+
+ if($id){
+ $self = self::where("id",$id)->find();
+ if(!$self) return false;
+ //退款政策
+ $refund_info = Refund::where("id",$self["refund_id"])->find();
+ $refund_status = $refund_info["status"];
+ //总支付金额
+// $total_price = $self["price"];
+// $half_price = bcdiv($total_price,2,2);
+
+ $total_price = "实际支付金额";
+ $half_price = "实际支付的一半";
+ //剩余未退金额
+ $refund_price = $self["price"];
+ //是否免费
+ $free = $self["feel"];
+ }
+ if($order_id){
+ $order = Order::where("id",$order_id)->find();
+ if(!$order) throw new \Exception("参数错误");
+ $self = $order->detail;
+ if(!$self) throw new \Exception("参数错误");
+ //退款政策
+ $refund_info = Refund::where("id",$self["refund_id"])->find();
+ //根据不同退款策略判断当前时间点是否可取消并退款
+ $refund_status = $refund_info["status"] ?? $self["refund_status"];
+ //是否免费
+ $free = $self["feel"];
+ //总支付金额
+ $total_price = $order["payprice"];
+ //剩余未退金额
+ $refund_price = $order["sub_refundprice"];
+ $half_price = bcdiv($total_price,2,2);
+ }
+
+
+
+
+
+ //只退百分之50的起始时间点
+ $refund_table = [];
+
+ if($free) {
+ $refund_table = [
+ [
+ "refund_time"=>"免费活动不参与退款",
+ "refund_scale"=>"0%",
+ "refund_price"=>0,
+ ]
+ ];
+ return $refund_table;
+ }
+
+
+
+ $return_50 = 0;
+
+ switch ($refund_status){
+ case "1" : //不退款
+ $data = [
+ "refund_time"=>"不支持退款!",
+ "refund_scale"=>"0%",
+ "refund_price"=>0,
+ ];
+ $refund_table = [$data];
+ break;
+ case "3" : //开始前退
+
+ $refund_table[] = [
+ "refund_time"=>"报名开始至" . date("Y年m月d日 H:i",$self["start_time"])."可取消" ,
+ "refund_scale"=>"100%",
+ "refund_price"=>$total_price,
+ ];
+ $refund_table[] = [
+ "refund_time"=> date("Y年m月d日 H:i",$self["start_time"])."后 (特殊原因协商)" ,
+ "refund_scale"=>"需与发布者协商",
+ "refund_price"=>"需与发布者协商",
+ ];
+
+
+ break;
+ case "5" : //随时退
+
+ $refund_table[] = [
+ "refund_time"=>"报名开始至" . date("Y年m月d日 H:i",$self["start_time"])."可取消" ,
+ "refund_scale"=>"100%",
+ "refund_price"=>$total_price,
+ ];
+ $refund_table[] = [
+ "refund_time"=> date("Y年m月d日 H:i",$self["start_time"])."后可申请售后" ,
+ "refund_scale"=>"需与发布者协商",
+ "refund_price"=>"需与发布者协商",
+ ];
+
+ break;
+ case "7" : //前12小时退
+ $return_50 = $self["start_time"] - 12*3600;
+ $refund_table[] = [
+ "refund_time"=>"报名开始至" . date("Y年m月d日 H:i",$return_50)."(12小时前)" ,
+ "refund_scale"=>"100%",
+ "refund_price"=>$total_price,
+ ];
+ $refund_table[] = [
+ "refund_time"=>date("Y年m月d日 H:i",$return_50)."后至" . date("Y年m月d日 H:i",$self["start_time"])."(活动开始前)",
+ "refund_scale"=>"50%",
+ "refund_price"=>$half_price,
+ ];
+
+ $refund_table[] = [
+ "refund_time"=> date("Y年m月d日 H:i",$self["start_time"])."后 (特殊原因协商)" ,
+ "refund_scale"=>"需与发布者协商",
+ "refund_price"=>"需与发布者协商",
+ ];
+
+ break;
+ case "9" : //前24小时退
+ $return_50 = $self["start_time"] - 24*3600;
+
+ $refund_table[] = [
+ "refund_time"=>"报名开始至" . date("Y年m月d日 H:i",$return_50)."(24小时前)" ,
+ "refund_scale"=>"100%",
+ "refund_price"=>$total_price,
+ ];
+ $refund_table[] = [
+ "refund_time"=>date("Y年m月d日 H:i",$return_50)."后至" . date("Y年m月d日 H:i",$self["start_time"])."(活动开始前)",
+ "refund_scale"=>"50%",
+ "refund_price"=>$half_price,
+ ];
+
+ $refund_table[] = [
+ "refund_time"=> date("Y年m月d日 H:i",$self["start_time"])."后 (特殊原因协商)" ,
+ "refund_scale"=>"需与发布者协商",
+ "refund_price"=>"需与发布者协商",
+ ];
+
+
+ break;
+ case "11" : //前48小时退
+ $return_50 = $self["start_time"] - 48*3600;
+
+ $refund_table[] = [
+ "refund_time"=>"报名开始至" . date("Y年m月d日 H:i",$return_50)."(48小时前)" ,
+ "refund_scale"=>"100%",
+ "refund_price"=>$total_price,
+ ];
+ $refund_table[] = [
+ "refund_time"=>date("Y年m月d日 H:i",$return_50)."后至" . date("Y年m月d日 H:i",$self["start_time"])."(活动开始前)",
+ "refund_scale"=>"50%",
+ "refund_price"=>$half_price,
+ ];
+
+ $refund_table[] = [
+ "refund_time"=> date("Y年m月d日 H:i",$self["start_time"])."后 (特殊原因协商)" ,
+ "refund_scale"=>"需与发布者协商",
+ "refund_price"=>"需与发布者协商",
+ ];
+ break;
+
+ }
+
+
+ return $refund_table;
+ }
+
+
}
diff --git a/application/common/model/school/activity/order/Detail.php b/application/common/model/school/activity/order/Detail.php
index 35cd21a..1dd1a5e 100644
--- a/application/common/model/school/activity/order/Detail.php
+++ b/application/common/model/school/activity/order/Detail.php
@@ -38,4 +38,10 @@ class Detail extends BaseModel
}
+ public function getImageAttr($value, $data)
+ {
+ if (!empty($value)) return cdnurl($value,true);
+ }
+
+
}
diff --git a/application/common/model/school/activity/order/Order.php b/application/common/model/school/activity/order/Order.php
index c144abc..f670d91 100644
--- a/application/common/model/school/activity/order/Order.php
+++ b/application/common/model/school/activity/order/Order.php
@@ -493,6 +493,8 @@ class Order extends BaseModel
];
$data['verification'] = $verification;
+ $data['refund_desc'] = (new Activity)->refund_desc(0,$data["id"]);
+
return $data;
}
@@ -1503,8 +1505,12 @@ class Order extends BaseModel
}
if($check){
+
+ //退款政策
+ $refund_info = Refund::where("id",$detail["refund_id"])->find();
+
//根据不同退款策略判断当前时间点是否可取消并退款
- $refund_status = $detail["refund_status"];
+ $refund_status = $refund_info["status"] ?? $detail["refund_status"];
//活动开始后不可取消,只能走售后
$time = time();
switch ($refund_status){
@@ -1517,14 +1523,17 @@ class Order extends BaseModel
if ($detail['start_time'] < $time) throw new \Exception("活动开始后不可取消,请走售后流程!");
break;
case "7": //前12小时退
-
+// $time = $time - 12 * 60 * 60;
if ($detail['start_time'] < $time) throw new \Exception("活动开始后不可取消,请走售后流程!");
break;
case "9": //前24小时退
+// $time = $time - 24 * 60 * 60;
if ($detail['start_time'] < $time) throw new \Exception("活动开始后不可取消,请走售后流程!");
+
break;
- case "11": //前24小时退
+ case "11": //前48小时退
+// $time = $time - 48 * 60 * 60;
if ($detail['start_time'] < $time) throw new \Exception("活动开始后不可取消,请走售后流程!");
break;
@@ -1697,7 +1706,11 @@ class Order extends BaseModel
//根据不同退款策略判断当前时间点是否可取消并退款
- $refund_status = $detail["refund_status"];
+ //退款政策
+ $refund_info = Refund::where("id",$detail["refund_id"])->find();
+
+ //根据不同退款策略判断当前时间点是否可取消并退款
+ $refund_status = $refund_info["status"] ?? $detail["refund_status"];
//活动开始后不可取消,只能走售后
$time = time();
diff --git a/application/common/model/school/activity/order/OrderCode.php b/application/common/model/school/activity/order/OrderCode.php
index c16baad..7c4be1b 100644
--- a/application/common/model/school/activity/order/OrderCode.php
+++ b/application/common/model/school/activity/order/OrderCode.php
@@ -130,7 +130,7 @@ class OrderCode extends BaseModel
// $where = [self::STATUS_NOPAY,self::STATUS_PAYED];
$ordercode = self::where('code',$code)->where("status","in",['3'])->find();
if(!$ordercode)throw new \Exception("当前码已存在或核销过!");
- $order = $ordercode->order;
+ $order = $ordercode->activityorder;
if(!$order)throw new \Exception("订单异常!");
if(!$check) return $ordercode;
@@ -157,7 +157,7 @@ class OrderCode extends BaseModel
{
$ordercode = self::updateVerification($code,$oper_id,$oper_type,$check);
- $order = $ordercode->order;
+ $order = $ordercode->activityorder;
if($check){
//插入订单取消日志
@@ -194,7 +194,7 @@ 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);
- $order = $ordercode->order;
+ $order = $ordercode->activityorder;
if(!$order) throw new \Exception("订单异常!");
$detail = $order->detail;
if(!$detail) throw new \Exception("订单异常!");
diff --git a/application/common/model/school/activity/order/OrderDetail.php b/application/common/model/school/activity/order/OrderDetail.php
index a63e1b4..73e7805 100644
--- a/application/common/model/school/activity/order/OrderDetail.php
+++ b/application/common/model/school/activity/order/OrderDetail.php
@@ -193,6 +193,13 @@ class OrderDetail extends BaseModel
+ public function getImageAttr($value, $data)
+ {
+ if (!empty($value)) return cdnurl($value,true);
+ }
+
+
+
public function user()
{
return $this->belongsTo('app\common\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
diff --git a/application/manystore/controller/Ajax.php b/application/manystore/controller/Ajax.php
index cd6486e..43ca955 100644
--- a/application/manystore/controller/Ajax.php
+++ b/application/manystore/controller/Ajax.php
@@ -124,6 +124,8 @@ class Ajax extends ManystoreBase
$category = array_key_exists($category, config('site.attachmentcategory') ?? []) ? $category : '';
if ($splInfo) {
+
+
$params = array(
'category' => $category,
'shop_id' => (int)SHOP_ID,
@@ -140,6 +142,8 @@ class Ajax extends ManystoreBase
'sha1' => $sha1,
'extparam' => json_encode($extparam),
);
+// var_dump(1111);
+
$attachment = model("ManystoreAttachment");
$attachment->data(array_filter($params));
$attachment->save();
diff --git a/application/manystore/controller/school/activity/Activity.php b/application/manystore/controller/school/activity/Activity.php
new file mode 100644
index 0000000..8298fb8
--- /dev/null
+++ b/application/manystore/controller/school/activity/Activity.php
@@ -0,0 +1,566 @@
+model = new \app\manystore\model\school\activity\Activity;
+ $this->view->assign("statusList", $this->model->getStatusList());
+ $this->view->assign("cancelTypeList", $this->model->getCancelTypeList());
+ $this->view->assign("recommendList", $this->model->getRecommendList());
+ $this->view->assign("hotList", $this->model->getHotList());
+ $this->view->assign("newList", $this->model->getNewList());
+ $this->view->assign("addTypeList", $this->model->getAddTypeList());
+ $this->view->assign("feelList", $this->model->getFeelList());
+ $this->view->assign("authStatusList", $this->model->getAuthStatusList());
+ $this->view->assign("showList", $this->model->getShowList());
+// $this->view->assign("platformList", $this->model->getPlatformList());
+// $this->view->assign("settlestatusList", $this->model->getSettlestatusList());
+
+
+ $this->view->assign("cateList", $this->model->getCateList());
+ $this->view->assign("cateListJson", json_encode($this->model->getCateList(), JSON_UNESCAPED_UNICODE));
+
+ $this->view->assign("platformList", $this->model->getPlatformList());
+ $this->view->assign("platformListJson", json_encode($this->model->getPlatformList(), JSON_UNESCAPED_UNICODE));
+
+
+ $this->view->assign("settlestatusList", $this->model->getSettlestatusList());
+ $this->view->assign("settlestatusListJson", json_encode($this->model->getSettlestatusList(), JSON_UNESCAPED_UNICODE));
+
+ }
+
+ public function import()
+ {
+ parent::import();
+ }
+
+
+ /**
+ * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
+ * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
+ * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
+ */
+
+
+ /** 更新或新增后判断
+ * @param $classes_activity_id
+ * @return void
+ */
+ protected function update_classes($classes_activity_id,$params){
+ (new \app\common\model\school\activity\Activity)->update_classes($classes_activity_id);
+
+
+
+ }
+
+
+ /** 更新或新增前判断
+ * @param $classes_activity_id
+ * @return void
+ */
+ protected function update_check(&$params,$row=null){
+ (new \app\common\model\school\activity\Activity)->update_check($params,$row);
+ }
+
+ /** 删除前判断
+ * @param $id
+ * @param $params
+ * @param $row
+ * @return void
+ */
+ protected function updateCheck($id,$params=[],$row=null){
+ (new \app\common\model\school\activity\Activity)->updateCheck($id,$params,$row);
+ }
+
+ /**
+ * 查看
+ */
+ public function index()
+ {
+ //当前是否为关联查询
+ $this->relationSearch = true;
+
+ $this->searchFields = ["id","title","address","address_detail","address_city","user.nickname","user.realname","user.mobile"];
+
+
+ //设置过滤方法
+ $this->request->filter(['strip_tags', 'trim']);
+ if ($this->request->isAjax()) {
+ //如果发送的来源是Selectpage,则转发到Selectpage
+ if ($this->request->request('keyField')) {
+ return $this->selectpage();
+ }
+ list($where, $sort, $order, $offset, $limit) = $this->buildparams();
+
+ $as = $this->model->getWithAlisaName();
+ $list = $this->model
+ ->with(['user','schoolactivityrefund'])
+ ->where("{$as}.user_id", SHOP_USER_ID)
+ ->where($where)
+ ->order($sort, $order)
+ ->paginate($limit);
+
+ foreach ($list as $row) {
+
+ $row->getRelation('user')->visible(['nickname','mobile','avatar']);
+ $row->getRelation('schoolactivityrefund')->visible(['title','desc']);
+ }
+
+ $rows = $list->items();
+ foreach ($rows as $k=>&$v){
+ $v["miniqrcode_link"] = Url::build("/manystore/school/activity/activity/miniqrcode", ["ids" => $v["id"]]);
+ }
+ $result = array("total" => $list->total(), "rows" => $rows);
+
+
+// $result = array("total" => $list->total(), "rows" => $list->items());
+
+ return json($result);
+ }
+ return $this->view->fetch();
+ }
+
+
+
+
+
+
+ /**
+ * 添加
+ */
+ public function add($row=null)
+ {
+ if ($this->request->isPost()) {
+ $this->model = new \app\common\model\school\activity\Activity();
+// $this->transactionCheck();
+
+
+ $params = $this->request->post("row/a");
+ if ($params) {
+ $params = $this->preExcludeFields($params);
+
+ if($this->storeIdFieldAutoFill && STORE_ID ){
+ $params['store_id'] = STORE_ID;
+ }
+
+ if($this->shopIdAutoCondition && SHOP_ID){
+ $params['shop_id'] = SHOP_ID;
+ }
+
+ $result = false;
+ try{
+ if(!config("site.miniapp_activity_swtich")) $this->error("已关闭发布渠道,请联系管理员后台添加!");
+
+ $res = $this->model->add($params,SHOP_USER_ID,'shop',$this->auth->id,true);
+ }catch (\Throwable $e){
+ $this->error($e->getMessage());
+ }
+ $this->success('添加成功',null, $res);
+
+
+// Db::startTrans();
+// try {
+// //是否采用模型验证
+// if ($this->modelValidate) {
+// $name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
+// $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate;
+// $this->model->validateFailException(true)->validate($validate);
+// }
+//// $result = $this->model->allowField(true)->save($params);
+//
+//
+//
+// $this->update_check($params,$row=null);
+// $result = $this->model->allowField(true)->save($params);
+// $this->update_classes($this->model["id"],$params);
+//
+// $row = $this->model->get($this->model[ "id" ]);
+// if($params["auth_status"] == 1){
+// //审核通过
+// //调用事件
+// $data = ['activity' => $row,"user_id"=>$row["user_id"],"oper_type"=>"admin","oper_id"=>$this->auth->id];
+// \think\Hook::listen('new_activity_auth_success_after', $data);
+//
+// }else{
+// //审核不通过
+// //审核通过
+// //调用事件
+// $data = ['activity' => $row,"user_id"=>$row["user_id"],"oper_type"=>"admin","oper_id"=>$this->auth->id];
+// \think\Hook::listen('new_activity_auth_fail_after', $data);
+//
+// }
+//
+//
+//
+// Db::commit();
+// } catch (ValidateException $e) {
+// Db::rollback();
+// $this->error($e->getMessage());
+// } catch (PDOException $e) {
+// Db::rollback();
+// $this->error($e->getMessage());
+// } catch (Exception $e) {
+// Db::rollback();
+// $this->error($e->getMessage());
+// }
+// if ($result !== false) {
+// $this->success();
+// } else {
+// $this->error(__('No rows were inserted'));
+// }
+ }
+ $this->error(__('Parameter %s can not be empty', ''));
+ }
+ return $this->view->fetch();
+ }
+
+
+
+
+ /**
+ * 复制课程
+ *
+ * @param $ids
+ * @return string
+ * @throws DbException
+ * @throws \think\Exception
+ */
+ public function copy($ids = null)
+ {
+ $row = $this->model->get($ids);
+ if (!$row) {
+ $this->error(__('No Results were found'));
+ }
+
+ if (false === $this->request->isPost()) {
+ $this->view->assign('row', $row);
+ return $this->view->fetch();
+ }
+
+ $this->add($row);
+ }
+
+
+
+ /**
+ * 编辑
+ */
+ public function edit($ids = null)
+ {
+// if($this->shopIdAutoCondition){
+ $this->model->where(array('user_id'=>SHOP_USER_ID));
+// }
+ $row = $this->model->where(array('id'=>$ids))->find();
+ if (!$row) {
+ $this->error(__('No Results were found'));
+ }
+
+ if ($this->request->isPost()) {
+ $params = $this->request->post("row/a");
+ if ($params) {
+ $params = $this->preExcludeFields($params);
+
+// $auth_success = null;
+// if($row["auth_status"] !=$params["auth_status"]){
+// $auth_success = $params["auth_status"];
+// }
+
+
+ $result = false;
+ Db::startTrans();
+ try {
+ //是否采用模型验证
+ if ($this->modelValidate) {
+ $name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
+ $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate;
+ $row->validateFailException(true)->validate($validate);
+ }
+
+ //允许提交的字段
+ $allowField = [
+ "title",
+ "cate_ids",
+ "image",
+ "images",
+ "address_detail",
+ "address",
+ "longitude",
+ "latitude",
+ "price",
+ "stock",
+ "content",
+ "refund_id",
+ "show",
+ "platform",
+ ];
+ //非允许提交的字段去掉
+ $params = array_intersect_key($params, array_flip($allowField));
+
+// var_dump($params);die;
+
+ //'user_id'=>SHOP_USER_ID
+ $params["user_id"] = SHOP_USER_ID;
+ $params["auth_status"] = $row["auth_status"];
+// $params["reason"] = $row["reason"];
+ $this->update_check($params,$row);
+ unset($params["auth_status"]);
+
+ $result = $row->allowField(true)->save($params);
+ $this->update_classes($row["id"],$params);
+
+ $row = $this->model->get($row[ "id" ]);
+// if($auth_success == "1"){
+// //审核通过
+// //调用事件
+// $data = ['activity' => $row,"user_id"=>$row["user_id"],"oper_type"=>"admin","oper_id"=>$this->auth->id];
+// \think\Hook::listen('new_activity_auth_success_after', $data);
+//
+// }elseif($auth_success == "2"){
+// //审核不通过
+// //审核通过
+// //调用事件
+// $data = ['activity' => $row,"user_id"=>$row["user_id"],"oper_type"=>"admin","oper_id"=>$this->auth->id];
+// \think\Hook::listen('new_activity_auth_fail_after', $data);
+//
+// }
+
+ Db::commit();
+ } catch (ValidateException $e) {
+ Db::rollback();
+ $this->error($e->getMessage());
+ } catch (PDOException $e) {
+ Db::rollback();
+ $this->error($e->getMessage());
+ } catch (Exception $e) {
+ Db::rollback();
+ $this->error($e->getMessage());
+ }
+ if ($result !== false) {
+ $this->success();
+ } else {
+ $this->error(__('No rows were updated'));
+ }
+ }
+ $this->error(__('Parameter %s can not be empty', ''));
+ }
+ $this->view->assign("row", $row);
+ return $this->view->fetch();
+ }
+
+
+
+
+
+ /**
+ * 删除
+ */
+ public function del($ids = "")
+ {
+ if (!$this->request->isPost()) {
+ $this->error(__("Invalid parameters"));
+ }
+ $ids = $ids ? $ids : $this->request->post("ids");
+ if ($ids) {
+ $pk = $this->model->getPk();
+// if($this->shopIdAutoCondition){
+ $this->model->where(array('user_id'=>SHOP_USER_ID));
+// }
+ $list = $this->model->where($pk, 'in', $ids)->select();
+
+ foreach ($list as $item) {
+ $this->updateCheck($item->id);
+ }
+ $count = 0;
+ Db::startTrans();
+ try {
+ foreach ($list as $k => $v) {
+ $count += $v->delete();
+ }
+ Db::commit();
+ } catch (PDOException $e) {
+ Db::rollback();
+ $this->error($e->getMessage());
+ } catch (Exception $e) {
+ Db::rollback();
+ $this->error($e->getMessage());
+ }
+ if ($count) {
+ $this->success();
+ } else {
+ $this->error(__('No rows were deleted'));
+ }
+ }
+ $this->error(__('Parameter %s can not be empty', 'ids'));
+ }
+
+
+
+
+
+
+ /**
+ * 活动取消
+ * @return string
+ * @throws \think\Exception
+ * @throws \think\db\exception\BindParamException
+ * @throws \think\exception\DbException
+ * @throws \think\exception\PDOException
+ */
+ public function cancel($ids = ''){
+ $param = $this->request->param();
+ if($this->request->isPost()){
+ try{
+ if(isset($param['ids']))$ids = $param['ids'];
+ //设置模拟资格
+ $model = (new \app\common\model\school\activity\Activity);
+ $model->cancel($ids,"2",false,'user',SHOP_USER_ID,true);
+
+ }catch (\Exception $e){
+ $this->error($e->getMessage());
+ }
+ $this->success('取消成功!');
+ }
+ $row = $this->model->get($ids);
+ $this->view->assign('vo', $row);
+ return $this->view->fetch();
+ }
+
+
+
+
+
+
+
+ /**
+ * 跳转链接
+ * @return string
+ * @throws \think\Exception
+ * @throws \think\db\exception\BindParamException
+ * @throws \think\exception\DbException
+ * @throws \think\exception\PDOException
+ */
+ public function url($ids = ''){
+ $param = $this->request->param();
+ if($this->request->isPost()){
+ try{
+ if(isset($param['ids']))$ids = $param['ids'];
+ //设置模拟资格
+ $url = \app\common\model\school\activity\Activity::getPath($ids);
+
+ }catch (\Exception $e){
+ $this->error($e->getMessage());
+ }
+ $this->success($url);
+ }
+ $row = $this->model->get($ids);
+ $this->view->assign('vo', $row);
+ return $this->view->fetch();
+ }
+
+
+ /**
+ * 微信小程序码
+ * @return string
+ * @throws \think\Exception
+ * @throws \think\db\exception\BindParamException
+ * @throws \think\exception\DbException
+ * @throws \think\exception\PDOException
+ */
+ public function miniqrcode($ids = ''){
+ $param = $this->request->param();
+ try{
+ if(isset($param['ids']))$ids = $param['ids'];
+ //设置模拟资格
+ $url = \app\common\model\school\activity\Activity::getMiniQrcodeLink($ids);
+
+ }catch (\Exception $e){
+ $this->error($e->getMessage());
+ }
+
+ return $url["response"];
+ }
+
+
+
+
+ /**
+ * 查看微信小程序码
+ * @return string
+ * @throws \think\Exception
+ * @throws \think\db\exception\BindParamException
+ * @throws \think\exception\DbException
+ * @throws \think\exception\PDOException
+ */
+ public function lookminiqrcode($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("生成小程序码成功",null,$url);
+ }
+ $row = $this->model->get($ids);
+ $this->view->assign('vo', $row);
+ return $this->view->fetch();
+ }
+
+
+
+
+
+
+ /**
+ * 回收站
+ */
+ public function recyclebin()
+ {
+ //设置过滤方法
+ $this->request->filter(['strip_tags', 'trim']);
+ if ($this->request->isAjax()) {
+ list($where, $sort, $order, $offset, $limit) = $this->buildparams();
+
+ $list = $this->model
+ ->onlyTrashed()
+ ->where($where)
+ ->where("user_id", SHOP_USER_ID)
+ ->order($sort, $order)
+ ->paginate($limit);
+
+ $result = array("total" => $list->total(), "rows" => $list->items());
+
+ return json($result);
+ }
+ return $this->view->fetch();
+ }
+
+
+}
diff --git a/application/manystore/controller/school/activity/Cate.php b/application/manystore/controller/school/activity/Cate.php
new file mode 100644
index 0000000..0bf7373
--- /dev/null
+++ b/application/manystore/controller/school/activity/Cate.php
@@ -0,0 +1,41 @@
+model = new \app\manystore\model\school\activity\Cate;
+ $this->view->assign("statusList", $this->model->getStatusList());
+ $this->view->assign("hotList", $this->model->getHotList());
+ }
+
+ public function import()
+ {
+ parent::import();
+ }
+
+ /**
+ * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
+ * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
+ * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
+ */
+
+
+}
diff --git a/application/manystore/controller/school/activity/Refund.php b/application/manystore/controller/school/activity/Refund.php
new file mode 100644
index 0000000..f1d303f
--- /dev/null
+++ b/application/manystore/controller/school/activity/Refund.php
@@ -0,0 +1,40 @@
+model = new \app\manystore\model\school\activity\Refund;
+ $this->view->assign("statusList", $this->model->getStatusList());
+ }
+
+ public function import()
+ {
+ parent::import();
+ }
+
+ /**
+ * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
+ * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
+ * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
+ */
+
+
+}
diff --git a/application/manystore/controller/school/activity/order/Order.php b/application/manystore/controller/school/activity/order/Order.php
new file mode 100644
index 0000000..46bf594
--- /dev/null
+++ b/application/manystore/controller/school/activity/order/Order.php
@@ -0,0 +1,329 @@
+model = new \app\manystore\model\school\activity\order\Order;
+ $this->view->assign("payTypeList", $this->model->getPayTypeList());
+ $this->view->assign("statusList", $this->model->getStatusList());
+ $this->view->assign("beforeStatusList", $this->model->getBeforeStatusList());
+ $this->view->assign("serverStatusList", $this->model->getServerStatusList());
+ $this->view->assign("suspendStatusList", $this->model->getSuspendStatusList());
+ $this->view->assign("authStatusList", $this->model->getAuthStatusList());
+ }
+
+ public function import()
+ {
+ parent::import();
+ }
+
+ /**
+ * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
+ * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
+ * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
+ */
+
+
+ /**
+ * 查看
+ */
+ public function index()
+ {
+ //当前是否为关联查询
+ $this->relationSearch = true;
+
+ $this->searchFields = ["id","refund_error","refund_no","order_no","pay_no","user_id","schoolactivityorderdetail.title","user.nickname","user.realname","user.mobile"];
+
+
+
+ //设置过滤方法
+ $this->request->filter(['strip_tags', 'trim']);
+ if ($this->request->isAjax()) {
+ //如果发送的来源是Selectpage,则转发到Selectpage
+ if ($this->request->request('keyField')) {
+ return $this->selectpage();
+ }
+ list($where, $sort, $order, $offset, $limit) = $this->buildparams();
+
+ $list = $this->model
+ ->with(['schoolactivity','schoolactivityorderdetail','user'])
+ ->where($where)
+ ->order($sort, $order)
+ ->paginate($limit);
+
+ foreach ($list as $row) {
+
+ $row->getRelation('schoolactivity')->visible(['title','images']);
+ $row->getRelation('schoolactivityorderdetail')->visible(['title','images']);
+ $row->getRelation('user')->visible(['nickname','mobile','avatar']);
+ }
+
+ $result = array("total" => $list->total(), "rows" => $list->items());
+
+ return json($result);
+ }
+ return $this->view->fetch();
+ }
+
+
+
+
+ /**
+ * 订单未支付取消
+ * @return string
+ * @throws \think\Exception
+ * @throws \think\db\exception\BindParamException
+ * @throws \think\exception\DbException
+ * @throws \think\exception\PDOException
+ */
+ public function freecancel($ids = ''){
+ $param = $this->request->param();
+ if($this->request->isPost()){
+ try{
+ if(isset($param['ids']))$ids = $param['ids'];
+ //设置模拟资格
+ $model = (new \app\common\model\school\activity\order\Order);
+ $model->freecancel($ids,0,true,'admin',$this->auth->id,true);
+
+ }catch (\Exception $e){
+ $this->error($e->getMessage());
+ }
+ $this->success('取消成功!');
+ }
+ $row = $this->model->get($ids);
+ $this->view->assign('vo', $row);
+ return $this->view->fetch();
+ }
+
+
+
+
+
+
+ /**
+ * 订单已支付取消
+ * @return string
+ * @throws \think\Exception
+ * @throws \think\db\exception\BindParamException
+ * @throws \think\exception\DbException
+ * @throws \think\exception\PDOException
+ */
+ public function paidcancel($ids = ''){
+ $param = $this->request->param();
+ if($this->request->isPost()){
+ try{
+ if(isset($param['ids']))$ids = $param['ids'];
+ //设置模拟资格
+ $model = (new \app\common\model\school\activity\order\Order);
+ $model->paidcancel($ids,0,true,'admin',$this->auth->id,false,true);
+
+ }catch (\Exception $e){
+ $this->error($e->getMessage());
+ }
+ $this->success('取消成功!');
+ }
+ $row = $this->model->get($ids);
+ $this->view->assign('vo', $row);
+ return $this->view->fetch();
+ }
+
+
+
+
+
+ /**
+ * 后台核销
+ * @return string
+ * @throws \think\Exception
+ * @throws \think\db\exception\BindParamException
+ * @throws \think\exception\DbException
+ * @throws \think\exception\PDOException
+ */
+ public function verification($ids = ''){
+ $param = $this->request->param();
+ if($this->request->isPost()){
+ try{
+ if(isset($param['ids']))$ids = $param['ids'];
+ //设置模拟资格
+ $model = (new \app\common\model\school\classes\activity\order\Order);
+ $model->verification($ids,0,true,'admin',$this->auth->id,true);
+
+
+ }catch (\Exception $e){
+ $this->error($e->getMessage());
+ }
+ $this->success('核销成功!');
+ }
+ $row = $this->model->get($ids);
+ $this->view->assign('vo', $row);
+ return $this->view->fetch();
+ }
+
+
+
+ /**
+ * 退款重试
+ * @return string
+ * @throws \think\Exception
+ * @throws \think\db\exception\BindParamException
+ * @throws \think\exception\DbException
+ * @throws \think\exception\PDOException
+ */
+ public function refund($ids = ''){
+ $param = $this->request->param();
+ if($this->request->isPost()){
+ try{
+ if(isset($param['ids']))$ids = $param['ids'];
+ //设置模拟资格
+ $model = (new \app\common\model\school\activity\order\Order);
+ $model->orderRefund($ids,null,'admin',$this->auth->id,true,true);
+
+
+ }catch (\Exception $e){
+ $this->error($e->getMessage());
+ }
+ $this->success('已重新发起退款,如果是第三方支付请等待回调!');
+ }
+ $row = $this->model->get($ids);
+ $this->view->assign('vo', $row);
+ return $this->view->fetch();
+ }
+
+
+
+
+
+
+ /**发布者售后确认
+ * @return string
+ * @throws \think\Exception
+ * @throws \think\exception\DbException
+ */
+ public function shop_confirmation($ids = ""){
+
+ if($this->request->isPost())
+ {
+ try{
+ $params = $this->request->post("row/a");
+ $order_no = $params["order_no"];
+ $reject_reason = $params["reject_reason"] ?? "";
+ $price = $params["price"] ?? 0;
+ $status = $params["status"];
+ $model = (new \app\common\model\school\activity\order\Order());
+ $model->shopConfirmation($order_no,$status,$price,$reject_reason,0,true,'admin',$this->auth->id,true);
+ }catch (\Exception $e){
+ $this->error($e->getMessage());
+ }
+
+ $this->success("已完成售后审核");
+ }
+
+ $row = $this->model->where(array('id'=>$ids))->find();
+ if (!$row) {
+ $this->error(__('No Results were found'));
+ }
+
+// $row = $this->model->get($param['ids']);
+ $this->view->assign("statusList", ["yes"=>"同意", "no"=>"拒绝(订单将被挂起)"]);
+ $this->view->assign('row', $row);
+ return $this->view->fetch();
+ }
+
+
+
+
+
+ /**系统确认
+ * @return string
+ * @throws \think\Exception
+ * @throws \think\exception\DbException
+ */
+ public function admin_confirmation($ids = ""){
+
+ if($this->request->isPost())
+ {
+ try{
+ $params = $this->request->post("row/a");
+ $order_no = $params["order_no"];
+ $status = $params["status"];
+ $price = $params["price"] ?? 0;
+ $model = (new \app\common\model\school\activity\order\Order());
+ $model->adminConfirmation($order_no,$status,$price,0,true,'admin',$this->auth->id,true);
+ }catch (\Exception $e){
+ $this->error($e->getMessage() . $e->getFile() . $e->getLine());
+ }
+
+ $this->success("已完成审核");
+ }
+
+ $row = $this->model->where(array('id'=>$ids))->find();
+ if (!$row) {
+ $this->error(__('No Results were found'));
+ }
+
+// $row = $this->model->get($param['ids']);
+
+ $this->view->assign("statusList", ["yes"=>"同意", "no"=>"拒绝(订单将按完成走结算)"]);
+ $this->view->assign('row', $row);
+ return $this->view->fetch();
+ }
+
+
+
+
+ /**发起售后
+ * @return string
+ * @throws \think\Exception
+ * @throws \think\exception\DbException
+ */
+ public function after_sales($ids = ""){
+
+ if($this->request->isPost())
+ {
+ try{
+ $params = $this->request->post("row/a");
+ $classes_order = $params["id"];
+ $reason = $params["reason"];
+ $num = $params["num"] ?? 0;
+
+ $model = (new \app\common\model\school\activity\order\Order());
+ $order = $model->afterSales($classes_order,$num,$reason,0 ,false,'admin',$this->auth->id,true);
+
+ }catch (\Exception $e){
+ $this->error($e->getMessage());
+ }
+ $this->success("执行成功");
+ }
+
+ $row = $this->model->where(array('id'=>$ids))->find();
+ if (!$row) {
+ $this->error(__('No Results were found'));
+ }
+ $order_info = \app\common\model\school\activity\order\Order::getDetail($row["id"]);
+// $row = $this->model->get($param['ids']);
+ $this->view->assign('row',$order_info);
+ return $this->view->fetch();
+ }
+
+
+
+
+}
diff --git a/application/manystore/controller/school/activity/order/OrderCode.php b/application/manystore/controller/school/activity/order/OrderCode.php
new file mode 100644
index 0000000..8372ede
--- /dev/null
+++ b/application/manystore/controller/school/activity/order/OrderCode.php
@@ -0,0 +1,76 @@
+model = new \app\manystore\model\school\activity\order\OrderCode;
+ $this->view->assign("statusList", $this->model->getStatusList());
+ }
+
+ public function import()
+ {
+ parent::import();
+ }
+
+ /**
+ * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
+ * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
+ * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
+ */
+
+
+ /**
+ * 查看
+ */
+ public function index()
+ {
+ //当前是否为关联查询
+ $this->relationSearch = true;
+ //设置过滤方法
+ $this->request->filter(['strip_tags', 'trim']);
+ if ($this->request->isAjax()) {
+ //如果发送的来源是Selectpage,则转发到Selectpage
+ if ($this->request->request('keyField')) {
+ return $this->selectpage();
+ }
+ list($where, $sort, $order, $offset, $limit) = $this->buildparams();
+
+ $list = $this->model
+ ->with(['schoolactivityorder','user','schoolactivity'])
+ ->where($where)
+ ->order($sort, $order)
+ ->paginate($limit);
+
+ foreach ($list as $row) {
+
+ $row->getRelation('schoolactivityorder')->visible(['order_no','pay_no']);
+ $row->getRelation('user')->visible(['nickname','mobile','avatar']);
+ $row->getRelation('schoolactivity')->visible(['title','images']);
+ }
+
+ $result = array("total" => $list->total(), "rows" => $list->items());
+
+ return json($result);
+ }
+ return $this->view->fetch();
+ }
+
+}
diff --git a/application/manystore/controller/school/activity/order/OrderDetail.php b/application/manystore/controller/school/activity/order/OrderDetail.php
new file mode 100644
index 0000000..fc3b79f
--- /dev/null
+++ b/application/manystore/controller/school/activity/order/OrderDetail.php
@@ -0,0 +1,83 @@
+model = new \app\manystore\model\school\activity\order\OrderDetail;
+ $this->view->assign("recommendList", $this->model->getRecommendList());
+ $this->view->assign("hotList", $this->model->getHotList());
+ $this->view->assign("newList", $this->model->getNewList());
+ $this->view->assign("addTypeList", $this->model->getAddTypeList());
+ $this->view->assign("feelList", $this->model->getFeelList());
+ $this->view->assign("refundStatusList", $this->model->getRefundStatusList());
+ $this->view->assign("platformList", $this->model->getPlatformList());
+ }
+
+ public function import()
+ {
+ parent::import();
+ }
+
+ /**
+ * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
+ * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
+ * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
+ */
+
+
+ /**
+ * 查看
+ */
+ public function index()
+ {
+ //当前是否为关联查询
+ $this->relationSearch = true;
+ //设置过滤方法
+ $this->request->filter(['strip_tags', 'trim']);
+ if ($this->request->isAjax()) {
+ //如果发送的来源是Selectpage,则转发到Selectpage
+ if ($this->request->request('keyField')) {
+ return $this->selectpage();
+ }
+ list($where, $sort, $order, $offset, $limit) = $this->buildparams();
+
+ $list = $this->model
+ ->with(['user','schoolactivityorder','schoolactivity','schoolactivityrefund'])
+ ->where($where)
+ ->order($sort, $order)
+ ->paginate($limit);
+
+ foreach ($list as $row) {
+
+ $row->getRelation('user')->visible(['nickname','mobile','avatar']);
+ $row->getRelation('schoolactivityorder')->visible(['order_no','pay_no']);
+ $row->getRelation('schoolactivity')->visible(['title','images']);
+ $row->getRelation('schoolactivityrefund')->visible(['title','desc']);
+ }
+
+ $result = array("total" => $list->total(), "rows" => $list->items());
+
+ return json($result);
+ }
+ return $this->view->fetch();
+ }
+
+}
diff --git a/application/manystore/controller/school/activity/order/OrderLog.php b/application/manystore/controller/school/activity/order/OrderLog.php
new file mode 100644
index 0000000..5d9997a
--- /dev/null
+++ b/application/manystore/controller/school/activity/order/OrderLog.php
@@ -0,0 +1,74 @@
+model = new \app\manystore\model\school\activity\order\OrderLog;
+ $this->view->assign("statusList", $this->model->getStatusList());
+ }
+
+ public function import()
+ {
+ parent::import();
+ }
+
+ /**
+ * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
+ * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
+ * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
+ */
+
+
+ /**
+ * 查看
+ */
+ public function index()
+ {
+ //当前是否为关联查询
+ $this->relationSearch = true;
+ //设置过滤方法
+ $this->request->filter(['strip_tags', 'trim']);
+ if ($this->request->isAjax()) {
+ //如果发送的来源是Selectpage,则转发到Selectpage
+ if ($this->request->request('keyField')) {
+ return $this->selectpage();
+ }
+ list($where, $sort, $order, $offset, $limit) = $this->buildparams();
+
+ $list = $this->model
+ ->with(['schoolactivityorder'])
+ ->where($where)
+ ->order($sort, $order)
+ ->paginate($limit);
+
+ foreach ($list as $row) {
+
+ $row->getRelation('schoolactivityorder')->visible(['order_no','pay_no']);
+ }
+
+ $result = array("total" => $list->total(), "rows" => $list->items());
+
+ return json($result);
+ }
+ return $this->view->fetch();
+ }
+
+}
diff --git a/application/manystore/controller/school/activity/order/SettleLog.php b/application/manystore/controller/school/activity/order/SettleLog.php
new file mode 100644
index 0000000..3c6c761
--- /dev/null
+++ b/application/manystore/controller/school/activity/order/SettleLog.php
@@ -0,0 +1,78 @@
+model = new \app\manystore\model\school\activity\order\SettleLog;
+ $this->view->assign("statusList", $this->model->getStatusList());
+ }
+
+ public function import()
+ {
+ parent::import();
+ }
+
+ /**
+ * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
+ * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
+ * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
+ */
+
+
+ /**
+ * 查看
+ */
+ public function index()
+ {
+ //当前是否为关联查询
+ $this->relationSearch = true;
+ //设置过滤方法
+ $this->request->filter(['strip_tags', 'trim']);
+ if ($this->request->isAjax()) {
+ //如果发送的来源是Selectpage,则转发到Selectpage
+ if ($this->request->request('keyField')) {
+ return $this->selectpage();
+ }
+ list($where, $sort, $order, $offset, $limit) = $this->buildparams();
+
+ $list = $this->model
+ ->with(['schoolactivityorder','userwithdrawallog','user','schoolactivity','schoolactivityorderdetail'])
+ ->where($where)
+ ->order($sort, $order)
+ ->paginate($limit);
+
+ foreach ($list as $row) {
+
+ $row->getRelation('schoolactivityorder')->visible(['order_no','pay_no']);
+ $row->getRelation('userwithdrawallog')->visible(['id']);
+ $row->getRelation('user')->visible(['nickname','mobile','avatar']);
+ $row->getRelation('schoolactivity')->visible(['title','images']);
+ $row->getRelation('schoolactivityorderdetail')->visible(['title','images']);
+ }
+
+ $result = array("total" => $list->total(), "rows" => $list->items());
+
+ return json($result);
+ }
+ return $this->view->fetch();
+ }
+
+}
diff --git a/application/manystore/controller/user/User.php b/application/manystore/controller/user/User.php
index 999df03..48af227 100644
--- a/application/manystore/controller/user/User.php
+++ b/application/manystore/controller/user/User.php
@@ -57,9 +57,12 @@ class User extends ManystoreBase
}
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
// $where[] = [$aliasName.'shop_id','eq',SHOP_ID];
- $user_ids = Order::where("shop_id",SHOP_ID)->where("status","<>","-3")->column("user_id");
- $activity_user_ids = \app\manystore\model\school\classes\activity\order\Order::where("shop_id",SHOP_ID)->where("status","<>","-3")->column("user_id");
- $user_ids = array_merge($user_ids ,$activity_user_ids);
+ $activity_ids = \app\manystore\model\school\activity\Activity::where("user_id",SHOP_USER_ID)->column("id");
+ if(!$activity_ids){
+ $activity_ids = [-1];
+ }
+ $user_ids = \app\manystore\model\school\activity\order\Order::where("activity_id","in",$activity_ids)->where("status","<>","-3")->column("user_id");
+
$list = $this->model
->where($where)
->where("id","in",$user_ids)
diff --git a/application/manystore/controller/user/withdrawal/Userwithdrawal.php b/application/manystore/controller/user/withdrawal/Userwithdrawal.php
new file mode 100644
index 0000000..243fabe
--- /dev/null
+++ b/application/manystore/controller/user/withdrawal/Userwithdrawal.php
@@ -0,0 +1,74 @@
+model = new \app\manystore\model\user\withdrawal\Userwithdrawal;
+
+ }
+
+ public function import()
+ {
+ parent::import();
+ }
+
+ /**
+ * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
+ * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
+ * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
+ */
+
+
+ /**
+ * 查看
+ */
+ public function index()
+ {
+ //当前是否为关联查询
+ $this->relationSearch = true;
+ //设置过滤方法
+ $this->request->filter(['strip_tags', 'trim']);
+ if ($this->request->isAjax()) {
+ //如果发送的来源是Selectpage,则转发到Selectpage
+ if ($this->request->request('keyField')) {
+ return $this->selectpage();
+ }
+ list($where, $sort, $order, $offset, $limit) = $this->buildparams();
+
+ $list = $this->model
+ ->with(['user'])
+ ->where($where)
+ ->order($sort, $order)
+ ->paginate($limit);
+
+ foreach ($list as $row) {
+
+ $row->getRelation('user')->visible(['nickname','mobile','avatar']);
+ }
+
+ $result = array("total" => $list->total(), "rows" => $list->items());
+
+ return json($result);
+ }
+ return $this->view->fetch();
+ }
+
+}
diff --git a/application/manystore/controller/user/withdrawal/UserwithdrawalLog.php b/application/manystore/controller/user/withdrawal/UserwithdrawalLog.php
new file mode 100644
index 0000000..1371425
--- /dev/null
+++ b/application/manystore/controller/user/withdrawal/UserwithdrawalLog.php
@@ -0,0 +1,76 @@
+model = new \app\manystore\model\user\withdrawal\UserwithdrawalLog;
+ $this->view->assign("statusList", $this->model->getStatusList());
+ $this->view->assign("withdrawalStatusList", $this->model->getWithdrawalStatusList());
+ $this->view->assign("typeList", $this->model->getTypeList());
+ }
+
+ public function import()
+ {
+ parent::import();
+ }
+
+ /**
+ * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
+ * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
+ * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
+ */
+
+
+ /**
+ * 查看
+ */
+ public function index()
+ {
+ //当前是否为关联查询
+ $this->relationSearch = true;
+ //设置过滤方法
+ $this->request->filter(['strip_tags', 'trim']);
+ if ($this->request->isAjax()) {
+ //如果发送的来源是Selectpage,则转发到Selectpage
+ if ($this->request->request('keyField')) {
+ return $this->selectpage();
+ }
+ list($where, $sort, $order, $offset, $limit) = $this->buildparams();
+
+ $list = $this->model
+ ->with(['user'])
+ ->where($where)
+ ->order($sort, $order)
+ ->paginate($limit);
+
+ foreach ($list as $row) {
+
+ $row->getRelation('user')->visible(['nickname','mobile','avatar']);
+ }
+
+ $result = array("total" => $list->total(), "rows" => $list->items());
+
+ return json($result);
+ }
+ return $this->view->fetch();
+ }
+
+}
diff --git a/application/manystore/lang/zh-cn/school/activity/activity.php b/application/manystore/lang/zh-cn/school/activity/activity.php
new file mode 100644
index 0000000..ef9fc76
--- /dev/null
+++ b/application/manystore/lang/zh-cn/school/activity/activity.php
@@ -0,0 +1,85 @@
+ '发布用户',
+ 'Title' => '标题',
+ 'Image' => '加群二维码',
+ 'Images' => '轮播图',
+ 'Address_city' => '城市选择',
+ 'Cate_ids' => '平台分类ids',
+ 'Province' => '省编号',
+ 'City' => '市编号',
+ 'District' => '县区编号',
+ 'Address' => '活动地址',
+ 'Address_detail' => '活动详细地址',
+ 'Longitude' => '经度',
+ 'Latitude' => '纬度',
+ 'Start_time' => '活动开始时间',
+ 'End_time' => '活动结束时间',
+ 'Sign_start_time' => '报名开始时间',
+ 'Sign_end_time' => '报名结束时间',
+ 'Price' => '报名单价',
+ 'Stock' => '活动限制人数',
+ 'Content' => '活动详情',
+ 'Status' => '状态',
+ 'Status 1' => '未开始',
+ 'Status 2' => '报名中',
+ 'Status 3' => '待开始',
+ 'Status 4' => '进行中',
+ 'Status 5' => '已结束',
+ 'Status -1' => '已取消',
+ 'Cancel_type' => '取消类型',
+ 'Cancel_type 1' => '审核不通过',
+ 'Cancel_type 2' => '活动终止',
+ 'Weigh' => '权重',
+ 'Recommend' => '平台推荐',
+ 'Recommend 0' => '否',
+ 'Recommend 1' => '是',
+ 'Hot' => '平台热门',
+ 'Hot 0' => '否',
+ 'Hot 1' => '是',
+ 'New' => '平台最新',
+ 'New 0' => '否',
+ 'New 1' => '是',
+ 'Sale' => '总销量',
+ 'Views' => '浏览量',
+ 'Add_type' => '添加人类型',
+ 'Add_type 1' => '机构',
+ 'Add_type 2' => '总后台',
+ 'Add_id' => '添加人id',
+ 'Feel' => '是否免费',
+ 'Feel 0' => '否',
+ 'Feel 1' => '是',
+ 'Sign_num' => '总已报名人数',
+ 'Verification_num' => '总已核销人数',
+ 'Collect' => '实际收藏量',
+ 'Createtime' => '创建时间',
+ 'Updatetime' => '修改时间',
+ 'Deletetime' => '删除时间',
+ 'Auth_status' => '审核状态',
+ 'Auth_status 0' => '待审核',
+ 'Auth_status 1' => '审核通过',
+ 'Auth_status 2' => '审核不通过',
+ 'Reason' => '审核不通过原因',
+ 'Admin_id' => '审核管理员id',
+ 'Auth_time' => '审核时间',
+ 'Canceltime' => '取消时间',
+ 'Refund_id' => '退款策略id',
+ 'Fee_scale' => '手续费比例',
+ 'Settlement_time' => '最后结算时间',
+ 'Show' => '显示状态',
+ 'Show 1' => '显示',
+ 'Show 2' => '隐藏',
+ 'Platform' => '上架平台',
+ 'Platform wechat_miniapp' => '微信小程序',
+ 'Platform tt_miniapp' => '抖音小程序',
+ 'Settlestatus' => '结算状态',
+ 'Settlestatus 1' => '未结算',
+ 'Settlestatus 2' => '结算中',
+ 'Settlestatus 3' => '已结算',
+ 'User.nickname' => '昵称',
+ 'User.mobile' => '手机号',
+ 'User.avatar' => '头像',
+ 'Schoolactivityrefund.title' => '策略标题',
+ 'Schoolactivityrefund.desc' => '策略说明'
+];
diff --git a/application/manystore/lang/zh-cn/school/activity/cate.php b/application/manystore/lang/zh-cn/school/activity/cate.php
new file mode 100644
index 0000000..0668e64
--- /dev/null
+++ b/application/manystore/lang/zh-cn/school/activity/cate.php
@@ -0,0 +1,16 @@
+ '分类名',
+ 'Image' => 'icon',
+ 'Status' => '状态',
+ 'Status 1' => '上架',
+ 'Status 2' => '下架',
+ 'Hot' => '热门',
+ 'Hot 0' => '否',
+ 'Hot 1' => '是',
+ 'Weigh' => '权重',
+ 'Createtime' => '创建时间',
+ 'Updatetime' => '修改时间',
+ 'Deletetime' => '删除时间'
+];
diff --git a/application/manystore/lang/zh-cn/school/activity/order/order.php b/application/manystore/lang/zh-cn/school/activity/order/order.php
new file mode 100644
index 0000000..4f2a126
--- /dev/null
+++ b/application/manystore/lang/zh-cn/school/activity/order/order.php
@@ -0,0 +1,81 @@
+ '订单号',
+ 'Pay_no' => '微信支付单号',
+ 'User_id' => '下单人用户id',
+ 'Activity_id' => '课程活动id',
+ 'Activity_order_detail_id' => '订单课程活动id',
+ 'Beforeprice' => '订单优惠前金额',
+ 'Totalprice' => '订单应付金额',
+ 'Payprice' => '订单实付金额',
+ 'Pay_type' => '支付方式',
+ 'Pay_type yue' => '余额',
+ 'Pay_type wechat' => '微信',
+ 'Status' => '订单状态',
+ 'Status -3' => '已取消',
+ 'Status 0' => '待支付',
+ 'Status 2' => '已报名',
+ 'Status 3' => '核销中',
+ 'Status 4' => '售后中',
+ 'Status 5' => '退款结算中',
+ 'Status 6' => '已退款',
+ 'Status 7' => '售后挂起',
+ 'Status 9' => '已完成',
+ 'Before_status' => '售后前状态',
+ 'Before_status -3' => '已取消',
+ 'Before_status 0' => '未售后',
+ 'Before_status 2' => '已报名',
+ 'Before_status 3' => '核销中',
+ 'Before_status 4' => '售后中',
+ 'Before_status 6' => '已退款',
+ 'Before_status 9' => '已完成',
+ 'Server_status' => '售后订单状态',
+ 'Server_status 0' => '正常',
+ 'Server_status 3' => '售后中',
+ 'Server_status 6' => '售后完成',
+ 'Suspend_status' => '挂起原因',
+ 'Suspend_status 0' => '未挂起',
+ 'Suspend_status 1' => '售后拒绝',
+ 'Suspend_status 2' => '售后超时',
+ 'Canceltime' => '取消时间',
+ 'Paytime' => '支付时间',
+ 'Auth_time' => '售后时间',
+ 'Reservation_time' => '预约时间',
+ 'Finishtime' => '完成时间',
+ 'Refundtime' => '退款时间',
+ 'First_refundprice' => '用户发起售后时退款金额',
+ 'Total_refundprice' => '应退款金额',
+ 'Real_refundprice' => '实际退款金额',
+ 'Sub_refundprice' => '剩余未退金额',
+ 'Pay_json' => '三方支付信息json',
+ 'Platform' => '支付平台',
+ 'Reason' => '售后不通过原因',
+ 'Auth_reason' => '售后申请原因',
+ 'Auth_status' => '售后结果状态',
+ 'Auth_status 0' => '待审核',
+ 'Auth_status 1' => '同意退款',
+ 'Auth_status 2' => '拒绝退款',
+ 'Auth_user_id' => '售后用户id',
+ 'Auth_type' => '售后用户类型',
+ 'Refund_no' => '退款单号',
+ 'Refund_json' => '三方支付退款信息json',
+ 'Refund_error' => '三方支付退款错误信息更新',
+ 'Refundsendtime' => '退款发起时间',
+ 'Createtime' => '创建时间',
+ 'Updatetime' => '修改时间',
+ 'Deletetime' => '删除时间',
+ 'Num' => '购买人数',
+ 'Fee_scale' => '支付手续费比例',
+ 'Settle_log_time' => '结算订单时间',
+ 'Fee_price' => '手续费',
+ 'Last_time' => '允许售后的最后时间',
+ 'Desc' => '下单备注',
+ 'Schoolactivity.title' => '标题',
+ 'Schoolactivity.images' => '轮播图',
+ 'Schoolactivityorderdetail.title' => '标题',
+ 'Schoolactivityorderdetail.images' => '轮播图',
+ 'User.nickname' => '昵称',
+ 'User.mobile' => '手机号',
+ 'User.avatar' => '头像'
+];
diff --git a/application/manystore/lang/zh-cn/school/activity/order/order_code.php b/application/manystore/lang/zh-cn/school/activity/order/order_code.php
new file mode 100644
index 0000000..fc6e726
--- /dev/null
+++ b/application/manystore/lang/zh-cn/school/activity/order/order_code.php
@@ -0,0 +1,28 @@
+ '活动订单id',
+ 'Code' => '核销码',
+ 'Codeimage' => '核销二维码图片',
+ 'Codeoneimage' => '核销一维码图片',
+ 'Status' => '核销状态',
+ 'Status 3' => '未核销',
+ 'Status 6' => '已核销',
+ 'Verificationtime' => '核销时间',
+ 'Verification_user_id' => '核销人用户id',
+ 'Verification_type' => '核销用户类型',
+ 'Createtime' => '创建时间',
+ 'Updatetime' => '修改时间',
+ 'Deletetime' => '删除时间',
+ 'Activity_id' => '活动id',
+ 'Miniurl' => '小程序核销url',
+ 'Name' => '姓名',
+ 'Idnum' => '身份证id',
+ 'Schoolactivityorder.order_no' => '订单号',
+ 'Schoolactivityorder.pay_no' => '微信支付单号',
+ 'User.nickname' => '昵称',
+ 'User.mobile' => '手机号',
+ 'User.avatar' => '头像',
+ 'Schoolactivity.title' => '标题',
+ 'Schoolactivity.images' => '轮播图'
+];
diff --git a/application/manystore/lang/zh-cn/school/activity/order/order_detail.php b/application/manystore/lang/zh-cn/school/activity/order/order_detail.php
new file mode 100644
index 0000000..282743f
--- /dev/null
+++ b/application/manystore/lang/zh-cn/school/activity/order/order_detail.php
@@ -0,0 +1,74 @@
+ '发布用户',
+ 'Activity_order_id' => '活动订单id',
+ 'Activity_id' => '活动id',
+ 'Title' => '标题',
+ 'Image' => '加群二维码',
+ 'Images' => '轮播图',
+ 'Address_city' => '城市选择',
+ 'Cate_ids' => '平台分类ids',
+ 'Province' => '省编号',
+ 'City' => '市编号',
+ 'District' => '县区编号',
+ 'Address' => '活动地址',
+ 'Address_detail' => '活动详细地址',
+ 'Longitude' => '经度',
+ 'Latitude' => '纬度',
+ 'Start_time' => '活动开始时间',
+ 'End_time' => '活动结束时间',
+ 'Sign_start_time' => '报名开始时间',
+ 'Sign_end_time' => '报名结束时间',
+ 'Price' => '报名单价',
+ 'Stock' => '活动限制人数',
+ 'Content' => '活动详情',
+ 'Weigh' => '权重',
+ 'Recommend' => '平台推荐',
+ 'Recommend 0' => '否',
+ 'Recommend 1' => '是',
+ 'Hot' => '平台热门',
+ 'Hot 0' => '否',
+ 'Hot 1' => '是',
+ 'New' => '平台最新',
+ 'New 0' => '否',
+ 'New 1' => '是',
+ 'Sale' => '总销量',
+ 'Views' => '浏览量',
+ 'Add_type' => '添加人类型',
+ 'Add_type 1' => '机构',
+ 'Add_type 2' => '总后台',
+ 'Add_id' => '添加人id',
+ 'Feel' => '是否免费',
+ 'Feel 0' => '否',
+ 'Feel 1' => '是',
+ 'Sign_num' => '总已报名人数',
+ 'Verification_num' => '总已核销人数',
+ 'Collect' => '实际收藏量',
+ 'Createtime' => '创建时间',
+ 'Updatetime' => '修改时间',
+ 'Deletetime' => '删除时间',
+ 'Refund_id' => '退款策略id',
+ 'Fee_scale' => '手续费比例',
+ 'Refund_scale_json' => '退款额外参数',
+ 'Refund_status' => '退款状态选择',
+ 'Refund_status 1' => '不退款',
+ 'Refund_status 3' => '开始前退',
+ 'Refund_status 5' => '随时退',
+ 'Refund_status 7' => '前12小时退',
+ 'Refund_status 9' => '前24小时退',
+ 'Refund_status 11' => '前48小时退',
+ 'Settlement_time' => '最后结算时间',
+ 'Platform' => '上架平台',
+ 'Platform wechat_miniapp' => '微信小程序',
+ 'Platform tt_miniapp' => '抖音小程序',
+ 'User.nickname' => '昵称',
+ 'User.mobile' => '手机号',
+ 'User.avatar' => '头像',
+ 'Schoolactivityorder.order_no' => '订单号',
+ 'Schoolactivityorder.pay_no' => '微信支付单号',
+ 'Schoolactivity.title' => '标题',
+ 'Schoolactivity.images' => '轮播图',
+ 'Schoolactivityrefund.title' => '策略标题',
+ 'Schoolactivityrefund.desc' => '策略说明'
+];
diff --git a/application/manystore/lang/zh-cn/school/activity/order/order_log.php b/application/manystore/lang/zh-cn/school/activity/order/order_log.php
new file mode 100644
index 0000000..94bf8c3
--- /dev/null
+++ b/application/manystore/lang/zh-cn/school/activity/order/order_log.php
@@ -0,0 +1,23 @@
+ '活动订单id',
+ 'Status' => '订单状态',
+ 'Status -3' => '已取消',
+ 'Status 0' => '待支付',
+ 'Status 2' => '已报名',
+ 'Status 3' => '核销中',
+ 'Status 4' => '售后中',
+ 'Status 5' => '退款结算中',
+ 'Status 6' => '已退款',
+ 'Status 7' => '售后挂起',
+ 'Status 9' => '已完成',
+ 'Log_text' => '记录内容',
+ 'Oper_type' => '记录人类型',
+ 'Oper_id' => '记录人id',
+ 'Createtime' => '创建时间',
+ 'Updatetime' => '修改时间',
+ 'Deletetime' => '删除时间',
+ 'Schoolactivityorder.order_no' => '订单号',
+ 'Schoolactivityorder.pay_no' => '微信支付单号'
+];
diff --git a/application/manystore/lang/zh-cn/school/activity/order/settle_log.php b/application/manystore/lang/zh-cn/school/activity/order/settle_log.php
new file mode 100644
index 0000000..27078a8
--- /dev/null
+++ b/application/manystore/lang/zh-cn/school/activity/order/settle_log.php
@@ -0,0 +1,34 @@
+ '活动订单id',
+ 'Withdrawal_log_id' => '提现记录id',
+ 'To_user_id' => '结算用户id',
+ 'Pay_user_id' => '支付用户id',
+ 'Status' => '结算状态',
+ 'Status 1' => '冻结中',
+ 'Status 2' => '待结算',
+ 'Status 3' => '已结算',
+ 'Status -1' => '已关闭',
+ 'Settletime' => '结算时间',
+ 'Createtime' => '创建时间',
+ 'Canceltime' => '关闭时间',
+ 'Unfreezetime' => '解冻时间点',
+ 'Deletetime' => '删除时间',
+ 'Order_price' => '订单金额',
+ 'Fee_price' => '手续费',
+ 'Fee_scale' => '手续费比例',
+ 'Settle_price' => '实际结算金额',
+ 'Sub_refundprice' => '剩余未退金额',
+ 'Activity_id' => '课程活动id',
+ 'Activity_order_detail_id' => '订单课程活动id',
+ 'Schoolactivityorder.order_no' => '订单号',
+ 'Schoolactivityorder.pay_no' => '微信支付单号',
+ 'User.nickname' => '昵称',
+ 'User.mobile' => '手机号',
+ 'User.avatar' => '头像',
+ 'Schoolactivity.title' => '标题',
+ 'Schoolactivity.images' => '轮播图',
+ 'Schoolactivityorderdetail.title' => '标题',
+ 'Schoolactivityorderdetail.images' => '轮播图'
+];
diff --git a/application/manystore/lang/zh-cn/school/activity/refund.php b/application/manystore/lang/zh-cn/school/activity/refund.php
new file mode 100644
index 0000000..237496d
--- /dev/null
+++ b/application/manystore/lang/zh-cn/school/activity/refund.php
@@ -0,0 +1,18 @@
+ '策略标题',
+ 'Desc' => '策略说明',
+ 'Status' => '状态',
+ 'Status 1' => '不退款',
+ 'Status 3' => '开始前退',
+ 'Status 5' => '随时退',
+ 'Status 7' => '前12小时退',
+ 'Status 9' => '前24小时退',
+ 'Status 11' => '前48小时退',
+ 'Refund_scale_json' => '额外参数',
+ 'Weigh' => '权重',
+ 'Createtime' => '创建时间',
+ 'Updatetime' => '修改时间',
+ 'Deletetime' => '删除时间'
+];
diff --git a/application/manystore/lang/zh-cn/user/withdrawal/userwithdrawal.php b/application/manystore/lang/zh-cn/user/withdrawal/userwithdrawal.php
new file mode 100644
index 0000000..9e82295
--- /dev/null
+++ b/application/manystore/lang/zh-cn/user/withdrawal/userwithdrawal.php
@@ -0,0 +1,15 @@
+ '提现用户',
+ 'Name' => '转账账户名',
+ 'Bank_name' => '开户行名称(具体到支行)',
+ 'Bank_user_name' => '银行账户号',
+ 'Id_number' => '身份证号',
+ 'Createtime' => '创建时间',
+ 'Updatetime' => '修改时间',
+ 'Deletetime' => '删除时间',
+ 'User.nickname' => '昵称',
+ 'User.mobile' => '手机号',
+ 'User.avatar' => '头像'
+];
diff --git a/application/manystore/lang/zh-cn/user/withdrawal/userwithdrawal_log.php b/application/manystore/lang/zh-cn/user/withdrawal/userwithdrawal_log.php
new file mode 100644
index 0000000..b686edd
--- /dev/null
+++ b/application/manystore/lang/zh-cn/user/withdrawal/userwithdrawal_log.php
@@ -0,0 +1,34 @@
+ '提现金额',
+ 'Fee_price' => '手续费',
+ 'Real_price' => '实际应打款额',
+ 'Status' => '提现申请状态',
+ 'Status 1' => '待审核',
+ 'Status 2' => '审核通过',
+ 'Status 3' => '审核不通过',
+ 'Reason' => '审核不通过原因',
+ 'Withdrawal_status' => '打款状态',
+ 'Withdrawal_status 1' => '未打款',
+ 'Withdrawal_status 2' => '打款中',
+ 'Withdrawal_status 3' => '已打款',
+ 'User_id' => '提现用户id',
+ 'Type' => '提现类型',
+ 'Type bank' => '银行卡',
+ 'Type wechat' => '微信',
+ 'Type alipay' => '支付宝',
+ 'Name' => '转账账户名',
+ 'Bank_name' => '开户行名称(具体到支行)',
+ 'Bank_user_name' => '银行账户号',
+ 'Id_number' => '身份证号',
+ 'Paytime' => '打款时间',
+ 'Createtime' => '创建时间',
+ 'Examinetime' => '审核时间',
+ 'Remark' => '打款备注',
+ 'Real_have_price' => '实际已打款额',
+ 'Real_fee_price' => '实际扣除手续费',
+ 'User.nickname' => '昵称',
+ 'User.mobile' => '手机号',
+ 'User.avatar' => '头像'
+];
diff --git a/application/manystore/model/SchoolActivityRefund.php b/application/manystore/model/SchoolActivityRefund.php
new file mode 100644
index 0000000..34a29f9
--- /dev/null
+++ b/application/manystore/model/SchoolActivityRefund.php
@@ -0,0 +1,12 @@
+getPk();
+ $row->getQuery()->where($pk, $row[$pk])->update(['weigh' => $row[$pk]]);
+ });
+ }
+
+
+ public function getCateList(){
+ return \app\admin\model\school\activity\Cate::column("name", 'id');
+ }
+
+
+
+
+ public function getStatusList()
+ {
+ return ['1' => __('Status 1'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'), '5' => __('Status 5'), '-1' => __('Status -1')];
+ }
+
+ public function getCancelTypeList()
+ {
+ return ['1' => __('Cancel_type 1'), '2' => __('Cancel_type 2')];
+ }
+
+ public function getRecommendList()
+ {
+ return ['0' => __('Recommend 0'), '1' => __('Recommend 1')];
+ }
+
+ public function getHotList()
+ {
+ return ['0' => __('Hot 0'), '1' => __('Hot 1')];
+ }
+
+ public function getNewList()
+ {
+ return ['0' => __('New 0'), '1' => __('New 1')];
+ }
+
+ public function getAddTypeList()
+ {
+ return ['1' => __('Add_type 1'), '2' => __('Add_type 2')];
+ }
+
+ public function getFeelList()
+ {
+ return ['0' => __('Feel 0'), '1' => __('Feel 1')];
+ }
+
+ public function getAuthStatusList()
+ {
+ return ['0' => __('Auth_status 0'), '1' => __('Auth_status 1'), '2' => __('Auth_status 2')];
+ }
+
+ public function getShowList()
+ {
+ return ['1' => __('Show 1'), '2' => __('Show 2')];
+ }
+
+ public function getPlatformList()
+ {
+ return ['wechat_miniapp' => __('Platform wechat_miniapp'), 'tt_miniapp' => __('Platform tt_miniapp')];
+ }
+
+ public function getSettlestatusList()
+ {
+ return ['1' => __('Settlestatus 1'), '2' => __('Settlestatus 2'), '3' => __('Settlestatus 3')];
+ }
+
+
+ public function getStartTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['start_time']) ? $data['start_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getEndTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['end_time']) ? $data['end_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getSignStartTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['sign_start_time']) ? $data['sign_start_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getSignEndTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['sign_end_time']) ? $data['sign_end_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
+ $list = $this->getStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getCancelTypeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['cancel_type']) ? $data['cancel_type'] : '');
+ $list = $this->getCancelTypeList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getRecommendTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['recommend']) ? $data['recommend'] : '');
+ $list = $this->getRecommendList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getHotTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['hot']) ? $data['hot'] : '');
+ $list = $this->getHotList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getNewTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['new']) ? $data['new'] : '');
+ $list = $this->getNewList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getAddTypeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['add_type']) ? $data['add_type'] : '');
+ $list = $this->getAddTypeList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getFeelTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['feel']) ? $data['feel'] : '');
+ $list = $this->getFeelList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getAuthStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['auth_status']) ? $data['auth_status'] : '');
+ $list = $this->getAuthStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getAuthTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['auth_time']) ? $data['auth_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getCanceltimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['canceltime']) ? $data['canceltime'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getSettlementTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['settlement_time']) ? $data['settlement_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getShowTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['show']) ? $data['show'] : '');
+ $list = $this->getShowList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getPlatformTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['platform']) ? $data['platform'] : '');
+ $valueArr = explode(',', $value);
+ $list = $this->getPlatformList();
+ return implode(',', array_intersect_key($list, array_flip($valueArr)));
+ }
+
+
+ public function getSettlestatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['settlestatus']) ? $data['settlestatus'] : '');
+ $list = $this->getSettlestatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+ protected function setStartTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setEndTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setSignStartTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setSignEndTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setAuthTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setCanceltimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setSettlementTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setPlatformAttr($value)
+ {
+ return is_array($value) ? implode(',', $value) : $value;
+ }
+
+
+ public function user()
+ {
+ return $this->belongsTo('app\manystore\model\user\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function schoolactivityrefund()
+ {
+ return $this->belongsTo('app\manystore\model\SchoolActivityRefund', 'refund_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+}
diff --git a/application/manystore/model/school/activity/Cate.php b/application/manystore/model/school/activity/Cate.php
new file mode 100644
index 0000000..2c79648
--- /dev/null
+++ b/application/manystore/model/school/activity/Cate.php
@@ -0,0 +1,71 @@
+getPk();
+ $row->getQuery()->where($pk, $row[$pk])->update(['weigh' => $row[$pk]]);
+ });
+ }
+
+
+ public function getStatusList()
+ {
+ return ['1' => __('Status 1'), '2' => __('Status 2')];
+ }
+
+ public function getHotList()
+ {
+ return ['0' => __('Hot 0'), '1' => __('Hot 1')];
+ }
+
+
+ public function getStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
+ $list = $this->getStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getHotTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['hot']) ? $data['hot'] : '');
+ $list = $this->getHotList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+
+
+}
diff --git a/application/manystore/model/school/activity/Refund.php b/application/manystore/model/school/activity/Refund.php
new file mode 100644
index 0000000..0a42949
--- /dev/null
+++ b/application/manystore/model/school/activity/Refund.php
@@ -0,0 +1,57 @@
+getPk();
+ $row->getQuery()->where($pk, $row[$pk])->update(['weigh' => $row[$pk]]);
+ });
+ }
+
+
+ public function getStatusList()
+ {
+ return ['1' => __('Status 1'), '3' => __('Status 3'), '5' => __('Status 5'), '7' => __('Status 7'), '9' => __('Status 9'), '11' => __('Status 11')];
+ }
+
+
+ public function getStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
+ $list = $this->getStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+
+
+}
diff --git a/application/manystore/model/school/activity/order/Order.php b/application/manystore/model/school/activity/order/Order.php
new file mode 100644
index 0000000..080f629
--- /dev/null
+++ b/application/manystore/model/school/activity/order/Order.php
@@ -0,0 +1,251 @@
+ __('Pay_type yue'), 'wechat' => __('Pay_type wechat')];
+ }
+
+ public function getStatusList()
+ {
+ return ['-3' => __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'), '5' => __('Status 5'), '6' => __('Status 6'), '7' => __('Status 7'), '9' => __('Status 9')];
+ }
+
+ public function getBeforeStatusList()
+ {
+ return ['-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')];
+ }
+
+ public function getServerStatusList()
+ {
+ return ['0' => __('Server_status 0'), '3' => __('Server_status 3'), '6' => __('Server_status 6')];
+ }
+
+ public function getSuspendStatusList()
+ {
+ return ['0' => __('Suspend_status 0'), '1' => __('Suspend_status 1'), '2' => __('Suspend_status 2')];
+ }
+
+ public function getAuthStatusList()
+ {
+ return ['0' => __('Auth_status 0'), '1' => __('Auth_status 1'), '2' => __('Auth_status 2')];
+ }
+
+
+ public function getPayTypeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['pay_type']) ? $data['pay_type'] : '');
+ $list = $this->getPayTypeList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
+ $list = $this->getStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getBeforeStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['before_status']) ? $data['before_status'] : '');
+ $list = $this->getBeforeStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getServerStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['server_status']) ? $data['server_status'] : '');
+ $list = $this->getServerStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getSuspendStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['suspend_status']) ? $data['suspend_status'] : '');
+ $list = $this->getSuspendStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getCanceltimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['canceltime']) ? $data['canceltime'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getPaytimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['paytime']) ? $data['paytime'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getAuthTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['auth_time']) ? $data['auth_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getReservationTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['reservation_time']) ? $data['reservation_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getFinishtimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['finishtime']) ? $data['finishtime'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getRefundtimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['refundtime']) ? $data['refundtime'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getAuthStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['auth_status']) ? $data['auth_status'] : '');
+ $list = $this->getAuthStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getRefundsendtimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['refundsendtime']) ? $data['refundsendtime'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getSettleLogTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['settle_log_time']) ? $data['settle_log_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getLastTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['last_time']) ? $data['last_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+ protected function setCanceltimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setPaytimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setAuthTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setReservationTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setFinishtimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setRefundtimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setRefundsendtimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setSettleLogTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setLastTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+
+ public function schoolactivity()
+ {
+ return $this->belongsTo(Activity::class, 'activity_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function schoolactivityorderdetail()
+ {
+ return $this->belongsTo(OrderDetail::class, 'activity_order_detail_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function user()
+ {
+ return $this->belongsTo('app\manystore\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+}
diff --git a/application/manystore/model/school/activity/order/OrderCode.php b/application/manystore/model/school/activity/order/OrderCode.php
new file mode 100644
index 0000000..920035b
--- /dev/null
+++ b/application/manystore/model/school/activity/order/OrderCode.php
@@ -0,0 +1,77 @@
+ __('Status 3'), '6' => __('Status 6')];
+ }
+
+
+ public function getStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
+ $list = $this->getStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getVerificationtimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['verificationtime']) ? $data['verificationtime'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+ protected function setVerificationtimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+
+ public function schoolactivityorder()
+ {
+ return $this->belongsTo(Order::class, 'activity_order_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function user()
+ {
+ return $this->belongsTo('app\manystore\model\User', 'verification_user_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function schoolactivity()
+ {
+ return $this->belongsTo(Activity::class, 'activity_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+}
diff --git a/application/manystore/model/school/activity/order/OrderDetail.php b/application/manystore/model/school/activity/order/OrderDetail.php
new file mode 100644
index 0000000..9110671
--- /dev/null
+++ b/application/manystore/model/school/activity/order/OrderDetail.php
@@ -0,0 +1,234 @@
+getPk();
+ $row->getQuery()->where($pk, $row[$pk])->update(['weigh' => $row[$pk]]);
+ });
+ }
+
+
+ public function getRecommendList()
+ {
+ return ['0' => __('Recommend 0'), '1' => __('Recommend 1')];
+ }
+
+ public function getHotList()
+ {
+ return ['0' => __('Hot 0'), '1' => __('Hot 1')];
+ }
+
+ public function getNewList()
+ {
+ return ['0' => __('New 0'), '1' => __('New 1')];
+ }
+
+ public function getAddTypeList()
+ {
+ return ['1' => __('Add_type 1'), '2' => __('Add_type 2')];
+ }
+
+ public function getFeelList()
+ {
+ return ['0' => __('Feel 0'), '1' => __('Feel 1')];
+ }
+
+ public function getRefundStatusList()
+ {
+ return ['1' => __('Refund_status 1'), '3' => __('Refund_status 3'), '5' => __('Refund_status 5'), '7' => __('Refund_status 7'), '9' => __('Refund_status 9'), '11' => __('Refund_status 11')];
+ }
+
+ public function getPlatformList()
+ {
+ return ['wechat_miniapp' => __('Platform wechat_miniapp'), 'tt_miniapp' => __('Platform tt_miniapp')];
+ }
+
+
+ public function getStartTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['start_time']) ? $data['start_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getEndTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['end_time']) ? $data['end_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getSignStartTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['sign_start_time']) ? $data['sign_start_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getSignEndTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['sign_end_time']) ? $data['sign_end_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getRecommendTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['recommend']) ? $data['recommend'] : '');
+ $list = $this->getRecommendList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getHotTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['hot']) ? $data['hot'] : '');
+ $list = $this->getHotList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getNewTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['new']) ? $data['new'] : '');
+ $list = $this->getNewList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getAddTypeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['add_type']) ? $data['add_type'] : '');
+ $list = $this->getAddTypeList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getFeelTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['feel']) ? $data['feel'] : '');
+ $list = $this->getFeelList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getRefundStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['refund_status']) ? $data['refund_status'] : '');
+ $list = $this->getRefundStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getSettlementTimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['settlement_time']) ? $data['settlement_time'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getPlatformTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['platform']) ? $data['platform'] : '');
+ $valueArr = explode(',', $value);
+ $list = $this->getPlatformList();
+ return implode(',', array_intersect_key($list, array_flip($valueArr)));
+ }
+
+ protected function setStartTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setEndTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setSignStartTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setSignEndTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setSettlementTimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setPlatformAttr($value)
+ {
+ return is_array($value) ? implode(',', $value) : $value;
+ }
+
+
+ public function user()
+ {
+ return $this->belongsTo('app\manystore\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function schoolactivityorder()
+ {
+ return $this->belongsTo(Order::class, 'activity_order_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function schoolactivity()
+ {
+ return $this->belongsTo(Activity::class, 'activity_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function schoolactivityrefund()
+ {
+ return $this->belongsTo(Refund::class, 'refund_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+}
diff --git a/application/manystore/model/school/activity/order/OrderLog.php b/application/manystore/model/school/activity/order/OrderLog.php
new file mode 100644
index 0000000..0206a60
--- /dev/null
+++ b/application/manystore/model/school/activity/order/OrderLog.php
@@ -0,0 +1,53 @@
+ __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'), '5' => __('Status 5'), '6' => __('Status 6'), '7' => __('Status 7'), '9' => __('Status 9')];
+ }
+
+
+ public function getStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
+ $list = $this->getStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+
+
+ public function schoolactivityorder()
+ {
+ return $this->belongsTo(Order::class, 'activity_order_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+}
diff --git a/application/manystore/model/school/activity/order/SettleLog.php b/application/manystore/model/school/activity/order/SettleLog.php
new file mode 100644
index 0000000..de0978b
--- /dev/null
+++ b/application/manystore/model/school/activity/order/SettleLog.php
@@ -0,0 +1,116 @@
+ __('Status 1'), '2' => __('Status 2'), '3' => __('Status 3'), '-1' => __('Status -1')];
+ }
+
+
+ public function getStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
+ $list = $this->getStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getSettletimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['settletime']) ? $data['settletime'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getCanceltimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['canceltime']) ? $data['canceltime'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getUnfreezetimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['unfreezetime']) ? $data['unfreezetime'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+ protected function setSettletimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setCanceltimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setUnfreezetimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+
+ public function schoolactivityorder()
+ {
+ return $this->belongsTo(Order::class, 'activity_order_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function userwithdrawallog()
+ {
+ return $this->belongsTo(UserwithdrawalLog::class, 'withdrawal_log_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function user()
+ {
+ return $this->belongsTo('app\manystore\model\User', 'to_user_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function schoolactivity()
+ {
+ return $this->belongsTo(Activity::class, 'activity_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function schoolactivityorderdetail()
+ {
+ return $this->belongsTo(OrderDetail::class, 'activity_order_detail_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+}
diff --git a/application/manystore/model/user/withdrawal/Userwithdrawal.php b/application/manystore/model/user/withdrawal/Userwithdrawal.php
new file mode 100644
index 0000000..6340c07
--- /dev/null
+++ b/application/manystore/model/user/withdrawal/Userwithdrawal.php
@@ -0,0 +1,44 @@
+belongsTo('app\manystore\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+}
diff --git a/application/manystore/model/user/withdrawal/UserwithdrawalLog.php b/application/manystore/model/user/withdrawal/UserwithdrawalLog.php
new file mode 100644
index 0000000..61b8377
--- /dev/null
+++ b/application/manystore/model/user/withdrawal/UserwithdrawalLog.php
@@ -0,0 +1,105 @@
+ __('Status 1'), '2' => __('Status 2'), '3' => __('Status 3')];
+ }
+
+ public function getWithdrawalStatusList()
+ {
+ return ['1' => __('Withdrawal_status 1'), '2' => __('Withdrawal_status 2'), '3' => __('Withdrawal_status 3')];
+ }
+
+ public function getTypeList()
+ {
+ return ['bank' => __('Type bank'), 'wechat' => __('Type wechat'), 'alipay' => __('Type alipay')];
+ }
+
+
+ public function getStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
+ $list = $this->getStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getWithdrawalStatusTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['withdrawal_status']) ? $data['withdrawal_status'] : '');
+ $list = $this->getWithdrawalStatusList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getTypeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['type']) ? $data['type'] : '');
+ $list = $this->getTypeList();
+ return isset($list[$value]) ? $list[$value] : '';
+ }
+
+
+ public function getPaytimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['paytime']) ? $data['paytime'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+
+ public function getExaminetimeTextAttr($value, $data)
+ {
+ $value = $value ? $value : (isset($data['examinetime']) ? $data['examinetime'] : '');
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
+ }
+
+ protected function setPaytimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+ protected function setExaminetimeAttr($value)
+ {
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
+ }
+
+
+ public function user()
+ {
+ return $this->belongsTo('app\manystore\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+}
diff --git a/application/manystore/validate/school/activity/Activity.php b/application/manystore/validate/school/activity/Activity.php
new file mode 100644
index 0000000..43937fb
--- /dev/null
+++ b/application/manystore/validate/school/activity/Activity.php
@@ -0,0 +1,27 @@
+ [],
+ 'edit' => [],
+ ];
+
+}
diff --git a/application/manystore/validate/school/activity/Cate.php b/application/manystore/validate/school/activity/Cate.php
new file mode 100644
index 0000000..81a6768
--- /dev/null
+++ b/application/manystore/validate/school/activity/Cate.php
@@ -0,0 +1,27 @@
+ [],
+ 'edit' => [],
+ ];
+
+}
diff --git a/application/manystore/validate/school/activity/Refund.php b/application/manystore/validate/school/activity/Refund.php
new file mode 100644
index 0000000..225f385
--- /dev/null
+++ b/application/manystore/validate/school/activity/Refund.php
@@ -0,0 +1,27 @@
+ [],
+ 'edit' => [],
+ ];
+
+}
diff --git a/application/manystore/validate/school/activity/order/Order.php b/application/manystore/validate/school/activity/order/Order.php
new file mode 100644
index 0000000..a791802
--- /dev/null
+++ b/application/manystore/validate/school/activity/order/Order.php
@@ -0,0 +1,27 @@
+ [],
+ 'edit' => [],
+ ];
+
+}
diff --git a/application/manystore/validate/school/activity/order/OrderCode.php b/application/manystore/validate/school/activity/order/OrderCode.php
new file mode 100644
index 0000000..97846b5
--- /dev/null
+++ b/application/manystore/validate/school/activity/order/OrderCode.php
@@ -0,0 +1,27 @@
+ [],
+ 'edit' => [],
+ ];
+
+}
diff --git a/application/manystore/validate/school/activity/order/OrderDetail.php b/application/manystore/validate/school/activity/order/OrderDetail.php
new file mode 100644
index 0000000..a9f6f7c
--- /dev/null
+++ b/application/manystore/validate/school/activity/order/OrderDetail.php
@@ -0,0 +1,27 @@
+ [],
+ 'edit' => [],
+ ];
+
+}
diff --git a/application/manystore/validate/school/activity/order/OrderLog.php b/application/manystore/validate/school/activity/order/OrderLog.php
new file mode 100644
index 0000000..a2c54ca
--- /dev/null
+++ b/application/manystore/validate/school/activity/order/OrderLog.php
@@ -0,0 +1,27 @@
+ [],
+ 'edit' => [],
+ ];
+
+}
diff --git a/application/manystore/validate/school/activity/order/SettleLog.php b/application/manystore/validate/school/activity/order/SettleLog.php
new file mode 100644
index 0000000..a0bac03
--- /dev/null
+++ b/application/manystore/validate/school/activity/order/SettleLog.php
@@ -0,0 +1,27 @@
+ [],
+ 'edit' => [],
+ ];
+
+}
diff --git a/application/manystore/validate/user/withdrawal/Userwithdrawal.php b/application/manystore/validate/user/withdrawal/Userwithdrawal.php
new file mode 100644
index 0000000..8f08ae8
--- /dev/null
+++ b/application/manystore/validate/user/withdrawal/Userwithdrawal.php
@@ -0,0 +1,27 @@
+ [],
+ 'edit' => [],
+ ];
+
+}
diff --git a/application/manystore/validate/user/withdrawal/UserwithdrawalLog.php b/application/manystore/validate/user/withdrawal/UserwithdrawalLog.php
new file mode 100644
index 0000000..443c33b
--- /dev/null
+++ b/application/manystore/validate/user/withdrawal/UserwithdrawalLog.php
@@ -0,0 +1,27 @@
+ [],
+ 'edit' => [],
+ ];
+
+}
diff --git a/application/manystore/view/school/activity/activity/add.html b/application/manystore/view/school/activity/activity/add.html
new file mode 100644
index 0000000..bcdc477
--- /dev/null
+++ b/application/manystore/view/school/activity/activity/add.html
@@ -0,0 +1,421 @@
+
diff --git a/application/manystore/view/school/activity/activity/copy.html b/application/manystore/view/school/activity/activity/copy.html
new file mode 100644
index 0000000..d7678b8
--- /dev/null
+++ b/application/manystore/view/school/activity/activity/copy.html
@@ -0,0 +1,410 @@
+
diff --git a/application/manystore/view/school/activity/activity/edit.html b/application/manystore/view/school/activity/activity/edit.html
new file mode 100644
index 0000000..1f5ebe6
--- /dev/null
+++ b/application/manystore/view/school/activity/activity/edit.html
@@ -0,0 +1,431 @@
+
diff --git a/application/manystore/view/school/activity/activity/index.html b/application/manystore/view/school/activity/activity/index.html
new file mode 100644
index 0000000..fc6c0ba
--- /dev/null
+++ b/application/manystore/view/school/activity/activity/index.html
@@ -0,0 +1,74 @@
+
+
+
+ {:build_heading(null,FALSE)}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/application/manystore/view/school/activity/activity/recyclebin.html b/application/manystore/view/school/activity/activity/recyclebin.html
new file mode 100644
index 0000000..5eb4c8d
--- /dev/null
+++ b/application/manystore/view/school/activity/activity/recyclebin.html
@@ -0,0 +1,25 @@
+
+ {:build_heading()}
+
+
+
diff --git a/application/manystore/view/school/activity/cate/add.html b/application/manystore/view/school/activity/cate/add.html
new file mode 100644
index 0000000..1bde078
--- /dev/null
+++ b/application/manystore/view/school/activity/cate/add.html
@@ -0,0 +1,60 @@
+
diff --git a/application/manystore/view/school/activity/cate/edit.html b/application/manystore/view/school/activity/cate/edit.html
new file mode 100644
index 0000000..365032b
--- /dev/null
+++ b/application/manystore/view/school/activity/cate/edit.html
@@ -0,0 +1,60 @@
+
diff --git a/application/manystore/view/school/activity/cate/index.html b/application/manystore/view/school/activity/cate/index.html
new file mode 100644
index 0000000..2ff4f79
--- /dev/null
+++ b/application/manystore/view/school/activity/cate/index.html
@@ -0,0 +1,44 @@
+
+
+
+ {:build_heading(null,FALSE)}
+
+
+
+
+
+
diff --git a/application/manystore/view/school/activity/cate/recyclebin.html b/application/manystore/view/school/activity/cate/recyclebin.html
new file mode 100644
index 0000000..8631826
--- /dev/null
+++ b/application/manystore/view/school/activity/cate/recyclebin.html
@@ -0,0 +1,25 @@
+
+ {:build_heading()}
+
+
+
diff --git a/application/manystore/view/school/activity/order/order/add.html b/application/manystore/view/school/activity/order/order/add.html
new file mode 100644
index 0000000..761869a
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order/add.html
@@ -0,0 +1,306 @@
+
diff --git a/application/manystore/view/school/activity/order/order/edit.html b/application/manystore/view/school/activity/order/order/edit.html
new file mode 100644
index 0000000..6ae396c
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order/edit.html
@@ -0,0 +1,306 @@
+
diff --git a/application/manystore/view/school/activity/order/order/index.html b/application/manystore/view/school/activity/order/order/index.html
new file mode 100644
index 0000000..e323b81
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order/index.html
@@ -0,0 +1,44 @@
+
+
+
+ {:build_heading(null,FALSE)}
+
+
+
+
+
+
diff --git a/application/manystore/view/school/activity/order/order/recyclebin.html b/application/manystore/view/school/activity/order/order/recyclebin.html
new file mode 100644
index 0000000..98b7356
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order/recyclebin.html
@@ -0,0 +1,25 @@
+
+ {:build_heading()}
+
+
+
diff --git a/application/manystore/view/school/activity/order/order_code/add.html b/application/manystore/view/school/activity/order/order_code/add.html
new file mode 100644
index 0000000..853da50
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order_code/add.html
@@ -0,0 +1,104 @@
+
diff --git a/application/manystore/view/school/activity/order/order_code/edit.html b/application/manystore/view/school/activity/order/order_code/edit.html
new file mode 100644
index 0000000..0ec4371
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order_code/edit.html
@@ -0,0 +1,104 @@
+
diff --git a/application/manystore/view/school/activity/order/order_code/index.html b/application/manystore/view/school/activity/order/order_code/index.html
new file mode 100644
index 0000000..a6b4f67
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order_code/index.html
@@ -0,0 +1,44 @@
+
+
+
+ {:build_heading(null,FALSE)}
+
+
+
+
+
+
diff --git a/application/manystore/view/school/activity/order/order_code/recyclebin.html b/application/manystore/view/school/activity/order/order_code/recyclebin.html
new file mode 100644
index 0000000..d82313a
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order_code/recyclebin.html
@@ -0,0 +1,25 @@
+
+ {:build_heading()}
+
+
+
diff --git a/application/manystore/view/school/activity/order/order_detail/add.html b/application/manystore/view/school/activity/order/order_detail/add.html
new file mode 100644
index 0000000..79fd82d
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order_detail/add.html
@@ -0,0 +1,318 @@
+
diff --git a/application/manystore/view/school/activity/order/order_detail/edit.html b/application/manystore/view/school/activity/order/order_detail/edit.html
new file mode 100644
index 0000000..25a2383
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order_detail/edit.html
@@ -0,0 +1,318 @@
+
diff --git a/application/manystore/view/school/activity/order/order_detail/index.html b/application/manystore/view/school/activity/order/order_detail/index.html
new file mode 100644
index 0000000..0feed4a
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order_detail/index.html
@@ -0,0 +1,34 @@
+
+ {:build_heading()}
+
+
+
diff --git a/application/manystore/view/school/activity/order/order_detail/recyclebin.html b/application/manystore/view/school/activity/order/order_detail/recyclebin.html
new file mode 100644
index 0000000..5a4357a
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order_detail/recyclebin.html
@@ -0,0 +1,25 @@
+
+ {:build_heading()}
+
+
+
diff --git a/application/manystore/view/school/activity/order/order_log/add.html b/application/manystore/view/school/activity/order/order_log/add.html
new file mode 100644
index 0000000..91f06db
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order_log/add.html
@@ -0,0 +1,46 @@
+
diff --git a/application/manystore/view/school/activity/order/order_log/edit.html b/application/manystore/view/school/activity/order/order_log/edit.html
new file mode 100644
index 0000000..c76b3f5
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order_log/edit.html
@@ -0,0 +1,46 @@
+
diff --git a/application/manystore/view/school/activity/order/order_log/index.html b/application/manystore/view/school/activity/order/order_log/index.html
new file mode 100644
index 0000000..fcf2888
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order_log/index.html
@@ -0,0 +1,44 @@
+
+
+
+ {:build_heading(null,FALSE)}
+
+
+
+
+
+
diff --git a/application/manystore/view/school/activity/order/order_log/recyclebin.html b/application/manystore/view/school/activity/order/order_log/recyclebin.html
new file mode 100644
index 0000000..3e1e641
--- /dev/null
+++ b/application/manystore/view/school/activity/order/order_log/recyclebin.html
@@ -0,0 +1,25 @@
+
+ {:build_heading()}
+
+
+
diff --git a/application/manystore/view/school/activity/order/settle_log/add.html b/application/manystore/view/school/activity/order/settle_log/add.html
new file mode 100644
index 0000000..336a22d
--- /dev/null
+++ b/application/manystore/view/school/activity/order/settle_log/add.html
@@ -0,0 +1,106 @@
+
diff --git a/application/manystore/view/school/activity/order/settle_log/edit.html b/application/manystore/view/school/activity/order/settle_log/edit.html
new file mode 100644
index 0000000..84a1231
--- /dev/null
+++ b/application/manystore/view/school/activity/order/settle_log/edit.html
@@ -0,0 +1,106 @@
+
diff --git a/application/manystore/view/school/activity/order/settle_log/index.html b/application/manystore/view/school/activity/order/settle_log/index.html
new file mode 100644
index 0000000..cc99f63
--- /dev/null
+++ b/application/manystore/view/school/activity/order/settle_log/index.html
@@ -0,0 +1,44 @@
+
+
+
+ {:build_heading(null,FALSE)}
+
+
+
+
+
+
diff --git a/application/manystore/view/school/activity/order/settle_log/recyclebin.html b/application/manystore/view/school/activity/order/settle_log/recyclebin.html
new file mode 100644
index 0000000..af46280
--- /dev/null
+++ b/application/manystore/view/school/activity/order/settle_log/recyclebin.html
@@ -0,0 +1,25 @@
+
+ {:build_heading()}
+
+
+
diff --git a/application/manystore/view/school/activity/refund/add.html b/application/manystore/view/school/activity/refund/add.html
new file mode 100644
index 0000000..b20c65e
--- /dev/null
+++ b/application/manystore/view/school/activity/refund/add.html
@@ -0,0 +1,56 @@
+
diff --git a/application/manystore/view/school/activity/refund/edit.html b/application/manystore/view/school/activity/refund/edit.html
new file mode 100644
index 0000000..6a88750
--- /dev/null
+++ b/application/manystore/view/school/activity/refund/edit.html
@@ -0,0 +1,56 @@
+
diff --git a/application/manystore/view/school/activity/refund/index.html b/application/manystore/view/school/activity/refund/index.html
new file mode 100644
index 0000000..1ede039
--- /dev/null
+++ b/application/manystore/view/school/activity/refund/index.html
@@ -0,0 +1,44 @@
+
+
+
+ {:build_heading(null,FALSE)}
+
+
+
+
+
+
diff --git a/application/manystore/view/school/activity/refund/recyclebin.html b/application/manystore/view/school/activity/refund/recyclebin.html
new file mode 100644
index 0000000..7e862e9
--- /dev/null
+++ b/application/manystore/view/school/activity/refund/recyclebin.html
@@ -0,0 +1,25 @@
+
+ {:build_heading()}
+
+
+
diff --git a/application/manystore/view/user/user/add.html b/application/manystore/view/user/user/add.html
index 20d6789..45634bf 100644
--- a/application/manystore/view/user/user/add.html
+++ b/application/manystore/view/user/user/add.html
@@ -105,4 +105,82 @@