|
|
@@ -26,102 +26,45 @@ class Package extends BaseModel
|
|
|
* @throws \think\db\exception\DbException
|
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
|
*/
|
|
|
- public static function reserve($uid,$package_manager,$price,$day,$proportion,$pass)
|
|
|
+ public static function reserve($uid,$whole_id,$time_id,$to_uid,$price,$first_price,$last_id)
|
|
|
{
|
|
|
+ $user = User::find($uid);
|
|
|
$data['uid'] = $uid;
|
|
|
- $data['package_manager'] = $package_manager;
|
|
|
- //if(!self::is_valid()) return self::setErrorInfo('非活动时间,不能预约');
|
|
|
- $start = strtotime(date("Y-m-d"));
|
|
|
- if(self::where('package_manager',$package_manager)->where('uid',$uid)->where('add_time','>=',$start)->find())
|
|
|
+ $data['whole_id'] = $whole_id;
|
|
|
+ $data['time_id'] = $time_id;
|
|
|
+ $data['first_price'] = $first_price;
|
|
|
+ $data['last_id'] = $last_id;
|
|
|
+ $data['price'] = $price;
|
|
|
+ if($last_id>0 && self::where('last_id',$last_id)->where('uid',$uid)->find())
|
|
|
{
|
|
|
return self::setErrorInfo('你已报名,无需重复报名');
|
|
|
}
|
|
|
+ $integral = bcmul($price,bcdiv(sys_config('reserve_integral'),100,2),2);
|
|
|
+ if($integral>$user['integral']) return self::setErrorInfo('金豆不足,请先买金豆专区');
|
|
|
+ if($last_id>0 && self::where('id',$last_id)->value('status')!=3) return self::setErrorInfo('已有用户预约,换个商品预约');
|
|
|
$data['add_time'] = time();
|
|
|
$data['order_id'] = self::getNewOrderId();
|
|
|
- $data['proportion'] = $proportion;
|
|
|
- $data['price'] = $price;
|
|
|
- $data['day'] = $day;
|
|
|
- $data['am'] = date("H")>12?0:1;
|
|
|
- $data['pass'] = $pass;
|
|
|
- return self::create($data);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 是否活动时间
|
|
|
- */
|
|
|
- public static function is_valid()
|
|
|
- {
|
|
|
- $am= explode("~",sys_config('start_time'));
|
|
|
- $pm = explode("~",sys_config('end_time'));
|
|
|
- if((date("H:i")>$am[0] && date("H:i")<$am[1]))
|
|
|
+ if($to_uid==0)
|
|
|
{
|
|
|
- return 1;
|
|
|
+ $to_uid = User::where('is_sys', 1)->order('sys_pay asc,uid asc')->value('uid');
|
|
|
}
|
|
|
- elseif((date("H:i")>$pm[0] && date("H:i")<$pm[1]))
|
|
|
- {
|
|
|
- return 2;
|
|
|
- }
|
|
|
- return 0;
|
|
|
- }
|
|
|
+ $data['to_uid'] = $to_uid;
|
|
|
+ self::beginTrans();
|
|
|
+ try{
|
|
|
+ $data['use_integral'] = $integral;
|
|
|
+ $res = self::create($data);
|
|
|
+ User::where('uid',$uid)->dec('integral',$integral)->update();
|
|
|
+ UserBill::expend("预约扣金豆",$uid,'integral','pay_money',$integral,$res['id'],bcsub($user['integral'],$integral,2),'预约扣除'.$integral."金豆");
|
|
|
+ User::edit(['is_whole'=>1],$uid);
|
|
|
+ self::commitTrans();
|
|
|
+ return $res->toArray();
|
|
|
|
|
|
- /**
|
|
|
- * 兑换
|
|
|
- * @param $uid
|
|
|
- * @param $package_manager
|
|
|
- * @param $price
|
|
|
- * @param $day
|
|
|
- * @param $proportion
|
|
|
- * @param $consume_pass
|
|
|
- * @param int $type
|
|
|
- * @param int $am
|
|
|
- */
|
|
|
- public static function create_order($uid,$tu_uid=0,$id,$price)
|
|
|
- {
|
|
|
- $user = User::find($uid);
|
|
|
- $H = date("H");
|
|
|
- if ($type==1 && $H < 12 ) {
|
|
|
- return self::setErrorInfo("推荐兑换只能在下午市进行");
|
|
|
- }
|
|
|
- if($type>0 && $consume_pass==0 || $user['now_money']<$consume_pass)
|
|
|
- {
|
|
|
- return self::setErrorInfo('通行证少于'.$consume_pass.",请先买通行证!");
|
|
|
- }
|
|
|
- if( $user['brokerage_price']<$price)
|
|
|
- {
|
|
|
- return self::setErrorInfo('收益少于'.$price);
|
|
|
- }
|
|
|
- $i = date("i");
|
|
|
- if ($i < 30) {
|
|
|
- $start = strtotime(date("Y-m-d H:00:00"));
|
|
|
- $end = strtotime(date("Y-m-d H:29:59"));
|
|
|
- } else {
|
|
|
- $start = strtotime(date("Y-m-d H:30:00"));
|
|
|
- $end = strtotime(date("Y-m-d H:59:59"));
|
|
|
- }
|
|
|
- if(self::where('package_manager',$package_manager)->where('uid',$uid)->where('add_time','>=',$start)->where('add_time','<=',$end)->find())
|
|
|
+ }catch (Exception $e)
|
|
|
{
|
|
|
- return self::setErrorInfo('你已报名,无需重复报名');
|
|
|
+ Log::error('预约出错:' . $e->getLine().'--'.$e->getMessage());
|
|
|
+ return self::setErrorInfo($e->getMessage(),true);
|
|
|
}
|
|
|
-
|
|
|
- $data['uid'] =$uid;
|
|
|
- $data['package_manager'] = $package_manager;
|
|
|
- $data['add_time'] = time();
|
|
|
- $data['order_id'] = self::getNewOrderId();
|
|
|
- $data['proportion'] = $proportion;
|
|
|
- $data['price'] = $price;
|
|
|
- $data['day'] = $day;
|
|
|
- $data['consume_pass'] =$consume_pass;
|
|
|
- $data['am'] = date("H")>12?0:1;
|
|
|
- $data['pass'] = $pass;
|
|
|
- $data['type'] = $type;
|
|
|
- $data['status'] = 4;
|
|
|
- $res = self::create($data);
|
|
|
- User::where('uid',$uid)->dec('now_money',$consume_pass)->dec('brokerage_price',$price)->update();
|
|
|
- UserBill::expend("兑换包扣通证",$uid,'now_money','pay_money',$consume_pass,$res['id'],bcsub($user['now_money'],$consume_pass,2),'兑换包扣除'.$consume_pass."通行证");
|
|
|
- UserBill::expend("兑换包扣收益",$uid,'now_money','pay_money',$price,$res['id'],bcsub($user['brokerage_price'],$price,2),'兑换包扣除'.$price."收益");
|
|
|
- return $res;
|
|
|
}
|
|
|
-
|
|
|
/**
|
|
|
* 生成订单唯一id
|
|
|
* @param $uid 用户uid
|
|
|
@@ -161,10 +104,7 @@ class Package extends BaseModel
|
|
|
public static function take($id)
|
|
|
{
|
|
|
$info = self::find($id);
|
|
|
- $data['start_day'] = time();
|
|
|
- $data['end_day'] = strtotime("+".$info['day']." days");
|
|
|
$data['status'] = 3;
|
|
|
- $data['sum_revenue'] = bcdiv(bcmul(bcmul($info['proportion'],$info['day'],4),$info['price'],4),100,2);
|
|
|
$data['paid'] = 1;
|
|
|
self::beginTrans();
|
|
|
try {
|
|
|
@@ -466,11 +406,12 @@ class Package extends BaseModel
|
|
|
if(isset($where['uid']) && $where['uid']>0) $model = $model->where('uid',$where['uid']);
|
|
|
if(isset($where['to_uid']) && $where['to_uid']>0) $model = $model->where('to_uid',$where['to_uid']);
|
|
|
if(isset($where['status']) && $where['status']>-4) $model = $model->where('status',$where['status']);
|
|
|
- if(isset($where['type']) && $where['type']>-1) $model = $model->where('type',$where['type']);
|
|
|
+ if(isset($where['time_id']) && $where['time_id']>-4) $model = $model->where('time_id',$where['time_id']);
|
|
|
$count = $model->value('count(id)')?:0;
|
|
|
$data = $model->order('id desc')->page($where['page'],$where['limit'])->select();
|
|
|
foreach ($data as &$v)
|
|
|
{
|
|
|
+ $v['whole'] = StoreWholesale::find($v['whole_id'])->toArray();
|
|
|
$v['user'] = User::where('uid',$v['uid'])->field('real_name,avatar,phone')->find()->toArray();
|
|
|
if($v['to_uid']>0) {
|
|
|
$v['touser'] = User::where('uid', $v['to_uid'])->field('real_name,avatar,phone,wx_qr,wx_no,alipay_no,alipay_name,account_Bank,bank_card,bank_name,bank_branch')->find()->toArray();
|