Gold.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace app\controller\api\user;
  3. use crmeb\basic\BaseController;
  4. use app\common\repositories\user\UserRepository;
  5. use think\App;
  6. use think\facade\Db;
  7. class Gold extends BaseController
  8. {
  9. public $repository;
  10. public function __construct(App $app, UserRepository $repository)
  11. {
  12. parent::__construct($app);
  13. $this->repository = $repository;
  14. }
  15. public function score_to_gold(){
  16. $uid = $this->request->uid();
  17. $score = $this->request->param('score');
  18. $nowScore = Db::name('user') -> where('uid',$uid) -> value("score");
  19. if($nowScore < $score){
  20. return app('json')->fail('积分不足');
  21. }
  22. if ($score % 30 != 0){
  23. return app('json')->fail('积分必需为30的倍数');
  24. }
  25. Db::startTrans();
  26. try {
  27. $gold = $score / 30;
  28. //积分减少
  29. $userRepository = app()->make(UserRepository::class);
  30. $userRepository -> sign_add($uid,$score,1,'积分转入储蓄罐','','','',2);
  31. //金币增加
  32. $userRepository -> gold_add($uid,$gold,'积分转入');
  33. // 提交事务
  34. Db::commit();
  35. return app('json')->success('转入成功');
  36. } catch (\Exception $e) {
  37. // 回滚事务
  38. Db::rollback();
  39. return app('json')->fail('转入失败');
  40. }
  41. }
  42. }