init commit

This commit is contained in:
2026-03-17 09:56:00 +08:00
commit e2c8ae752d
6827 changed files with 1211784 additions and 0 deletions

View File

@@ -0,0 +1,261 @@
<?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,
]);
}
}