|
|
@@ -157,7 +157,103 @@ class AwardIntegralPriceRepository extends BaseRepository
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
+// 订单上涨10%就进行一次分红
|
|
|
+ public static function orderIntegralUp($price){ //传入当天价格
|
|
|
+ $order_lst = StoreOrder::where('paid',1)->where('is_del',0)->where('is_system_del',0)->where('status','=',0)->select(); //获取所有有效订单
|
|
|
+ try {
|
|
|
+ foreach ($order_lst as $item){
|
|
|
+ $user = User::where('uid',$item['uid'])->where('status',1)->find();
|
|
|
+ if ($user) {
|
|
|
+// 订单购买当天价格
|
|
|
+ list($startOfDay, $endOfDay) = self::getStartAndEndOfDay($item['pay_time']);
|
|
|
+ $order_price = AwardIntegralPrice::where('add_time','>',$startOfDay)->where('add_time','<',$endOfDay)->value('price'); //购买当时价格
|
|
|
+ $points_up_num = bcadd($item['points_up_num'],1,0); //订单触发次数+1
|
|
|
+ $up_radio = bcmul($points_up_num, 0.1, 2); //触发需要增长的比例
|
|
|
+ $up_num= bcadd(1,$up_radio,2); //比例加+1 1+10%
|
|
|
+ $up_price = bcmul($order_price,$up_num ,8); //购买时积分价格乘以比例得到增长的价格
|
|
|
+ if($price>$up_price){ //如果当天价格超过触发增长价格
|
|
|
+// 订单触发分红,计算该订单的分红额度
|
|
|
+ $range = bcmul($item['pay_price'],0.8,2);
|
|
|
+ $down_range = bcmul($range,0.1,2); //要扣除的10%额度 这分钱要加到奖金里
|
|
|
+ if ($item['product_type'] == 1) {
|
|
|
+// $mark = '节能油';
|
|
|
+// $range_type = 'energy_saving_oil';
|
|
|
+// $integral_type = 'spread_oil_integral';
|
|
|
+ // 发放分红积分
|
|
|
+ $number2 = systemConfig('award_integral_ordinary', 6);
|
|
|
+ } elseif ($item['product_type'] == 0) {
|
|
|
+// $mark = '普通';
|
|
|
+// $range_type = 'ordinary';
|
|
|
+// $integral_type = 'ordinary_integral';
|
|
|
+ $number2 = systemConfig('award_integral_ordinary', 6);
|
|
|
+ } elseif ($item['product_type'] == 2) {
|
|
|
+// $mark = '礼包';
|
|
|
+// $range_type = 'award_gift_pack';
|
|
|
+// $integral_type = 'spread_pack_integral';
|
|
|
+ $number2 = systemConfig('award_integral_gift_pack', 1);
|
|
|
+ }
|
|
|
+ $number2 = bcmul($number2, 0.01, 2);
|
|
|
+ $order_award_range = bcmul($item['pay_price'], $number2, 2);
|
|
|
+ $award_integral = bcdiv($order_award_range, $order_price, 2); //订单除以积分价格得到分红积分
|
|
|
+ $award_integral= bcmul($award_integral,0.1,2); //要扣除的10%积分
|
|
|
+
|
|
|
+ $make = app()->make(UserBillRepository::class);
|
|
|
+ $userRepository = app()->make(UserRepository::class);
|
|
|
+ $make->decBill($item['uid'], 'award_range', 'extract_award', [
|
|
|
+ 'link_id' => $item['order_id'],
|
|
|
+ 'status' => 1,
|
|
|
+ 'title' => '获取分红利润扣除分红额度',
|
|
|
+ 'number' => $down_range,
|
|
|
+ 'mark' => $user['nickname'] . '获取订单分红利润,减少分红额度',
|
|
|
+ 'balance' => bcsub($user['award_range'], $down_range, 2)
|
|
|
+ ]);
|
|
|
+ $userRepository->decField($item['uid'], 'award_range', $down_range);
|
|
|
+
|
|
|
+ $make->decBill($item['uid'], 'award_integral', 'extract_award', [
|
|
|
+ 'link_id' => $item['order_id'],
|
|
|
+ 'status' => 1,
|
|
|
+ 'title' => '获取分红利润扣除分红积分',
|
|
|
+ 'number' => $award_integral,
|
|
|
+ 'mark' => $user['nickname'] . '获取订单分红利润,减少分红积分',
|
|
|
+ 'balance' => bcsub($user['award_integral'], $award_integral, 2)
|
|
|
+ ]);
|
|
|
+ $userRepository->decField($item['uid'], 'award_integral', $award_integral);
|
|
|
+
|
|
|
+ $make->incBill($item['uid'], 'brokerage', 'order_one', [
|
|
|
+ 'link_id' => $item['order_id'],
|
|
|
+ 'status' => 1,
|
|
|
+ 'title' => '获取分红利润',
|
|
|
+ 'number' => $down_range,
|
|
|
+ 'mark' => $user['nickname'] . '获取订单分红利润',
|
|
|
+ 'balance' => 0
|
|
|
+ ]);
|
|
|
+ $userRepository->incBrokerage($item['uid'], $down_range);
|
|
|
+// $userRepository->incField($item['uid'], 'brokerage_price', $all_price);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ @file_put_contents('quanju4.txt', $e->getMessage() . "-计算订单价格增长报错内容\r\n", 8);
|
|
|
+ @file_put_contents('quanju4.txt', $e->getFile() . "-文件\r\n", 8);
|
|
|
+ @file_put_contents('quanju4.txt', $e->getLine() . "-位置\r\n", 8);
|
|
|
+ }
|
|
|
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ public static function getStartAndEndOfDay($dateTimeString) {
|
|
|
+ // 将日期时间字符串转换为日期时间对象
|
|
|
+ $date = new \DateTime($dateTimeString);
|
|
|
+
|
|
|
+ // 设置时间为当天的0点0分0秒
|
|
|
+ $date->setTime(0, 0, 0);
|
|
|
+ $startOfDay = $date->getTimestamp();
|
|
|
+
|
|
|
+ // 设置时间为当天的23点59分59秒
|
|
|
+ $date->setTime(23, 59, 59);
|
|
|
+ $endOfDay = $date->getTimestamp();
|
|
|
+
|
|
|
+ return [$startOfDay, $endOfDay];
|
|
|
+ }
|
|
|
public function setPrice($day, $price, $commission, $achievement, $num, $add_price)
|
|
|
{
|
|
|
$add_time = time();
|