AccountLog.php 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace app\weixin\model;
  3. use app\weixin\service\PRedis;
  4. use think\Model;
  5. class AccountLog extends Model
  6. {
  7. protected $table = 'sg_account_log';
  8. /**
  9. * 账户明细
  10. * @param $params
  11. * @param int $pageSize
  12. * @return array
  13. * @throws \think\exception\DbException
  14. */
  15. public static function getLogs($params, $pageSize = 15)
  16. {
  17. $userId = isset($params['user_id']) ? $params['user_id'] : 0;
  18. $where = ['b.user_id' => $userId,'b.account_type'=> 1];
  19. $changeType = isset($params['change_type']) ? $params['change_type'] : 0;
  20. if ($changeType) {
  21. $where['b.change_type'] = $changeType;
  22. }
  23. $type = isset($params['type']) ? $params['type'] : 0;
  24. $types = [
  25. '爱心充值'=> '爱心充值',
  26. '活动报名'=> '活动报名',
  27. '完善资料奖励'=> '完善资料奖励',
  28. '学历认证成功奖励'=> '学历认证成功奖励',
  29. '工作认证成功奖励'=> '工作认证成功奖励',
  30. '职业认证成功奖励'=> '职业认证成功奖励',
  31. '认识'=> '申请微信认识',
  32. '审核超时,退还'=> '申请微信认识退还',
  33. '单身推荐送'=> '加入单身推荐赠送',
  34. '注销扣除'=> '账户注销扣除',
  35. '付费设置隐身'=> '付费设置隐身模式',
  36. '举报用户'=> '',
  37. '注册奖励'=> '',
  38. ];
  39. $dataList = AccountLog::alias('b')
  40. ->leftJoin('user u', 'u.id=b.user_id')
  41. ->where($where)
  42. ->where(function ($query) use ($type){
  43. if($type == 1){
  44. $query->where(['type'=> 1])->whereIn('status',[1,2]);
  45. }else if ($type == 5){
  46. $query->where(['status'=> 2])->whereIn('type',[3,5,9,10]);
  47. }else if ($type > 0){
  48. $query->where(['type'=> $type,'status'=> 2]);
  49. }
  50. })
  51. ->field('b.*,u.user_nickname')
  52. ->order("b.created_at desc")
  53. ->paginate($pageSize)
  54. ->each(function ($item, $k) use ($types) {
  55. $item['money'] = floatval($item['money']);
  56. $typeArr = [1=>"充值",2=>"支付",3=>"退款",4=>"平台奖励",5=>"平台处理",6=>"VIP购买",7=>"人工牵线付费",8=>"提现",9=>"活动退款",10=>'赠送',11=>'首页置顶',12=>'签到奖励'];
  57. $type = isset($item['type']) ? $item['type'] : 0;
  58. $remark = isset($item['remark']) ? $item['remark'] : '';
  59. $remarkReg = $remark? explode('昵称', $remark) : '';
  60. $remarkRegText = isset($remarkReg[1]) && $remarkReg[1]? '邀请用户'.$remarkReg[1] : '邀请用户注册';
  61. $item['remark_text'] = $remark? $remark : (isset($typeArr[$type])? $typeArr[$type] : '爱心变动');
  62. foreach ($types as $k => $v){
  63. if(preg_match("/{$k}/", $remark)){
  64. $remarkRegText = $k == '举报用户' && $remarkReg[1]? '举报用户'.$remarkReg[1] : $remarkRegText;
  65. $item['remark_text'] = $v? $v : $remarkRegText;
  66. }
  67. }
  68. return $item;
  69. });
  70. $dataList = $dataList ? $dataList->toArray() : [];
  71. return $dataList;
  72. }
  73. /**
  74. * 用户是否消费过
  75. * @param $userId
  76. * @param $type
  77. * @return bool
  78. */
  79. public static function check($userId){
  80. $cacheKey = "caches:accounts:check:{$userId}";
  81. if(PRedis::get($cacheKey)){
  82. return true;
  83. }
  84. if($id = AccountLog::where(['user_id'=> $userId,'status'=>2,'change_type'=>2])->value('id')){
  85. PRedis::set($cacheKey, $id, rand(10, 30));
  86. }
  87. return $id? true : false;
  88. }
  89. }