| xqd
@@ -178,4 +178,117 @@ class AlbumBossController extends Controller
|
|
|
|
|
|
return $this->api(compact('agent', 'customer'), 0, 'success');
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @api {post} /api/album_boss/agent_statistical 经销商数据(agent_statistical)
|
|
|
+ * @apiDescription 经销商数据(agent_statistical)
|
|
|
+ * @apiGroup Boss
|
|
|
+ * @apiPermission none
|
|
|
+ * @apiVersion 0.1.0
|
|
|
+ * @apiParam {int} [store_id] 商户id
|
|
|
+ * @apiParam {int} [agent_id] 经销商id
|
|
|
+ * @apiParam {int} [start] 开始时间
|
|
|
+ * @apiParam {int} [end] 结束时间
|
|
|
+ * @apiSuccessExample {json} Success-Response:
|
|
|
+ * HTTP/1.1 200 OK
|
|
|
+ * {
|
|
|
+ * "status": true,
|
|
|
+ * "status_code": 0,
|
|
|
+ * "message": "",
|
|
|
+ * "data": {
|
|
|
+ * "favoriteCount":11,
|
|
|
+ * "downloadCount":11,
|
|
|
+ * "shareCount":11,
|
|
|
+ * "newCustomerCount":11,
|
|
|
+ * "totalCustomerCount":11,
|
|
|
+ * }
|
|
|
+ * }
|
|
|
+ * @apiErrorExample {json} Error-Response:
|
|
|
+ * HTTP/1.1 400 Bad Request
|
|
|
+ * {
|
|
|
+ * "state": false,
|
|
|
+ * "code": 1000,
|
|
|
+ * "message": "传入参数不正确",
|
|
|
+ * "data": null or []
|
|
|
+ * }
|
|
|
+ * 可能出现的错误代码:
|
|
|
+ * 1000 CLIENT_WRONG_PARAMS 传入参数不正确
|
|
|
+ */
|
|
|
+ public function agentStatistical(Request $request)
|
|
|
+ {
|
|
|
+ $userAuth = Auth('api')->user();
|
|
|
+ if (!$userAuth) {
|
|
|
+ return $this->error(ErrorCode::ERROR_POWER, '登陆过期!');
|
|
|
+ }
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
+ 'store_id' => 'required',
|
|
|
+ 'agent_id' => 'required',
|
|
|
+ ], [
|
|
|
+ 'store_id.required' => '缺少商户参数',
|
|
|
+ 'agent_id.required' => '缺少经销商参数',
|
|
|
+ ]);
|
|
|
+
|
|
|
+ if ($userAuth->role != 4) {
|
|
|
+ return $this->error(ErrorCode::NOT_BOSS, '该用户没有Boss权限');
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
|
|
|
+ }
|
|
|
+
|
|
|
+ $data = $request->input();
|
|
|
+ $end = $request->input('end');
|
|
|
+ $start = $request->input('start');
|
|
|
+ if (!$end) {
|
|
|
+ $end = time();
|
|
|
+ }
|
|
|
+ if (!$start) {
|
|
|
+ $start = 0;
|
|
|
+ }
|
|
|
+ $end = date('Y-m-d H:i:s', $end);
|
|
|
+ $start = date('Y-m-d H:i:s', $start);
|
|
|
+ $favoriteCount = AlbumWatchRecord::where([
|
|
|
+ ['agent_id', $data['agent_id']],
|
|
|
+ ['store_id', $data['store_id']],
|
|
|
+ ['action', 1],
|
|
|
+ ['updated_at','>=',$start],
|
|
|
+ ['updated_at','<=',$end]
|
|
|
+ ])->orderByDesc('id')->count();
|
|
|
+
|
|
|
+ $downloadCount = AlbumWatchRecord::where([
|
|
|
+ ['agent_id', $data['agent_id']],
|
|
|
+ ['store_id', $data['store_id']],
|
|
|
+ ['action', 9],
|
|
|
+ ['updated_at','>=',$start],
|
|
|
+ ['updated_at','<=',$end]
|
|
|
+ ])->orderByDesc('id')->count();
|
|
|
+
|
|
|
+ $shareCount = AlbumWatchRecord::where([
|
|
|
+ ['agent_id', $data['agent_id']],
|
|
|
+ ['store_id', $data['store_id']],
|
|
|
+ ['action', 8],
|
|
|
+ ['updated_at','>=',$start],
|
|
|
+ ['updated_at','<=',$end]
|
|
|
+ ])->orderByDesc('id')->count();
|
|
|
+
|
|
|
+ $newCustomerCount = AlbumWatchRecord::where([
|
|
|
+ ['agent_id', $data['agent_id']],
|
|
|
+ ['store_id', $data['store_id']],
|
|
|
+ ['is_new', 1],
|
|
|
+ ['updated_at','>=',$start],
|
|
|
+ ['updated_at','<=',$end]
|
|
|
+ ])->orderByDesc('id')->count();
|
|
|
+
|
|
|
+ $totalCustomerCount = AlbumWatchRecord::where([
|
|
|
+ ['agent_id', $data['agent_id']],
|
|
|
+ ['store_id', $data['store_id']],
|
|
|
+ ['is_new', 1],
|
|
|
+ ['updated_at','>=',$start],
|
|
|
+ ['updated_at','<=',$end]
|
|
|
+ ])->orderByDesc('id')->count();
|
|
|
+
|
|
|
+ return $this->api(compact('shareCount', 'totalCustomerCount', 'newCustomerCount', 'downloadCount', 'favoriteCount'));
|
|
|
+ }
|
|
|
}
|