Files
yycea/application/api/controller/wdsxh/UserWechat.php
2026-03-17 09:56:06 +08:00

261 lines
9.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// +----------------------------------------------------------------------
// | 麦沃德科技赋能开发者,助力商协会发展
// +----------------------------------------------------------------------
// | Copyright (c) 20172024 www.wdsxh.cn All rights reserved.
// +----------------------------------------------------------------------
// | 沃德商协会系统并不是自由软件,不加密,并不代表开源,未经许可不可自由转售和商用
// +----------------------------------------------------------------------
// | Author: MY WORLD Team <bd@maiwd.cn> www.maiwd.cn
// +----------------------------------------------------------------------
/**
* Class UserWechat
* Desc 微信用户控制器
* Create on 2024/3/16 9:14
* Create by wangyafang
*/
namespace app\api\controller\wdsxh;
use app\admin\model\wdsxh\mall\Order;
use app\api\model\wdsxh\member\Level;
use app\api\model\wdsxh\message\MemberNotification;
use app\api\model\wdsxh\activity\Activity;
use app\api\model\wdsxh\member\Member;
use app\api\model\wdsxh\member\MemberApply;
use app\common\controller\Api;
use think\Db;
use think\exception\PDOException;
use think\exception\ValidateException;
use Exception;
class UserWechat extends Api
{
protected $noNeedLogin = [''];
protected $noNeedRight = ['*'];
protected $model = null;
public function _initialize()
{
parent::_initialize();
$this->model = new \app\api\model\wdsxh\UserWechat();
}
/**
* Desc 个人中心
* Create on 2024/3/16 9:15
* Create by wangyafang
*/
public function center()
{
if(!$this->request->isGet()) {
$this->error('请求类型错误');
}
$wechat_id = $this->model->where('user_id',$this->auth->id)->value('id');
if (!$wechat_id) {
$this->error('用户信息不存在');
}
$data = $this->model->where('id',$wechat_id)->field("nickname,REPLACE(mobile,SUBSTR(mobile,4,4),'****') mobile,avatar")->find();
$data['apply_member_state'] = $this->query_apply_member_state($wechat_id);
if ($data['apply_member_state']['state'] == '6') {
$data['expire_time'] = (new Member())->where('wechat_id',$wechat_id)->value('expire_time');
} else {
$data['expire_time'] = '';
}
if (in_array($data['apply_member_state']['state'],array('2','5'))) {
$data['reject'] = (new MemberApply())->where('wechat_id',$wechat_id)->value('reject');
} else {
$data['reject'] = '';
}
$mallOrderModel = new Order();
$data['order'] = array(
'unpaid_count'=> $mallOrderModel->where('wechat_id',$wechat_id)->where('state','1')->count(),
'to_be_shipped_count'=> $mallOrderModel->where('wechat_id',$wechat_id)->where('state','2')->count(),
'to_be_received_count'=> $mallOrderModel->where('wechat_id',$wechat_id)->where('state','3')->count(),
'refund_count'=> $mallOrderModel->where('wechat_id',$wechat_id)->where('state','-1')->count(),
);
$data['set_admin'] = $this->model->where('id',$wechat_id)->value('set_admin');
$where_query[] = ['exp',Db::raw("FIND_IN_SET($wechat_id,verifying_wechat_ids)")];
$verifying_wechat_ids_array = (new Activity())
->where($where_query)
->column('id');
$data['is_verifying'] = !empty($verifying_wechat_ids_array) ? 1 : 2;
$memberApplyObj = (new MemberApply())->where('wechat_id',$wechat_id)->order('id desc')->find();
$data['member_level_name'] = $memberApplyObj ? (new Level())->where('id',$memberApplyObj['member_level_id'])->value('name') : '';
if ($data['set_admin'] == 1) {
$data['member_apply_count'] = (new MemberApply())
->where('state','1')
->count();
}
if ($data['apply_member_state']['state'] == '6') {
$member_id = (new Member())->where('wechat_id',$wechat_id)->value('id');
$data['member_notification_count'] = (new MemberNotification())
->where('member_id',$member_id)
->where('is_read',0)
->count();
} else {
$data['member_notification_count'] = 0;
}
$this->success('请求成功',$data);
}
/**
* Desc 入会申请状态
* Create on 2024/3/21 9:48
* Create by wangyafang
*/
public function apply_member_state()
{
if(!$this->request->isGet()) {
$this->error('请求类型错误');
}
$wechat_id = $this->model->where('user_id',$this->auth->id)->value('id');
if (!$wechat_id) {
$this->error('用户信息不存在');
}
$state = $this->query_apply_member_state($wechat_id);
if ($state['state'] == '-1') {
$reject = '';
} else {
$memberApplyObj = (new MemberApply())->where('wechat_id',$wechat_id)->field('reject')->find();
$reject = $memberApplyObj['reject'];
}
$state['reject'] = $reject;
$this->success('请求成功',['state'=>$state]);
}
public function query_apply_member_state($wechat_id = '')
{
$applyObj = (new MemberApply())->where('wechat_id',$wechat_id)->order('id desc')->find();
if (!$applyObj) {
$data = array(
'state'=>'-1',
'msg'=>'未提交入会申请',
);
return $data;
}
switch ($applyObj['child_state']) {
case '1':
$data = array(
'state'=>'1',
'msg'=>'已提交审核,请等待审核',
);
break;
case '2':
$data = array(
'state'=>'2',
'msg'=>'入会申请被驳回',
);
break;
case '3':
$data = array(
'state'=>'3',
'msg'=>'后台审核通过未缴费,需要缴纳会费',
);
break;
case '4':
$data = array(
'state'=>'4',
'msg'=>'线下缴费审核中',
);
break;
case '5':
$data = array(
'state'=>'5',
'msg'=>'线下缴费被驳回',
);
break;
case '6':
$current_date = date('Y-m-d',time());
$memberObj = (new \app\api\model\wdsxh\member\Member())->where('wechat_id',$wechat_id)
->find();
if ($memberObj['expire_time'] < $current_date) {
$data = array(
'state'=>'7',
'msg'=>'会员已过期,需要缴纳会费',
);
} else {
$data = array(
'state'=>'6',
'msg'=>'已经是会员',
);
}
break;
}
return $data;
}
/**
* Desc 更新昵称和头像
* Create on 2024/3/28 14:12
* Create by wangyafang
*/
public function update_nickname_avatar(){
if (!$this->request->isPost()){
$this->error('请求类型错误');
}
$params = $this->request->param();
$model = new \app\admin\model\User();
$user = $model->get($this->auth->id);
if (!$user){
$this->error('用户信息不存在');
}
$wechatObj = (new \app\api\model\wdsxh\UserWechat())->where('user_id',$this->auth->id)->find();
if (!$wechatObj) {
$this->error('微信用户信息不存在');
}
$user['nickname']=empty($params['nickname'])?$user['nickname']:$params['nickname'];
$user['avatar']=empty($params['avatar'])?$user['avatar']:$params['avatar'];
$wechatObj->nickname = $user['nickname'];
$wechatObj->avatar = $user['avatar'];
$result = false;
Db::startTrans();
try {
$result = $user->save();
$wechatObj->save();
Db::commit();
} catch (ValidateException|PDOException|Exception $e) {
Db::rollback();
$this->error($e->getMessage());
}
if (false === $result) {
$this->error(__('No rows were updated'));
}
$this->success('更新成功!',$this->auth->getUserinfo());
}
/**
* Desc 获取手机号
* Create on 2025/8/18 上午11:45
* Create by wangyafang
*/
public function get_mobile()
{
if(!$this->request->isGet()) {
$this->error('请求类型错误');
}
$wechatObj = (new \app\api\model\wdsxh\UserWechat())->where('user_id',$this->auth->id)->find();
if (!$wechatObj) {
$this->error('微信用户信息不存在');
}
$this->success('请求成功', [
'mobile' => $wechatObj->mobile,
]);
}
}