| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035 | <?phpnamespace app\admin\server\user;use app\admin\model\Package;use app\admin\model\UserAuth;use app\admin\model\UserBasicHealthData;use app\admin\model\UserBasicHealthDataLog;use app\admin\model\UserDoctorsLog;use app\admin\model\UserMedicalExaminationReport;use app\admin\model\User;use app\admin\model\IntelligenceLog;use app\admin\model\IntelligenceEquipment;use app\admin\model\UserPackageLog;use app\admin\server\package\PackageServer;use app\admin\model\UserRelatives;use app\admin\model\UserProperty;/** * 会员服务层 * Class UsersServer * @package app\admin\server\user */class UsersServer{    /**     * Notes:会员信息     * @param int $user_id     * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model|object|null     * User: yym     * Date: 2022/7/26     */    public static function getUserInfo(int $user_id)    {        $info =  User::getUserInfo($user_id);        if(empty($info))        {            throw new \Exception('查无此会员信息');        }        $info['user_category']    = User::USER_CATEGORY[$info['user_type']] ?? '';        $info['user_create_time'] = date("Y-m-d H:i:s", $info['user_create_time']);        $info['member_is_owner']  = User::USER_OWNER[$info['user_is_owner']] ?? '';        $auth_status = '';        $auth_status_msg = '';        if(empty($info['member_auth_list']))        {            $auth_status = '未认证';            $auth_status_msg = '实名认证';        }elseif((count($info['member_auth_list']) == 1 || count($info['member_auth_list']) == 2) && !empty($info['member_auth'])){            $auth_status = UserAuth::MEMBER_AUTH_STATUS[$info['member_auth']['auth_status']];            $auth_status_msg = '会员升级';        }elseif((count($info['member_auth_list']) == 1 || count($info['member_auth_list']) == 2) && empty($info['member_auth'])){            $auth_status = '认证通过';            $auth_status_msg = '会员升级';        }        $info['auth_status']     = $auth_status;        $info['auth_status_msg'] = $auth_status_msg;        if(!empty($info['member_auth_list']))        {            foreach ($info['member_auth_list'] as $k => $item)            {                if($item['auth_type'] == '0')                {                    $info['member_auth_list'][$k]['auth_content'] = json_decode($item['auth_content'], true);                }            }        }        unset($info['member_certinfo']);        return $info;    }    /**     * Notes:会员列表     * @param string $keywords     * @param int $category     * @param int $status     * @param int $page     * @param int $limit     * @return array     * User: yym     * Date: 2022/8/4     */    public static function getUserList(string $keywords, int $category, int $status , int $pid, int $page, int $limit, string $user_create_time)    {        [$list, $count] = User::getUserList($keywords, $category, $status, $pid, $user_create_time, $page, $limit);        if(!empty($list))        {            foreach ($list as &$row)            {                $row['user_category']   = User::USER_CATEGORY[$row['user_type']] ?? '';                $row['user_create_time']= date("Y-m-d H:i:s", $row['user_create_time']);                $row['member_is_owner'] = User::USER_OWNER[$row['user_is_owner']] ?? '';                $row['sonnum'] = User::where('user_spread_uid',$row['user_id'])->count();                $row['rejectMsg'] = '';                $auth_status = '';                $auth_status_msg = '';                $auth_status_type = '';                if(empty($row['member_auth_list']))                {                    $auth_status = '未认证';                    $auth_status_msg = '实名认证';                    $auth_status_type = '未认证';                }elseif (count($row['member_auth_list']) == 1 && empty($row['member_auth'])){                    $auth_status = '已实名认证';                    $auth_status_msg = '实名认证';                    $auth_status_type = '未购买';                    $row['rejectMsg'] = $row['member_auth_list'][0]['auth_content'];                }elseif (count($row['member_auth_list']) == 1 && !empty($row['member_auth'])){                    $auth_status = '已提交认证';                    $auth_status_msg = '实名认证';                    $auth_status_type = UserAuth::MEMBER_AUTH_STATUS[$row['member_auth']['auth_status']];                    $row['rejectMsg'] = $row['member_auth_list'][0]['auth_content'];                }elseif (count($row['member_auth_list']) == 2 && empty($row['member_auth'])){                    $auth_status = '已升级认证';                    $auth_status_msg = '会员升级';                    $auth_status_type = '已购买';                    $row['rejectMsg'] = $row['member_auth_list'][1]['auth_content'];                }elseif (count($row['member_auth_list']) == 2 && !empty($row['member_auth'])){                    $auth_status = '已提交认证';                    $auth_status_msg = '会员升级';                    $auth_status_type = '已购买';                    $row['rejectMsg'] = $row['member_auth_list'][1]['auth_content'];                }                $row['auth_status']      = $auth_status;                $row['auth_status_msg']  = $auth_status_msg;                $row['auth_status_type'] = $auth_status_type;                if(!empty($row['member_auth_list']))                {                    foreach ($row['member_auth_list'] as $k => $item)                    {                        if($item['auth_type'] == '0')                        {                            $row['member_auth_list'][$k]['auth_content'] = json_decode($item['auth_content'], true);                        }                    }                }                unset($row['member_certinfo']);            }            unset($row);        }        return compact('list', 'count');    }    /**     * Notes:营销活动排行列表     * @param int $page     * @param int $limit     * @return array     * User: ycp     * Date: 2023/3/1     */    public static function getRankList($act,$s_time,$e_time)    {        $list = User::getRankList($act,$s_time,$e_time);        return $list;    }    /**     * Notes:营销活动拉新列表     * @param int $page     * @param int $limit     * @return array     * User: ycp     * Date: 2023/3/1     */    public static function getActLog($act,$page,$limit)    {        [$list, $count] = User::getActLog($act,$page,$limit);        if(!empty($list))        {            foreach ($list as &$row)            {                $row['user_create_time']= date("Y-m-d H:i:s", $row['user_create_time']);            }            unset($row);        }        return compact('list', 'count');    }    /**     * Notes: 添加设备     * @return int     * User: ZQ     * Date: 2022/11/14     */    public static function userInsert($user_account,$user_login_pwd,$user_again_pwd,$user_nickname,$user_headimgurl,$user_sex,$user_birthday,$user_age,$user_register_address,$user_phone,$user_status,$user_real_name,$user_card_id,$user_certinfo,$user_is_owner,$user_type,$user_spread_uid,$user_source,$admin_id,$user_register_type)    {        User::affairBegin();        $data = [];        //判断账号是否唯一        $account = User::getUserAccount($user_account);        try {                        /*if (!empty($account)){                throw new \Exception($user_account.'会员账号已存在!');            }            //判断身份证是否唯一            if (!empty($user_card_id)){                $card = User::getUserCard($user_card_id);                if (!empty($card)){                    throw new \Exception('会员身份证已存在!');                }            }            $data['user_account'] = $user_account;            if ($user_login_pwd == $user_again_pwd){                $data['user_login_pwd'] = md5(sha1($user_login_pwd));            }else{                throw new \Exception('两次密码不一致!');            }*/            if (!$account){                $data['user_account'] = $user_account;                $data['user_nickname'] = $user_nickname;                $data['user_headimgurl'] = $user_headimgurl;                $data['user_sex'] = $user_sex;                $data['user_birthday'] = $user_birthday;                $data['user_age'] = $user_age;                $data['user_register_address'] = $user_register_address;                $data['user_phone'] = $user_phone;                $data['user_package_status'] = 0;                $data['user_package_id'] = 0;                $data['user_status'] = $user_status;                $data['user_real_name'] = $user_real_name;                $data['user_card_id'] = $user_card_id;                $data['user_certinfo'] = $user_certinfo ? implode(',',$user_certinfo) : '';                $data['user_is_owner'] = $user_is_owner;                $data['user_type'] = $user_type;                $data['user_register_type'] = $user_register_type;                if ($user_type == 2){                    throw new \Exception('会员身份选择错误!');                }                $data['user_spread_uid'] = $user_spread_uid;                $data['user_spread_time'] = $user_spread_uid ? time() : '';                $data['user_source'] = $user_source;                $data['user_create_time'] = time();                $result =  User::insertGetId($data);                if ($user_type == 1){                    $auth = [];                    $auth['auth_user_id'] = $result;                    $auth['auth_type'] = 0;                    $auth['auth_content'] = json_encode(['card_front'=>$user_certinfo[0],'card_side'=>$user_certinfo[1]]);                    $auth['auth_status'] = 1;                    $auth['auth_status_info'] = '添加新会员实名认证审核';                    $auth['auth_admin_id'] = $admin_id;                    $auth['auth_examine_time'] = time();                    $auth['auth_create_time'] = time();                    $mation = UserAuth::insertGetId($auth);                    if (empty($mation)){                        User::affairRollback();                        throw new \Exception('添加失败!');                    }                }                if (!empty($result)){                    $msg = '管理员:' . $admin_id . '在:' . date("Y-m-d H:i:s", time()) . '添加会员-编号: ' . $result;                    plog('user-equipment-create', '公共-会员-添加会员', $msg);                    User::affairCommit();                    return $result;                }                throw new \Exception('添加失败!');            }else{                User::affairCommit();                return true;            }                    }catch (\Exception $exception){            User::affairRollback();            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:会员审核操作     * @param int $admin_id     * @param int $user_id     * @param string $status     * @param string $content     * @param string $category     * @return bool     * @throws \Exception     * User: yym     * Date: 2022/8/4     */    public static function authUser(int $admin_id, int $user_id, string $status, string $content, string $category)    {        User::affairBegin();        try {            if($status == UserAuth::RETURN && empty($content))            {                throw new \Exception('审核驳回,驳回理由不能为空!');            }            $update = array(                'auth_status'       => $status,                'auth_status_info'  => $content,                'auth_admin_id'     => $admin_id,                'auth_examine_time' => time()            );            $result1 = true;            $auth_type = 0;            //审核通过  更新会员等级            if($status == UserAuth::DONE && $category == '实名认证')            {                $auth_type = 0;                $result1 = User::updateMember($user_id, ['user_type' => User::ORDINARY, 'user_real_status' => User::REAL_YES]);                events('createUserNews', ['log_type' => 0, 'log_uid' => $user_id, 'log_content' => '您的'.$category.'审核成功了!']);            }            //审核通过  更新会员等级            if($status == UserAuth::DONE && $category == '会员升级')            {                $auth_type = 1;                $result1 = User::updateMember($user_id, ['user_type' => User::FORMAL, 'user_package_status' => User::PACKAGE_YES]);                events('createUserNews', ['log_type' => 0, 'log_uid' => $user_id, 'log_content' => '您的'.$category.'审核成功了!']);            }            $result = UserAuth::updateAuth($user_id, $auth_type, $update);            plog('user.auth', '会员-身份-审核', '管理员审核会员:' . $user_id . '审核意见内容:' . $content);            if($result && $result1)            {                User::affairCommit();                return true;            }            throw new \Exception('审核失败!');        }catch (\Exception $exception){            User::affairRollback();            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:获取会员体检信息     * @param int $user_id     * @return array     * @throws \Exception     * User: yym     * Date: 2022/9/21     */    public static function getUserReport(int $user_id)    {        try {            $info = User::getMemberInfo($user_id);            if(empty($info))            {                throw new \Exception('会员信息不存在');            }            if(empty($info['user_card_id']))            {                throw new \Exception('暂无会员身份证信息');            }            //获取体检信息            [$list, $count] = UserMedicalExaminationReport::getList($user_id);            if(!empty($list))            {                foreach ($list as $k => $item)                {                    $list[$k]['report_content'] = json_decode($item['report_content'], true);                    $list[$k]['report_add_time'] = date("Y-m-d H:i:s", $item['report_add_time']);                }            }            return compact('list', 'count');        }catch (\Exception $exception){            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:获取会员设备列表     * @param int $equipment_user_id     * @param string $equipment_name     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/9/23     */    public static function getUserEquipment(int $page,int $limit, $equipment_user_id, string $equipment_name, $equipment_class,$equipment_tripartite_sn,$equipment_create_time)    {        try {            [$list,$count] = IntelligenceEquipment::equipmentList($page, $limit, $equipment_user_id, $equipment_name, $equipment_class,$equipment_tripartite_sn,$equipment_create_time);            if(!empty($list))            {                foreach ($list as $k => $item)                {                    if (empty($item['user_nickname'])){                        $list[$k]['username'] = $item['user_account'];                    }else{                        $list[$k]['username'] = $item['user_nickname'];                    }                    $list[$k]['equipment_create_time'] = date("Y-m-d H:i:s", $item['equipment_create_time']);                    if (!empty($item['equipment_update_time'])){                        $list[$k]['equipment_update_time'] = date("Y-m-d H:i:s", $item['equipment_update_time']);                    }                    if (!empty($item['equipment_up_end_time'])){                        $list[$k]['equipment_up_end_time'] = date("Y-m-d H:i:s", $item['equipment_up_end_time']);                    }                    if (!empty($item['equipment_down_end_time'])){                        $list[$k]['equipment_down_end_time'] = date("Y-m-d H:i:s", $item['equipment_down_end_time']);                    }                }            }            return compact('list', 'count','page','limit');        }catch (\Exception $exception){            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:获取会员设备详情     * @param int $equipment_id     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/9/23     */    public static function userEquipmentInfo($equipment_id)    {        try {            $where = [];            $where['equipment_id']  = $equipment_id;            $where['equipment_del'] = 0;            $data = IntelligenceEquipment::equipmentInfor($where);            if(!empty($data))            {                if (empty($data['user_nickname'])){                    $data['username'] = $data['user_account'];                }else{                    $data['username'] = $data['user_nickname'];                }                $data['equipment_create_time'] = date("Y-m-d H:i:s", $data['equipment_create_time']);                if (!empty($data['equipment_update_time'])){                    $data['equipment_update_time'] = date("Y-m-d H:i:s", $data['equipment_update_time']);                }                if (!empty($data['equipment_up_end_time'])){                    $data['equipment_up_end_time'] = date("Y-m-d H:i:s", $data['equipment_up_end_time']);                }                if (!empty($data['equipment_down_end_time'])){                    $data['equipment_down_end_time'] = date("Y-m-d H:i:s", $data['equipment_down_end_time']);                }            }            return $data;        }catch (\Exception $exception){            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:获取设备消息列表     * @param int $log_user_id     * @param int $log_equipment_id     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/9/23     */    public static function getEquipmentLog(int $page,int $limit, $log_user_id, $log_equipment_id)    {        try {            [$list,$count] = IntelligenceLog::equipmentLogList($page, $limit, $log_user_id, $log_equipment_id);            if(!empty($list))            {                foreach ($list as $k => $item)                {                    $log_content = json_decode($item['log_content'],true);                    $content = [];                    $content[0]['产品id'] = $log_content['productId'] ? $log_content['productId'] : '' ;                    $content[1]['消息类型'] = $log_content['messageType'] ? $log_content['messageType'] : '';                    $content[2]['IMEI'] = $log_content['IMEI'] ? $log_content['IMEI'] : '';                    $content[3]['产品类型'] = $log_content['payload']['serviceData']['devicetype'] ? $log_content['payload']['serviceData']['devicetype'] : '';                    $content[4]['设备id'] = $log_content['deviceId'] ? $log_content['deviceId'] : '';                    $list[$k]['log_content'] = $content;                    $list[$k]['log_create_time'] = date("Y-m-d H:i:s", $item['log_create_time']);                    if (!empty($item['log_update_time'])){                        $list[$k]['log_update_time'] = date("Y-m-d H:i:s", $item['log_update_time']);                    }                }            }            return compact('list', 'count','page','limit');        }catch (\Exception $exception){            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:获取会员设备详情     * @param int $log_id     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/9/23     */    public static function equipmentLogInfo($log_id)    {        try {            $where = [];            $where['log_id']  = $log_id;            $data = IntelligenceLog::logInfor($where);            if(!empty($data))            {                $log_content = json_decode($data['log_content'],true);                $content = [];                $content[0]['产品id'] = $log_content['productId'] ? $log_content['productId'] : '' ;                $content[1]['消息类型'] = $log_content['messageType'] ? $log_content['messageType'] : '';                $content[2]['IMEI'] = $log_content['IMEI'] ? $log_content['IMEI'] : '';                $content[3]['产品类型'] = $log_content['payload']['serviceData']['devicetype'] ? $log_content['payload']['serviceData']['devicetype'] : '';                $content[4]['设备id'] = $log_content['deviceId'] ? $log_content['deviceId'] : '';                $data['log_content'] = $content;                $data['log_create_time'] = date("Y-m-d H:i:s", $data['log_create_time']);                if (!empty($data['log_update_time'])){                    $data['log_update_time'] = date("Y-m-d H:i:s", $data['log_update_time']);                }            }            return $data;        }catch (\Exception $exception){            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:赠送权益包     * @param $user_id     * @param $package_id     * @param $type     * @param $admin_id     * @return bool     * @throws \Exception     * User: yym     * Date: 2022/11/21     */    public static function givePackage($user_id, $package_id, $type, $admin_id)    {        UserPackageLog::affairBegin();        try {            //检测会员是否已赠送或购买此套餐包            $info = UserPackageLog::getInfo($package_id, $user_id);            if(!empty($info))            {                throw new \Exception('会员该套餐包已存在,无法继续赠送');            }            //生成订单记录            $order_id = PackageServer::givePackage($user_id, $package_id);            if(empty($order_id))            {                throw new \Exception('赠送失败!');            }            //生成套餐包记录            $package_info = Package::getInfo($package_id);            if(empty($package_info))            {                throw new \Exception('套餐包不存在!');            }            foreach ($package_info['goods'] as $item)            {                $insert = array(                    'log_user_id' => $user_id,                    'log_package_id' => $package_id,                    'log_package_goods_id' => $item['goods_id'],                    'log_package_status' => UserPackageLog::NORMAL,                    'log_server_number' => $item['goods_num'],                    'log_server_type' => $item['goods_num_type'],                    'log_server_unit' => $item['goods_num_unit'],                    'log_type' => $type,                    'log_add_time' => time(),                    'log_update_time' => time()                );                UserPackageLog::insertData($insert);            }            User::updateMember($user_id, ['user_package_status' => User::PACKAGE_YES, 'user_package_id' => $package_id, 'user_type' => User::FORMAL]);            UserPackageLog::affairCommit();            plog('user.give.package', '会员-赠送-权益包', '管理员:' . $admin_id . '赠送会员:' . $user_id . '权益包:' . $package_id);            return true;        }catch (\Exception $exception){            UserPackageLog::affairRollback();            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:获取会员下亲属关系列表     * @param int $log_id     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/11/15     */    public static function relativesList($relatives_user_id)    {        try {            $where = [];            $where['relatives_user_id']  = $relatives_user_id;            $where['relatives_del'] = 0;            $list = UserRelatives::select(['user_relatives.*','user.user_real_name'])                    ->where($where)                    ->leftJoin('user','user_id','=','user_relatives.relatives_user_id')                    ->orderBy('relatives_add_time','DESC')                    ->get()->toArray();            if(!empty($list))            {                foreach ($list as $k => $item)                {                    $list[$k]['relatives_add_time'] = date("Y-m-d H:i:s", $item['relatives_add_time']);                    if (!empty($item['relatives_update_time'])){                        $list[$k]['relatives_update_time'] = date("Y-m-d H:i:s", $item['relatives_update_time']);                    }                }            }            return $list;        }catch (\Exception $exception){            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:获取会员亲属关系列表     * @param int $log_id     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/11/11     */    public static function relativesToList($page,$limit,$keywords)    {        try {            [$list,$count] = UserRelatives::getrelativesList($page,$limit,$keywords);            if(!empty($list))            {                foreach ($list as $k => $item)                {                    $list[$k]['relatives_add_time'] = date("Y-m-d H:i:s", $item['relatives_add_time']);                    if (!empty($item['relatives_update_time'])){                        $list[$k]['relatives_update_time'] = date("Y-m-d H:i:s", $item['relatives_update_time']);                    }                }            }            return compact('list', 'page', 'limit', 'count');        }catch (\Exception $exception){            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:删除会员亲属关系     * @param int $category_id     * @return int     * User: ZQ     * Date: 2022/9/3     */    public static function relativesDel($relatives_id,$admin_id)    {        UserRelatives::affairBegin();        try {            $where = [];            $where['relatives_id'] = $relatives_id;            $data['relatives_del'] = 1;            $result = UserRelatives::where($where)->update($data);            if (!empty($result)){                $msg = '管理员:' . $admin_id . '在:' . date("Y-m-d H:i:s", time()) . '删除会员亲属关系-编号: ' . $relatives_id;                plog('user-relatives-del', '会员-亲属关系-删除亲属关系', $msg);                UserRelatives::affairCommit();                return true;            }            throw new \Exception('删除失败!');        }catch (\Exception $exception){            UserRelatives::affairRollback();            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:获取会员下亲属关系列表     * @param int $log_id     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/11/15     */    public static function equipmentList($equipment_user_id)    {        try {            $where = [];            $where['equipment_user_id']  = $equipment_user_id;            $where['equipment_del'] = 0;            $list = IntelligenceEquipment::select(['user_intelligence_equipment.*','intelligence_products.product_name'])                ->where($where)                ->leftJoin('intelligence_products','product_id','=','user_intelligence_equipment.equipment_intelligence_id')                ->orderBy('equipment_create_time','DESC')                ->get()->toArray();            if(!empty($list))            {                foreach ($list as $k => $item)                {                    $list[$k]['equipment_create_time'] = date("Y-m-d H:i:s", $item['equipment_create_time']);                    $list[$k]['equipment_up_end_time'] = $list[$k]['equipment_up_end_time'] ? date("Y-m-d H:i:s", $item['equipment_up_end_time']) : '';                    $list[$k]['equipment_down_end_time'] = $list[$k]['equipment_down_end_time'] ? date("Y-m-d H:i:s", $item['equipment_down_end_time']) : '';                    $list[$k]['equipment_update_time'] = $list[$k]['equipment_update_time'] ? date("Y-m-d H:i:s", $item['equipment_update_time']) : '';                }            }            return $list;        }catch (\Exception $exception){            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes: 添加设备     * @return int     * User: ZQ     * Date: 2022/11/14     */    public static function insertEquipment($admin_id, $equipment_intelligence_id, $equipment_user_id, $equipment_name, $equipment_only,$equipment_type,$equipment_class,$equipment_tripartite_sn,$equipment_status,$equipment_property_id)    {        IntelligenceEquipment::affairBegin();        try {            $data = [];            $data['equipment_intelligence_id'] = $equipment_intelligence_id;            $data['equipment_user_id'] = $equipment_user_id;            $data['equipment_name'] = $equipment_name;            $data['equipment_only'] = $equipment_only;            $data['equipment_type'] = $equipment_type;            $data['equipment_class'] = $equipment_class;            $data['equipment_tripartite_sn'] = $equipment_tripartite_sn;            $data['equipment_status'] = $equipment_status;            $data['equipment_property_id'] = $equipment_property_id;            $data['equipment_create_time'] = time();            $result =  IntelligenceEquipment::insertGetId($data);            if (!empty($result)){                $msg = '管理员:' . $admin_id . '在:' . date("Y-m-d H:i:s", time()) . '添加会员智能设备-编号: ' . $result;                plog('user-equipment-create', '会员-智能设备-添加智能设备', $msg);                IntelligenceEquipment::affairCommit();                return $result;            }            throw new \Exception('操作失败!');        }catch (\Exception $exception){            IntelligenceEquipment::affairRollback();            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:查询会员设备唯一编码     * @param int $category_id     * @return int     * User: ZQ     * Date: 2022/11/15     */    public static function equipmentCheck($equipment_only)    {        try {            $where = [];            $where['equipment_only'] = $equipment_only;            $where['equipment_del'] = 0;            $result = IntelligenceEquipment::where($where)->first();            if (!empty($result)){                return $result;            }else{                return false;            }            throw new \Exception('查询失败!');        }catch (\Exception $exception){            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:删除会员亲属关系     * @param int $category_id     * @return int     * User: ZQ     * Date: 2022/11/15     */    public static function equipmentDel($equipment_id,$admin_id)    {        IntelligenceEquipment::affairBegin();        try {            $where = [];            $where['equipment_id'] = $equipment_id;            $data['equipment_del'] = 1;            $result = IntelligenceEquipment::where($where)->update($data);            if (!empty($result)){                $msg = '管理员:' . $admin_id . '在:' . date("Y-m-d H:i:s", time()) . '删除会员智能产品设备-编号: ' . $equipment_id;                plog('user-relatives-del', '会员-智能产品设备-删除智能产品设备', $msg);                IntelligenceEquipment::affairCommit();                return true;            }            throw new \Exception('删除失败!');        }catch (\Exception $exception){            IntelligenceEquipment::affairRollback();            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:获取会员固定资产列表     * @param int $property_user_id     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/11/23     */    public static function propertyList($property_user_id)    {        try {            $where = [];            $where['property_del'] = 0;            $where['property_status'] = 0;            $where['property_user_id'] = $property_user_id;            $list = UserProperty::where($where)->select()->get()->toArray();            return $list;        }catch (\Exception $exception){            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:添加医生医嘱     * @param int $log_user_id     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/12/8     */    public static function doctorInsert($log_user_id, $log_type, $log_equipment_id, $log_doctor_id, $log_subject_id, $log_message, $log_resolvent, $admin_id)    {        UserDoctorsLog::affairBegin();        try {            $data = [];            $data['log_user_id'] = $log_user_id;            $data['log_type'] = $log_type;            $data['log_equipment_id'] = $log_equipment_id;            $data['log_doctor_id'] = $log_doctor_id;            $data['log_subject_id'] = $log_subject_id;            $data['log_message'] = $log_message;            $data['log_resolvent'] = $log_resolvent;            $data['log_add_time'] = time();            $result = UserDoctorsLog::insertGetId($data);            if (!empty($result)){                $msg = '管理员:' . $admin_id . '在:' . date("Y-m-d H:i:s", time()) . '添加会员医生医嘱-编号: ' . $result;                plog('user-relatives-del', '会员-医生医嘱-添加会员医生医嘱', $msg);                UserDoctorsLog::affairCommit();                return true;            }            throw new \Exception('添加失败!');        }catch (\Exception $exception){            UserDoctorsLog::affairRollback();            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:会员医生医嘱列表     * @param int $log_user_id     * @param int $page     * @param int $limit     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/12/8     */    public static function doctorList($log_user_id, $page, $limit)    {        [$list,$count] = UserDoctorsLog::doctorLogList($log_user_id, $page, $limit);        if (!empty($list)){            foreach ($list as $k => $v){                $list[$k]['log_add_time'] = date('Y-m-d H:i:s',$v['log_add_time']);            }        }        return compact('list', 'count');    }    /**     * Notes:删除会员医生医嘱     * @param int $log_user_id     * @param int $log_id     * @param int $admin_id     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/12/8     */    public static function doctorDel($log_user_id, $log_id, $admin_id)    {        UserDoctorsLog::affairBegin();        try {            $where = [];            $where['log_id'] = $log_id;            $where['log_user_id'] = $log_user_id;            $result = UserDoctorsLog::where($where)->delete();            if (!empty($result)){                $msg = '管理员:' . $admin_id . '在:' . date("Y-m-d H:i:s", time()) . '删除会员医生医嘱-编号: ' . $log_id;                plog('user-relatives-del', '会员-医生医嘱-删除会员医生医嘱', $msg);                UserDoctorsLog::affairCommit();                return true;            }            throw new \Exception('删除失败!');        }catch (\Exception $exception){            UserDoctorsLog::affairRollback();            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:删除会员健康基础数据     * @param int $data_id     * @param int $data_user_id     * @param int $admin_id     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/12/8     */    public static function healthyDel($data_user_id, $admin_id)    {        UserBasicHealthData::affairBegin();        try {            $where = [];            $where['data_user_id'] = $data_user_id;            $result = UserBasicHealthData::where($where)->delete();            if (!empty($result)){                $msg = '管理员:' . $admin_id . '在:' . date("Y-m-d H:i:s", time()) . '删除会员健康基础数据-编号: ' . $data_user_id;                plog('user-relatives-del', '会员-健康基础数据-删除会员健康基础数据', $msg);                UserBasicHealthData::affairCommit();                return true;            }            throw new \Exception('删除失败!');        }catch (\Exception $exception){            UserBasicHealthData::affairRollback();            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:修改会员健康基础数据     * @param int $data_id     * @param string $data_Inspection_suggestions     * @param string $data_bone_density     * @param string $data_tcm_testing     * @param int $admin_id     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/12/8     */    public static function healthyUpdate($data_user_id, $data_Inspection_suggestions, $data_bone_density, $data_tcm_testing, $admin_id)    {        UserBasicHealthData::affairBegin();        try {            $where = [];            $where['data_user_id'] = $data_user_id;            $data = [];            $data['data_update_time'] = time();            $data['data_Inspection_suggestions'] = $data_Inspection_suggestions;            if (!empty($data_Inspection_suggestions) && empty($data_bone_density) && empty($data_tcm_testing)){                $result = UserBasicHealthData::where($where)->update($data);                if (!empty($result)){                    $msg = '管理员:' . $admin_id . '在:' . date("Y-m-d H:i:s", time()) . '修改会员健康基础数据-编号: ' . $data_user_id;                    plog('user-relatives-del', '会员-健康基础数据-修改会员健康基础数据', $msg);                    UserBasicHealthData::affairCommit();                    return true;                }            }elseif (!empty($data_bone_density) && empty($data_tcm_testing)){                $data['data_bone_density'] = $data_bone_density;                $data_type = 2;            }elseif (!empty($data_tcm_testing) && empty($data_bone_density)){                $data['data_tcm_testing'] = $data_tcm_testing;                $data_type = 4;            }elseif(!empty($data_tcm_testing) && !empty($data_bone_density)){                $data['data_bone_density'] = $data_bone_density;                $data['data_tcm_testing'] = $data_tcm_testing;                $data_type = 3;            }            $result = UserBasicHealthData::where($where)->update($data);            if($data_type == 3){                //插入一条记录                $log = UserBasicHealthData::where($where)->first();                $log = json_decode($log,true);                unset($log['data_id']);                unset($log['data_update_time']);                $log['data_type'] = 2;                $log['data_add_time'] = time();                unset($log['data_tcm_testing']);                $id = UserBasicHealthDataLog::insertGetId($log);                $log['data_type'] = 4;                unset($log['data_bone_density']);                $log['data_tcm_testing'] = $data_tcm_testing;                $ids = UserBasicHealthDataLog::insertGetId($log);            }elseif($data_type == 2 || $data_type == 4){                //插入一条记录                $log = UserBasicHealthData::where($where)->first();                $log = json_decode($log,true);                unset($log['data_id']);                unset($log['data_update_time']);                $log['data_type'] = $data_type;                $log['data_add_time'] = time();                $id = UserBasicHealthDataLog::insertGetId($log);            }            if (!empty($result)){                $msg = '管理员:' . $admin_id . '在:' . date("Y-m-d H:i:s", time()) . '修改会员健康基础数据-编号: ' . $data_user_id;                plog('user-relatives-del', '会员-健康基础数据-修改会员健康基础数据', $msg);                if(!empty($id)){                    $msg = '管理员:' . $admin_id . '在:' . date("Y-m-d H:i:s", time()) . '添加会员健康基础数据记录-编号: ' . $id;                    plog('user-relatives-del', '会员-健康基础数据记录-添加会员健康基础数据记录', $msg);                }                if(!empty($ids)){                    $msg = '管理员:' . $admin_id . '在:' . date("Y-m-d H:i:s", time()) . '添加会员健康基础数据记录-编号: ' . $ids;                plog('user-relatives-del', '会员-健康基础数据记录-添加会员健康基础数据记录', $msg);                }                UserBasicHealthData::affairCommit();                return true;            }            throw new \Exception('修改失败!');        }catch (\Exception $exception){            UserBasicHealthData::affairRollback();            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:查询会员健康基础数据     * @param int $data_id     * @param int $data_user_id     * @return array     * @throws \Exception     * User: ZQ     * Date: 2022/12/8     */    public static function healthyInfo($data_user_id)    {        $where = [];        $where['data_user_id'] = $data_user_id;        $data = UserBasicHealthData::where($where)->first();        if (!empty($data)){            $data['data_add_time'] = date('Y-m-d H:i:s',$data['data_add_time']);            $data['data_update_time'] = $data['data_update_time'] ? date('Y-m-d H:i:s',$data['data_update_time']) : '';        }        return $data;    }}
 |