rollback(); return $this->error('', 'USER_NOT_EXIST'); }else if($user_info['username'] && model("user")->getInfo(['username'=>$user_info['username']],'uid')>0){ model("shop")->rollback(); return $this->error('', $user_info['username'].'USER_EXIST账户已存在'); } $site_data[ 'site_type' ] = 'shop'; $site_data[ 'username' ] = $user_info[ 'username' ]; $site_data[ 'create_time' ] = time(); $is_agent=false; $is_try=false; if (isset($site_data['is_admin']) && $site_data[ 'is_admin' ] == 1) { $addon = new Addon(); $install = $addon->getAddonList([[ "type", "<>", "system" ]]); $addon_array = array_column($install[ "data" ], 'name'); $site_data[ 'site_addon' ] = implode(',', $addon_array); $site_data[ 'group_id' ] = 0; $site_data[ 'group_name' ] = '自营店铺套餐'; $site_data[ 'sms_num' ] = 0; } else { //套餐信息 $site_group_model = new SiteGroup(); $site_group_info = $site_group_model->getSiteGroupInfo( [['group_id', '=', $site_data[ 'group_id' ]]], 'group_id,group_name,addon_array,sms_num,unit' ); $unit=$site_group_info[ 'data' ][ 'unit' ]??7; $site_data[ 'group_id' ] = $site_group_info[ 'data' ][ 'group_id' ]??0; $site_data[ 'group_name' ] = $site_group_info[ 'data' ][ 'group_name' ]??'基础版'; $site_data[ 'site_addon' ] = $site_group_info[ 'data' ][ 'addon_array' ]??''; if (empty($site_data[ 'is_try' ]) ||$site_data[ 'is_try' ]==1 ) {//试用 //查询是否开启体验 $site_config = new SiteConfig(); $is_try=true; $config_info = $site_config->getOpenSiteConfig(); $site_data[ 'sms_num' ] = $config_info[ 'data' ][ 'value' ][ 'sms_num' ]; $site_data['expire_time' ] = Time::daysAfter($site_data['expire_time']??7); } else if(isset($site_data['agent_id'])) { $where = [ ['site_id', '=', $site_data['agent_id']], ['is_agent', '=', 1], ]; $is_agent=true; if($is_agentnum){ $agentNumber = model('website')->getValue($where,'agent_number'); if ($agentNumber < 1) { return $this->error(-1, "当前系统授权最大店铺数量请联系管理员购买"); } } $site_data['sms_num'] = $site_group_info['data']['sms_num']; if(!isset($site_data['expire_time'])){ $site_data['expire_time'] = strtotime("+1 ".$unit); } } } model('site')->startTrans(); try { //添加系统站 if($is_agent && !$is_try){ $count_time=intval(($site_data['expire_time']-time())/86400); model('website')->setDec(['site_id'=>$site_data['agent_id']],'agent_number',$count_time); Cache::tag("website")->clear(); } $site_id = model("site")->add($site_data); $shop_data[ 'site_id' ] = $site_id; $shop_data[ 'create_time' ] = time(); model("shop")->add($shop_data); // 添加店铺相册默认分组 model("album")->add( [ 'site_id' => $site_id, 'album_name' => "默认分组", 'update_time' => time(), 'is_default' => 1, 'level'=>1 ] ); //添加系统用户组 $group = new Group(); $group_data = [ 'site_id' => $site_id, 'app_module' => 'shop', 'group_name' => '管理员组', 'is_system' => 1, 'menu_array' => '', 'create_time' => time() ]; $group_id = $group->addGroup($group_data)[ 'data' ]; //添加用户 $data_user = [ 'app_module' => 'shop', 'is_admin' => 1, 'site_id' => $site_id, 'username' => $user_info['username'], 'password' => $user_info['password'], 'group_id' => $group_id, 'group_name' => '管理员组', ]; //添加user表 model('user')->add($data_user); //执行事件 event("AddSite", [ 'site_id' => $site_id ]); model("site")->commit(); return $this->success($site_id); } catch (\Exception $e) { model("site")->rollback(); return $this->error("", $e->getMessage()); } } /** * getSiteInfo 获取站点详情 * @param $condtion * @param string $fields */ public function getSiteInfo($condition, $fields = '*') { $res = model('site')->getInfo($condition, $fields); return $this->success($res); } /** * 修改商城站点信息 * @param $site_data * @param $condition * @return int */ public function editSite($site_data, $condition) { $site_info = $this->getSiteInfo($condition); if($site_info['data'] && $site_data['logo'] && $site_info['data']['logo'] != $site_data['logo']){ $upload_model = new Upload(); $upload_model->deletePic($site_info['data']['logo'], $site_info['data']['site_id']); } if($site_info['data'] && $site_data['logo_square'] && $site_info['data']['logo_square'] != $site_data['logo_square']){ $upload_model = new Upload(); $upload_model->deletePic($site_info['data']['logo_square'], $site_info['data']['site_id']); } $res = model('site')->update($site_data, $condition); if($res && $site_data['logo']){ copy($site_data['logo'],"public/static/img/default_img/login.png"); } return $this->success($res); } /** * 获取站点插件 * @param int $site_id */ public function getSiteAddon($site_id) { $site_info = model('site')->getInfo([ [ 'site_id', '=', $site_id ] ], 'site_addon'); $site_addon = $site_info[ 'site_addon' ] ?? ''; $addon_condition_str = "= 'system' "; $addon_condition = array (); if (!empty($site_addon)) { $temp_addon_array = explode(',', $site_addon); foreach ($temp_addon_array as $k => $v) { $temp_addon_array[ $k ] = "'" . $v . "'"; } $temp_str = implode(',', $temp_addon_array); $addon_condition_str .= " OR name in ($temp_str)"; } $addon_condition[] = [ "type", "exp", Db::raw($addon_condition_str) ]; $addon_model = new Addon(); $result = $addon_model->getAddonList($addon_condition); return $result; } /** * getSiteShopPageList 获取站点列表 * @param array $condition * @param bool $fields * @param $order * @param string $limit * @return array */ public function getSitePageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = 'create_time desc', $fields = '*') { $res = model('site')->pageList($condition, $fields, $order, $page, $page_size, 'a'); if ($res[ 'count' ] > 0) { $time = time(); foreach ($res[ 'list' ] as $k => $v) { if ($v[ 'expire_time' ] == 0) { $res[ 'list' ][ $k ][ 'status' ] = '正常'; } elseif ($v[ 'expire_time' ] > $time) { $cha = $v[ 'expire_time' ] - $time; $date = ceil(( $cha / 86400 )); if ($date < 30) { $res[ 'list' ][ $k ][ 'status' ] = '即将到期'; } else { $res[ 'list' ][ $k ][ 'status' ] = '正常'; } } else { $res[ 'list' ][ $k ][ 'status' ] = '关闭'; } } } return $this->success($res); } }