WebsiteService.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <?php
  2. namespace App\JsonRpc;
  3. use App\Model\Website;
  4. use App\Model\WebsiteColumn;
  5. use Hyperf\RpcServer\Annotation\RpcService;
  6. use App\Tools\Result;
  7. use function PHPUnit\Framework\isNull;
  8. #[RpcService(name: "WebsiteService", protocol: "jsonrpc-http", server: "jsonrpc-http")]
  9. class WebsiteService implements WebsiteServiceInterface
  10. {
  11. /**
  12. * @param string $keyword
  13. * @param int $page
  14. * @param int $pageSize
  15. * @return array
  16. */
  17. public function getWebsitetList(string $keyword,int $page,int $pageSize):array
  18. {
  19. $where = [
  20. ['website.website_name','like','%'.$keyword.'%']
  21. ];
  22. $result = Website::where($where)
  23. ->leftJoin("website_column","website.website_column_id","website_column.id")
  24. ->leftJoin("district","district.id","website.city_id")
  25. ->select("website.*","website_column.column_name","district.name")
  26. ->limit($pageSize)->offset(($page-1)*$pageSize)->get();
  27. $count = Website::where($where)->count();
  28. if (empty($result)) {
  29. return Result::error("没有数据",0);
  30. }
  31. $data = [
  32. 'rows'=>$result->toArray(),
  33. 'count'=>$count
  34. ];
  35. return Result::success($data);
  36. }
  37. /**
  38. * @param array $data
  39. * @return array
  40. */
  41. public function createWebsite(array $data): array
  42. {
  43. $insertData = [
  44. 'website_name'=>$data['website_name'],
  45. 'logo'=>$data['logo']??'',
  46. 'website_url'=>$data['website_url']??'',
  47. 'city_id'=>$data['city_id']??0,
  48. 'website_column_id'=>$data['website_column_id'],
  49. 'title'=>$data['title']??'',
  50. 'keywords'=>$data['keywords']??'',
  51. 'description'=>$data['description']??'',
  52. 'status'=>$data['status']??0,
  53. 'website_column_arr_id'=>$data['website_column_arr_id'],
  54. 'city_arr_id'=>$data['city_arr_id']??[0],
  55. ];
  56. $result = Website::insertGetId($insertData);
  57. if(empty($result)){
  58. return Result::error("创建失败",0);
  59. }else{
  60. return Result::success(["id"=>$result]);
  61. }
  62. }
  63. /**
  64. * @param int $id
  65. * @param array $data
  66. * @return array
  67. */
  68. public function updateWebsite(int $id,array $data): array
  69. {
  70. $insertData = [
  71. 'website_name'=>$data['website_name'],
  72. 'logo'=>$data['logo']??'',
  73. 'website_url'=>$data['website_url']??'',
  74. 'city_id'=>$data['city_id']??0,
  75. 'website_column_id'=>$data['website_column_id'],
  76. 'title'=>$data['title']??'',
  77. 'keywords'=>$data['keywords']??'',
  78. 'description'=>$data['description']??'',
  79. 'status'=>$data['status']??0,
  80. 'website_column_arr_id'=>$data['website_column_arr_id'],
  81. 'city_arr_id'=>$data['city_arr_id']??[0],
  82. ];
  83. $result = Website::where('id',$id)->update($insertData);
  84. var_dump("更新站点",$result);
  85. if(empty($result)){
  86. return Result::error("更新失败",0);
  87. }else{
  88. return Result::success();
  89. }
  90. }
  91. /**
  92. * @param int $id
  93. * @return array
  94. */
  95. public function delWebsite(int $id): array
  96. {
  97. $result = Website::where('id',$id )->delete();
  98. var_dump("删除站点",$result);
  99. if(empty($result)){
  100. return Result::error("删除失败",0);
  101. }else{
  102. return Result::success();
  103. }
  104. }
  105. /**
  106. * @param int $id
  107. * @return array
  108. */
  109. public function getWebsiteInfo(int $id): array
  110. {
  111. $result = Website::where('id',$id )->first();
  112. if(empty($result)){
  113. return Result::error("数据不存在",0);
  114. }else{
  115. return Result::success($result->toArray());
  116. }
  117. }
  118. /**
  119. * 查询所有的站点栏目
  120. * @return array
  121. */
  122. public function getWebsiteColumn(array $data): array
  123. {
  124. $result = WebsiteColumn::where($data)->get();
  125. if(empty($result)){
  126. return Result::error("数据不存在",0);
  127. }else{
  128. return Result::success($result->toArray());
  129. }
  130. }
  131. /**
  132. * @param string $keyword
  133. * @param int $page
  134. * @param int $pageSize
  135. * @return array
  136. */
  137. public function getWebsiteColumnList(string $keyword,int $page,int $pageSize):array
  138. {
  139. $where = [
  140. ['website_column.column_name','like','%'.$keyword.'%']
  141. ];
  142. $result = WebsiteColumn::where($where)
  143. ->leftJoin("website_column as wc","website_column.pid","wc.id")
  144. ->select("website_column.*","wc.column_name as parent_column_name")
  145. ->limit($pageSize)->offset(($page-1)*$pageSize)->get();
  146. $count = WebsiteColumn::where($where)->count();
  147. if (empty($result)) {
  148. return Result::error("没有数据",0);
  149. }
  150. $data = [
  151. 'rows'=>$result->toArray(),
  152. 'count'=>$count
  153. ];
  154. return Result::success($data);
  155. }
  156. /**
  157. * @param array $data
  158. * @return array
  159. */
  160. public function createWebsiteColumn(array $data): array
  161. {
  162. $insertData = [
  163. 'column_name'=>$data['column_name'],
  164. 'pid'=>$data['pid']??'',
  165. 'column_arr_id'=>$data['column_arr_id']??[0],
  166. 'sort'=>$data['sort']??0,
  167. 'remark'=>$data['remark']??'',
  168. ];
  169. $result = WebsiteColumn::insertGetId($insertData);
  170. if(empty($result)){
  171. return Result::error("创建失败",0);
  172. }else{
  173. return Result::success(["id"=>$result]);
  174. }
  175. }
  176. /**
  177. * @param int $id
  178. * @param array $data
  179. * @return array
  180. */
  181. public function updateWebsiteColumn(int $id,array $data): array
  182. {
  183. $insertData = [
  184. 'column_name'=>$data['column_name'],
  185. 'pid'=>$data['pid']??'',
  186. 'column_arr_id'=>$data['column_arr_id']??[0],
  187. 'sort'=>$data['sort']??0,
  188. 'remark'=>$data['remark']??'',
  189. ];
  190. $result = WebsiteColumn::where('id',$id)->update($insertData);
  191. if(empty($result)){
  192. return Result::error("更新失败",0);
  193. }else{
  194. return Result::success();
  195. }
  196. }
  197. /**
  198. * @param int $id
  199. * @return array
  200. */
  201. public function delWebsiteColumn(int $id): array
  202. {
  203. $result = WebsiteColumn::where('id',$id )->delete();
  204. if(empty($result)){
  205. return Result::error("删除失败",0);
  206. }else{
  207. return Result::success();
  208. }
  209. }
  210. }