ProgramLiveApplyHelper.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <?php
  2. /*
  3. * @Description: 小程序直播申请表
  4. * @Version: *
  5. * @Autor: lexuan
  6. * @Date: 2024-12-12 10:10:38
  7. * @LastEditors: lexuan
  8. * @LastEditTime: 2024-12-12 10:10:38
  9. */
  10. namespace App\DataApiNew\Helper;
  11. use App\DataApiNew\Models\ProgramLiveApply;
  12. use App\Models\Pages;
  13. use App\Models\SpoutExport;
  14. use App\Models\SpoutImport;
  15. use Illuminate\Http\Request;
  16. class ProgramLiveApplyHelper
  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, ProgramLiveApply::query());
  28. $page->before(function ($query) use ($request) {
  29. $query->select(ProgramLiveApply::$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 = ProgramLiveApply::select(ProgramLiveApply::$selectFields);
  39. $query = $this->whens($query, $request);
  40. $query->orderBy('created_at', 'desc');
  41. $header = [
  42. '用户id' => 'user_id',
  43. '身份证号' => 'id_card',
  44. '身份证姓名' => 'id_name',
  45. '申请类型 1:按天 2:按小时' => 'type',
  46. '天数' => 'day',
  47. '小时' => 'hour',
  48. '是否为代理和合伙人 0:否 1:是' => 'is_agent',
  49. '抖音uid' => 'dy_uid',
  50. '不通过原因' => 'reason',
  51. '状态 0:待审核 1:审核通过 2:审核不通过' => 'status',
  52. '创建时间' => 'created_at',
  53. '更新时间' => 'updated_at',
  54. '抖音号' => 'dy_code',
  55. '开始时间' => 'start_time',
  56. '结束时间' => 'end_time',
  57. '支付记录id' => 'program_live_payment_id',
  58. '删除时间' => 'deleted_at',
  59. '支付宝手机号' => 'zfb_phone',
  60. ];
  61. $getEnValue = $this->getEnValue();
  62. $excel = new SpoutExport($header);
  63. $excel->setQuery($query);
  64. $result = $excel->setEnum($getEnValue)->spoutToExcel('excel_out');
  65. return $result ? success($result['url']) : error();
  66. }
  67. // 导入
  68. public function import(Request $request)
  69. {
  70. $header = [
  71. '用户id' => 'user_id',
  72. '身份证号' => 'id_card',
  73. '身份证姓名' => 'id_name',
  74. '申请类型 1:按天 2:按小时' => 'type',
  75. '天数' => 'day',
  76. '小时' => 'hour',
  77. '是否为代理和合伙人 0:否 1:是' => 'is_agent',
  78. '抖音uid' => 'dy_uid',
  79. '不通过原因' => 'reason',
  80. '状态 0:待审核 1:审核通过 2:审核不通过' => 'status',
  81. '创建时间' => 'created_at',
  82. '更新时间' => 'updated_at',
  83. '抖音号' => 'dy_code',
  84. '开始时间' => 'start_time',
  85. '结束时间' => 'end_time',
  86. '支付记录id' => 'program_live_payment_id',
  87. '删除时间' => 'deleted_at',
  88. '支付宝手机号' => 'zfb_phone',
  89. ];
  90. $SpoutImport = new SpoutImport($header);
  91. $dataList = $SpoutImport->setRequest($request)->getExcelData();
  92. return $dataList;
  93. }
  94. // 获取枚举值
  95. public function getEnValue()
  96. {
  97. $data = [];
  98. return $data;
  99. }
  100. // 查询一条
  101. public function find(Request $request)
  102. {
  103. $request->validate([
  104. 'id' => 'required|integer',
  105. ]);
  106. $result = ProgramLiveApply::where(['id' => $request->id])->select(ProgramLiveApply::$selectFields)->first();
  107. return success($result);
  108. }
  109. // 添加
  110. public function insert(Request $request)
  111. {
  112. $request->validate([
  113. // 'name' => 'required',
  114. ]);
  115. $result = ProgramLiveApply::create($request->all());
  116. if ($result) {
  117. return success();
  118. } else {
  119. return error();
  120. }
  121. }
  122. // 修改
  123. public function update(Request $request)
  124. {
  125. $request->validate([
  126. 'id' => 'required|integer',
  127. ]);
  128. $result = ProgramLiveApply::where(['id' => $request->id])->update($request->all());
  129. if ($result) {
  130. return success();
  131. } else {
  132. return error();
  133. }
  134. }
  135. // 删除
  136. public function delete(Request $request)
  137. {
  138. $request->validate([
  139. 'ids' => 'required',
  140. ]);
  141. $id_str = $request->ids;
  142. $arr = explode(",", $id_str);
  143. // 查询是否存在子数据
  144. // $count = Shop::whereIn('tm_id',$arr)->count();
  145. // if($count > 0){
  146. // return ['code'=>0,'msg'=>"存在子数据,禁止删除"];
  147. // }
  148. $result = ProgramLiveApply::whereIn('id', $arr)->delete();
  149. if ($result) {
  150. return success();
  151. } else {
  152. return error();
  153. }
  154. }
  155. // 抖音直播申请
  156. public function programLiveApplySubmit(Request $request)
  157. {
  158. $request->validate([
  159. 'dy_uid' => 'required', // 抖音uid
  160. 'dy_code' => 'required', // 抖音号
  161. 'id_card' => 'required', // 身份证号
  162. 'id_name' => 'required', // 身份证姓名
  163. ]);
  164. $user_id = $request->user()->id;
  165. $count = ProgramLiveApply::where('user_id', $user_id)
  166. ->whereIn('status', [0])
  167. ->count();
  168. if ($count > 0) {
  169. return ['code' => 0, 'msg' => "请勿重复申请"];
  170. }
  171. $result = ProgramLiveApply::create([
  172. 'user_id' => $user_id,
  173. 'id_card' => $request->id_card,
  174. 'id_name' => $request->id_name,
  175. 'dy_uid' => $request->dy_uid,
  176. 'dy_code' => $request->dy_code,
  177. ]);
  178. if ($result) {
  179. return ['code' => 1, 'msg' => "success", 'data' => $result->id];
  180. } else {
  181. return error();
  182. }
  183. }
  184. // 抖音直播审核
  185. public function programLiveApplyAudit(Request $request)
  186. {
  187. $request->validate([
  188. 'id' => 'required|integer',
  189. 'status' => 'required|integer|in:1,2',
  190. ]);
  191. $result = ProgramLiveApply::where(['id' => $request->id])
  192. ->update([
  193. 'status' => $request->status,
  194. 'reason' => $request->input('reason', null),
  195. ]);
  196. if ($result) {
  197. return success();
  198. } else {
  199. return error();
  200. }
  201. }
  202. }