| | |
| | | use app\common\enum\user\grade\ChangeTypeEnum; |
| | | use app\common\enum\user\balanceLog\BalanceLogSceneEnum as SceneEnum; |
| | | use app\shop\model\user\PointsLog as PointsLogModel; |
| | | use app\shop\model\user\ConsumptionLog as ConsumptionLogModel; |
| | | use app\shop\model\plus\agent\User as AgentUserModel; |
| | | /** |
| | | * 用户模型 |
| | | */ |
| | | class User extends UserModel |
| | | { |
| | | /** |
| | | * 提现到余额 by lyzflash |
| | | */ |
| | | public static function cashToBalance($user_id, $money, $describe) |
| | | { |
| | | $describe = !is_array($describe) ? [$describe] : $describe; |
| | | $model = parent::detail($user_id); |
| | | $model->where('user_id', '=', $user_id)->inc('balance', $money)->update(); |
| | | // 记录余额明细 |
| | | BalanceLogModel::add(SceneEnum::CASH, [ |
| | | 'user_id' => $user_id, |
| | | 'money' => $money, |
| | | 'app_id' => $model['app_id'], |
| | | ], $describe); |
| | | // 添加到可提现的余额 |
| | | // parent::addCashMoney($user_id, $money); |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 获取当前用户总数 |
| | | */ |
| | |
| | | } |
| | | if($is_page){ |
| | | // 获取用户列表 |
| | | return $model->alias('user')->with(['grade'])->distinct(true)->field(['user.*','referee.nickName as referee_name,referee.avatarUrl as referee_avatarUrl']) |
| | | return $model->alias('user')->with(['grade','branch'])->distinct(true)->field(['user.*','referee.nickName as referee_name,referee.avatarUrl as referee_avatarUrl']) |
| | | ->where('user.is_delete', '=', '0') |
| | | ->join('user_tag tag', 'user.user_id = tag.user_id','left') |
| | | ->join('user referee', 'user.referee_id = referee.user_id','left') |
| | |
| | | ->paginate($params); |
| | | }else{ |
| | | // 获取用户列表 |
| | | return $model->alias('user')->with(['grade']) |
| | | return $model->alias('user')->with(['grade','branch']) |
| | | ->where('user.is_delete', '=', '0') |
| | | ->join('user referee', 'user.referee_id = referee.user_id','left') |
| | | ->order(['user.create_time' => 'desc']) |
| | |
| | | return $this->rechargeToBalance($storeUserName, $data['balance']); |
| | | } elseif ($source == 1) { |
| | | return $this->rechargeToPoints($storeUserName, $data['points']); |
| | | } elseif ($source == 2) { |
| | | return $this->rechargeToconCumption($storeUserName, $data['consumption']); |
| | | } |
| | | return false; |
| | | } |
| | |
| | | event('UserGrade', $this['user_id']); |
| | | return true; |
| | | } |
| | | /** |
| | | * 用户充值:消费券 |
| | | */ |
| | | private function rechargeToconCumption($storeUserName, $data) |
| | | { |
| | | if (!isset($data['value']) || $data['value'] === '' || $data['value'] < 0) { |
| | | $this->error = '请输入正确的消费券数量'; |
| | | return false; |
| | | } |
| | | $consumer_coupon = 0; |
| | | // 判断充值方式,计算最终消费券 |
| | | if ($data['mode'] === 'inc') { |
| | | $diffMoney = $this['consumer_coupon'] + $data['value']; |
| | | $consumer_coupon = $data['value']; |
| | | } elseif ($data['mode'] === 'dec') { |
| | | $diffMoney = $this['consumer_coupon'] - $data['value'] <= 0 ? 0 : $this['consumer_coupon'] - $data['value']; |
| | | $consumer_coupon = -$data['value']; |
| | | } else { |
| | | $diffMoney = $data['value']; |
| | | $consumer_coupon= $data['value'] - $this['consumer_coupon']; |
| | | } |
| | | // 更新记录 |
| | | $this->transaction(function () use ($storeUserName, $data, $diffMoney, $consumer_coupon) { |
| | | $total_expend_money = $this['total_expend_money'] + $consumer_coupon <= 0? 0 : $this['total_expend_money'] + $consumer_coupon; |
| | | // 更新账户消费券 |
| | | $this->where('user_id', '=', $this['user_id'])->update([ |
| | | 'consumer_coupon' => $diffMoney, |
| | | 'total_expend_money' => $total_expend_money |
| | | ]); |
| | | // 新增消费券变动记录 |
| | | ConsumptionLogModel::add([ |
| | | 'user_id' => $this['user_id'], |
| | | 'value' => $consumer_coupon, |
| | | 'describe' => "后台管理员 [{$storeUserName}] 操作", |
| | | 'remark' => $data['remark'], |
| | | ]); |
| | | }); |
| | | event('UserGrade', $this['user_id']); |
| | | return true; |
| | | } |
| | | |
| | | |
| | | /** |