当前位置: 网站首页>小程序开发>网站优化

泰兴小程序制作【泰兴企业邮箱】泰兴网站外包、泰兴微信商城开发、泰兴网店美工、泰兴淘宝设计

发表日期: 2021-04-26 15:30:02 浏览次数:101

泰兴小程序制作【泰兴企业邮箱】泰兴网站外包、泰兴微信商城开发、泰兴网店美工、泰兴淘宝设计

泰兴市位于江苏省中部、长江下游北岸。北纬31°58′12"~32°23′05",东经119°54′05"~120°21′56",是江苏省泰州市下辖市,是江苏省直管县三个试点之一,享有部分地级市职权。东接如皋市;南接靖江市;西濒长江,与扬中市、常州市新北区隔江相望;北邻泰州市姜堰区,东北与南通市海安市接壤;西北与泰州市高港区毗连。 [1-2] 

泰兴置县于南唐升元元年(公元937年),寓意“国泰民安,百业兴旺”,有“教育之乡” [3]  、“银杏之乡” [4]  、“建筑之乡” [5]  、“提琴之乡” [6]  、“减速机之乡” [7]  之称。 [2] 

2018年,泰兴市实现地区生产总值1040亿元。一般公共预算收入74.5亿元,增长18.1%,税占比84.1%,总量列全省县市第7位、增幅列第1位。财政管理工作连续两年获得国务院表彰奖励。固定资产投资增长14%,其中产业投资增长13%。实现社会消费品零售总额257亿元,增长7%。城乡居民人均可支配收入增长9.2%。全国县域经济基本竞争力排名前移至第29位。 [8-9] 

泰兴属长江三角洲冲积平原,行政区划面积1172平方公里,泰兴东西最大直线距离为47.0千米,南北最大直线距离为43.5千米。2017年末户籍总人口118.56万人,比上年减少0.75万人。年末常住人口107.80万人。 [10]  2018年11月,入选中国工业百强县(市)。 [11]  2018年12月,入选全国县域经济综合竞争力100强、 [12]  投资潜力100强,中国最佳县级城市30强,2019全国营商环境百强县。2020年12月,社科院发布《全国县域经济综合竞争力100强》,泰兴排名第37 [13]  。

在添加并实现数据模型类Model_Event的类方法前,细心的读者可以发现,在前面调用的代码中,其实已经很好地给出了待实现的类方法的函数签名。这一细节,也很好地表明了为什么在意图导向编程下能更好的提高关注点。

// WeTime$ vim ./Fun/Model/Event.php
    public function getSpaceList($allUids, $createTime, $perpage, $page) {
        return $this->getORM()
            ->select('id, uid, title, content, createtime')
            ->where('uid', $allUids)
            ->where('createtime < ?', $createTime)
            ->where('tousers', '1')
            ->limit(($page - 1) * $perpage, $perpage)
            ->order('createtime DESC')
            ->fetchAll();
    }复制代码

最终获取日历事件列表的底层实现代码如上所示,并在调试模式下,可以看到对应的SQL语句为:

SELECT id, uid, title, content, createtime FROM wt_event WHERE (uid IN (2, 1)) AND (createtime < ?) AND (tousers = '1') ORDER BY createtime DESC LIMIT 0,5; -- '2017-05-29 59:59:59'复制代码

如果你觉得这时已经大功告成,那就错了,因为严谨的单元测试会告诉你,还缺少了用户的相关信息,例如用户头像。

那么,对于用户的相关信息,应该在哪里实现呢?又应该在哪里调用呢?实现的位置不容置疑,应该是在用户领域业务为Domain_User中,但调用的时机呢?很明显,这属于在在日历事件列表中聚合用户信息,这是属于根据不同的业务场景而组合的数据,因此应该在日历事件领域业务类中完成这一组装的过程。既然这样,需要在已经获得的日历事件列表中继续追加用户信息,添加新的代码后,代码看起来像是这样。

// WeTime$ vim ./Fun/Domain/Event.php
    public function getSpaceList($userId, $createTime, $perpage = 20, $page = 1) {
        ... ...
        $model = new Model_Event();
        $list = $model->getSpaceList($allUids, $createTime, $perpage, $page);

        $domainUser = new Domain_User();
        $userList = $domainUser->getUserList($allUids);
        foreach ($list as &$eventRef) {
            $eventRef['user'] = array(
                'avatar' => $userList[$eventRef['uid']]['avatar'],
            );
        }

        return $list;
    }复制代码

细心品读这段代码,可以发现一些有趣的事情。首先,这里先是批量获取了全部的用户信息,再追加相应的用户数据。这种做法既不是每次重复查询数据库获取用户信息的粗暴方式,也不是在Model层进行关联查询却产生过度数据耦合及技术实现耦合的方式。其次,在添加用户信息时,采用的是对每个事件条目按需追加,如这时只追加了头像这一信息。这样是考虑到可共用的用户列表信息,很有可能会有后期添加一些扩展字段,但这些字段不一定是客户端所需要的。所以,通过先编写调用代码,可以迫使我们开发人员优先考虑需要什么,再去实现。

这里又是一条开发支线,但这条支线已经是“最后一公里”了。完成这条支线的功能开发,如无意外,我们就能交付查看日历事件列表这一接口服务了!

先来实现领域业务层获取用户列表的方法:

// WeTime$ vim ./Fun/Domain/User.php<?php/**
 * 用户领域业务类
 */class Domain_User {

    public function getUserList($allUids) {
        $model = new Model_User();
        return $model->getUserList($allUids);
    }}复制代码

再来实现对应的数据模型层的方法:

// WeTime$ vim ./Fun/Model/User.php<?php/**
 * 用户数据模型类
 */class Model_User extends PhalApi_Model_NotORM {

    public function getUserList($allUids) {
        $rows = $this->getORM()
            ->select('id, avatar')
            ->where('id', $allUids)
            ->fetchAll();

        $list = array();
        foreach ($rows as $row) {
            $list[$row['id']] = $row;
        }

        return $list;
    }}

c51c866ffa1ab3457f2021e8bbdbcc1.jpg

泰兴小程序制作泰兴企业邮箱泰兴网站外包、泰兴微信商城开发、泰兴网店美工、泰兴淘宝设计

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878