16
This commit is contained in:
@@ -66,7 +66,6 @@ class FilesController extends Crud
|
||||
$data = $this->base($request, $savePath);
|
||||
}catch(\Exception $e){
|
||||
return $this->fail( $e->getMessage());
|
||||
log_alert($e->getMessage());
|
||||
}
|
||||
return $this->success( '上传成功', $data);
|
||||
}
|
||||
|
||||
@@ -12,27 +12,48 @@ use Throwable;
|
||||
/**
|
||||
* 用户宣传
|
||||
*/
|
||||
class FriendController extends Crud
|
||||
class FriendController extends OpenimBase
|
||||
{
|
||||
|
||||
/**
|
||||
* @var \app\model\UserXuanchuan
|
||||
*/
|
||||
protected $model = null;
|
||||
protected $relationSearch = ['user'];
|
||||
protected $relationSearch = [];
|
||||
/**
|
||||
* 构造函数
|
||||
* @return void
|
||||
*/
|
||||
function __construct()
|
||||
{
|
||||
$this->model = new \app\model\UserXuanchuan();
|
||||
$this->model = new User();
|
||||
$statusList = $this->model->getStatusList();
|
||||
$this->assign("statusList", $statusList);
|
||||
$this->assignconfig("statusList", $statusList);
|
||||
$typeList = $this->model->getTypeList();
|
||||
$this->assign("typeList", $typeList);
|
||||
$this->assignconfig("typeList", $typeList);
|
||||
}
|
||||
|
||||
function select(Request $request): Response
|
||||
{
|
||||
$res = $this->getSdk()->friend->getFriendList(Input('userID'), 1, 5000);
|
||||
|
||||
$userIDs = [];
|
||||
foreach ($res['friendsInfo'] as $key => $value) {
|
||||
$userIDs[] = $value['friendUser']['userID'];
|
||||
}
|
||||
//$_users = \app\model\User::whereIn('userID', $userIDs)->column('*','userID');
|
||||
|
||||
|
||||
[$where, $format, $limit, $field, $order] = $this->selectInput($request);
|
||||
$where['userId'] = ['symbol'=>'in', 'value1'=>$userIDs];
|
||||
$query = $this->doSelect($where, $field, $order);
|
||||
return $this->doFormat($query, $format, $limit);
|
||||
|
||||
$list = [];
|
||||
foreach ($res['friendsInfo'] as $key => $value) {
|
||||
$item = array_merge($value['friendUser'], $_users[$value['friendUser']['userID']] ?? [],$value['friendUser']);
|
||||
unset($item['friendUser']);
|
||||
$list[] =$item;
|
||||
}
|
||||
return json([
|
||||
"code" => 0,
|
||||
"count" => $res['total'],
|
||||
"data" => $list,
|
||||
"msg" => "ok"
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\admin\app\controller;
|
||||
|
||||
use app\model\User;
|
||||
use plugin\admin\app\controller\Crud;
|
||||
use support\exception\BusinessException;
|
||||
use support\Request;
|
||||
use support\Response;
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* OpenimBase
|
||||
*/
|
||||
class OpenimBase extends Crud
|
||||
{
|
||||
|
||||
/**
|
||||
* @var \support\OpenImSdk\Client
|
||||
*/
|
||||
protected $sdk = null;
|
||||
protected function getSdk(){
|
||||
if($this->sdk){
|
||||
return $this->sdk;
|
||||
}
|
||||
$this->sdk = new \support\OpenImSdk\Client([
|
||||
'host' => 'http://127.0.0.1:10002', // OpenIM API地址
|
||||
'secret' => 'n1e5a6s6m7', // OpenIM密钥
|
||||
]);
|
||||
return $this->sdk;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -58,10 +58,8 @@ class QuestionnaireController extends Crud
|
||||
if($showField && input($showField)){
|
||||
$query = $query->whereLike($showField,'%'.input($showField).'%');
|
||||
}
|
||||
//log_alert($ids,'cansnow');
|
||||
$query = $query->whereNotIn('id',$ids);
|
||||
$list = $query->field([$showField,$keyField])->paginate($limit);
|
||||
//log_alert($query->getLastSql(),'cansnow');
|
||||
|
||||
return $this->success('ok',$list);
|
||||
}
|
||||
|
||||
@@ -31,7 +31,6 @@ class TeamController extends Crud
|
||||
public function select(Request $request): Response
|
||||
{
|
||||
[$where, $format, $limit, $field, $order] = $this->selectInput($request);
|
||||
//log_alert($where);
|
||||
$user_id = 0;
|
||||
if($where['user_id']['value1']){
|
||||
$user_id = $where['user_id']['value1'];
|
||||
|
||||
@@ -11,7 +11,6 @@ use app\model\Base;
|
||||
class Config extends Base
|
||||
{
|
||||
public function setValueAttr($v,$row){
|
||||
log_alert($row);
|
||||
if(is_array($v)){
|
||||
return json_encode($v,JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ class User extends \app\model\User
|
||||
if(isset($changeData[$currency])){
|
||||
$cha = $changeData[$currency] - $orgData[$currency];
|
||||
if($cha!=0){
|
||||
\support\Log::channel('cansnow')->alert('管理员手动修改用户余额:'.$row->id.',货币:'.$currency.',修改金额:'.$cha.',原始数据:'.$orgData[$currency].',修改后的数据:'.$changeData[$currency]);
|
||||
log_alert('管理员手动修改用户余额:'.$row->id.',货币:'.$currency.',修改金额:'.$cha.',原始数据:'.$orgData[$currency].',修改后的数据:'.$changeData[$currency],'cansnow');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
{layout name="layout"}
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
|
||||
<span class="mdi mdi-check" aria-hidden="true"></span>启用
|
||||
</a>
|
||||
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
|
||||
<span class="mdi mdi-block-helper" aria-hidden="true"></span>禁用
|
||||
</a>
|
||||
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
|
||||
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
|
||||
</a>
|
||||
</div>
|
||||
<!-- 数据表格 -->
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<table id="table"></table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,88 @@
|
||||
{layout name="layout"}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form class="form-horizontal" action="__SELF__" method="post">
|
||||
<input type="hidden" name="id" value="{$row.id|null}" />
|
||||
<div class="form-group">
|
||||
<label for="type" class="control-label col-xs-12 col-sm-3">名称</label>
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
<input type="text" name="title" value="{$row.title|null}" class="form-control" data-rule="required;length(2~100)" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="type" class="control-label col-xs-12 col-sm-3">封面:</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input id="c-image" class="form-control" size="50" name="image" type="hidden" value="{$row.image|default=''}" data-tip="image">
|
||||
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-image">
|
||||
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.image" id="add-pic-btn" href="javascript:;" title="点击上传" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;display: none;" permission="app.admin.files.list" id="choose-pic-btn" href="javascript:;" title="选择文件" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="type" class="control-label col-xs-12 col-sm-3">单价</label>
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
<div class="input-group">
|
||||
<input type="text" name="price" value="{$row.price|null=3.5}" class="form-control" data-rule="required;range(0.5~)" />
|
||||
<div class="input-group-addon">¥</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="type" class="control-label col-xs-12 col-sm-3">库存</label>
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
<div class="input-group">
|
||||
<input type="number" name="stock" value="{$row.stock|default=0}" class="form-control" min="0" data-rule="required;range(0~99)" />
|
||||
<div class="input-group-addon">份</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="type" class="control-label col-xs-12 col-sm-3">用户累计限购</label>
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
<div class="input-group">
|
||||
<input type="number" name="user_quantity" value="{$row.user_quantity|default=0}" class="form-control" min="0" data-rule="required;range(0~99)" />
|
||||
<div class="input-group-addon">份</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-3">备注</label>
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
<textarea type="text" name="memo" class="form-control" >{$row.memo|null}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="type" class="control-label col-xs-12 col-sm-3">销量</label>
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
<div class="input-group">
|
||||
<input type="number" name="sales" value="{$row.sales|default=0}" disabled class="form-control" min="0" data-rule="required;range(0~99)" />
|
||||
<div class="input-group-addon">份</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-3">状态</label>
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
{volist name="statusList" id="rvo"}
|
||||
<label class="lyear-radio radio-primary radio-inline">
|
||||
<input type="radio" name="status" {if $row.status == $key} checked{/if} value="{$key}">
|
||||
<span>{$rvo}</span>
|
||||
</label>
|
||||
{/volist}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-3"></label>
|
||||
<div class="col-xs-12 col-sm-6 col-md-6 layer-footer">
|
||||
<button type="submit" class="btn btn-primary m-r-5">提交</button>
|
||||
<button type="reset" class="btn btn-warning m-r-5">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{include file="common/file_preview" id="preview"/}
|
||||
Reference in New Issue
Block a user