315 lines
13 KiB
PHP
Raw Normal View History

2025-01-20 18:00:25 +08:00
<?php
namespace app\manystoreapi\controller;
use app\common\controller\ManystoreApiBase;
use app\common\library\Virtual;
use app\manystore\model\Manystore;
use app\manystore\model\ManystoreShop;
use app\manystoreapi\model\ManystoreApiLog;
use fast\Random;
use think\Session;
use think\Url;
use think\Validate;
/**
* 机构API后台机构个人管理接口
*/
class Shop extends ManystoreApiBase
{
// protected $noNeedLogin = [];
// protected $noNeedRight = ['index'];
protected $layout = '';
protected $model = null;
protected $shopModel = null;
public function _initialize()
{
parent::_initialize();
//移除HTML标签
// $this->request->filter('trim,strip_tags,htmlspecialchars');
$this->model = Manystore::where(array('id'=>STORE_ID))->find();
$this->shopModel = ManystoreShop::where(array('id'=>SHOP_ID))->find();
}
/**
* 机构信息查询
*/
public function index(){
$res = [];
$res['statusList']=[0=>'待审核',1=>'审核通过',2=>'审核拒绝'];
$res['typeList']=$this->shopModel->getTypeList();
$res['shop_info']=$this->shopModel;
$res['manystore_info']=$this->model;
$res['check_full']=(new \app\common\model\dyqc\ManystoreShop)->checkFull(SHOP_ID);
$res['check_full_msg']=(new \app\common\model\dyqc\ManystoreShop)->checkFullMsg(SHOP_ID);
$res['now_city']= Virtual::getNowCity();
$res['miniqrcode_link']=Url::build("/manystoreapi/shop/miniqrcode", ["ids" => SHOP_ID]);
$this->apisuccess("查询成功!",$res);
}
/**
* 更新账号密码,邮件,头像信息
* @ApiMethod (POST)
* @ApiParams (name="email", type="string", required=true, description="邮件")
* @ApiParams (name="nickname", type="string", required=true, description="昵称")
* @ApiParams (name="avatar", type="string", required=true, description="头像")
* @ApiParams (name="password", type="string", required=false, description="密码(非必填)")
*/
public function update()
{
if ($this->request->isPost()) {
$this->token();
$params = $this->request->post();
$params = array_filter(array_intersect_key(
$params,
array_flip(array('email', 'nickname', 'password', 'avatar'))
));
unset($v);
if (!Validate::is($params['email'], "email")) {
$this->apierror(__("Please input correct email"));
}
// if (!Validate::is($params['nickname'], "/^[\x{4e00}-\x{9fa5}a-zA-Z0-9_-]+$/u")) {
// $this->error(__("Please input correct nickname"));
// }
if (isset($params['password'])) {
if (!Validate::is($params['password'], "/^[\S]{6,16}$/")) {
$this->apierror(__("Please input correct password"));
}
$params['salt'] = Random::alnum();
$params['password'] = md5(md5($params['password']) . $params['salt']);
}
$exist = Manystore::where('email', $params['email'])->where('id', '<>', $this->auth->id)->find();
if ($exist) {
$this->apierror(__("Email already exists"));
}
if ($params) {
$manystore = Manystore::get($this->auth->id);
$manystore->save($params);
Session::set("manystoreapi", $manystore->toArray());
$this->apisuccess();
}
$this->apierror();
}
return;
}
/** 编辑机构认证信息
* @ApiTitle( 编辑机构认证信息)
* @ApiSummary(编辑机构认证信息)
* @ApiMethod(POST)
* @ApiParams(name = "name", type = "string",required=true,description = "机构名称")
* @ApiParams(name = "logo", type = "string",required=true,description = "logo单图")
* @ApiParams(name = "image", type = "string",required=true,description = "封面单图")
* @ApiParams(name = "content", type = "string",required=true,description = "店铺详情")
* @ApiParams(name = "tel", type = "string",required=true,description = "服务电话(非必填)")
* @ApiParams(name = "desc", type = "string",required=false,description = "申请备注(非必填)")
* @ApiParams(name = "front_idcard_image", type = "string",required=true,description = "法人身份证正面")
* @ApiParams(name = "reverse_idcard_image", type = "string",required=true,description = "法人身份证反面")
* @ApiParams(name = "images", type = "string",required=true,description = "环境照片(多个逗号拼接)")
* @ApiParams(name = "yyzzdm", type = "string",required=true,description = "社会统一信用代码")
* @ApiParams(name = "yyzz_images", type = "string",required=true,description = "营业执照照片(多个逗号拼接)")
* @ApiParams(name = "address", type = "string",required=true,description = "店铺地址")
* @ApiParams(name = "address_detail", type = "string",required=true,description = "店铺详细地址")
* @ApiParams(name = "longitude", type = "string",required=true,description = "经度")
* @ApiParams(name = "latitude", type = "string",required=true,description = "纬度")
* @ApiParams(name = "province", type = "int",required=true,description = "省编号")
* @ApiParams(name = "city", type = "int",required=true,description = "市编号")
* @ApiParams(name = "district", type = "int",required=true,description = "县区编号")
* @ApiParams(name = "establish_time", type = "int",required=true,description = "成立时间10位秒级时间戳")
* @ApiParams(name = "people", type = "int",required=true,description = "员工人数")
* @ApiParams(name = "legal_entity", type = "string",required=true,description = "法人姓名")
* @ApiParams(name = "gender", type = "int",required=true,description = "法人性别:0=女,1=男")
* @ApiParams(name = "nation", type = "string",required=true,description = "法人民族")
* @ApiParams(name = "out_look", type = "string",required=true,description = "法人政治面貌")
* @ApiParams(name = "birthtime", type = "int",required=true,description = "法人出生日期10位秒级时间戳")
* @ApiParams(name = "native_place", type = "string",required=true,description = "法人籍贯")
* @ApiParams(name = "card_number", type = "string",required=true,description = "法人身份证号码")
* @ApiParams(name = "diploma", type = "string",required=true,description = "法人学历")
* @ApiParams(name = "post", type = "string",required=true,description = "法人职务")
* @ApiParams(name = "social_position", type = "string",required=true,description = "法人社会职务")
*
*
* @ApiReturn({
*
*})
*/
public function shop_update(){
$params=[];
$params["name"] = $this->request->post('name/s','');
$params["logo"] = $this->request->post('logo/s','');
$params["image"] = $this->request->post('image/s','');
$params["content"] = $this->request->post('content/s','');
$params["tel"] = $this->request->post('tel/s','');
$params["desc"] = $this->request->post('desc/s','');
$params["front_idcard_image"] = $this->request->post('front_idcard_image/s','');
$params["reverse_idcard_image"] = $this->request->post('reverse_idcard_image/s','');
$params["images"] = $this->request->post('images/s','');
$params["yyzz_images"] = $this->request->post('yyzz_images/s','');
$params["yyzzdm"] = $this->request->post('yyzzdm/s','');
$params["address"] = $this->request->post('address/s','');
$params["address_detail"] = $this->request->post('address_detail/s','');
$params["longitude"] = $this->request->post('longitude/s','');
$params["latitude"] = $this->request->post('latitude/s','');
$params["province"] = $this->request->post('province/d','');
$params["city"] = $this->request->post('city/d','');
$params["district"] = $this->request->post('district/d','');
$params["establish_time"] = $this->request->post('establish_time/d','');
$params["people"] = $this->request->post('people/d','');
$params["legal_entity"] = $this->request->post('legal_entity/s','');
$params["gender"] = $this->request->post('gender/d','');
$params["nation"] = $this->request->post('nation/s','');
$params["out_look"] = $this->request->post('out_look/s','');
$params["birthtime"] = $this->request->post('birthtime/d','');
$params["native_place"] = $this->request->post('native_place/s','');
$params["card_number"] = $this->request->post('card_number/s','');
$params["diploma"] = $this->request->post('diploma/s','');
$params["post"] = $this->request->post('post/s','');
$params["social_position"] = $this->request->post('social_position/s','');
// if(empty($id)){
// $this->error(__('缺少必要参数'));
// }
$user_id = 0;
$user = $this->auth->getUser();//登录用户
if($user)$user_id = $user['id'];
try {
$res = (new \app\common\model\dyqc\ManystoreShop)->updateData($user_id,$params,true,true);
} catch (\Exception $e){
// Log::log($e->getMessage());
$this->error($e->getMessage(),['errcode'=>$e->getCode()]);
}
$this->success('编辑成功', ['detail' => $res]);
}
/**
* 获取微信小程序码
* @ApiMethod (POST)
* @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\dyqc\ManystoreShop::getMiniQrcodeLink($ids);
}catch (\Exception $e){
$this->error($e->getMessage());
}
return $url["response"];
}
/**
* @ApiTitle( 后台请求日志列表)
* @ApiSummary(后台请求日志列表)
* @ApiMethod(GET)
* @ApiParams(name = "keywords", type = "string",required=false,description = "搜索关键字")
* @ApiParams(name = "page", type = "string",required=true,description = "页数")
* @ApiParams(name = "limit", type = "string",required=true,description = "条数")
* @ApiParams(name = "shop_id", type = "string",required=false,description = "机构店铺id")
* @ApiParams(name = "store_id", type = "string",required=false,description = "机构账号ID")
* @ApiParams(name = "user_id", type = "string",required=false,description = "机构用户ID")
* @ApiParams(name = "ip", type = "string",required=false,description = "请求ip")
* @ApiParams(name = "time", type = "string",required=false,description = "操作时间查询:today今天,week本周,month本月,year本年,yesterday昨天,last year上一年,last week上周last month上個月lately7最近7天 lately30最近30天按开始时间区间查传值格式Y/m/d H:M:S-Y/m/d H:M:S")
*
* @ApiReturn({
*
*})
*/
public function log_list()
{
$params = [];
$page = $this->request->get('page/d', 0); //页数
$limit = $this->request->get('limit/d', 0); //条数
$params["keywords"] = $this->request->get('keywords/s', ''); //搜索关键字
$params["shop_id"] = $this->request->get('shop_id/d', ''); //搜索关键字
$params["store_id"] = $this->request->get('store_id/d', ''); //搜索关键字
$params["user_id"] = $this->request->get('user_id/d', ''); //搜索关键字
$params["ip"] = $this->request->get('ip/d', ''); //时间
if($params["ip"]) $params["ip"] = ["LIKE","%".$params["ip"] ."%"];
$params["time"] = $this->request->get('time/s', ''); //时间
if(!$params["shop_id"]) $params["shop_id"] = $this->auth->shop_id;
if(!$params["store_id"]) $params["store_id"] = $this->auth->id;
try{
//当前申请状态
$res = ManystoreApiLog::logList($page, $limit,$params);
// if($user_id =='670153'){
// file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql());
// }
}catch (\Exception $e){
$this->apierror($e->getMessage());
}
$this->apisuccess('查询成功', $res);
}
/**
* @ApiTitle( 后台请求日志列表详情)
* @ApiSummary(后台请求日志列表详情)
* @ApiMethod(GET)
* @ApiParams(name = "id", type = "int",required=true,description = "后台请求日志id")
* @ApiReturn({
*
*})
*/
public function detail(){
$id = $this->request->get('id/d','');
if(empty($id)){
$this->apierror(__('缺少必要参数'));
}
try {
$res = ManystoreApiLog::detail($id);
} catch (\Exception $e){
// Log::log($e->getMessage());
$this->apierror($e->getMessage(),['errcode'=>$e->getCode()]);
}
$this->apisuccess('获取成功', ['detail' => $res]);
}
}