切换导航条
此项目
正在载入...
登录
郭盛
/
areial
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
郭盛
5 years ago
提交
95159f32a60cdf81c4e25acbc302cb14f0c286b7
1 个父辈
c74cd7ad
1 个管道 的构建
通过
耗费 8 秒
前端接口
变更
9
构建
1
隐藏空白字符变更
内嵌
并排对比
正在显示
9 个修改的文件
包含
508 行增加
和
199 行删除
.idea/workspace.xml
application/admin/lang/zh-cn/video.php
application/admin/view/video/add.html
application/admin/view/video/edit.html
application/api/controller/Pay.php
application/api/controller/User.php
application/extra/verify.php
public/api.html
public/assets/js/backend/video.js
.idea/workspace.xml
查看文件 @
95159f3
...
...
@@ -2,13 +2,13 @@
<project
version=
"4"
>
<component
name=
"ChangeListManager"
>
<list
default=
"true"
id=
"e93f11c2-a7d9-4d35-8b1c-8dd18e7f5fef"
name=
"Default"
comment=
""
>
<change
type=
"DELETED"
beforePath=
"$PROJECT_DIR$/application/api/controller/Demo.php"
afterPath=
""
/>
<change
type=
"DELETED"
beforePath=
"$PROJECT_DIR$/application/api/controller/Index.php"
afterPath=
""
/>
<change
type=
"NEW"
beforePath=
""
afterPath=
"$PROJECT_DIR$/application/api/controller/Pay.php"
/>
<change
type=
"MODIFICATION"
beforePath=
"$PROJECT_DIR$/.idea/workspace.xml"
afterPath=
"$PROJECT_DIR$/.idea/workspace.xml"
/>
<change
type=
"MODIFICATION"
beforePath=
"$PROJECT_DIR$/application/admin/lang/zh-cn/video.php"
afterPath=
"$PROJECT_DIR$/application/admin/lang/zh-cn/video.php"
/>
<change
type=
"MODIFICATION"
beforePath=
"$PROJECT_DIR$/application/admin/view/video/add.html"
afterPath=
"$PROJECT_DIR$/application/admin/view/video/add.html"
/>
<change
type=
"MODIFICATION"
beforePath=
"$PROJECT_DIR$/application/admin/view/video/edit.html"
afterPath=
"$PROJECT_DIR$/application/admin/view/video/edit.html"
/>
<change
type=
"MODIFICATION"
beforePath=
"$PROJECT_DIR$/application/api/controller/User.php"
afterPath=
"$PROJECT_DIR$/application/api/controller/User.php"
/>
<change
type=
"MODIFICATION"
beforePath=
"$PROJECT_DIR$/application/extra/verify.php"
afterPath=
"$PROJECT_DIR$/application/extra/verify.php"
/>
<change
type=
"MODIFICATION"
beforePath=
"$PROJECT_DIR$/public/api.html"
afterPath=
"$PROJECT_DIR$/public/api.html"
/>
<change
type=
"MODIFICATION"
beforePath=
"$PROJECT_DIR$/public/assets/js/backend/video.js"
afterPath=
"$PROJECT_DIR$/public/assets/js/backend/video.js"
/>
</list>
...
...
@@ -21,52 +21,40 @@
</component>
<component
name=
"FileEditorManager"
>
<leaf
SIDE_TABS_SIZE_LIMIT_KEY=
"300"
>
<file
leaf-file-name=
"Video.php"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/application/admin/controller/Video.php"
>
<file
leaf-file-name=
"User.php"
pinned=
"false"
current-in-tab=
"true"
>
<entry
file=
"file://$PROJECT_DIR$/application/api/controller/User.php"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"1464"
>
<caret
line=
"169"
column=
"0"
lean-forward=
"true"
selection-start-line=
"169"
selection-start-column=
"0"
selection-end-line=
"169"
selection-end-column=
"0"
/>
<folding
/>
</state>
</provider>
</entry>
</file>
<file
leaf-file-name=
"video.php"
pinned=
"false"
current-in-tab=
"true"
>
<entry
file=
"file://$PROJECT_DIR$/application/admin/lang/zh-cn/video.php"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"325"
>
<caret
line=
"13"
column=
"24"
lean-forward=
"false"
selection-start-line=
"13"
selection-start-column=
"24"
selection-end-line=
"13"
selection-end-column=
"24"
/>
<folding
/>
</state>
</provider>
</entry>
</file>
<file
leaf-file-name=
"video.js"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/public/assets/js/backend/video.js"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"50"
>
<caret
line=
"23"
column=
"26"
lean-forward=
"true"
selection-start-line=
"23"
selection-start-column=
"26"
selection-end-line=
"23"
selection-end-column=
"26"
/>
<folding
/>
</state>
</provider>
</entry>
</file>
<file
leaf-file-name=
"add.html"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/application/admin/view/video/add.html"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"51"
>
<caret
line=
"90"
column=
"4"
lean-forward=
"false"
selection-start-line=
"90"
selection-start-column=
"4"
selection-end-line=
"113"
selection-end-column=
"10"
/>
<folding
/>
</state>
</provider>
</entry>
</file>
<file
leaf-file-name=
"edit.html"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/application/admin/view/video/edit.html"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"326"
>
<caret
line=
"104"
column=
"40"
lean-forward=
"true"
selection-start-line=
"104"
selection-start-column=
"40"
selection-end-line=
"104"
selection-end-column=
"40"
/>
<folding
/>
<state
relative-caret-position=
"534"
>
<caret
line=
"606"
column=
"5"
lean-forward=
"true"
selection-start-line=
"606"
selection-start-column=
"5"
selection-end-line=
"606"
selection-end-column=
"5"
/>
<folding>
<element
signature=
"e#38#68#0#PHP"
expanded=
"true"
/>
<element
signature=
"e#337#456#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#462#1200#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#1205#2868#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#2874#3402#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#3407#4178#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#4184#4591#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#4596#4939#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#4945#5597#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#5602#7545#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#7551#8000#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#8005#8888#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#8894#9411#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#9416#10415#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#10421#11105#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#11110#12606#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#12612#13482#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#13487#15300#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#15306#15683#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#15688#15952#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#15958#16463#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#16468#16719#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#16725#17204#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#17209#17966#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#17972#18387#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#18392#18900#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#18906#19123#0#PHP"
expanded=
"false"
/>
</folding>
</state>
</provider>
</entry>
...
...
@@ -111,17 +99,18 @@
<option
value=
"$PROJECT_DIR$/.gitlab-ci.yml"
/>
<option
value=
"$PROJECT_DIR$/.gitignore"
/>
<option
value=
"$PROJECT_DIR$/public/.gitignore"
/>
<option
value=
"$PROJECT_DIR$/application/extra/verify.php"
/>
<option
value=
"$PROJECT_DIR$/application/common/library/Auth.php"
/>
<option
value=
"$PROJECT_DIR$/public/assets/js/backend/pic.js"
/>
<option
value=
"$PROJECT_DIR$/application/admin/lang/zh-cn/pic.php"
/>
<option
value=
"$PROJECT_DIR$/application/admin/view/pic/add.html"
/>
<option
value=
"$PROJECT_DIR$/application/admin/view/pic/edit.html"
/>
<option
value=
"$PROJECT_DIR$/application/api/controller/User.php"
/>
<option
value=
"$PROJECT_DIR$/application/extra/verify.php"
/>
<option
value=
"$PROJECT_DIR$/application/api/controller/Pay.php"
/>
<option
value=
"$PROJECT_DIR$/public/assets/js/backend/video.js"
/>
<option
value=
"$PROJECT_DIR$/application/admin/lang/zh-cn/video.php"
/>
<option
value=
"$PROJECT_DIR$/application/admin/view/video/add.html"
/>
<option
value=
"$PROJECT_DIR$/application/admin/view/video/edit.html"
/>
<option
value=
"$PROJECT_DIR$/application/a
dmin/lang/zh-cn/video
.php"
/>
<option
value=
"$PROJECT_DIR$/application/a
pi/controller/User
.php"
/>
</list>
</option>
</component>
...
...
@@ -139,11 +128,11 @@
<sorting>
DEFINITION_ORDER
</sorting>
</component>
<component
name=
"PhpWorkspaceProjectConfiguration"
backward_compatibility_performed=
"true"
/>
<component
name=
"ProjectFrameBounds"
extendedState=
"7"
>
<option
name=
"x"
value=
"44"
/>
<option
name=
"y"
value=
"79"
/>
<option
name=
"width"
value=
"1560"
/>
<option
name=
"height"
value=
"948"
/>
<component
name=
"ProjectFrameBounds"
extendedState=
"1"
>
<option
name=
"x"
value=
"159"
/>
<option
name=
"y"
value=
"20"
/>
<option
name=
"width"
value=
"1722"
/>
<option
name=
"height"
value=
"946"
/>
</component>
<component
name=
"ProjectView"
>
<navigator
currentView=
"ProjectPane"
proportions=
""
version=
"1"
>
...
...
@@ -176,56 +165,15 @@
<item
name=
"areial"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"areial"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"application"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"a
dmin
"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"a
pi
"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
</path>
<path>
<item
name=
"areial"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"areial"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"application"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"a
dmin
"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"a
pi
"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"controller"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
</path>
<path>
<item
name=
"areial"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"areial"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"application"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"admin"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"view"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
</path>
<path>
<item
name=
"areial"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"areial"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"application"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"admin"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"view"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"video"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
</path>
<path>
<item
name=
"areial"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"areial"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"public"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
</path>
<path>
<item
name=
"areial"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"areial"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"public"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"assets"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
</path>
<path>
<item
name=
"areial"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"areial"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"public"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"assets"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"js"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
</path>
<path>
<item
name=
"areial"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"areial"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"public"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"assets"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"js"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
<item
name=
"backend"
type=
"2a2b976b:PhpTreeStructureProvider$1"
/>
</path>
</expand>
<select
/>
</subPane>
...
...
@@ -236,10 +184,11 @@
</component>
<component
name=
"PropertiesComponent"
>
<property
name=
"WebServerToolWindowFactoryState"
value=
"false"
/>
<property
name=
"last_opened_file_path"
value=
"$PROJECT_DIR$/../
hotel
"
/>
<property
name=
"last_opened_file_path"
value=
"$PROJECT_DIR$/../
scrap1/scrap
"
/>
</component>
<component
name=
"RecentsManager"
>
<key
name=
"CopyFile.RECENT_KEYS"
>
<recent
name=
"D:\htdocs\areial\application\api\controller"
/>
<recent
name=
"D:\htdocs\areial\public"
/>
<recent
name=
"D:\htdocs\areial"
/>
<recent
name=
"D:\htdocs\areial\areial"
/>
...
...
@@ -272,7 +221,7 @@
<workItem
from=
"1574122453532"
duration=
"15780000"
/>
<workItem
from=
"1574141466352"
duration=
"745000"
/>
<workItem
from=
"1574143209694"
duration=
"3660000"
/>
<workItem
from=
"1574146994475"
duration=
"
15295
000"
/>
<workItem
from=
"1574146994475"
duration=
"
23222
000"
/>
</task>
<task
id=
"LOCAL-00001"
summary=
"调试"
>
<created>
1574145133364
</created>
...
...
@@ -285,7 +234,7 @@
<servers
/>
</component>
<component
name=
"TimeTrackingManager"
>
<option
name=
"totallyTimeSpent"
value=
"
63648
000"
/>
<option
name=
"totallyTimeSpent"
value=
"
71575
000"
/>
</component>
<component
name=
"TodoView"
>
<todo-panel
id=
"selected-file"
>
...
...
@@ -297,10 +246,10 @@
</todo-panel>
</component>
<component
name=
"ToolWindowManager"
>
<frame
x=
"
-8"
y=
"-8"
width=
"1936"
height=
"1056"
extended-state=
"7
"
/>
<frame
x=
"
159"
y=
"20"
width=
"1722"
height=
"946"
extended-state=
"1
"
/>
<editor
active=
"true"
/>
<layout>
<window_info
id=
"Project"
active=
"false"
anchor=
"left"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"true"
show_stripe_button=
"true"
weight=
"0.1
5138593
"
sideWeight=
"0.5"
order=
"1"
side_tool=
"false"
content_ui=
"combo"
/>
<window_info
id=
"Project"
active=
"false"
anchor=
"left"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"true"
show_stripe_button=
"true"
weight=
"0.1
7087846
"
sideWeight=
"0.5"
order=
"1"
side_tool=
"false"
content_ui=
"combo"
/>
<window_info
id=
"TODO"
active=
"false"
anchor=
"bottom"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"false"
show_stripe_button=
"true"
weight=
"0.32912987"
sideWeight=
"0.5"
order=
"9"
side_tool=
"false"
content_ui=
"tabs"
/>
<window_info
id=
"Event Log"
active=
"false"
anchor=
"bottom"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"false"
show_stripe_button=
"true"
weight=
"0.33"
sideWeight=
"0.5"
order=
"0"
side_tool=
"true"
content_ui=
"tabs"
/>
<window_info
id=
"Database"
active=
"false"
anchor=
"right"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"false"
show_stripe_button=
"true"
weight=
"0.33"
sideWeight=
"0.5"
order=
"0"
side_tool=
"false"
content_ui=
"tabs"
/>
...
...
@@ -308,7 +257,7 @@
<window_info
id=
"Version Control"
active=
"false"
anchor=
"bottom"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"false"
show_stripe_button=
"true"
weight=
"0.33"
sideWeight=
"0.5"
order=
"1"
side_tool=
"false"
content_ui=
"tabs"
/>
<window_info
id=
"Run"
active=
"false"
anchor=
"bottom"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"false"
show_stripe_button=
"true"
weight=
"0.33"
sideWeight=
"0.5"
order=
"5"
side_tool=
"false"
content_ui=
"tabs"
/>
<window_info
id=
"Structure"
active=
"false"
anchor=
"left"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"false"
show_stripe_button=
"true"
weight=
"0.25"
sideWeight=
"0.5"
order=
"2"
side_tool=
"false"
content_ui=
"tabs"
/>
<window_info
id=
"Terminal"
active=
"false"
anchor=
"bottom"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"false"
show_stripe_button=
"true"
weight=
"0.
1772784
"
sideWeight=
"0.5"
order=
"2"
side_tool=
"false"
content_ui=
"tabs"
/>
<window_info
id=
"Terminal"
active=
"false"
anchor=
"bottom"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"false"
show_stripe_button=
"true"
weight=
"0.
33992583
"
sideWeight=
"0.5"
order=
"2"
side_tool=
"false"
content_ui=
"tabs"
/>
<window_info
id=
"Favorites"
active=
"false"
anchor=
"left"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"false"
show_stripe_button=
"true"
weight=
"0.33"
sideWeight=
"0.5"
order=
"0"
side_tool=
"true"
content_ui=
"tabs"
/>
<window_info
id=
"Debug"
active=
"false"
anchor=
"bottom"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"false"
show_stripe_button=
"true"
weight=
"0.4"
sideWeight=
"0.5"
order=
"6"
side_tool=
"false"
content_ui=
"tabs"
/>
<window_info
id=
"Cvs"
active=
"false"
anchor=
"bottom"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"false"
show_stripe_button=
"true"
weight=
"0.25"
sideWeight=
"0.5"
order=
"7"
side_tool=
"false"
content_ui=
"tabs"
/>
...
...
@@ -355,13 +304,6 @@
<watches-manager
/>
</component>
<component
name=
"editorHistoryManager"
>
<entry
file=
"file://$PROJECT_DIR$/application/admin/view/type/add.html"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"550"
>
<caret
line=
"22"
column=
"41"
lean-forward=
"true"
selection-start-line=
"22"
selection-start-column=
"41"
selection-end-line=
"22"
selection-end-column=
"41"
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/application/admin/view/type/edit.html"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"300"
>
...
...
@@ -594,14 +536,6 @@
<state
/>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/application/extra/verify.php"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"450"
>
<caret
line=
"18"
column=
"40"
lean-forward=
"true"
selection-start-line=
"18"
selection-start-column=
"40"
selection-end-line=
"18"
selection-end-column=
"40"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/application/common/library/Auth.php"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"585"
>
...
...
@@ -681,74 +615,105 @@
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/application/api/controller/User.php"
>
<entry
file=
"file://$PROJECT_DIR$/application/admin/controller/Video.php"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"1464"
>
<caret
line=
"169"
column=
"0"
lean-forward=
"true"
selection-start-line=
"169"
selection-start-column=
"0"
selection-end-line=
"169"
selection-end-column=
"0"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/application/api/controller/Pay.php"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"309"
>
<caret
line=
"459"
column=
"5"
lean-forward=
"true"
selection-start-line=
"459"
selection-start-column=
"5"
selection-end-line=
"459"
selection-end-column=
"5"
/>
<state
relative-caret-position=
"235"
>
<caret
line=
"43"
column=
"37"
lean-forward=
"true"
selection-start-line=
"43"
selection-start-column=
"37"
selection-end-line=
"43"
selection-end-column=
"37"
/>
<folding>
<element
signature=
"e#38#68#0#PHP"
expanded=
"true"
/>
<element
signature=
"e#337#456#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#462#1200#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#1205#2868#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#2874#3402#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#3407#4178#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#4184#4591#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#4596#4939#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#4945#5597#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#5602#7545#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#7551#8000#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#8005#8888#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#8894#9411#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#9416#10415#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#10421#11105#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#11110#12606#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#12612#13336#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#13341#14959#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#14965#15342#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#15347#15611#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#600#719#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#3357#4413#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#4436#5354#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#5361#5826#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#5831#6636#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#6642#7049#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#7054#9439#0#PHP"
expanded=
"false"
/>
</folding>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/application/
admin/controller/Video
.php"
>
<entry
file=
"file://$PROJECT_DIR$/application/
extra/verify
.php"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"1464"
>
<caret
line=
"169"
column=
"0"
lean-forward=
"true"
selection-start-line=
"169"
selection-start-column=
"0"
selection-end-line=
"169"
selection-end-column=
"0"
/>
<state
relative-caret-position=
"160"
>
<caret
line=
"13"
column=
"43"
lean-forward=
"true"
selection-start-line=
"13"
selection-start-column=
"43"
selection-end-line=
"13"
selection-end-column=
"43"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/
public/assets/js/backend/video.js
"
>
<entry
file=
"file://$PROJECT_DIR$/
application/admin/view/video/edit.html
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"50"
>
<caret
line=
"23"
column=
"26"
lean-forward=
"true"
selection-start-line=
"23"
selection-start-column=
"26"
selection-end-line=
"23"
selection-end-column=
"26"
/>
<state
relative-caret-position=
"251"
>
<caret
line=
"83"
column=
"10"
lean-forward=
"false"
selection-start-line=
"83"
selection-start-column=
"10"
selection-end-line=
"83"
selection-end-column=
"10"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/application/admin/view/video/add.html"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"51"
>
<caret
line=
"90"
column=
"4"
lean-forward=
"false"
selection-start-line=
"90"
selection-start-column=
"4"
selection-end-line=
"113"
selection-end-column=
"10"
/>
<state
relative-caret-position=
"101"
>
<caret
line=
"83"
column=
"10"
lean-forward=
"false"
selection-start-line=
"83"
selection-start-column=
"10"
selection-end-line=
"83"
selection-end-column=
"10"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/application/admin/
view/video/edit.html
"
>
<entry
file=
"file://$PROJECT_DIR$/application/admin/
lang/zh-cn/video.php
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"326"
>
<caret
line=
"104"
column=
"40"
lean-forward=
"true"
selection-start-line=
"104"
selection-start-column=
"40"
selection-end-line=
"104"
selection-end-column=
"40"
/>
<state
relative-caret-position=
"350"
>
<caret
line=
"14"
column=
"34"
lean-forward=
"false"
selection-start-line=
"14"
selection-start-column=
"34"
selection-end-line=
"14"
selection-end-column=
"34"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/
application/admin/lang/zh-cn/video.php
"
>
<entry
file=
"file://$PROJECT_DIR$/
public/assets/js/backend/video.js
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"325"
>
<caret
line=
"13"
column=
"24"
lean-forward=
"false"
selection-start-line=
"13"
selection-start-column=
"24"
selection-end-line=
"13"
selection-end-column=
"24"
/>
<state
relative-caret-position=
"475"
>
<caret
line=
"40"
column=
"73"
lean-forward=
"false"
selection-start-line=
"40"
selection-start-column=
"73"
selection-end-line=
"40"
selection-end-column=
"73"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/application/api/controller/User.php"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"534"
>
<caret
line=
"606"
column=
"5"
lean-forward=
"true"
selection-start-line=
"606"
selection-start-column=
"5"
selection-end-line=
"606"
selection-end-column=
"5"
/>
<folding>
<element
signature=
"e#38#68#0#PHP"
expanded=
"true"
/>
<element
signature=
"e#337#456#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#462#1200#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#1205#2868#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#2874#3402#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#3407#4178#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#4184#4591#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#4596#4939#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#4945#5597#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#5602#7545#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#7551#8000#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#8005#8888#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#8894#9411#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#9416#10415#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#10421#11105#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#11110#12606#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#12612#13482#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#13487#15300#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#15306#15683#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#15688#15952#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#15958#16463#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#16468#16719#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#16725#17204#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#17209#17966#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#17972#18387#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#18392#18900#0#PHP"
expanded=
"false"
/>
<element
signature=
"e#18906#19123#0#PHP"
expanded=
"false"
/>
</folding>
</state>
</provider>
</entry>
</component>
</project>
\ No newline at end of file
...
...
application/admin/lang/zh-cn/video.php
查看文件 @
95159f3
...
...
@@ -11,11 +11,8 @@ return [
'Four_url'
=>
'4k视频地址'
,
'Eight_url'
=>
'8k视频地址'
,
'Price'
=>
'2k正常价格'
,
'Vip_price'
=>
'2k会员价格'
,
'Four_price'
=>
'4K正常价格'
,
'Four_vipprice'
=>
'4K会员价格'
,
'Eight_price'
=>
'8K正常价格'
,
'Eight_vipprice'
=>
'8K会员价格'
,
'Content'
=>
'视频介绍'
,
'Is_recommend'
=>
'是否精选'
,
'Buy_num'
=>
'购买数量'
,
...
...
application/admin/view/video/add.html
查看文件 @
95159f3
...
...
@@ -83,36 +83,18 @@
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Vip_price')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-vip_price"
class=
"form-control"
name=
"row[vip_price]"
type=
"text"
placeholder=
"请输入2k会员价格"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Four_price')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-four_price"
class=
"form-control"
name=
"row[four_price]"
type=
"text"
placeholder=
"请输入4k普通价格"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Four_vipprice')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-four_vipprice"
class=
"form-control"
name=
"row[four_vipprice]"
type=
"text"
placeholder=
"请输入4k会员价格"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Eight_price')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-eight_price"
class=
"form-control"
name=
"row[eight_price]"
type=
"text"
placeholder=
"请输入8k普通价格"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Eight_vipprice')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-eight_vipprice"
class=
"form-control"
name=
"row[eight_vipprice]"
type=
"text"
placeholder=
"请输入8k会员价格"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Is_recommend')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
{:build_radios('row[is_recommend]', ['1'=>__('是'), '0 '=>__('否')])}
...
...
application/admin/view/video/edit.html
查看文件 @
95159f3
...
...
@@ -83,36 +83,18 @@
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Vip_price')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-vip_price"
class=
"form-control"
name=
"row[vip_price]"
type=
"text"
value=
"{$row.vip_price}"
placeholder=
"请输入2k会员价格"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Four_price')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-four_price"
class=
"form-control"
name=
"row[four_price]"
type=
"text"
value=
"{$row.four_price}"
placeholder=
"请输入4k普通价格"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Four_vipprice')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-four_vipprice"
class=
"form-control"
name=
"row[four_vipprice]"
type=
"text"
value=
"{$row.four_vipprice}"
placeholder=
"请输入4k会员价格"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Eight_price')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-eight_price"
class=
"form-control"
name=
"row[eight_price]"
type=
"text"
value=
"{$row.eight_price}"
placeholder=
"请输入8k普通价格"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Eight_vipprice')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-eight_vipprice"
class=
"form-control"
name=
"row[eight_vipprice]"
type=
"text"
value=
"{$row.eight_vipprice}"
placeholder=
"请输入8k会员价格"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Is_recommend')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
{:build_radios('row[is_recommend]', ['1'=>__('是'), '0'=>__('否')], $row['is_recommend'])}
...
...
application/api/controller/Pay.php
0 → 100644
查看文件 @
95159f3
<?php
namespace
app\api\controller
;
use
app\admin\model\PayMember
;
use
app\admin\model\ToBalance
;
use
app\common\controller\Api
;
use
EasyWeChat\Factory
;
use
function
GuzzleHttp
\Promise\inspect
;
use
think\Db
;
use
app\admin\model\User
;
use
think\Log
;
use
fast\Http
;
use
think\Validate
;
use
Exception
;
use
function
EasyWeChat
\Kernel\Support\generate_sign
;
/**
* 支付接口
*/
class
Pay
extends
Api
{
protected
$noNeedLogin
=
[
'payMemberNotify'
,
'paySecurityNotify'
,
'payOrderNotify'
];
protected
$noNeedRight
=
[
'*'
];
protected
$uid
=
''
;
//token存贮uid
protected
$order_status
=
[];
//订单状态
public
function
_initialize
()
{
parent
::
_initialize
();
$this
->
uid
=
$this
->
auth
->
getUserId
();
}
/**
* @ApiTitle (充值/支付订单)
* @ApiSummary (充值支付)
* @ApiMethod (POST)
* @ApiRoute (/api/pay/pay)
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
*
* @ApiParams (name="openid", type="string", required=true, description="小程序openid")
* @ApiParams (name="num", type="inter", required=false, description="支付订单号")
*
*/
public
function
pay
(){
if
(
$this
->
request
->
isPost
()){
$openid
=
$this
->
request
->
post
(
'openid'
);
$order_sn
=
$this
->
request
->
post
(
'num'
);
if
(
empty
(
$openid
)){
$this
->
error
([
'code'
=>
2
,
'msg'
=>
'openid不能为空'
]);
}
if
(
$order_sn
){
//支付订单
$res
=
Db
::
name
(
'order'
)
->
where
([
'num'
=>
$order_sn
,
'uid'
=>
$this
->
uid
])
->
find
();
if
(
$res
){
if
(
$res
[
'status'
]
==
2
){
$this
->
error
(
'该订单已支付过了'
);
}
else
{
//创建支付对象
$config
=
config
(
'verify.wx_pay'
);
$app
=
Factory
::
payment
(
$config
);
$result
=
$app
->
order
->
unify
([
'body'
=>
'山东航拍'
,
'out_trade_no'
=>
$order_sn
,
//支付订单号
'total_fee'
=>
$money
*
100
,
//单位分
'notify_url'
=>
$notify_url
,
// 支付结果通知网址,如果不设置则会使用配置里的默认地址
'trade_type'
=>
'JSAPI'
,
// 请对应换成你的支付方式对应的值类型
'openid'
=>
$openid
,
]);
if
(
$result
[
'return_code'
]
===
'SUCCESS'
&&
$result
[
'result_code'
]
===
'SUCCESS'
){
$params
=
[
'appId'
=>
$config
[
'app_id'
],
'timeStamp'
=>
time
(),
'nonceStr'
=>
$result
[
'nonce_str'
],
// 统一下单返回的随机字符串
'package'
=>
'prepay_id='
.
$result
[
'prepay_id'
],
// 统一下单Id
'signType'
=>
'MD5'
,
// 签名方法
];
// 注意这里用的是商户平台的Key进行二次签名
$params
[
'paySign'
]
=
generate_sign
(
$params
,
$config
[
'key'
]);
$this
->
success
(
'成功'
,
$params
);
}
$this
->
error
(
$result
[
'err_code_des'
]);
}
}
else
{
$this
->
error
(
'无效的订单'
);
}
}
}
else
{
$this
->
error
(
'请求方式错误'
);
}
}
//购买会员回调通知(无需调用)
public
function
payMemberNotify
(){
$config
=
config
(
'verify.wx_pay'
);
$app
=
Factory
::
payment
(
$config
);
Log
::
info
(
'会员'
);
$response
=
$app
->
handlePaidNotify
(
function
(
$message
,
$fail
){
//return_code 表示通信状态
Log
::
info
(
$message
);
if
(
$message
[
'return_code'
]
===
'SUCCESS'
)
{
if
(
$message
[
'result_code'
]
===
'SUCCESS'
)
{
//支付成功
//更新成为会员
$userModel
=
new
User
();
$userModel
->
where
(
'openid'
,
$message
[
'openid'
])
->
update
([
'member'
=>
1
]);
//增加记录
$payMemberModel
=
new
PayMember
();
$payMemberModel
->
create
([
'openid'
=>
$message
[
'openid'
],
'pay_order'
=>
$message
[
'out_trade_no'
]]);
}
elseif
(
$message
[
'result_code'
]
===
'FAIL'
)
{
//支付失败
}
}
else
{
return
$fail
(
'通信失败,请稍后再通知我'
);
}
return
true
;
// 返回处理完成
});
$response
->
send
();
}
//支付订单(无需调用)
public
function
payOrderNotify
(){
$config
=
config
(
'verify.wx_pay'
);
$app
=
Factory
::
payment
(
$config
);
$response
=
$app
->
handlePaidNotify
(
function
(
$message
,
$fail
){
//return_code 表示通信状态
if
(
$message
[
'return_code'
]
===
'SUCCESS'
)
{
if
(
$message
[
'result_code'
]
===
'SUCCESS'
)
{
//支付成功,更新订单状态
$orderModel
=
new
\app\admin\model\Order
();
$orderModel
->
where
([
'order_sn'
=>
$message
[
'out_trade_no'
]])
->
update
([
'status'
=>
1
]);
//创建订房记录
$this
->
auth
->
createHouseRecord
(
$message
[
'out_trade_no'
]);
}
elseif
(
$message
[
'result_code'
]
===
'FAIL'
)
{
//支付失败
}
}
else
{
return
$fail
(
'通信失败,请稍后再通知我'
);
}
return
true
;
// 返回处理完成
});
$response
->
send
();
}
/**
* @ApiTitle (更新订单号(支付订单失败后调用))
* @ApiSummary (更新订单号(支付订单失败后调用))
* @ApiMethod (POST)
* @ApiRoute (/api/pay/updateOrder)
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
*
* @ApiParams (name="order_sn", type="inter", required=false, description="支付订单号")
*
* @ApiReturn({
"code": 1,
"msg": "成功",
"time": "1571812329",
"data": null
})
*/
public
function
updateOrder
(){
if
(
$this
->
request
->
isPost
()){
$order_sn
=
$this
->
request
->
post
(
'order_sn'
);
$rule
=
config
(
'verify.order_sn'
);
$validate
=
new
Validate
(
$rule
[
'rule'
],
$rule
[
'msg'
]);
if
(
!
$validate
->
check
([
'order_sn'
=>
$order_sn
]))
{
$this
->
error
(
$validate
->
getError
());
}
$orderModel
=
new
\app\admin\model\Order
();
$pay_order
=
$this
->
auth
->
genPayOrderSn
(
'pay'
);
//支付订单号
$res
=
$orderModel
->
where
([
'order_sn'
=>
$order_sn
,
'uid'
=>
$this
->
uid
])
->
update
([
'order_sn'
=>
$pay_order
]);
if
(
$res
){
$this
->
success
(
'成功'
);
}
else
{
$this
->
error
(
'失败'
);
}
}
else
{
$this
->
error
(
'请求方式错误'
);
}
}
/**
* @ApiTitle (提现到微信零钱)
* @ApiSummary (提现到微信零钱)
* @ApiMethod (POST)
* @ApiRoute (/api/pay/payBalance)
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
*
* @ApiParams (name="openid", type="string", required=true, description="小程序openid")
* @ApiParams (name="price", type="inter", required=true, description="提现金额")
*/
public
function
payBalance
(){
if
(
$this
->
request
->
isPost
()){
$price
=
$this
->
request
->
post
(
'price'
);
$openid
=
$this
->
request
->
post
(
'openid'
);
$rule
=
config
(
'verify.to_balance'
);
$validate
=
new
Validate
(
$rule
[
'rule'
],
$rule
[
'msg'
]);
if
(
!
$validate
->
check
([
'price'
=>
$price
,
'openid'
=>
$openid
]))
{
$this
->
error
(
$validate
->
getError
());
}
if
(
$price
<
0.3
){
$this
->
error
(
'提现金额不能低于0.3元'
);
}
//每天提现次数不超过三次
$count
=
Db
::
name
(
'to_balance'
)
->
where
(
'uid'
,
$this
->
uid
)
->
whereTime
(
'createtime'
,
'today'
)
->
count
();
if
(
$count
>=
3
){
$this
->
error
(
'每天提现次数不能超过3次'
);
}
//查询该用户钱包金额
$userModel
=
new
User
();
$user
=
$userModel
->
where
([
'id'
=>
$this
->
uid
])
->
field
(
'id,money,nickname'
)
->
find
();
if
(
$price
>
$user
[
'money'
]){
$this
->
error
(
'钱包金额不足'
);
}
//创建支付对象
$config
=
config
(
'verify.wx_pay'
);
$app
=
Factory
::
payment
(
$config
);
$balance_order
=
$this
->
auth
->
genPayOrderSn
(
'balance'
);
//提现单号
$result
=
$app
->
transfer
->
toBalance
([
'partner_trade_no'
=>
$balance_order
,
// 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号)
'openid'
=>
$openid
,
'check_name'
=>
'NO_CHECK'
,
// NO_CHECK:不校验真实姓名, FORCE_CHECK:强校验真实姓名
're_user_name'
=>
''
,
// 如果 check_name 设置为FORCE_CHECK,则必填用户真实姓名
'amount'
=>
$price
*
100
,
// 企业付款金额,单位为分
'desc'
=>
'提现到零钱'
,
// 企业付款操作说明信息。必填
]);
if
(
$result
[
'return_code'
]
===
'SUCCESS'
&&
$result
[
'result_code'
]
===
'SUCCESS'
){
//创建提现记录
$balanceRecordModel
=
new
ToBalance
();
$data
[
'uid'
]
=
$this
->
uid
;
$data
[
'openid'
]
=
$openid
;
$data
[
'price'
]
=
$price
;
$data
[
'to_order'
]
=
$result
[
'partner_trade_no'
];
$balanceRecordModel
->
create
(
$data
);
//更新余额表
$userModel
=
new
User
();
$userModel
->
where
([
'id'
=>
$this
->
uid
])
->
setDec
(
'money'
,
$price
);
$this
->
success
(
'成功'
);
}
$this
->
error
(
$result
[
'err_code_des'
]);
}
else
{
$this
->
error
(
'请求方式错误'
);
}
}
}
...
...
application/api/controller/User.php
查看文件 @
95159f3
...
...
@@ -413,6 +413,10 @@ class User extends Api
"water_url"://小样视频网址
"price"://2K价格,
"vip_price"://2Kvip价格,
"four_price"://4K价格,
"four_vipprice"://4Kvip价格,
"eight_price"://8K价格,
"eight_vipprice"://8Kvip价格,
"content"://图片介绍,
"is_vip"://是否为会员(0否 1是)
}
...
...
@@ -432,9 +436,12 @@ class User extends Api
$this
->
error
([
'code'
=>
2
,
'msg'
=>
'缺少必要参数'
]);
}
$data
=
Db
::
name
(
'video'
)
->
field
(
'id,title,thumbnail,video,price,
vip
_price,water_url,content'
)
->
field
(
'id,title,thumbnail,video,price,
four_price,eight
_price,water_url,content'
)
->
where
(
'id'
,
$pic_id
)
->
find
();
$data
[
'vip_price'
]
=
$data
[
'price'
]
*
0.75
;
$data
[
'four_vipprice'
]
=
$data
[
'four_price'
]
*
0.75
;
$data
[
'eight_vipprice'
]
=
$data
[
'eight_price'
]
*
0.75
;
$data
[
'thumbnail'
]
=
$rule
.
$data
[
'thumbnail'
];
$data
[
'video'
]
=
$rule
.
$data
[
'video'
];
$data
[
'water_url'
]
=
$rule
.
$data
[
'water_url'
];
...
...
@@ -487,4 +494,116 @@ class User extends Api
$this
->
success
(
'SUCCESS'
,
$data
);
}
/**
* @ApiTitle (我的)
* @ApiSummary (我的)
* @ApiMethod (POST)
* @ApiRoute (/api/user/mine)
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
*
* @ApiReturn({
"code": 1,
"msg": "成功",
"time": "1571492001",
"data": {
"id": //用户ID
"nickname": //昵称,
"avatar": //头像,
"money" : //余额
"is_vip": //是否为会员(0否 1是)
}
})
*/
public
function
mine
()
{
$user_id
=
$this
->
uid
;
$data
=
Db
::
name
(
'user'
)
->
where
(
'id'
,
$user_id
)
->
field
(
'id,nickname,avatar,money,is_vip'
)
->
find
();
$this
->
success
(
'SUCCESS'
,
$data
);
}
/**
* @ApiTitle (创建充值订单)
* @ApiSummary (创建充值订单)
* @ApiMethod (POST)
* @ApiRoute (/api/user/toporder)
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
*
* @ApiParams (name="money", type="float", required=true, description="充值金额")
*
* @ApiReturn({
"code": 1,
"msg": "成功",
"time": "1571492001",
"data": {
"order_id"://订单ID
}
})
*/
public
function
toporder
()
{
$param
[
'user_id'
]
=
$this
->
uid
;
$param
[
'money'
]
=
$this
->
request
->
post
(
'money'
);
if
(
empty
(
$param
[
'money'
])){
$this
->
error
([
'code'
=>
2
,
'msg'
=>
'缺少必要参数'
]);
}
elseif
(
$param
[
'money'
]
<=
0
){
$this
->
error
([
'code'
=>
3
,
'msg'
=>
'非法操作'
]);
}
else
{
$param
[
'createtime'
]
=
time
();
$param
[
'num'
]
=
date
(
'Ymd'
)
.
substr
(
implode
(
NULL
,
array_map
(
'ord'
,
str_split
(
substr
(
uniqid
(),
7
,
13
),
1
))),
0
,
8
);
$data
=
Db
::
name
(
'toporder'
)
->
insertGetId
(
$param
);
if
(
empty
(
$data
)){
$this
->
error
([
'code'
=>
2
,
'msg'
=>
'sql执行失败'
]);
}
$this
->
success
(
'SUCCESS'
,[
'order_id'
=>
$data
]);
}
}
/**
* @ApiTitle (充值支付)
* @ApiSummary (充值支付)
* @ApiMethod (POST)
* @ApiRoute (/api/user/pay)
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
*
* @ApiParams (name="order_id", type="inter", required=true, description="订单id")
*
* @ApiReturn({
"code": 1,
"msg": "成功",
"time": "1571492001",
})
*/
public
function
pay
()
{
$user_id
=
$this
->
uid
;
$id
=
$this
->
request
->
post
(
'order_id'
);
if
(
empty
(
$id
)){
$this
->
error
([
'code'
=>
2
,
'msg'
=>
'确实必要参数'
]);
}
$where
[
'id'
]
=
[
'eq'
,
$id
];
$where
[
'user_id'
]
=
[
'eq'
,
$user_id
];
$data
=
Db
::
name
(
'toporder'
)
->
where
(
$where
)
->
find
();
if
(
empty
(
$data
)){
$this
->
error
([
'code'
=>
41001
,
'msg'
=>
'数据错误'
]);
}
$openid
=
$this
->
getopenid
();
$this
->
success
(
'SUCCESS'
);
}
public
function
getopenid
()
{
$user_id
=
$this
->
uid
;
$openid
=
Db
::
name
(
'user'
)
->
where
(
'id'
,
$user_id
)
->
field
(
'openid'
)
->
find
();
return
$openid
;
}
}
...
...
application/extra/verify.php
查看文件 @
95159f3
...
...
@@ -17,4 +17,16 @@ return [
]
],
'path'
=>
'http://areial.w.brotop.cn'
,
//微信支付配置
'wx_pay'
=>
[
'app_id'
=>
''
,
'mch_id'
=>
''
,
'key'
=>
''
,
// 支付 密钥
// 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
'cert_path'
=>
ROOT_PATH
.
'public/cert/apiclient_cert.pem'
,
// XXX: 绝对路径!!!!
'key_path'
=>
ROOT_PATH
.
'public/cert/apiclient_key.pem'
,
// XXX: 绝对路径!!!!
'notify_url'
=>
'默认的订单回调地址'
,
// 你也可以在下单时单独设置来想覆盖它
],
];
\ No newline at end of file
...
...
public/api.html
查看文件 @
95159f3
此 diff 太大无法显示。
public/assets/js/backend/video.js
查看文件 @
95159f3
...
...
@@ -37,11 +37,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
{
field
:
'buy_num'
,
title
:
__
(
'Buy_num'
)},
{
field
:
'click_num'
,
title
:
__
(
'Click_num'
)},
{
field
:
'price'
,
title
:
__
(
'Price'
)},
{
field
:
'vip_price'
,
title
:
__
(
'Vip_price'
)},
{
field
:
'four_price'
,
title
:
__
(
'Four_price'
)},
{
field
:
'four_vipprice'
,
title
:
__
(
'Four_vipprice'
)},
{
field
:
'eight_price'
,
title
:
__
(
'Eight_price'
)},
{
field
:
'eight_vipprice'
,
title
:
__
(
'Eight_vipprice'
)},
{
field
:
'createtime'
,
title
:
__
(
'Createtime'
),
operate
:
'RANGE'
,
addclass
:
'datetimerange'
,
formatter
:
Table
.
api
.
formatter
.
datetime
},
{
field
:
'operate'
,
title
:
__
(
'Operate'
),
table
:
table
,
events
:
Table
.
api
.
events
.
operate
,
formatter
:
Table
.
api
.
formatter
.
operate
}
]
...
...
请
注册
或
登录
后发表评论