DyLiveApplyHelper.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <?php
  2. /*
  3. * @Description: 抖音直播申请表
  4. * @Version: *
  5. * @Autor: lexuan
  6. * @Date: 2024-12-12 09:01:14
  7. * @LastEditors: lexuan
  8. * @LastEditTime: 2024-12-12 09:01:14
  9. */
  10. namespace App\DataApiNew\Helper;
  11. use App\DataApiNew\Models\DyLiveApply;
  12. use App\Models\Pages;
  13. use App\Models\SpoutExport;
  14. use App\Models\SpoutImport;
  15. use Illuminate\Http\Request;
  16. class DyLiveApplyHelper
  17. {
  18. // 查询条件
  19. public function whens($query, $request)
  20. {
  21. return $query
  22. ->when($request->filled('id'), fn ($q) => $q->where('id', $request->id));
  23. }
  24. // 查询列表
  25. public function select(Request $request)
  26. {
  27. $page = new Pages($request, DyLiveApply::query());
  28. $page->before(function ($query) use ($request) {
  29. $query->select(DyLiveApply::$selectFields);
  30. return $this->whens($query, $request);
  31. });
  32. $result = $page->paginate();
  33. return $result;
  34. }
  35. // 导出
  36. public function export(Request $request)
  37. {
  38. $query = DyLiveApply::select(DyLiveApply::$selectFields);
  39. $query = $this->whens($query, $request);
  40. $query->orderBy('created_at', 'desc');
  41. $header = [
  42. '用户id' => 'user_id',
  43. '抖音uid' => 'dy_uid',
  44. '不通过原因' => 'reason',
  45. '状态 0:待审核 1:审核通过 2:审核不通过' => 'status',
  46. '创建时间' => 'created_at',
  47. '更新时间' => 'updated_at',
  48. '抖音号' => 'dy_code',
  49. '删除时间' => 'deleted_at',
  50. ];
  51. $getEnValue = $this->getEnValue();
  52. $excel = new SpoutExport($header);
  53. $excel->setQuery($query);
  54. $result = $excel->setEnum($getEnValue)->spoutToExcel('excel_out');
  55. return $result ? success($result['url']) : error();
  56. }
  57. // 导入
  58. public function import(Request $request)
  59. {
  60. $header = [
  61. '用户id' => 'user_id',
  62. '抖音uid' => 'dy_uid',
  63. '不通过原因' => 'reason',
  64. '状态 0:待审核 1:审核通过 2:审核不通过' => 'status',
  65. '创建时间' => 'created_at',
  66. '更新时间' => 'updated_at',
  67. '抖音号' => 'dy_code',
  68. '删除时间' => 'deleted_at',
  69. ];
  70. $SpoutImport = new SpoutImport($header);
  71. $dataList = $SpoutImport->setRequest($request)->getExcelData();
  72. return $dataList;
  73. }
  74. // 获取枚举值
  75. public function getEnValue()
  76. {
  77. $data = [];
  78. return $data;
  79. }
  80. // 查询一条
  81. public function find(Request $request)
  82. {
  83. $request->validate([
  84. 'id' => 'required|integer',
  85. ]);
  86. $result = DyLiveApply::where(['id' => $request->id])->select(DyLiveApply::$selectFields)->first();
  87. return success($result);
  88. }
  89. // 添加
  90. public function insert(Request $request)
  91. {
  92. $request->validate([
  93. 'dy_uid' => 'required', // 抖音uid
  94. 'dy_code' => 'required', // 抖音号
  95. ]);
  96. $result = DyLiveApply::create($request->all());
  97. if ($result) {
  98. return success();
  99. } else {
  100. return error();
  101. }
  102. }
  103. // 修改
  104. public function update(Request $request)
  105. {
  106. $request->validate([
  107. 'id' => 'required|integer',
  108. ]);
  109. $result = DyLiveApply::where(['id' => $request->id])->update($request->all());
  110. if ($result) {
  111. return success();
  112. } else {
  113. return error();
  114. }
  115. }
  116. // 删除
  117. public function delete(Request $request)
  118. {
  119. $request->validate([
  120. 'ids' => 'required',
  121. ]);
  122. $id_str = $request->ids;
  123. $arr = explode(",", $id_str);
  124. // 查询是否存在子数据
  125. // $count = Shop::whereIn('tm_id',$arr)->count();
  126. // if($count > 0){
  127. // return ['code'=>0,'msg'=>"存在子数据,禁止删除"];
  128. // }
  129. $result = DyLiveApply::whereIn('id', $arr)->delete();
  130. if ($result) {
  131. return success();
  132. } else {
  133. return error();
  134. }
  135. }
  136. // 抖音直播申请
  137. public function dyLiveApplySubmit(Request $request)
  138. {
  139. $request->validate([
  140. 'dy_uid' => 'required', // 抖音uid
  141. 'dy_code' => 'required', // 抖音号
  142. ]);
  143. $user_id = $request->user()->id;
  144. $count = DyLiveApply::where(['user_id' => $user_id])->whereIn('status', [0, 1])->count();
  145. if ($count >= 6) {
  146. return ['code' => 0, 'msg' => "请勿重复申请"];
  147. }
  148. $result = DyLiveApply::create([
  149. 'user_id' => $user_id,
  150. 'dy_uid' => $request->dy_uid,
  151. 'dy_code' => $request->dy_code,
  152. ]);
  153. if ($result) {
  154. return success();
  155. } else {
  156. return error();
  157. }
  158. }
  159. // 抖音直播审核
  160. public function dyLiveApplyAudit(Request $request)
  161. {
  162. $request->validate([
  163. 'id' => 'required|integer',
  164. 'status' => 'required|integer|in:1,2',
  165. // 'reason' => 'string|max:200', //曹孟影注释掉的,前端传空字符串的时候报错:参数校验失败 reason - validation.string
  166. ]);
  167. $result = DyLiveApply::where(['id' => $request->id])
  168. ->update([
  169. 'status' => $request->status,
  170. 'reason' => $request->input('reason', null),
  171. ]);
  172. if ($result) {
  173. return success();
  174. } else {
  175. return error();
  176. }
  177. }
  178. }