|
|
@@ -9,6 +9,7 @@ namespace app\models\store;
|
|
|
|
|
|
use app\admin\model\system\ShippingTemplatesFree;
|
|
|
use app\admin\model\system\ShippingTemplatesRegion;
|
|
|
+use app\admin\model\user\Achievement;
|
|
|
use app\admin\model\user\UserProduct;
|
|
|
use crmeb\basic\BaseModel;
|
|
|
use think\db\exception\DataNotFoundException;
|
|
|
@@ -2209,4 +2210,79 @@ class StoreOrder extends BaseModel
|
|
|
return compact('list', 'count');
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分红
|
|
|
+ * @return bool
|
|
|
+ * @throws DataNotFoundException
|
|
|
+ * @throws DbException
|
|
|
+ * @throws ModelNotFoundException
|
|
|
+ */
|
|
|
+ public static function bonus()
|
|
|
+ {
|
|
|
+ $user_address = User::where('provinces', 1)->column('address');
|
|
|
+ $time = strtotime('-1 month');
|
|
|
+ $date1 = mktime(0,0,0,date('m',$time),01,date('Y',$time));
|
|
|
+ $date2 = mktime(23,59,59,date('m',$time),date('t',$time),date('Y',$time));
|
|
|
+ if (count($user_address) > 0){
|
|
|
+ $eve = [];
|
|
|
+ foreach ($user_address as $item){
|
|
|
+ $order = StoreOrder::where('user_address', 'like', '%'.$item.'%')->whereBetweenTime('add_time', $date1, $date2)->where('paid', 1)->count();
|
|
|
+ if ($order > 0){
|
|
|
+ $eve[] = [
|
|
|
+ 'province' => $item,
|
|
|
+ 'number' => User::where('provinces', 1)->where('address', 'like', '%'.$item.'%')->count(),
|
|
|
+ 'price' => $order * sys_config('bonus'),
|
|
|
+ ];
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($eve){
|
|
|
+ foreach ($eve as $item){
|
|
|
+ $users = User::where('provinces', 1)->where('address', 'like', '%'.$item['province'].'%')->select()->toArray();
|
|
|
+ foreach ($users as $v)
|
|
|
+ {
|
|
|
+ $jl = round(($item['price']/2)/$item['number'], 2);
|
|
|
+ User::where('uid', $v['uid'])->inc('brokerage_price', $jl)->update();
|
|
|
+ UserBill::income('业绩分红',$v['uid'], 'now_money', 'bonus', $jl, 0, $v['brokerage_price']+$jl, $item['province'].'业绩分红');
|
|
|
+ }
|
|
|
+ Achievement::create($item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 团队
|
|
|
+ * @return bool
|
|
|
+ * @throws DataNotFoundException
|
|
|
+ * @throws DbException
|
|
|
+ * @throws ModelNotFoundException
|
|
|
+ */
|
|
|
+ public static function team()
|
|
|
+ {
|
|
|
+ $user= User::select();
|
|
|
+ $time = strtotime('-1 month');
|
|
|
+ $date1 = mktime(0,0,0,date('m',$time),01,date('Y',$time));
|
|
|
+ $date2 = mktime(23,59,59,date('m',$time),date('t',$time),date('Y',$time));
|
|
|
+ foreach ($user as $item)
|
|
|
+ {
|
|
|
+ $order = StoreOrder::where('uid', $item['uid'])->where('paid', 1)->count();
|
|
|
+ if ($order > 1){
|
|
|
+ $uid = getParent($item['spread_uid'], $user->toArray());
|
|
|
+ if ($uid){
|
|
|
+ $details = User::where('uid', $uid[0])->find();
|
|
|
+ $jl = $order * sys_config('team');
|
|
|
+ User::where('uid', $details['uid'])->inc('brokerage_price', $jl)->update();
|
|
|
+ UserBill::income('业绩分红',$details['uid'], 'now_money', 'team', $jl, 0, $details['brokerage_price']+$jl, '团队奖励');
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|