You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							244 lines
						
					
					
						
							11 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							244 lines
						
					
					
						
							11 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								/**
							 | 
						|
								
							 | 
						|
								 * [Laike System] Copyright (c) 2017-2020 laiketui.com
							 | 
						|
								
							 | 
						|
								 * Laike is not a free software, it under the license terms, visited http://www.laiketui.com/ for more details.
							 | 
						|
								
							 | 
						|
								 */
							 | 
						|
								require_once('BaseAction.class.php');
							 | 
						|
								
							 | 
						|
								class drawAction extends BaseAction {
							 | 
						|
								
							 | 
						|
								    //存formid
							 | 
						|
								    public function getFormid(){
							 | 
						|
								        $db = DBAction::getInstance();
							 | 
						|
								        $request = $this->getContext()->getRequest();
							 | 
						|
								        $uid = addslashes(trim($request->getParameter('userid')));
							 | 
						|
								        $formid = addslashes(trim($request->getParameter('from_id')));
							 | 
						|
								      
							 | 
						|
								        $fromidsql = "select count(*) as have from lkt_draw_user_fromid where open_id='$uid'";
							 | 
						|
								        $fromres = $db -> select($fromidsql);
							 | 
						|
								        $fromres = intval($fromres[0] -> have);
							 | 
						|
								        $lifetime = date('Y-m-d H:i:s',time());
							 | 
						|
								        if($formid != 'the formId is a mock one'){
							 | 
						|
								            if($fromres < 8){           
							 | 
						|
								                $addsql = "insert into lkt_draw_user_fromid(open_id,fromid,lifetime) values('$uid','$formid','$lifetime')";
							 | 
						|
								                $addres = $db -> insert($addsql);
							 | 
						|
								            }else{
							 | 
						|
								                return false;
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function ceshi(){
							 | 
						|
								        $db = DBAction::getInstance();
							 | 
						|
								        $request = $this->getContext()->getRequest();
							 | 
						|
								        //现在时间的前一天
							 | 
						|
								        $datetime = date('Y-m-d H:i:s',time()-24*60*60);
							 | 
						|
								        //现在时间的前七天
							 | 
						|
								        $datetime1 = date('Y-m-d H:i:s',time()-7*24*60*60);
							 | 
						|
								        //删除超过七天的数据
							 | 
						|
								        $delsql = "delete from lkt_draw_user_fromid where lifetime < '$datetime1'";
							 | 
						|
								        $delres = $db -> delete($delsql);
							 | 
						|
								        //过去五分钟
							 | 
						|
								        $oldtime = date('Y-m-d H:i:s',time()-5*60-24*60*60);
							 | 
						|
								        $sql01 = "select * from lkt_draw where end_time >='$oldtime'and end_time<'$datetime'";//查询符合条件的活动ID
							 | 
						|
								        $re01 = $db -> select($sql01);
							 | 
						|
								        if(!empty($re01)){
							 | 
						|
								            foreach ($re01 as $key01 => $value01) {
							 | 
						|
								               $draw_id = $value01->id;//活动ID
							 | 
						|
								               $name = $value01->name;//活动名称
							 | 
						|
								               $draw_brandid = $value01->draw_brandid;//活动名称
							 | 
						|
								               $sql03 = "select product_title from lkt_product_list where id='$draw_brandid'";//通过活动ID查询活动人员
							 | 
						|
								               $re03 = $db -> select($sql03);
							 | 
						|
								                $product_title = $re03[0]->product_title;//活动商品
							 | 
						|
								               $sql02 = "select * from lkt_draw_user where draw_id='$draw_id'";//通过活动ID查询活动人员
							 | 
						|
								               $re02 = $db -> select($sql02);
							 | 
						|
								               
							 | 
						|
								                if(!empty($re02)){//存在参加活动的订单
							 | 
						|
								                    foreach ($re02 as $key02 => $value02) {
							 | 
						|
								                        $id = $value02->id;//ID
							 | 
						|
								                        $user_id = $value02->user_id;//用户ID
							 | 
						|
								
							 | 
						|
								                        $sql04 = "select wx_id from lkt_user where user_id='$user_id'";//查询活动人员wx_id
							 | 
						|
								                        $re04 = $db -> select($sql04);
							 | 
						|
								                        $openid =$re04[0]->wx_id;
							 | 
						|
								                        $sql05 = "select fromid from lkt_draw_user_fromid where open_id='$openid' order by lifetime asc ";//查询活动人员wx_id
							 | 
						|
								                        $re05 = $db -> select($sql05);
							 | 
						|
								                        if(!empty($re05)){//存在符合条件的fromid
							 | 
						|
								                            $fromid = $re05[0]->fromid;//状态
							 | 
						|
								                            $lottery_status = $value02->lottery_status;//状态
							 | 
						|
								                            $time = $value02->time;//中奖时间
							 | 
						|
								                            if($lottery_status==4){
							 | 
						|
								                                $rew[$key01][$key02]['lottery_status'] = '抽奖成功' ;
							 | 
						|
								                            }elseif($lottery_status==2){
							 | 
						|
								                                $rew[$key01][$key02]['lottery_status'] = '参团失败' ;
							 | 
						|
								                            }else{
							 | 
						|
								                                $rew[$key01][$key02]['lottery_status'] = '抽奖失败' ;
							 | 
						|
								                            }
							 | 
						|
								                            $rew[$key01][$key02]['product_title'] = $product_title ;
							 | 
						|
								                            $rew[$key01][$key02]['name'] = $name ;
							 | 
						|
								                            $rew[$key01][$key02]['time'] = $time ;
							 | 
						|
								                            $rew[$key01][$key02]['openid'] = $openid ;
							 | 
						|
								                            $rew[$key01][$key02]['fromid'] = $fromid ;
							 | 
						|
								                        }
							 | 
						|
								                    }
							 | 
						|
								                    $this -> Send_success($rew);
							 | 
						|
								                }
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								    
							 | 
						|
								    public function Send_success($rew){
							 | 
						|
								        $db = DBAction::getInstance();
							 | 
						|
								        $request = $this->getContext()->getRequest();
							 | 
						|
								        $sql = "select * from lkt_config where id=1";
							 | 
						|
								        $r = $db->select($sql);
							 | 
						|
								        if($r){
							 | 
						|
								          $appid = $r[0]->appid; // 小程序唯一标识
							 | 
						|
								            $appsecret = $r[0]->appsecret; // 小程序的 app secret
							 | 
						|
								            $AccessToken = $this->getAccessToken($appid, $appsecret);
							 | 
						|
								            $url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='.$AccessToken;   
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        foreach ($rew as $k => $v) {
							 | 
						|
								            foreach ($v as $key => $value) {
							 | 
						|
								                $lottery_status = $value[''] ;
							 | 
						|
								                $product_title = $value['product_title'] ;
							 | 
						|
								                $name = $value['name'] ;
							 | 
						|
								                $time = $value['time'] ;
							 | 
						|
								                $openid = $value['openid'] ;
							 | 
						|
								                $fromid = $value['fromid'] ;
							 | 
						|
								                $lottery_status = $value['lottery_status'] ;
							 | 
						|
								                $data = array();
							 | 
						|
								                $data['access_token'] = $AccessToken;
							 | 
						|
								                $data['touser'] = $openid;
							 | 
						|
								                $sql = "select * from lkt_notice where id = '1'";
							 | 
						|
								                $r = $db->select($sql);
							 | 
						|
								                $template_id = $r[0]->lottery_res;
							 | 
						|
								                $data['template_id'] = $template_id;
							 | 
						|
								                $data['form_id'] = $fromid;
							 | 
						|
								                $minidata = array('keyword1' => array('value' => $name,'color' => "#173177"),'keyword2' => array('value' => $product_title,'color' => "#173177"),'keyword3' => array('value' => $time,'color' => "#173177"),'keyword4' => array('value' => $lottery_status,'color' => "#173177"));
							 | 
						|
								                $data['data'] = $minidata;
							 | 
						|
								                $data = json_encode($data);
							 | 
						|
								                
							 | 
						|
								                $da = $this->httpsRequest($url,$data);
							 | 
						|
								                $delsql = "delete from lkt_draw_user_fromid where open_id='$openid' and fromid='$fromid'";
							 | 
						|
								                $db -> delete($delsql);          
							 | 
						|
								                var_dump(json_encode($da));
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function getdraw(){
							 | 
						|
								        $db = DBAction::getInstance();
							 | 
						|
								        $request = $this->getContext()->getRequest();
							 | 
						|
								
							 | 
						|
								        $openid = addslashes(trim($request->getParameter('openid'))); // 本人微信id
							 | 
						|
								        $referee_openid = addslashes(trim($request->getParameter('referee_openid'))); // 本人微信id
							 | 
						|
								        $order_id = addslashes(trim($request->getParameter('order_id'))); // 订单id
							 | 
						|
								        
							 | 
						|
								        // 查询系统参数
							 | 
						|
								        $sql = "select * from lkt_config where id = 1";
							 | 
						|
								        $r_1 = $db->select($sql);
							 | 
						|
								        $uploadImg_domain = $r_1[0]->uploadImg_domain; // 图片上传域名
							 | 
						|
								        $uploadImg = $r_1[0]->uploadImg; // 图片上传位置
							 | 
						|
								        if(strpos($uploadImg,'../') === false){ // 判断字符串是否存在 ../
							 | 
						|
								            $img = $uploadImg_domain . $uploadImg; // 图片路径
							 | 
						|
								        }else{ // 不存在
							 | 
						|
								            $img = $uploadImg_domain . substr($uploadImg,2); // 图片路径
							 | 
						|
								        }
							 | 
						|
								       
							 | 
						|
								        $arr = [];
							 | 
						|
								        $user = [];
							 | 
						|
								        // 根据订单id,查询订单号和抽奖id
							 | 
						|
								        $sql = "select sNo,drawid from lkt_order where id = '$order_id'";
							 | 
						|
								        $r_1 = $db->select($sql);
							 | 
						|
								        $sNo = $r_1[0]->sNo; // 订单号
							 | 
						|
								        $arr['drawid'] = $r_1[0]->drawid; // 抽奖id
							 | 
						|
								        // 根据抽奖id,查询抽奖活动id
							 | 
						|
								        $sql = "select draw_id,role from lkt_draw_user where id = " . $arr['drawid'];
							 | 
						|
								        $rr = $db->select($sql);
							 | 
						|
								        $arr['draw_id'] = $rr[0]->draw_id; // 抽奖活动id
							 | 
						|
								        $role = $rr[0]->role; // 角色
							 | 
						|
								        
							 | 
						|
								        // 根据抽奖id,查询那些用户参加了
							 | 
						|
								        $sql = "select user_id from lkt_draw_user where role = '$role' order by id";
							 | 
						|
								        $rrr = $db->select($sql);
							 | 
						|
								
							 | 
						|
								        $user_num = count($rrr);
							 | 
						|
								        foreach ($rrr as $k => $v) {
							 | 
						|
								            $sql = "select user_id,wx_name,headimgurl from lkt_user where user_id = '$v->user_id'";
							 | 
						|
								            $r = $db->select($sql);
							 | 
						|
								            $user[] = $r[0];
							 | 
						|
								        }
							 | 
						|
								        $sql = "select a.p_id,a.p_price,a.sid,c.img,c.yprice from lkt_order_details AS a LEFT JOIN lkt_configure AS c ON a.sid = c.id where a.r_sNo = '$sNo'";
							 | 
						|
								        $r_2 = $db->select($sql);
							 | 
						|
								        $p_id = $r_2[0]->p_id; // 商品id
							 | 
						|
								        $arr['p_id'] = $r_2[0]->p_id; // 商品id
							 | 
						|
								        $arr['p_price'] = $r_2[0]->p_price; // 商品抽奖价格
							 | 
						|
								        $arr['yprice'] = $r_2[0]->yprice; // 商品原价
							 | 
						|
								        $arr['sid'] = $r_2[0]->sid; // 商品属性id
							 | 
						|
								        $arr['img'] = $img . $r_2[0]->img; // 商品图片
							 | 
						|
								
							 | 
						|
								        $sql = "select product_title from lkt_product_list where id = '$p_id'";
							 | 
						|
								        $r_4 = $db->select($sql);
							 | 
						|
								        $arr['product_title'] = $r_4[0]->product_title; // 商品名称
							 | 
						|
								
							 | 
						|
								        $sql = "select num,end_time from lkt_draw where draw_brandid = '$p_id'";
							 | 
						|
								        $r_3 = $db->select($sql);
							 | 
						|
								        $arr['num'] = $r_3[0]->num; // 参加抽奖人数
							 | 
						|
								        $arr['user_num'] = $arr['num'] - $user_num; // 参团还差的人数
							 | 
						|
								
							 | 
						|
								        $arr['time'] = strtotime($r_3[0]->end_time) - time(); // 抽奖活动结束时间
							 | 
						|
								        if(count($user) < $r_3[0]->num){
							 | 
						|
								            $arr['draw_status'] = 0; // 参团中
							 | 
						|
								            if($arr['time'] < 0){
							 | 
						|
								                $arr['draw_status'] = 2; // 参团失败
							 | 
						|
								            }
							 | 
						|
								        }else{
							 | 
						|
								            $arr['draw_status'] = 1; // 参团成功
							 | 
						|
								        }
							 | 
						|
								        if($referee_openid != '' && $referee_openid != 'undefined'){
							 | 
						|
								            if($referee_openid == $openid){
							 | 
						|
								                $arr['draw_type'] = true;
							 | 
						|
								            }else{
							 | 
						|
								                $arr['draw_type'] = false;
							 | 
						|
								            }
							 | 
						|
								        }else{
							 | 
						|
								            if(count($user) == 1){
							 | 
						|
								                $arr['draw_type'] = true;
							 | 
						|
								            }else{
							 | 
						|
								                $arr['draw_type'] = false;
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								        $sql = "select num from lkt_product_list where id = " . $arr['p_id'];
							 | 
						|
								        $r_r = $db->select($sql);
							 | 
						|
								        $arr['stock'] = $r_r[0]->num;
							 | 
						|
								        /* 获取商品属性 */
							 | 
						|
								        $commodityAttr = [];
							 | 
						|
								        $sql_size = "select * from lkt_configure where pid = " . $arr['p_id'];
							 | 
						|
								        $r_size = $db->select($sql_size);
							 | 
						|
								        $array_price = [];
							 | 
						|
								        $array_yprice = [];
							 | 
						|
								        if ($r_size) {
							 | 
						|
								            foreach ($r_size as $key => $value) {
							 | 
						|
								                $array_price[$key] = $value->price;
							 | 
						|
								                $array_yprice[$key] = $value->yprice;
							 | 
						|
								                $attrValueList[0] = array('attrKey' => '型号', 'attrValue' => $value->name);
							 | 
						|
								                $attrValueList[1] = array('attrKey' => '规格', 'attrValue' => $value->size);
							 | 
						|
								                $attrValueList[2] = array('attrKey' => '颜色', 'attrValue' => $value->color);
							 | 
						|
								                $cimgurl = $img.$value->img;
							 | 
						|
								                $commodityAttr[$key] = array('priceId' => $value->id,'price' => $value->price,'stock' => $value->num,'img' => $cimgurl, 'attrValueList' => $attrValueList);
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								        echo json_encode(array('status'=>1,'arr'=>$arr,'user'=>$user,'commodityAttr'=>$commodityAttr));
							 | 
						|
								        exit;
							 | 
						|
								
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								?>
							 |