1733 lines
74 KiB
PHP
1733 lines
74 KiB
PHP
<?php
|
||
// +----------------------------------------------------------------------
|
||
// | 麦沃德科技赋能开发者,助力商协会发展
|
||
// +----------------------------------------------------------------------
|
||
// | Copyright (c) 2017~2024 www.wdsxh.cn All rights reserved.
|
||
// +----------------------------------------------------------------------
|
||
// | 沃德商协会系统并不是自由软件,不加密,并不代表开源,未经许可不可自由转售和商用
|
||
// +----------------------------------------------------------------------
|
||
// | Author: MY WORLD Team <bd@maiwd.cn> www.maiwd.cn
|
||
// +----------------------------------------------------------------------
|
||
/**
|
||
* Class Member
|
||
* Desc 会员列表
|
||
* Create on 2024/3/14 17:07
|
||
* Create by wangyafang
|
||
*/
|
||
|
||
namespace app\api\controller\wdsxh\member;
|
||
|
||
|
||
use addons\wdsxh\library\AlibabaCloudSms;
|
||
use addons\wdsxh\library\Wxapp;
|
||
use app\admin\model\wdsxh\member\AuthConfig;
|
||
use app\admin\model\wdsxh\member\FeesConfig;
|
||
use app\admin\model\wdsxh\member\Level;
|
||
use app\admin\model\wdsxh\points\PointsConfig;
|
||
use app\api\model\wdsxh\business\Association;
|
||
use app\api\model\wdsxh\member\CompanyFixedInformation;
|
||
use app\api\model\wdsxh\member\CompanyGoods;
|
||
use app\api\model\wdsxh\member\MemberAlreadyExpireMessage;
|
||
use app\api\model\wdsxh\member\MemberExpireMessage;
|
||
use app\api\model\wdsxh\member\Pay;
|
||
use app\api\model\wdsxh\member\Visitor;
|
||
use app\api\model\wdsxh\UserWechat;
|
||
use app\common\controller\Api;
|
||
use app\common\model\wdsxh\points\UserWechatPointsLog;
|
||
use think\Db;
|
||
use think\exception\PDOException;
|
||
use think\exception\ValidateException;
|
||
use think\Exception;
|
||
|
||
|
||
class Member extends Api
|
||
{
|
||
protected $noNeedLogin = ['notify','index','send_expire_message','unit','member_map_list','auth','diy_list','send_already_expire_message'];
|
||
protected $noNeedRight = ['*'];
|
||
protected $model = null;
|
||
protected $memberAuthConfigObj = null;
|
||
protected $configObj = '';
|
||
|
||
public function _initialize()
|
||
{
|
||
parent::_initialize();
|
||
$this->model = new \app\api\model\wdsxh\member\Member();
|
||
$this->memberAuthConfigObj = (new AuthConfig())->get(1);
|
||
$this->configObj = (new \app\admin\model\wdsxh\Config())->where('id',1)->find();
|
||
}
|
||
|
||
/**
|
||
* Desc 会费缴纳详情
|
||
* Create on 2024/3/15 14:05
|
||
* Create by wangyafang
|
||
*/
|
||
public function membershipPayDetail()
|
||
{
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$memberObj = $this->model->where('wechat_id', $wechat_id)->field('id,member_level_id,join_time,expire_time')->find();
|
||
$row = $memberObj;
|
||
$applyObj = (new \app\api\model\wdsxh\member\MemberApply())->where('wechat_id', $wechat_id)->find();
|
||
if (!$memberObj) {
|
||
if (!$applyObj) {
|
||
$this->error('入会信息不存在');
|
||
}
|
||
if ($applyObj['state'] != '4' && empty($applyObj['pay_voucher'])) {
|
||
if ($applyObj['state'] == '1') {
|
||
$this->error('入会信息待管理员审核通过');
|
||
} elseif ($applyObj['state'] == '3') {
|
||
$this->error('入会信息被驳回,请重新提交审核');
|
||
} else {
|
||
$this->error('发生未知错误,请联系系统管理员');
|
||
}
|
||
}
|
||
}
|
||
|
||
$levelObj = (new Level())->where('id',$applyObj['member_level_id'])->field('name,fees,content')->find();
|
||
$memberObj['level_name'] = $levelObj['name'];
|
||
$memberObj['pay_method'] = (new FeesConfig())->where('id',1)->value('pay_method');
|
||
if ($memberObj['pay_method'] == '1') {
|
||
$memberObj['fees'] = 0;
|
||
} else {
|
||
$memberObj['fees'] = $levelObj['fees'];
|
||
}
|
||
$memberObj['content'] = $levelObj['content'];
|
||
|
||
$memberObj['join_time'] = !empty($row) ? $row['join_time'] : '';
|
||
$join_time = !empty($row) ? $row['join_time'] : date('Y-m-d');
|
||
$memberObj['expire_time'] = (!empty($row) && $row['expire_time'] > date('Y-m-d')) ? $row['expire_time'] : \app\common\model\wdsxh\member\Member::get_expire_time(date('Y-m-d'));
|
||
$memberObj['join_time'] = str_replace('-','/',$memberObj['join_time']);
|
||
$memberObj['expire_time'] = str_replace('-','/',$memberObj['expire_time']);
|
||
$memberObj['apply_member_state'] = (new \app\api\controller\wdsxh\UserWechat())->query_apply_member_state($wechat_id);
|
||
$memberObj['reject'] = $applyObj['reject'];
|
||
|
||
$member_id = (new \app\api\model\wdsxh\member\Member())->where('wechat_id', $wechat_id)->value('id');
|
||
$memberObj['pay_list'] = (new Pay())
|
||
->where('member_id', $member_id)
|
||
->where('wechat_id',$wechat_id)
|
||
->where('paid','2')
|
||
->field('pay_method,pay_time,fees')
|
||
->order('createtime desc')
|
||
->select();
|
||
|
||
$this->success('请求成功',$memberObj);
|
||
}
|
||
|
||
/**
|
||
* Desc 线下付款提交支付凭证
|
||
* Create on 2024/3/20 16:39
|
||
* Create by wangyafang
|
||
*/
|
||
public function submit_pay_voucher()
|
||
{
|
||
if(!$this->request->isPost()) {
|
||
$this->error('请求类型错误');
|
||
}
|
||
|
||
$pay_voucher = $this->request->post('pay_voucher');
|
||
if(empty($pay_voucher)) {
|
||
$this->error('请上传付款凭证');
|
||
}
|
||
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
|
||
$memberApplyObj = (new \app\api\model\wdsxh\member\MemberApply())
|
||
->where('wechat_id',$wechat_id)
|
||
->where('child_state','4')
|
||
->where('state','1')
|
||
->find();
|
||
if ($memberApplyObj) {
|
||
$this->error('已上传支付凭证,请勿重复上传');
|
||
}
|
||
|
||
$current_date = date('Y-m-d',time());
|
||
$memberObj = (new \app\api\model\wdsxh\member\Member())->where('wechat_id',$wechat_id)->find();
|
||
if (!$memberObj) {//没有入会
|
||
$memberApplyObj = (new \app\api\model\wdsxh\member\MemberApply())
|
||
->where('wechat_id',$wechat_id)
|
||
->find();
|
||
if (!$memberApplyObj) {
|
||
$this->error('入会信息不存在');
|
||
}
|
||
if(!in_array($memberApplyObj['child_state'],['3','5'])) {
|
||
$this->error('入会信息状态错误');
|
||
}
|
||
} else {
|
||
$current_date = date('Y-m-d',time());
|
||
if ($memberObj['expire_time'] >= $current_date) {
|
||
$this->error('会员未到期');
|
||
}
|
||
$memberApplyObj = (new \app\api\model\wdsxh\member\MemberApply())
|
||
->where('wechat_id',$wechat_id)
|
||
->where('state','in',['2','4'])
|
||
->find();
|
||
if (!$memberApplyObj) {
|
||
$this->error('续费入会信息不存在');
|
||
}
|
||
if ($memberApplyObj['state'] == '2') {
|
||
if ($memberApplyObj['child_state'] != '6') {
|
||
$this->error('续费入会信息错误');
|
||
}
|
||
}
|
||
if($memberApplyObj['state'] == '4' && !in_array($memberApplyObj['child_state'],['3','5'])) {
|
||
$this->error('续费入会信息状态错误');
|
||
}
|
||
}
|
||
$memberApplyObj->pay_voucher = $pay_voucher;
|
||
$memberApplyObj->state = '1';
|
||
$memberApplyObj->child_state = '4';
|
||
$memberApplyObj->reject = '';
|
||
$memberApplyObj->save();
|
||
$this->success('提交成功');
|
||
|
||
}
|
||
|
||
/**
|
||
* Desc 会费缴纳
|
||
* Create on 2024/3/15 14:05
|
||
* Create by wangyafang
|
||
*/
|
||
public function membershipPay() {
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$applyObj = $memberApplyObj= (new \app\api\model\wdsxh\member\MemberApply())->where('wechat_id', $wechat_id)->find();
|
||
if (!$memberApplyObj) {
|
||
$this->error('入会信息不存在');
|
||
}
|
||
if(!in_array($memberApplyObj['child_state'],['3','5','6'])) {
|
||
$this->error('入会信息状态错误');
|
||
}
|
||
$channel = $this->request->header('channel');
|
||
$memberPayObj = (new Pay())->where('paid','1')
|
||
->where('wechat_id',$wechat_id)
|
||
->where('pay_method','2')
|
||
->find();
|
||
if (!$memberPayObj) {
|
||
//线上缴费
|
||
$pay_data = array(
|
||
'wechat_id'=>$wechat_id,
|
||
'order_no'=> wdsxh_create_order(),
|
||
'fees'=>(new Level())->where('id',$applyObj['member_level_id'])->value('fees'),
|
||
'level_id'=>$applyObj['member_level_id'],
|
||
'channel'=>$channel,
|
||
'pay_method'=>'2',
|
||
);
|
||
$applyObj->pay_method = '2';
|
||
Db::startTrans();
|
||
try{
|
||
$applyObj->save();
|
||
$payModel = new Pay();
|
||
$payModel->data($pay_data);
|
||
$payModel->allowField(true)->save();
|
||
// 提交事务
|
||
Db::commit();
|
||
$order_no = $payModel->order_no;
|
||
$fees = $payModel->fees;
|
||
} catch (\Exception $e) {
|
||
// 回滚事务
|
||
Db::rollback();
|
||
$this->error($e->getMessage());
|
||
}
|
||
} else {
|
||
$order_no = wdsxh_create_order();
|
||
$memberPayObj->order_no = $order_no;
|
||
$fees = $memberPayObj->fees;
|
||
Db::startTrans();
|
||
try{
|
||
$applyObj->save();
|
||
$memberPayObj->save();
|
||
// 提交事务
|
||
Db::commit();
|
||
} catch (\Exception $e) {
|
||
// 回滚事务
|
||
Db::rollback();
|
||
$this->error($e->getMessage());
|
||
}
|
||
}
|
||
|
||
|
||
if ($channel == 1) {//小程序会员缴费
|
||
try {
|
||
$openid = wdsxh_get_openid($wechat_id,$channel);
|
||
$conf = Wxapp::unify('会费缴纳', $order_no, $fees, $openid, request()->domain() . '/api/wdsxh/member/member/notify');
|
||
} catch (\Exception $e) {
|
||
$this->error($e->getMessage());
|
||
}
|
||
$this->success('success', $conf);
|
||
} else {//公众号会员缴费
|
||
try {
|
||
$openid = wdsxh_get_openid($wechat_id,$channel);
|
||
$conf = Wxapp::unify_wxofficial('会费缴纳', $order_no, $fees, $openid, request()->domain() . '/api/wdsxh/member/member/notify');
|
||
} catch (\Exception $e) {
|
||
$this->error($e->getMessage());
|
||
}
|
||
$this->success('success', $conf);
|
||
}
|
||
|
||
}
|
||
|
||
/*
|
||
* 会费缴纳支付回调处理
|
||
*/
|
||
public function notify()
|
||
{
|
||
$pay = Wxapp::getPay();
|
||
$response = $pay->handlePaidNotify(function ($message, $fail) {
|
||
$orderObj = $payObj = (new Pay())->where('order_no', $message['out_trade_no'])->where('pay_method','2')->find();
|
||
if (!$orderObj || $orderObj->paid == '2') {
|
||
return true;
|
||
}
|
||
if ($message['return_code'] === 'SUCCESS') {
|
||
if ($message['result_code'] === 'SUCCESS') {
|
||
$memberApplyObj = (new \app\api\model\wdsxh\member\MemberApply())
|
||
->where('wechat_id',$orderObj['wechat_id'])
|
||
->find();
|
||
if (!$memberApplyObj) {
|
||
$this->error('入会信息错误');
|
||
}
|
||
if (!in_array($memberApplyObj['state'],['4','3','2'])) {
|
||
$this->error('入会状态不是待付款或者已驳回');
|
||
}
|
||
if (!in_array($memberApplyObj['child_state'],['3','5','6'])) {
|
||
$this->error('入会子状态不是待付款或者线下已驳回');
|
||
}
|
||
$member_data = \app\common\model\wdsxh\member\Member::get_member_data($memberApplyObj);
|
||
$memberModel = new \app\api\model\wdsxh\member\Member();
|
||
$memberObj = $memberModel->where('wechat_id',$payObj['wechat_id'])->find();
|
||
if ($memberObj) {
|
||
$memberObj->expire_time = $member_data['expire_time'];
|
||
$memberObj->save();
|
||
$member_id = $memberObj['id'];
|
||
} else {
|
||
$memberModel->data($member_data);
|
||
$memberModel->allowField(true)->save();
|
||
$member_id = $memberModel->id;
|
||
}
|
||
|
||
$params['state'] = '2';//已通过
|
||
$params['child_state'] = '6';//已通过
|
||
$result = false;
|
||
Db::startTrans();
|
||
try {
|
||
$result = $memberApplyObj->allowField(true)->save($params);
|
||
$orderObj->trade_no = $message['transaction_id'];
|
||
$orderObj->pay_time = time();
|
||
$orderObj->paid = '2';
|
||
$orderObj->member_id = $member_id;
|
||
$orderObj->save();
|
||
Db::commit();
|
||
} catch (ValidateException|PDOException|Exception $e) {
|
||
Db::rollback();
|
||
$this->error($e->getMessage());
|
||
}
|
||
if (false === $result) {
|
||
$this->error(__('No rows were updated'));
|
||
}
|
||
$cert_data = \app\common\model\wdsxh\Cert::get_cert_data($memberApplyObj['type'],$memberApplyObj,$member_id);
|
||
if(!empty($cert_data)) {
|
||
$certModel = new \app\api\model\wdsxh\member\Cert();
|
||
$certModel->saveAll($cert_data);
|
||
}
|
||
$join_member_get_points = (new PointsConfig())->where('id',1)->value('join_member_get_points');
|
||
$queryMemberObj = (new \app\api\model\wdsxh\member\Member())->where('wechat_id',$orderObj['wechat_id'])->find();
|
||
if ($join_member_get_points > 0 && !$queryMemberObj) {
|
||
UserWechatPointsLog::joinMemberAddPoints(1,'入会成功',$orderObj['wechat_id'],$join_member_get_points,4);
|
||
}
|
||
|
||
if ($orderObj['channel'] == '1') {
|
||
//入会申请成功通知
|
||
$businessAssociationObj = (new Association())->get(1);
|
||
try {
|
||
$conf = $this->configObj;
|
||
$data = [
|
||
'thing3' => [
|
||
'value' => mb_substr($businessAssociationObj['name'], 0, 20)
|
||
],
|
||
'time2' => [
|
||
'value' => date('Y-m-d H:i:s'),
|
||
],
|
||
'thing1' => [
|
||
'value' => mb_substr('恭喜您已成功加入' . $businessAssociationObj['name'], 0, 20),
|
||
]
|
||
];
|
||
$result = Wxapp::subscribeMessage($conf['applet_initiation_success'], trim(wdsxh_get_openid($memberApplyObj['wechat_id'],$orderObj['channel'])), '/pages/mine/index', $data);
|
||
} catch (\think\Exception $e) {
|
||
$this->error($e->getMessage());
|
||
}
|
||
} else {//公众号推送消息
|
||
|
||
}
|
||
$configObj = $this->configObj;
|
||
$phoneNumbers = $member_data['mobile'];
|
||
if (!empty($configObj['alibaba_cloud_sign_name'])
|
||
&& !empty($configObj['alibaba_cloud_access_key_id'])
|
||
&& !empty($configObj['alibaba_cloud_access_key_secret'])
|
||
&& !empty($configObj['alibaba_initiation_success_notify'])
|
||
&& !empty($phoneNumbers)
|
||
) {
|
||
$level_name = preg_replace('/[^\x{4e00}-\x{9fa5}]/u', '',$member_data['member_level_name']);
|
||
if (empty($level_name)) {
|
||
$level_name = '用户';
|
||
}
|
||
|
||
$userSendSmsRequestParam = [
|
||
"phoneNumbers" => $phoneNumbers,
|
||
"templateCode" => $configObj['alibaba_initiation_success_notify'],
|
||
"templateParam" => "{'leavelname':'$level_name'}"
|
||
];
|
||
AlibabaCloudSms::main($userSendSmsRequestParam);
|
||
}
|
||
|
||
}
|
||
} else {
|
||
return $fail('FAIL');
|
||
}
|
||
|
||
return true;
|
||
});
|
||
$response->send();
|
||
}
|
||
|
||
/**
|
||
* Desc 编辑资料详情
|
||
* Create on 2024/3/18 16:04
|
||
* Create by wangyafang
|
||
*/
|
||
public function information_details()
|
||
{
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$memberObj = $this->model->where('wechat_id',$wechat_id)->find();
|
||
if (!$memberObj) {
|
||
$this->error('会员信息不存在');
|
||
}
|
||
|
||
if ($memberObj['type'] == '1') {
|
||
$custom_content = array(
|
||
'person'=>\app\common\model\wdsxh\member\Member::get_custom_content_full_image($memberObj['type'],$memberObj['custom_content']),
|
||
'mobile_auth'=>$memberObj['mobile_auth'],
|
||
);
|
||
$companyFixedInformationObj = (new \app\api\model\wdsxh\member\CompanyFixedInformation())
|
||
->where('member_id',$memberObj['id'])
|
||
->find();
|
||
if ($companyFixedInformationObj) {
|
||
$custom_content['personal_carousel_images'] = $companyFixedInformationObj['personal_carousel_images'];
|
||
} else {
|
||
$custom_content['personal_carousel_images'] = '';
|
||
}
|
||
} else {
|
||
$custom_content_result = \app\common\model\wdsxh\member\Member::get_custom_content_full_image($memberObj['type'],$memberObj['custom_content']);
|
||
$custom_content_result['mobile_auth'] = $memberObj['mobile_auth'];
|
||
$custom_content = $custom_content_result;
|
||
|
||
$companyFixedInformationObj = (new \app\api\model\wdsxh\member\CompanyFixedInformation())
|
||
->where('member_id',$memberObj['id'])
|
||
->find();
|
||
if ($companyFixedInformationObj) {
|
||
$custom_content['personal_carousel_images'] = $companyFixedInformationObj['personal_carousel_images'];
|
||
$custom_content['company_carousel_images'] = $companyFixedInformationObj['company_carousel_images'];
|
||
$custom_content['address_json'] = $companyFixedInformationObj['address_json'];
|
||
$custom_content['company_office_number'] = $companyFixedInformationObj['company_office_number'];
|
||
} else {
|
||
$custom_content['personal_carousel_images'] = '';
|
||
$custom_content['company_carousel_images'] = '';
|
||
$custom_content['company_office_number'] = '';
|
||
$custom_content['address_json'] = json_encode(
|
||
array(
|
||
'latitude'=>'',
|
||
'longitude'=>'',
|
||
'name'=>'',
|
||
'address'=>''
|
||
)
|
||
);
|
||
}
|
||
}
|
||
|
||
|
||
$this->success('请求成功',$custom_content);
|
||
}
|
||
|
||
/**
|
||
* Desc 保存信息
|
||
* Create on 2024/3/18 16:04
|
||
* Create by wangyafang
|
||
*/
|
||
public function submit_information()
|
||
{
|
||
if(!$this->request->isPost()) {
|
||
$this->error('请求类型错误');
|
||
}
|
||
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$param['wechat_id'] = $wechat_id;
|
||
$memberObj = $this->model->where('wechat_id',$wechat_id)->find();
|
||
if (!$memberObj) {
|
||
$this->error('会员信息不存在');
|
||
}
|
||
$param['type'] = $memberObj['type'];
|
||
$param['data'] = json_decode($_POST['data'],true);
|
||
|
||
$member_base_data = $this->get_member_base_data($memberObj['type'],$param['data']);
|
||
$channel = $this->request->header('channel');
|
||
$param['channel'] = $channel;
|
||
|
||
$result = $this->validate($param,'app\api\validate\wdsxh\member\Member.submit_information');
|
||
if(true !== $result){
|
||
// 验证失败 输出错误信息
|
||
$this->error($result);
|
||
}
|
||
$member_base_data['custom_content'] = \app\common\model\wdsxh\member\Member::remove_custom_content_full_image($memberObj['type'],$_POST['data']);
|
||
$mobile_auth = $this->request->post('mobile_auth');
|
||
$member_base_data['mobile_auth'] = $mobile_auth ? $mobile_auth : 1;
|
||
$member_base_data['status'] = 'normal';
|
||
$memberObj->save($member_base_data);
|
||
|
||
if (in_array($memberObj['type'],[2,3])) {
|
||
try{
|
||
$companyFixedInformationModel = new \app\api\model\wdsxh\member\CompanyFixedInformation();
|
||
$companyFixedInformationObj = $companyFixedInformationModel->where('member_id',$memberObj['id'])->find();
|
||
$submit_data = $this->request->post();
|
||
if ($companyFixedInformationObj) {
|
||
$companyFixedInformationObj->personal_carousel_images = isset($submit_data['personal_carousel_images']) ? $submit_data['personal_carousel_images'] : $companyFixedInformationObj['personal_carousel_images'];
|
||
$companyFixedInformationObj->company_carousel_images = isset($submit_data['company_carousel_images']) ? $submit_data['company_carousel_images'] : $companyFixedInformationObj['company_carousel_images'];
|
||
$companyFixedInformationObj->address_json = isset($_POST['address_json']) ? $_POST['address_json'] : $companyFixedInformationObj['address_json'];
|
||
$companyFixedInformationObj->company_office_number = isset($submit_data['company_office_number']) ? $submit_data['company_office_number'] : $companyFixedInformationObj['company_office_number'];
|
||
$companyFixedInformationObj->save();
|
||
} else {
|
||
$data = array(
|
||
'member_id'=>$memberObj['id'],
|
||
'personal_carousel_images'=>isset($submit_data['personal_carousel_images']) ? $submit_data['personal_carousel_images'] : '',
|
||
'company_carousel_images'=>isset($submit_data['company_carousel_images']) ? $submit_data['company_carousel_images'] : '',
|
||
'address_json'=>isset($_POST['address_json']) && $_POST['address_json'] !== '' ? $_POST['address_json'] : json_encode(
|
||
array(
|
||
'latitude'=>'',
|
||
'longitude'=>'',
|
||
'name'=>'',
|
||
'address'=>''
|
||
)
|
||
),
|
||
'company_office_number'=>isset($submit_data['company_office_number']) ? $submit_data['company_office_number'] : '',
|
||
);
|
||
$companyFixedInformationModel->data($data);
|
||
$companyFixedInformationModel->allowField(true)->save();
|
||
}
|
||
} catch (ValidateException|PDOException|Exception $e) {
|
||
$this->error($e->getMessage());
|
||
}
|
||
} else {
|
||
try{
|
||
$companyFixedInformationModel = new \app\api\model\wdsxh\member\CompanyFixedInformation();
|
||
$companyFixedInformationObj = $companyFixedInformationModel->where('member_id',$memberObj['id'])->find();
|
||
$submit_data = $this->request->post();
|
||
if ($companyFixedInformationObj) {
|
||
$companyFixedInformationObj->personal_carousel_images = isset($submit_data['personal_carousel_images']) ? $submit_data['personal_carousel_images'] : $companyFixedInformationObj['personal_carousel_images'];
|
||
$companyFixedInformationObj->save();
|
||
} else {
|
||
$data = array(
|
||
'member_id'=>$memberObj['id'],
|
||
'personal_carousel_images'=>isset($submit_data['personal_carousel_images']) ? $submit_data['personal_carousel_images'] : '',
|
||
);
|
||
$companyFixedInformationModel->data($data);
|
||
$companyFixedInformationModel->allowField(true)->save();
|
||
}
|
||
} catch (ValidateException|PDOException|Exception $e) {
|
||
$this->error($e->getMessage());
|
||
}
|
||
}
|
||
$this->success('请求成功');
|
||
}
|
||
|
||
/**
|
||
* Desc 获取会员基础数据
|
||
* Create on 2024/4/10 11:50
|
||
* Create by wangyafang
|
||
*/
|
||
private function get_member_base_data($type,$data)
|
||
{
|
||
$result = (new MemberApply())->handle_custom_data($type,$data);
|
||
$result['avatar'] = remove_wdsxh_full_url($result['avatar']);
|
||
if (isset($result['company_logo']) && !empty($result['company_logo'])) {
|
||
$result['company_logo'] = remove_wdsxh_full_url($result['company_logo']);
|
||
}
|
||
if (isset($result['organize_logo']) && !empty($result['organize_logo'])) {
|
||
$result['organize_logo'] = remove_wdsxh_full_url($result['organize_logo']);
|
||
}
|
||
if (isset($result['avatar']) && empty($result['avatar'])) {
|
||
$result['avatar'] = '/assets/addons/wdsxh/img/avatar.png';
|
||
}
|
||
if (isset($result['company_logo']) && empty($result['company_logo'])) {
|
||
$result['company_logo'] = '/assets/addons/wdsxh/img/company_logo.png';
|
||
}
|
||
if (isset($result['organize_logo']) && empty($result['organize_logo'])) {
|
||
$result['organize_logo'] = '/assets/addons/wdsxh/img/organize_logo.png';
|
||
}
|
||
if (isset($result['address']) && !empty($result['address'])) {
|
||
$address_array = json_decode($result['address'],true);
|
||
$result['address'] = $address_array['address'];
|
||
$result['latitude'] = $address_array['latitude'];
|
||
$result['longitude'] = $address_array['longitude'];
|
||
}
|
||
return $result;
|
||
}
|
||
|
||
/**
|
||
* Desc 通讯录
|
||
* Create on 2024/3/14 17:09
|
||
* Create by wangyafang
|
||
*/
|
||
public function address_book()
|
||
{
|
||
if(!$this->request->isGet()) {
|
||
$this->error('请求类型错误');
|
||
}
|
||
|
||
$param = $this->request->get();
|
||
|
||
$address_book_sort_order = (new AuthConfig())->where('id',1)->value('address_book_sort_order');
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$current_date = date('Y-m-d',time());
|
||
$memberObj = (new \app\api\model\wdsxh\member\Member())->where('wechat_id',$wechat_id)
|
||
->where('expire_time','>=',$current_date)
|
||
->find();
|
||
|
||
if ($this->memberAuthConfigObj['address_book_is_openness'] == 2 && !$memberObj) {
|
||
$this->error('通讯录没有对外开放,无法查看');
|
||
}
|
||
|
||
$where['member.expire_time'] = array('>=',$current_date);
|
||
$where['member.status'] = array('eq','normal');
|
||
$where['member.mobile_auth'] = array('eq','1');
|
||
if(isset($param['keywords']) && !empty($param['keywords'])) {
|
||
$where['member.name'] = array('like','%'.$param['keywords'].'%');
|
||
}
|
||
switch ($address_book_sort_order) {
|
||
case 1:
|
||
$order = 'letter asc';
|
||
$queryField = 'letter';
|
||
break;
|
||
case 2:
|
||
$order = 'area_letter asc';
|
||
$queryField = 'area_letter';
|
||
break;
|
||
case 3:
|
||
$order = 'level.weigh asc';
|
||
$queryField = 'level_weigh';
|
||
break;
|
||
}
|
||
$data = $list = (new \app\common\model\wdsxh\member\Member())
|
||
->alias('member')
|
||
->where($where)
|
||
->field('member.id,member.name,member.avatar,member.mobile,member.letter,member.member_level_id,member.area_letter,level.name level_name,level.weigh')
|
||
->join('wdsxh_member_level level','level.id = member.member_level_id')
|
||
->order($order)
|
||
->select();
|
||
|
||
if ($queryField != 'level_weigh') {
|
||
$data = [];
|
||
foreach ($list as $v) {
|
||
if (preg_match('/^[A-Z]+$/', $v[$queryField])) {
|
||
$data[$v[$queryField]][] = array(
|
||
'id'=>$v['id'],
|
||
'name'=>$v['name'],
|
||
'mobile'=>$v['mobile'],
|
||
'avatar'=>wdsxh_full_url($v['avatar']),
|
||
'level_name'=> $v['level_name'],
|
||
);
|
||
} else {
|
||
$data['#'][] = array(
|
||
'id'=>$v['id'],
|
||
'name'=>$v['name'],
|
||
'mobile'=>$v['mobile'],
|
||
'avatar'=>wdsxh_full_url($v['avatar']),
|
||
'level_name'=> $v['level_name'],
|
||
);
|
||
}
|
||
}
|
||
|
||
if (isset($data['#'])) {
|
||
$tem_array = $data['#'];
|
||
unset($data['#']);
|
||
$data['#'] = $tem_array;
|
||
}
|
||
} else {
|
||
$data = collection($data)->toArray();
|
||
foreach ($data as &$v) {
|
||
$v['avatar'] = wdsxh_full_url($v['avatar']);
|
||
unset($v['member_level_id']);
|
||
unset($v['weigh']);
|
||
unset($v['area_letter']);
|
||
unset($v['letter']);
|
||
}
|
||
}
|
||
|
||
$address_book_sort_order = (new AuthConfig())->where('id',1)->value('address_book_sort_order');
|
||
$this->success('请求成功',array(
|
||
'data'=>$data,
|
||
'address_book_sort_order'=>$address_book_sort_order
|
||
));
|
||
}
|
||
|
||
/**
|
||
* Desc 会员风采列表
|
||
* Create on 2024/3/15 10:09
|
||
* Create by wangyafang
|
||
*/
|
||
public function index()
|
||
{
|
||
if(!$this->request->isGet()) {
|
||
$this->error('请求类型错误');
|
||
}
|
||
|
||
$member_details = (new AuthConfig())->where('id',1)->value('member_details');
|
||
if ($member_details == 3) {
|
||
if ($this->auth->isLogin()) {
|
||
$current_date = date('Y-m-d',time());
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$memberObj = (new \app\api\model\wdsxh\member\Member())->where('wechat_id',$wechat_id)
|
||
->where('expire_time','>=',$current_date)
|
||
->find();
|
||
if (!$memberObj) {
|
||
$this->error('成为会员后可查看');
|
||
}
|
||
} else {
|
||
$this->error('请登录后操作',null,401);
|
||
}
|
||
}
|
||
|
||
|
||
$current_date = date('Y-m-d',time());
|
||
|
||
$param = $this->request->get();
|
||
|
||
//经度
|
||
$longitude = $this->request->param('longitude','');
|
||
//纬度
|
||
$latitude = $this->request->param('latitude','');
|
||
|
||
//模糊查询
|
||
$page = isset($param['page']) ? $param['page'] : '';
|
||
$limit = isset($param['limit']) ? $param['limit'] : 10;
|
||
$table_name = config('database.prefix').'wdsxh_member.';
|
||
$where[$table_name.'status'] = array('eq','normal');
|
||
$where['expire_time'] = array('>=',$current_date);
|
||
|
||
$field_lat = 'latitude';//数据库中的纬度字段名
|
||
$field_lng = 'longitude';//数据库中的经度字段名称
|
||
|
||
$field = 'member.id,member.name,member.avatar,member.native_place,
|
||
member.member_level_id,level.name level_name,member.latitude,member.longitude,
|
||
industry_category.name industry_category_name';
|
||
|
||
//经纬度
|
||
if (!empty($longitude) && !empty($latitude)) {
|
||
$field_distance="(6378.137 * 2 * asin(sqrt(pow(sin(($field_lat * pi() / 180 - $latitude * pi() / 180) / 2),2) + cos($field_lat * pi() / 180) * cos($latitude * pi() / 180) * pow(sin(($field_lng * pi() / 180 - $longitude * pi() / 180) / 2),2))) * 1000) as distance";//在数据库中根据经纬度搜索,返回米
|
||
$field=$field.",".$field_distance;//获取的字段
|
||
$order = "level.weigh asc,member.join_time asc,member.createtime asc";
|
||
}else{
|
||
$order = "level.weigh asc,member.join_time asc,member.createtime asc";
|
||
}
|
||
|
||
$keywords = isset($param['keywords']) && !empty($param['keywords']) ? $param['keywords'] : '';
|
||
if (isset($param['native_place']) && !empty($param['native_place'])) {
|
||
$where[$table_name.'native_place'] = array('like','%'.$param['native_place'].'%');
|
||
}
|
||
if (isset($param['member_level_id']) && !empty($param['member_level_id'])) {
|
||
$where[$table_name.'member_level_id'] = array('in',explode(',',$param['member_level_id']));
|
||
}
|
||
if (isset($param['industry_category_id']) && !empty($param['industry_category_id'])) {
|
||
$where[$table_name.'industry_category_id'] = array('eq',$param['industry_category_id']);
|
||
}
|
||
if (isset($param['nearby']) && !empty($param['nearby'])) {
|
||
$order = 'distance asc,'.$order;
|
||
$where['longitude'] = array('<>','');
|
||
$where['latitude'] = array('<>','');
|
||
}
|
||
|
||
$total = $this->model
|
||
->where(function ($query) use($keywords){
|
||
if ($keywords) {
|
||
$table_name = config('database.prefix').'wdsxh_member.';
|
||
$query->where($table_name.'name','like','%'.$keywords.'%')
|
||
->whereor($table_name.'introduce_content','like','%'.$keywords.'%')
|
||
->whereor($table_name.'company_name','like','%'.$keywords.'%')
|
||
->whereor($table_name.'company_position','like','%'.$keywords.'%')
|
||
->whereor($table_name.'company_introduction','like','%'.$keywords.'%')
|
||
->whereor($table_name.'organize_name','like','%'.$keywords.'%')
|
||
->whereor($table_name.'organize_position','like','%'.$keywords.'%')
|
||
->whereor($table_name.'organize_introduction','like','%'.$keywords.'%');
|
||
}
|
||
})
|
||
->alias('member')
|
||
->where($where)
|
||
->join('wdsxh_member_level level','level.id = member.member_level_id')
|
||
->join('wdsxh_member_industry_category industry_category','industry_category.id = member.industry_category_id','left')
|
||
->count();
|
||
|
||
$data = $this->model
|
||
->where(function ($query) use($keywords){
|
||
if ($keywords) {
|
||
$table_name = config('database.prefix').'wdsxh_member.';
|
||
$query->where($table_name.'name','like','%'.$keywords.'%')
|
||
->whereor($table_name.'introduce_content','like','%'.$keywords.'%')
|
||
->whereor($table_name.'company_name','like','%'.$keywords.'%')
|
||
->whereor($table_name.'company_position','like','%'.$keywords.'%')
|
||
->whereor($table_name.'company_introduction','like','%'.$keywords.'%')
|
||
->whereor($table_name.'organize_name','like','%'.$keywords.'%')
|
||
->whereor($table_name.'organize_position','like','%'.$keywords.'%')
|
||
->whereor($table_name.'organize_introduction','like','%'.$keywords.'%');
|
||
}
|
||
})
|
||
->alias('member')
|
||
->where($where)
|
||
->join('wdsxh_member_level level','level.id = member.member_level_id')
|
||
->join('wdsxh_member_industry_category industry_category','industry_category.id = member.industry_category_id','left')
|
||
->field($field)->order($order)
|
||
->page($page)->limit($limit)
|
||
->select();
|
||
foreach ($data as &$v) {
|
||
if (!empty($longitude) && !empty($latitude) && !empty($v['longitude']) && !empty($v['latitude'])){
|
||
$distance = wdsxh_distance($latitude,$longitude,$v['latitude'],$v['longitude']);
|
||
if ($distance > 0) {
|
||
$v['distance'] = $distance;
|
||
} else {
|
||
$v['distance'] = $distance;
|
||
}
|
||
} else {
|
||
$v['distance'] = '';
|
||
}
|
||
if (empty($v['industry_category_name'])) {
|
||
$v['industry_category_name'] = '';
|
||
}
|
||
$v->hidden(['member_level_id','latitude','longitude']);
|
||
}
|
||
$this->success('请求成功',['total' => $total,'data' => $data]);
|
||
}
|
||
|
||
/**
|
||
* Desc 会员详情
|
||
* Create on 2024/3/15 10:26
|
||
* Create by wangyafang
|
||
*/
|
||
public function details()
|
||
{
|
||
if(!$this->request->isGet()) {
|
||
$this->error('请求类型错误');
|
||
}
|
||
|
||
$param = $this->request->get();
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$current_date = date('Y-m-d',time());
|
||
$memberObj = (new \app\api\model\wdsxh\member\Member())->where('wechat_id',$wechat_id)
|
||
->where('expire_time','>=',$current_date)
|
||
->find();
|
||
|
||
if (in_array($this->memberAuthConfigObj['member_details'],array('1','3')) && !$memberObj) {
|
||
$this->error('此页面需成为会员后可查看!');
|
||
}
|
||
|
||
$memberVisitorObj = (new Visitor())->where('wechat_id', $wechat_id)->where('member_id', $param['id'])->find();
|
||
if ($memberVisitorObj) {
|
||
$memberVisitorObj->createtime = time();
|
||
$memberVisitorObj->save();
|
||
} else {
|
||
$visitor_data = array(
|
||
'wechat_id' => $wechat_id,
|
||
'member_id' => $param['id'],
|
||
'createtime' => time(),
|
||
);
|
||
Visitor::create($visitor_data);
|
||
}
|
||
|
||
$where['member.id'] = array('eq',$param['id']);
|
||
$type = $this->model->alias('member')->where($where)->value('type');
|
||
|
||
switch ($type) {
|
||
case 1:
|
||
$data = $this->person($where);
|
||
break;
|
||
case 2:
|
||
$data = $this->company($where);
|
||
break;
|
||
case 3:
|
||
$data = $this->organize($where);
|
||
break;
|
||
}
|
||
$companyFixedInformationObj = (new CompanyFixedInformation())
|
||
->where('member_id',$param['id'])
|
||
->field('personal_carousel_images')
|
||
->find();
|
||
$data['personal_carousel_images'] = $companyFixedInformationObj['personal_carousel_images'] ?? '';
|
||
|
||
$visitor_list = (new Visitor())->where('visitor.member_id', $param['id'])
|
||
->alias('visitor')
|
||
->order('visitor.createtime desc')
|
||
->join('wdsxh_user_wechat wechat', 'wechat.id = visitor.wechat_id')
|
||
->field('wechat.avatar')
|
||
->limit(23)
|
||
->select();
|
||
if (!empty($visitor_list)) {
|
||
foreach ($visitor_list as &$v) {
|
||
$v->avatar = wdsxh_full_url($v->avatar);
|
||
}
|
||
}
|
||
$data['visitor_list'] = $visitor_list;
|
||
$data['visitor_count'] = (new Visitor())->where('member_id', $param['id'])->count();
|
||
$data['type'] = $type;
|
||
$where['member.id'] = array('eq',$param['id']);
|
||
$mobile_auth = $this->model->alias('member')->where($where)->value('mobile_auth');
|
||
$data['mobile_auth'] = $mobile_auth;
|
||
if ($mobile_auth == '2') {
|
||
$data['mobile'] = '';
|
||
}
|
||
|
||
$this->success('请求成功',$data);
|
||
}
|
||
|
||
private function person($where = array())
|
||
{
|
||
$field = 'member.id,member.name,member.avatar,member.mobile,member.native_place,member.introduce_content,
|
||
level.name level_name,
|
||
member.industry_category_name,
|
||
member.address,member.latitude,member.longitude,
|
||
custom_content';
|
||
|
||
$memberObj = $this->model
|
||
->alias('member')
|
||
->where($where)
|
||
->join('wdsxh_member_level level','level.id = member.member_level_id')
|
||
->field($field)
|
||
->find();
|
||
|
||
$custom_content = json_decode($memberObj['custom_content'],true);
|
||
$custom_content_array = array();
|
||
foreach ($custom_content as $k=>$v) {
|
||
if ($v['show'] == '1' && !in_array($v['field'],array('name','mobile','avatar','introduce_content','address','native_place','industry_category_id','member_level_id'))) {
|
||
if(in_array($v['type'],array('image','video')) && !empty($v['value'])) {
|
||
$v['value'] = wdsxh_full_url($v['value']);
|
||
if(is_array($v['value'])){
|
||
$v['value'] = implode(',',$v['value']);
|
||
}
|
||
}
|
||
if ($v['type'] == 'cert' && !empty($v['value'])) {
|
||
$v['value'] = wdsxh_full_url($v['value']['image']);
|
||
}
|
||
$custom_content_array[] = $v;
|
||
}
|
||
}
|
||
$memberObj['custom_content'] = $custom_content_array;
|
||
|
||
return $memberObj;
|
||
}
|
||
|
||
private function company($where = array())
|
||
{
|
||
$field = 'member.id,member.name,member.avatar,member.mobile,member.native_place,member.introduce_content,
|
||
level.name level_name,
|
||
member.industry_category_name,
|
||
member.address,member.latitude,member.longitude,
|
||
custom_content,
|
||
company_name,company_logo,company_introduction,company_position';
|
||
$memberObj = $this->model
|
||
->alias('member')
|
||
->where($where)
|
||
->join('wdsxh_member_level level','level.id = member.member_level_id')
|
||
->field($field)
|
||
->find();
|
||
if (!empty($memberObj['company_introduction'])) {
|
||
$memberObj['company_introduction'] = wdsxh_cut_str($memberObj['company_introduction'],4000);
|
||
}
|
||
$custom_content = json_decode($memberObj['custom_content'],true);
|
||
$custom_content_array = array();
|
||
foreach ($custom_content['person'] as $k=>$v) {
|
||
if ($v['show'] == '1' && !in_array($v['field'],array('name','mobile','avatar','introduce_content','address','native_place','industry_category_id','member_level_id','company_position'))) {
|
||
if(in_array($v['type'],array('image','video')) && !empty($v['value'])) {
|
||
$v['value'] = wdsxh_full_url($v['value']);
|
||
if(is_array($v['value'])){
|
||
$v['value'] = implode(',',$v['value']);
|
||
}
|
||
}
|
||
if ($v['type'] == 'cert' && !empty($v['value'])) {
|
||
$v['value'] = wdsxh_full_url($v['value']['image']);
|
||
}
|
||
$custom_content_array[] = $v;
|
||
}
|
||
}
|
||
|
||
$memberObj['custom_content'] = $custom_content_array;
|
||
|
||
return $memberObj;
|
||
}
|
||
|
||
public function company_details()
|
||
{
|
||
if(!$this->request->isGet()) {
|
||
$this->error('请求类型错误');
|
||
}
|
||
|
||
$id = $this->request->get('id');
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$current_date = date('Y-m-d',time());
|
||
$memberObj = (new \app\api\model\wdsxh\member\Member())->where('wechat_id',$wechat_id)
|
||
->where('expire_time','>=',$current_date)
|
||
->find();
|
||
|
||
if (in_array($this->memberAuthConfigObj['member_details'],array('1','3')) && !$memberObj) {
|
||
$this->error('此页面需成为会员后可查看!');
|
||
}
|
||
|
||
$memberObj = $this->model->where('id',$id)->field('company_name,company_logo,company_introduction,custom_content,member_level_name')->find();
|
||
$custom_content = json_decode($memberObj['custom_content'],true);
|
||
$custom_content_array = array();
|
||
foreach ($custom_content['company'] as $k=>$v) {
|
||
if ($v['show'] == '1' && !in_array($v['field'],array('company_name','company_logo','company_introduction','company_position'))) {
|
||
if(in_array($v['type'],array('image','video')) && !empty($v['value'])) {
|
||
$v['value'] = wdsxh_full_url($v['value']);
|
||
if(is_array($v['value'])){
|
||
$v['value'] = implode(',',$v['value']);
|
||
}
|
||
}
|
||
if ($v['type'] == 'cert' && !empty($v['value'])) {
|
||
$v['value'] = wdsxh_full_url($v['value']['image']);
|
||
}
|
||
$custom_content_array[] = $v;
|
||
}
|
||
}
|
||
$memberObj['custom_content'] = $custom_content_array;
|
||
|
||
$companyFixedInformationObj = (new \app\api\model\wdsxh\member\CompanyFixedInformation())
|
||
->where('member_id',$id)
|
||
->find();
|
||
if ($companyFixedInformationObj) {
|
||
$memberObj['company_carousel_images'] = $companyFixedInformationObj['company_carousel_images'];
|
||
$memberObj['address_json'] = $companyFixedInformationObj['address_json'];
|
||
$memberObj['company_office_number'] = $companyFixedInformationObj['company_office_number'];
|
||
} else {
|
||
$memberObj['company_carousel_images'] = '';
|
||
$memberObj['company_office_number'] = '';
|
||
$memberObj['address_json'] = json_encode(
|
||
array(
|
||
'latitude'=>'',
|
||
'longitude'=>'',
|
||
'name'=>'',
|
||
'address'=>''
|
||
)
|
||
);
|
||
}
|
||
$company_goods_list = (new \app\api\model\wdsxh\member\CompanyGoods())->where('member_id', $id)
|
||
->field('id,name,images')
|
||
->order('createtime desc')
|
||
->select();
|
||
foreach ($company_goods_list as &$item) {
|
||
$item->hidden(['images']);
|
||
}
|
||
$memberObj['company_goods_list'] = $company_goods_list;
|
||
$this->success('请求成功',$memberObj);
|
||
}
|
||
|
||
/**
|
||
* Desc 产品维护详情
|
||
* Create on 2025/11/19 下午5:02
|
||
* Create by wangyafang
|
||
*/
|
||
public function companyGoodsDetail()
|
||
{
|
||
if (!$this->request->isGet()) {
|
||
$this->error('请求方式错误');
|
||
}
|
||
|
||
$id = $this->request->get('id');
|
||
|
||
if (!$id) {
|
||
$this->error('参数错误');
|
||
}
|
||
|
||
// 检查产品是否属于当前会员
|
||
$goods = (new CompanyGoods())->where('id', $id)
|
||
->field('id,name,images,content')
|
||
->find();
|
||
|
||
if (!$goods) {
|
||
$this->error('产品不存在');
|
||
}
|
||
$data = $goods->toArray();
|
||
unset($data['image']);
|
||
|
||
$this->success('获取成功', $data);
|
||
}
|
||
|
||
private function organize($where = array())
|
||
{
|
||
$field = 'member.id,member.name,member.avatar,member.mobile,member.native_place,member.introduce_content,
|
||
level.name level_name,
|
||
member.industry_category_name,
|
||
member.address,member.latitude,member.longitude,
|
||
custom_content,
|
||
organize_name,organize_logo,organize_introduction,organize_position';
|
||
$memberObj = $this->model
|
||
->alias('member')
|
||
->where($where)
|
||
->join('wdsxh_member_level level','level.id = member.member_level_id')
|
||
->field($field)
|
||
->find();
|
||
|
||
if (!empty($memberObj['organize_introduction'])) {
|
||
$memberObj['organize_introduction'] = wdsxh_cut_str($memberObj['organize_introduction'],4000);
|
||
}
|
||
|
||
$custom_content = json_decode($memberObj['custom_content'],true);
|
||
$custom_content_array = array();
|
||
foreach ($custom_content['person'] as $k=>$v) {
|
||
if ($v['show'] == '1' && !in_array($v['field'],array('name','mobile','avatar','introduce_content','address','native_place','industry_category_id','member_level_id','organize_position'))) {
|
||
if(in_array($v['type'],array('image','video')) && !empty($v['value'])) {
|
||
$v['value'] =wdsxh_full_url($v['value']);
|
||
if(is_array($v['value'])){
|
||
$v['value'] = implode(',',$v['value']);
|
||
}
|
||
}
|
||
if ($v['type'] == 'cert' && !empty($v['value'])) {
|
||
$v['value'] = wdsxh_full_url($v['value']['image']);
|
||
}
|
||
$custom_content_array[] = $v;
|
||
}
|
||
}
|
||
$memberObj['custom_content'] = $custom_content_array;
|
||
|
||
return $memberObj;
|
||
}
|
||
|
||
public function organize_details()
|
||
{
|
||
if(!$this->request->isGet()) {
|
||
$this->error('请求类型错误');
|
||
}
|
||
|
||
$id = $this->request->get('id');
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$current_date = date('Y-m-d',time());
|
||
$memberObj = (new \app\api\model\wdsxh\member\Member())->where('wechat_id',$wechat_id)
|
||
->where('expire_time','>=',$current_date)
|
||
->find();
|
||
|
||
if (in_array($this->memberAuthConfigObj['member_details'],array('1','3')) && !$memberObj) {
|
||
$this->error('此页面需成为会员后可查看!');
|
||
}
|
||
|
||
$memberObj = $this->model->where('id',$id)->field('organize_name,organize_logo,organize_introduction,custom_content,member_level_name')->find();
|
||
$custom_content = json_decode($memberObj['custom_content'],true);
|
||
$custom_content_array = array();
|
||
foreach ($custom_content['organize'] as $k=>$v) {
|
||
if ($v['show'] == '1' && !in_array($v['field'],array('organize_name','organize_logo','organize_introduction','organize_position'))) {
|
||
if(in_array($v['type'],array('image','video')) && !empty($v['value'])) {
|
||
$v['value'] = wdsxh_full_url($v['value']);
|
||
if(is_array($v['value'])){
|
||
$v['value'] = implode(',',$v['value']);
|
||
}
|
||
}
|
||
if ($v['type'] == 'cert' && !empty($v['value'])) {
|
||
$v['value'] = wdsxh_full_url($v['value']['image']);
|
||
}
|
||
$custom_content_array[] = $v;
|
||
}
|
||
}
|
||
$memberObj['custom_content'] = $custom_content_array;
|
||
|
||
$companyFixedInformationObj = (new \app\api\model\wdsxh\member\CompanyFixedInformation())
|
||
->where('member_id',$id)
|
||
->find();
|
||
if ($companyFixedInformationObj) {
|
||
$memberObj['company_carousel_images'] = $companyFixedInformationObj['company_carousel_images'];
|
||
$memberObj['address_json'] = $companyFixedInformationObj['address_json'];
|
||
$memberObj['company_office_number'] = $companyFixedInformationObj['company_office_number'];
|
||
} else {
|
||
$memberObj['company_carousel_images'] = '';
|
||
$memberObj['company_office_number'] = '';
|
||
$memberObj['address_json'] = json_encode(
|
||
array(
|
||
'latitude'=>'',
|
||
'longitude'=>'',
|
||
'name'=>'',
|
||
'address'=>''
|
||
)
|
||
);
|
||
}
|
||
$company_goods_list = (new \app\api\model\wdsxh\member\CompanyGoods())->where('member_id', $id)
|
||
->field('id,name,images')
|
||
->order('createtime desc')
|
||
->select();
|
||
foreach ($company_goods_list as &$item) {
|
||
$item->hidden(['images']);
|
||
}
|
||
$memberObj['company_goods_list'] = $company_goods_list;
|
||
$this->success('请求成功',$memberObj);
|
||
}
|
||
|
||
//管理员提交订阅
|
||
public function submit_subscribe()
|
||
{
|
||
$count = 0;
|
||
$id = $this->auth->id;
|
||
$wechatModel = new UserWechat();
|
||
$wechat_id = $wechatModel->where('user_id',$this->auth->id)->value('id');
|
||
$set_admin = $wechatModel->where('id',$wechat_id)->value('set_admin');
|
||
if ($set_admin == '2') {
|
||
$this->error('不是管理员,无法订阅');
|
||
}
|
||
$subscribeObj = Db::name('wdsxh_member_subscribe')->where('wechat_id', $wechat_id)->where('type', 1)->find();
|
||
if ($subscribeObj) {
|
||
$count = Db::name('wdsxh_member_subscribe')->where('wechat_id', $wechat_id)->where('type', 1)->setInc('count');
|
||
} else {
|
||
$data = ['user_id' => $id, 'count' => 1, 'type' => 1, 'wechat_id'=>$wechat_id];
|
||
$count = Db::name('wdsxh_member_subscribe')->insert($data);
|
||
}
|
||
if ($count) {
|
||
$this->success('订阅成功');
|
||
} else {
|
||
$this->error('订阅失败');
|
||
}
|
||
}
|
||
|
||
//管理员订阅数量
|
||
public function subscribe_count()
|
||
{
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$subscribeObj = Db::name('wdsxh_member_subscribe')->where('wechat_id', $wechat_id)->where('type', 1)->find();
|
||
if ($subscribeObj) {
|
||
$this->success('查询成功', ['subscribe_count' => $subscribeObj['count']]);
|
||
} else {
|
||
$this->success('查询成功', ['subscribe_count' => 0]);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Desc 小程序会员权限
|
||
* Create on 2024/4/8 18:08
|
||
* Create by wangyafang
|
||
*/
|
||
public function auth()
|
||
{
|
||
if(!$this->request->isGet()) {
|
||
$this->error('请求类型错误');
|
||
}
|
||
$type = $this->request->get('type');
|
||
|
||
//会员详情显示权限:1=部分开放,2=全部开放,3=会员专属
|
||
$member_details = (new AuthConfig())->where('id',1)->value('member_details');
|
||
|
||
if ($type == 1) {//列表
|
||
if ($member_details == 1 || $member_details == 2) {
|
||
$show_status = 1;//能看
|
||
} else {
|
||
if ($this->auth->isLogin()) {
|
||
$current_date = date('Y-m-d',time());
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$memberObj = (new \app\api\model\wdsxh\member\Member())->where('wechat_id',$wechat_id)
|
||
->where('expire_time','>=',$current_date)
|
||
->find();
|
||
if ($memberObj) {
|
||
$show_status = 1;
|
||
} else {
|
||
$show_status = 2;
|
||
}
|
||
} else {
|
||
$show_status = 2;//不能看
|
||
}
|
||
}
|
||
} else {//详情
|
||
$current_date = date('Y-m-d',time());
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$memberObj = (new \app\api\model\wdsxh\member\Member())->where('wechat_id',$wechat_id)
|
||
->where('expire_time','>=',$current_date)
|
||
->find();
|
||
$show_status = ($member_details == '2' || $memberObj) ? 1 : 2;
|
||
}
|
||
|
||
$this->success('请求成功',['show_status'=>$show_status]);
|
||
}
|
||
|
||
/**
|
||
* Desc 通讯录权限
|
||
* Create on 2024/4/8 18:08
|
||
* Create by wangyafang
|
||
*/
|
||
public function address_book_auth()
|
||
{
|
||
if(!$this->request->isGet()) {
|
||
$this->error('请求类型错误');
|
||
}
|
||
|
||
//通讯录是否对外开放:1=是,2=否
|
||
$address_book_is_openness = (new AuthConfig())->where('id',1)->value('address_book_is_openness');
|
||
|
||
$current_date = date('Y-m-d',time());
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$memberObj = (new \app\api\model\wdsxh\member\Member())->where('wechat_id',$wechat_id)
|
||
->where('expire_time','>=',$current_date)
|
||
->find();
|
||
|
||
$show_status = ($address_book_is_openness == '1' || $memberObj) ? 1 : 2;
|
||
$this->success('请求成功',['show_status'=>$show_status]);
|
||
}
|
||
|
||
/**
|
||
* Desc 发送会员即将过期消息提醒
|
||
* Create on 2024/4/8 16:55
|
||
* Create by wangyafang
|
||
*/
|
||
private function message($member_id,$applet_member_expiretime,$memberModel) {
|
||
$memberObj = $memberModel->alias('member')
|
||
->where('id',$member_id)
|
||
->field('name,mobile,wechat_id,expire_time,type')
|
||
->find();
|
||
$phrase2 = '';
|
||
switch ($memberObj['type']) {
|
||
case 1:
|
||
$phrase2 = '个人';
|
||
break;
|
||
case 2:
|
||
$phrase2 = '企业';
|
||
break;
|
||
case 3:
|
||
$phrase2 = '团体';
|
||
break;
|
||
}
|
||
//会员到期提醒
|
||
$data = [
|
||
'thing5' => [
|
||
'value' => $memberObj['name'],//会员名称
|
||
],
|
||
'phrase2' => [
|
||
'value' => $phrase2,//会员类型
|
||
],
|
||
'date3' => [
|
||
'value' => $memberObj['expire_time'],//到期时间
|
||
],
|
||
'thing4' => [
|
||
'value' => '为不影响使用,建议及时续费',//备注
|
||
]
|
||
];
|
||
$openid = trim(wdsxh_get_openid($memberObj['wechat_id'],'1'));
|
||
$result = Wxapp::subscribeMessage($applet_member_expiretime,$openid, '/pages/mine/index', $data);
|
||
|
||
$configObj = (new \app\admin\model\wdsxh\Config())->where('id',1)->find();
|
||
$phoneNumbers = $memberObj['mobile'];
|
||
if (!empty($configObj['alibaba_cloud_sign_name'])
|
||
&& !empty($configObj['alibaba_cloud_access_key_id'])
|
||
&& !empty($configObj['alibaba_cloud_access_key_secret'])
|
||
&& !empty($configObj['alibaba_member_soon_expiretime_notify'])
|
||
&& !empty($phoneNumbers)
|
||
) {
|
||
$member_name = preg_replace('/[^\x{4e00}-\x{9fa5}]/u', '',$memberObj['name']);
|
||
if (empty($member_name)) {
|
||
$member_name = '用户';
|
||
}
|
||
|
||
|
||
$userSendSmsRequestParam = [
|
||
"phoneNumbers" => $phoneNumbers,
|
||
"templateCode" => $configObj['alibaba_member_soon_expiretime_notify'],
|
||
"templateParam" => "{'member_name':'$member_name','time':'{$memberObj['expire_time']}'}",
|
||
];
|
||
|
||
AlibabaCloudSms::main($userSendSmsRequestParam);
|
||
}
|
||
|
||
|
||
$memberExpireMessageModel = new MemberExpireMessage();
|
||
$send_time = date('Y-m-d',time());
|
||
$message_data = array(
|
||
'wechat_id'=>$memberObj['wechat_id'],
|
||
'member_id'=>$member_id,
|
||
'send_time'=>$send_time,
|
||
'errcode'=>$result[0]['errcode'],
|
||
'errmsg'=>$result[0]['errcode'] == 0 ? '' : $result[0]['errmsg'],
|
||
);
|
||
$memberExpireMessageModel->save($message_data);
|
||
|
||
}
|
||
|
||
/**
|
||
* Desc 发送会员已过期消息提醒
|
||
* Create on 2025/8/13 14:55
|
||
* Create by wangyafang
|
||
*/
|
||
private function already_member_message($member_id,$memberModel) {
|
||
$memberObj = $memberModel->alias('member')
|
||
->where('id',$member_id)
|
||
->field('name,mobile,wechat_id,expire_time,type,member_level_name')
|
||
->find();
|
||
|
||
|
||
$configObj = (new \app\admin\model\wdsxh\Config())->where('id',1)->find();
|
||
$phoneNumbers = $memberObj['mobile'];
|
||
if (!empty($configObj['alibaba_cloud_sign_name'])
|
||
&& !empty($configObj['alibaba_cloud_access_key_id'])
|
||
&& !empty($configObj['alibaba_cloud_access_key_secret'])
|
||
&& !empty($configObj['alibaba_member_expiretime_notify'])
|
||
&& !empty($phoneNumbers)
|
||
) {
|
||
$member_name = preg_replace('/[^\x{4e00}-\x{9fa5}]/u', '',$memberObj['name']);
|
||
if (empty($member_name)) {
|
||
$member_name = '用户';
|
||
}
|
||
$member_level_name = preg_replace('/[^\x{4e00}-\x{9fa5}]/u', '',$memberObj['member_level_name']);
|
||
if (empty($member_level_name)) {
|
||
$member_level_name = '级别';
|
||
}
|
||
|
||
$userSendSmsRequestParam = [
|
||
"phoneNumbers" => $phoneNumbers,
|
||
"templateCode" => $configObj['alibaba_member_expiretime_notify'],
|
||
"templateParam" => "{'leavelname':'$member_name','leavel':'$member_level_name'}",
|
||
];
|
||
AlibabaCloudSms::main($userSendSmsRequestParam);
|
||
}
|
||
|
||
|
||
$memberAlreadyExpireMessageModel = new MemberAlreadyExpireMessage();
|
||
$send_time = date('Y-m-d',time());
|
||
$message_data = array(
|
||
'wechat_id'=>$memberObj['wechat_id'],
|
||
'member_id'=>$member_id,
|
||
'send_time'=>$send_time,
|
||
);
|
||
$memberAlreadyExpireMessageModel->save($message_data);
|
||
|
||
}
|
||
/**
|
||
* Desc 会员即将到期通知消息,通知30以内快过期的会员
|
||
* Create on 2024/4/11 16:49
|
||
* Create by wangyafang
|
||
*/
|
||
public function send_expire_message()
|
||
{
|
||
$start_time = date('Y-m-d');
|
||
$end_time = date('Y-m-d',(time() + 86400*30));
|
||
|
||
$memberModel = new \app\api\model\wdsxh\member\Member();
|
||
$member_id_array = $memberModel
|
||
->where('wechat_id', '<>', 0)
|
||
->where('expire_time', 'between', [$start_time, $end_time])
|
||
->column('id');
|
||
|
||
$memberExpireMessageModel = new MemberExpireMessage();
|
||
$send_member_id_array = $memberExpireMessageModel
|
||
->where('wechat_id', '<>', 0)
|
||
->where('send_time', '>=', date('Y-m-d', time() - 86400 * 30)) // 发送时间 >= 30天前
|
||
->where('send_time', '<=', date('Y-m-d')) // 发送时间 <= 今天
|
||
->column('member_id');
|
||
|
||
$diff_result = array_diff($member_id_array,$send_member_id_array);
|
||
if (!empty($diff_result)) {
|
||
$conf = (new \app\admin\model\wdsxh\Config())->where('id',1)->find();
|
||
foreach (array_slice($diff_result, 0, 1) as $v) {
|
||
$this->message($v, $conf['applet_member_expiretime'], $memberModel);
|
||
}
|
||
}
|
||
echo 'success:'.date('Y-m-d H:i:s',time());
|
||
}
|
||
|
||
/**
|
||
* Desc 发送已过期会员通知消息
|
||
* Create on 2025/8/13 下午2:39
|
||
* Create by wangyafang
|
||
*/
|
||
public function send_already_expire_message()
|
||
{
|
||
$start_time = date('Y-m-d');
|
||
|
||
$memberModel = new \app\api\model\wdsxh\member\Member();
|
||
$member_id_array = $memberModel
|
||
->where('wechat_id', '<>', 0)
|
||
->where('expire_time', '<', $start_time)
|
||
->column('id');
|
||
|
||
$memberAlreadyExpireMessageModel = new MemberAlreadyExpireMessage();
|
||
$send_member_id_array = $memberAlreadyExpireMessageModel
|
||
->where('wechat_id', '<>', 0)
|
||
->column('member_id');
|
||
|
||
|
||
|
||
$diff_result = array_diff($member_id_array,$send_member_id_array);
|
||
|
||
if (!empty($diff_result)) {
|
||
foreach (array_slice($diff_result, 0, 3) as $v) {
|
||
$this->already_member_message($v,$memberModel);
|
||
}
|
||
}
|
||
echo 'success:'.date('Y-m-d H:i:s',time());
|
||
}
|
||
|
||
/**
|
||
* Desc 会员单位列表
|
||
* Create on 2024/6/21 17:54
|
||
* Create by wangyafang
|
||
*/
|
||
public function unit()
|
||
{
|
||
if(!$this->request->isGet()) {
|
||
$this->error('请求类型错误');
|
||
}
|
||
$member_details = (new AuthConfig())->where('id',1)->value('member_details');
|
||
if ($member_details == 3) {
|
||
if ($this->auth->isLogin()) {
|
||
$current_date = date('Y-m-d',time());
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$memberObj = (new \app\api\model\wdsxh\member\Member())->where('wechat_id',$wechat_id)
|
||
->where('expire_time','>=',$current_date)
|
||
->find();
|
||
if (!$memberObj) {
|
||
$this->error('成为会员后可查看');
|
||
}
|
||
} else {
|
||
$this->error('请登录后操作',null,401);
|
||
}
|
||
}
|
||
|
||
$current_date = date('Y-m-d',time());
|
||
|
||
$param = $this->request->get();
|
||
|
||
//模糊查询
|
||
$page = isset($param['page']) ? $param['page'] : '';
|
||
$limit = isset($param['limit']) ? $param['limit'] : 10;
|
||
$table_name = config('database.prefix').'wdsxh_member.';
|
||
$where[$table_name.'status'] = array('eq','normal');
|
||
$where['expire_time'] = array('>=',$current_date);
|
||
$where['type'] = array('in',array('2','3'));
|
||
$keywords = isset($param['keywords']) && !empty($param['keywords']) ? $param['keywords'] : '';
|
||
|
||
$field = 'member.id,member.type,
|
||
member.company_name,member.company_logo,member.company_introduction,
|
||
member.organize_name,member.organize_logo,member.organize_introduction,
|
||
level.name level_name';
|
||
|
||
$order = "level.weigh asc,member.id asc";
|
||
|
||
$total = $this->model->where(function ($query) use($keywords){
|
||
if ($keywords) {
|
||
$table_name = config('database.prefix').'wdsxh_member.';
|
||
$query->where($table_name.'company_name','like','%'.$keywords.'%')
|
||
->whereor($table_name.'organize_name','like','%'.$keywords.'%');
|
||
}
|
||
})->where($where)->count();
|
||
|
||
$data = $this->model
|
||
->alias('member')
|
||
->where(function ($query) use($keywords){
|
||
if ($keywords) {
|
||
$table_name = config('database.prefix').'wdsxh_member.';
|
||
$query->where($table_name.'company_name','like','%'.$keywords.'%')
|
||
->whereor($table_name.'organize_name','like','%'.$keywords.'%');
|
||
}
|
||
})
|
||
->where($where)
|
||
->join('wdsxh_member_level level','level.id = member.member_level_id')
|
||
->field($field)->order($order)
|
||
->page($page)->limit($limit)
|
||
->select();
|
||
foreach ($data as &$v) {
|
||
$v['name'] = $v['type'] == '2' ? $v['company_name'] : $v['organize_name'];
|
||
$v['logo'] = $v['type'] == '2' ? $v['company_logo'] : $v['organize_logo'];
|
||
$introduction = $v['type'] == '2' ? $v['company_introduction'] : $v['organize_introduction'];
|
||
$v['introduction'] = strip_tags($introduction);
|
||
$v->hidden(['company_name','company_logo','company_introduction','organize_name','organize_logo','organize_introduction']);
|
||
|
||
}
|
||
$this->success('请求成功',['total' => $total,'data' => $data]);
|
||
}
|
||
|
||
/**
|
||
* Desc 会员地图
|
||
* Create on 2025/8/4 14:24
|
||
* Create by wangyafang
|
||
*/
|
||
public function member_map_list()
|
||
{
|
||
if(!$this->request->isGet()) {
|
||
$this->error('请求类型错误');
|
||
}
|
||
|
||
$where = array();
|
||
|
||
$param = $this->request->get();
|
||
|
||
if (!isset($param['type']) || empty($param['type'])) {
|
||
$this->error('参数错误');
|
||
}
|
||
|
||
$data = array();
|
||
$type = $param['type'];
|
||
try{
|
||
if (in_array($type,[1,2])) {
|
||
if (isset($param['member_level_id']) && !empty($param['member_level_id'])) {
|
||
$where['member_level_id'] = array('in',explode(',',$param['member_level_id']));
|
||
}
|
||
if (isset($param['industry_category_id']) && !empty($param['industry_category_id'])) {
|
||
$where['industry_category_id'] = array('in',explode(',',$param['industry_category_id']));
|
||
}
|
||
|
||
$current_date = date('Y-m-d',time());
|
||
|
||
|
||
$where['status'] = array('eq','normal');
|
||
$where['expire_time'] = array('>=',$current_date);
|
||
|
||
$data = $this->model
|
||
->where($where)
|
||
->field('id,name,avatar,longitude,latitude')
|
||
->order('join_time asc,id asc')
|
||
->select();
|
||
} else {
|
||
if (isset($param['institution_id']) && !empty($param['institution_id'])) {
|
||
$where['institution_id'] = array('in',explode(',',$param['institution_id']));
|
||
}
|
||
$prefix = config('database.prefix');
|
||
$data = (new \app\api\model\wdsxh\institution\Member())
|
||
->alias('institution_member')
|
||
->where($where)
|
||
->join($prefix.'wdsxh_member member','member.id = institution_member.member_id')
|
||
->field('member.id,member.name,member.avatar,member.longitude,member.latitude')
|
||
->order('member.join_time asc,member.id asc')
|
||
->select();
|
||
foreach ($data as &$v) {
|
||
$v->avatar = wdsxh_full_url($v->avatar);
|
||
}
|
||
}
|
||
} catch (\Exception $e) {
|
||
// 回滚事务
|
||
Db::rollback();
|
||
$this->error($e->getMessage());
|
||
}
|
||
|
||
|
||
|
||
|
||
$this->success('请求成功',$data);
|
||
}
|
||
|
||
/**
|
||
* Desc 首页diy
|
||
* Create on 2025/8/8 上午10:27
|
||
* Create by wangyafang
|
||
*/
|
||
public function diy_list()
|
||
{
|
||
if(!$this->request->isGet()) {
|
||
$this->error('请求类型错误');
|
||
}
|
||
$limit = $this->request->get('limit');
|
||
if (empty($limit)) {
|
||
$this->error('参数错误');
|
||
}
|
||
|
||
$current_date = date('Y-m-d',time());
|
||
|
||
$table_name = config('database.prefix').'wdsxh_member.';
|
||
$where[$table_name.'status'] = array('eq','normal');
|
||
$where['expire_time'] = array('>=',$current_date);
|
||
|
||
$field = 'member.id,member.name,member.avatar,
|
||
member.member_level_id,level.name level_name';
|
||
|
||
//经纬度
|
||
$order = "level.weigh asc,member.join_time asc,member.createtime asc";
|
||
|
||
$data = $this->model
|
||
->alias('member')
|
||
->where($where)
|
||
->join('wdsxh_member_level level','level.id = member.member_level_id')
|
||
->field($field)->order($order)
|
||
->page(1)->limit($limit)
|
||
->select();
|
||
foreach ($data as &$v) {
|
||
|
||
$v->hidden(['member_level_id']);
|
||
}
|
||
$this->success('请求成功',$data);
|
||
}
|
||
|
||
/**
|
||
* Desc 免费会费缴纳
|
||
* Create on 2024/3/15 14:05
|
||
* Create by wangyafang
|
||
*/
|
||
public function freeMembershipPay() {
|
||
if(!$this->request->isPost()) {
|
||
$this->error('请求类型错误');
|
||
}
|
||
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
|
||
$applyObj = $memberApplyObj= (new \app\api\model\wdsxh\member\MemberApply())->where('wechat_id', $wechat_id)->find();
|
||
if (!$memberApplyObj) {
|
||
$this->error('入会信息不存在');
|
||
}
|
||
if(!in_array($memberApplyObj['child_state'],['2','3','5','6'])) {
|
||
$this->error('入会信息状态错误');
|
||
}
|
||
$current_date = date('Y-m-d',time());
|
||
$memberExpireObj = (new \app\api\model\wdsxh\member\Member())
|
||
->where('wechat_id',$wechat_id)
|
||
->where('expire_time','<',$current_date)
|
||
->find();
|
||
if (!$memberExpireObj) {
|
||
$this->error('会员过期信息不存在');
|
||
}
|
||
|
||
$channel = $this->request->header('channel');
|
||
|
||
$applyObj->state = '1';
|
||
$applyObj->child_state = '1';
|
||
$applyObj->pay_method = '1';
|
||
$applyObj->reject = '';
|
||
Db::startTrans();
|
||
try{
|
||
$applyObj->save();
|
||
|
||
// 提交事务
|
||
Db::commit();
|
||
} catch (\Exception $e) {
|
||
// 回滚事务
|
||
Db::rollback();
|
||
$this->error($e->getMessage());
|
||
}
|
||
|
||
$conf = $this->configObj;
|
||
if ($channel == 1) {
|
||
//发送入会申请通知
|
||
try {
|
||
$data = [
|
||
'thing2' => [
|
||
'value' => $memberApplyObj['name'],
|
||
],
|
||
'phone_number4' => [
|
||
'value' => $memberApplyObj['mobile'],
|
||
],
|
||
'phrase1' => [
|
||
'value' => '待审核',
|
||
],
|
||
];
|
||
$openids = (new UserWechat())->where('set_admin', 1)->column('applet_openid');
|
||
if ($openids) {
|
||
foreach ($openids as $openid) {
|
||
$result = Wxapp::subscribeMessage($conf['applet_initiation_admin'], trim($openid), '/pagesAdmin/examine/index', $data);
|
||
if ($result && $result[0]['errcode'] == 0) {
|
||
$wechat_id = (new UserWechat())
|
||
->where('applet_openid', $openid)
|
||
->value('id');
|
||
$subscribeObj = Db::name('wdsxh_member_subscribe')->where('wechat_id', $wechat_id)->where('type', 1)->find();
|
||
if ($subscribeObj && $subscribeObj['count'] > 0) {
|
||
Db::name('wdsxh_member_subscribe')->where('wechat_id', $wechat_id)->where('type', 1)->setDec('count');
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} catch (Exception $e) {
|
||
$this->error($e->getMessage());
|
||
}
|
||
}
|
||
|
||
$this->success('请求成功');
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|
||
|