api and dealer systemadmin log

本文详细介绍了在经销商后台管理系统中新增统计功能模块的过程,包括页面布局、数据获取、SQL查询优化等内容,并分享了一些常见的错误及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


经销商后台管理加入统计功能模块

|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



转载于:https://my.oschina.net/sikou/blog/616487

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值