updatanickname();
$Membermob = new Member;
$memberinfo = $Membermob->getUserByWechat();
$memberinfo['is_agent'] = (int) Agent::is_agent($memberinfo['id']);
$user_id = $memberinfo['id'];
if ($memberinfo['primaryuid']) {
$user_id = $memberinfo['primaryuid'];
}
$user = Users::getuserbyuid($user_id);
if (!empty($user)) {
$memberinfo['is_user'] = 1;
} else {
$memberinfo['is_user'] = 0;
}
if (!empty($user['sid'])) {
$memberinfo['is_storeadmin'] = 1;
} else {
$memberinfo['is_storeadmin'] = 0;
}
$Agent = Agent::where(['weid' => weid(), 'uid' => $user_id])->find();
if (!empty($Agent)) {
$memberinfo['agent'] = $Agent->toArray();
} else {
$memberinfo['agent']['income'] = 0;
}
$Technical = Technical::where(['weid' => weid(), 'uid' => $user_id])->find();
if (!empty($Technical)) {
$Technical = $Technical->toArray();
}
if (!empty($Technical)) {
$memberinfo['is_technical'] = $Technical['status'];
} else {
$memberinfo['is_technical'] = 0;
}
$memberinfo['coupon'] = (int) CouponReceive::where(['weid' => weid(), 'uid' => $memberinfo['id']])->count();
$memberinfo['sex'] = sex($memberinfo['sex']);
$memberinfo['is_submitaudit'] = \app\model\Uploadminiprogram::getaudit(input('get.v', '', 'serach_in'));
if ($memberConfig['is_wxnickname'] == 1 && $memberinfo['nickname'] == '用户_' . $memberinfo['id']) {
$memberinfo['is_online'] = 0;
if (!empty($memberinfo['userpic'])) {
$memberinfo['is_online'] = 1;
}
if (!empty($memberinfo['telephone'])) {
$memberinfo['is_online'] = 1;
}
} else {
$memberinfo['is_online'] = 1;
}
$data = $memberinfo;
return $this->json(['data' => $data]);
}
public function updatanickname()
{
if (!empty($this->userInfo['upnickname'])) {
$postdata['nickname'] = removeEmoji($this->userInfo['upnickname']);
$this->userInfo['upnickname'] = "";
}
if (!empty($this->userInfo['upavatar'])) {
$postdata['userpic'] = $this->userInfo['upavatar'];
$this->userInfo['upavatar'] = "";
}
if (!empty($postdata['nickname'])) {
Member::where('id', UID())->update($postdata);
$this->setAppToken($this->userInfo, $this->getAppToken());
}
}
public function getkefuurl()
{
$orderid = input('get.orderid', '', 'serach_in');
$uuid = OrderStaff::getuuid($orderid);
$Membermob = new Member;
$memberinfo = $Membermob->getUserByWechat();
$data['url'] = gethost() . scriptPath() . TP_APIURL . '/h5-im?toid=' . Openid::getMpOpenidbyuuid($uuid) . '&uid=' . $memberinfo['id'] . '&xmtoken=' . $this->getAppToken();
return $this->json(['data' => $data]);
}
public function getsetmpurl()
{
$Membermob = new Member;
$memberinfo = $Membermob->getUserByWechat();
$data['url'] = gethttpshost() . scriptPath() . TP_APIURL . '?s=/index/member/setmpopenid&xmtoken=' . $this->getAppToken() . '&uid=' . $memberinfo['id'];
return $this->json(['data' => $data]);
}
public function getmpopenid()
{
$Membermob = new Member;
$memberinfo = $Membermob->getUserByWechat();
$Openidmob = Openid::where(['weid' => weid(), 'ptype' => 'mp', 'uid' => $memberinfo['id']])->find();
if ($Openidmob) {
return $this->json(['data' => $Openidmob->openid]);
}
}
public function setseatingopenid()
{
$openid = input('get.openid', '', 'serach_in');
$backurl = gethttpshost() . $_SERVER["SCRIPT_NAME"] . '?s=/index/member/setseatingopenid&xmtoken=' . $this->getAppToken() . '&seaid=' . input('get.seaid', '', 'serach_in') . '&i=' . input('get.i', '', 'serach_in');
if (empty($openid)) {
$url = gethttpshost() . $_SERVER["SCRIPT_NAME"] . '?s=/index/wechatmp/getopenid&xmtoken=' . $this->getAppToken() . '&i=' . input('get.i', '', 'serach_in') . '&backurl=' . urlencode($backurl);
return redirect($url);
} else {
$seaid = input('get.seaid', '', 'serach_in');
Seating::where('id', $seaid)->update(['chatid' => $openid]);
}
echo <<< EOT
绑定公众号信息提醒
EOT;
}
public function setmpopenid()
{
$weid = weid();
$openid = input('get.openid', '', 'serach_in');
$backurl = gethttpshost() . $_SERVER["SCRIPT_NAME"] . '?s=/index/member/setmpopenid&xmtoken=' . $this->getAppToken() . '&uid=' . input('get.uid', '', 'serach_in');
if (empty($openid)) {
$url = gethttpshost() . $_SERVER["SCRIPT_NAME"] . '?s=/index/wechatmp/getopenid&xmtoken=' . $this->getAppToken() . '&uid=' . input('get.uid', '', 'serach_in') . '&backurl=' . urlencode($backurl);
return redirect($url);
} else {
$uid = input('get.uid', '', 'serach_in');
Openid::addupdate([
'openid' => $openid,
'ptype' => 'mp',
'uid' => $uid
]);
echo <<< EOT
绑定公众号信息提醒
EOT;
}
}
public function openid()
{
$code = input('get.code', '', 'serach_in');
$from = input('get.from', '', 'serach_in');
if ($code && $from == 'wxapp') {
$app = \app\samos\wechat\MiniProgram::makemini();
$data = $app->auth->session($code);
} else {
$data = $this->userInfo;
}
$data['ptype'] = $from;
$data['sessionid'] = md5(uniqid());
$data['weid'] = weid();
$this->setAppToken($data, $data['sessionid']);
return $this->json(['data' => $data]);
}
public function check()
{
$from = input('get.from', '', 'serach_in');
$errno = 0;
if ($from == 'wxapp' && empty($this->userInfo['openid'])) {
$errno = 1;
}
if ($from == 'mp' && empty($this->userInfo['openid'])) {
$errno = 1;
}
return $this->json(['errno' => $errno, 'data' => $this->userInfo]);
}
public function userinfo()
{
return $this->json(['data' => $this->userInfo]);
}
public function getuid()
{
$data['uid'] = UID();
return $this->json(['data' => $data]);
}
//2023-8-9已废弃
public function getphonenumber()
{
$code = input('post.code', '', 'serach_in');
$phonedata = \app\samos\wechat\MiniProgram::getphonenumber($code);
$data = Member::bindphonenumber($phonedata->phoneNumber);
return $this->json(['data' => $data]);
}
public function bindpid()
{
$pid = input('post.pid', '', 'serach_in');
if (empty($pid)) {
$pid = input('get.pid', '', 'serach_in');
}
if (!empty($pid) && !empty(UID())) {
$Membermob = new Member;
$memberinfo = $Membermob->getUserByWechat();
if (empty($memberinfo['pid'])) {
if ($memberinfo['id'] != $pid) {
Member::where('id', UID())->update(['pid' => $pid]);
}
}
}
return $this->json(['data' => $memberinfo]);
}
public function team()
{
$data['first'] = Member::field('id,nickname,regdate,userpic')
->where(['weid' => weid(), 'pid' => UID()])
->select()
->toArray();
if (!empty($data['first'])) {
foreach ($data['first'] as &$vo) {
$vo['regdate'] = time_format($vo['regdate']);
if (empty($pid)) {
$pid = $vo['id'];
} else {
$pid = $pid . ',' . $vo['id'];
}
}
$pidin = explode(',', $pid);
$data['second'] = Member::field('id,nickname,regdate,userpic')
->where(['weid' => weid(), 'pid' => $pidin])
->select()
->toArray();
foreach ($data['second'] as &$vo) {
$vo['regdate'] = time_format($vo['regdate']);
}
}
return $this->json(['data' => $data]);
}
public function agent()
{
$user = Users::getuserbyuid(PUID());
$data = Agent::field('id,uid,name,tel')
->where(['weid' => weid(), 'uid' => $user['id']])
->select()
->toArray();
return $this->json(['data' => $data]);
}
public function update()
{
$uid = UID();
$postdata = input('post.');
if (!empty($postdata['userpic'])) {
$data['userpic'] = $postdata['userpic'];
}
if (!empty($postdata['nickname'])) {
$data['nickname'] = removeEmoji($postdata['nickname']);
}
if (!empty($postdata['sex'])) {
if ($postdata['sex'] == '男') {
$data['sex'] = 1;
} elseif ($postdata['sex'] == '女') {
$data['sex'] = 2;
} else {
$data['sex'] = 0;
}
}
$data['id'] = $uid;
Member::update($data);
return $this->json(['data' => $data]);
}
public function login()
{
$Configdata = Config::getconfig('member');
$Membermob = new Member;
$memberinfo = $Membermob->getUserByWechat();
if ($Configdata['index_is_login'] == 1 && !\app\model\Uploadminiprogram::getaudit(input('get.v', '', 'serach_in'))) {
if (!empty($memberinfo['telephone'])) {
if (empty($memberinfo['status'])) {
$data['errno'] = 20001;
return $this->json(['msg' => '账号审核中', 'data' => $data]);
}
} else {
$data['errno'] = 10001;
return $this->json(['msg' => '您没还完成注册', 'data' => $data]);
}
}
$data['uid'] = $memberinfo['id'];
//新人券
if (!empty($data['uid'])) {
$Coupondata = Coupon::where(['weid' => weid(), 'ptype' => 3])->select()->toArray();
foreach ($Coupondata as $cvo) {
$CouponReceive = CouponReceive::where(['uid' => $data['uid'], 'ptype' => 3, 'coupon_id' => $cvo['id']])->find();
if (empty($CouponReceive)) {
$cvo['coupon_id'] = $cvo['id'];
$cvo['uid'] = UID();
unset($cvo['id']);
unset($cvo['create_time']);
unset($cvo['update_time']);
$r = CouponReceive::create($cvo);
if ($r) {
$receive_num = $cvo['receive_num'] + 1;
Coupon::update(['id' => $cvo['coupon_id'], 'receive_num' => $receive_num]);
}
}
}
}
$data['errno'] = 0;
return $this->json(['data' => $data]);
}
public function checktelephone()
{
$memberConfig = Config::getconfig('member');
$Membermob = new Member;
$memberinfo = $Membermob->getUserByWechat();
if ($memberConfig['is_phone'] == 1 && empty($memberinfo['telephone'])) {
$memberinfo['is_gettelephone'] = 0;
$memberinfo['is_online'] = 0; //2023-9-9已废弃
} else {
$memberinfo['is_gettelephone'] = 1;
$memberinfo['is_online'] = 1; //2023-9-9已废弃
}
$data = $memberinfo;
return $this->json(['data' => $data]);
}
}