UserSignInController.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2020-09-07
  6. * Time: 10:09
  7. */
  8. namespace api\js\controller;
  9. use api\js\model\SignInSetModel;
  10. use api\js\model\UserModel;
  11. use api\js\model\UserSignInModel;
  12. use cmf\controller\RestUserBaseController;
  13. use think\Db;
  14. class UserSignInController extends RestUserBaseController
  15. {
  16. public function addPost()
  17. {
  18. $user_id = $this->getUserId();
  19. $day = date('Y-m-d');
  20. $UserSignInModel = new UserSignInModel();
  21. $monthDay = date('t');
  22. $info = $UserSignInModel->where('user_id',$user_id)->find();
  23. $integral = SignInSetModel::where('day',$info['num'])->value('integral');
  24. $acquireIntegral = isset($integral) ? $integral : 1;
  25. if($info['sign_day'] == $day){
  26. $this->error('今天已签到');
  27. }else if($info['sign_day'] == date('Y-m-d', strtotime('-1 day'))){
  28. if($info['num'] == ($monthDay-1)){
  29. $num = 0;
  30. }elseif ($info['num'] < ($monthDay-1));
  31. $num = $info['num']+1;
  32. $UserSignInModel->allowField(true)->isUpdate(true)->save(['sign_day'=>$day,'num'=>$num],['id'=>$info['id']]);
  33. }else{
  34. if($info['id']){
  35. $UserSignInModel->allowField(true)->isUpdate(true)->save(['sign_day'=>$day,'num'=>1],['id'=>$info['id']]);
  36. }else{
  37. $UserSignInModel->allowField(true)->isUpdate(false)->save(['sign_day'=>$day,'num'=>1,'user_id'=>$user_id]);
  38. }
  39. }
  40. Db::name('user_sign_in_log')->insert(['user_id'=>$user_id,'sign_day'=>$day]);
  41. UserModel::where('id',$user_id)->setInc('score',$acquireIntegral);
  42. $this->success('签到成功');
  43. }
  44. public function getUserSign()
  45. {
  46. $user_id = $this->getUserId();
  47. $where['user_id'] = $this->getUserId();
  48. $list = Db::name('user_sign_in_log')->where('user_id',$user_id)->where('sign_day','like',date('Y-m').'%')->field('sign_day')->select();
  49. $this->success('ok',$list);
  50. }
  51. }