Certificate.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Gold
  5. * Date: 2024/1/24
  6. * Time: 8:41
  7. */
  8. namespace app\api\controller;
  9. use app\admin\model\books\Books; //教材
  10. use app\admin\model\books\Certificate as CertificateModel;
  11. use app\common\controller\Api;
  12. class Certificate extends Api
  13. {
  14. protected $noNeedRight = [];
  15. /**
  16. * 我的体验卡
  17. *
  18. */
  19. public function getMyCertificate(){
  20. $data = input();
  21. if(!isset($data['page']) || $data['page'] == '' || $data['page'] == null){
  22. $page = 1;
  23. }else{
  24. $page = $data['page'];
  25. }
  26. if(!isset($data['limit']) || $data['limit'] == '' || $data['limit'] == null){
  27. $limit = 20;
  28. }else{
  29. $limit = $data['limit'];
  30. }
  31. $where = [];
  32. if(isset($data['is_expire']) && $data['is_expire'] !== '' && $data['is_expire'] !== null){
  33. $where['is_expire'] = $data['is_expire'];
  34. }
  35. $uid = $this->auth->id;
  36. $CertificateModel = new CertificateModel();
  37. $list = $CertificateModel->where($where)->with(['goods'=>function($query){
  38. $query->field('id,title,image');
  39. }])->where('user_id',$uid)->paginate([
  40. 'list_rows'=> $limit,
  41. 'page' => $page,
  42. ]);
  43. $this->success('操作成功',$list);
  44. }
  45. /**
  46. * 使用体验卡
  47. *
  48. */
  49. public function useCertificate(){
  50. $data = input();
  51. $uid = $this->auth->id;
  52. $date = date('Y-m-d H:i:s');
  53. $date_end = date("Y-m-d H:i:s", strtotime("3 day"));
  54. $CertificateModel = new CertificateModel();
  55. $find = $CertificateModel->where('user_id',$uid)->where('id',$data['id'])->where('is_deleted',1)->find();
  56. if(!$find){
  57. $this->error('体验卡不存在');
  58. }
  59. if($find['effective_time'] < $date){
  60. $this->error('体验卡已过期');
  61. }
  62. if($find['status'] == 1){
  63. $this->error('该体验卡已使用');
  64. }
  65. $arr = [
  66. 'free_start_time' => $date,
  67. 'free_end_time' => $date_end,
  68. 'status' => 1
  69. ];
  70. if($CertificateModel->where('id',$data['id'])->update($arr)){
  71. $this->success('操作成功');
  72. }
  73. }
  74. }