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;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								?>
							 |