getCount([['title', '=', $data['title']]]); if ($count > 0) { return $this->error('', '该供应商已经存在!'); } //用户检测 if (empty($user_info['username'])) { return $this->error('', 'USER_NOT_EXIST'); } $user_count = model("user")->getCount( [['username', '=', $user_info['username']]] ); if ($user_count > 0) { return $this->error('', 'USERNAME_EXISTED'); } model('supplier')->startTrans(); try { //添加系统站 $site_id = model("site")->add([ 'site_type' => 'supply', 'site_name' => $data['title'], 'site_tel' => $data['supplier_phone'] ?? '', 'agent_id' => $data['ag_site_id'] ?? 0, 'manage_id' => $data['manage_id'] ?? 0, 'manage_name' => $data['manage_name'] ?? '', 'fee_commission' => $data['fee_commission'] ?? 0, ]); $cert_data['site_id'] = $site_id; //添加认证信息 $cert_id = model("supply_cert")->add($cert_data); //添加供应商 $data['cert_id'] = $cert_id; $data['supplier_site_id'] = $site_id; $data['username'] = $user_info['username']; $data['expire_time'] = time() + 365 * 24 * 3600 * $data['year']; $data['status'] = 1; $data['create_time'] = time(); unset($data['year']); model('supplier')->add($data); //添加系统用户组 $group = new Group(); $group_data = [ 'site_id' => $site_id, 'app_module' => 'supply', 'group_name' => '管理员组', 'is_system' => 1, 'create_time' => time() ]; $group_id = $group->addGroup($group_data)['data']; // 添加供应商相册默认分组 model("album")->add([ 'site_id' => $site_id, 'album_name' => "默认分组", 'update_time' => time(), 'is_default' => 1, 'app_module' => 'supply' ]); //添加用户 $data_user = [ 'app_module' => 'supply', 'app_group' => 0, 'is_admin' => 1, 'group_id' => $group_id, 'group_name' => '管理员组', 'site_id' => $site_id ]; $user_info = array_merge($data_user, $user_info); model("user")->add($user_info); Cache::tag("supply")->clear(); model('supplier')->commit(); return $this->success(); } catch (\Exception $e) { model('supplier')->rollback(); return $this->error('', $e->getMessage()); } } /** * 修改供应商 * @param $condition * @param $data * @return array|mixed|string */ public function editSupplier($condition, $data, $site_data = []) { $temp_data = $data; //查询过期时间有无更改 $supplier = $this->getSupplierInfo($condition); $expire_time = $supplier['data']['expire_time']; //过期关闭供应商 if (!empty($data["expire_time"])) { if ($data["expire_time"] != $expire_time) { //如果过期 if ($data["expire_time"] - time() < 0) { $data["status"] = 0; } } } if (!empty($temp_data['status'])) { if ($supplier['data']['status'] != $temp_data['status']) { $data["status"] = $temp_data['status']; } } if (!empty($site_data)) { $where = [ ['site_id', '=', $supplier['data']['supplier_site_id']] ]; model("site")->update($site_data, $where); } $res = model('supplier')->update($data, $condition); Cache::tag("supply")->clear(); //订单关闭 if (isset($data['status']) && $data["status"] == 0) { $check_condition = array_column($condition, 2, 0); $close_result = event("SupplyClose", ["site_id" => $check_condition["supplier_site_id"]], true); if ($close_result["code"] < 0) { return $close_result; } } return $this->success($res); } /** * 删除供货商 * @param $supplier_id * @return array */ public function deleteSupplier($supplier_id) { $supply_info = model('supplier')->getInfo([['supplier_id', '=', $supplier_id]], 'supplier_site_id,username'); //todo 删除供应商 $goods_count = model('supply_goods')->getCount([['site_id', '=', $supply_info['supplier_site_id']]]); if ($goods_count > 0) { return $this->error('', '供应商下有商品,不可删除'); } model('supplier')->startTrans(); try { $res = model('supplier')->delete([['supplier_id', '=', $supplier_id]]); //获取用户信息 $user_info = model('user')->getInfo( [['username', '=', $supply_info['username']], ['app_module', '=', 'supply']], 'uid,group_id' ); if (!empty($user_info)) { //删除用户 model('user')->delete([['uid', '=', $user_info['uid']]]); //删除用户组 model('group')->delete([['group_id', '=', $user_info['group_id']]]); //删除登录记录 model('user_log')->delete([['uid', '=', $user_info['uid']]]); } Cache::tag("supply")->clear(); model('supplier')->commit(); return $this->success($res); } catch (\ Exception $e) { model('supplier')->rollback(); return $this->error('', $e->getMessage()); } } /** * 获取供应商分页列表 * @param array $where * @param int $page * @param int $page_size * @param string $order * @param string $field * @return array */ public function getSupplierPageList($where = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = '', $field = '*') { $data = json_encode([$where, $field, $order, $page, $page_size]); $list = model("supplier")->pageList($where, $field, $order, $page, $page_size); return $this->success($list); } /** * 获取供应商信息 * @param array $condition * @param string $field * @return array */ public function getSupplierInfo($condition = [], $field = '*') { // $data = json_encode([$condition, $field]); // $cache = Cache::get("supplier_getSupplierInfo_" . $data); // if (!empty($cache)) { // return $this->success($cache); // } $info = model("supplier")->getInfo($condition, $field); // Cache::tag("supply")->set("supplier_getSupplierInfo_" . $data, $info); return $this->success($info); } /** * 获取供应商认证信息(包含结算账户) * @param $condition * @param string $field * @return array */ public function getSupplierCert($condition, $field = '*') { $res = model('supply_cert')->getInfo($condition, $field); return $this->success($res); } /** * 编辑店铺认证信息,type为1表示更改认证信息 * @param $data * @param $condition * @param int $type * @return array */ public function editSupplierCert($data, $condition, $type = 0) { $check_condition = array_column($condition, 2, 0); $site_id = isset($check_condition['site_id']) ? $check_condition['site_id'] : ''; if ($site_id === '') { return $this->error('', 'REQUEST_SITE_ID'); } $info = model('supply_cert')->getInfo($condition); model()->startTrans(); try { if (!empty($info)) { $cert_id = $info['cert_id']; $res = model('supply_cert')->update($data, $condition); } else { $data['site_id'] = $site_id; $cert_id = model('supply_cert')->add($data); $res = $cert_id; } if ($type == 1) { $this->editSupplier([['supplier_site_id', '=', $site_id]], ['cert_id' => $cert_id]); } model("supply_cert")->commit(); return $this->success($res); } catch (\Exception $e) { model("supply_cert")->rollback(); return $this->error("", $e->getMessage()); } } /** * 供应商关闭 * @param $site_id * @return array|mixed|string */ public function supplyClose($site_id) { $res = model("supplier")->update(["status" => 0], [["supplier_site_id", "=", $site_id]]); if ($res === false) { return $this->error(); } $result = event("SupplyClose", ["site_id" => $site_id], true); if ($result["code"] < 0) { return $result; } return $this->success(); } /** * 获取列表 * @param array $condition * @param string $field * @param string $order * @param null $limit * @return array */ public function getSupplyList($condition = [], $field = '*', $order = '', $limit = null) { $list = model('supplier')->getList($condition, $field, $order, '', '', '', $limit); return $this->success($list); } /** * 设置备注 * @param $data * @param $condition * @return array */ public function remarks($data, $condition = []) { $res = model('supplier')->update($data, $condition); return $this->success($res); } }