WebsiteService.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. <?php
  2. namespace App\JsonRpc;
  3. use App\Model\WebsiteRole;
  4. use App\Model\WebsiteRoleUser;
  5. use App\Model\Website;
  6. use App\Model\WebsiteColumn;
  7. use Hyperf\RpcServer\Annotation\RpcService;
  8. use App\Tools\Result;
  9. use App\Model\WebsiteCategory;
  10. use function PHPUnit\Framework\isNull;
  11. #[RpcService(name: "WebsiteService", protocol: "jsonrpc-http", server: "jsonrpc-http")]
  12. class WebsiteService implements WebsiteServiceInterface
  13. {
  14. /**
  15. * @param string $keyword
  16. * @param int $page
  17. * @param int $pageSize
  18. * @return array
  19. */
  20. public function getWebsitetList(string $keyword,int $page,int $pageSize):array
  21. {
  22. $where = [
  23. ['website.website_name','like','%'.$keyword.'%']
  24. ];
  25. $result = Website::where($where)
  26. ->leftJoin("website_column","website.website_column_id","website_column.id")
  27. ->leftJoin("district","district.id","website.city_id")
  28. ->select("website.*","website_column.column_name","district.name")
  29. ->limit($pageSize)->offset(($page-1)*$pageSize)->get();
  30. $count = Website::where($where)->count();
  31. if (empty($result)) {
  32. return Result::error("没有数据",0);
  33. }
  34. $data = [
  35. 'rows'=>$result->toArray(),
  36. 'count'=>$count
  37. ];
  38. return Result::success($data);
  39. }
  40. /**
  41. * @param array $data
  42. * @return array
  43. */
  44. public function createWebsite(array $data): array
  45. {
  46. $insertData = [
  47. 'website_name'=>$data['website_name'],
  48. 'logo'=>$data['logo']??'',
  49. 'website_url'=>$data['website_url']??'',
  50. 'city_id'=>$data['city_id']??0,
  51. 'website_column_id'=>$data['website_column_id'],
  52. 'title'=>$data['title']??'',
  53. 'keywords'=>$data['keywords']??'',
  54. 'description'=>$data['description']??'',
  55. 'status'=>$data['status']??0,
  56. 'website_column_arr_id'=>$data['website_column_arr_id'],
  57. 'city_arr_id'=>$data['city_arr_id']??[0],
  58. ];
  59. $result = Website::insertGetId($insertData);
  60. if(empty($result)){
  61. return Result::error("创建失败",0);
  62. }else{
  63. return Result::success(["id"=>$result]);
  64. }
  65. }
  66. /**
  67. * @param int $id
  68. * @param array $data
  69. * @return array
  70. */
  71. public function updateWebsite(int $id,array $data): array
  72. {
  73. $insertData = [
  74. 'website_name'=>$data['website_name'],
  75. 'logo'=>$data['logo']??'',
  76. 'website_url'=>$data['website_url']??'',
  77. 'city_id'=>$data['city_id']??0,
  78. 'website_column_id'=>$data['website_column_id'],
  79. 'title'=>$data['title']??'',
  80. 'keywords'=>$data['keywords']??'',
  81. 'description'=>$data['description']??'',
  82. 'status'=>$data['status']??0,
  83. 'website_column_arr_id'=>$data['website_column_arr_id'],
  84. 'city_arr_id'=>$data['city_arr_id']??[0],
  85. ];
  86. $result = Website::where('id',$id)->update($insertData);
  87. var_dump("更新站点",$result);
  88. if(empty($result)){
  89. return Result::error("更新失败",0);
  90. }else{
  91. return Result::success();
  92. }
  93. }
  94. /**
  95. * @param int $id
  96. * @return array
  97. */
  98. public function delWebsite(int $id): array
  99. {
  100. $result = Website::where('id',$id )->delete();
  101. var_dump("删除站点",$result);
  102. if(empty($result)){
  103. return Result::error("删除失败",0);
  104. }else{
  105. return Result::success();
  106. }
  107. }
  108. /**
  109. * @param int $id
  110. * @return array
  111. */
  112. public function getWebsiteInfo(int $id): array
  113. {
  114. $result = Website::where('id',$id )->first();
  115. if(empty($result)){
  116. return Result::error("数据不存在",0);
  117. }else{
  118. return Result::success($result->toArray());
  119. }
  120. }
  121. /**
  122. * 查询所有的站点栏目
  123. * @return array
  124. */
  125. public function getWebsiteColumn(array $data): array
  126. {
  127. $result = WebsiteColumn::where($data)->get();
  128. if(empty($result)){
  129. return Result::error("数据不存在",0);
  130. }else{
  131. return Result::success($result->toArray());
  132. }
  133. }
  134. /**
  135. * @param string $keyword
  136. * @param int $page
  137. * @param int $pageSize
  138. * @return array
  139. */
  140. public function getWebsiteColumnList(string $keyword,int $page,int $pageSize):array
  141. {
  142. $where = [
  143. ['website_column.column_name','like','%'.$keyword.'%']
  144. ];
  145. $result = WebsiteColumn::where($where)
  146. ->leftJoin("website_column as wc","website_column.pid","wc.id")
  147. ->select("website_column.*","wc.column_name as parent_column_name")
  148. ->limit($pageSize)->offset(($page-1)*$pageSize)->get();
  149. $count = WebsiteColumn::where($where)->count();
  150. if (empty($result)) {
  151. return Result::error("没有数据",0);
  152. }
  153. $data = [
  154. 'rows'=>$result->toArray(),
  155. 'count'=>$count
  156. ];
  157. return Result::success($data);
  158. }
  159. /**
  160. * @param array $data
  161. * @return array
  162. */
  163. public function createWebsiteColumn(array $data): array
  164. {
  165. $insertData = [
  166. 'column_name'=>$data['column_name'],
  167. 'pid'=>$data['pid']??'',
  168. 'column_arr_id'=>$data['column_arr_id']??[0],
  169. 'sort'=>$data['sort']??0,
  170. 'remark'=>$data['remark']??'',
  171. ];
  172. $result = WebsiteColumn::insertGetId($insertData);
  173. if(empty($result)){
  174. return Result::error("创建失败",0);
  175. }else{
  176. return Result::success(["id"=>$result]);
  177. }
  178. }
  179. /**
  180. * @param int $id
  181. * @param array $data
  182. * @return array
  183. */
  184. public function updateWebsiteColumn(int $id,array $data): array
  185. {
  186. $insertData = [
  187. 'column_name'=>$data['column_name'],
  188. 'pid'=>$data['pid']??'',
  189. 'column_arr_id'=>$data['column_arr_id']??[0],
  190. 'sort'=>$data['sort']??0,
  191. 'remark'=>$data['remark']??'',
  192. ];
  193. $result = WebsiteColumn::where('id',$id)->update($insertData);
  194. if(empty($result)){
  195. return Result::error("更新失败",0);
  196. }else{
  197. return Result::success();
  198. }
  199. }
  200. /**
  201. * @param int $id
  202. * @return array
  203. */
  204. public function delWebsiteColumn(int $id): array
  205. {
  206. $result = WebsiteColumn::where('id',$id )->delete();
  207. if(empty($result)){
  208. return Result::error("删除失败",0);
  209. }else{
  210. return Result::success();
  211. }
  212. }
  213. /**
  214. * @param string $keyword
  215. * @param int $page
  216. * @param int $pageSize
  217. * @return array
  218. */
  219. public function getWebsiteRoleList(string $keyword,int $page,int $pageSize,int $websiteId):array
  220. {
  221. $where = [
  222. ['role.role_name','like','%'.$keyword.'%'],
  223. ['website_role.website_id','=',$websiteId],
  224. ];
  225. $result = WebsiteRole::where($where)
  226. ->leftJoin("role","role.id","website_role.role_id")
  227. ->select("role.*","website_role.type","website_role.role_id","website_role.id as website_role_id","website_role.website_id")
  228. ->limit($pageSize)->offset(($page-1)*$pageSize)->get();
  229. $count = WebsiteRole::where($where) ->leftJoin("role","role.id","website_role.role_id")->count();
  230. if (empty($result)) {
  231. return Result::error("没有数据",0);
  232. }
  233. $data = [
  234. 'rows'=>$result->toArray(),
  235. 'count'=>$count
  236. ];
  237. return Result::success($data);
  238. }
  239. /**
  240. * @param array $data
  241. * @return array
  242. */
  243. public function createWebsiteRole(array $data): array
  244. {
  245. $insertData = [
  246. 'website_id'=>$data['website_id'],
  247. 'role_id'=>$data['role_id']??''
  248. ];
  249. $info = WebsiteRole::where($insertData)->first();
  250. if($info){
  251. return Result::error("不能重复添加角色",0);
  252. }
  253. $insertData['admin_user_id'] = $data['admin_user_id']??'';
  254. $insertData['type'] = $data['type']??'';
  255. $result = WebsiteRole::insertGetId($insertData);
  256. if(empty($result)){
  257. return Result::error("创建失败",0);
  258. }else{
  259. return Result::success(["id"=>$result]);
  260. }
  261. }
  262. /**
  263. * 暂时用不上
  264. * @param int $id
  265. * @param array $data
  266. * @return array
  267. */
  268. public function updateWebsiteRole(int $id,array $data): array
  269. {
  270. $insertData = [
  271. 'website_id'=>$data['website_id'],
  272. 'type'=>$data['type']??'',
  273. ];
  274. $result = WebsiteRole::where('id',$id)->update($insertData);
  275. if(empty($result)){
  276. return Result::error("更新失败",0);
  277. }else{
  278. return Result::success();
  279. }
  280. }
  281. /**
  282. * @param int $id
  283. * @return array
  284. */
  285. public function delWebsiteRole(int $id): array
  286. {
  287. $result = WebsiteRole::where('id',$id )->delete();
  288. if(empty($result)){
  289. return Result::error("删除失败",0);
  290. }else{
  291. return Result::success();
  292. }
  293. }
  294. /**
  295. * @param string $keyword
  296. * @param int $page
  297. * @param int $pageSize
  298. * @return array
  299. */
  300. public function getWebsiteRoleUserList(string $keyword,int $page,int $pageSize,int $websiteId,int $roleId):array
  301. {
  302. $where = [
  303. ['website_role_user.website_id','=',$websiteId],
  304. ['website_role_user.role_id','=',$roleId],
  305. ];
  306. $count = WebsiteRoleUser::where($where)->count();
  307. $where[] = ['u.user_name','like','%'.$keyword.'%'];
  308. $result = WebsiteRoleUser::where($where)
  309. ->leftJoin("user as u","website_role_user.user_id","u.id")
  310. ->leftJoin("website as w","website_role_user.website_id","u.id")
  311. ->leftJoin("role as r","website_role_user.role_id","r.id")
  312. ->select("u.*","u.user_name",'w.website_name','r.role_name','website_role_user.id as website_role_user_id','website_role_user.updated_at as user_update_at')
  313. ->limit($pageSize)->offset(($page-1)*$pageSize)->get();
  314. if (empty($result)) {
  315. return Result::error("没有数据",0);
  316. }
  317. $data = [
  318. 'rows'=>$result->toArray(),
  319. 'count'=>$count
  320. ];
  321. return Result::success($data);
  322. }
  323. /**
  324. * @param array $data
  325. * @return array
  326. */
  327. public function createWebsiteRoleUser(array $data): array
  328. {
  329. $insertData = [
  330. 'website_id'=>$data['website_id'],
  331. 'user_id'=>$data['user_id']??'',
  332. ];
  333. $info = WebsiteRoleUser::where($insertData)->first();
  334. if($info){
  335. return Result::error("不能重复添加角色用户",0);
  336. }
  337. $insertData['role_id'] = $data['role_id']??'';
  338. $insertData['admin_user_id'] = $data['admin_user_id']??'';
  339. $insertData['type'] = $data['type']??'';
  340. $result = WebsiteRoleUser::insertGetId($insertData);
  341. if(empty($result)){
  342. return Result::error("创建失败",0);
  343. }else{
  344. return Result::success(["id"=>$result]);
  345. }
  346. }
  347. /**
  348. * @param int $id
  349. * @param array $data
  350. * @return array
  351. */
  352. public function updateWebsiteRoleUser(int $id,array $data): array
  353. {
  354. $insertData = [
  355. 'website_id'=>$data['website_id'],
  356. 'type'=>$data['type']??'',
  357. 'type_id'=>$data['type_id']??'',
  358. 'role_id'=>$data['role_id']??'',
  359. ];
  360. $result = WebsiteRoleUser::where('id',$id)->update($insertData);
  361. if(empty($result)){
  362. return Result::error("更新失败",0);
  363. }else{
  364. return Result::success();
  365. }
  366. }
  367. /**
  368. * @param int $id
  369. * @return array
  370. */
  371. public function delWebsiteRoleUser(int $id): array
  372. {
  373. $result = WebsiteRoleUser::where('id',$id )->delete();
  374. if(empty($result)){
  375. return Result::error("删除失败",0);
  376. }else{
  377. return Result::success();
  378. }
  379. }
  380. /**
  381. * 根据域名获取网站 站点id
  382. * @param array $data
  383. * @return array
  384. */
  385. public function getWebsiteId(array $data): array
  386. {
  387. $where = [
  388. 'website_url'=>$data['website_url']
  389. ];
  390. $result = Website::where($where)->first();
  391. if(empty($result)){
  392. return Result::error("查询站点失败",0);
  393. }else{
  394. return Result::success($result);
  395. }
  396. }
  397. /**
  398. * 查询网站下面的导航
  399. * @param array $data
  400. * @return array
  401. */
  402. public function getWebsiteCategory(array $data): array
  403. {
  404. $where = [
  405. 'website_id'=>$data['website_id'],
  406. 'pid'=>0
  407. ];
  408. $result = WebsiteCategory::where($where)->orderBy('sort','asc')->get();
  409. if(empty($result)){
  410. return Result::error("查询站点栏目失败",0);
  411. }else{
  412. return Result::success($result);
  413. }
  414. }
  415. /**
  416. * 网站首页数据统计, 管理员
  417. * @return void
  418. */
  419. public function getAdminIndex()
  420. {
  421. }
  422. }