Files
heping-api/app/controller/Donation.php
2022-09-19 14:08:18 +08:00

178 lines
6.6 KiB
PHP

<?php
namespace app\controller;
use think\facade\Db;
class Donation
{
public function lists(){
if(empty($GLOBALS['data']['data']['student_id'])){
return show("请正确上传用户信息!", ERROR_CODE,[]);
}
$student_id = $GLOBALS['data']['data']['student_id'];
$lastIndex = lastIndex();
if($lastIndex == 0){
$where = "id > 0";
}else{
$where = "id < ".$lastIndex;
}
$result = [];
//查询用户信息
$result['userinfo'] = [];
if($lastIndex==0) {
$userinfo = Db::name("student")->where("id", $student_id)->field("id,nickname,identifier,avatar,age,type,disabled as is_disabled,city,school,hot,hot_count")->find();
if (!empty($userinfo)) {
$result['userinfo'] = $userinfo;
}
}
$result['donation_list'] = [];
$list = Db::name("order")->where(['student_id' => $student_id,"status"=>1])->where($where)->order("id desc")->select()->toArray();
$users = getAllUsersMessage($list,"user_id","id,nickname,avatar,shiyou_id");
foreach($list as $vo){
$result['lastIndex'] = $vo['id'];
$result['donation_list'][] = [
"nickname"=>$users[$vo["user_id"]]['nickname'],
"identity"=>empty($users[$vo["user_id"]]['shiyou_id'])?1:0,
"avatar"=>empty($users[$vo['user_id']]['avatar'])?'':$users[$vo['user_id']]['avatar'],
"amount"=>$vo['amount'],
];
}
if(count($list)<env("PAGE_COUNT")){
$result["lastIndex"] = 0;
}
return show("获取成功",SUCCESS_CODE,$result);
}
public function detail(){
$userid = $GLOBALS['data']['userid'];
if(empty($userid)){
return show("请登录后再查看!",NEED_LOGIN);
}
if(empty($GLOBALS['data']['data']['certificate_id'])){
return show("请正确上传用户信息!", ERROR_CODE,[]);
}
$certificate_id =$GLOBALS['data']['data']['certificate_id'];
$info = Db::name("order")->where("id",$certificate_id)->find();
if(empty($info) || $info['user_id']!=$userid || $info['status']!=1){
return show("找不到对应证书信息!", ERROR_CODE,[]);
}
$user_info = Db::name("app_users")->where("id",$info['user_id'])->find();
if(empty($user_info)){
return show("用户信息不存在!", ERROR_CODE,[]);
}
$student_info = Db::name("student")->where("id",$info['student_id'])->find();
if(empty($student_info)){
return show("找不到学生信息!", ERROR_CODE,[]);
}
$result = [
"student_name" => $student_info['nickname'],
"app_user"=>$user_info['nickname'],
"time"=>explode(" ",$info['create_time'])[0],
"address"=> empty($info['app_address_id'])?0:1
];
return show(SUCCESS_MESSAGE,SUCCESS_CODE,$result);
}
public function setAddress(){
$userid = $GLOBALS['data']['userid'];
if(empty($userid)){
return show("请登录后再查看!",NEED_LOGIN);
}
if(empty($GLOBALS['data']['data']['certificate_id'])){
return show("请正确上传用户信息!", ERROR_CODE,[]);
}
$certificate_id =$GLOBALS['data']['data']['certificate_id'];
if(empty($GLOBALS['data']['data']['address_id'])){
return show("请上传地址ID!", ERROR_CODE,[]);
}
$address_id =$GLOBALS['data']['data']['address_id'];
$address_info = Db::name("app_address")->where("id",$address_id)->find();
if(empty($address_info ) || $address_info["userid"]!=$userid){
return show("找不到地址信息!", ERROR_CODE,[]);
}
$info = Db::name("order")->where("id",$certificate_id)->find();
if(empty($info) || $info['user_id']!=$userid || $info['status']!=1){
return show("找不到对应证书信息!", ERROR_CODE,[]);
}
Db::name("order")->where("id",$certificate_id)->update(
["app_address_id"=>$address_info['id']]
);
return show("设置成功!!", SUCCESS_CODE,[]);
}
public function certificate()
{
$userid = $GLOBALS['data']['userid'];
if(empty($userid)){
return show("请登录后再查看!",NEED_LOGIN);
}
$lastIndex = lastindex();
$result = [];
if($lastIndex == 0){
$where = " id > 0";
}else{
$where = " id < ".$lastIndex;
}
$result['lastIndex'] = 0;
$result['total'] = 0;
$result['list'] = [];
$list = Db::name("order")->where(['user_id'=>$userid,'status'=>1])->where($where)->order("id desc")->limit(env("page_count"))->select()->toArray();
if(!empty($list)){
$result['total'] = Db::name("order")->where(['user_id'=>$userid,'status'=>1])->where($where)->count();
$appUser = getAllUsersMessage($list,"user_id","id,nickname");
$studentUser = $this->getStudents($list);
foreach ($list as $key => $vo) {
$result['lastIndex'] = $vo['id'];
$result["list"][] = [
"id"=>$vo['id'],
"date"=> explode(" ",$vo['create_time'])[0],
"student_nickname"=>$studentUser[$vo['student_id']]['nickname'],
"donation_nickname"=>$appUser[$vo['user_id']]['nickname'],
"avatar"=>$studentUser[$vo['student_id']]['avatar'],
"type"=>$studentUser[$vo['student_id']]['type'],
"is_disabled"=>$studentUser[$vo['student_id']]['is_disabled'],
"age"=>$studentUser[$vo['student_id']]['age'],
];
}
if (count($list) < env("PAGE_COUNT")) {
$result["lastIndex"] = 0;
}
}
return show(SUCCESS_MESSAGE,SUCCESS_CODE,$result);
}
private function getStudents($list){
$StudentIds = [];
foreach ($list as $vo) {
$StudentIds[] = $vo["student_id"];
}
if (empty($StudentIds)) {
return [];
}
$StudentIds = array_unique($StudentIds);
$getAllStudentsMessage = [];
$UserLists = Db::name("student")->where("id", "IN",$StudentIds)->field("id,nickname,age,avatar,type,disabled as is_disabled")->select()->toArray();
foreach ($UserLists as $vo) {
$getAllStudentsMessage[$vo['id']] = $vo;
}
return $getAllStudentsMessage;
}
}