'datetime:Y-m-d H:i:s' ]; protected $fillable = [ 'uniacid', 'uid', 'goods_id', 'order_id', 'order_goods_id', 'legumes_withdrawal_id', 'change_type', 'change_quantity', 'change_front', 'change_after', 'remark', 'created_at', 'source' ]; /** * Common: 变更记录处理 * Author: wu-hui * Time: 2023/11/29 17:40 * @param int $uid 用户id * @param float $changeNum 变更数量 * @param int $changeType 变更类型:0=减少,1=增加 * @param string $remark 备注 * @param int $changeSource 记录来源:0=文创豆易出,1=商品兑换 * @param array $params 其他参数:goods_id、order_id、order_goods_id、legumes_withdrawal_id * @return mixed */ public function changeHandle(int $uid,float $changeNum,int $changeType,string $remark,int $changeSource = 1,array $params = []){ // 获取当前用户持有数量 $changeFront = (float)CulturalSpace::uniacid()->where('uid',$uid)->value('goods_legumes'); $changeFrontMoney = (float)CulturalSpace::uniacid()->where('uid',$uid)->value('goods_legumes_money'); // 变更后的数量 $changeAfter = $changeType == 1 ? $changeFront + $changeNum : $changeFront - $changeNum; $changeAfterMoney = $changeType == 1 ? $changeFrontMoney + $params['change_money'] : $changeFrontMoney - $params['change_money']; // 变更记录 $data = [ 'uniacid' => \YunShop::app()->uniacid, 'uid' => $uid,// 用户id 'goods_id' => $params['goods_id'] ?? 0,// 商品id 'order_id' => $params['order_id'] ?? 0,// 订单id 'order_goods_id' => $params['order_goods_id'] ?? 0,// 订单商品id 'legumes_withdrawal_id' => $params['legumes_withdrawal_id'] ?? 0,// 文创豆易出申请id 'change_type' => $changeType,// 变更类型:0=减少,1=增加 'change_quantity' => $changeNum,// 变更数量 'change_front' => $changeFront,// 变更前拥有的数量 'change_after' => $changeAfter,// 变更后拥有的数量 'remark' => $remark, 'created_at' => time(),// 变更时间 'source' => $changeSource, 'change_quantity_money' => $params['change_money'] ?? 0,// 具体变更金额 'change_front_money' => $changeFrontMoney ?? 0,// 变更前拥有的金额 'change_after_money' => $changeAfterMoney ?? 0,// 变更后拥有的金额 ]; $id = $this->insertGetId($data); // 修改用户持有 CulturalSpace::uniacid()->where('uid',$uid)->update([ 'goods_legumes' => $changeAfter, 'goods_legumes_money' => $changeAfterMoney, ]); return $id; } }