bztang-admin/app/common/models/weightValue/WeightValueLog.php

126 lines
4.0 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\common\models\weightValue;
use app\common\models\BaseModel;
use app\common\models\Member;
use function PHPUnit\Framework\isNull;
class WeightValueLog extends BaseModel{
public $timestamps = false;
public $table = 'yz_weight_value_log';
public $casts = [
'created_at' => 'datetime:Y-m-d h:i:s'
];
protected $fillable = [
'uniacid',
'member_id',
'type',
'goods_id',
'order_id',
'order_goods_id',
'change_type',
'change_quantity',
'change_front',
'change_after',
'remark',
'created_at',
];
/**
* Common: 获取列表
* Author: wu-hui
* Time: 2023/09/27 14:04
* @param $pageSize
* @param $search
* @param string[] $field
* @return array
*/
public function getList($pageSize,$search,$field = ['*']){
// 条件生成
$where = [];
if($search['member_id'] > 0) $where[] = ['member_id','=',$search['member_id']];
// if($search['type'] >= 0 && !is_null($search['type'])) $where[] = ['type','=',$search['type']];
if($search['change_type'] >= 0 && !is_null($search['change_type'])) $where[] = ['change_type','=',$search['change_type']];
// 列表获取
$list = self::uniacid()
->select($field)
->where($where)
->with(['member'=>function($query){
$query->select(['uid','nickname','realname','avatar']);
}])
->orderBy('created_at','DESC')
->orderBy('id','DESC')
->paginate($pageSize);
return $list ? $list->toArray() : [];
}
/**
* Common: 获取总数
* Author: wu-hui
* Time: 2023/09/27 17:49
* @param $uid
* @param int $changeType
* @return string
*/
public function getChangeTypeSum($uid,$changeType = -1){
$where = [];
if($changeType == 0) $where[] = ['change_type','=',0];
if($changeType == 1) $where[] = ['change_type','=',1];
$sum = (float)self::uniacid()->where('member_id',$uid)->where($where)->sum('change_quantity');
return sprintf("%.2f",$sum);
}
/**
* Common: 权重值增加|减少操作
* Author: wu-hui
* Time: 2023/09/27 17:12
* @param int $uid
* @param float $money
* @param int $changeType
* @param string $remark
* @param int $type
*/
public function weightValueOperate(int $uid,float $money,int $changeType = 1,string $remark = '',int $type = 0){
// 获取当前用户持有数量
$changeFront = (float)Member::uniacid()->where('uid',$uid)->value('weight_value');
// 变更后的数量
$changeAfter = $changeType == 1 ? $changeFront + $money : $changeFront - $money;
// 变更记录
$data = [
'uniacid' => \YunShop::app()->uniacid,
'member_id' => $uid,// 用户id
'type' => $type,// 权重值类型0=经纪人(经销商)权重值
'goods_id' => 0,// 商品id
'order_id' => 0,// 订单id
'order_goods_id' => 0,// 订单商品id
'change_type' => $changeType,// 变更类型0=减少1=增加
'change_quantity' => $money,// 变更数量
'change_front' => (float)$changeFront,// 变更前拥有的数量
'change_after' => sprintf("%.2f",$changeAfter),// 变更后拥有的数量
'remark' => $remark,// 备注
'created_at' => time(),// 变更时间
];
$this->insert($data);
// 修改用户持有
Member::uniacid()->where('uid',$uid)->update([
'weight_value' => $changeAfter
]);
}
/**
* Common: 一对一关联 用户信息
* Author: wu-hui
* Time: 2023/09/27 13:43
* @return \Illuminate\Database\Eloquent\Relations\HasOne
*/
public function member(){
return $this->hasOne(Member::class, 'uid', 'member_id');
}
}