$value) { if (!isset($arr[$value]) || empty($arr[$value])) { return backarr(0, "参数缺少"); } } $m_u = new UserModel(); $phone = $arr['phone']; $passwd = $phone . $arr['passwd']; $where = ['phone' => $phone]; $uinfo = $m_u->getInfo($where); if (empty($uinfo)) { //注册 $arr['passwd'] = $this->createpasswd($passwd); $uid = $m_u->insertData($arr); if (empty($uid)) { return backarr(0, "注册失败"); } } else { //登录 $uid = $uinfo['id']; $checked = $this->checkpasswd($passwd, $uinfo['passwd']); if (!$checked) { return backarr(0, "密码错误"); } } $result = $this->changetoken($uid, $phone); if (empty($result['status'])) { return backarr(0, $result['msg']); } $field = ['id', 'phone', 'token']; $where = ['id' => $uid]; $uinfo = $m_u->getInfo($where, $field); return backarr($uinfo, "注册成功", $uinfo); } public function login($arr) { $fillfields = ['phone', 'passwd']; foreach ($fillfields as $key => $value) { if (!isset($arr[$value]) || empty($arr[$value])) { return backarr(0, "参数缺少"); } } $m_u = new UserModel(); $phone = $arr['phone']; $passwd = $phone . $arr['passwd']; $where = ['phone' => $phone]; $uinfo = $m_u->getInfo($where); if (empty($uinfo)) { return backarr(0, "无用户信息"); } $uid = $uinfo['id']; $checked = $this->checkpasswd($passwd, $uinfo['passwd']); if (!$checked) { return backarr(0, "密码错误"); } $result = $this->changetoken($uid, $phone); if (empty($result['status'])) { return backarr(0, $result['msg']); } $field = ['id', 'phone', 'token']; $where = ['id' => $uid]; $uinfo = $m_u->getInfo($where, $field); return backarr($uinfo, "登录成功", $uinfo); } private function checkpasswd($pwd, $hash) { return password_verify($pwd, $hash); } private function createpasswd($pwd) { $newpasswd = password_hash($pwd, PASSWORD_DEFAULT); return $newpasswd; } private function changetoken($uid, $str) { $token = $this->gettoken($str); $m_u = new UserModel(); $updateData = ['token' => $token]; $where = ['id' => $uid]; $row = $m_u->updateinfo($where, $updateData); if (empty($row)) { return backarr(0, "修改token失败"); } return backarr(1, "修改token成功"); } private function gettoken($str) { $str = md5(uniqid(md5(microtime(true)), true)); $token = sha1($str . $str); return $token; } /** * 编辑地址 * * @return void * @author wj * @date 2022-12-01 */ public function editaddress($arr) { $fillfields = ['receiver_address', 'address', 'receiver_name', 'receiver_telno', 'lat', 'long', 'user_id']; foreach ($fillfields as $key => $value) { if (!isset($arr[$value]) || empty($arr[$value])) { return backarr(0, "参数缺少"); } } $isadd = true; $m_ua = new UserAddressModel(); if (isset($arr['id'])) { if (isset($arr['user_id'])) { //user_id 不可更改 unset($arr['user_id']); } $id = $arr['id']; $uawhere = ['id' => $id]; $uainfo = $m_ua->getInfo($uawhere); if (!empty($uainfo)) { $isadd = false; //修改 $updateData = []; foreach ($arr as $key => $value) { if (isset($uainfo[$key]) && $uainfo[$key] != $value) { $updateData[$key] = $value; } } $row = $m_ua->updateinfo(['id' => $id], $updateData); if (empty($row)) { return backarr(0, "地址修改失败"); } } $uaid = $uainfo['id']; } if ($isadd) { //添加 $uaid = $m_ua->insertData($arr); if (empty($uaid)) { return backarr(0, "地址添加失败"); } } return backarr(1, "地址编辑成功", ['uaid' => $uaid]); } /** * 修改默认地址 * * @return void * @author wj * @date 2022-12-01 */ public function updateaddressdefault($arr) { $fillfields = ['id', 'user_id']; foreach ($fillfields as $key => $value) { if (!isset($arr[$value]) || empty($arr[$value])) { return backarr(0, "参数缺少"); } } $id = $arr['id']; $user_id = $arr['user_id']; $updateData = ['is_default' => 0]; $where = ['user_id' => $user_id]; $m_ua = new UserAddressModel(); $m_ua->updateinfo($where, $updateData); $where = ['id' => $id, 'user_id' => $user_id]; $updateData = ['is_default' => 1]; $row = $m_ua->updateinfo($where, $updateData); if (empty($row)) { return backarr(0, "默认地址修改失败"); } return backarr(1, "默认地址修改成功", ['uaid' => $id]); } /** * 删除地址 * * @return void * @author wj * @date 2022-12-01 */ public function deleteaddress($arr) { $fillfields = ['id', 'user_id']; foreach ($fillfields as $key => $value) { if (!isset($arr[$value]) || empty($arr[$value])) { return backarr(0, "参数缺少"); } } $id = $arr['id']; $user_id = $arr['user_id']; $m_ua = new UserAddressModel(); $where = ['id' => $id, 'user_id' => $user_id]; $updateData = ['is_active' => 0]; $row = $m_ua->updateinfo($where, $updateData); if (empty($row)) { return backarr(0, "地址删除失败"); } return backarr(1, "地址删除成功", ['uaid' => $id]); } /** * 获取全部地址列表 * * @return void * @author wj * @date 2022-12-01 */ public function getaddresslist($arr) { $userid = isset($arr['userid']) && is_numeric($arr['userid']) && !empty($arr['userid']) && $arr['userid'] > 0 ? $arr['userid'] : 0; $page = isset($arr['page']) && is_numeric($arr['page']) && !empty($arr['page']) && $arr['page'] > 0 ? $arr['page'] : 1; $size = isset($arr['size']) && is_numeric($arr['size']) && !empty($arr['size']) && $arr['size'] > 0 ? $arr['size'] : 10; $where = []; if (!empty($userid)) { $where['userid'] = $userid; } if(isset($arr['is_active'])){ $where['is_active'] = $arr['is_active']; } $m_ua = new UserAddressModel(); $count = $m_ua->getList($where, 'count'); if ($count <= 0) { return backarr(0, "无数据"); } $totalpage = ceil($count / $size); $page > $totalpage && $page = $totalpage; $list = $m_ua->getList($where, "*", $page, $size, 'is_default,id desc'); $data = [ 'page' => $page, 'size' => $size, 'count' => $count, 'list' => $list, ]; return backarr(1, "查询成功", $data); } }