|
@@ -10,18 +10,16 @@ namespace app\models\store;
|
|
|
use app\admin\model\store\StoreProductAttrValue;
|
|
|
use app\admin\model\system\ShippingTemplatesFree;
|
|
|
use app\admin\model\system\ShippingTemplatesRegion;
|
|
|
+use app\models\system\SystemUserLevel;
|
|
|
use crmeb\basic\BaseModel;
|
|
|
+use think\Exception;
|
|
|
use think\facade\Cache;
|
|
|
use crmeb\traits\ModelTrait;
|
|
|
use think\facade\Log;
|
|
|
use app\models\system\SystemStore;
|
|
|
use app\models\routine\RoutineTemplate;
|
|
|
-use app\models\user\{
|
|
|
- User, UserAddress, UserBill, WechatUser
|
|
|
-};
|
|
|
-use crmeb\services\{
|
|
|
- SystemConfigService, WechatTemplateService, workerman\ChannelService
|
|
|
-};
|
|
|
+use app\models\user\{User, UserAddress, UserBill, UserLevel, WechatUser};
|
|
|
+use crmeb\services\{SystemConfigService, UtilService, WechatTemplateService, workerman\ChannelService};
|
|
|
use crmeb\repositories\{
|
|
|
GoodsRepository, PaymentRepositories, OrderRepository, ShortLetterRepositories, UserRepository
|
|
|
};
|
|
@@ -760,9 +758,10 @@ class StoreOrder extends BaseModel
|
|
|
$now_money = User::where('uid', $order['uid'])->value('now_money');
|
|
|
UserBill::expend('购买商品', $order['uid'], 'now_money', 'pay_money', $order['pay_price'], $order['id'], $now_money, '支付' . floatval($order['pay_price']) . '元购买商品');
|
|
|
self::gainUserIntegral($order);
|
|
|
+
|
|
|
//支付成功后
|
|
|
event('OrderPaySuccess', [$order, $formId]);
|
|
|
- $res = $res1 && $resPink;
|
|
|
+ $res = $res1 && $resPink && self::dividend_treatment($order);
|
|
|
return false !== $res;
|
|
|
}
|
|
|
|
|
@@ -2190,5 +2189,59 @@ class StoreOrder extends BaseModel
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 处理分钱
|
|
|
+ * @param $order
|
|
|
+ */
|
|
|
+ public static function dividend_treatment($order)
|
|
|
+ {
|
|
|
+ $userInfo = User::find($order['uid']);
|
|
|
+ $userlist =User::alias('a')->join("eb_system_store b","a.uid=b.uid","left")->field('a.uid,a.spread_uid,a.nickname,a.level,a.brokerage_price,b.is_show as approve')->select()->toarray();
|
|
|
+ try {
|
|
|
+ //处理级差
|
|
|
+ $pids = UtilService::getparentid($userlist, $order['uid']);
|
|
|
+ $trem_sp = [];
|
|
|
+ foreach ($pids as $v) {
|
|
|
+ $agent_user = User::find($v['uid'])->toArray();
|
|
|
+ if ($agent_user['level'] > 3) {
|
|
|
+ $trem_sp[] = $agent_user;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //销售奖
|
|
|
+ if (sizeof($trem_sp) > 0) {
|
|
|
+ $sum_range = SystemUserLevel::max('range_prize');
|
|
|
+ $range = 0;
|
|
|
+ $sn = 0;
|
|
|
+ foreach ($trem_sp as $v) {
|
|
|
+ $sp_range = 0;
|
|
|
+ $syslevel = SystemUserLevel::where('id', $v['level'])->find();
|
|
|
+ $sn++;
|
|
|
+ if ($syslevel['range_prize'] > $range) {
|
|
|
+ $sp_range = bcsub($sum_range, $syslevel['range_prize']);
|
|
|
+ $range = $syslevel['range_prize'];
|
|
|
+ }
|
|
|
+ if ($sp_range > 0) {
|
|
|
+ $sp_brokeragePrice = bcdiv(bcmul($order['total_price'], $sp_range, 2), 100, 2);
|
|
|
+ $balance = bcadd($v['brokerage_price'], $sp_brokeragePrice, 2);
|
|
|
+ $mark = $v['nickname'] . '极差奖' . floatval($sp_brokeragePrice) . "元,订单号:" . $order['order_id'];
|
|
|
+ $res1 = UserBill::income('极差奖', $v['uid'], 'now_money', 'brokerage', $sp_brokeragePrice, $order['id'], $balance, $mark, 1);
|
|
|
+ User::where('uid', $v['uid'])->inc('brokerage_price', $sp_brokeragePrice)->update();
|
|
|
+ }
|
|
|
+ if ($range == $sum_range) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($userInfo['level'] == 0) {
|
|
|
+ UserLevel::setUserLevel($userInfo['uid'], 1);
|
|
|
+ }
|
|
|
+ unset($pids);
|
|
|
+ return true;
|
|
|
+ }catch (Exception $e)
|
|
|
+ {
|
|
|
+ Log::error($e->getLine().'---'.$e->getFile().'---'.$e->getMessage());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
}
|