Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
introducer
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sugar
introducer
Commits
799cbc05
Commit
799cbc05
authored
Jan 19, 2024
by
sugar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
股权
parent
c490657a
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
454 additions
and
0 deletions
+454
-0
application/admin/controller/users/Usermoneylog.php
application/admin/controller/users/Usermoneylog.php
+155
-0
application/admin/lang/zh-cn/users/usermoneylog.php
application/admin/lang/zh-cn/users/usermoneylog.php
+14
-0
application/admin/model/users/Usermoneylog.php
application/admin/model/users/Usermoneylog.php
+49
-0
application/admin/validate/users/Usermoneylog.php
application/admin/validate/users/Usermoneylog.php
+27
-0
application/admin/view/users/usermoneylog/add.html
application/admin/view/users/usermoneylog/add.html
+58
-0
application/admin/view/users/usermoneylog/edit.html
application/admin/view/users/usermoneylog/edit.html
+58
-0
application/admin/view/users/usermoneylog/index.html
application/admin/view/users/usermoneylog/index.html
+35
-0
public/assets/js/backend/users/usermoneylog.js
public/assets/js/backend/users/usermoneylog.js
+58
-0
No files found.
application/admin/controller/users/Usermoneylog.php
0 → 100644
View file @
799cbc05
<?php
namespace
app\admin\controller\users
;
use
app\common\controller\Backend
;
use
think\Db
;
/**
* 会员余额变动管理
*
* @icon fa fa-circle-o
*/
class
Usermoneylog
extends
Backend
{
/**
* Usermoneylog模型对象
* @var \app\admin\model\users\Usermoneylog
*/
protected
$model
=
null
;
public
function
_initialize
()
{
parent
::
_initialize
();
$this
->
model
=
new
\app\admin\model\users\Usermoneylog
;
$this
->
view
->
assign
(
"heatosList"
,
$this
->
model
->
getHeatosList
());
}
/**
* 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
* 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
* 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
*/
/**
* 查看
*
* @return string|Json
* @throws \think\Exception
* @throws DbException
*/
public
function
index
()
{
//设置过滤方法
$this
->
request
->
filter
([
'strip_tags'
,
'trim'
]);
if
(
false
===
$this
->
request
->
isAjax
())
{
return
$this
->
view
->
fetch
();
}
//如果发送的来源是 Selectpage,则转发到 Selectpage
if
(
$this
->
request
->
request
(
'keyField'
))
{
return
$this
->
selectpage
();
}
[
$where
,
$sort
,
$order
,
$offset
,
$limit
]
=
$this
->
buildparams
();
$list
=
$this
->
model
->
where
(
$where
)
->
where
([
'type'
=>
13
])
->
order
(
$sort
,
$order
)
->
paginate
(
$limit
);
$result
=
[
'total'
=>
$list
->
total
(),
'rows'
=>
$list
->
items
()];
return
json
(
$result
);
}
/**
* 添加
*
* @return string
* @throws \think\Exception
*/
public
function
add
()
{
if
(
false
===
$this
->
request
->
isPost
())
{
return
$this
->
view
->
fetch
();
}
$params
=
$this
->
request
->
post
(
'row/a'
);
if
(
empty
(
$params
))
{
$this
->
error
(
__
(
'Parameter %s can not be empty'
,
''
));
}
$params
=
$this
->
preExcludeFields
(
$params
);
if
(
$this
->
dataLimit
&&
$this
->
dataLimitFieldAutoFill
)
{
$params
[
$this
->
dataLimitField
]
=
$this
->
auth
->
id
;
}
$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
.
'.add'
:
$name
)
:
$this
->
modelValidate
;
$this
->
model
->
validateFailException
()
->
validate
(
$validate
);
}
$result
=
$this
->
model
->
allowField
(
true
)
->
save
(
$params
);
Db
::
commit
();
}
catch
(
ValidateException
|
PDOException
|
Exception
$e
)
{
Db
::
rollback
();
$this
->
error
(
$e
->
getMessage
());
}
if
(
$result
===
false
)
{
$this
->
error
(
__
(
'No rows were inserted'
));
}
$this
->
success
();
}
/**
* 编辑
*
* @param $ids
* @return string
* @throws DbException
* @throws \think\Exception
*/
public
function
edit
(
$ids
=
null
)
{
$row
=
$this
->
model
->
get
(
$ids
);
if
(
!
$row
)
{
$this
->
error
(
__
(
'No Results were found'
));
}
$adminIds
=
$this
->
getDataLimitAdminIds
();
if
(
is_array
(
$adminIds
)
&&
!
in_array
(
$row
[
$this
->
dataLimitField
],
$adminIds
))
{
$this
->
error
(
__
(
'You have no permission'
));
}
if
(
false
===
$this
->
request
->
isPost
())
{
$this
->
view
->
assign
(
'row'
,
$row
);
return
$this
->
view
->
fetch
();
}
$params
=
$this
->
request
->
post
(
'row/a'
);
if
(
empty
(
$params
))
{
$this
->
error
(
__
(
'Parameter %s can not be empty'
,
''
));
}
$params
=
$this
->
preExcludeFields
(
$params
);
$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
()
->
validate
(
$validate
);
}
$result
=
$row
->
allowField
(
true
)
->
save
(
$params
);
Db
::
commit
();
}
catch
(
ValidateException
|
PDOException
|
Exception
$e
)
{
Db
::
rollback
();
$this
->
error
(
$e
->
getMessage
());
}
if
(
false
===
$result
)
{
$this
->
error
(
__
(
'No rows were updated'
));
}
$this
->
success
();
}
}
application/admin/lang/zh-cn/users/usermoneylog.php
0 → 100644
View file @
799cbc05
<?php
return
[
'User_id'
=>
'会员ID'
,
'Money'
=>
'变更余额'
,
'Before'
=>
'变更前余额'
,
'After'
=>
'变更后余额'
,
'Memo'
=>
'备注'
,
'Createtime'
=>
'创建时间'
,
'Heatos'
=>
'金额类型'
,
'Heatos 1'
=>
'正数增进'
,
'Heatos -1'
=>
'负数减少'
,
'Logs_id'
=>
'支付记录id'
];
application/admin/model/users/Usermoneylog.php
0 → 100644
View file @
799cbc05
<?php
namespace
app\admin\model\users
;
use
think\Model
;
class
Usermoneylog
extends
Model
{
// 表名
protected
$name
=
'user_money_log'
;
// 自动写入时间戳字段
protected
$autoWriteTimestamp
=
'integer'
;
// 定义时间戳字段名
protected
$createTime
=
'createtime'
;
protected
$updateTime
=
false
;
protected
$deleteTime
=
false
;
// 追加属性
protected
$append
=
[
'heatos_text'
];
public
function
getHeatosList
()
{
return
[
'1'
=>
__
(
'Heatos 1'
),
'-1'
=>
__
(
'Heatos -1'
)];
}
public
function
getHeatosTextAttr
(
$value
,
$data
)
{
$value
=
$value
?
$value
:
(
isset
(
$data
[
'heatos'
])
?
$data
[
'heatos'
]
:
''
);
$list
=
$this
->
getHeatosList
();
return
isset
(
$list
[
$value
])
?
$list
[
$value
]
:
''
;
}
}
application/admin/validate/users/Usermoneylog.php
0 → 100644
View file @
799cbc05
<?php
namespace
app\admin\validate\users
;
use
think\Validate
;
class
Usermoneylog
extends
Validate
{
/**
* 验证规则
*/
protected
$rule
=
[
];
/**
* 提示消息
*/
protected
$message
=
[
];
/**
* 验证场景
*/
protected
$scene
=
[
'add'
=>
[],
'edit'
=>
[],
];
}
application/admin/view/users/usermoneylog/add.html
0 → 100644
View file @
799cbc05
<form
id=
"add-form"
class=
"form-horizontal"
role=
"form"
data-toggle=
"validator"
method=
"POST"
action=
""
>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('User_id')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-user_id"
data-rule=
"required"
min=
"0"
data-source=
"user/user/index"
data-field=
"nickname"
class=
"form-control selectpage"
name=
"row[user_id]"
type=
"text"
value=
""
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Money')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-money"
data-rule=
"required"
class=
"form-control"
step=
"0.01"
name=
"row[money]"
type=
"number"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Before')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-before"
data-rule=
"required"
class=
"form-control"
step=
"0.01"
name=
"row[before]"
type=
"number"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('After')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-after"
data-rule=
"required"
class=
"form-control"
step=
"0.01"
name=
"row[after]"
type=
"number"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Memo')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-memo"
class=
"form-control"
name=
"row[memo]"
type=
"text"
value=
""
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Heatos')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<select
id=
"c-heatos"
class=
"form-control selectpicker"
name=
"row[heatos]"
>
{foreach name="heatosList" item="vo"}
<option
value=
"{$key}"
{
in
name=
"key"
value=
"1"
}
selected
{/
in
}
>
{$vo}
</option>
{/foreach}
</select>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Logs_id')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-logs_id"
data-rule=
"required"
data-source=
"logs/index"
class=
"form-control selectpage"
name=
"row[logs_id]"
type=
"text"
value=
""
>
</div>
</div>
<div
class=
"form-group layer-footer"
>
<label
class=
"control-label col-xs-12 col-sm-2"
></label>
<div
class=
"col-xs-12 col-sm-8"
>
<button
type=
"submit"
class=
"btn btn-primary btn-embossed disabled"
>
{:__('OK')}
</button>
<button
type=
"reset"
class=
"btn btn-default btn-embossed"
>
{:__('Reset')}
</button>
</div>
</div>
</form>
application/admin/view/users/usermoneylog/edit.html
0 → 100644
View file @
799cbc05
<form
id=
"edit-form"
class=
"form-horizontal"
role=
"form"
data-toggle=
"validator"
method=
"POST"
action=
""
>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('User_id')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-user_id"
data-rule=
"required"
min=
"0"
data-source=
"user/user/index"
data-field=
"nickname"
class=
"form-control selectpage"
name=
"row[user_id]"
type=
"text"
value=
"{$row.user_id|htmlentities}"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Money')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-money"
data-rule=
"required"
class=
"form-control"
step=
"0.01"
name=
"row[money]"
type=
"number"
value=
"{$row.money|htmlentities}"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Before')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-before"
data-rule=
"required"
class=
"form-control"
step=
"0.01"
name=
"row[before]"
type=
"number"
value=
"{$row.before|htmlentities}"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('After')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-after"
data-rule=
"required"
class=
"form-control"
step=
"0.01"
name=
"row[after]"
type=
"number"
value=
"{$row.after|htmlentities}"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Memo')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-memo"
class=
"form-control"
name=
"row[memo]"
type=
"text"
value=
"{$row.memo|htmlentities}"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Heatos')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<select
id=
"c-heatos"
class=
"form-control selectpicker"
name=
"row[heatos]"
>
{foreach name="heatosList" item="vo"}
<option
value=
"{$key}"
{
in
name=
"key"
value=
"$row.heatos"
}
selected
{/
in
}
>
{$vo}
</option>
{/foreach}
</select>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label col-xs-12 col-sm-2"
>
{:__('Logs_id')}:
</label>
<div
class=
"col-xs-12 col-sm-8"
>
<input
id=
"c-logs_id"
data-rule=
"required"
data-source=
"logs/index"
class=
"form-control selectpage"
name=
"row[logs_id]"
type=
"text"
value=
"{$row.logs_id|htmlentities}"
>
</div>
</div>
<div
class=
"form-group layer-footer"
>
<label
class=
"control-label col-xs-12 col-sm-2"
></label>
<div
class=
"col-xs-12 col-sm-8"
>
<button
type=
"submit"
class=
"btn btn-primary btn-embossed disabled"
>
{:__('OK')}
</button>
<button
type=
"reset"
class=
"btn btn-default btn-embossed"
>
{:__('Reset')}
</button>
</div>
</div>
</form>
application/admin/view/users/usermoneylog/index.html
0 → 100644
View file @
799cbc05
<div
class=
"panel panel-default panel-intro"
>
{:build_heading()}
<div
class=
"panel-body"
>
<div
id=
"myTabContent"
class=
"tab-content"
>
<div
class=
"tab-pane fade active in"
id=
"one"
>
<div
class=
"widget-body no-padding"
>
<div
id=
"toolbar"
class=
"toolbar"
>
<a
href=
"javascript:;"
class=
"btn btn-primary btn-refresh"
title=
"{:__('Refresh')}"
><i
class=
"fa fa-refresh"
></i>
</a>
<a
href=
"javascript:;"
class=
"btn btn-success btn-add {:$auth->check('users/usermoneylog/add')?'':'hide'}"
title=
"{:__('Add')}"
><i
class=
"fa fa-plus"
></i>
{:__('Add')}
</a>
<a
href=
"javascript:;"
class=
"btn btn-success btn-edit btn-disabled disabled {:$auth->check('users/usermoneylog/edit')?'':'hide'}"
title=
"{:__('Edit')}"
><i
class=
"fa fa-pencil"
></i>
{:__('Edit')}
</a>
<a
href=
"javascript:;"
class=
"btn btn-danger btn-del btn-disabled disabled {:$auth->check('users/usermoneylog/del')?'':'hide'}"
title=
"{:__('Delete')}"
><i
class=
"fa fa-trash"
></i>
{:__('Delete')}
</a>
<div
class=
"dropdown btn-group {:$auth->check('users/usermoneylog/multi')?'':'hide'}"
>
<a
class=
"btn btn-primary btn-more dropdown-toggle btn-disabled disabled"
data-toggle=
"dropdown"
><i
class=
"fa fa-cog"
></i>
{:__('More')}
</a>
<ul
class=
"dropdown-menu text-left"
role=
"menu"
>
<li><a
class=
"btn btn-link btn-multi btn-disabled disabled"
href=
"javascript:;"
data-params=
"status=normal"
><i
class=
"fa fa-eye"
></i>
{:__('Set to normal')}
</a></li>
<li><a
class=
"btn btn-link btn-multi btn-disabled disabled"
href=
"javascript:;"
data-params=
"status=hidden"
><i
class=
"fa fa-eye-slash"
></i>
{:__('Set to hidden')}
</a></li>
</ul>
</div>
</div>
<table
id=
"table"
class=
"table table-striped table-bordered table-hover table-nowrap"
data-operate-edit=
"{:$auth->check('users/usermoneylog/edit')}"
data-operate-del=
"{:$auth->check('users/usermoneylog/del')}"
width=
"100%"
>
</table>
</div>
</div>
</div>
</div>
</div>
public/assets/js/backend/users/usermoneylog.js
0 → 100644
View file @
799cbc05
define
([
'
jquery
'
,
'
bootstrap
'
,
'
backend
'
,
'
table
'
,
'
form
'
],
function
(
$
,
undefined
,
Backend
,
Table
,
Form
)
{
var
Controller
=
{
index
:
function
()
{
// 初始化表格参数配置
Table
.
api
.
init
({
extend
:
{
index_url
:
'
users/usermoneylog/index
'
+
location
.
search
,
add_url
:
'
users/usermoneylog/add
'
,
edit_url
:
'
users/usermoneylog/edit
'
,
del_url
:
'
users/usermoneylog/del
'
,
multi_url
:
'
users/usermoneylog/multi
'
,
import_url
:
'
users/usermoneylog/import
'
,
table
:
'
user_money_log
'
,
}
});
var
table
=
$
(
"
#table
"
);
// 初始化表格
table
.
bootstrapTable
({
url
:
$
.
fn
.
bootstrapTable
.
defaults
.
extend
.
index_url
,
pk
:
'
id
'
,
sortName
:
'
id
'
,
columns
:
[
[
{
checkbox
:
true
},
{
field
:
'
id
'
,
title
:
__
(
'
Id
'
)},
{
field
:
'
user_id
'
,
title
:
__
(
'
User_id
'
)},
{
field
:
'
money
'
,
title
:
__
(
'
Money
'
),
operate
:
'
BETWEEN
'
},
{
field
:
'
before
'
,
title
:
__
(
'
Before
'
),
operate
:
'
BETWEEN
'
},
{
field
:
'
after
'
,
title
:
__
(
'
After
'
),
operate
:
'
BETWEEN
'
},
{
field
:
'
memo
'
,
title
:
__
(
'
Memo
'
),
operate
:
'
LIKE
'
},
{
field
:
'
createtime
'
,
title
:
__
(
'
Createtime
'
),
operate
:
'
RANGE
'
,
addclass
:
'
datetimerange
'
,
autocomplete
:
false
,
formatter
:
Table
.
api
.
formatter
.
datetime
},
{
field
:
'
heatos
'
,
title
:
__
(
'
Heatos
'
),
searchList
:
{
"
1
"
:
__
(
'
Heatos 1
'
),
"
-1
"
:
__
(
'
Heatos -1
'
)},
formatter
:
Table
.
api
.
formatter
.
normal
},
{
field
:
'
logs_id
'
,
title
:
__
(
'
Logs_id
'
)},
{
field
:
'
operate
'
,
title
:
__
(
'
Operate
'
),
table
:
table
,
events
:
Table
.
api
.
events
.
operate
,
formatter
:
Table
.
api
.
formatter
.
operate
}
]
]
});
// 为表格绑定事件
Table
.
api
.
bindevent
(
table
);
},
add
:
function
()
{
Controller
.
api
.
bindevent
();
},
edit
:
function
()
{
Controller
.
api
.
bindevent
();
},
api
:
{
bindevent
:
function
()
{
Form
.
api
.
bindevent
(
$
(
"
form[role=form]
"
));
}
}
};
return
Controller
;
});
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment