经销商后台管理加入统计功能模块
|view:statistics/goods_statistics.html order_statistics.html
|controller: Statisics.php
经常报错:重定向循环……原因有apache vhosts路径配置,action名字错误,找不到controller……不过这框架的路由设计也太不稳定了……。
新加了统计页面,然而菜单一直取不出来,同事发现了是静态页面是直接复制过来的,取值取不出来,而菜单是底部用js生成,代码没有执行到那儿。
还有就是$this->theme=sysdefault,没有看到制定主题的代码,所以暂时直接在action里赋值,否则又是重定向循环……
首先要取得的数据:销量,总销量等。
分析一下商品管理的后台据逻辑:
//搜索条件
$search = IFilter::act(IReq::get('search'),'strict');
$page = IReq::get('page') ? IFilter::act(IReq::get('page'),'int') : 1;
//条件筛选处理
list($join,$where) = goods_class::getSearchCondition($search);
//拼接sql
$goodsHandle = new IQuery('goods as go');
$goodsHandle->order = "go.sort asc,go.id desc";
$goodsHandle->distinct = "go.id";
$goodsHandle->fields = "go.*,seller.true_name,br.name as brname";
$goodsHandle->page = $page;
$goodsHandle->where = $where;
$goodsHandle->join = $join;
$this->search = $search;
$this->goodsHandle = $goodsHandle;
$this->host = HOST_URL;
$this->redirect("goods_list");
后台做得是sql拼接,然后数据是前台取的。
新生成IQuery的实例,在IQuery中看到注释是为了处理复杂的查询问题。
前台查询是:
$this->goodsHandle->find();
find方法(中间省去一些paging代码):
$sql = "select $this->distinct $this->fields from $this->table $this->join $this->where $this->group $this->having $this->order";
$result = $this->dbo->query($sql);
return $result;
继续MySQL学习之路……
查询选择所有 date_col 值在最后 30 天内的记录。
mysql> SELECT something FROM tbl_name
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
例如查询商品上一个月的销量:
{set:
$salesHandle = new IQuery('order_goods as sa');
$salesHandle->fields = "count(*)";
$salesHandle->join = "LEFT JOIN order as o ON sa.order_id =o.id";
$salesHandle->where = "sa.goods_id=$item[id] AND TO_DAYS(NOW()) - TO_DAYS(o.create_time) <= 30";
$result=$salesHandle->find();
}
{echo:$result[0]['count(*)']}
的错误写法………………
不可能每次只买一件,所以不能用count(*)而应该是用SUM。
{set:
$salesHandle = new IQuery('order_goods as sa');
$salesHandle->fields = "SUM(goods_nums)";
$salesHandle->join = "LEFT JOIN order as o ON sa.order_id =o.id";
salesHandle->where = "sa.goods_id=$item[id] AND TO_DAYS(NOW()) - TO_DAYS(o.create_time) <= 30";
$result=$salesHandle->find();
}
{echo:(int)$result[0]['SUM(goods_nums)']}
:
framework:yii (Yes It Is!
官网:http://www.yiiframework.com/
doc:http://www.yiiframework.com/doc-2.0/index.html
几乎都推荐用composer安装yii,还在庆幸之前就装好了,更新composer:
composer self-update
然后:
composer global require "fxp/composer-asset-plugin:~1.1.1"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
结果有点问题:
Reading bower.json of bower-asset/jquery.inputmask (3.1.36)
Could not fetch https://api.github.com/repos…
Head to https://github.com/settings/tokens/new……
to retrieve a token. It will be stored in "……" for future use by Composer.
Token (hidden):
因为没有开启php的OpenSSL支持,所以去修改php的配置文件php.ini
或者直接去官网生成密钥
ps用composer时总是说 running composer with xdebug enabled. 不管怎么注释php.ini都无用……暂时算了。
,好吧下好了yii 2.0,但是api要yii 1.0……
直接去github git clone……
yii1 doc:http://vdisk.weibo.com/s/zvcWC2S917wDf?from=page_100505_profile&wvr=6