|
|
@@ -21,6 +21,7 @@ use think\facade\Log;
|
|
|
use app\common\logic\BaseLogic;
|
|
|
use app\common\service\wechat\WeChatMnpService;
|
|
|
use app\common\model\group_activity\GroupActivity;
|
|
|
+use app\common\model\group_activity\GroupSettlement;
|
|
|
use app\common\model\group_activity\GroupActivityCategory;
|
|
|
|
|
|
/**
|
|
|
@@ -314,4 +315,57 @@ class GroupActivityCategoryLogic extends BaseLogic
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 活动分类统计
|
|
|
+ */
|
|
|
+ public static function total($id)
|
|
|
+ {
|
|
|
+ $lists = GroupActivity::alias('a')
|
|
|
+ ->leftJoin('group_user_order b', 'a.id = b.group_activity_id')
|
|
|
+ ->leftJoin('group_service_work c', 'b.id = c.group_user_order_id and c.service_status = 3')
|
|
|
+ ->field('a.*, SUM(CASE WHEN c.id IS NOT NULL THEN 1 ELSE 0 END) as order_total')
|
|
|
+ ->where('a.group_category_id', $id)
|
|
|
+ ->group('a.id')
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+
|
|
|
+ $settlemented_total = 0;
|
|
|
+ $settlemented_engineer_commission = 0;
|
|
|
+ $settlement_lists = GroupSettlement::alias("a")
|
|
|
+ ->leftJoin("property_head b","a.property_head_id=b.id")
|
|
|
+ ->where('a.group_category_id', $id)
|
|
|
+ ->field("a.*,b.head_name as property_head_name")
|
|
|
+ ->order("a.id","desc")
|
|
|
+ ->select()->toArray();
|
|
|
+ foreach ($settlement_lists as &$item) {
|
|
|
+ if ($item['settlement_type'] == 1) {
|
|
|
+ $settlemented_total = bcadd($settlemented_total, $item['settlement_amount'], 2);
|
|
|
+ } else {
|
|
|
+ $settlemented_engineer_commission = bcadd($settlemented_engineer_commission, $item['settlement_amount'], 2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return [
|
|
|
+ 'lists' => $lists,
|
|
|
+ 'settlement_lists' => $settlement_lists,
|
|
|
+ 'settlemented_total' => $settlemented_total, //代理人已结算总额
|
|
|
+ 'settlemented_engineer_commission' => $settlemented_engineer_commission, //工程师结算总额
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 活动分类结算
|
|
|
+ */
|
|
|
+ public static function settle($params)
|
|
|
+ {
|
|
|
+ $res = GroupSettlement::create([
|
|
|
+ "group_category_id" => $params['id'],
|
|
|
+ "property_head_id" => $params['settlement_type'] == 1 ? GroupActivityCategory::where('id', $params['id'])->value('property_head_id') : 0,
|
|
|
+ "remark" => $params['remark'],
|
|
|
+ "settlement_amount" => $params['settlement_amount'],
|
|
|
+ 'settlement_type' => $params['settlement_type'],
|
|
|
+ 'create_time' => time(),
|
|
|
+ ]);
|
|
|
+ return $res ? true : false;
|
|
|
+ }
|
|
|
}
|