提交其他文件
This commit is contained in:
931
app/teamapi/logic/UserLogic.php
Normal file
931
app/teamapi/logic/UserLogic.php
Normal file
@ -0,0 +1,931 @@
|
||||
<?php
|
||||
|
||||
namespace app\teamapi\logic;
|
||||
|
||||
use app\common\enum\notice\NoticeEnum;
|
||||
use app\common\logic\BaseLogic;
|
||||
use app\common\model\teamaster\Teamaster;
|
||||
use app\common\model\teamaster\TeamasterAccountLog;
|
||||
use app\common\model\teamaster\TeamasterUser;
|
||||
use app\common\model\teamaster\TeamasterAddress;
|
||||
use app\common\model\teastore\TeaStoreCity;
|
||||
use app\common\model\teamaster\TeamasterCert;
|
||||
use app\common\model\teamaster\TeamasterUserBank;
|
||||
use app\common\model\user\User;
|
||||
use app\common\service\FileService;
|
||||
use app\common\model\teamaster\TeamasterUserReflect;
|
||||
use app\common\service\sms\SmsDriver;
|
||||
|
||||
use think\facade\Config;
|
||||
use think\facade\Db;
|
||||
|
||||
class UserLogic extends BaseLogic
|
||||
{
|
||||
public static function info(int $userId)
|
||||
{
|
||||
$user = TeamasterUser::where(['id' => $userId])
|
||||
->field('id,sn,sex,account,password,cert_id,nickname,server_type,real_name,avatar,mobile,create_time,user_money,no_reflect_amount,work_day,work_start,work_end,address_id,is_mileage')
|
||||
->findOrEmpty();
|
||||
$user['work_time'] = $user->work_start.'~'.$user->work_end;
|
||||
|
||||
$result = array_map(function($n) {
|
||||
$week = ['一', '二', '三', '四', '五', '六', '日'];
|
||||
return '周' . $week[$n-1];
|
||||
}, explode(',', $user->work_day));
|
||||
$user['address'] = '';
|
||||
if($user['address_id'] !== 0){
|
||||
$team_address = TeamasterAddress::where([
|
||||
'id'=>$user->address_id,
|
||||
'del'=>0
|
||||
])->find();
|
||||
|
||||
if($team_address){
|
||||
$user['address'] = $team_address['address'];
|
||||
}else{
|
||||
$user['address'] = '';
|
||||
}
|
||||
}
|
||||
|
||||
$user['work_day'] = $user->work_day;
|
||||
$user['work'] = implode(',',$result);
|
||||
$user['avatar'] = FileService::getImgUrl($user['avatar']);
|
||||
return $user->toArray();
|
||||
}
|
||||
|
||||
public static function editAvatar($post,$user_id){
|
||||
TeamasterUser::where('id',$user_id)->update([
|
||||
'avatar'=>$post['avatar']
|
||||
]);
|
||||
return [];
|
||||
}
|
||||
|
||||
public static function editNickname($post,$user_id){
|
||||
TeamasterUser::where('id',$user_id)->update([
|
||||
'nickname'=>$post['nickname']
|
||||
]);
|
||||
return [];
|
||||
}
|
||||
|
||||
public static function getTeaStoreCity(){
|
||||
$lists = TeaStoreCity::where("status",1)
|
||||
->where("del",0)
|
||||
->select();
|
||||
$data = [
|
||||
'list' => $lists
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
public static function editServer($post,$user_id){
|
||||
TeamasterUser::where('id',$user_id)->update([
|
||||
'is_mileage'=>$post['is_mileage']
|
||||
]);
|
||||
return [];
|
||||
}
|
||||
|
||||
public static function editWork($post,$user_id){
|
||||
TeamasterUser::where('id',$user_id)->update([
|
||||
'work_day'=>$post['work_day'],
|
||||
'work_start'=>$post['work_start'],
|
||||
'work_end'=>$post['work_end'],
|
||||
]);
|
||||
return [];
|
||||
|
||||
}
|
||||
|
||||
public static function addressList($user_id){
|
||||
$address_list = TeamasterAddress::where([
|
||||
'team_user_id'=>$user_id,
|
||||
'del'=>0
|
||||
])->select()->toArray();
|
||||
return $address_list;
|
||||
|
||||
}
|
||||
|
||||
public static function addressDetails($post, $user_id){
|
||||
try {
|
||||
|
||||
$list = TeamasterAddress::where('id',$post['id'])->find();
|
||||
if(!$list){
|
||||
throw new \Exception('信息不存在');
|
||||
}
|
||||
$city_name =TeaStoreCity::where('id',$list['city_id'])->find();
|
||||
$list['city_name'] = $city_name['name'];
|
||||
return $list->toarray();
|
||||
|
||||
} catch (\Exception $e) {
|
||||
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static function addAddress($post, $user_id){
|
||||
try {
|
||||
$addressCount = TeamasterAddress::where([
|
||||
'team_user_id' => $user_id,
|
||||
'del' => 0
|
||||
])->count();
|
||||
|
||||
if($addressCount >= 5){
|
||||
throw new \Exception('地址簿最多添加5条');
|
||||
}
|
||||
|
||||
$data = [
|
||||
'team_user_id' => $user_id,
|
||||
'city_id' => $post['city_id'],
|
||||
'longitude' => $post['longitude'],
|
||||
'latitude' => $post['latitude'],
|
||||
'address' => $post['address'],
|
||||
'dtime' => time()
|
||||
];
|
||||
|
||||
// 如果是第一条地址,设为默认
|
||||
if($addressCount == 0){
|
||||
$data['status'] = 1;
|
||||
}
|
||||
|
||||
$addressInsert = TeamasterAddress::create($data);
|
||||
$addressId = $addressInsert->id;
|
||||
|
||||
// 如果是第一条地址,更新用户默认地址
|
||||
if($addressCount == 0){
|
||||
TeamasterUser::where('id', $user_id)->update([
|
||||
'address_id' => $addressId
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
return [];
|
||||
|
||||
} catch (\Exception $e) {
|
||||
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static function editAddress($post,$user_id){
|
||||
|
||||
try {
|
||||
$address = TeamasterAddress::where(['id'=>$post['id'],'del'=>0])->find();
|
||||
if(!$address){
|
||||
throw new \Exception('地址蒲不存在');
|
||||
}
|
||||
|
||||
$post['uptime']=time();
|
||||
$address->allowField(['city_id', 'longitude', 'latitude','address','uptime'])
|
||||
->save($post);
|
||||
return [];
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static function selAddress($post,$user_id){
|
||||
|
||||
try {
|
||||
TeamasterAddress::where('team_user_id',$user_id)->update([
|
||||
'status'=>0,
|
||||
'uptime' => time()
|
||||
]);
|
||||
TeamasterAddress::where('id',$post['id'])->update(['status'=>1]);
|
||||
|
||||
TeamasterUser::where('id',$user_id)->update([
|
||||
'address_id'=>$post['id']
|
||||
]);
|
||||
return [];
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static function delAddress($post,$user_id){
|
||||
$user = TeamasterAddress::where([
|
||||
'team_user_id'=>$user_id,
|
||||
'del'=>0
|
||||
])->count();
|
||||
if($user ==1){
|
||||
TeamasterUser::where([
|
||||
'id'=>$user_id
|
||||
])->update(['address_id',0]);
|
||||
}
|
||||
TeamasterAddress::where('id',$post['id'])->update([
|
||||
'del'=>1,
|
||||
'uptime'=>time()
|
||||
]);
|
||||
return [];
|
||||
}
|
||||
|
||||
|
||||
public static function Introduction($user_id){
|
||||
$user = TeamasterUser::where('id',$user_id)->find();
|
||||
$result = Teamaster::where('team_user_id',$user_id)->find();
|
||||
$img_arr = explode(",",$result['image']);
|
||||
foreach($img_arr as $key=>$value){
|
||||
// if (isset($value) && strpos($value, 'uploads') !== false) {
|
||||
// // 包含 "uploads"
|
||||
// $img_arr[$key]= !empty($value) ? FileService::getFileUrl($value) : '';
|
||||
// } else {
|
||||
// // 不包含 "uploads"
|
||||
// $img_arr[$key]= !empty($value) ? FileService::getFileUrl("uploads".$value) : '';
|
||||
// }
|
||||
$img_arr[$key] = FileService::getImgUrl($value);
|
||||
}
|
||||
$result['image_arr'] = $img_arr;
|
||||
$result['level'] =$user['level'];
|
||||
$result['price'] = $user['price'];
|
||||
$result['mileage_price'] = $user['mileage_price'];
|
||||
$result['star'] =$user['star'];
|
||||
$result['age'] = self::calculateAge($result['both']);
|
||||
$result['age_range'] = substr($result['both'], 2, 1).'0';
|
||||
return $result->toarray();
|
||||
}
|
||||
|
||||
|
||||
public static function editIntrod($post,$user_id){
|
||||
|
||||
try {
|
||||
$teamaster = Teamaster::where(['team_user_id'=>$user_id])->find();
|
||||
if(!$teamaster){
|
||||
throw new \Exception('信息不存在');
|
||||
}
|
||||
$post['uptime']=time();
|
||||
$teamaster->allowField(['name', 'sex', 'both','weight','height','hobby_introduce','image','uptime'])
|
||||
->save($post);
|
||||
return [];
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static function certDetails($post,$user_id){
|
||||
try {
|
||||
$lists = TeamasterCert::where('id',$post['cert_id'])->find();
|
||||
if(!$lists){
|
||||
throw new \Exception('未找到资质信息');
|
||||
}
|
||||
$lists['license_img'] = FileService::getFileUrl($lists['license_img']);
|
||||
$lists['cert_img'] = FileService::getFileUrl($lists['cert_img']);
|
||||
$lists['fitness_img'] = FileService::getFileUrl($lists['fitness_img']);
|
||||
return $lists->toarray();
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static function addCert($post,$user_id){
|
||||
try {
|
||||
$list =TeamasterCert::where(['team_user_id'=>$user_id])->find();
|
||||
if($list){
|
||||
throw new \Exception('已经添加资质');
|
||||
}
|
||||
$data = [
|
||||
'license_img'=>$post['license_img'],
|
||||
'cert_img'=>$post['cert_img'],
|
||||
'fitness_img'=>$post['fitness_img'],
|
||||
'status'=>0,
|
||||
'team_user_id'=>$user_id,
|
||||
'dtime'=>time()
|
||||
];
|
||||
|
||||
$cert = TeamasterCert::create($data);
|
||||
$cert_id = $cert->id;
|
||||
|
||||
TeamasterUser::where('id',$user_id)->update([
|
||||
'cert_id'=>$cert_id
|
||||
]);
|
||||
|
||||
return [];
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static function editCert($post,$user_id){
|
||||
try {
|
||||
$list =TeamasterCert::where(['id'=>$post['id'],'del'=>0])->find();
|
||||
if(!$list){
|
||||
throw new \Exception('资质信息不存在');
|
||||
}
|
||||
$post['uptime']=time();
|
||||
$list->allowField(['license_img', 'cert_img', 'fitness_img','uptime'])
|
||||
->save($post);
|
||||
return [];
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static function addBank($params,$user_id){
|
||||
Db::startTrans();
|
||||
try {
|
||||
// 校验验证码
|
||||
$smsDriver = new SmsDriver();
|
||||
// if (!$smsDriver->verify($params['mobile'], $params['code'], NoticeEnum::FIND_MOBILE_CAPTCHA)) {
|
||||
// throw new \Exception('验证码错误');
|
||||
// }
|
||||
// 新增
|
||||
TeamasterUserBank::create([
|
||||
"team_user_id"=>$user_id,
|
||||
"name"=>$params['name'],
|
||||
"bank_name"=>$params['bank_name'],
|
||||
"bank_card"=>$params['bank_card'],
|
||||
"bank_open_name"=>$params['bank_open_name'],
|
||||
"mobile"=>$params['mobile'],
|
||||
"dtime"=>time()
|
||||
]);
|
||||
Db::commit();
|
||||
return [];
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static function checkBank($user_id){
|
||||
$lists = TeamasterUserBank::where("team_user_id",$user_id)
|
||||
->where("del",0)
|
||||
->where("status",1)
|
||||
->order("id","desc")
|
||||
->select()
|
||||
->toarray();
|
||||
foreach($lists as $key=>$value){
|
||||
$lists[$key]['bank_card'] = substr($value['bank_card'], -4);
|
||||
}
|
||||
$data = [
|
||||
'list' => $lists
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
public static function delBank($params){
|
||||
Db::startTrans();
|
||||
try {
|
||||
$result = TeamasterUserBank::where("id",$params['id'])->find();
|
||||
if (!$result) {
|
||||
throw new \Exception('暂无数据');
|
||||
}
|
||||
// 删除
|
||||
$r = TeamasterUserBank::where("id",$params['id'])->update(['del'=>1]);
|
||||
Db::commit();
|
||||
if($r){
|
||||
return [];
|
||||
}
|
||||
throw new \Exception('数据错误');
|
||||
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static function checkAccountList($data,$user_id){
|
||||
Db::startTrans();
|
||||
try {
|
||||
$times = date("Y-m");
|
||||
list($year, $month) = explode('-', $times);
|
||||
$startTimestamp = strtotime($year . '-' . $month . '-01 00:00:00');
|
||||
$endTimestamp = strtotime(date('Y-m-t 23:59:59', $startTimestamp));
|
||||
if(isset($data['times'])){
|
||||
if($data['times']!=""&&$data['times']!=null){
|
||||
list($year, $month) = explode('-', $data['times']);
|
||||
// 转换为日期范围
|
||||
$startTimestamp = strtotime($year . '-' . $month . '-01 00:00:00');
|
||||
$endTimestamp = strtotime(date('Y-m-t 23:59:59', $startTimestamp));
|
||||
}
|
||||
}
|
||||
$count = TeamasterAccountLog::where("team_user_id",$user_id)
|
||||
->whereBetween('create_time', [$startTimestamp, $endTimestamp])
|
||||
->count();
|
||||
|
||||
$lists = TeamasterAccountLog::where("team_user_id",$user_id)
|
||||
->whereBetween('create_time', [$startTimestamp, $endTimestamp])
|
||||
->page($data['page'], $data['size'])
|
||||
->order("id","desc")
|
||||
->select()
|
||||
->toarray();
|
||||
foreach ($lists as &$item){
|
||||
$item['mobile'] = '';
|
||||
if($item['change_type'] == 1||$item['change_type'] == 2||$item['change_type'] == 3){
|
||||
$user = User::where('id',$item['user_id'])->find();
|
||||
$item['mobile'] = $user['mobile'];
|
||||
}
|
||||
}
|
||||
|
||||
$data = [
|
||||
'list' => $lists,
|
||||
'page' => $data['page'],
|
||||
'size' => $data['size'],
|
||||
'count' => $count,
|
||||
'more' => is_more($count, $data['page'], $data['size'])
|
||||
];
|
||||
return $data;
|
||||
|
||||
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static function reflectDetails($data){
|
||||
|
||||
$result = TeamasterAccountLog::where("id",$data['id'])->find();
|
||||
$reflect = TeamasterUserReflect::where('order_sn',$result->source_sn)->find();
|
||||
$back = TeamasterUserBank::where('id',$reflect['bank_id'])->find();
|
||||
|
||||
$data = [
|
||||
'dtime'=>date('Y-m-d H:i:s',$reflect['dtime']),
|
||||
'amount'=>$reflect['amount'],
|
||||
'back_name'=>$back['bank_name'],
|
||||
'status'=>$reflect['status'],
|
||||
'bank_card'=>substr($back['bank_card'], -4),
|
||||
'update_dtime'=>$reflect['update_dtime']
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
public static function accounDetails($data){
|
||||
$result = TeamasterAccountLog::where("id",$data['id'])->find();
|
||||
$user = User::where('id',$result['user_id'])->find();
|
||||
$result['user_name'] = $user->nickname;
|
||||
$result['create_time'] = date('Y-m-d H:i:s');
|
||||
if( $result['change_object'] == 1){
|
||||
$result['pay_way_title'] = "余额支付";
|
||||
}
|
||||
if( $result['change_object'] == 2){
|
||||
$result['pay_way_title'] = "微信支付";
|
||||
}
|
||||
return $result->toarray();
|
||||
}
|
||||
|
||||
|
||||
public static function submitReflect($params,$user_id){
|
||||
Db::startTrans();
|
||||
try {
|
||||
// 查询是否余额充足
|
||||
$team_user = TeamasterUser::where("id",$user_id)->where("del",0)->find();
|
||||
if($team_user == null){
|
||||
throw new \Exception('暂无数据');
|
||||
}
|
||||
if($team_user['user_money'] < $params['amount']){
|
||||
throw new \Exception('余额不足');
|
||||
}
|
||||
// 新增提现记录
|
||||
$order_sn = createSn("teamaster_user_reflect","order_sn");
|
||||
TeamasterUserReflect::create([
|
||||
"team_user_id"=>$user_id,
|
||||
"order_sn"=>$order_sn,
|
||||
"bank_id"=>$params['bank_id'],
|
||||
"amount"=>$params['amount'],
|
||||
"dtime"=>time()
|
||||
]);
|
||||
// 计算扣除余额
|
||||
$user_money = round($team_user['user_money']-$params['amount'],2);
|
||||
// 计算总提现金额
|
||||
$reflect_money = round($team_user['total_reflect_amount']+$params['amount'],2);
|
||||
$dt['user_money'] = $user_money;
|
||||
$dt['total_reflect_amount'] = $reflect_money;
|
||||
$rs = TeamasterUser::where("id",$user_id)->update($dt);
|
||||
if(!$rs){
|
||||
throw new \Exception('计算错误');
|
||||
}
|
||||
// 新增流水
|
||||
$data = [
|
||||
'sn' => createSn("store_user_account_log","sn"),
|
||||
'team_user_id' => $team_user->id,
|
||||
'user_id'=>0,
|
||||
'change_type' => 5,
|
||||
'action' => 2,
|
||||
"amount"=>$params['amount'],
|
||||
'before_amount' => $team_user['user_money'],
|
||||
'after_amount' => $user_money,
|
||||
'source_sn' => $order_sn,
|
||||
'remark' => "茶艺师提现"
|
||||
];
|
||||
$r = TeamasterAccountLog::create($data);
|
||||
Db::commit();
|
||||
if($r){
|
||||
return [];
|
||||
}
|
||||
throw new \Exception('提现失败');
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 根据生日计算年龄
|
||||
* @param string|int $birthday 生日(时间戳或日期字符串)
|
||||
* @return int
|
||||
*/
|
||||
public static function calculateAge($birthday)
|
||||
{
|
||||
if (empty($birthday)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 转换为时间戳
|
||||
$birthTimestamp = is_numeric($birthday) ? $birthday : strtotime($birthday);
|
||||
if ($birthTimestamp === false) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 计算年龄
|
||||
$birthYear = date('Y', $birthTimestamp);
|
||||
$birthMonth = date('m', $birthTimestamp);
|
||||
$birthDay = date('d', $birthTimestamp);
|
||||
|
||||
$currentYear = date('Y');
|
||||
$currentMonth = date('m');
|
||||
$currentDay = date('d');
|
||||
|
||||
$age = $currentYear - $birthYear;
|
||||
|
||||
// 如果当前月日小于生日月日,年龄减1
|
||||
if ($currentMonth < $birthMonth ||
|
||||
($currentMonth == $birthMonth && $currentDay < $birthDay)) {
|
||||
$age--;
|
||||
}
|
||||
|
||||
return max(0, $age); // 确保年龄不小于0
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function balanceLogList($post,$user_id){
|
||||
$t = "";
|
||||
if(isset($post['end_time'])){
|
||||
if($post['end_time']!=""&&$post['end_time']!=null){
|
||||
$end_time = strtotime($post['end_time']);
|
||||
$t = "create_time <= '".$end_time."'";
|
||||
}
|
||||
}
|
||||
$count = StoreUserAccountLog::where($t)->where("user_id",$user_id)->count();
|
||||
$lists = StoreUserAccountLog::where($t)
|
||||
->where("user_id",$user_id)
|
||||
->page($post['page'], $post['size'])
|
||||
->order("id","desc")
|
||||
->select()
|
||||
->toarray();
|
||||
foreach($lists as $key=>$value){
|
||||
$lists[$key]['mobile'] = "";
|
||||
$lists[$key]['reflect_status'] = "";
|
||||
if($value['change_type'] != 3){
|
||||
$order = OrderStore::where("order_sn",$value['source_sn'])->find();
|
||||
if($order!=null){
|
||||
$user = User::where("id",$order['user_id'])->find();
|
||||
$lists[$key]['mobile'] = $user['mobile'];
|
||||
}
|
||||
}else{
|
||||
$reflect_status = StoreUserReflect::where("order_sn",$value['source_sn'])->find();
|
||||
if($reflect_status!= null){
|
||||
$lists[$key]['reflect_status'] = $reflect_status['status'];
|
||||
}
|
||||
}
|
||||
}
|
||||
$data = [
|
||||
'list' => $lists,
|
||||
'page' => $post['page'],
|
||||
'size' => $post['size'],
|
||||
'count' => $count,
|
||||
'more' => is_more($count, $post['page'], $post['size'])
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
public static function balanceLogDetails($post){
|
||||
$details = StoreUserAccountLog::where("id",$post['id'])->find();
|
||||
if($details['change_type'] == 3){
|
||||
$order = StoreUserReflect::where("order_sn",$details['source_sn'])->find();
|
||||
if($order!=null){
|
||||
$bank = StoreUserBank::where("id",$order['bank_id'])->find();
|
||||
$order['bank_name'] = $bank['bank_name'];
|
||||
$order['bank_card'] = substr($bank['bank_card'], -4);
|
||||
$order['dtime'] = date("Y-m-d H:i:s",$order['dtime']);
|
||||
$order['update_dtime'] = date("Y-m-d H:i:s",$order['update_dtime']);
|
||||
}else{
|
||||
$order = [];
|
||||
$order['bank_name'] = "";
|
||||
$order['bank_card'] = "";
|
||||
}
|
||||
$details['order'] = $order;
|
||||
}else{
|
||||
$details['store'] = "";
|
||||
$store = TeaStore::where("id",$details['store_id'])->find();
|
||||
if($store!=null){
|
||||
$details['store'] = $store;
|
||||
}
|
||||
$details['room'] = "";
|
||||
$room = TeaStoreRoom::where("id",$details['room_id'])->find();
|
||||
if($room!=null){
|
||||
$details['room'] = $room;
|
||||
}
|
||||
|
||||
$order = OrderStore::where("order_sn",$details['source_sn'])->find();
|
||||
if($order!=null){
|
||||
$user = User::where("id",$order['user_id'])->find();
|
||||
$order['nickname'] = "";
|
||||
$order['mobile'] = "";
|
||||
if($user!=null){
|
||||
$order['nickname'] = $user['nickname'];
|
||||
$order['mobile'] = $user['mobile'];
|
||||
}
|
||||
$order['pay_way_title'] = "";
|
||||
if( $order['pay_way'] == 1){
|
||||
$order['pay_way_title'] = "余额支付";
|
||||
}
|
||||
if( $order['pay_way'] == 2){
|
||||
$order['pay_way_title'] = "微信支付";
|
||||
}
|
||||
if( $order['pay_way'] == 3){
|
||||
$order['pay_way_title'] = "门店余额支付";
|
||||
}
|
||||
if( $order['pay_way'] == 4){
|
||||
$order['pay_way_title'] = "管理员添加";
|
||||
}
|
||||
$order['group'] = [];
|
||||
$user_group = UserGroup::where("id",$order['group_coupon_id'])->find();
|
||||
if($user_group!=null){
|
||||
$order['group'] = TeaStoreGroup::where("id",$user_group['group_id'])->find();
|
||||
$order['group']['yanquan_dtime'] = $user_group['update_dtime'];
|
||||
$order['group']['qr_sn'] = $user_group['qr_sn'];
|
||||
$order['group']['yanquan_status'] = $user_group['status'];
|
||||
|
||||
}
|
||||
}else{
|
||||
$order = [];
|
||||
$order['group'] = [];
|
||||
$order['pay_way_title'] = "";
|
||||
$order['nickname'] = "";
|
||||
$order['mobile'] = "";
|
||||
|
||||
}
|
||||
$details['order'] = $order;
|
||||
}
|
||||
$data = [
|
||||
'details' => $details
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
public static function checkMoney($data){
|
||||
$result = TeaStore::where("id",$data['store_id'])->find();
|
||||
$d['store_msg'] = $result;
|
||||
return $d;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function checkStoreUserList($data){
|
||||
$count = StoreMember::where("store_id",$data['store_id'])->count();
|
||||
$lists = StoreMember::where("store_id",$data['store_id'])
|
||||
->page($data['page'], $data['size'])
|
||||
->order("id","desc")
|
||||
->select()
|
||||
->toarray();
|
||||
foreach($lists as $key=>$value){
|
||||
$lists[$key]['user'] = User::where("id",$value['user_id'])->find();
|
||||
}
|
||||
$data = [
|
||||
'list' => $lists,
|
||||
'page' => $data['page'],
|
||||
'size' => $data['size'],
|
||||
'count' => $count,
|
||||
'more' => is_more($count, $data['page'], $data['size'])
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
|
||||
public static function checkStoreUserDetails($params){
|
||||
// 门店用户基本信息
|
||||
$store_user_member = StoreMember::where("user_id",$params['user_id'])
|
||||
->where("store_id",$params['store_id'])
|
||||
->find();
|
||||
// 用户基本信息
|
||||
$user = User::where("id",$params['user_id'])->find();
|
||||
$user['remark'] = $store_user_member['remark'];
|
||||
$user['store_user_id'] = $store_user_member['id'];
|
||||
$user['create_time'] = date("Y-m-d",strtotime($user['create_time']));
|
||||
$user_member = UserAccountLog::where("id",$params['user_id'])->where("store_id",$params['store_id'])->where("action",2)->find();
|
||||
// 会员到期时间
|
||||
$user['expiration_time'] = "";
|
||||
if($user_member != null){
|
||||
$user['expiration_time'] = $user_member['expiration_time'];
|
||||
}
|
||||
$user_store_money = UserStoreMoney::where("user_id",$params['user_id'])->where("store_id",$params['store_id'])->find();
|
||||
if($user_store_money != null){
|
||||
$user['user_store_money'] = $user_store_money['money'];
|
||||
}
|
||||
// 门店用户总消费
|
||||
$user['order_amount'] = OrderStore::where("store_id",$params['store_id'])->where("user_id",$params['user_id'])->sum("order_amount");
|
||||
$data = [
|
||||
'user' => $user
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
public static function editStoreUserRemark($data){
|
||||
Db::startTrans();
|
||||
try {
|
||||
// 查询是否余额充足
|
||||
$StoreMemberUser = StoreMember::where("id",$data['id'])->where("status",1)->find();
|
||||
if($StoreMemberUser == null){
|
||||
throw new \Exception('暂无用户');
|
||||
}
|
||||
$StoreMemberUser::where("id",$data['id'])->update(['remark'=>$data['remark']]);
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static function checkStoreUserBuyList($data){
|
||||
$count = UserAccountLog::where("store_id",$data['store_id'])
|
||||
->where("user_id",$data['user_id'])
|
||||
->where("action",2)
|
||||
->count();
|
||||
$lists = UserAccountLog::where("store_id",$data['store_id'])
|
||||
->where("user_id",$data['user_id'])
|
||||
->where("action",2)
|
||||
->page($data['page'], $data['size'])
|
||||
->order("id","desc")
|
||||
->select()
|
||||
->toarray();
|
||||
foreach($lists as $key=>$value){
|
||||
$lists[$key]['pay_way_title'] = "";
|
||||
if( $value['change_object'] == 1){
|
||||
$lists[$key]['pay_way_title'] = "余额支付";
|
||||
}
|
||||
if( $value['change_object'] == 2){
|
||||
$lists[$key]['pay_way_title'] = "微信支付";
|
||||
}
|
||||
if( $value['change_object'] == 3){
|
||||
$lists[$key]['pay_way_title'] = "支付宝支付";
|
||||
}
|
||||
|
||||
$lists[$key]['store_name'] = TeaStore::where("id",$value['store_id'])->value("name");
|
||||
}
|
||||
$data = [
|
||||
'list' => $lists,
|
||||
'page' => $data['page'],
|
||||
'size' => $data['size'],
|
||||
'count' => $count,
|
||||
'more' => is_more($count, $data['page'], $data['size'])
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
|
||||
public static function checkStoreAccountList($data,$user_id){
|
||||
$times = date("Y-m");
|
||||
list($year, $month) = explode('-', $times);
|
||||
$startTimestamp = strtotime($year . '-' . $month . '-01 00:00:00');
|
||||
$endTimestamp = strtotime(date('Y-m-t 23:59:59', $startTimestamp));
|
||||
if(isset($data['times'])){
|
||||
if($data['times']!=""&&$data['times']!=null){
|
||||
list($year, $month) = explode('-', $data['times']);
|
||||
// 转换为日期范围
|
||||
$startTimestamp = strtotime($year . '-' . $month . '-01 00:00:00');
|
||||
$endTimestamp = strtotime(date('Y-m-t 23:59:59', $startTimestamp));
|
||||
}
|
||||
}
|
||||
$count = StoreUserAccountLog::where("user_id",$user_id)
|
||||
->where("store_id",$data['store_id'])
|
||||
->whereBetween('create_time', [$startTimestamp, $endTimestamp])
|
||||
->where("action",1)
|
||||
->count();
|
||||
$all_price = StoreUserAccountLog::where("user_id",$user_id)
|
||||
->where("store_id",$data['store_id'])
|
||||
->whereBetween('create_time', [$startTimestamp, $endTimestamp])
|
||||
->where("action",1)
|
||||
->sum("amount");
|
||||
$lists = StoreUserAccountLog::where("user_id",$user_id)
|
||||
->where("store_id",$data['store_id'])
|
||||
->whereBetween('create_time', [$startTimestamp, $endTimestamp])
|
||||
->where("action",1)
|
||||
->page($data['page'], $data['size'])
|
||||
->order("id","desc")
|
||||
->select()
|
||||
->toarray();
|
||||
foreach($lists as $key=>$value){
|
||||
$lists[$key]['store'] = TeaStore::where("id",$value['store_id'])->find();
|
||||
$lists[$key]['room'] = TeaStoreRoom::where("id",$value['room_id'])->find();
|
||||
$lists[$key]['order'] = "";
|
||||
$lists[$key]['group'] = "";
|
||||
if($value['action'] == 1){
|
||||
$order = OrderStore::where("order_sn",$value['source_sn'])->find();
|
||||
$lists[$key]['order'] = $order;
|
||||
if($order!=null){
|
||||
$order_group = UserGroup::where("id",$order['group_coupon_id'])->find();
|
||||
if($order_group!=null){
|
||||
$lists[$key]['group'] = TeaStoreGroup::where("id",$order_group['group_id'])->find();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$data = [
|
||||
'list' => $lists,
|
||||
'page' => $data['page'],
|
||||
'size' => $data['size'],
|
||||
"all_price"=>$all_price,
|
||||
'count' => $count,
|
||||
'more' => is_more($count, $data['page'], $data['size'])
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
|
||||
public static function checkMoth($data,$user_id){
|
||||
// 本月收入
|
||||
$times = date("Y-m");
|
||||
list($year, $month) = explode('-', $times);
|
||||
$startTimestamp = strtotime($year . '-' . $month . '-01 00:00:00');
|
||||
$endTimestamp = strtotime(date('Y-m-t 23:59:59', $startTimestamp));
|
||||
$result['month'] = StoreUserAccountLog::where("store_id",$data['store_id'])
|
||||
->whereBetween('create_time', [$startTimestamp, $endTimestamp])
|
||||
->where("action",1)
|
||||
->sum("amount");
|
||||
// 今日收入
|
||||
$today = date('Y-m-d');
|
||||
$startTime = strtotime($today . ' 00:00:00');
|
||||
$endTime = strtotime($today . ' 23:59:59');
|
||||
$result['today_price'] = StoreUserAccountLog::where("store_id",$data['store_id'])
|
||||
->whereBetween('create_time', [$startTime, $endTime])
|
||||
->where("change_type","in","1,2")
|
||||
->where("action",1)
|
||||
->sum("amount");
|
||||
// 今日验券
|
||||
$result['yan_price'] = StoreUserAccountLog::where("store_id",$data['store_id'])
|
||||
->whereBetween('create_time', [$startTime, $endTime])
|
||||
->where("change_type",4)
|
||||
->where("action",1)
|
||||
->sum("amount");
|
||||
// 昨日收入
|
||||
$yesterday = date('Y-m-d', strtotime('-1 day'));
|
||||
// 计算时间戳范围
|
||||
$startTime = strtotime($yesterday . ' 00:00:00');
|
||||
$endTime = strtotime($yesterday . ' 23:59:59');
|
||||
$result['yesterday_price'] = StoreUserAccountLog::where("store_id",$data['store_id'])
|
||||
->whereBetween('create_time', [$startTime, $endTime])
|
||||
->where("change_type","in","1,2")
|
||||
->where("action",1)
|
||||
->sum("amount");
|
||||
// 昨日验券
|
||||
$result['yesterday_yan_price'] = StoreUserAccountLog::where("store_id",$data['store_id'])
|
||||
->whereBetween('create_time', [$startTime, $endTime])
|
||||
->where("change_type",4)
|
||||
->where("action",1)
|
||||
->sum("amount");
|
||||
$d = [
|
||||
"result"=>$result
|
||||
];
|
||||
return $d;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user