<?php namespace app\common\logic; use app\common\logic\BaseLogic; use app\common\model\user\User; use app\common\model\user_sign\UserSign; use app\common\model\user_sign_log\UserSignLog; /** * 会员积分逻辑 * Class UserSignLogic */ class UserSignLogic extends BaseLogic { /** * 来自充值 */ public static function dealRechargeFrozen($user, $order, $user_ship = 0) { $total_vip = bcmul($order['price'], 0.1, 2); $count = UserSign::where('uid', $order->uid)->count(); if ($count == 0 && in_array($user_ship, [1, 2, 3, 5, 6, 7, 8])) { $write = self::write($order, $total_vip, 0, 1); self::write_log($write, $total_vip, 0); User::where('id', $order->uid)->inc('integral', $total_vip)->update(); } else { $write = self::write($order, $total_vip, 0, 0); self::write_log($write, $total_vip, 0); } return true; } /** * 来自订单 */ public static function OrderWrite($order) { $total_vip = bcmul($order['pay_price'], 0.1, 2); //非收银台订单冻结里礼品卷 if ($order['source'] == 0) { $write = self::write($order, $total_vip, 1, 0); } else { $write = self::write($order, $total_vip, 1, 1); self::write_log($write, $total_vip, 1); User::where('id', $order->uid)->inc('integral', $total_vip)->update(); } } /** * 核销 */ public static function WriteOff($order){ $find=UserSign::where(['order_id'=>$order['order_id'],'status'=>0,'financial_pm'=>1,'order_type'=>1])->find(); if($find){ $find->status=1; $find->save(); User::where('id', $order->uid)->inc('integral', $find['number'])->update(); self::write_log($find,$find['number'], 1); } } /** * 储存商品积分结算 */ public static function storage($order){ $find=UserSign::where(['order_id'=>$order['order_id'],'status'=>0,'financial_pm'=>1,'order_type'=>1])->find(); if($find){ // if($or) // $find->status=1; // $find->save(); // User::where('id', $order->uid)->inc('integral', $find['number'])->update(); // self::write_log($find,$find['number'], 1); } } public static function write($order, $total_vip, $order_type = 0, $status = 0, $title = 4, $pm = 1) { //礼品券得 $sing = [ 'uid' => $order['uid'], 'order_id' => $order['order_id'], 'title' => $title, 'financial_pm' => $pm, 'store_id' => $order['store_id'], 'status' => $status, 'number' => $total_vip, 'back_num' => $total_vip, 'order_type' => $order_type, ]; return UserSign::create($sing); } public static function write_log($write, $total_vip, $order_type = 0, $title = 4, $pm = 1) { //礼品券日志记录 $sing = [ 'uid' => $write['uid'], 'sid' => $write['id'], 'order_id' => $write['order_id'], 'title' => $title, 'financial_pm' => $pm, 'order_type' => $order_type, 'status' => 1, 'number' => $total_vip, ]; UserSignLog::create($sing); } }