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.
		
		
		
		
		
			
		
			
				
					
					
						
							330 lines
						
					
					
						
							15 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							330 lines
						
					
					
						
							15 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. | |
|  */ | |
| 
 | |
| 
 | |
| class HomeAction extends PluginAction | |
| { | |
| 
 | |
|     public function getDefaultView() | |
|     { | |
|         $db = DBAction::getInstance(); | |
|         $request = $this->getContext()->getRequest(); | |
|         $admin_name = $this->getContext()->getStorage()->read('admin_name'); | |
|         $proname = $request->getParameter("proname"); // 商品名字 | |
|         $username = $request->getParameter("username"); // 用户名字 | |
|         $group_status = $request->getParameter("group_status"); // 活动状态 | |
|         $group_num = $request->getParameter("group_num"); // 拼团人数 | |
|         $status = trim($request->getParameter('status')); | |
|         $pagesize = $request->getParameter('pagesize'); | |
|         $pageto = $request->getParameter('pageto'); | |
|         $pagesize = $pagesize ? $pagesize : 10; | |
|         // 每页显示多少条数据 | |
|         $page = $request->getParameter('page'); | |
|         if ($page) { | |
|             $start = ($page - 1) * $pagesize; | |
|         } else { | |
|             $start = 0; | |
|         } | |
|         $whereStr = ''; | |
|         //如果名字不为空 | |
|         if ($proname != '') { | |
|             $whereStr .= " and p_name LIKE '%$proname%' "; | |
|         } | |
|         //如果商品名字不为空 | |
|         if ($username != '') { | |
|             $whereStr .= " AND user_name LIKE '%$username%' "; | |
|         } | |
|         //如果活动状态不为空 | |
|         if ($group_status != '' && $group_status != '#') { | |
|             // $whereStr.=" AND gp.g_status = $group_status"; | |
|             $whereStr .= " AND a.ptstatus = $group_status"; | |
| 
 | |
|         } | |
|         $this->huodongzhuangtai($db);//监测拼团活动有没有过期的,改变其活动状态 | |
|  | |
| 
 | |
|         $img = $this->img($db); | |
|         //如果是查看订单 | |
|         if ($status > 3) { | |
|             if ($status == 4) { | |
|                 $type = 'record'; | |
|                 $sql = "select a.*,b.user_id,b.user_name,c.product_title as p_name,d.sid as attr_id,c.id as goods_id  from lkt_group_open as a,lkt_user as b ,lkt_product_list as c ,lkt_order_details as d  where a.uid = b.wx_id and a.ptgoods_id = c.id and a.sNo= d.r_sNo" . $whereStr . " order by a.addtime desc limit $start,$pagesize"; | |
|                 $sql1 = "select a.*,b.user_id,b.user_name,c.product_title as p_name,d.sid as attr_id,c.id as goods_id  from lkt_group_open as a,lkt_user as b ,lkt_product_list as c ,lkt_order_details as d  where a.uid = b.wx_id and a.ptgoods_id = c.id and a.sNo= d.r_sNo" . $whereStr . " order by a.addtime desc "; | |
|             } else { | |
|                 $type = 'canrecord'; | |
|                 $sql = "SELECT b.*,c.user_name,d.product_title AS p_name,d.product_title, a.ptcode,f.endtime,a.sNo as a,f.sNo as b,b.product_id as goods_id,f.ptstatus | |
|                 FROM lkt_order as a ,lkt_group_product as b,lkt_user as c,lkt_product_list as d,lkt_group_open as f | |
|                 where a.pid = b.group_id and a.user_id = c.user_id and b.product_id = d.id and a.ptcode = f.ptcode and a.sNo <> f.sNo" | |
|                     . $whereStr . " | |
|                 ORDER BY f.endtime desc | |
|                 limit $start,$pagesize"; | |
|                 $sql1 = "SELECT b.*,c.user_name,d.product_title AS p_name, a.ptcode,f.endtime,a.sNo ,f.sNo,f.ptstatus | |
|                 FROM lkt_order as a ,lkt_group_product as b,lkt_user as c,lkt_product_list as d,lkt_group_open as f | |
|                 where a.pid = b.group_id and a.user_id = c.user_id and b.product_id = d.id and a.ptcode = f.ptcode and a.sNo <> f.sNo" | |
|                     . $whereStr . " | |
|                 ORDER BY f.endtime desc"; | |
|             } | |
|             $res = $db->select($sql); | |
|             $res_all = $db->select($sql1); | |
| 
 | |
|             if ($res) { | |
| 
 | |
|                 foreach ($res as $k => $v) { | |
| 
 | |
|                     //查询商品属性 | |
|                     $sql = "SELECT price,img from lkt_configure where id = $v->attr_id"; | |
|                     $c_res = $db->select($sql); | |
|                     $v->price = $c_res[0]->price; | |
|                     $v->imgurl = $img . $c_res[0]->img; | |
|                     //查询拼团配置 | |
|                     $sql = "SELECT * FROM lkt_group_product where  attr_id = $v->attr_id and group_id = $v->group_id"; | |
|                     $gp_res = $db->select($sql); | |
|                     if ($gp_res) { | |
|                         if (!empty($gp_res[0]->group_level)) { | |
|                             $biliArr = unserialize($gp_res[0]->group_level); | |
|                             $v->group_title = $gp_res[0]->group_title; | |
|                             if ($v->group_title == '') { | |
|                                 $v->group_title = $v->p_name; | |
|                             } | |
|                         } | |
|                         $v->openmoney = 0; | |
|                         if (!empty($biliArr)) { | |
|                             foreach ($biliArr as $key => $value) { | |
|                                 $groupman = $v->groupman = $key; | |
|                                 $KC_arr = explode("~", $value); | |
|                                 $v->openmoney = ($KC_arr[1] * $v->price) / 100;//开团 人价格 | |
|                                 $v->canmoney = $KC_arr[0] * $v->price / 100;//参团 人价格 | |
|                             } | |
| 
 | |
|                             $cfg = unserialize($gp_res[0]->group_data); | |
|                             $v->start_time = $cfg->starttime; | |
|                             $v->end_time = $cfg->endtime; | |
|                             $start_time = strtotime($v->start_time); | |
|                             $end_time = strtotime($v->end_time); | |
|                             if (time() < $start_time) { | |
|                                 $v->group_status = 0; | |
|                             } else if (time() > $start_time && time() < $end_time) { | |
|                                 $v->group_status = 1; | |
|                             } else if (time() > $end_time) { | |
|                                 $v->group_status = 2; | |
|                             } | |
|                         } else { | |
|                             $v->openmoney = 0;//开团 人价格 | |
|                             $v->canmoney = 0;//参团 人价格 | |
|                             $v->start_time = ''; | |
|                             $v->end_time = ''; | |
|                         } | |
|                     } else { | |
|                         unset($res[$k]); | |
|                     } | |
| 
 | |
|                 } | |
|             } | |
| 
 | |
| 
 | |
|             $total = count($res_all); | |
|             $pager = new ShowPager($total, $pagesize, $page); | |
|             $url = "index.php?module=pi&p=pintuan&c=Home&status=$status&proname=$proname&username=$username&group_num=$group_num&group_status=$group_status&pagesize=" . urlencode($pagesize); | |
|             $pages_show = $pager->multipage($url, $total, $page, $pagesize, $start, $para = ''); | |
| 
 | |
|             $request->setAttribute("list", $res); | |
|             $request->setAttribute("type", $type); | |
|             $request->setAttribute("status", $status); | |
|             $request->setAttribute("proname", $proname); | |
|             $request->setAttribute("group_num", $group_num); | |
|             $request->setAttribute("group_status", $group_status); | |
|             $request->setAttribute("username", $username); | |
|             $request->setAttribute("pages_show", $pages_show); | |
|             return View :: INPUT; | |
| 
 | |
|         } | |
| 
 | |
|         // 导出 | |
|  | |
|         if ($pageto == 'all') {             //导出数据 | |
|             $sql = "select * from lkt_group_product"; | |
|             $res = $db->select($sql); | |
|             $db->admin_record($store_id, $admin_name, ' 导出用户列表全部数据 ', 4); | |
|             $request->setAttribute("list", $res); | |
|             $request->setAttribute("pageto", $pageto); | |
|             return View :: INPUT; | |
|         } | |
|         $and = "g.recycle = 0  "; | |
|         if ($group_status) { | |
|             $and .= " and g.g_status=$group_status"; | |
|         } | |
|         if ($proname != '') { | |
|             $and .= " and p.product_title like '%$proname%'"; | |
|         } | |
| 
 | |
|         // 查询插件表 | |
|         $sql = "select MIN(g.group_title) AS group_title, | |
|         MIN(g.id) AS gid, | |
|         MIN(g.g_status) AS g_status, | |
|         g.group_id, | |
|         MIN(group_data) AS group_data, | |
|         MIN(group_level) AS group_level, | |
|         min(g.is_show) as is_show, | |
|         min(p.product_title) as product_title, | |
|         min(p.imgurl) as imgurl, | |
|         min(c.price) as price | |
|         from lkt_group_product as g  | |
|         left join lkt_product_list as p on g.product_id=p.id  | |
|         left join lkt_configure as c on g.attr_id=c.id  | |
|         where $and" . "  | |
|         group by g.group_id  | |
|         order by MIN(g.id) DESC limit $start,$pagesize"; | |
| 
 | |
|         $res = $db->select($sql); | |
|         $res1 = $db->select("select MIN(g.group_title) AS group_title,MIN(g.id) AS gid,MIN(g.g_status) AS g_status,g.group_id,MIN(group_data) AS group_data,MIN(group_level) AS group_level,min(g.is_show) as is_show,min(p.product_title) as product_title,min(p.imgurl) as imgurl,min(c.price) as price | |
|             from lkt_group_product as g  | |
|             left join lkt_product_list as p on g.product_id=p.id  | |
|             left join lkt_configure as c on g.attr_id=c.id  | |
|             where $and" . "  | |
|             group by g.group_id  | |
|             order by MIN(g.id) DESC "); | |
|         if ($res) { | |
|             foreach ($res as $k => $v) { | |
|                 $group_data = unserialize($v->group_data); | |
|                 $group_level = unserialize($v->group_level); | |
| 
 | |
|                 $min_man = 1; | |
|                 $min_bili = 100; | |
|                 foreach ($group_level as $k_ => $v_) { | |
|                     $biliArr = explode('~', $v_); | |
|                     if ($biliArr[0] < $min_bili) { | |
|                         $min_man = $k_; | |
|                         $min_bili = $biliArr[0]; | |
|                     } | |
|                 } | |
|                 $v->min_man = $min_man; | |
|                 $min_price = $min_bili * $v->price / 100; | |
|                 $v->min_price = sprintf("%.2f", $min_price); | |
|                 $str = ''; | |
|                 foreach ($group_level as $key => $value) { | |
|                     $arr = explode('~', $value); | |
|                     $str .= '<div><span class="tored">' . $key . '</span>人团,价:参 <span class="tored">' . $arr[0] . '%</span> ,开 <span class="tored">' . $arr[1] . '%</span></div>'; | |
|                 } | |
|                 $v->group_level = $str; | |
|                 $v->starttime = $group_data->starttime; | |
|                 if ($group_data->endtime == 'changqi') { | |
|                     $dt = $group_data->starttime; | |
|                     $dt = date('Y-m-d H:i:s', strtotime("$dt+1year")); | |
| 
 | |
|                     $v->endtime = $dt; | |
|                 } else { | |
|                     $v->endtime = $group_data->endtime; | |
|                 } | |
| 
 | |
|                 $v->actime = $group_data->starttime . ' <br> ' . $v->endtime; | |
|                 $v->imgurl = $img . $v->imgurl; | |
|             } | |
| 
 | |
|         } | |
| 
 | |
|         $total = count($res1); | |
|         $pager = new ShowPager($total, $pagesize, $page); | |
|         $url = "index.php?module=pi&p=pintuan&c=Home&proname=" . urlencode($proname) . "&pagesize=" . urlencode($pagesize); | |
|         $pages_show = $pager->multipage($url, $total, $page, $pagesize, $start, $para = ''); | |
| 
 | |
|         $request->setAttribute("list", $res); | |
|         $request->setAttribute("pageto", $pageto); | |
|         $request->setAttribute("status", $status); | |
|         $request->setAttribute("proname", $proname); | |
|         $request->setAttribute("pages_show", $pages_show); | |
|         $request->setAttribute("group_status", $group_status); | |
| 
 | |
|         return View :: INPUT; | |
|     } | |
| 
 | |
|     public function execute() | |
|     { | |
| 
 | |
|     } | |
| 
 | |
|     public function getRequestMethods() | |
|     { | |
|         return Request :: NONE; | |
|     } | |
| 
 | |
|     public function img($db) | |
|     { | |
|         // 查询系统参数 | |
|         $sql1 = "select * from lkt_config where id = 1"; | |
|         $r_1 = $db->select($sql1); | |
|         $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); // 图片路径 | |
|         } | |
| 
 | |
|         return $img; | |
|     } | |
| 
 | |
| 
 | |
|     function huodongzhuangtai($db) | |
|     {//监测拼团活动有没有过期的,改变其活动状态 | |
|         $rrr = $db->select("select * from lkt_group_product order by group_id desc"); | |
| 
 | |
|         if ($rrr) { | |
|             foreach ($rrr as $key => $value) { | |
|                 $cfg = unserialize($value->group_data); | |
| 
 | |
|                 $starttime = $cfg->starttime; | |
|                 $end_time = $cfg->endtime; | |
|                 $g_status = $value->g_status; | |
|                 $data = date('Y-m-d H:i:s', time()); | |
|                 if ($starttime < $data && $data < $end_time && $g_status == 1) {//处理正在进行中的 | |
|  | |
|                     $re = $db->select("select lkt_product_list.recycle ,lkt_product_list.status from lkt_group_product,lkt_product_list where group_id = $value->id and lkt_group_product.product_id = lkt_product_list.id"); | |
|                     if ($re) { | |
|                         if ($re[0]->recycle != 1 && $re[0]->status != 1) { | |
|                             $db->update("UPDATE `lkt_group_product` SET `g_status`='2' WHERE id = " . $value->id); | |
| 
 | |
|                         } | |
|                     } | |
| 
 | |
|                 } | |
| 
 | |
|                 if ($end_time < $data || $g_status == 3) {//处理过期的 | |
|  | |
|                     $db->update("UPDATE `lkt_group_product` SET `g_status`='3' WHERE id = " . $value->id); | |
| 
 | |
|                     $r = $db->select("select * from lkt_group_open where group_id=$value->group_id and ptstatus =1 "); | |
| 
 | |
|                     if ($r) { | |
| 
 | |
|                         foreach ($r as $key01 => $value01) { | |
| 
 | |
|                             $db->update("UPDATE `lkt_group_open` SET `ptstatus`='3' WHERE id = " . $value01->id); | |
|                             $ee = $db->select("select user_id,z_price,sNo,pay from lkt_order where ptcode = '" . $value01->ptcode . "'"); | |
| 
 | |
|                             if ($ee) { | |
|                                 foreach ($ee as $key02 => $value02) { | |
|                                     $db->update("UPDATE `lkt_order_details` SET `r_status`='11' WHERE r_sNo = '" . $value02->sNo . "'"); | |
|                                     $db->update("UPDATE lkt_user SET money =money+$value02->z_price WHERE user_id = '" . $value02->user_id . "'"); | |
|                                     $event = $value02->user_id . '退回拼团金额' . $value02->z_price . ''; | |
|                                     $sqlldr = "insert into lkt_record (user_id,money,oldmoney,event,type) values ('$value02->user_id','$value02->z_price','','$event',5)"; | |
|                                     $db->insert($sqlldr); | |
|                                 } | |
|                             } | |
|                             $db->update("UPDATE `lkt_order` SET `ptstatus`='3', `status`='11' WHERE ptcode = " . $value01->ptcode); | |
|                         } | |
|                     } | |
| 
 | |
|                 } | |
|             } | |
|         } | |
|         return; | |
|     } | |
| 
 | |
| 
 | |
| } | |
| 
 | |
| ?>
 |