123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?php
- namespace Admin\Service;
- /**
- * CommonService
- */
- abstract class CommonService {
- /**
- * 得到数据行数
- * @param array $where
- * @return int
- */
- public function getCount(array $where) {
- $ret = $this->getM()->where($where)->count();
- return $ret;
- }
- /**
- * 得到分页数据
- * @param array $where 分页条件
- * @param int $firstRow 起始行
- * @param int $listRows 行数
- * @return array
- */
- public function getPagination($where, $fields,$order,$firstRow,$listRows) {
- // 是否关联模型
- $M = $this->isRelation() ? $this->getD()->relation(true) : $this->getM();
- // 需要查找的字段
- if (isset($fields)) {
- $M = $M->field($fields);
- }
- // 条件查找
- if (isset($where)) {
- $M = $M->where($where);
- }
- // 数据排序
- if (isset($order)) {
- $M = $M->order($order);
- }
- // 查询限制
- if (isset($firstRow) && isset($listRows)) {
- $M = $M->limit($firstRow . ',' . $listRows);
- } else if (isset($listRows) && isset($firstRow)) {
- $M = $M->limit($listRows);
- }
- return $M->select();
- }
- /**
- * 返回结果值
- * @param int $status
- * @param fixed $data
- * @return array
- */
- protected function resultReturn($status, $data) {
- return array('status' => $status,
- 'data' => $data);
- }
- /**
- * 返回错误的结果值
- * @param string $error 错误信息
- * @return array 带'error'键值的数组
- */
- protected function errorResultReturn($error) {
- return $this->resultReturn(false, array('error' => $error));
- }
- /**
- * 得到M
- * @return Model
- */
- protected function getM() {
- $model_name = $this->getModelName();
- if (strpos($model_name, '.') !== false) {
- return M($model_name, null);
- } else {
- return M($model_name);
- }
- }
- /**
- * 得到D
- * @return Model
- */
- protected function getD() {
- return D($this->getModelName());
- }
- /**
- * 是否关联查询
- * @return boolean
- */
- protected function isRelation() {
- return true;
- }
- /**
- * 得到模型的名称
- * @return string
- */
- protected abstract function getModelName();
- protected function getCtrName() {
- $ctrName = CONTROLLER_NAME;
- if(strpos($ctrName, '.') !== false && strtoupper($ctrName[0]) === $ctrName[0]) {
- $ctrName[0] = strtolower($ctrName[0]);
- }
- return $ctrName;
- }
- }
|