Files
Smart-Farm/app/massage/controller/IndexUser.php
2025-12-22 14:32:54 +08:00

1466 lines
32 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
namespace app\massage\controller;
use app\ApiRest;
use app\card\model\UserPhone;
use app\card\model\UserSk;
use app\massage\model\CarAtvList;
use app\massage\model\CarAtvRecord;
use app\massage\model\CarDriver;
use app\massage\model\CarGame;
use app\massage\model\CarLineUp;
use app\massage\model\CarType;
use app\massage\model\CarUserTrophy;
use app\massage\model\Coach;
use app\massage\model\CoachCollect;
use app\massage\model\Commission;
use app\massage\model\Config;
use app\massage\model\CouponAtv;
use app\massage\model\CouponAtvRecord;
use app\massage\model\CouponAtvRecordCoupon;
use app\massage\model\CouponAtvRecordList;
use app\massage\model\CouponRecord;
use app\massage\model\Address;
use app\massage\model\Order;
use app\massage\model\RefundOrder;
use app\massage\model\SynMember;
use app\massage\model\User;
use app\member\model\Level;
use app\shop\model\DistributionList;
use app\shop\model\Integral;
use think\App;
use think\facade\Db;
use think\Request;
class IndexUser extends ApiRest
{
protected $model;
protected $address_model;
protected $record_model;
protected $coupon_record_model;
public function __construct(App $app) {
parent::__construct($app);
$this->model = new User();
$this->address_model = new Address();
$this->record_model = new CarAtvRecord();
$this->coupon_record_model = new CouponRecord();
//积分到账
point_success($this->_uniacid);
}
/**
* @author chenniang
* @DataTime: 2021-09-16 15:41
* @功能说明:用户报名列表
*/
public function userAtvRecord(){
$atv_model = new CarAtvList();
$atv_model->initAtv();
// $this->record_model->autoCancelRecord($this->getUserId());
$input = $this->_param;
$dis[] = ['a.user_id','=',$this->getUserId()];
//去除没有取消的
// $dis[] = ['a.status','>',-1];
if(!empty($input['status'])){
$dis[] = ['b.atv_status','=',$input['status']];
}
if(!empty($input['start_time'])){
$dis[] = ['b.atv_s_time','between',"{$input['start_time']},{$input['end_time']}"];
}
if(!empty($input['record_status'])){
$dis[] = ['a.pay_type','=',7];
}
$data = $this->record_model->atvRecordList($dis);
if(!empty($data['data'])){
foreach ($data['data'] as &$vs){
$vs['day_text'] = date('Y.m.d',$vs['start_time']).' - '.date('Y.m.d',$vs['end_time']);
}
}
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-09-16 15:46
* @功能说明:报名详情
*/
public function recordInfo(){
$input = $this->_param;
$dis = [
'id' => $input['id']
];
$data['record_info'] = $this->record_model->dataInfo($dis);
$data['record_info']['create_time'] = date('Y-m-d H:i:s',$data['record_info']['create_time']);
$data['record_info']['hx_time'] = date('Y-m-d H:i:s',$data['record_info']['hx_time']);
$atv_model = new CarAtvList();
$data['atv_info'] = $atv_model->dataInfo(['id'=>$data['record_info']['atv_id']]);
$data['game_info']['top'] = $this->record_model->getRecordTop($data['record_info']);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-10-20 09:54
* @功能说明:不支付就调用这个状态
*/
public function payCancelRecord(){
$input = $this->_input;
$dis = [
'id' => $input['id']
];
$record_info = $this->record_model->dataInfo($dis);
$res = $this->record_model->cancelRecord($record_info,2);
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-03-19 15:48
* @功能说明:个人中心
*/
public function index(){
$data = $this->getUserInfo();
$cap_dis[] = ['user_id','=',$this->getUserId()];
$cap_dis[] = ['status','in',[1,2,3,4]];
$driver_model = new CarDriver();
//查看是否是团长
$cap_info = $driver_model->dataInfo($cap_dis);
//-1表示未申请团长1申请中2已通过3取消,4拒绝
$data['driver_status'] = !empty($cap_info)?$cap_info['status']:-1;
$data['sh_text'] = !empty($cap_info)?$cap_info['sh_text']:'';
//优惠券数
$data['coupon_count'] = $this->coupon_record_model->couponCount($this->getUserId());
$data['balance'] = $this->model->where(['id'=>$this->getUserId()])->sum('balance');
$data['integral']= $this->model->where(['id'=>$this->getUserId()])->sum('integral');
$member_level = $this->model->where(['id'=>$this->getUserId()])->value('member_level');
$data['balance'] = round($data['balance'] ,2);
//查看荣誉杯
$user_trophy_model = new CarUserTrophy();
$data['user_trophy'] = $user_trophy_model->userTrophy($this->getUserId());
$level_model = new Level();
$data['member_level_info'] = $level_model->levelInfo(['id'=>$member_level]);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-09-27 10:08
* @功能说明:取消预约
*/
public function cancelAtvRecord(){
$input = $this->_input;
$record = $this->record_model->dataInfo(['id'=>$input['record_id']]);
if(!in_array($record['pay_type'],[1,2])){
$this->errorMsg('状态错误');
}
if($record['end_time']<time()){
$this->errorMsg('活动已经结束');
}
Db::startTrans();
$res = $this->record_model->cancelRecord($record);
if(!empty($res['code'])){
Db::rollback();
$this->errorMsg($res['msg']);
}
//已经支付 需要退款
if($record['pay_type']>1&&$record['pay_price']>0){
//微信支付
if($record['balance']<=0){
//微信退款
$response = orderRefundApi($this->payConfig(),$record['pay_price'],$record['pay_price'],$record['transaction_id']);
//如果退款成功修改一下状态
if ( isset( $response[ 'return_code' ] ) && isset( $response[ 'result_code' ] ) && $response[ 'return_code' ] == 'SUCCESS' && $response[ 'result_code' ] == 'SUCCESS' ) {
$response['out_refund_no'] = !empty($response['out_refund_no'])?$response['out_refund_no']:$record['order_code'];
$this->record_model->dataUpdate(['id'=>$record['id']],['refund_code'=>$response['out_refund_no']]);
}else {
//失败就报错
$discption = !empty($response['err_code_des'])?$response['err_code_des']:$response['return_msg'];
Db::rollback();
return ['code'=>500,'msg'=> $discption];
}
}else{
//余额
$user_model = new User();
$user = $user_model->dataInfo(['id'=>$record['user_id']]);
$balance = $user['balance'] + $record['pay_price'];
$res = $user_model->dataUpdate(['id'=>$record['user_id'],'balance'=> $user['balance']],['balance'=>$balance]);
if($res==0){
Db::rollback();
$this->errorMsg('退款失败');
}
}
}
Db::commit();
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-09-27 13:45
* @功能说明:活动预约核销码
*/
public function atvRecordQr(){
$input = $this->_input;
$key = 'atv_app_qr'.$input['record_id'];
$qr = getCache($key,$this->_uniacid);
if(empty($qr)){
//获取二维码
$qr = $this->model->orderQr($input,$this->_uniacid);
setCache($key,$qr,86400,$this->_uniacid);
}
return $this->success($qr);
}
/**
* @author chenniang
* @DataTime: 2021-09-27 13:44
* @功能说明:核销活动预约
*/
public function hxAtvRecord(){
$input = $this->_input;
$record = $this->record_model->dataInfo(['id'=>$input['record_id']]);
if($record['pay_type']!=3){
$this->errorMsg('报名状态错误');
}
$user_role = $this->model->where(['id'=>$this->getUserId()])->value('role');
if($user_role!=1){
$this->errorMsg('管理员才有核销权限');
}
$config_model = new Config();
$config = $config_model->dataInfo(['uniacid'=>$record['uniacid']]);
$atv_model = new CarAtvList();
$integral_time = $atv_model->where(['id'=>$record['atv_id']])->value('integral_time');
Db::startTrans();
$update = [
'hx_user' => $this->getUserId(),
'pay_type'=> 7,
'hx_time' => time(),
//可申请退款的时间
'can_refund_time'=> time()+$integral_time*3600
];
$res = $this->record_model->dataUpdate(['id'=>$input['record_id']],$update);
if($res==0){
Db::rollback();
$this->errorMsg('核销失败');
}
$game_model = new CarGame();
//清空当前使用卡
$game_model->dataUpdate(['now_card_id'=>$input['card_id']],['now_card_id'=>'']);
//判断类型 专业组还是普通
$car_type_model = new CarType();
$type = $car_type_model->getType($record['car_type_id'],$record['user_id']);
$insert = [
'uniacid' => $this->_uniacid,
'user_id' => $record['user_id'],
'record_id' => $record['id'],
'card_id' => $input['card_id'],
'now_card_id' => $input['card_id'],
//比赛类型
'major' => $type,
'car_type_id' => $record['car_type_id'],
'atv_id' => $record['atv_id'],
];
//添加比赛记录标 准备开始比赛
$res = $game_model->dataAdd($insert);
if($res==0){
Db::rollback();
$this->errorMsg('核销失败');
}
//修改签到信息
//查询是否正在排队
$line_model = new CarLineUp();
$dis = [
'order_id' => $record['id'],
'type' => 2
];
$line_model->dataUpdate($dis,['status'=>2]);
// //如果有需要到账的积分
// if(!empty($record['get_integral'])&&$record['have_tx']==0){
//
// $integral_model = new \app\member\model\Integral();
//
// $integral_model->integralUserAdd($record['user_id'],$record['get_integral'],$record['uniacid'],2,8,$record['id']);
//
// }
Db::commit();
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-03-19 15:54
* @功能说明:用户地址列表
*/
public function addressList(){
$dis[] = ['user_id','=',$this->getUserId()];
$dis[] = ['status','>',-1];
$data = $this->address_model->dataList($dis,10);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-03-19 15:57
* @功能说明:用户地址详情
*/
public function addressInfo(){
$input = $this->_param;
$dis = [
'id' => $input['id']
];
$data = $this->address_model->dataInfo($dis);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-03-19 15:58
* @功能说明:添加用户地址
*/
public function addressAdd(){
$input = $this->_input;
$input['uniacid'] = $this->_uniacid;
$input['user_id'] = $this->getUserId();
$res = $this->address_model->dataAdd($input);
if($input['status']==1){
$id = $this->address_model->getLastInsID();
$this->address_model->updateOne($id);
}
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-03-19 15:58
* @功能说明:添加用户地址
*/
public function addressUpdate(){
$input = $this->_input;
$dis = [
'id' => $input['id']
];
$res = $this->address_model->dataUpdate($dis,$input);
if(!empty($input['status'])&&$input['status']==1){
$this->address_model->updateOne($input['id']);
}
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-07-11 22:54
* @功能说明:获取默认地址
*/
public function getDefultAddress(){
$address_model = new Address();
// dump(['user_id'=>$this->getUserId(),'status'=>1]);exit;
$address = $address_model->dataInfo(['user_id'=>$this->getUserId(),'status'=>1]);
return $this->success($address);
}
/**
* @author chenniang
* @DataTime: 2021-03-19 16:13
* @功能说明:删除地址
*/
public function addressDel(){
$input = $this->_input;
$dis = [
'id' => $input['id']
];
$res = $this->address_model->where($dis)->delete();
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-03-22 13:56
* @功能说明:修改用户信息 授权微信信息等
*/
public function userUpdate(){
$input = $this->_input;
$dis = [
'id' => $this->getUserId()
];
if(!empty($input['coupon_atv_id'])&&empty($this->getUserInfo()['nickName'])&&!empty($input['nickName'])){
$coupon_atv_model = new CouponAtv();
$coupon_atv_model->invUser($this->getUserId(),$input['coupon_atv_id']);
}
if(isset($input['coupon_atv_id'])){
unset($input['coupon_atv_id']);
}
if(isset($input['watermark'])){
unset($input['watermark']);
}
$res = $this->model->dataUpdate($dis,$input);
$user_info = $this->model->dataInfo(['id'=>$this->getUserId()]);
setCache($this->autograph, $user_info, 7200, $this->_uniacid);
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-03-22 14:08
* @功能说明:用户信息
*/
public function userInfo(){
$data = $this->getUserInfo();
$cap_dis[] = ['user_id','=',$this->getUserId()];
$cap_dis[] = ['status','in',[1,2,3,4]];
$driver_model = new CarDriver();
//查看是否是团长
$cap_info = $driver_model->dataInfo($cap_dis);
//-1表示未申请团长1申请中2已通过3取消,4拒绝
$data['driver_status'] = !empty($cap_info)?$cap_info['status']:-1;
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-03-23 09:39
* @功能说明:团长详情
*/
public function coachInfo(){
$order_model = new Order();
$order_model->coachBalanceArr($this->_uniacid);
$cap_dis[] = ['user_id','=',$this->getUserId()];
$cap_dis[] = ['status','in',[1,2,3,4]];
$cap_info = $this->coach_model->dataInfo($cap_dis);
return $this->success($cap_info);
}
/**
* @author chenniang
* @DataTime: 2021-03-22 13:35
* @功能说明:申请认证车手
*/
public function carApply(){
$input = $this->_input;
$driver_model = new CarDriver();
$cap_dis[] = ['user_id','=',$this->getUserId()];
$cap_dis[] = ['status','>',-1];
$cap_info = $driver_model->dataInfo($cap_dis);
if(!empty($cap_info)&&in_array($cap_info['status'],[1,2,3])){
$this->errorMsg('你已经申请过车手了了,');
}
$input['uniacid'] = $this->_uniacid;
$input['user_id'] = $this->getUserId();
$input['status'] = 1;
if(!empty($cap_info)&&$cap_info['status']==4){
$res = $driver_model->dataUpdate(['id'=>$cap_info['id']],$input);
}else{
$res = $driver_model->dataAdd($input);
}
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-09-26 10:43
* @功能说明:车手详情
*/
public function carInfo(){
$driver_model = new CarDriver();
$cap_dis[] = ['user_id','=',$this->getUserId()];
$cap_dis[] = ['status','>',-1];
$cap_info = $driver_model->dataInfo($cap_dis);
return $this->success($cap_info);
}
/**
* @author chenniang
* @DataTime: 2021-07-08 11:51
* @功能说明:用户优惠券列表
*/
public function userCouponList(){
$input = $this->_param;
$this->coupon_record_model->initCoupon($this->_uniacid);
$dis = [
'user_id' => $this->getUserId(),
'status' => $input['status'],
'is_show' => 1
];
$data = $this->coupon_record_model->dataList($dis);
if(!empty($data['data'])){
foreach ($data['data'] as &$v){
$v['start_time'] = date('Y.m.d H:i',$v['start_time']).' - '.date('Y.m.d H:i',$v['end_time']);
}
}
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-07-16 22:09
* @功能说明:删除优惠券
*/
public function couponDel(){
$input = $this->_input;
$coupon = $this->coupon_record_model->dataInfo(['id'=>$input['coupon_id']]);
if($coupon['status']==1){
$this->errorMsg('待使用待卡券不能删除');
}
$res = $this->coupon_record_model->dataUpdate(['id'=>$input['coupon_id']],['is_show'=>0]);
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-07-13 19:45
* @功能说明:优惠券活动详情
*/
public function couponAtvInfo(){
$input = $this->_input;
$atv_record_model = new CouponAtvRecord();
$atv_record_list_model = new CouponAtvRecordList();
$atv_model = new CouponAtv();
if(empty($input['id'])){
$dis_where[] = ['status','=',1];
$dis_where[] = ['end_time','<',time()];
//修改过期状态
$atv_record_model->dataUpdate($dis_where,['status'=>3]);
$dis = [
'user_id' => $this->getUserId(),
'status' => 1
];
//查询有没有进行中的活动
$atv_ing = $atv_record_model->dataInfo($dis);
if(empty($atv_ing)){
$atv_ing = $this->couponAtvAdd();
}
//
if(empty($atv_ing)){
$atv_ing = $atv_record_model->where(['user_id'=>$this->getUserId()])->order('id desc')->find();
$atv_ing = !empty($atv_ing)?$atv_ing->toArray():[];
}
if(empty($atv_ing)){
$this->errorMsg('你没有可以进行的活动');
}
}else{
$dis = [
'id' => $input['id']
];
//查询有没有进行中的活动
$atv_ing = $atv_record_model->dataInfo($dis);
}
$atv = $atv_model->dataInfo(['uniacid'=>$this->_uniacid]);
$atv_ing['atv_num'] = $atv['atv_num'];
$atv_ing['end_time'] -= time();
$atv_ing['end_time'] = $atv_ing['end_time']>0?$atv_ing['end_time']:0;
$data['atv_info'] = $atv_ing;
//邀请记录
$data['record_list'] = $atv_record_list_model->dataList(['a.record_id'=>$atv_ing['id']],50);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-07-12 16:29
* @功能说明:发起优惠券活动
*/
public function couponAtvAdd(){
$atv_model = new CouponAtv();
$atv_record_model = new CouponAtvRecord();
$atv_record_coupon_model = new CouponAtvRecordCoupon();
$atv_config = $atv_model->dataInfo(['uniacid'=>$this->_uniacid]);
if($atv_config['status']==0){
return [];
}
if($atv_config['start_time']>time()||$atv_config['end_time']<time()){
return [];
}
if(empty($atv_config['coupon'])){
return [];
}
$where[] = ['user_id','=',$this->getUserId()];
$where[] = ['status','<>',3];
$count = $atv_record_model->where($where)->count();
if($count>=$atv_config['atv_num']){
return [];
}
$insert = [
'uniacid' => $this->_uniacid,
'user_id' => $this->getUserId(),
'atv_id' => $atv_config['id'],
'atv_start_time' => $atv_config['start_time'],
'atv_end_time' => $atv_config['end_time'],
'inv_user_num' => $atv_config['inv_user_num'],
'inv_time' => $atv_config['inv_time'],
'start_time' => time(),
'end_time' => time()+$atv_config['inv_time']*3600,
'inv_user' => $atv_config['inv_user'],
'to_inv_user' => $atv_config['to_inv_user'],
'share_img' => $atv_config['share_img'],
];
Db::startTrans();
$res = $atv_record_model->dataAdd($insert);
if($res==0){
Db::rollback();
$this->errorMsg('发起活动失败');
}
$record_id = $atv_record_model->getLastInsID();
//记录该活动需要派发那些券
foreach ($atv_config['coupon'] as $value){
$insert = [
'uniacid' => $this->_uniacid,
'atv_id' => $atv_config['id'],
'record_id' => $record_id,
'coupon_id' => $value['coupon_id'],
'num' => $value['num'],
];
$res = $atv_record_coupon_model->dataAdd($insert);
if($res==0){
Db::rollback();
$this->errorMsg('发起活动失败');
}
}
Db::commit();
$record = $atv_record_model->dataInfo(['id'=>$record_id]);
return $record;
}
/**
* @author chenniang
* @DataTime: 2021-03-25 17:40
* @功能说明:生产二维码
*/
public function atvQr(){
$input = $this->_input;
$key = 'atv_coupon'.$input['coupon_atv_id'];
$qr = getCache($key,$this->_uniacid);
if(empty($qr)){
// $qr_insert = [
//
// 'coupon_atv_id' => $input['coupon_atv_id']
// ];
//获取二维码
$qr = $this->model->orderQr($input,$this->_uniacid);
setCache($key,$qr,86400,$this->_uniacid);
}
return $this->success($qr);
}
/**
* @author chenniang
* @DataTime: 2021-07-14 19:22
* @功能说明:授权手机号
*/
public function reportPhone ()
{
$params = $this->_input;
$encryptedData = $params[ 'encryptedData' ];
$iv = $params[ 'iv' ];
$config = longbingGetAppConfig($this->_uniacid);
$appid = $config[ 'appid' ];
// $appsecret = $config[ 'app_secret' ];
$session_key = $this->model->where(['id'=>$this->getUserId()])->value('session_key');
if(empty($session_key)){
$this->errorMsg('need login',401);
}
$data = null;
// 解密
$errCode = decryptDataLongbing( $appid, $session_key, $encryptedData, $iv, $data );
if ( $errCode == 0 )
{
$data = json_decode( $data, true );
$phone = $data[ 'purePhoneNumber' ];
}
else
{
return $this->error( $errCode );
}
$res = $this->model->dataUpdate(['id'=>$this->getUserId()],['phone'=>$phone]);
$user_info = $this->model->dataInfo(['id'=>$this->getUserId()]);
setCache($this->autograph, $user_info, 7200, $this->_uniacid);
return $this->success($phone);
}
/**
* @author chenniang
* @DataTime: 2021-09-29 10:16
* @功能说明:查询有成绩对日期
*/
public function resultDate(){
$game_model = new CarGame();
$dis = [
'user_id' => $this->getUserId(),
'have_game' => 1
];
$data = $game_model->where($dis)->order('id desc')->column('day');
$data = array_values($data);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-09-29 10:29
* @功能说明:根据日期获取比赛车型
*/
public function resultCarType(){
$params = $this->_param;
$dis = [
'user_id' => $this->getUserId(),
// 'status' => 2,
'day' => $params['day']
];
$game_model = new CarGame();
$data = $game_model->where($dis)->order('id desc')->group('car_type_id')->field('car_type_id')->select()->toArray();
if(!empty($data)){
$car_type_model = new CarType();
foreach ($data as &$v){
$v['car_type_title'] = $car_type_model->where(['id'=>$v['car_type_id']])->value('title');
}
}
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-09-29 10:33
* @功能说明:个人成绩
*/
public function userResult(){
$params = $this->_param;
$dis = [
'user_id' => $this->getUserId(),
'car_type_id' => $params['car_type_id'],
];
if(!empty($params['atv_id'])){
$dis['atv_id'] = $params['atv_id'];
}
$game_model = new CarGame();
//累计积分
$data['integral'] = $this->record_model->where($dis)->whereTime('start_time',$params['day'])->sum('integral');
$dis['day'] = $params['day'];
//最快圈速
$data['best_result'] = $game_model->where($dis)->min('best_time');
$data['best_result'] = game_time($data['best_result']);
//累计时长
$data['total_time'] = $game_model->where($dis)->sum('total_time');
$data['total_time'] = game_time($data['total_time']);
//累计圈数
$data['num'] = $game_model->where($dis)->sum('have_num');
//用户类型 1普通 2专业
$data['user_type'] = $game_model->where($dis)->value('major');
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-09-29 11:39
* @功能说明:我的排队信息
*/
public function myLineUp(){
$params = $this->_param;
$line_model = new CarLineUp();
$dis = [
'user_id' => $this->getUserId(),
'order_id' => $params['order_id'],
'type' => $params['type'],
'status' => 0
];
$data = $line_model->dataInfo($dis);
if(empty($data)){
$this->errorMsg('你暂无排队信息');
}
//排队号码
$arr['code'] = $data['code'];
$where[] = ['uniacid','=',$data['uniacid']];
$where[] = ['status','=',0];
$where[] = ['create_time','<',$data['create_time']];
$where[] = ['id','<>',$data['id']];
$count = $line_model->where($where)->count();
//前面有多少人
$arr['count'] = $count;
$time = $line_model->where($where)->sum('number');
$time = $time*120;
//预计等待时间
$arr['time'] = intval($time/60);
return $this->success($arr);
}
/**
* @author chenniang
* @DataTime: 2021-09-29 13:22
* @功能说明:签到
*/
public function signUp(){
$params = $this->_input;
//查询是否正在排队
$line_model = new CarLineUp();
$order_model= $params['type']==1?new Order():$this->record_model;
$order = $order_model->dataInfo(['id'=>$params['order_id']]);
if($order['pay_type']!=2){
$this->errorMsg('状态错误');
}
$refund_model = new RefundOrder();
//判断有无申请中的退款订单
$refund_order = $refund_model->dataInfo(['order_id'=>$order['id'],'status'=>1]);
if(!empty($refund_order)){
$this->errorMsg('该订单正在申请退款,请先处理');
}
Db::startTrans();
$update = [
'sign_time' => time(),
'pay_type' => 3
];
$res = $order_model->dataUpdate(['id'=>$params['order_id']],$update);
if($res==0){
Db::rollback();
$this->errorMsg('签到失败');
}
//排队号码
$code = $line_model->where(['uniacid'=>$this->_uniacid])->max('code');
$code++;
//需要跑的圈数
$number = $params['type']==1?$order['order_goods'][0]['circle']*$order['order_goods'][0]['num']:$order['number'];
$insert = [
'uniacid' => $this->_uniacid,
'user_id' => $order['user_id'],
'code' => $code,
'number' => $number,
'order_id'=> $order['id'],
'type' => $params['type']
];
$res = $line_model->dataAdd($insert);
if($res==0){
Db::rollback();
$this->errorMsg('签到失败');
}
Db::commit();
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-09-29 14:11
* @功能说明:取消签到
*/
public function cancelSignUp(){
$params = $this->_input;
//查询是否正在排队
$line_model = new CarLineUp();
$dis = [
'order_id' => $params['order_id'],
'type' => $params['type']
];
Db::startTrans();
$line_model->dataUpdate($dis,['status'=>-1]);
$order_model= $params['type']==1?new Order():$this->record_model;
$update = [
'sign_time' => 0,
'pay_type' => 2
];
$res = $order_model->dataUpdate(['id'=>$params['order_id']],$update);
if($res==0){
Db::rollback();
$this->errorMsg('签到失败');
}
Db::commit();
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-11-12 09:48
* @功能说明:根据手机号获取银豹的会员列表
*/
public function popalMemberByPhone(){
$input = $this->_param;
//先同步到本地
$this->model->synMemberList($this->_uniacid);
$member_model = new SynMember();
if(empty($input['phone'])){
$phone = $member_model->where(['user_id'=>$this->getUserId()])->value('phone');
}else{
$phone = $input['phone'];
}
$dis['phone'] = $phone;
$data = $member_model->dataList($dis);
if(!empty($data['data'])){
foreach ($data['data'] as &$v){
$v['is_select'] = $v['user_id']==$this->getUserId()?1:0;
}
}
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2021-11-12 10:13
* @功能说明:同步会员
*/
public function bindMember(){
$input = $this->_input;
$user = $this->model->dataInfo(['id'=>$this->getUserId()]);
$res = $this->model->getMemberInfoOne($user,$input['uid']);
if(!empty($res['code'])){
$this->errorMsg($res['msg']);
}
return $this->success($res);
}
/**
* @author chenniang
* @DataTime: 2021-11-12 11:20
* @功能说明:同步会员积分余额
*/
public function synMemberCash(){
$res = $this->model->synMemberCash($this->_uniacid,$this->getUserId());
if(!empty($res['code'])){
$this->errorMsg($res['msg']);
}
return $this->success($res);
}
}