Browse Source

消费返点记录及列表

master
wanghongjun 2 years ago
parent
commit
6b6e760f9a
  1. 21
      app/common.php
  2. 17
      app/controller/AdminUser.php
  3. 18
      app/controller/AgentTeam.php
  4. 6
      app/logic/Zone.php
  5. 80
      app/model/RebateRecords.php
  6. 10
      app/model/User.php

21
app/common.php

@ -274,4 +274,25 @@ function get_near_month_datetime(int $start = 4):array
];
return $dateArr;
}
/**
* 返回时间特定样式
* @param $datetime
* @param $type
* @return false|mixed|string
*/
function get_datetime($datetime,$type = 1)
{
switch ($type) {
case 1:
return date("Y-m-d H:i:s",strtotime($datetime));
case 2:
$year = date("Y");
$datetime_year = date("Y",strtotime($datetime));
$format = $year == $datetime_year ? "m月d日 H:i" : "Y年m月d日 H:i";
return date($format,strtotime($datetime));
default:
return $datetime;
}
}

17
app/controller/AdminUser.php

@ -5,6 +5,7 @@ namespace app\controller;
use app\BaseController;
use app\middleware\CheckAdmin;
use app\model\RebateRecords;
use think\exception\ValidateException;
use think\facade\Cache;
use think\facade\Db;
@ -193,4 +194,20 @@ class AdminUser extends BaseController
// if ($login_admin_user_data) Cache::store('redis')->delete('login_admin_user_data');
return $this->renderSuccess('退出登陆成功');
}
/**
* 代理返点记录
* @return array
* @throws \think\db\exception\DbException
*/
public function getRebateRecordsList()
{
$param = Request::param();
$limit = $param['limit'] ?: 10;
$data = RebateRecords::getList([],$limit,1);
return $this->renderSuccess('数据获取成功',[
'list' => $data['list'],
'total' => $data['total']
]);
}
}

18
app/controller/AgentTeam.php

@ -8,6 +8,7 @@ use app\middleware\CheckAgent;
use app\model\AgentDownScoresRecords;
use app\model\AgentInfo;
use app\model\AgentUpScoresRecords;
use app\model\RebateRecords;
use app\model\RechargeRecords;
use app\model\Setting as SettingModel;
use app\model\User;
@ -449,4 +450,21 @@ class AgentTeam extends BaseController
Session::delete('login_user_data');
return $this->renderSuccess('退出登陆成功');
}
/**
* 代理返点记录
* @return array
* @throws \think\db\exception\DbException
*/
public function getRebateRecordsList()
{
$param = Request::param();
$limit = $param['limit'] ?: 10;
$agentData = $this->request->userInfo;
$data = RebateRecords::getList(['aid' => $agentData['id']],$limit);
return $this->renderSuccess('数据获取成功',[
'list' => $data['list'],
'total' => $data['total']
]);
}
}

6
app/logic/Zone.php

@ -91,9 +91,6 @@ class Zone
# 消费金额
$consumptionBalance = User::decrBalance($user_id,$price);
# 消费返点
User::addRebateRatioAmount($user_id,$price);
# 判断是否中奖
$awards_status = 0;
# 可提余额
@ -109,6 +106,9 @@ class Zone
# 消费订单
$c_r_id = ConsumptionRecords::saveRecords($user_id,$zone_goods_id,$price,$price,$consumptionBalance,$save_data,$prizes_data,$awards_status);
# 消费返点
User::addRebateRatioAmount($user_id,$price,0,$c_r_id);
if ($awards_status == 1) {
# 中奖做记录
AwardsRecords::createRecords($user_id,$c_r_id,$awards_amount,$withdrawal_balance);

80
app/model/RebateRecords.php

@ -0,0 +1,80 @@
<?php
declare (strict_types = 1);
namespace app\model;
use think\Model;
/**
* 返点记录
* @mixin \think\Model
*/
class RebateRecords extends Model
{
/**
* 生成记录
* @param $user_id
* @param $aid
* @param $c_r_id // 消费ID
* @param $c_amount // 消费金额
* @param $amount // 返点金额
* @param $h_rebate_ratio // 当前返点占比
*/
public static function createRecords($user_id,$aid,$c_r_id,$c_amount,$amount,$h_rebate_ratio)
{
$RebateRecords = new RebateRecords();
$RebateRecords->user_id = $user_id;
$RebateRecords->aid = $aid;
$RebateRecords->c_r_id = $c_r_id;
$RebateRecords->consumption_amount = $c_amount;
$RebateRecords->amount = $amount;
$RebateRecords->h_rebate_ratio = $h_rebate_ratio;
$RebateRecords->create_time = date("Y-m-d H:i:s",time());
$RebateRecords->save();
}
/**
* 查询列表
* @param $param // 查询条件
* @param $limit //
* @param $is_manage // 0 = 代理 1 = 管理
* @return array
* @throws \think\db\exception\DbException
*/
public static function getList($param,$limit = 10,$is_manage = 0)
{
$RebateRecords = new RebateRecords();
$filed = 'id,aid,user_id,consumption_amount as c_amount,amount,h_rebate_ratio,create_time';
$where = [];
$order = 'create_time desc';
if (!empty($param['aid'])) $where['aid'] = $param['aid'];
$res = $RebateRecords->field($filed)->where($where)->order($order)->paginate($limit);
$list = $res->items();
$total = $res->total();
foreach ($list as &$item) {
$item['id'] = $is_manage ? 'ID:' . $item['aid'] : 'ID:' . $item['id'];
$item['datetime'] = get_datetime($item['create_time'],2);
$item['h_rebate_ratio'] = bcmul($item['h_rebate_ratio'],'100',4) * 1 . '%';
$item['str'] = 'ID:' . $item['user_id'] . '消费' . ($item['c_amount'] * 1) . '元,返点' . $item['h_rebate_ratio'];
$amount = $item['amount'];
give_symbol($amount);
$item['amount'] = $amount;
unset($item['create_time'],$item['user_id'],$item['c_amount'],$item['c_amount'],$item['h_rebate_ratio'],$item['aid']);
}
return [
'list' => $list,
'total' => $total
];
}
}

10
app/model/User.php

@ -338,12 +338,14 @@ class User extends Model
* 添加消费返点
* @param $user_id // 充值用户
* @param $amount // 充值金额
* @param $superior_rebate_ratio // 返点比率
* @param $c_r_id // 消费id
* @return false|void
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public static function addRebateRatioAmount($user_id,$amount,$superior_rebate_ratio = 0)
public static function addRebateRatioAmount($user_id,$amount,$superior_rebate_ratio = 0,$c_r_id = 0)
{
# 获取用户代理
$aid = User::where('id',$user_id)->value('aid');
@ -365,14 +367,16 @@ class User extends Model
$residue_amount = self::incrWithdrawalBalance($aid,$rebateRatioAmount);
# 代理充值返点金额
RechargeRecords::createRecords($aid,$rebateRatioAmount,$residue_amount,1,4,self::$trade_id);
#RechargeRecords::createRecords($aid,$rebateRatioAmount,$residue_amount,1,4,self::$trade_id);
# 返利记录
RebateRecords::createRecords(self::$trade_id,$aid,$c_r_id,$amount,$rebateRatioAmount,$rebate_ratio);
}
}
# 只反二级
if (self::$agentGrade == 1) return false;
self::$agentGrade += 1;
# 获取用户代理上级代理
self::addRebateRatioAmount($aid,$amount,$rebate_ratio);
self::addRebateRatioAmount($aid,$amount,$rebate_ratio,$c_r_id);
}
/**

Loading…
Cancel
Save