This commit is contained in:
2026-03-01 21:05:19 +08:00
parent 0a45a8fbb9
commit 92948fa856
39 changed files with 594 additions and 269 deletions
@@ -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'];
-1
View File
@@ -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);
}
+1 -1
View File
@@ -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');
}
}
}
+21
View File
@@ -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>
+88
View File
@@ -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"/}