| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 | <?phpnamespace Active\Lib;use Dever;class Active{    public function action($uid, $active_id, $num, $path, $remark = false)    {    	$user = Dever::db('active/user')->find($uid);		// print_R(json_decode('[{"id":"1","value":"文本"},{"id":"2","value":"文本"},{"id":"3","value":"1"}]'));die;		$data = Dever::db('active/info')->find($active_id);		// if ($data['act_status'] == 1 || (isset($data['act_start']) && $data['act_start'] && time() < $data['sign_start'])) {		// 	Dever::alert('活动还未开始报名');		// }		if ($data['act_status'] >=3 || (isset($data['sign_end']) && $data['sign_end'] && time()>$data['sign_end'])){			Dever::alert('活动报名已结束');		}		$insert['active_id'] = $active_id;		$insert['num'] = $num;		$insert['price'] = $num * $data['price'];		if ($remark) {			$insert['remark'] = $remark;		}		if ($path) {			$insert['path'] = $path;		}		$insert['uid'] = $user['id'];		$title = array();		if ($data['attr']) {			if ($data['attr_input']) {				$input['num'] = explode(',',$data['attr_input']);			}			$data['attr'] = explode(',',$data['attr']);			foreach ($data['attr'] as $k => $v) {				foreach ($input['num'] as $k1 => $v1) {					if($k == $k1){						$title[$k]['id'] = $v;						$title[$k]['num'] = $v1;					}				}			}		}		$order = Dever::db('active/order')->getNum(array('uid'=>$uid,'active_id'=>$active_id));		$member = Dever::load('active/lib/user')->agent($user);		if ($data['status'] == 2) {						if (!$member) {				Dever::alert('本活动只能是代理商报名');			}		}				if ($title && $member) {			foreach ($title as $k => $v) {				if($v['id'] == $member['role']) {					if ($v['num'] > 0 && $num > $v['num']) {						Dever::alert('您已超过限购数量');					}					if ($order && $order['total']  && $v['num'] > 0 && $order['total'] > $v['num']) {						Dever::alert('您已超过限购数量');					}				}			}		} else {			if ($order && $order['total'] && $order['total'] >= $data['num']) {				Dever::alert('您已超过限购数量');			}			if ($num > $data['num'] ) {				Dever::alert('您已超过限购数量');			}		}				$insert['order_num'] = $this->getOrderId();		$ids = Dever::db('active/order')->insert($insert);		$url = Dever::url();		$refer = 'https://www.churenyiliao.com/';		if (strstr($url, 'uat.')) {			$refer = 'http://guanli.uat.churenyiliao.com/';		}		$refer .= 'data/payback/active.html?order_id=' . $ids;		if ($ids) {			$info = Dever::db('active/order')->find($ids);			$active = Dever::db('active/info')->find($info['active_id']);			$param = array	        (	            'project_id' => 6,	            'channel_id' => 1,	            'system_source' => 1,	            'account_id' => 8,	            'uid' => $uid,	            'name' => $active['name'],	            //'openid' => $data['openid'],	            'cash' => $info['price'],	            'product_id' => $ids,	            'order_id' => $info['order_num'],	            'h5' => 1,	            'refer' => $refer,	        );	        $result = Dever::load('pay/api.pay', $param);	        if ($result['order']) {	        	Dever::db('active/order')->update(array('where_id'=>$ids,'url'=>$result['order']));	        }	        $result['order_num'] = $info['order_num'];	        $result['order_id'] = $info['id'];	        $jump = Dever::input('jump');	        if ($jump == 1) {	        	Dever::location($result['order']);	        }	        return $result;		} else {			Dever::alert('提交失败');		}    }     # 支付成功回调 安全加密 设置token    public function success_secure_api_token()    {        $project_id = Dever::input('pay_project_id');        $info = Dever::db('pay/project')->one($project_id);        if ($info) {            return $info['key'];        }        return 'agent_buy_dever_2020';    }    # 支付成功回调 安全加密    public function success_secure_api($param = array())    {        $this->success($param);    }    # 支付成功回调    public function success($param = array())    {        $send = $param ? $param : Dever::preInput('pay_');        $product_id = $send['pay_product_id'];        $order_id = $send['pay_order_id'];        $status = $send['pay_status'];        $cash = $send['pay_cash'];        $msg = $send['pay_msg'];        $order = Dever::db('active/order')->one(array('id' => $product_id, 'clear' => true));        if ($order && $status == 2) {            $update['status'] = 2;            $update['where_id'] = $order['id'];            Dever::db('active/order')->update($update);        }        return 'ok';    }    #生成订单号    public function getOrderId()    {        $where['order_num'] = Dever::order('D');        $where['clear'] = true;        $state = Dever::db('active/order')->one($where);        if (!$state) {            return $where['order_num'];        } else {            return $this->getOrderId();        }    }	}
 |