作者 郭文星

'v1'

<?php
/**
* Created by PhpStorm.
* User: ty01
* Date: 2022/3/10
* Time: 14:31
*/
namespace app\api\controller\v1;
use think\Db;
/**
* 文章管理
* Class Acquisition
* @package app\api\controller\core
*/
class Acquisition extends Base
{
/**
* 文章采集入库
*/
public function article()
{
$response = $this->request->param();
$title = $response['title'];//文章标题
$articlecontent = $response['content'];
$url = $response['url'];
$from = $response['source'];
$cjtime = $response['tacq'];
$fwtime = $response['DispatchTime'];
$Sensitive = $response['Sensitive'];
$group_id = $response['group_id'];
$fakeid = $response['fakeid'];//公众号id
$ss = [];
$ids_string = "";
if (!empty($Sensitive)) {
foreach ($Sensitive as $kk=>$vv){
if (!empty($vv)) {
$ids = Db::name("theme_keywords")->where("name", $vv)->column("id");
if (!empty($ids)) {
$ss = array_unique(array_merge($ss, $ids));
}
}
}
if (!empty($ss)) {
$ids_string = implode(",", $ss);
}
$Sensitive = implode(",", $Sensitive);
}
if (empty($title)) {
$this->error("文章标题不能为空");
}
if (empty($articlecontent)) {
$this->error("文章内容不能为空");
}
if (empty($from) || !in_array($from, ['微信', '网站', '论坛', '全部网页', '网络问政', '头条号', '广播电视', '搜狐号', '微博', '视频'])) {
$this->error("文章来源渠道参数异常");
}
$admin_id = Db::name("auth_group_access")->where("group_id", $group_id)->value("uid");//获取角色组下第一层的某个管理id
$data = [
"title" => $title,
"articlecontent" => $articlecontent,
"url" => $url,
"from" => $from,
"cjtime" => $cjtime,
"fwtime" => $fwtime,
"createtime" => time(),
"sensitive" => $Sensitive,
"theme_keywords_ids"=>$ids_string,
"admin_id" => $admin_id ? $admin_id : 1,
"fakeid"=>$fakeid,
];
$ac_id = Db::name("article_acquisition")->insertGetId($data);
if ($ac_id) {
$this->success("数据入库成功", $ac_id);
} else {
$this->error("数据入库失败");
}
}
/**
* 处理敏感词老数据(多个id用逗号隔开)
*/
public function test()
{
$article = Db::name("article_acquisition")->order("id asc")->select();
if (!empty($article)) {
foreach ($article as $k => $v) {
if (!empty($v['sensitive'])) {
$sensitive_array = explode(",", $v['sensitive']);
$ss = [];
foreach ($sensitive_array as $kk => $vv) {
if (!empty($vv)) {
$ids = Db::name("theme_keywords")->where("name", $vv)->column("id");
if (!empty($ids)) {
$ss = array_unique(array_merge($ss, $ids));
}
}
}
if (!empty($ss)) {
$ids_string = "";
$ids_string = implode(",", $ss);
Db::name("article_acquisition")->where("id", $v['id'])->update(["theme_keywords_ids" => $ids_string]);
}
}
}
}
}
}
\ No newline at end of file
... ...
<?php
namespace app\api\controller\v1;
use app\common\controller\Api;
use think\Request;
header('Content-type:text/html; Charset=utf-8');
date_default_timezone_set('PRC');
class Base extends Api
{
protected $noNeedLogin = ['*'];//*无需验证登陆
protected $AppID;
protected $AppSecret;
protected $qiniuUrl;
public function __construct(Request $request = null)
{
parent::__construct($request);
$this->qiniuUrl = 'https://coupon.xp.yn.cn';
$this->AppID = config("site.appid");//微信小程序AppID
$this->AppSecret = config("site.appsecret");//微信小程序密钥
}
}
... ...
<?php
/**
* Created by PhpStorm.
* User: ty01
* Date: 2022/3/10
* Time: 14:31
*/
namespace app\api\controller\v1;
use app\admin\model\collection\FocusCollection;
use app\common\helper\HttpHelper;
use think\Db;
use think\Request;
/**
* 角色组
* Class Group
* @package app\api\controller\core
*/
class Group extends Base
{
/**
* 1.管理组及其检索关键词
*/
public function list()
{
$where['searchword'] = ['neq', ''];
$where['id'] = ['gt', 1];
$result = Db::name("auth_group")->where($where)->field("id as group_id,searchword")->select();
if (!empty($result)) {
foreach ($result as $k => $v) {
//所有微信公众号
$w = [];
$w = [
"from" => "微信",
"auth_group_id" => $v['group_id']
];
$collection = Db::name("focus_collection")->where($w)->column("unikey");
// if (empty($collection)) {
// unset($result[$k]);
// continue;
// }
//获取角色组下所有管理员发布的敏感词返回数组
$uids = Db::name("auth_group_access")->where("group_id", $v['group_id'])->column("uid");
if (empty($uids)) {
unset($result[$k]);
continue;
}
$keywords = Db::name("theme_keywords")->where('admin_id', 'in', $uids)->column("name as keywords_name");
if (empty($keywords)) {
unset($result[$k]);
continue;
}
$result[$k]['collection'] = $collection;
$result[$k]['keywords'] = $keywords;
}
}
$this->success("数据获取成功", $result);
}
/**
* 2.获取管理组、检索关键词、最新begin数据
*/
public function group_list()
{
$where['searchword'] = ['neq', ''];
$where['id'] = ['gt', 1];
$result = Db::name("auth_group")->where($where)->field("id as group_id,searchword")->select();
if (!empty($result)) {
foreach ($result as $k => $v) {
//所有微信公众号
$w = [];
$w = [
"from" => "微信",
"auth_group_id" => $v['group_id']
];
$begin = Db::name("focus_collection")->where($w)->order("begin desc")->value("begin");
$result[$k]['begin'] = $begin ? $begin : 0;
}
}
$this->success("数据获取成功!", $result);
}
/**
* 2. 一键拉取对应角色组检索关键词的公众号
* @param group_id 角色组id
* @param begin 最新一篇文章的begin值;
*/
public function pullFocusCollection()
{
echo "kevin";
die;
$response = $this->request->param();
if (empty($response['group_id'])) {
return array_callback(false, "角色组id不能为空");
}
if (empty($response['key'])) {
return array_callback(false, "检索关键词不能为空");
}
$params["group_id"] = $response['group_id'];
$params["key"] = $response['key'];
$params["begin"] = $response['begin'] > 0 ? intval($response['begin']) : 0;
$query_string = is_array($params) ? http_build_query($params) : $params;
// $request_url = "http://op.cn/api/v1/group/test";
$request_url = "http://124.71.110.50:8080/getpublic";
$geturl = $query_string ? $request_url . (stripos($request_url, "?") !== false ? "&" : "?") . $query_string : $request_url;
$s = file_get_contents($geturl);
$res = json_decode($s, true);
// $res = json_decode($res, true);
$time = time();
$insert_data = [];
//日志入库
$log = [
"auth_group_id" => $response['group_id'],
"request_url" => $request_url,
"request_method" => "GET",
"request_param" => json_encode($params, JSON_UNESCAPED_UNICODE),
"response_code" => $res['code'],
"createtime" => $time
];
if (!empty($res['data'])) {
foreach ($res['data'] as $k => $v) {
$from = "微信";
$admin_id = Db::name("auth_group_access")->where("group_id", $v['group_id'])->value("uid");
//可以优化成查询最新begin做对比
$count = Db::name("focus_collection")->where("unikey", $v['id'])->count();
if ($count == 0) {
$insert_data[] = [
"from" => $from,
"unikey" => $v['id'],
"name" => $v['name'],
"pinyin" => $v['alias'],
"headavatar" => $v['round_head_img'],
"service_type" => $v['service_type'] ? $v['service_type'] : 1,
"signature" => $v['signature'],
"begin" => $v['begin'],
"createtime" => $time,
"updatetime" => $time,
"admin_id" => $admin_id ? $admin_id : 1,
"auth_group_id" => $v['group_id']
];
}
}
if (!empty($insert_data)) {
// 启动事务
Db::startTrans();
try {
$res = Db::name("focus_collection")->insertAll($insert_data);
if (!$res) {
Db::rollback();
return false;
}
// 执行提交操作
Db::commit();
} catch (\Exception $e) {
// 更新失败 回滚事务
Db::rollback();
Db::name("focus_collection_log")->insert($log);
$this->error("数据更新失败!" . $e->getMessage());
}
$log["upt_num"] = $res;
Db::name("focus_collection_log")->insert($log);
$this->success("数据更新成功【" . $res . "条】");
}
}
Db::name("focus_collection_log")->insert($log);
$this->success("暂无需要更新的数据");
}
public function test()
{
$data = [
[
"id" => "MzA5MDQxNjgyNw==",
"name" => "今日蒙自",
"alias" => "jrmzzx",
"round_head_img" => "https://open.hikvision.com/img/a985847.png",
"service_type" => 1,
"signature" => "发布蒙自人文、旅游、民生、时政最新资讯,关注大事、小事、身边事",
"begin" => 1,
"group_id" => 4
],
[
"id" => "MzI3Nzc5NtcwMg==",
"name" => "蒙自招聘",
"alias" => "jrmzzx",
"round_head_img" => "https://open.hikvision.com/img/a985847.png",
"service_type" => 1,
"signature" => "发布蒙自人文、旅游、民生、时政最新资讯,关注大事、小事、身边事",
"begin" => 2,
"group_id" => 4
],
// [
// "id" => "MzAwNzI2Njk4Mg==",
// "name" => "锡都个旧",
// "alias" => "gjsrmtzx",
// "round_head_img" => "https://open.hikvision.com/img/a985847.png",
// "service_type" => 1,
// "signature" => "发布个旧旅游、民生、时政最新资讯,关注大事、小事、身边事",
// "begin" => 1,
// "group_id" => 5
// ],
// [
// "id" => "MzAxNTMwOTE1Mg==",
// "name" => "早安个旧",
// "alias" => "zaoangejiu",
// "round_head_img" => "https://open.hikvision.com/img/a985847.png",
// "service_type" => 1,
// "signature" => "发布个旧民生、时政最新资讯,关注大事、小事、身边事",
// "begin" => 2,
// "group_id" => 5
// ],
];
$this->success("成功", $data);
}
/**
* 4. 公众号批量入库
*/
public function addFocusCollection()
{
$request = Request::instance();
$response = $this->request->param();
if (!is_array($response)) {
$this->error("请求数据格式异常");
}
$time = time();
$insert_data = [];
if (!empty($response)) {
foreach ($response as $k => $v) {
$from = "微信";
$admin_id = Db::name("auth_group_access")->where("group_id", $v['group_id'])->value("uid");//获取角色组下第一层的某个管理id
$count = Db::name("focus_collection")->where("unikey", $v['id'])->count();//检查unikey是否存在
if ($count == 0) {
//没入过库
$insert_data[] = [
"from" => $from,
"unikey" => $v['id'],
"name" => $v['name'],
"pinyin" => $v['alias'],
"headavatar" => $v['round_head_img'],
"service_type" => $v['service_type'] ? $v['service_type'] : 1,
"signature" => $v['signature'],
"begin" => $v['begin'],
"createtime" => $time,
"updatetime" => $time,
"admin_id" => $admin_id ? $admin_id : 1,
"auth_group_id" => $v['group_id'],
"account_principal"=>$v['themainbody'] //微信号账号主体
];
}
}
if (!empty($insert_data)) {
// 启动事务
Db::startTrans();
try {
$res = Db::name("focus_collection")->insertAll($insert_data);
if (!$res) {
Db::rollback();
return false;
}
// 执行提交操作
Db::commit();
} catch (\Exception $e) {
// 更新失败 回滚事务
Db::rollback();
//日志入库
$log = [];
$log = [
"auth_group_id" => $response[0]['group_id'],
"request_url" => $request->url(true),
"request_method" => $_SERVER['REQUEST_METHOD'],
"request_ip" => $request->ip(),
"request_param" => json_encode($response, JSON_UNESCAPED_UNICODE),
"response_code" => 0,
"upt_num" => 0,
"createtime" => $time
];
Db::name("focus_collection_log")->insert($log);
$this->error("数据更新失败!" . $e->getMessage());
}
$log = [];
$log = [
"auth_group_id" => $response[0]['group_id'],
"request_url" => $request->url(true),
"request_method" => $_SERVER['REQUEST_METHOD'],
"request_ip" => $request->ip(),
"request_param" => json_encode($response, JSON_UNESCAPED_UNICODE),
"response_code" => 0,
"upt_num" => $res,
"createtime" => $time
];
Db::name("focus_collection_log")->insert($log);
$this->success("数据更新成功【" . $res . "条】");
}
}
$log = [];
$log = [
"auth_group_id" => $response[0]['group_id'],
"request_url" => $request->url(true),
"request_method" => $_SERVER['REQUEST_METHOD'],
"request_ip" => $request->ip(),
"request_param" => json_encode($response, JSON_UNESCAPED_UNICODE),
"response_code" => 0,
"upt_num" => 0,
"createtime" => $time
];
Db::name("focus_collection_log")->insert($log);
$this->success("暂无需要更新的数据");
}
/**
* 5. 根据渠道名称获取渠道unikey
*/
public function get_fakeid()
{
//获取渠道数组
$focusCollectionModel = new FocusCollection();
$from_list = $focusCollectionModel->getFromList();
$from_list = array_keys($from_list);
$param = $this->request->param();
$from = $param['from'];//渠道来源
$name = $param['name'];//渠道名称
if (empty($from)) {
return array_callback(false, "请先选择渠道来源");
} elseif (!in_array($from, $from_list)) {
return array_callback(false, "请先选择有效的渠道来源");
}
if (empty($name)) {
return array_callback(false, "请先填写渠道名称");
}
$where = [
"from" => $from,
"name" => $name
];
$count = $focusCollectionModel->where($where)->count();
if ($count > 0) {
return array_callback(false, $param['name'] . "`已存在,请更换渠道名称后重新操作");
}
//请求接口
$url = "http://124.71.110.50:8080/get_fakeid?name=" . $name;
$res = HttpHelper::curl($url,"GET");
$result = json_decode($res,true);
if($result['code']!=1){
return array_callback(false, "接口请求异常".$result['msg']);
}else{
return array_callback(true,"数据获取成功",$result['data']);
}
}
}
\ No newline at end of file
... ...
<?php
namespace app\api\controller\v1;
use app\common\controller\Api;
use app\common\exception\UploadException;
use app\common\library\Ems;
use app\common\library\Sms;
use app\common\library\Upload;
use fast\Random;
use think\Cache;
use think\Config;
use think\Db;
use think\Validate;
/**
* 首页公共
*/
class Index extends Api
{
protected $noNeedLogin = ["*"];
protected $noNeedRight = '*';
public function _initialize()
{
parent::_initialize();
}
/***
* 1_0、上传图片、文件到服务器
*/
public function upload()
{
if ($this->request->isPost()) {
$config = [
'size' => 2097152,
'ext' => 'jpeg,jpg,png,xls,xlsx'
];
$file = $this->request->file('file');
$upload_path = str_replace('\\', '/', ROOT_PATH . 'public/uploads');
$save_path = '/uploads/';
$info = $file->validate($config)->move($upload_path);
$domain = get_root_url();
if ($info) {
$data['filepath'] = $domain . str_replace('\\', '/', $save_path . $info->getSaveName());
$data['fileurl'] = str_replace('\\', '/', $save_path . $info->getSaveName());
$files = $file->getInfo();
$data['oldname'] = explode('.', $files['name']);
$data['oldname'] = $data['oldname'][0];
$this->success('文件上传成功', $data);
} else {
$this->error("图片上传失败");//$file->getError()
}
}
}
/**
* 1_1、重新获取管理员信息
*/
public function check_mng()
{
$post = $this->request->param();
$client_type = $post['client_type'] == 2 ? 2 : 1; //1农场端 2食堂端
$return_data = $this->auth->getUserinfo();
$is_mng_user = 0;//是否是农场管理员 0不是 1是
$mng_area = [];//管辖农场(多个)
$is_mng_user2 = 0;//是否是食堂管理员 0不是 1是
$mng_area2 = [];//管辖食堂(多个)
//检查下user表手机号,若有手机号就看下hc_area_code_mng有没有对应手机号,有的话就把id绑定上
if (!empty($return_data['mobile'])) {
$exsit_mobile = Db::name("farm_manager")->where("mng_admin_phone", $return_data['mobile'])->find();
if (!empty($exsit_mobile)) {
//更新管理员表的mng_user_id
Db::name("farm_manager")->where("mng_admin_phone", $return_data['mobile'])->update(["mng_user_id" => $return_data['id']]);
//将用户表中的基础信息更新一下
if ($exsit_mobile['mng_admin_name']) {
Db::name("user")->where("id", $return_data['id'])->update(["username" => $exsit_mobile['mng_admin_name']]);
}
}
$exsit_mobile2 = Db::name("farm_canteenmanager")->where("mng_admin_phone", $return_data['mobile'])->find();
if (!empty($exsit_mobile2)) {
//更新管理员表的mng_user_id
Db::name("farm_canteenmanager")->where("mng_admin_phone", $return_data['mobile'])->update(["mng_user_id" => $return_data['id']]);
//将用户表中的基础信息更新一下
if ($exsit_mobile2['mng_admin_name']) {
Db::name("user")->where("id", $return_data['id'])->update(["username" => $exsit_mobile2['mng_admin_name']]);
}
}
}
$area = Db::name("farm_manager")->alias("a")
->join("farm_farm b", "b.id=a.farm_farm_id")
->where("a.mng_user_id", $return_data['id'])->field("b.id as code,b.name")->select();
if (!empty($area)) {
$is_mng_user = 1;
$mng_area = $area;
if ($exsit_mobile['mng_admin_name'] && $client_type == 1) {
$return_data['username'] = $exsit_mobile['mng_admin_name'];
}
}
$return_data['is_mng_user'] = $is_mng_user;
$return_data['mng_area'] = $mng_area;
$area2 = Db::name("farm_canteenmanager")->alias("a")
->join("farm_canteen b", "b.id=a.farm_canteen_id")
->where("a.mng_user_id", $return_data['id'])->field("b.id as code,b.name")->select();
if (!empty($area2)) {
$is_mng_user2 = 1;
$mng_area2 = $area2;
if ($exsit_mobile['mng_admin_name'] && $client_type == 2) {
$return_data['username'] = $exsit_mobile['mng_admin_name'];
}
}
$return_data['is_mng_user2'] = $is_mng_user2;
$return_data['mng_area2'] = $mng_area2;
if (empty($area) && empty($area2)) {
$this->error("您还不是管理员,请在后台绑定后操作!");
}
$return_data['avatar'] = full_image($return_data['avatar']);
$sex = 1;
if ($client_type == 1) {
$sex = Db::name("farm_manager")->where("mng_user_id", $return_data['id'])->value("sex");
$sex = $sex == "2" ? 2 : 1;
} elseif ($client_type == 2) {
$sex = Db::name("farm_canteenmanager")->where("mng_user_id", $return_data['id'])->value("sex");
$sex = $sex == "2" ? 2 : 1;
}
$return_data['sex'] = $sex;
$this->success("用户信息获取成功", $return_data);
}
/**
* 1_2、更新个人资料
*/
public function update_userinfo()
{
$user_id = $this->auth->id;
$post = $this->request->param("");
$update_user_data = [];//user表数据更新
$update_mng_data = [];//mng表的数据更新
if ($post['avatar']) {
//更新图片
$update_user_data["avatar"] = $post['avatar'];
}
if ($post['username']) {
$update_user_data["username"] = $post['username'];
$update_user_data["nickname"] = $post['username'];
$update_mng_data["mng_admin_name"] = $post['username'];
}
if ($post['sex']) {
$update_mng_data['sex'] = $post['sex'] == 2 ? "2" : "1";
}
if (!empty($update_user_data)) {
Db::name("user")->where("id", $user_id)->update($update_user_data);
}
if (!empty($update_mng_data)) {
Db::name("farm_manager")->where("mng_user_id", $user_id)->update($update_mng_data);
Db::name("farm_canteenmanager")->where("mng_user_id", $user_id)->update($update_mng_data);
}
$this->success("资料更新成功");
}
/**
* 10. 各模块轮播图列表(启动页、首页顶部轮播)+填报须知
*
*/
public function getWctImg()
{
//启动图片
$list = Db::name('xcx_img')->where(['type' => "1", 'status' => 1])->order('id', 'desc')->find();
$imgs = $list['images'] ? explode(',', $list['images']) : [];
$data['start_img'] = $imgs ? full_image($imgs) : [];
//首页图片
$list2 = Db::name('xcx_img')
->where(['type' => "2", 'status' => 1])
->order('id', 'desc')
->find();
$imgs2 = $list2['images'] ? explode(',', $list2['images']) : [];
$data['index_banner_img'] = $imgs2 ? full_image($imgs2) : [];
//管理端图片
$list2 = Db::name('xcx_img')
->where(['type' => "3", 'status' => 1])
->order('id', 'desc')
->find();
$imgs2 = $list2['images'] ? explode(',', $list2['images']) : [];
$data['admin_banner_img'] = $imgs2 ? full_image($imgs2) : [];
//填报须知
$data['guidance_notes'] = Config::get("site.guidance_notes");
//电话汇总连接
$data['tel_link'] = Config::get("site.tel_link");
$data['jkb_tel_content'] = Config::get("site.jkb_tel_content");
$this->success('获取成功', $data);
}
/**
* 用户注册协议、隐私协议
*/
public function regiest_xieyi()
{
$data['regist'] = config('site.user_xieyi');
$data['yinsi'] = config('site.yinsi_xieyi');
return $this->success("", $data);
}
}
... ...
<?php
/**
* Created by PhpStorm.
* Login: Kevin
* Date: 2023/03/22
* Time: 14:10
*/
namespace app\api\controller\v1;
use lib\WXBizDataCrypt;
use think\Db;
use think\Request;
header('Access-Control-Allow-Origin:*');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
header('Access-Control-Allow-Methods: GET, POST, PUT');
class Login extends Base
{
/**
* 1、小程序授权注册用户、返回用户信息
*/
public function get_user_by_shouquan()
{
$appid = $this->AppID;
$AppSecret = $this->AppSecret;
$post = $this->request->post();
$code = $post['code'];// I('post.code');
$encryptedData = $post['encryptedData'];//I('post.encryptedData');
$iv = $post['iv'];//I('post.iv');
// if ($post['type'] == 1) {
// $encryptedData = urldecode($encryptedData);
// $iv = urldecode($iv);
// }
$url = "https://api.weixin.qq.com/sns/jscode2session?appid=" . $appid . "&secret=" . $AppSecret . "&js_code=" . $code . "&grant_type=authorization_code";
// file_put_contents("ccc.txt", "授权1:" . date("Y-m-d H:i:s") .":" . $url . PHP_EOL, FILE_APPEND);
$res = json_decode(http_request($url), true);
if (!$res) {
$res = json_decode(send_post($url), true);
}
$sessionKey = $res['session_key'];
$openid = $res['openid'];//获取用户openid
$unionid = $res['unionid'];//获取用户openid
file_put_contents("ccc.txt", "授权0:" . date("Y-m-d H:i:s") .":" . json_encode($post,JSON_UNESCAPED_UNICODE) . PHP_EOL, FILE_APPEND);
file_put_contents("ccc.txt", "授权1:" . date("Y-m-d H:i:s") . ":" . json_encode($res, JSON_UNESCAPED_UNICODE) . PHP_EOL, FILE_APPEND);
require_once '../extend/lib/WXBizDataCrypt.class.php';
$pc = new WXBizDataCrypt($appid, $sessionKey);
$errCode = $pc->decryptData($encryptedData, $iv, $data);
$data = json_decode($data, true);
file_put_contents("ccc.txt", "授权2:" . date("Y-m-d H:i:s") . ":" . $errCode . PHP_EOL, FILE_APPEND);
file_put_contents("ccc.txt", "授权3:" . date("Y-m-d H:i:s") .":". json_encode($data,JSON_UNESCAPED_UNICODE) . PHP_EOL, FILE_APPEND);
if ($errCode != 0) {
$ajax['code'] = 0;
$ajax['info'] = $errCode;
$errCode = $errCode == "-41001" || $errCode == "-41003" ? "授权失败,请尝试重新授权" : $errCode;
$this->error($errCode);
}
if ($openid) {
$openid_info = [
"openid" => $openid,
"unionid" => $unionid,
"from" => "wx",
];
if (!empty($data['nickName'])) {
$openid_info['nickName'] = $data['nickName'];
}
if (!empty($data['gender'])) {
$openid_info['gender'] = $data['gender'];
}
if (!empty($data['avatarUrl'])) {
$openid_info['avatarUrl'] = $data['avatarUrl'];
}
if (!empty($data['country'])) {
$openid_info['country'] = $data['country'];
}
if (!empty($data['province'])) {
$openid_info['province'] = $data['province'];
}
if (!empty($data['city'])) {
$openid_info['city'] = $data['city'];
}
if (!empty($data['phoneNumber'])) {
$openid_info['phoneNumber'] = $data['phoneNumber'];
}
insert_openid_info($openid_info);//更新下微信用户信息到数据库
}
//直接通过unionid 查找用户信息
$userres = Db::name("user")->where("wx_xcx_openid", $openid)->order("id desc")->find();
if (empty($userres)) {
//如果通过小程序openid找不到会员
//注册处理
$extend_data = [
"nickname" => $openid_info['nickName'],
"avatar" => $openid_info["avatarUrl"]?$openid_info["avatarUrl"]:"/default.png",
"wx_xcx_openid" => $openid,
"unionid" => $unionid,
];
$username = $openid ? $openid : suiji_num("TY");
$ret = $this->auth->register($username, "a123456", '', $data['phoneNumber'], $extend_data);
if ($ret) {
$return_data = $this->auth->getUserinfo();
$is_mng_user = 0;//是否是农场管理员 0不是 1是
$mng_area = [];//管辖区域(多个)
$area = Db::name("farm_manager")->alias("a")
->join("farm_farm b", "b.id=a.farm_farm_id")
->where("a.mng_user_id", $return_data['id'])->field("b.id as code,b.name")->select();
if (!empty($area)) {
$is_mng_user = 1;
$mng_area = $area;
}
$return_data['is_mng_user'] = $is_mng_user;
$return_data['mng_area'] = $mng_area;
$is_mng_user2 = 0;//是否是食堂管理员 0不是 1是
$mng_area2 = [];//管辖区域(多个)
$area2 = Db::name("farm_canteenmanager")->alias("a")
->join("farm_canteen b", "b.id=a.farm_canteen_id")
->where("a.mng_user_id", $return_data['id'])->field("b.id as code,b.name")->select();
if (!empty($area2)) {
$is_mng_user2 = 1;
$mng_area2 = $area2;
}
$return_data['is_mng_user2'] = $is_mng_user2;
$return_data['mng_area2'] = $mng_area2;
if (empty($return_data['mobile'])) {
$this->success("授权成功,请继续认证手机号后才能正常使用", $return_data, 2);
} else {
//[农场]这里是新注册用户,有手机号,需要判断下手机号有没有在食堂中存在,若存在就将id绑定过去
$bind = Db::name("farm_manager")->where("mng_admin_phone", $return_data['mobile'])->order("id desc")->find();
if (!empty($bind)) {
Db::name("farm_manager")->where("mng_admin_phone", $return_data['mobile'])->update(["mng_user_id" => $return_data['id']]);
if ($bind['mng_admin_name']) {
//将管理员姓名更新到用户表中
Db::name("user")->where("id", $return_data['id'])->update(["username" => $bind['mng_admin_name']]);
}
}
//[食堂]这里是新注册用户,有手机号,需要判断下手机号有没有在食堂管理员中存在,若存在就将id绑定过去
$bind2 = Db::name("farm_canteenmanager")->where("mng_admin_phone", $return_data['mobile'])->order("id desc")->find();
if (!empty($bind2)) {
Db::name("farm_canteenmanager")->where("mng_admin_phone", $return_data['mobile'])->update(["mng_user_id" => $return_data['id']]);
if ($bind2['mng_admin_name']) {
//将管理员姓名更新到用户表中
Db::name("user")->where("id", $return_data['id'])->update(["username" => $bind2['mng_admin_name']]);
}
}
}
$return_data['avatar'] =full_image($return_data['avatar']);
$this->success("登录成功!", $return_data);
} else {
$this->error($this->auth->getError());
}
} else {
//小程序openid找到了会员
$update_data = [];
$update_data['logintime'] = time();
if (empty($userres['mobile']) && !empty($openid_info['phoneNumber'])) {
$update_data['mobile'] = $openid_info['phoneNumber'];
}
// if (!empty($openid_info['phoneNumber'])) {
// $update_data['username'] = $openid_info['phoneNumber'];
// }
if (!empty($openid_info['nickName']) && $openid_info['nickName']!="微信用户") {
$update_data['nickname'] = $openid_info['nickName'];
}
if(!empty($unionid)){
$update_data['unionid'] = $unionid;
}
if (!empty($openid_info['phoneNumber'])) {
//[农场]这里是已注册过的用户,有手机号,需要判断下手机号有没有在食堂中存在,若存在就将id绑定过去
$bind = Db::name("farm_manager")->where("mng_admin_phone", $openid_info['phoneNumber'])->order("id desc")->find();
if (!empty($bind)) {
Db::name("farm_manager")->where("mng_admin_phone", $openid_info['phoneNumber'])->update(["mng_user_id" => $userres['id']]);
if ($bind['mng_admin_name']) {
//将管理员姓名更新到用户表中
Db::name("user")->where("id", $userres['id'])->update(["username" => $bind['mng_admin_name']]);
}
}
//[食堂]这里是已注册过的用户,有手机号,需要判断下手机号有没有在食堂管理员中存在,若存在就将id绑定过去
$bind2 = Db::name("farm_canteenmanager")->where("mng_admin_phone", $openid_info['phoneNumber'])->order("id desc")->find();
if (!empty($bind2)) {
Db::name("farm_canteenmanager")->where("mng_admin_phone", $openid_info['phoneNumber'])->update(["mng_user_id" => $userres['id']]);
if ($bind2['mng_admin_name']) {
//将管理员姓名更新到用户表中
Db::name("user")->where("id", $userres['id'])->update(["username" => $bind2['mng_admin_name']]);
}
}
}
Db::name("user")->where("wx_xcx_openid", $openid)->update($update_data);
$this->auth->direct($userres['id']);
$return_data = $this->auth->getUserinfo();
$is_mng_user = 0;//是否是农场管理员 0不是 1是
$mng_area = [];//管辖区域(多个)
$area = Db::name("farm_manager")->alias("a")
->join("farm_farm b", "b.id=a.farm_farm_id")
->where("a.mng_user_id", $return_data['id'])->field("b.id as code,b.name")->select();
if (!empty($area)) {
$is_mng_user = 1;
$mng_area = $area;
}
$return_data['is_mng_user'] = $is_mng_user;
$return_data['mng_area'] = $mng_area;
$is_mng_user2 = 0;//是否是食堂管理员 0不是 1是
$mng_area2 = [];//管辖区域(多个)
$area2 = Db::name("farm_canteenmanager")->alias("a")
->join("farm_canteen b", "b.id=a.farm_canteen_id")
->where("a.mng_user_id", $return_data['id'])->field("b.id as code,b.name")->select();
if (!empty($area2)) {
$is_mng_user2 = 1;
$mng_area2 = $area2;
}
$return_data['is_mng_user2'] = $is_mng_user2;
$return_data['mng_area2'] = $mng_area2;
$return_data['avatar'] =full_image($return_data['avatar']);
$this->success(__('登录成功'), $return_data);
}
}
/**
* 给后台添加用户时自动注册用
*/
public function auto_regist_user($username, $password = "a123456", $email = "", $mobile, $extend_data)
{
$ret = $this->auth->register($username, $password, '', $mobile, $extend_data);
if ($ret) {
$return_data = $this->auth->getUserinfo();
return array_callback(true, "用户添加成功", $return_data['id']);
} else {
return array_callback(false, $this->auth->getError());
}
}
}
\ No newline at end of file
... ...