diff --git a/app/api/controller/user/UserController.php b/app/api/controller/user/UserController.php index 1a118bf11..9cacff1f1 100644 --- a/app/api/controller/user/UserController.php +++ b/app/api/controller/user/UserController.php @@ -80,5 +80,46 @@ class UserController extends BaseApiController } + #[ + ApiDoc\Title('会员账户详情'), + ApiDoc\url('/api/user/user/capital_flow'), + ApiDoc\Method('POST'), + ApiDoc\Param(name: "page_no", type: "int", require: true, desc: "默认1页数"), + ApiDoc\Param(name: "page_size", type: "int", require: false, desc: "条数默认15"), + ApiDoc\NotHeaders(), + ApiDoc\Header(name: "token", type: "string", require: true, desc: "token"), + ApiDoc\ResponseSuccess("data", type: "array"), + ] + public function capital_flow() + { + $page_no = (int)$this->request->post('page_no',1); + $page_size = (int)$this->request->post('page_size',15); + $params['page_no'] = $page_no; + $params['page_size'] = $page_size; + if(empty($page_no) || empty($page_size)){ + $params['page_no'] = 1; + $params['page_size'] = 15; + } + $res = UserLogic::capital_list($this->userId,$params); + + $res['page_no'] =$params['page_no']; + $res['page_size'] =$params['page_size']; + return $this->success('ok',$res); + } + + #[ + ApiDoc\Title('会员账户统计'), + ApiDoc\url('/api/user/user/capital_count'), + ApiDoc\Method('POST'), + ApiDoc\Param(), + ApiDoc\NotHeaders(), + ApiDoc\Header(name: "token", type: "string", require: true, desc: "token"), + ApiDoc\ResponseSuccess("data", type: "array"), + ] + public function capital_count() + { + $res = UserLogic::capital_count($this->userId); + return $this->success('ok',$res); + } } diff --git a/app/api/logic/user/UserLogic.php b/app/api/logic/user/UserLogic.php index 1adee2af9..e6e435f6a 100644 --- a/app/api/logic/user/UserLogic.php +++ b/app/api/logic/user/UserLogic.php @@ -4,6 +4,8 @@ namespace app\api\logic\user; use app\common\{logic\BaseLogic, + model\finance\CapitalFlow, + model\store_order\StoreOrder, model\system_store\SystemStore, model\user\User, model\user\UserRecharge, @@ -100,21 +102,49 @@ class UserLogic extends BaseLogic public static function getNextArrayByID($arr, $id) { - // 遍历数组 foreach ($arr as $key => $value) { - // 检查当前数组的id是否与传入的id匹配 if ($value['id'] == $id) { - // 如果当前数组不是最后一个,则返回下一个数组 if ($key + 1 < count($arr)) { return $arr[$key + 1]; } - // 如果当前数组是最后一个,则返回null或空数组 return null; } } - // 如果没有找到匹配的id,则返回null或空数组 return null; } + public static function capital_list($uid,$params) + { + $query = CapitalFlow::where('uid',$uid); + $count = $query->count(); + $data = $query + ->page($params['page_no'], $params['page_size']) + ->select()->toArray(); + foreach ($data as &$value){ + if($value['link_type'] == 'order'){ + $value['order_sn'] = StoreOrder::where('id',$value['link_id']) + ->value('order_id'); + } + } + return [ + 'count'=>$count, + 'data'=>$data, + ]; + } + + public static function capital_count($uid) + { + $query = CapitalFlow::where('uid',$uid); + $recharge = $query->where('link_type','user_recharge') + ->sum('amount')??0; + $query1 = CapitalFlow::where('uid',$uid); + $orderConsumption = $query1->where('link_type','<>','user_recharge') + ->sum('amount')??0; + return [ + 'recharge'=>$recharge, + 'order'=>$orderConsumption, + ]; + } + } \ No newline at end of file