field($field) ->order($order) ->paginate(['list_rows' => $pageSize, 'query' => request()->param()]); $page = $list->render(); $data['list'] = $list->toArray()['data']; $data['count'] = $list->total(); $data['last_page'] = $list->toArray()['last_page']; $data['page'] = $page; return $data; } /** * 获取单条数据 */ public static function getInfo($where = [], $field = '*') { $data = self::where($where) ->field($field) ->find(); return $data; } /** * 欧气值升级 */ public static function ou_qi_level_up($user_id, $money, $type = 1) { if ($type == 1) { $ou_qi = round($money * 100, 2); self::changeOuQi($user_id, $ou_qi, 2, '消费赠送'); } // #符合升级的权益 $level_info = QyLevel::field('id,level,title,number') ->whereNull('deltime') ->order('id desc') ->select()->toArray(); $users = Db::name('user')->field('ou_qi,ou_qi_level')->where('id', $user_id)->find(); foreach ($level_info as $k => $v) { if ($users['ou_qi'] >= $v['number'] && $v['level'] > $users['ou_qi_level']) { $cha_ou_qi = bcsub((string) $users['ou_qi'], (string) $v['number'], 2); self::field('ou_qi_level')->where('id', $user_id)->update(['ou_qi_level' => $v['level']]); self::changeOuQi($user_id, -$v['number'], 3, '升级减少', $v['level'], '级'); break; } } } /** * 用户欧气值变化 * @param $user_id * @param $change_money * @param $type * @param $content * @param int $share_uid * @param string $other * @return int */ public static function changeOuQi($user_id, $change_money, $type, $content, $other = '') { if ($change_money == 0) { return 1; } #用户信息 $user_info = self::field('ou_qi')->find($user_id); $money = $user_info['ou_qi']; $money = bcadd("$money", "$change_money", 2); $arr = []; $arr['user_id'] = $user_id; $arr['change_money'] = $change_money; $arr['money'] = $money; $arr['type'] = $type; $arr['content'] = $content; $arr['addtime'] = time(); $arr['other'] = $other; $res[] = ProfitOuQi::insert($arr); $res[] = $user_info->save(['ou_qi' => $money]); return $res; } public static function ou_qi_level($ou_qi_level, $ou_qi) { if ($ou_qi_level == 0) { $number = QyLevel::field('level,title') ->where('level', '=', 1) ->whereNull('deltime') ->value('number'); if ($ou_qi != 0) { $jindu = round($number / $ou_qi * 100); } else { $jindu = 0; } return ['level' => 0, 'title' => '暂无权益', 'cha' => $number, 'jindu' => $jindu]; } else { $level_info = QyLevel::field('level,title') ->where('level', '=', $ou_qi_level) ->whereNull('deltime') ->find(); $xia_level_info = QyLevel::field('number') ->where('level', '=', $ou_qi_level + 1) ->whereNull('deltime') ->find(); if ($xia_level_info) { $level_info['cha'] = $xia_level_info['number'] - $ou_qi; $level_info['jindu'] = round($ou_qi / $xia_level_info['number'] * 100); return $level_info; } else { $level_info['cha'] = '-1'; $level_info['jindu'] = 100; return $level_info; } } } /** * 用户货币2变化 * @param $user_id * @param $change_money * @param $type 1后台充值 2在线充值 3抽赏消费 4背包兑换 5推荐奖励 * @param $content * @param int $share_uid * @param string $other * @return int */ public static function changeMoney2($user_id, $change_money, $type, $content = '', $share_uid = 0, $other = '') { if ($change_money == 0) { return 1; } #用户信息 $user_info = self::field('money2')->find($user_id); $money = $user_info['money2']; $money = bcadd("$money", "$change_money", 2); $arr = []; $arr['user_id'] = $user_id; $arr['change_money'] = $change_money; $arr['money'] = $money; $arr['type'] = $type; $arr['content'] = $content; $arr['addtime'] = time(); $arr['share_uid'] = $share_uid; $arr['other'] = $other; $res[] = ProfitMoney2::insert($arr); $res[] = $user_info->save(['money2' => $money]); return $res; } /** * 用户变化 发放uu币 * @param $user_id * @param $change_money * @param $type 1后台充值 2抽赏消费 3开券获得 * @param $content * @param int $share_uid * @param string $other * @return int */ public static function changeIntegral($user_id, $change_money, $type, $content = '', $share_uid = 0, $other = '') { if ($change_money == 0) { return 1; } #用户信息 $user_info = self::field('integral')->find($user_id); $money = $user_info['integral']; $money = bcadd("$money", "$change_money", 2); $arr = []; $arr['user_id'] = $user_id; $arr['change_money'] = $change_money; $arr['money'] = $money; $arr['type'] = $type; $arr['content'] = $content; $arr['addtime'] = time(); $arr['share_uid'] = $share_uid; $arr['other'] = $other; $res[] = ProfitIntegral::insert($arr); $res[] = $user_info->save(['integral' => $money]); return $res; } /** * 判断是否发积分 发券 * @param $order */ public static function is_integral_coupon($order) { $goods = Goods::where('id', '=', $order['goods_id'])->find(); $res = []; #开启发积分 if ($goods['integral_is'] == 1 && $order['price'] > 0) { $res[] = self::changeScore($order['user_id'], $order['price'], 4, '抽奖奖励'); } #开启发券 if ($goods['coupon_is'] == 1) { $d_coupon_num = OrderList::field('goodslist_money')->where([['order_id', '=', $order['id']], ['goodslist_money', '>=', 100], ['goodslist_money', '<', 500]])->select(); $config = getConfig("base"); foreach ($d_coupon_num as $k => $v) { $coupon = []; $coupon['title'] = "普通赏券"; $coupon['num'] = $v['goodslist_money']; $coupon['level'] = 4; $coupon['kl_num'] = $config['coupon_d_xz_max']; $res[] = self::insert_coupon($order, $coupon); } $c_coupon_num = OrderList::field('goodslist_money')->where([['order_id', '=', $order['id']], ['goodslist_money', '>=', 500], ['goodslist_money', '<', 2000]])->select(); foreach ($c_coupon_num as $k => $v) { $coupon = []; $coupon['title'] = "高级赏券"; $coupon['num'] = $v['goodslist_money']; $coupon['level'] = 3; $coupon['kl_num'] = $config['coupon_c_xz_max']; $res[] = self::insert_coupon($order, $coupon); } $b_coupon_num = OrderList::field('goodslist_money')->where([['order_id', '=', $order['id']], ['goodslist_money', '>=', 2000], ['goodslist_money', '<', 5000]])->select(); foreach ($b_coupon_num as $k => $v) { $coupon = []; $coupon['title'] = "终极赏券"; $coupon['num'] = $v['goodslist_money']; $coupon['level'] = 2; $coupon['kl_num'] = $config['coupon_b_xz_max']; $res[] = self::insert_coupon($order, $coupon); } $a_coupon_num = OrderList::field('goodslist_money')->where([['order_id', '=', $order['id']], ['goodslist_money', '>=', 5000]])->select(); foreach ($a_coupon_num as $k => $v) { $coupon = []; $coupon['title'] = "特级赏券"; $coupon['num'] = $v['goodslist_money']; $coupon['level'] = 1; $coupon['kl_num'] = $config['coupon_a_xz_max']; $res[] = self::insert_coupon($order, $coupon); } } if (!$res) { $res[] = 1; } return $res; } /** * 用户积分变化 * @param $user_id * @param $change_money * @param $type 1后台充值 2抽赏消费 3升级获得 4抽赏奖励 * @param $content * @param int $share_uid * @param string $other * @return int */ public static function changeScore($user_id, $change_money, $type, $content, $share_uid = 0, $other = '') { if ($change_money == 0) { return 1; } #用户信息 $user_info = self::field('score')->find($user_id); $money = $user_info['score']; $money = bcadd("$money", "$change_money", 2); $arr = []; $arr['user_id'] = $user_id; $arr['change_money'] = $change_money; $arr['money'] = $money; $arr['type'] = $type; $arr['content'] = $content; $arr['addtime'] = time(); $arr['share_uid'] = $share_uid; $arr['other'] = $other; $res[] = ProfitScore::insert($arr); $res[] = $user_info->save(['score' => $money]); return $res; } public static function insert_coupon($order, $coupon) { //自己获得80% $percentage = 80; $own = $coupon['num'] * ($percentage / 100); //其他人获得20% $percentage = 20; $other = $coupon['num'] * ($percentage / 100); $data = [ 'user_id' => $order['user_id'], 'level' => $coupon['level'], 'title' => $coupon['title'], 'num' => $coupon['num'], 'status' => 1, 'type' => 1, 'from_id' => $order['id'], 'own' => intval($own), 'own2' => intval($own), 'other' => intval($other), 'other2' => intval($other), 'kl_num' => $coupon['kl_num'], 'kl_num2' => $coupon['kl_num'], 'addtime' => time(), 'updatetime' => time(), ]; $result = UserCoupon::insert($data); return $result; } /** * 分销奖励 * @param $order */ public static function distribution($order) { #微信支付金额 $price = $order['price']; $fx_bili = (int) getConfig("base")['fx_bili']; if ($price > 0 && $fx_bili > 0) { $fx_bili = $fx_bili / 100; $jiangli = bcmul("$price", "$fx_bili", 2); if ($jiangli > 0) { $pid = self::field('id')->where('id', '=', $order['user_id'])->value('pid'); if ($pid) { $res[] = self::changeMoney($pid, $jiangli, 5, '推荐奖励', $order['user_id'], '奖励比例:' . $fx_bili); } } if (empty($res)) { $res = 1; } return $res; } else { $res = 1; return $res; } } /** * 用户余额变化 * @param $user_id * @param $change_money * @param $type 1后台充值 2在线充值 3抽赏消费 4背包兑换 5推荐奖励,6签到赠送 * @param $content * @param int $share_uid * @param string $other * @return int */ public static function changeMoney($user_id, $change_money, $type, $content = '', $share_uid = 0, $other = '') { if ($change_money == 0) { return 1; } #用户信息 $user_info = self::field('money')->find($user_id); $money = $user_info['money']; $money = bcadd("$money", "$change_money", 2); $arr = []; $arr['user_id'] = $user_id; $arr['change_money'] = $change_money; $arr['money'] = $money; $arr['type'] = $type; $arr['content'] = $content; $arr['addtime'] = time(); $arr['share_uid'] = $share_uid; $arr['other'] = $other; $res[] = ProfitMoney::insert($arr); $res[] = $user_info->save(['money' => $money]); return $res; } public static function changeDraw($user_id, $change_money, $type, $content = '', $share_uid = 0, $other = '') { if ($change_money == 0) { return 1; } #用户信息 $user_info = self::field('draw_num')->find($user_id); $money = $user_info['draw_num']; $money = bcadd("$money", "$change_money", 2); $arr = []; $arr['user_id'] = $user_id; $arr['change_money'] = $change_money; $arr['money'] = $money; $arr['type'] = $type; $arr['content'] = $content; $arr['addtime'] = time(); $arr['share_uid'] = $share_uid; $arr['other'] = $other; $res[] = ProfitDraw::insert($arr); $res[] = $user_info->save(['draw_num' => $money]); return $res; } /* 扣除抽奖券 */ public function getCommissionMoneyAttr($value, $data) { $money = ProfitMoney::field('change_money') ->where('user_id', '=', $data['pid']) ->where('type', '=', 5) ->where('share_uid', '=', $data['id']) ->where('change_money', '>', 0) ->sum('change_money'); return $money; } }