UserCoin.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace app\models\user;
  3. use crmeb\traits\ModelTrait;
  4. use crmeb\basic\BaseModel;
  5. class UserCoin extends BaseModel {
  6. use ModelTrait;
  7. public static function upsertAddr($uid, $symbol, $addr)
  8. {
  9. $cond = ['uid'=>$uid, 'symbol'=>$symbol];
  10. $row = self::where($cond)->find();
  11. if ($row) {
  12. return self::where($cond)->update(['addr'=>$addr]);
  13. }else{
  14. return self::create([
  15. 'uid'=>$uid,
  16. 'symbol'=>$symbol,
  17. 'addr'=>$addr,
  18. ]);
  19. }
  20. }
  21. public static function upsertCoin($uid, $symbol, $amount)
  22. {
  23. $cond = ['uid'=>$uid, 'symbol'=>$symbol];
  24. $row = self::where($cond)->find();
  25. if ($row) {
  26. return self::where($cond)->inc('balance', $amount)->update();
  27. }else{
  28. return self::create([
  29. 'uid'=>$uid,
  30. 'symbol'=>$symbol,
  31. 'balance'=>$amount,
  32. ]);
  33. }
  34. }
  35. public static function getUserCoin($uid, $page, $limit)
  36. {
  37. $rows = self::alias('c')->join('dict_coin d', 'c.symbol=d.symbol')
  38. ->where('c.uid', $uid)
  39. ->field('d.icon,c.symbol,c.balance,c.addr')
  40. ->order('c.symbol asc')
  41. ->page(intval($page), intval($limit))
  42. ->select();
  43. count($rows) && $rows = $rows->toArray();
  44. return $rows;
  45. }
  46. }