123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- <?php
- namespace app\api\logic;
- use app\common\model\UserAddressModel;
- use app\common\model\UserModel;
- class UserLogic
- {
- public function register($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)) {
- //注册
- $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);
- }
- }
|