全部
常见问题
产品动态
精选推荐

[多店2.3.1、pro2.3.0]移动端用户信息保存无效(后台设置增加的信息)

管理 管理 编辑 删除

后台用户设置->增加的补充信息,移动端、会员卡激活添加信息保存失效问题

修复方法如下:

1、文件:app/controller/api/v1/user/UserController.php

方法:edit,修改99行(如有偏差,请对比代码覆盖)如下:

$this->services->saveExtendForm($uid, $extend_info, ['avatar' => $avatar, 'nickname' => $nickname], true);

2、文件:app/services/user/level/UserLevelServices.php

方法:userActivatelevel,修改576行(如有偏差,请对比代码覆盖),如下:

$extend_info = $userServices->handelExtendInfo($data, true) ?: [];

3、文件:app/services/user/UserServices.php

替换方法:

saveExtendForm
	public function saveExtendForm(int $uid, array $extend_info, array $update = [], bool $is_all = false)
	{
		$userInfo = $this->getUserInfo($uid);
		if (!$userInfo) {
			throw new ValidateException('用户不存在');
		}
		$extend_info = $this->handelExtendInfo($extend_info, $is_all) ?: [];
		if ($extend_info) {
			$default = $this->defaultExtendInfo;
			$params = array_column($default, 'param');
			$sex = $this->sex;
			$update['extend_info'] = $extend_info;
			foreach ($extend_info as $info) {
				if (isset($info['param']) && in_array($info['param'], $params) && isset($info['value']) && $info['value']) {
					if ($info['param'] == 'sex') {
						$update['sex'] = $sex[$info['value']] ?? 0;
					} elseif ($info['param'] == 'birthday') {
						$update['birthday'] = strtotime($info['value']);
					} else {
						$update[$info['param']] = $info['value'];
					}
				}
			}
		}
		if ($update) $this->dao->update($uid, $update);
		return true;
	}

4、文件:app/services/user/UserServices.php

替换方法:

handelExtendInfo
public function handelExtendInfo(array $inputExtendInfo, bool $is_all = false)
    {
        $extendInfo = SystemConfigService::get('user_extend_info', []);
        if ($inputExtendInfo && $extendInfo) {
			if ($is_all) {//移动端全数据 处理
				$inputExtendInfo = array_combine(array_column($inputExtendInfo, 'info'), $inputExtendInfo);
			} else {//后台key=>value类型数据
				$inputExtendInfo = $inputExtendInfo[0] ?? $inputExtendInfo;
			}
            foreach ($extendInfo as &$item) {
				$value = $is_all ? ($inputExtendInfo[$item['info'] ?? '']['value'] ?? '') : ($inputExtendInfo[$item['info'] ?? ''] ?? '');
				if ($value) {
					//验证手机号
					if ($item['format'] == 'phone') {
						if (!check_phone($value)) throw new AdminException($item['tip'] ?? '请填写正确的手机号');
					}
					//验证邮箱
					if ($item['format'] == 'mail') {
						if (!check_mail($inputExtendInfo[$item['info']])) throw new AdminException($item['tip'] ?? '请填写正确的邮箱');
					}
					//验证身份证号
					if ($item['format'] == 'id') {
						if (!check_card($inputExtendInfo[$item['info']])) throw new AdminException($item['tip'] ?? '请填写正确的身份证号码');
					}
				}
                $item['value'] = $value;
            }
        }
        return $extendInfo;
    }


神经蛙 最后编辑于2022-11-21 11:03:28

快捷回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
回复从新到旧

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest==1? '取消推荐': '推荐'}}
{{item.floor}}#
{{item.user_info.title}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

作者 管理员 企业

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}   {{itemc.ip_address}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
回复
回复
1820
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

神经蛙 管理员
这个人很懒,什么都没留下

回答

5107

发布

106

经验

47864

快速安全登录

使用微信扫码登录
{{item.label}} {{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
加精
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 开源下载 CRMEB官方论坛 帮助文档
返回顶部 返回顶部
CRMEB客服