初始化代码

This commit is contained in:
2025-12-22 14:32:54 +08:00
parent e27ab90d9f
commit d02b31a8b9
1459 changed files with 240973 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
<?php
namespace app\member\model;
use app\BaseModel;
use think\facade\Db;
class CashRecord extends BaseModel
{
//定义表名
protected $name = 'longbing_card_member_cash_record';
protected $resultSetType = 'collection';
/**
* @author chenniang
* @DataTime: 2020-09-29 11:06
* @功能说明:列表
*/
public function dataList($dis,$page){
$data = $this->alias('a')
->join('longbing_card_user b','a.user_id = b.id')
->where($dis)
->field('a.*,b.nickName,b.avatarUrl')
->group('a.id')
->order('a.id desc')
->paginate($page)
->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-11-30 19:09
* @功能说明:详情
*/
public function dataInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
}

308
app/member/model/Config.php Normal file
View File

@@ -0,0 +1,308 @@
<?php
namespace app\member\model;
use app\BaseModel;
use app\commission\model\Cash;
use app\commission\model\Water;
use app\shop\model\IndexSellingProfit;
use app\shop\model\IndexSellingWater;
use think\facade\Db;
class Config extends BaseModel
{
//会员权益表
protected $name = 'longbing_card_v2_member_config';
/**
* @author chenniang
* @DataTime: 2020-07-15 09:49
* @功能说明:添加
*/
public function configAdd($data){
$data['explain'] = !empty($data['explain'])?$data['explain']:'';
$res = $this->insert($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:08
* @功能说明:详情
*/
public function configInfo($dis){
$data = $this->where($dis)->find();
if(empty($data)){
$this->configAdd($dis);
$data = $this->where($dis)->find();
}
$data['growth_title'] = !empty($data['growth_title'])?$data['growth_title']:'成长值';
$data['integral_title'] = !empty($data['integral_title'])?$data['integral_title']:'积分';
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:13
* @功能说明:编辑
*/
public function configUpdate($dis,$data){
$res = $this->where($dis)->update($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-09-17 17:04
* @功能说明:储值下单的分销
*/
public function storeOrderCommission($order){
$uniacid = $order['uniacid'];
$dis = [
'uniacid' => $uniacid
];
$config = $this->configInfo($dis);
if(empty($order['share_id'])){
return true;
}
//查看是否有权限
$auth = $this->userAuthCommission($uniacid,$order['share_id']);
if($auth==1){
$water_model = new IndexSellingWater();
$cash_model = new IndexSellingProfit();
$pay_price = $config['commission_price_type']==1?$config['commission_price']:round($config['commission_balance']*$order['pay_price']/100,2);
$data = [
'uniacid' => $order['uniacid'],
'source_id' => $order['user_id'],
'user_id' => $order['share_id'],
'goods_id' => $order['stored_id'],
'type' => 1,
'title' => $order['title'],
'img' => '',
'price' => $order['pay_price'],
'extract' => $config['commission_price_type']==1?0:$config['commission_balance'],
'waiting' => 2,
'status' => 1,
'goods_id' => $order['stored_id'],
'buy_number'=> 1,
'extract_cash' => $pay_price,
'selling_type' => $config['commission_price_type'],
'order_id' => $order['id'],
'thing_type'=> 1
];
$res = $water_model->waterAdd($data);
if($res == 1){
$id = $water_model->getLastInsID();
$water = $water_model->waterInfo(['id'=>$id]);
$cash_model->incOrDecCash($water);
}
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-09-17 17:35
* @功能说明:获取用户是否是不是有权限分销
*/
public function userAuthCommission($uniacid,$user_id){
$dis = [
'uniacid' => $uniacid
];
$config = $this->configInfo($dis);
$auth = 0;
if(in_array($config['commission_type'],[1,3])&&!empty($config['commission_user'])){
//用户信息
$user = Db::name('longbing_card_user')->where(['id'=>$user_id])->find();
$level_model = new Level();
//用户的等级
$user_level = $level_model->getUserLevel($user_id,$uniacid);
$user_level = !empty($user_level)?$user_level['top']:0;
//可以获取佣金的角色
$author = explode(',',$config['commission_user']);
foreach ($author as &$value){
//所有
if($value==1000){
$auth = 1;
}
//员工 或者用户
if(($value==888&&$user['is_staff']==1||($value==777&&$user['is_staff']==0))){
$auth =1;
}
//会员等级
if($value==$user_level){
$auth =1;
}
}
}
return $auth;
}
/**
* @author chenniang
* @DataTime: 2020-09-18 09:22
* @功能说明:人工扣款佣金
*/
public function controllerCommission($order){
$uniacid = $order['uniacid'];
$dis = [
'uniacid' => $uniacid
];
$config = $this->configInfo($dis);
$top_id = Db::name('longbing_card_user')->where(['id'=>$order['user_id']])->value('pid');
if(in_array($config['commission_type'],[2,3])&&$config['commission_Manual_status']==1&&!empty($top_id)){
$water_model = new IndexSellingWater();
$cash_model = new IndexSellingProfit();
$pay_price = round($config['commission_Manual_balance']*$order['pay_price']/100,2);
$data = [
'uniacid' => $order['uniacid'],
'source_id' => $order['user_id'],
'user_id' => $top_id,
'goods_id' => $order['stored_id'],
'type' => 1,
'title' => $order['title'],
'img' => '',
'price' => $order['pay_price'],
'extract' => $config['commission_Manual_balance'],
'waiting' => 2,
'status' => 1,
'goods_id' => $order['stored_id'],
'buy_number'=> 1,
'extract_cash' => $pay_price,
'selling_type' => 0,
'order_id' => $order['id'],
'thing_type'=> $order['controller_type']==2?2:3
];
$res = $water_model->waterAdd($data);
if($res == 1){
$id = $water_model->getLastInsID();
$water = $water_model->waterInfo(['id'=>$id]);
$cash_model->incOrDecCash($water);
}
}
return true;
}
}

105
app/member/model/Coupon.php Normal file
View File

@@ -0,0 +1,105 @@
<?php
namespace app\member\model;
use app\BaseModel;
use app\shop\model\IndexCouponRecord;
use think\facade\Db;
class Coupon extends BaseModel
{
//会员权益表
protected $name = 'longbing_card_v2_member_coupon';
/**
* @author chenniang
* @DataTime: 2020-09-07 16:18
* @功能说明:添加优惠券
*/
public function addCoupon($coupon, $level_id,$data){
$this->where(['member_id'=>$level_id])->delete();
if(!empty($coupon)){
array_walk($coupon, function ($value, $key) use (&$coupon, $level_id,$data) {
$coupon[$key] = [
//等级id
'member_id' => $level_id,
'uniacid' => $data['uniacid'],
'coupon_id' => $value['coupon_id'],
'num' => $value['num'],
];
});
//添加
$res = $this->saveAll($coupon);
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-09-08 16:30
* @功能说明:添加用户的优惠券
*/
public function insertCoupon($level,$order){
if($level['coupon_switch']!=1){
return true;
}
$dis = [
'a.member_id' => $level['id']
];
$data = $this->alias('a')
->join('longbing_card_coupon b','a.coupon_id = b.id')
->where($dis)
->group('a.coupon_id')
->field('b.*,a.num as coupon_num')
->select()
->toArray();
$record_model = new IndexCouponRecord();
if(!empty($data)){
foreach ($data as $coupon){
for ($i=0;$i<$coupon['coupon_num'];$i++){
if(!isset($order['staff_id'])&&isset($order['to_uid'])){
$order['staff_id'] = $order['to_uid'];
}
//领取优惠券
$record_model->insertRecord($coupon,$order);
}
}
}
return true;
}
}

View File

@@ -0,0 +1,172 @@
<?php
namespace app\member\model;
use app\BaseModel;
use app\member\info\PermissionMember;
use think\facade\Db;
class DiscountGoods extends BaseModel
{
//会员商品表
protected $name = 'longbing_card_v2_shop_member_discount';
/**
* @author chenniang
* @DataTime: 2020-07-15 09:49
* @功能说明:添加
*/
public function goodsAdd($data,$uniacid,$goods_id){
$this->where(['goods_id'=>$goods_id])->delete();
foreach ($data as $k=>$v){
$data[$k]['uniacid'] = $uniacid;
$data[$k]['goods_id'] = $goods_id;
}
$res = $this->saveAll($data);
return $res;
}
/**
* @param $goods_id
* @功能说明:商品折扣
* @author chenniang
* @DataTime: 2020-07-29 15:10
*/
public function goodsDiscount($goods_id){
$dis = [
'goods_id' => $goods_id
];
$data = $this->where($dis)->select()->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-07-30 17:06
* @功能说明:用户会员的折扣
*/
public function userGoodsDiscount($goods_id,$user_id,$uniacid){
$config_model = new Config();
$config = $config_model->configInfo(['uniacid'=>$uniacid]);
$level_model = new Level();
//会员当前的等级
$user_level = $level_model->getUserLevel($user_id,$uniacid);
$member_id = !empty($user_level)?$user_level['id']:0;
$dis = [
'goods_id' => $goods_id,
'member_id'=> $member_id
];
$data = $this->where($dis)->find();
//折扣
$discount = !empty($data)&&$config['status']==1?$data['discount']/10:1;
return $discount;
}
/**
* @author chenniang
* @DataTime: 2020-08-03 17:39
* @功能说明:是不是会员商品
*/
public function isMemberGoods($goods_id,$user_id,$uniacid){
$config_model = new Config();
$config = $config_model->configInfo(['uniacid'=>$uniacid]);
$level_model = new Level();
//会员当前的等级
$user_level = $level_model->getUserLevel($user_id,$uniacid);
$member_id = !empty($user_level)?$user_level['id']:0;
$dis = [
'goods_id' => $goods_id,
'member_id'=> $member_id
];
$data = $this->where($dis)->find();
//折扣
$data = !empty($data)&&$config['status']==1?1:0;
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-08-10 11:45
* @功能说明:会员商品
*/
public function isMember($is_member,$uniacid){
$config_model = new Config();
$config = $config_model->configInfo(['uniacid'=>$uniacid]);
$persisson = new PermissionMember($uniacid);
$auth = $persisson->pAuth();
return $auth==true&&$config['status']==1?$is_member:0;
}
/**
* @author chenniang
* @DataTime: 2021-02-01 10:57
* @功能说明:会员折扣
*/
public function eventDiscount($where){
//会员商品折扣
$data['discount'] = $this->userGoodsDiscount($where['goods_id'],$where['user_id'],$where['uniacid']);
//是不是会员折扣商品
$data['is_goods_member'] = $this->isMemberGoods($where['goods_id'],$where['user_id'],$where['uniacid']);
$data['name'] = 'member_discount';
$data['member_discount'] = $data['discount'];
return $data;
}
}

350
app/member/model/Goods.php Normal file
View File

@@ -0,0 +1,350 @@
<?php
namespace app\member\model;
use app\BaseModel;
use app\shop\model\IndexShopOrderGoods;
use think\facade\Db;
class Goods extends BaseModel
{
//会员商品表
protected $name = 'longbing_card_member_goods';
/**
* @author chenniang
* @DataTime: 2020-07-15 09:49
* @功能说明:添加
*/
public function goodsAdd($data){
$res = $this->insert($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:08
* @功能说明:详情
*/
public function levelInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @param $order
* @功能说明:会员商品支付回调
* @author chenniang
* @DataTime: 2020-07-29 15:59
*/
public function payResult($order){
if($order['is_member']==1){
$order_goods_model = new IndexShopOrderGoods();
$order_item = $order_goods_model->orderGoodsInfo([ 'order_id' => $order[ 'id' ] ]);
foreach ( $order_item as $index => $item ) {
if($item['is_member']==1){
$this->getGrowth($item['goods_id'],$order['id'],$order['uniacid'],$order['user_id']);
}
}
}
return true;
}
/**
* @param $goods_id
* @功能说明:获取会员商品对类型
* @author chenniang
* @DataTime: 2020-09-14 09:31
*/
public function getGoodsType($goods_id){
$dis = [
'a.goods_id' => $goods_id
];
$data = $this->alias('a')
->join('longbing_card_member_level b','a.member_id = b.id')
->where($dis)
->field('b.*')
->find();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-07-29 15:31
* @功能说明:支付回调
*/
public function getGrowth($goods_id,$order_id,$uniacid,$user_id){
$member_model = new Member();
$growth_model = new Growth();
$dis = [
'a.goods_id' => $goods_id
];
$growth = $this->alias('a')
->join('longbing_card_member_level b','a.member_id = b.id')
->where($dis)
->value('growth');
if(is_numeric($growth)&&$growth>0){
$member_info = $member_model->getMemberInfo(['user_id'=>$user_id,'uniacid'=>$uniacid]);
$insert = [
'uniacid' => $uniacid,
'user_id' => $user_id,
'growth_add' => $growth,
'growth_after' => $member_info['growth']+$growth,
'growth_before' => $member_info['growth'],
'create_time'=> time(),
'order_id' => $order_id,
'goods_id' => $goods_id,
'type' => 0
];
$growth_model->insert($insert);
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-09-14 10:19
* @功能说明:更新会员
*/
public function ordertypeUpdate($order){
//普通会员
if(!empty($order['level_top'])){
$this->giveOrderGrowth($order);
}
//pul会员
if(!empty($order['over_time'])){
$member_model = new Member();
//获取用户会员信息(没有则创建)
$user_info = $member_model->memberUpdateInfo(['user_id'=>$order['user_id'],'uniacid'=>$order['uniacid']]);
//1是plus会员给会员过期时间
if($user_info['over_time']<time()){
$time = strtotime("+".$order['over_time']."month");
}else{
$time = strtotime("+".$order['over_time']."month",$user_info['over_time']);
}
//永久的plus会员
if($order['over_time']==-1){
$time = -1;
}
$row['over_time'] = $time;
$member_model->where(['id'=>$user_info['id']])->update($row);
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-09-14 09:49
* @功能说明:给会员对成长值
*/
public function giveOrderGrowth($order){
$growth_model = new Growth();
$level_model = new Level();
$member_model = new Member();
$order_goods_model = new IndexShopOrderGoods();
$level_data = $level_model->where(['top'=>$order['level_top'],'uniacid'=>$order['uniacid']])->find();
if(!empty($level_data)){
$level_data = $level_data->toArray();
//当前会员对信息
$member_info = $member_model->getMemberInfo(['user_id'=>$order['user_id'],'uniacid'=>$order['uniacid']]);
//子订单
$order_item = $order_goods_model->orderGoodsInfo([ 'order_id' => $order[ 'id' ] ]);
foreach ( $order_item as $index => $item ) {
$insert = [
'uniacid' => $order['uniacid'],
'user_id' => $order['user_id'],
'growth_add' => $level_data['growth'],
'growth_after' => $member_info['growth']+$level_data['growth'],
'growth_before' => $member_info['growth'],
'create_time'=> time(),
'order_id' => $order['id'],
'goods_id' => $item['goods_id'],
'type' => 0
];
$growth_model->insert($insert);
}
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-07-30 09:41
* @功能说明:获取可以买的商品
*/
public function getCanBuyGoods($uid,$uniacid){
$level_model = new Level();
$level = $level_model->getUserLevel($uid,$uniacid);
$member_model = new Member();
//看他是不是永久的plus会员
if(!empty($level)&&$level['top']==999){
$over_time = $member_model->where(['user_id'=>$uid])->value('over_time');
if($over_time==-1){
return [];
}
}
if(!empty($level)){
$top_level = $level_model->getSonLevel($level,$uniacid,1);
}else{
$top_level = $level_model->getAllLevel($uniacid);
}
if(!empty($top_level)){
$dis[] = ['a.member_id','in',$top_level];
$dis[] = ['a.uniacid','=',$uniacid];
$dis[] = ['b.is_member','=',1];
$data = $this->alias('a')
->join('longbing_card_goods b','a.goods_id = b.id')
->where($dis)
->column('b.id');
}
return !empty($data)?$data:[];
}
/**
* @author chenniang
* @DataTime: 2020-07-30 13:48
* @功能说明:获取商品的会员等级
*/
public function getGoodsLevel($goods_id){
$dis = [
'a.goods_id' => $goods_id
];
$data = $this->alias('a')
->join('longbing_card_member_level b','a.member_id = b.id')
->where($dis)
->field('b.*')
->find();
return !empty($data)?$data->toArray():[];
}
}

310
app/member/model/Growth.php Normal file
View File

@@ -0,0 +1,310 @@
<?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;
}
}

View File

@@ -0,0 +1,440 @@
<?php
namespace app\member\model;
use app\BaseModel;
use app\massage\model\User;
use think\facade\Db;
class Integral extends BaseModel
{
//会员积分表
protected $name = 'longbing_card_v2_shop_integral_log';
protected $append = [
'create_time_text'
];
/**
* @author chenniang
* @DataTime: 2021-11-04 13:57
* @功能说明:
*/
public function getCreateTimeTextAttr($value,$data){
if(!empty($data['create_time'])){
return date('Y-m-d H:i:s',$data['create_time']);
}
}
/**
* @author chenniang
* @DataTime: 2020-07-15 09:49
* @功能说明:添加
*/
public function integralAdd($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 integralList($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['integral_add']>0?'+':'-';
$integral_add = $v['integral_add']>0?$v['integral_add']:$v['integral_add']*-1;
$text = $v['integral_add']>0?'增加积分':'使用积分';
$boj = $this->returnObj($v['type']);
$refund = $v['refund']==1?'(已退款)':'';
$v['text'] = $boj.$text.$icon.$integral_add.',现积分 '.$v['integral_after'].$refund;
$v['type_text'] = $boj;
}
}
}
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;
case 3:
return '购买商城商品';
break;
case 4:
return '购买餐饮菜品';
break;
case 5://取消订单
return '商城商品退款';
break;
case 6://售后
return '商城商品退款';
break;
case 7://
return '同步银豹';
break;
case 8://
return '报名活动';
break;
case 9://
return '购买赛车产品';
break;
case 10://
return '购买商城商品';
break;
case 11://
return '购买餐饮商品';
break;
default:
return '消费';
break;
}
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:08
* @功能说明:详情
*/
public function integralInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:13
* @功能说明:编辑
*/
public function integralUpdate($dis,$data){
$data['update_time'] = time();
$res = $this->where($dis)->update($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-07-31 10:28
* @功能说明:增加用户积分
*/
public function integralUserAdd($user_id,$integral,$uniacid,$status = 2,$type=0,$order_id=0){
//积分倍率
$arr = $this->pointDouble($user_id,$integral);
$integral = $arr['integral'];
//查询单日获取积分是否超限
$integral = $this->dayGetIntegral($user_id,$integral,$uniacid);
if(!empty(intval($integral))){
$member_model = new User();
$member_info = $member_model->dataInfo(['id'=>$user_id]);
$insert = [
'uniacid' => $uniacid,
'user_id' => $user_id,
'integral_add' => intval($integral),
'integral_before'=> intval($member_info['integral']),
'integral_after' => intval($member_info['integral']+$integral),
'status' => $status,
'type' => $type,
'order_id' => $order_id,
'double' => $arr['double'],
];
$res = $this->integralAdd($insert);
if($res==0){
return false;
}
$res = $member_model->dataUpdate(['id'=>$user_id],['integral'=>$insert['integral_after']]);
if($res==0){
return false;
}
}
return true;
}
/**\
* @author chenniang
* @DataTime: 2021-11-12 17:31
* @功能说明:积分倍率
*/
public function pointDouble($user_id,$integral){
$user_model = new User();
$member_level = $user_model->where(['id'=>$user_id])->value('member_level');
$arr['double'] = 1;
$arr['integral'] = $integral;
if(empty($member_level)){
return $arr;
}
$level_model = new Level();
$level = $level_model->levelInfo(['id'=>$member_level]);
if(empty($level)){
return $arr;
}
if(empty($level['integral_switch'])){
return $arr;
}
$arr['double'] = $level['integral'];
$arr['integral'] = floor($level['integral']*$integral);
return $arr;
}
/**
* @author chenniang
* @DataTime: 2021-11-12 14:05
* @功能说明:单天获得积分
*/
public function dayGetIntegral($user_id,$integral,$uniacid){
$config_model = new Config();
$config = $config_model->configInfo(['uniacid'=>$uniacid]);
if($config['integral_limit']==0){
return $integral;
}
$dis[] = ['user_id','=',$user_id];
$dis[] = ['integral_add','>',0];
//单日获取积分
$integral_day = $this->where($dis)->whereDay('create_time')->sum('integral_add');
//单日可获取最大积分
$integral_day_max = $config['integral_day_max'];
$point = $integral_day_max-$integral_day;
if($point<=0){
return 0;
}
$point = $point-$integral>0?$integral:$point;
return $point;
}
/**
* @author chenniang
* @DataTime: 2020-08-04 10:21
* @功能说明:每日领取的积分
*/
public function dayIntegral($user_id,$uniacid){
$config_model = new Config();
$config = $config_model->configInfo(['uniacid'=>$uniacid]);
if($config['integral_limit']==1){
$dis = [
'user_id' => $user_id,
'refund' => 0,
'type' => 1
];
$integral = $this->where($dis)->where('status','>',0)->whereDay('create_time')->sum('integral_add');
$re_integral = $config['integral_day_max'] - $integral;
$re_integral = $re_integral>0?$re_integral:0;
return intval($re_integral);
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-08-04 11:07
* @功能说明:给用户加积分
*/
public function incUserIntegral($order_id,$user_id,$uniacid){
$dis = [
'order_id' => $order_id,
'status' => 1
];
$info = $this->where($dis)->select()->toArray();
$member_model = new Member();
if(!empty($info)){
foreach ($info as $value){
$integral = $value['integral_add'];
$member_info = $member_model->getMemberInfo(['user_id'=>$user_id,'uniacid'=>$uniacid]);
$update = [
//修改状态
'status' => 2,
//当前
'integral_before' => intval($member_info['integral']),
//修改后对
'integral_after' => intval($member_info['integral']+$integral),
];
$this->integralUpdate(['id'=>$value['id']],$update);
if(is_numeric($integral)&&$integral>0){
$dis = [
'user_id' => $user_id
];
$member_model->incDecGrowth($dis,$integral,'integral');
}
}
}
return true;
}
}

739
app/member/model/Level.php Normal file
View File

@@ -0,0 +1,739 @@
<?php
namespace app\member\model;
use app\BaseModel;
use app\massage\model\User;
use app\member\info\PermissionMember;
use think\facade\Db;
class Level extends BaseModel
{
//会员等级表
protected $name = 'longbing_card_v2_member_level';
/**
* @author chenniang
* @DataTime: 2020-07-15 09:49
* @功能说明:添加
*/
public function levelAdd($data){
$data['status'] = 1;
$data['create_time'] = time();
$data['update_time'] = time();
$goods_id = [];
$rights = [];
$coupon = [];
$stored = [];
//关联的商品
if(isset($data['goods_id'])){
$goods_id = $data['goods_id'];
unset($data['goods_id']);
}
//关联的权益
if(isset($data['rights'])){
$rights = $data['rights'];
unset($data['rights']);
}
//关联的优惠券
if(isset($data['coupon'])){
$coupon = $data['coupon'];
unset($data['coupon']);
}
//关联储值
if(isset($data['stored_id'])){
$stored = $data['stored_id'];
unset($data['stored_id']);
}
$res = $this->insert($data);
//id
$level_id = $this->getLastInsID();
//修改相关数据
$this->updateSome($goods_id,$rights,$level_id,$data,$coupon,$stored);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-09-10 15:13
* @功能说明:初始化
*/
public function initLevel($dis){
//初始化普通会员
if($dis['type']==0){
for ($i=1;$i<11;$i++){
$insert[$i]['uniacid'] = $dis['uniacid'];
$insert[$i]['status'] = 0;
$insert[$i]['create_time'] = time();
$insert[$i]['update_time'] = time();
$insert[$i]['top'] = $i;
}
$this->saveAll($insert);
}else{
//初始化puls会员
$insert['uniacid'] = $dis['uniacid'];
$insert['status'] = 0;
$insert['create_time'] = time();
$insert['update_time'] = time();
$insert['type'] = 1;
$insert['top'] = 999;
$insert['over_time'] = -1;
$this->insert($insert);
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:12
* @功能说明:列表
*/
public function levelList($dis,$page=10){
$data = $this->where($dis)->order('id')->paginate($page)->toArray();
$right_model = new Rights();
if(!empty($data['data'])){
foreach ($data['data'] as &$v){
$v['rights'] = $right_model->customRights($v['id']);
//商品折扣
if($v['discount_switch']==1){
array_unshift($v['rights'],'商品打折');
}
//积分倍率
if($v['integral_switch']==1){
array_unshift($v['rights'],'积分倍率'.$v['integral'].'倍');
}
//赠送积分
if($v['send_integral_switch']==1){
array_unshift($v['rights'],'赠送积分'.$v['send_integral']);
}
// //赠送优惠券
if($v['coupon_switch']==1){
array_unshift($v['rights'],'赠送卡券');
}
$user_model = new User();
//会员人数
$v['member_num'] = $user_model->where(['member_level'=>$v['id']])->count();
}
}
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:08
* @功能说明:详情
*/
public function levelInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:13
* @功能说明:删除直播
*/
public function levelUpdate($dis,$data){
$data['update_time'] = time();
$goods_id = [];
$rights = [];
$coupon = [];
$stored = [];
//关联的权益
if(isset($data['rights'])){
$rights = $data['rights'];
unset($data['rights']);
}
//关联的优惠券
if(isset($data['coupon'])){
$coupon = $data['coupon'];
unset($data['coupon']);
}
$res = $this->where($dis)->update($data);
$this->updateSome($rights,$data['id'],$data,$coupon);
return $res;
}
/**
* @param $level_id
* @param $data
* @功能说明:修改相关数据
* @author chenniang
* @DataTime: 2020-07-15 13:40
*/
public function updateSome($rights,$level_id,$data,$coupon=[]){
//关联的商品模型
$rights_model = new RightsRelation();
$rights_model->where(['member_id'=>$level_id])->delete();
//添加关联的商品
if(!empty($rights)){
array_walk($rights, function ($value, $key) use (&$rights, $level_id,$data) {
$rights[$key] = [
//商品id
'rights_id' => $value['id'],
//等级id
'member_id' => $level_id,
'uniacid' => $data['uniacid'],
'type' => $value['type']
];
});
//添加
$res = $rights_model->saveAll($rights);
}
//优惠券关联模型
$coupon_model = new Coupon();
//添加
$coupon_model->addCoupon($coupon,$level_id,$data);
return true;
}
/**
* @author chenniang
* @DataTime: 2020-07-16 11:08
* @功能说明:获取成长值区间
*/
public function getGrowth($level){
$data = $this->where(['id'=>$level])->find();
$dis[]= ['uniacid','=',$data['uniacid']];
$dis[]= ['growth','>',$data['growth']];
$top = $this->where($dis)->order('growth')->find();
$info['start_growth'] = $data['growth'];
$info['end_growth'] = !empty($top['growth'])?$top['growth']:0;
return $info;
}
/**
* @author chenniang
* @DataTime: 2020-07-17 13:22
* @功能说明:会员商品
*/
public function memberGoods($uniacid,$level_id){
$dis[] = ['uniacid','=',$uniacid];
$dis[] = ['status','=',1];
$dis[] = ['is_member','=',1];
$id = $this->haveSelectGoods($uniacid,$level_id);
$dis[] = ['id','not in',$id];
$data = Db::name('longbing_card_goods')->where($dis)->field('name,id')->select();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-09-09 13:39
* @功能说明:下拉框
*/
public function storedSelect($uniacid,$level_id){
$id = $this->haveSelectStored($uniacid,$level_id);
$dis[] = ['uniacid','=',$uniacid];
$dis[] = ['status','=',1];
$dis[] = ['id','not in',$id];
$data = Db::name('longbing_card_member_stored')->where($dis)->order('top desc,id desc')->select()->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-09-09 14:09
* @功能说明:已经选了储值
*/
public function haveSelectStored($uniacid,$level_id){
$dis[] = ['a.uniacid','=',$uniacid];
$dis[] = ['b.uniacid','=',$uniacid];
$dis[] = ['a.member_id','<>',$level_id];
$store_level_model = new StoredLevel();
$id = $store_level_model->alias('a')
->join('longbing_card_member_level b','a.member_id = b.id')
->where($dis)
->column('a.stored_id');
return $id;
}
/**
* @author chenniang
* @DataTime: 2020-08-06 15:21
* @功能说明:已经选了的商品
*/
public function haveSelectGoods($uniacid,$level_id){
$dis[] = ['a.uniacid','=',$uniacid];
$dis[] = ['b.uniacid','=',$uniacid];
$dis[] = ['a.member_id','<>',$level_id];
$goods_model = new Goods();
$id = $goods_model->alias('a')
->join('longbing_card_member_level b','a.member_id = b.id')
->where($dis)
->column('goods_id');
return $id;
}
/**
* @param $uniacid
* @功能说明:会员权益
* @author chenniang
* @DataTime: 2020-07-22 14:23
*/
public function memberRights($uniacid,$type = 0){
$dis[] = ['uniacid','=',$uniacid];
$dis[] = ['status','=',1];
$dis[] = ['type','=',$type];
$rights_model = new Rights();
$data = $rights_model->where($dis)->field('title,id,is_up')->select();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-07-27 14:14
* @功能说明:检测状态
*/
public function checkStatus($id,$status){
$info = $this->levelInfo(['id'=>$id]);
if(empty($info)){
return [ 'code' => 400,'msg' => '未找到' ];
}
//开启
if($status==1){
$dis[] = ['uniacid','=',$info['uniacid']];
$dis[] = ['status','=',0];
$dis[] = ['type','=',0];
$data = $this->where($dis)->order('top')->find();
if($data['id']!=$id){
return [ 'code' => 400,'msg' => '请先开启上级或下级'];
}
}
//关闭
if($status==0){
$dis[] = ['uniacid','=',$info['uniacid']];
$dis[] = ['status','=',1];
$dis[] = ['type','=',0];
$data = $this->where($dis)->order('top desc')->find();
if($data['id'] != $id){
return [ 'code' => 400,'msg' => '请先关闭上级或下级'];
}
}
return [ 'code' => 200,'msg' => '' ];
}
/**
* @author chenniang
* @DataTime: 2020-07-28 11:23
* @功能说明:获取等级
*/
public function getMemberLevel($uniacid,$growth,$type = 0){
$where = [
'uniacid' => $uniacid,
'status' => 1,
'type' => 0
];
if($type==0){
$data = $this->where($where)->where('growth','>',$growth)->order('growth')->find();
}else{
$data = $this->where($where)->where('growth','<=',$growth)->order('growth desc')->find();
}
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2021-11-10 14:09
* @功能说明:获取用户等级
*/
public function getUserLevelV2($user_id){
$dis = [
'b.id' => $user_id
];
$data = $this->alias('a')
->join('massage_service_user_list b','a.id = b.member_level')
->where($dis)
->field('a.*')
->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-09-18 10:14
* @功能说明:获取plus会员
*/
public function getPlusLvel($uniacid){
$where = [
'uniacid' => $uniacid,
'status' => 1,
'type' => 1,
'top' => 999
];
$data = $this->where($where)->order('growth')->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-07-30 09:45
* @功能说明:获取用户的等级
*/
public function getUserLevel($uid,$uniacid){
$member_model = new Member();
$over_time = $member_model->where(['user_id'=>$uid])->value('over_time');
//查看是否是plus会员 -1是永久有效
if($over_time>time()||$over_time==-1){
$level = $this->getPlusLvel($uniacid);
if(!empty($level)){
return $level;
}
}
$growth = $member_model->where(['user_id'=>$uid])->value('growth');
$growth = !empty($growth)?$growth:0;
$level = $this->getMemberLevel($uniacid,$growth,1);
return $level;
}
/**
* @author chenniang
* @DataTime: 2020-08-07 09:39
* @功能说明:
*/
public function getAllLevel($uniacid){
$where = [
'uniacid' => $uniacid,
'status' => 1,
// 'type' => 0
];
$son_level = $this->where($where)->column('id');
return $son_level;
}
/**
* @author chenniang
* @DataTime: 2020-07-30 09:53
* @功能说明:获取下级或者上级的等级
*/
public function getSonLevel($level,$uniacid,$type=0){
$where = [
'uniacid' => $uniacid,
'status' => 1,
];
if($type==0){
$son_level = $this->where($where)->where('top','<',$level['top'])->column('id');
}else{
$icon = $level['top']==999?'>=':'>';
$son_level = $this->where($where)->where('top',$icon,$level['top'])->column('id');
}
return $son_level;
}
/**
* @author chenniang
* @DataTime: 2020-07-31 10:39
* @功能说明:升级用户的权益
*/
public function upUserRights($level,$order){
$uniacid = $order['uniacid'];
$user_id = $order['user_id'];
$integral_model = new Integral();
$member_model = new Member();
$coupon_model = new Coupon();
$level_info = $this->levelInfo(['top'=>$level,'uniacid'=>$uniacid]);
//增加积分记录
$integral_model->integralUserAdd($user_id,$level_info['send_integral'],$uniacid);
//加会员的积分
$dis = [
'user_id' => $user_id
];
$member_model->incDecGrowth($dis,$level_info['send_integral'],'integral');
//赠送优惠券
$coupon_model->insertCoupon($level_info,$order);
//第一次升级时候 修改创建时间
$member_model->where(['user_id'=>$order['user_id'],'is_vip'=>0])->update(['create_time'=>time(),'is_vip'=>1]);
return true;
}
/**
* @author chenniang
* @DataTime: 2020-08-04 17:22
* @功能说明:会员成长值
*/
public function memberGrowth($uniacid){
$data = $this->where(['uniacid'=>$uniacid,'status'=>1,'type'=>0])->min('growth');
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-09-18 17:02
* @功能说明:
*/
public function upUserRightsEnd($update,$order){
$user_id = $order['user_id'];
$uniacid = $order['uniacid'];
$member_model = new Member();
//还未升级以前的等级
$level_start = $this->getUserLevel($user_id,$uniacid);
//如果空就不是会员
$level_start = !empty($level_start['top'])?$level_start['top']:0;
//更新会员信息
$member_model->where(['user_id'=>$user_id])->update($update);
//增加后的等级
$level_end = $this->getUserLevel($user_id,$uniacid);
$level_end = !empty($level_end['top'])?$level_end['top']:0;
//普通会员升级礼包
if($level_end>$level_start){
$this->upUserRights($level_end,$order);
}
return true;
}
}

138
app/member/model/Log.php Normal file
View File

@@ -0,0 +1,138 @@
<?php
namespace app\member\model;
use app\BaseModel;
use think\facade\Db;
class Log extends BaseModel
{
//会员权益表
protected $name = 'longbing_card_v2_syn_log';
/**
* @author chenniang
* @DataTime: 2020-09-09 10:37
* @功能说明:列表
*/
public function storedList($dis,$page){
$data = $this->where($dis)->order('top desc,id desc')->paginate($page)->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-07-15 09:49
* @功能说明:添加
*/
public function dataAdd($data){
$data['create_time'] = time();
$res = $this->insert($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2021-08-27 17:16
* @功能说明:编辑
*/
public function updateSome($id,$coupon,$uniacid){
$coupon_model = new StoredCoupon();
$coupon_model->where(['stored_id'=>$id])->delete();
if(!empty($coupon)){
foreach ($coupon as $value){
$insert = [
'uniacid' => $uniacid,
'coupon_id'=> $value['coupon_id'],
'stored_id'=> $id,
'num' => $value['num']
];
$coupon_model->insert($insert);
}
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:08
* @功能说明:详情
*/
public function storedInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:13
* @功能说明:编辑
*/
public function storedUpdate($dis,$data){
$data['update_time'] = time();
if(isset($data['coupon'])){
$coupon = $data['coupon'];
unset($data['coupon']);
}
$res = $this->where($dis)->update($data);
if(!empty($coupon)){
$id = $dis['id'];
$this->updateSome($id,$coupon,$data['uniacid']);
}
return $res;
}
}

624
app/member/model/Member.php Normal file
View File

@@ -0,0 +1,624 @@
<?php
namespace app\member\model;
use app\BaseModel;
use app\massage\model\CarAtvRecord;
use app\massage\model\Order;
use app\member\info\PermissionMember;
use app\shop\model\AdminShopOrder;
use think\facade\Db;
class Member extends BaseModel
{
//会员商品表 该表暂时不使用
protected $name = 'longbing_card_v2_member_level';
// protected $append = [
//
// 'level_content',
//
// 'level_top'
//
// ];
protected $resultSetType = 'collection';
/**
* @param $value
* @param $data
* @功能说明:获取等级名称
* @author chenniang
* @DataTime: 2020-07-16 09:47
*/
public function getLevelContentAttr($value,$data){
if(!empty($data['user_id'])&&!empty($data['uniacid'])){
$level_model = new Level();
$text = $level_model->getUserLevel($data['user_id'],$data['uniacid']);
return !empty($text)?$text['title']:'';
}
}
/**
* @param $value
* @param $data
* @功能说明:获取等级名称
* @author chenniang
* @DataTime: 2020-07-16 09:47
*/
public function getLevelTopAttr($value,$data){
if(!empty($data['user_id'])&&!empty($data['uniacid'])){
$level_model = new Level();
$text = $level_model->getUserLevel($data['user_id'],$data['uniacid']);
return !empty($text)?$text['top']:'';
}
}
/**
* @author chenniang
* @DataTime: 2020-09-11 11:36
* @功能说明:
*
*/
public function memberUpdateInfo($dis){
$data = $this->where($dis)->find();
if(empty($data)){
$this->memberAdd($dis);
$data = $this->where($dis)->find();
}
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-07-15 09:49
* @功能说明:添加
*/
public function memberAdd($data){
$data['status'] = 1;
$data['create_time'] = time();
$data['update_time'] = time();
$res = $this->insert($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:08
* @功能说明:详情
*/
public function memberInfo($dis){
$data = $this->alias('a')
->join('longbing_card_user b','a.user_id = b.id','left')
->where($dis)
->field(['a.*','b.nickName','b.avatarUrl','ifnull(a.growth,0) as growth','ifnull(a.integral,0) as integral'])
->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:08
* @功能说明:详情
*/
public function memberInfoIndex($dis){
$data = $this->alias('a')
->join('longbing_card_user b','a.user_id = b.id','right')
->where($dis)
->field(['ifnull(a.over_time,0) as over_time','a.id','b.nickName','b.avatarUrl','ifnull(a.stored,0) as balance','ifnull(a.cash_stored,0) as cash_balance','ifnull(a.over_time,0) as over_time','ifnull(a.growth,0) as growth','ifnull(a.integral,0) as integral'])
->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-07-16 09:35
* @功能说明:编辑
*/
public function memberUpdate($dis,$data){
$data['update_time'] = time();
$res = $this->where($dis)->update($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2021-10-19 13:50
* @功能说明:会员列表
*/
public function memberListV2(){
}
/**
* @author chenniang
* @DataTime: 2020-07-16 09:41
* @功能说明:会员列表
*/
public function memberList($dis,$where,$mapor,$page){
$data = $this->alias('a')
->join('longbing_card_user b','a.user_id = b.id')
->where($dis)
->where(function ($query) use ($mapor){
$query->whereOr($mapor);
})
->where(function ($query) use ($where){
$query->whereOr($where);
})
->field(['a.*','b.nickName','b.id as user_id',])
->group('a.id')
->order(['a.create_time desc','a.id'])
->paginate($page)
->toArray();
$order_model = new AdminShopOrder();
if(!empty($data['data'])){
foreach ($data['data'] as &$v){
$v['member_phone'] = Db::name('longbing_card_user_phone')->where(['user_id'=>$v['user_id']])->value('phone');
$diss = [];
$diss[] = ['uniacid','=',$v['uniacid']];
$diss[] = ['user_id','=',$v['user_id']];
$diss[] = ['create_time','>',$v['create_time']];
$diss[] = ['pay_status','=',1];
//消费金额
$v['price'] = $order_model->where($diss)->sum('total_price');
//订单量
$v['order_num'] = $order_model->where($diss)->count();
}
}
return $data;
}
/**
* @author chenniang
* @DataTime: 2021-09-08 10:20
* @功能说明:讲所有用户添加到会员表
*/
public function memberInit($uniacid){
$member_user = $this->where(['uniacid'=>$uniacid])->column('user_id');
$no_member_user = Db::name('longbing_card_user')->where(['uniacid'=>$uniacid])->where('id','not in',$member_user)->column('id');
if(!empty($no_member_user)){
foreach ($no_member_user as $value){
$dis = [
'uniacid' => $uniacid,
'user_id' => $value
];
$this->getMemberInfo($dis);
}
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-07-16 15:30
* @功能说明:统计
*/
public function listForm($id){
$order_model = new \app\shop\model\Order();
$car_order_model = new Order();
$record_model = new CarAtvRecord();
$dis[] = ['user_id','=',$id];
$dis[] = ['pay_type','>',1];
// $dis[] = ['create_time','>',$member['create_time']];
//商城消费金额
$shop_price = $order_model->where($dis)->sum('true_price');
//商城订单量
$shop_count = $order_model->where($dis)->count();
//赛车订单
$car_price = $car_order_model->where($dis)->sum('pay_price');
//赛车订单量
$car_count = $car_order_model->where($dis)->count();
//活动订单
$atv_price = $record_model->where($dis)->sum('pay_price');
//活动订单量
$atv_count = $record_model->where($dis)->count();
$data = [
'price' => round($shop_price+$car_price+$atv_price,2),
'count' => round($shop_count+$car_count+$atv_count,2),
];
return $data;
}
/**
* @author chenniang
* @DataTime: 2021-10-19 16:09
* @功能说明:获取总的订单
*/
public function totalOrder($user_id,$type=1){
$order_model = new Order();
// $dis = [
//
// ''
// ]
if($type==1){
}else{
}
}
/**
* @author chenniang
* @DataTime: 2020-07-28 09:44
* @功能说明:用户信息
*/
public function userInfo($user_id,$uniacid){
$dis = [
'b.id' => $user_id
];
//用户信息
$user_info = $this->memberInfoIndex($dis);
//等级模型
$level_model = new Level();
$user_info['now_level'] = $level_model->getUserLevel($user_id,$uniacid);
//是否是会员
$user_info['is_member'] = !empty($user_info['now_level'])?1:0;
if(!empty($user_info['now_level'])&&$user_info['now_level']['top']==999){
//下一级等级
$user_info['next_level'] = [];
}else{
//下一级等级
$user_info['next_level'] = $level_model->getMemberLevel($uniacid,$user_info['growth']);
}
return $user_info;
}
/**
* @author chenniang
* @DataTime: 2020-07-31 09:16
* @功能说明:更新会员
*/
public function updateMember($order){
$growth_model = new Growth();
$level_model = new Level();
$integral_model = new Integral();
$member_goods_model = new Goods();
Db::startTrans();
//还未升级以前的等级
$level_start = $level_model->getUserLevel($order['user_id'],$order['uniacid']);
//如果空就不是会员
$level_start = !empty($level_start['top'])?$level_start['top']:0;
//普通会员给成长值,plus会员给时间
$member_goods_model->ordertypeUpdate($order);
//增加成长值
$growth_model->incUserGrowth($order['id'],$order['user_id'],$order['uniacid']);
//增加后的等级
$level_end = $level_model->getUserLevel($order['user_id'],$order['uniacid']);
$level_end = !empty($level_end['top'])?$level_end['top']:0;
//普通会员升级礼包
if($level_end>$level_start){
$level_model->upUserRights($level_end,$order);
}
//增加积分
$integral_model->incUserIntegral($order['id'],$order['user_id'],$order['uniacid']);
Db::commit();
return true;
}
/**
* @author chenniang
* @DataTime: 2020-07-31 09:43
* @功能说明:加减成长值
*/
public function incDecGrowth($dis,$growth,$file = 'growth',$type = 0){
if($type==0){
$this->where($dis)->update([$file=>Db::raw("$file+$growth")]);
}else{
$this->where($dis)->update([$file=>Db::raw("$file-$growth")]);
}
return true;
}
/**
* @param $dis
* @功能说明:获取数据 没有就添加一条
* @author chenniang
* @DataTime: 2020-07-31 09:27
*/
public function getMemberInfo($dis){
$data = $this->where($dis)->find();
if(empty($data)){
$this->memberAdd($dis);
$data = $this->where($dis)->find();
}
return $data->toArray();
}
/**
* @author chenniang
* @DataTime: 2020-08-03 11:51
* @功能说明:商品详情
*/
public function goodsInfoMember($goods_id,$user_id,$uniacid){
//会员权限
$member_p = new PermissionMember($uniacid);
//会员商品折扣模型
$discount_goods_model = new DiscountGoods();
//会员配置模型
$member_config_model = new Config();
//会员等级模型
$level_model = new Level();
$member_config = $member_config_model->configInfo(['uniacid'=>$uniacid]);
//sass端授权
$member_auth = $member_p->pAuth();
//会员开关
$data['member_auth'] = $member_config['status']==1?$member_auth:false;
//会员商品折扣
$data['goods_discount'] = $discount_goods_model->userGoodsDiscount($goods_id,$user_id,$uniacid);
$data['goods_discount'] = $data['goods_discount']*10;
//会员等级
$level = $level_model->getUserLevel($user_id,$uniacid);
$data['level_title'] = !empty($level)?$level['title']:'';
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-08-04 09:30
* @功能说明:会员购买的回调
*/
public function memberPayResult($order){
$config_model = new Config();
//配置
$config = $config_model->configInfo(['uniacid'=>$order['uniacid']]);
if($config['status']==1){
$level_model = new Level();
$integral_model = new Integral();
$growth_model = new Growth();
//配置
$config = $config_model->configInfo(['uniacid'=>$order['uniacid']]);
//等级
$level = $level_model->getUserLevel($order['user_id'],$order['uniacid']);
//每日限领积分
$day_integral = $integral_model->dayIntegral($order['user_id'],$order['uniacid']);
//赠送积分
if(!empty($config['integral_cash'])){
//积分
$integral = $order['total_price']*$config['integral_cash'];
//积分倍率
$balance = !empty($level['integral_switch'])?$level['integral']:1;
//要加的积分
$integral = $integral*$balance;
//最终的积分
$integral = is_numeric($day_integral)&&$day_integral<$integral?$day_integral:$integral;
//添加积分记录
$integral_model->integralUserAdd($order['user_id'],$integral,$order['uniacid'],1,1,$order['id']);
}
//每日限领成长值
$day_growth = $growth_model->dayGrowth($order['user_id'],$order['uniacid']);
//赠送增长值(金额)
if(!empty($config['growth_cash'])&&!empty($level)){
//成长值
$growth_cash = intval($order['total_price']*$config['growth_cash']);
//最终成长值
$growth_cash = is_numeric($day_growth)&&$day_growth<$growth_cash?$day_growth:$growth_cash;
//添加成长值记录
$growth_model->addUserGrowth($order['uniacid'],$order['user_id'],$growth_cash,$order['id'],1);
}
//赠送增长值(订单) 只有会员才送
if(!empty($config['growth_order'])&&!empty($level)){
//成长值
$growth_cash = intval($config['growth_order']);
//最终成长值
$growth_cash = is_numeric($day_growth)&&$day_growth<$growth_cash?$day_growth:$growth_cash;
//添加成长值记录
$growth_model->addUserGrowth($order['uniacid'],$order['user_id'],$growth_cash,$order['id'],1);
}
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-08-07 17:12
* @功能说明:退款
*/
public function refundOrder($order_id){
$integral_model = new Integral();
$growth_model = new Growth();
$dis = [
'order_id' => $order_id
];
$integral_model->where($dis)->update(['refund'=>1]);
$growth_model->where($dis)->update(['refund'=>1]);
return true;
}
/**
* @author chenniang
* @DataTime: 2020-08-11 11:25
* @功能说明:会员权限
*/
public function getAuth($uniacid){
$config_model = new Config();
$config = $config_model->configInfo(['uniacid'=>$uniacid]);
$persisson = new PermissionMember($uniacid);
$auth = $persisson->pAuth();
$auth = $config['status']==1?$auth:false;
return $auth;
}
}

368
app/member/model/Rights.php Normal file
View File

@@ -0,0 +1,368 @@
<?php
namespace app\member\model;
use app\BaseModel;
use app\massage\model\CouponRecord;
use think\facade\Db;
class Rights extends BaseModel
{
//会员权益表
protected $name = 'longbing_card_v2_member_rights';
protected $append = [
'status_text'
];
/**
* @author chenniang
* @DataTime: 2020-07-16 11:51
* @功能说明:状态
*/
public function getStatusTextAttr($value,$data){
if(!empty($data['id'])){
$relation_model = new RightsRelation();
$info = $relation_model->where(['rights_id'=>$data['id']])->find();
return !empty($info)?1:0;
}
}
/**
* @author chenniang
* @DataTime: 2020-07-15 09:49
* @功能说明:添加
*/
public function rightsAdd($data){
$data['status'] = 1;
$data['create_time'] = time();
$data['update_time'] = time();
$res = $this->insert($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-07-16 11:57
* @功能说明:初始化
*/
public function initData($uniacid){
$dis = [
'uniacid' => $uniacid,
'type' => 0
];
$data = $this->rightsInfo($dis);
if(empty($data)){
$arr = [
[
'title' => '消费折扣',
'show_title' => '优享会员价',
'type' => 0,
'content' => '',
'top' => 10,
'icon' => 'https://longbingcdn.xiaochengxucms.com/admin/car/discount.png',
'uniacid' => $uniacid,
'use_type' => 1,
'status' => 1
],[
'title' => '积分倍率',
'show_title' => '会员多积分',
'type' => 0,
'content' => '',
'top' => 10,
'icon' => 'https://longbingcdn.xiaochengxucms.com/admin/car/multiple.png',
'uniacid' => $uniacid,
'use_type' => 2,
'status' => 1
],[
'title' => '赠送积分',
'show_title' => '会员专享积分',
'type' => 0,
'content' => '',
'top' => 10,
'icon' => 'https://longbingcdn.xiaochengxucms.com/admin/car/integral.png',
'uniacid' => $uniacid,
'use_type' => 3,
'status' => 1,
'is_up' => 1
],
[
'title' => '会员送券',
'show_title' => '送卡券',
'type' => 0,
'content' => '',
'top' => 10,
'icon' => 'https://longbingcdn.xiaochengxucms.com/admin/car/coupon.png',
'uniacid' => $uniacid,
'use_type' => 4,
'status' => 1,
'is_up' => 1
]
];
$this->saveAll($arr);
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:12
* @功能说明:列表
*/
public function rightsList($dis,$page){
$data = $this->where($dis)->order('top desc,id desc')->paginate($page)->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:08
* @功能说明:详情
*/
public function rightsInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:13
* @功能说明:编辑
*/
public function rightsUpdate($dis,$data){
$data['update_time'] = time();
$res = $this->where($dis)->update($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-07-22 16:58
* @功能说明:自定义权益
*/
public function customRights($member_id){
$dis[]= ['b.member_id','=',$member_id];
$dis[]= ['b.type','=',1];
$dis[]= ['a.status','=',1];
$data = $this->alias('a')
->join('longbing_card_v2_member_rights_relation b','a.id = b.rights_id')
->where($dis)
->group('b.rights_id')
->column('a.title');
return array_values($data);
}
/**
* @author chenniang
* @DataTime: 2020-07-28 10:38
* @功能说明:会员权益
*/
public function memberRights($level_id,$uniacid){
$dis = [
'b.member_id' => $level_id,
'b.uniacid' => $uniacid,
'a.status' => 1
];
$data = $this->alias('a')
->join('longbing_card_v2_member_rights_relation b','a.id = b.rights_id')
->where($dis)
->field(['a.id','a.show_title','a.type','a.use_type','a.icon'])
->group('a.id')
->order(['a.top desc','a.id desc'])
->select()
->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-07-29 10:49
* @功能说明:商品等级下拉框
*/
public function goodsLevelSelect($dis){
$data = $this->alias('a')
->join('longbing_card_member_rights_relation b','a.id = b.rights_id')
->join('longbing_card_member_level c','c.id = b.member_id')
->where($dis)
->field('c.title,c.id,c.top')
->group('c.id')
->order('c.top')
->select()
->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2021-11-12 17:40
* @功能说明:给用户权益
*/
public function giveRights($level_id,$user_id,$order_id=0){
$log_model = new RightsLog();
$level_model = new Level();
$level = $level_model->levelInfo(['id'=>$level_id]);
if(empty($level)){
return false;
}
$dis = [
'user_id' => $user_id,
'level_id'=> $level_id,
'uniacid' => $level['uniacid']
];
//已经给或该权益了
$find = $log_model->rightsInfo($dis);
if(!empty($find)){
return false;
}
$log_model->insert($dis);
//赠送积分
if(!empty($level['send_integral'])&&!empty($level['send_integral_switch'])){
$point_model = new Integral();
$point_model->integralUserAdd($user_id,$level['send_integral'],$level['uniacid'],2,0,$order_id);
}
//赠送卡券
//优惠券
$coupon_model= new Coupon();
$coupon_record_model = new CouponRecord();
$dis = [
'member_id' => $level_id
];
//优惠券
$coupon = $coupon_model->where($dis)->select()->toArray();
if(!empty($coupon)&&!empty($level['coupon_switch'])){
foreach ($coupon as &$value){
$coupon_record_model->recordAdd($value['coupon_id'],$user_id,$value['num']);
}
}
return true;
}
}

View File

@@ -0,0 +1,79 @@
<?php
namespace app\member\model;
use app\BaseModel;
use think\facade\Db;
class RightsLog extends BaseModel
{
//会员权益表
protected $name = 'longbing_card_v2_member_rights_log';
/**
* @author chenniang
* @DataTime: 2020-07-15 09:49
* @功能说明:添加
*/
public function rightsAdd($data){
$res = $this->insert($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:12
* @功能说明:列表
*/
public function rightsList($dis,$page){
$data = $this->where($dis)->order('id desc')->paginate($page)->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:08
* @功能说明:详情
*/
public function rightsInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:13
* @功能说明:删除直播
*/
public function rightsUpdate($dis,$data){
$data['update_time'] = time();
$res = $this->where($dis)->update($data);
return $res;
}
}

View File

@@ -0,0 +1,79 @@
<?php
namespace app\member\model;
use app\BaseModel;
use think\facade\Db;
class RightsRelation extends BaseModel
{
//会员权益表
protected $name = 'longbing_card_v2_member_rights_relation';
/**
* @author chenniang
* @DataTime: 2020-07-15 09:49
* @功能说明:添加
*/
public function rightsAdd($data){
$res = $this->insert($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:12
* @功能说明:列表
*/
public function rightsList($dis,$page){
$data = $this->where($dis)->order('id desc')->paginate($page)->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:08
* @功能说明:详情
*/
public function rightsInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:13
* @功能说明:删除直播
*/
public function rightsUpdate($dis,$data){
$data['update_time'] = time();
$res = $this->where($dis)->update($data);
return $res;
}
}

177
app/member/model/Stored.php Normal file
View File

@@ -0,0 +1,177 @@
<?php
namespace app\member\model;
use app\BaseModel;
use think\facade\Db;
class Stored extends BaseModel
{
//会员权益表
protected $name = 'longbing_card_member_stored';
protected $append = [
'stored_type'
];
/**
* @author chenniang
* @DataTime: 2020-09-11 11:07
* @功能说明:储值卡的类型
*/
public function getStoredTypeAttr($value,$data){
if(!empty($data['id'])){
$stored_level_model = new StoredLevel();
$type = $stored_level_model->storedType($data['id']);
return $type;
}
}
/**
* @author chenniang
* @DataTime: 2020-09-09 10:37
* @功能说明:列表
*/
public function storedList($dis,$page){
$data = $this->where($dis)->order('top desc,id desc')->paginate($page)->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-07-15 09:49
* @功能说明:添加
*/
public function storedAdd($data){
$data['create_time'] = time();
$data['update_time'] = time();
$data['status'] = 1;
if(isset($data['coupon'])){
$coupon = $data['coupon'];
unset($data['coupon']);
}
$res = $this->insert($data);
if(!empty($coupon)){
$id = $this->getLastInsID();
$this->updateSome($id,$coupon,$data['uniacid']);
}
return $res;
}
/**
* @author chenniang
* @DataTime: 2021-08-27 17:16
* @功能说明:编辑
*/
public function updateSome($id,$coupon,$uniacid){
$coupon_model = new StoredCoupon();
$coupon_model->where(['stored_id'=>$id])->delete();
if(!empty($coupon)){
foreach ($coupon as $value){
$insert = [
'uniacid' => $uniacid,
'coupon_id'=> $value['coupon_id'],
'stored_id'=> $id,
'num' => $value['num']
];
$coupon_model->insert($insert);
}
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:08
* @功能说明:详情
*/
public function storedInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:13
* @功能说明:编辑
*/
public function storedUpdate($dis,$data){
$data['update_time'] = time();
if(isset($data['coupon'])){
$coupon = $data['coupon'];
unset($data['coupon']);
}
$res = $this->where($dis)->update($data);
if(!empty($coupon)){
$id = $dis['id'];
$this->updateSome($id,$coupon,$data['uniacid']);
}
return $res;
}
}

View File

@@ -0,0 +1,156 @@
<?php
namespace app\member\model;
use app\BaseModel;
use app\shop\model\IndexCouponRecord;
use think\facade\Db;
class StoredCoupon extends BaseModel
{
//会员权益表
protected $name = 'longbing_card_erp_stored_coupon';
protected $append = [
'stored_type'
];
/**
* @author chenniang
* @DataTime: 2020-09-09 10:37
* @功能说明:列表
*/
public function storedList($dis,$page){
$data = $this->where($dis)->order('top desc,id desc')->paginate($page)->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-07-15 09:49
* @功能说明:添加
*/
public function storedAdd($data){
$data['create_time'] = time();
$data['update_time'] = time();
$data['status'] = 1;
$res = $this->insert($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:08
* @功能说明:详情
*/
public function storedInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-04-26 17:13
* @功能说明:编辑
*/
public function storedUpdate($dis,$data){
$data['update_time'] = time();
$res = $this->where($dis)->update($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-09-08 16:30
* @功能说明:添加用户的优惠券
*/
public function insertCoupon($id,$user_id,$uniacid){
$order = [
'uniacid' => $uniacid,
'user_id' => $user_id,
'to_uid' => 0
];
$dis = [
'a.stored_id' => $id
];
$data = $this->alias('a')
->join('longbing_card_coupon b','a.coupon_id = b.id')
->where($dis)
->group('a.coupon_id')
->field('b.*,a.num as coupon_num')
->select()
->toArray();
$record_model = new IndexCouponRecord();
if(!empty($data)){
foreach ($data as $coupon){
for ($i=0;$i<$coupon['coupon_num'];$i++){
if(!isset($order['staff_id'])&&isset($order['to_uid'])){
$order['staff_id'] = $order['to_uid'];
}
//领取优惠券
$record_model->insertRecord($coupon,$order);
}
}
}
return true;
}
}

View File

@@ -0,0 +1,101 @@
<?php
namespace app\member\model;
use app\BaseModel;
use think\facade\Db;
class StoredLevel extends BaseModel
{
//会员权益表
protected $name = 'longbing_card_member_level_stored';
/**
* @author chenniang
* @DataTime: 2020-09-07 16:18
* @功能说明:添加优惠券
*/
public function addStored($stored, $level_id,$data){
$this->where(['member_id'=>$level_id])->delete();
if(!empty($stored)){
array_walk($stored, function ($value, $key) use (&$stored, $level_id,$data) {
$stored[$key] = [
//等级id
'member_id' => $level_id,
'uniacid' => $data['uniacid'],
'stored_id' => $value,
];
});
//添加
$res = $this->saveAll($stored);
}
return true;
}
/**
* @author chenniang
* @DataTime: 2020-09-11 11:10
* @功能说明:储值卡类型
*/
public function storedType($stored_id){
$dis = [
'a.stored_id' => $stored_id,
'b.status' => 1,
'b.type' => 1
];
$data = $this->alias('a')
->join('longbing_card_member_level b','a.member_id=b.id')
->where($dis)
->find();
return !empty($data)?1:0;
}
/**
* @author chenniang
* @DataTime: 2020-09-11 15:49
* @功能说明:获取puls会员的详情
*/
public function getLevel($stored_id){
$dis = [
'a.stored_id' => $stored_id,
'b.status' => 1,
'b.type' => 1
];
$data = $this->alias('a')
->join('longbing_card_member_level b','a.member_id=b.id')
->where($dis)
->field('b.*')
->find();
return !empty($data)?$data->toArray():[];
}
}

View File

@@ -0,0 +1,566 @@
<?php
namespace app\member\model;
use app\BaseModel;
use app\overlord\model\Active;
use app\shop\controller\IndexPayResunt;
use app\shop\model\IndexShopOrder;
use think\facade\Db;
class StoredOrder extends BaseModel
{
//会员权益表
protected $name = 'longbing_card_member_stored_order';
/**
* @author chenniang
* @DataTime: 2020-09-17 17:47
* @功能说明:订单详情
*/
public function orderInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-09-11 10:29
* @功能说明:下单
*/
public function addOrder($stored,$user_id,$staff_id,$share_id){
$member_model = new Member();
$member_info = $member_model->getMemberInfo(['user_id'=>$user_id,'uniacid'=>$stored['uniacid']]);
$data = [
'create_time' => time(),
'status' => 0,
'user_id' => $user_id,
'staff_id' => $staff_id,
'stored_id' => $stored['id'],
'pay_price' => round($stored['pay_price'],2),
'true_price' => round($stored['true_price'],2),
'true_price_before' => round($member_info['stored'],2),
'true_price_after' => round($member_info['stored']+$stored['true_price'],2),
'growth' => $stored['growth'],
'title' => $stored['title'],
'uniacid' => $stored['uniacid'],
'order_code' => orderCode(),
'type' => $stored['stored_type'],
'over_time' => 0,
'share_id' => $share_id
];
//如果是puls会员的要把过期时间加好
if($stored['stored_type']==1){
$stored_level_model = new StoredLevel();
$level = $stored_level_model->getLevel($stored['id']);
if(empty($level)){
return ['code'=>400,'msg'=>'等级未找到'];
}
$data['over_time'] = $level['over_time'];
}
$res = $this->insert($data);
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-09-17 13:48
* @功能说明:订单退款时候处理储值
*/
public function orderRefundStore($order_id,$app,$refund_prices){
$order_model = new IndexShopOrder();
$order_info = $order_model->orderInfo(['id'=>$order_id]);
//储值支付
$reslut = new IndexPayResunt($app);
//储值记录
$res = $reslut->orderStoredResult($order_info,5,$refund_prices);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-09-16 10:52
* @功能说明:储值扣款
*/
public function desStore($price,$text,$member_info,$controller_type,$controller,$order_code=0,$title=0){
//注意:3和5的order_code都是商城订单的order_code,其他的都是系统生成的)
$order_code = !empty($order_code)?$order_code:orderCode();
//4 是直接修改价格 1、2、3的是扣除 0、5充值是加,6是加 霸王餐优惠;7申请提现;8申请拒绝
switch ($controller_type){
case 0:
$true_price_after = round($member_info['stored']+$price,2);
break;
case 1:
$true_price_after = round($member_info['stored']-$price,2);
break;
case 2:
$true_price_after = round($member_info['stored']-$price,2);
break;
case 3:
$true_price_after = round($member_info['stored']-$price,2);
break;
case 4:
$true_price_after = $price;
break;
case 5:
$true_price_after = round($member_info['stored']+$price,2);
break;
case 6:
$true_price_after = round($member_info['stored']+$price,2);
break;
case 7:
$true_price_after = round($member_info['stored']-$price,2);
break;
case 8:
$true_price_after = round($member_info['stored']+$price,2);
break;
}
$data = [
'create_time' => time(),
'pay_time' => time(),
'status' => 0,
'user_id' => $member_info['user_id'],
'staff_id' => in_array($controller_type,[1,4,6,7,8])?0:$controller,
'stored_id' => 0,
'pay_price' => round($price,2),
'true_price' => round($price,2),
'true_price_before' => round($member_info['stored'],2),
//4 是直接修改价格 2、3的是扣除 1充值是加
'true_price_after' => $true_price_after,
'growth' => 0,
'title' => $title,
'uniacid' => $member_info['uniacid'],
'order_code' => $order_code,
'type' => 0,
'over_time' => 0,
'share_id' => 0,
'status' => 2,
'controller_type' => $controller_type,
'controller' => $controller,
'text' => $text
];
$res = $this->insert($data);
$id = $this->getLastInsID();
if($res==1){
$member_model = new Member();
if(in_array($controller_type,[4])){
$y_price = $price;
}elseif (in_array($controller_type,[1,2,3])){
$y_price = $member_info['stored']-$price;
}elseif (in_array($controller_type,[0,5])){
$y_price = $member_info['stored']+$price;
//霸王餐 优惠 管理员
}elseif (in_array($controller_type,[6,8])){
$y_price = $member_info['stored']+$price;
$member_info['cash_stored'] +=$price;
//提现 (霸王餐)
}elseif (in_array($controller_type,[7])){
$y_price = $member_info['stored']-$price;
$member_info['cash_stored'] -=$price;
}
$where[] = ['id','=',$member_info['id']];
$where[] = ['stored','>=',0];
$res = $member_model->where($where)->update(['stored'=>$y_price,'cash_stored'=>$member_info['cash_stored']]);
//目前只有员工扣款和后台扣款有佣金
if(in_array($controller_type,[1,2])){
$order = $this->orderInfo(['id'=>$id]);
//配置模型
$congfig = new Config();
//返佣
$congfig->controllerCommission($order);
}
}
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-09-11 10:59
* @功能说明:回调
*/
public function orderResult($order_code,$transaction_id){
$order = $this->where(['order_code'=>$order_code])->find();
if(empty($order_code)||$order->status!=0){
return false;
}
$order = $order->toArray();
//修改订单状态
$this->where(['order_code'=>$order_code])->update(['status'=>2,'pay_time'=>time(),'transaction_id'=>$transaction_id]);
//会员模型
$member_model = new Member();
//等级模型
$level_model = new Level();
//获取用户会员信息(没有则创建)
$user_info = $member_model->memberUpdateInfo(['user_id'=>$order['user_id'],'uniacid'=>$order['uniacid']]);
//送储值
$row['stored'] = $user_info['stored']+$order['true_price'];
//0是普通会员要送成长值
if($order['type']==0){
$row['growth'] = $user_info['growth']+$order['growth'];
$growth_model = new Growth();
$growth_model->addUserGrowth($order['uniacid'],$order['user_id'],$order['growth'],$order['id'],2,2);
}else{
//1是plus会员给会员过期时间
if($user_info['over_time']<time()){
$time = strtotime("+".$order['over_time']."month");
$row['over_time'] = $time;
//赠送升级礼包
//$level_model->upUserRights('999',$order);
}
}
//编辑用户
$level_model->upUserRightsEnd($row,$order);
//返佣
$config_model = new Config();
$config_model->storeOrderCommission($order);
$store_coupon = new StoredCoupon();
$store_coupon->insertCoupon($order['stored_id'],$order['user_id'],$order['uniacid']);
return true;
}
/**
* @author chenniang
* @DataTime: 2020-07-16 16:35
* @功能说明:列表
*/
public function recordList($dis,$page){
$data = $this->where($dis)->order(['create_time desc','id desc'])->paginate($page)->toArray();
if(!empty($data['data'])){
foreach ($data['data'] as &$v){
$v = $this->orderText($v['id']);
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
}
}
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-09-27 14:33
* @功能说明:拼接扣款文案
*/
public function orderText($order_id){
$v = $this->orderInfo(['id'=>$order_id]);
//购买储值套餐
if($v['controller_type']==0){
$v['controller_avatar'] = lbUserAvatar($v['user_id']);
$v['controller_name'] = '系统核算';
$icon = $v['true_price']>0?'+':'-';
$growth_add = $v['true_price']>0?$v['true_price']:$v['true_price']*-1;
$boj = $this->returnObj($v['type']);
$v['admin_text'] = $boj.'【'.$v['title'].'】'.$icon.'¥'.$growth_add.',现余额 ¥'.$v['true_price_after'];
$v['index_text'] = $boj.'【'.$v['title'].'】';
}elseif($v['controller_type']==1){
//后台扣款
$v['controller_name'] = Db::name('longbing_admin')->where(['admin_id'=>$v['controller']])->value('account');
$v['controller_avatar'] = 'https://retail.xiaochengxucms.com/defaultAvatar.png';
$v['admin_text'] = '扣除储值 ¥'.$v['true_price'].',现储值 ¥'.$v['true_price_after'];
$v['true_price'] = '-'.$v['true_price'];
$v['index_text'] = '系统扣除储值';
}elseif($v['controller_type']==2){
//员工扣款
$v['controller_avatar'] = lbUserAvatar($v['controller']);
$v['controller_name'] = lbUserName($v['controller']);
$v['admin_text'] = '扣除储值 ¥'.$v['true_price'].',现储值 ¥'.$v['true_price_after'];
$v['true_price'] = '-'.$v['true_price'];
$v['index_text'] = '员工扣除储值'.'【'.$v['controller_name'].'】';
}elseif ($v['controller_type']==3){
//购买套餐
$v['controller_avatar'] = lbUserAvatar($v['user_id']);
$v['controller_name'] = '系统核算';
$growth_add = $v['true_price']>0?$v['true_price']:$v['true_price']*-1;
$boj = $this->returnObj($v['controller_type']);
$v['admin_text'] = $boj.'【'.$v['title'].'】-¥'.$growth_add.',现余额 ¥'.$v['true_price_after'];
$v['index_text'] = $boj.'【'.$v['title'].'】';
$v['true_price'] = '-'.$v['true_price'];
}elseif ($v['controller_type']==4){
//员工修改
$v['controller_name'] = Db::name('longbing_admin')->where(['admin_id'=>$v['controller']])->value('account');
$v['controller_avatar'] = 'https://retail.xiaochengxucms.com/defaultAvatar.png';
$v['admin_text'] = '储值 ¥'.$v['true_price_before'].',修改为 ¥'.$v['true_price_after'];
$v['index_text'] = '系统修改储值';
}elseif ($v['controller_type']==5){
//购买商品退款
$v['controller_avatar'] = lbUserAvatar($v['user_id']);
$v['controller_name'] = '系统核算';
$growth_add = $v['true_price']>0?$v['true_price']:$v['true_price']*-1;
$boj = $this->returnObj($v['controller_type']);
$v['admin_text'] = $boj.'【'.$v['title'].'】+¥'.$growth_add.',现余额 ¥'.$v['true_price_after'];
$v['index_text'] = $boj.'【'.$v['title'].'】';
}elseif ($v['controller_type']==6){
//霸王餐优惠
$v['controller_avatar'] = lbUserAvatar($v['user_id']);
$v['controller_name'] = is_numeric($v['controller'])?lbUserName($v['controller']):Db::name('longbing_admin')->where(['admin_id'=>$v['controller']])->value('account');;
$growth_add = $v['true_price'];
$boj = $this->returnObj($v['controller_type']);
$atv_model = new Active();
$title = $atv_model->where(['id'=>$v['title']])->value('title');
$v['admin_text'] = $boj.'【'.$title.'】'.'¥'.$growth_add.',现余额 ¥'.$v['true_price_after'];
$v['index_text'] = $boj.'【'.$title.'】';
}elseif ($v['controller_type']==7){
//霸王餐优惠(提现)
$v['controller_avatar'] = lbUserAvatar($v['user_id']);
$v['controller_name'] = is_numeric($v['controller'])?lbUserName($v['controller']):Db::name('longbing_admin')->where(['admin_id'=>$v['controller']])->value('account');;
$growth_add = $v['true_price'];
$boj = $this->returnObj($v['controller_type']);
$v['admin_text'] = $boj.'-¥'.$growth_add.',现余额 ¥'.$v['true_price_after'];
$v['true_price'] = '-'.$v['true_price'];
$v['index_text'] = $boj;
}elseif ($v['controller_type']==8){
//霸王餐优惠(拒绝提现)
$v['controller_avatar'] = lbUserAvatar($v['user_id']);
$v['controller_name'] = Db::name('longbing_admin')->where(['admin_id'=>$v['controller']])->value('account');;
$growth_add = $v['true_price'];
$boj = $this->returnObj($v['controller_type']);
$v['admin_text'] = $boj.'¥'.$growth_add.',现余额 ¥'.$v['true_price_after'];
$v['index_text'] = $boj;
}
return $v;
}
/**
* @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;
case 3:
return '购买商品';
break;
case 5:
return '商品退款';
break;
case 6:
return '霸王餐活动';
break;
case 7:
return '提现申请';
break;
case 8:
return '拒绝提现';
break;
default:
return '消费获得';
break;
}
}
}