MiniprogramController.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace Modules\Manage\Http\Controllers;
  3. use Illuminate\Routing\Controller;
  4. use Illuminate\Http\Request;
  5. use Modules\Manage\Enmus\MiniprogramType;
  6. use Modules\Manage\Http\Requests\MiniprogramRequest;
  7. use Modules\Manage\Http\Requests\MiniprogramUpdateRequest;
  8. use Modules\Manage\Models\Miniprogram;
  9. use Illuminate\Support\Facades\DB;
  10. use Log;
  11. class MiniprogramController extends Controller
  12. {
  13. public function __construct(protected readonly Miniprogram $miniprogram)
  14. {
  15. }
  16. /**
  17. * 小程序列表
  18. * @param Request $request
  19. * @return void
  20. */
  21. public function index(Request $request)
  22. {
  23. $name = $request->get('name');
  24. $play_name = $request->get('play_name');
  25. $company = $request->get('company');
  26. $type = $request->get('type');
  27. $page_size = $request->input('limit', 15);
  28. $where = [];
  29. if($name){
  30. $where[] = ['name','like','%'.$name.'%'];
  31. }
  32. if($play_name){
  33. $where[] = ['play_name','like','%'.$play_name.'%'];
  34. }
  35. if($company){
  36. $where[] = ['company','like','%'.$company.'%'];
  37. }
  38. if($type){
  39. $where[] = ['type','=',$type];
  40. }
  41. $result = $this->miniprogram->where($where)->paginate($page_size);
  42. foreach($result as $item){
  43. $item->type_name = MiniprogramType::from($item->type)->name();
  44. $item->status_name = $item->status == 1 ?'启用':'禁用';
  45. }
  46. return $result;
  47. }
  48. /**
  49. * 添加小程序
  50. *
  51. * @param MiniprogramRequest $request
  52. * @return void
  53. */
  54. public function store(MiniprogramRequest $request)
  55. {
  56. $validate_result = $request->validated();
  57. $validate_result['remark'] = $request->post('remark','') ?? '';
  58. return $this->miniprogram->create($validate_result)->toArray();
  59. }
  60. /**
  61. * 小程序详情
  62. *
  63. * @param [type] $id
  64. * @return void
  65. */
  66. public function show($id)
  67. {
  68. return $this->miniprogram->find($id)->toArray();
  69. }
  70. /**
  71. * 更新小程序
  72. *
  73. * @param [type] $id
  74. * @param MiniprogramUpdateRequest $request
  75. * @return void
  76. */
  77. public function update($id, MiniprogramUpdateRequest $request)
  78. {
  79. $validate_result = $request->validated();
  80. if($request->post('remark','')){
  81. $validate_result['remark'] = $request->post('remark','');
  82. }
  83. $this->miniprogram->where('id',$id)->update($validate_result);
  84. return [];
  85. }
  86. /**
  87. * 小程序类型列表
  88. *
  89. * @return array [ ['name'=>'微信小程序','id'=>1],[],[] ]
  90. */
  91. public function typeList(){
  92. $type_list = MiniprogramType::cases();
  93. $data = array_map( fn($item)=>['name'=>$item->name(),'value'=>$item->value()],$type_list );
  94. return $data;
  95. }
  96. /**
  97. * 获取所有公司
  98. *
  99. * @return void
  100. */
  101. public function companyList(){
  102. return $this->miniprogram->select(DB::raw('distinct company'))->get()->pluck('company');
  103. }
  104. }