UserSign.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\wap\model\user;
  12. use service\SystemConfigService;
  13. use basic\ModelBasic;
  14. use traits\ModelTrait;
  15. class UserSign extends ModelBasic
  16. {
  17. use ModelTrait;
  18. public static function checkUserSigned($uid)
  19. {
  20. return UserBill::be(['uid'=>$uid,'add_time'=>['>',strtotime('today')],'category'=>'gold_num','type'=>'sign']);
  21. }
  22. public static function userSignedCount($uid)
  23. {
  24. return self::userSignBillWhere($uid)->count();
  25. }
  26. /**
  27. * @param $uid
  28. * @return Model
  29. */
  30. public static function userSignBillWhere($uid)
  31. {
  32. return UserBill::where(['uid'=>$uid,'category'=>'gold_num','type'=>'sign']);
  33. }
  34. /**近期用户签到记录
  35. * @param $uid
  36. */
  37. public static function userSignInlist($uid,$page,$limit){
  38. $list=self::userSignBillWhere($uid)->field('number,add_time')->order('add_time DESC')
  39. ->page((int)$page,(int)$limit)->select();
  40. $list=count($list) >0 ? $list->toArray() : [] ;
  41. foreach ($list as &$value){
  42. $value['number']=(int)$value['number'];
  43. $value['add_time']=date('Y-m-d H:i:s',$value['add_time']);
  44. }
  45. return $list;
  46. }
  47. public static function sign($userInfo,$gold_name)
  48. {
  49. $uid = $userInfo['uid'];
  50. $gold_coin= SystemConfigService::get('single_gold_coin')?:0;
  51. $balance=bcadd($gold_coin,$userInfo['gold_num'],0);
  52. self::beginTrans();
  53. $res1 = UserBill::income('用户签到',$uid,'gold_num','sign',$gold_coin,0,$balance,'签到获得'.floatval($gold_coin).$gold_name);
  54. $res2 = User::bcInc($uid,'gold_num',$gold_coin,'uid');
  55. $res3=self::userSign($gold_coin,$uid,$balance);
  56. $res = $res1 && $res2 && $res3;
  57. self::checkTrans($res);
  58. if($res)
  59. return $gold_coin;
  60. else
  61. return false;
  62. }
  63. public static function userSign($gold_coin,$uid,$balance){
  64. $data=[
  65. 'uid'=>$uid,
  66. 'title'=>'签到奖励',
  67. 'number'=>$gold_coin,
  68. 'balance'=>$balance,
  69. 'add_time'=>time()
  70. ];
  71. return self::set($data);
  72. }
  73. }