function detail() { $uid = $this->_getid('uid'); $showAll = $this->_getid('all', 0); if (!$uid) { $this->returnJson = false; showError('用户参数丢失'); } $rs = D('member')->getUserInfoById($uid, 'all'); if ($rs) { $rs['village_name'] = $rs['village_id'] ? parent::getVillageName($rs['village_id']) : ''; } $this->assign(array('rs' => $rs, 'sex' => $this->sex, 'showAll' => $showAll)); $this->display(); }
public function report() { $startTime = $this->_get('stime', ''); //开始时间 $endTime = $this->_get('etime', ''); //结束时间 $serviceId = $this->_getid('service_id', 0); //服务社 $isOutput = $this->_getid('is_output', 0); //是否导出数据 $cateId = $this->_getid('cid', 0); //类目 $cateList = array(275 => '半成品菜', 273 => '预定下午茶'); if (!isset($cateList[$cateId])) { showError('抱歉,该类目不允许查看'); } if (!parent::_checkIsAdmin()) { if ($cateId != 275 || steadmin::$adminInfo['user_id'] != 291) { //半成品菜店长 showError('抱歉,暂无权限'); } } //取类目及所有子类目 $cateAllList = M('ste_goods_cate')->where(array('city_id' => steadmin::$adminInfo['city_id'], 'is_del' => 0))->order('sort DESC')->select('id'); $tidList = D('tree')->getSubs($cateAllList, $cateId, true); $cateId = $tidList['list'] ? implode(',', $tidList['list']) : $cateId; //默认报表时间为今天 $today = mktime(0, 0, 0, date('m'), date('d'), date('Y')); $stime = mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')); if (!$startTime) { $startTime = date('Y-m-d', $stime); } if (!$endTime) { $endTime = date('Y-m-d', $stime); } if ($startTime && $endTime) { $startTime = inTime($startTime); $endTime = inTime($endTime) + 60 * 60 * 24 - 1; } if ($serviceId) { $where = ' AND a.service_id=' . $serviceId; $sWhere = ' AND service_id=' . $serviceId; } else { $where = ''; $sWhere = ''; } if ($startTime < $today) { $statusList = '1,3,4,5,6,7,8,9,10,11'; } else { $statusList = '1,3,4,5,6,7,8,9,10,11'; //搜索状态:已支付、已审核、正在配货 } //根据类目搜索所有的商品gid $where = ''; $rs = M('ste_order')->query('SELECT a.order_id,a.order_sn,a.order_type,a.service_id,a.village_id,a.uid,a.address,a.phone,a.username,' . 'a.desc,a.arrive_date,a.arrive_time,a.order_source,a.status,a.order_time,a.goods_counts AS goods_total,b.gid,b.shop_id,b.goods_name,b.goods_counts,b.goods_price' . ' FROM __TABLE__ AS a LEFT JOIN __PRE__ste_order_goods AS b ON a.order_id=b.order_id WHERE a.arrive_date>=' . $startTime . ' AND a.arrive_date<=' . $endTime . ' AND a.status IN (' . $statusList . ') AND b.gid IN ( SELECT gid FROM __PRE__ste_goods WHERE cate_id IN (' . $cateId . ') ' . $sWhere . ' )' . $where . ' ORDER BY service_id ASC'); // z(M('ste_order')->getAllSql()); // z($rs); $orderList = array(); $orderTotal = array(); $serviceList = array(); if ($rs) { foreach ($rs as $val) { //统计各个菜的数量 $goodsName = md5($val['goods_name']); if (!isset($orderTotal[$goodsName])) { $orderTotal[$goodsName] = array('name' => $val['goods_name'], 'counts' => $val['goods_counts'], 'item' => array()); } else { $orderTotal[$goodsName]['counts'] += $val['goods_counts']; } if (!isset($orderTotal[$goodsName]['item'][$val['service_id']])) { $orderTotal[$goodsName]['item'][$val['service_id']] = array('name' => $this->serviceData[$val['service_id']]['stitle'], 'counts' => $val['goods_counts']); } else { $orderTotal[$goodsName]['item'][$val['service_id']]['counts'] += $val['goods_counts']; } //按服务社统计菜单 if (!isset($serviceList[$val['service_id']])) { $serviceList[$val['service_id']] = array('service_name' => $this->serviceData[$val['service_id']]['stitle'], 'counts' => $val['goods_counts'], 'item' => array()); } else { $serviceList[$val['service_id']]['counts'] += $val['goods_counts']; } if (!isset($serviceList[$val['service_id']]['item'][$val['gid']])) { $serviceList[$val['service_id']]['item'][$val['gid']] = array('name' => $val['goods_name'], 'counts' => $val['goods_counts']); } else { $serviceList[$val['service_id']]['item'][$val['gid']]['counts'] += $val['goods_counts']; } //按订单号归类商品 if (!isset($orderList[$val['order_id']])) { $orderList[$val['order_id']] = array('order_id' => $val['order_id'], 'order_sn' => $val['order_sn'], 'order_type' => $val['order_type'], 'service_id' => $val['service_id'], 'service_name' => $this->serviceData[$val['service_id']]['stitle'], 'village_id' => $val['village_id'], 'village_name' => parent::getVillageName($val['village_id']), 'address' => $val['address'], 'phone' => $val['phone'], 'username' => $val['username'], 'desc' => $val['desc'], 'arrive_date' => $val['arrive_date'], 'arrive_time' => $val['arrive_time'], 'order_source' => $val['order_source'], 'status' => $val['status'], 'order_time' => $val['order_time'], 'goods_total' => $val['goods_total'], 'select_goods_total' => 0, 'list' => array()); } $orderList[$val['order_id']]['list'][] = array('goods_name' => $val['goods_name'], 'goods_counts' => $val['goods_counts'], 'goods_price' => $val['goods_price']); $orderList[$val['order_id']]['select_goods_total'] += $val['goods_counts']; } } // z($orderTotal); // z($serviceList); if ($isOutput) { $dataList = array(); $title = array('订单号', '收货人', '手机', '地址', '配送时间', '商品列表', '留言', '混合订单'); foreach ($orderList as $val) { $list = array(); foreach ($val['list'] as $v) { $list[] = $v['goods_name'] . ' (x ' . $v['goods_counts'] . ')'; } $dataList[] = array($val['order_sn'], $val['username'], $val['phone'], $val['address'], outTime($val['arrive_date'], 2) . ' ' . $val['arrive_time'], implode("\r\n", $list), $val['desc'], $val['goods_total'] == $val['select_goods_total'] ? '否' : '是'); } if (isset($this->serviceData[$serviceId])) { $tname = $this->serviceData[$serviceId]['stitle']; } else { $tname = '全部'; } $dataList[] = array('', '', '', '', '', '', '', ''); $dataList[] = array('', '', '', '', '', '', '', ''); $dataList[] = array('品类', '详细', '数量', '', '', '', '', ''); //将统计信息附加到报表中 foreach ($orderTotal as $val) { $list = array(); foreach ($val['item'] as $v) { $list[] = $v['name'] . ' (' . $v['counts'] . '份)'; } $dataList[] = array($val['name'], implode('、', $list), $val['counts'], '', '', '', '', ''); } $dataList[] = array('', '', '', '', '', '', '', ''); $dataList[] = array('', '', '', '', '', '', '', ''); $dataList[] = array('服务社', '详细', '数量', '', '', '', '', ''); //将统计信息附加到报表中 foreach ($serviceList as $val) { $list = array(); foreach ($val['item'] as $v) { $list[] = $v['name'] . ' (' . $v['counts'] . '份)'; } $dataList[] = array($val['service_name'], implode("\r\n", $list), $val['counts'], '', '', '', '', ''); } load('csv'); $csv = new csv(); $csv->write($title, $dataList, $cateList[$cateId] . '订单_' . $tname . date('Y-m-d H/i/s')); } else { $this->assign(array('rs' => $orderList, 'orderTotal' => $orderTotal, 'cid' => $cateId, 'service_id' => $serviceId, 'startTime' => $startTime, 'endTime' => $endTime, 'serviceList' => $serviceList, 'service' => $this->serviceData, 'setting' => $this->steSetting)); $this->display(); } }
/** * 详细 */ public function detail() { $id = $this->_getid('id', 0); $orderSn = $this->_get('order_sn', ''); if (!$id && !$orderSn) { showError('参数丢失'); } if ($orderSn) { $where = array('order_sn' => $orderSn); } else { $where = array('order_id' => $id); } $rs = M('ste_order')->where($where)->find(); if (!$rs) { showError('订单不存在'); } if (parent::_checkIsPresident()) { //社长 if ($rs['service_id'] != steadmin::$adminInfo['service_id']) { showError('没有操作权限!'); } } elseif (!parent::_checkIsAdmin()) { showError('没有操作权限'); } $rs['serviceName'] = isset($this->serviceData[$rs['service_id']]) ? $this->serviceData[$rs['service_id']]['stitle'] : ''; $rs['userName'] = getUser($rs['uid']); $rs['villageName'] = parent::getVillageName($rs['village_id']); $rs['service_user'] = parent::_getAdminName($rs['service_uid'], 'real_name'); $rs['deployment_user'] = parent::_getAdminName($rs['deployment_uid'], 'real_name'); $rs['worker_user'] = parent::_getAdminName($rs['worker_uid'], 'real_name'); $orderRefund = array(); if ($rs['status'] == 10) { //有退款的 $orderRefund = M('ste_order_refund')->where(array('order_id' => $rs['order_id']))->find(); $orderRefund['actualUserNmae'] = parent::_getAdminName($orderRefund['user_id']); } $comment = array(); if ($rs['status'] == 11) { //已评价 $comment = M('ste_order_comment')->where(array('order_id' => $rs['order_id']))->find(); $comment['complainList'] = $comment['complain'] ? explode(',', $comment['complain']) : array(); } //订单商品数据 $goods = M('ste_order_goods')->where(array('order_id' => $rs['order_id']))->findAll(false); foreach ($goods as $k => $v) { $goods[$k]['shopName'] = parent::_getShopName($v['shop_id']); } // z($rs); $this->assign(array('rs' => $rs, 'orderRefund' => $orderRefund, 'isEdit' => in_array($rs['status'], array(2, 7, 9, 10, 11)) ? 0 : 1, 'goods' => $goods, 'setting' => $this->steSetting, 'comment' => $comment)); $this->display(); }