find(); if($masterWorker['team_id']){ throw new \Exception('该师傅已加入团队'); } if($params['goods_category_ids']){ foreach ($params['goods_category_ids'] as $val){ is_array($val)?($ids[] = end($val)):($ids[] = $val); } $params['goods_category_ids'] = implode(',',$ids); } MasterWorkerTeam::where('tenant_id', $params['tenant_id'])->value('id') && throw new \Exception('该租户已有团队'); $masterWorkerTeam = MasterWorkerTeam::create([ 'team_name' => $params['team_name'], 'master_worker_id' => $params['master_worker_id'], 'tenant_id' => $params['tenant_id']??0, 'city' => $params['city'], 'area_name' => $params['area_name'], 'lon' => $params['lon'], 'lat' => $params['lat'], 'distance' => $params['distance'], 'am_limit' => $params['am_limit'], 'pm_limit' => $params['pm_limit'], 'min_order' => $params['min_order'], 'goods_category_ids' => $params['goods_category_ids'], 'accept_order_status' => $params['accept_order_status'], ]); MasterWorker::where('id', $params['master_worker_id'])->update( [ 'team_id' => $masterWorkerTeam->id, 'team_role' => 1, 'tenant_id' => $params['tenant_id'], ] ); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑 * @param array $params * @return bool * @author likeadmin * @date 2024/11/20 17:42 */ public static function edit(array $params): bool { Db::startTrans(); try { $masterWorkerTeam = MasterWorkerTeam::where('id', $params['id'])->find(); $masterWorker = MasterWorker::where('id', $params['master_worker_id'])->find(); if(($masterWorkerTeam['master_worker_id'] != $params['master_worker_id']) && $masterWorker['team_id']){ throw new \Exception('该师傅已加入团队,请先退出团队'); } if($params['goods_category_ids']){ foreach ($params['goods_category_ids'] as $val){ is_array($val)?($ids[] = end($val)):($ids[] = $val); } $params['goods_category_ids'] = implode(',',$ids); } MasterWorker::where('id', $masterWorkerTeam['master_worker_id'])->update( [ //'team_id' => $params['id'], 'team_role' => 0, //'tenant_id' => $params['tenant_id'], ] ); MasterWorkerTeam::where('id', $params['id'])->update([ 'team_name' => $params['team_name'], 'master_worker_id' => $params['master_worker_id'], 'tenant_id' => $params['tenant_id']??0, 'city' => $params['city'], 'area_name' => $params['area_name'], 'lon' => $params['lon'], 'lat' => $params['lat'], 'distance' => $params['distance'], 'am_limit' => $params['am_limit'], 'pm_limit' => $params['pm_limit'], 'min_order' => $params['min_order'], 'goods_category_ids' => $params['goods_category_ids'], 'accept_order_status' => $params['accept_order_status'], ]); MasterWorker::where('id', $params['master_worker_id'])->update( [ 'team_id' => $params['id'], 'team_role' => 1, 'tenant_id' => $params['tenant_id'], ] ); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除 * @param array $params * @return bool * @author likeadmin * @date 2024/11/20 17:42 */ public static function delete(array $params): bool { $masterWorkerTeam = MasterWorkerTeam::where('id', $params['id'])->find(); \app\common\model\master_worker\MasterWorker::where('id', $masterWorkerTeam['master_worker_id'])->update( [ 'team_id' => 0, 'team_role' => 0, ] ); return MasterWorkerTeam::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2024/11/20 17:42 */ public static function detail($params): array { $info = MasterWorkerTeam::with('masterWorker')->findOrEmpty($params['id'])->toArray(); if(!empty($info['goods_category_ids'])){ $info['goods_category_ids'] = explode(',',$info['goods_category_ids']); $info['goods_category_ids'] = array_map('intval', $info['goods_category_ids']); } return $info; } }