Point.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace addons\ddrive\library;
  3. use think\Db;
  4. class Point
  5. {
  6. /**
  7. * 订单完成,用户增加金额
  8. *
  9. * @param [type] $params
  10. * @return void
  11. */
  12. public function orderDone($params)
  13. {
  14. // 增加用户积分score
  15. Db::name('user')->where('id', $params['user_id'])->setInc('score', $params['price']);
  16. // 记录日志
  17. $this->addScore($params['user_id'], $params['price'], '订单奖励');
  18. }
  19. /**
  20. * 发帖增加积分
  21. *
  22. * @param [type] $params
  23. * @return void
  24. */
  25. public function messageAdd($params)
  26. {
  27. $this->addScore($params['user_id'], 5, '发起话题');
  28. }
  29. /**
  30. * 评论增加积分
  31. *
  32. * @param [type] $params
  33. * @return void
  34. */
  35. public function commentAdd($params)
  36. {
  37. $this->addScore($params['user_id'], 1, '话题被评论');
  38. }
  39. /**
  40. * 增加积分
  41. *
  42. * @param [type] $user_id
  43. * @param [type] $score
  44. * @return void
  45. */
  46. public function addScore($user_id, $score, $memo)
  47. {
  48. // 查询修改前积分
  49. $before = Db::name('user')->where('id', $user_id)->value('score');
  50. $log = [
  51. 'user_id' => $user_id,
  52. 'score' => $score,
  53. 'before' => $before,
  54. 'after' => $before + $score,
  55. 'memo' => $memo,
  56. 'createtime' => time(),
  57. ];
  58. Db::name('user')->where('id', $user_id)->setInc('score', $score);
  59. Db::name('user_score_log')->insert($log);
  60. }
  61. }