Files
Smart-Farm/app/member/model/Growth.php
2025-12-22 14:32:54 +08:00

310 lines
6.2 KiB
PHP

<?php
namespace app\member\model;
use app\BaseModel;
use think\facade\Db;
class Growth extends BaseModel
{
//会员权益表
protected $name = 'longbing_card_member_growth';
/**
* @author chenniang
* @DataTime: 2020-07-15 09:49
* @功能说明:添加
*/
public function growthAdd($data){
$data['create_time'] = time();
$data['update_time'] = time();
$res = $this->insert($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-07-16 16:35
* @功能说明:列表
*/
public function growthList($dis,$page){
$data = $this->where($dis)->order(['update_time desc','id desc'])->paginate($page)->toArray();
if(!empty($data['data'])){
foreach ($data['data'] as &$v){
if($v['controller_type']==0){
$v['controller_name'] = '系统核算';
$icon = $v['growth_add']>0?'+':'-';
$growth_add = $v['growth_add']>0?$v['growth_add']:$v['growth_add']*-1;
$refund = $v['refund']==1?'(已退款)':'';
$boj = $this->returnObj($v['type']);
$v['text'] = $boj.'成长值'.$icon.$growth_add.',现成长值 '.$v['growth_after'].$refund;
}else{
$v['controller_name'] = Db::name('longbing_admin')->where(['admin_id'=>$v['controller']])->value('account');
$v['text'] = '成长值'.$v['growth_before'].',修改为 '.$v['growth_after'];
}
}
}
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-09-14 15:17
* @功能说明:返回一个对象
*/
public function returnObj($type){
switch ($type){
//购买会员商品
case 0:
return '购买会员获得';
break;
//会员购买商品
case 1:
return '消费获得';
break;
//购买储值套餐赠送
case 2:
return '购买储值套餐赠送';
break;
default:
return '消费获得';
break;
}
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:08
* @功能说明:详情
*/
public function growthInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:13
* @功能说明:编辑
*/
public function growthUpdate($dis,$data){
$data['update_time'] = time();
$res = $this->where($dis)->update($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-07-28 16:29
* @功能说明:
*/
public function settledGrowth($uniacid,$user_id){
$dis[] = ['uniacid','=',$uniacid];
$dis[] = ['growth_add','>',0];
$dis[] = ['is_del','=',0];
$dis[] = ['status','=',1];
$dis[] = ['user_id','=',$user_id];
$dis[] = ['refund','=',0];
$data = $this->where($dis)->sum('growth_add');
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-08-04 10:21
* @功能说明:每日领取的积分
*/
public function dayGrowth($user_id,$uniacid){
$config_model = new Config();
$config = $config_model->configInfo(['uniacid'=>$uniacid]);
if($config['growth_limit']==1){
$dis = [
'user_id' => $user_id,
'refund' => 0,
'type' => 1
];
$growth = $this->where($dis)->where('status','>',0)->whereDay('create_time')->sum('growth_add');
$re_growth = $config['growth_day_max'] - $growth;
$re_growth = $re_growth>0?$re_growth:0;
return intval($re_growth);
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-08-04 10:47
* @功能说明:增加用户的成长值记录
*/
public function addUserGrowth($uniacid,$user_id,$growth,$order_id = 0,$type=0,$status = 1){
if(!empty(intval($growth))){
$member_model = new Member();
$member_info = $member_model->getMemberInfo(['user_id'=>$user_id,'uniacid'=>$uniacid]);
$insert = [
'uniacid' => $uniacid,
'user_id' => $user_id,
'growth_add' => intval($growth),
'growth_before' => intval($member_info['growth']),
'growth_after' => intval($member_info['growth']+$growth),
'order_id' => $order_id,
'type' => $type,
'status' => $status,
];
$res = $this->growthAdd($insert);
return $res;
}
}
/**
* @author chenniang
* @DataTime: 2020-08-04 11:07
* @功能说明:给用户加成长值
*/
public function incUserGrowth($order_id,$user_id,$uniacid){
$member_model = new Member();
$dis = [
'order_id' => $order_id,
'status' => 1
];
$info = $this->where($dis)->select()->toArray();
if(!empty($info)){
foreach ($info as &$value){
$member_info = $member_model->getMemberInfo(['user_id'=>$user_id,'uniacid'=>$uniacid]);
$growth = $value['growth_add'];
$update = [
//修改状态
'status' => 2,
//当前
'growth_before' => intval($member_info['growth']),
//修改后对
'growth_after' => intval($member_info['growth']+$growth),
];
$this->growthUpdate(['id'=>$value['id']],$update);
if(is_numeric($growth)&&$growth>0){
$dis = [
'user_id' => $user_id
];
$member_model->incDecGrowth($dis,$growth,'growth');
}
}
}
return true;
}
}