记录消费金额
在使用印象笔记写日记做时间管理之前,曾围绕记录消费金额做过很多努力:
开发网站
consume.solife.us
, 现网站已停运。开发安卓客户端
consume
,当时还在使用小米 1S。申请微信公众号
xSOLife
, 认证已过期,昨天已重新提交申请。
客户端主要为小何方便使用,我更喜欢在公众号里写记录,然后回调到网站。
做上述那么多事,其实就是与小何都很好奇,为什么感觉钱花得快的同时又不知花费去向。
当时忙得不亦乐乎,业余时间各种码,过了一段时间后,目的就达到了,每当再有上述疑惑时,就翻看记录列表,然后释然许多,仅仅释然,但生活轻松许多。
为什么没有坚持到现在呢?
原因就是各种不好用:
-
输入格式要求复杂。
1 - 消费金额1 去向 2 - 消费金额2 去向 ...
为了一目了然的看到消费明细,同时也方便客户端自动汇总,但当时安卓开发自学的太烂,会各种闪退,小何一直反馈,一直坚持记录,但客户端性能未得到本质的改善。
当时也有同事感兴趣,但安装注册后,直接放弃。
周报、月报、年报等输出内容未实现,各种能力有限。
想实现的功能相对当时的实现能力太复杂,直接把自己憋死。
阿里云
当时购买 DigitalOcean 的 VPS、GoDaddy 的 域名,但代码部署、域名访问各种被墙,最后只好使用阿里云,无奈 solife.us
无法迁入阿里万网,现已是无源之水、无根之木。
以上,感谢 Albert 的支持,当时还没有居住证,备案使用公司的各种证章。
万幸服务器端写有脚本自动备份数据库至七牛云,从 315 个备份文件中找到最近的备份,导入本地数据库,对过往的那段消费记录经历做一个小结,就此翻篇。
以上,感谢七牛云,到目前为止,还是免费用户。
数据、数据
说明:
-
created_at
字段被客户端、微信回调操作弄脏了,时间维度使用updated_at
字段。 - 以分析自己的记录行为为主。
select datediff(now(), max(updated_at)) as `距离今天很多天了`
from records
where user_id = 1;
+--------------------------+
| 距离今天很多天了 |
+--------------------------+
| 256 |
+--------------------------+
1 row in set (0.01 sec)
select u.id as `用户ID`,
case u.name
when 'android_app' then '测试账号'
else u.name
end as `用户名称`,
count(r.id) as `记录数量`,
format(sum(r.value), 1) as `消费金额`
from users u
left join records r on r.user_id = u.id
group by u.id, u.name;
用户ID | 用户名称 | 记录数量 | 消费金额 |
---|---|---|---|
1 | jay | 1119 | 100,193.7 |
2 | 小何 | 668 | 24,271.9 |
3 | 测试账号 | 61 | 21,242.0 |
4 | mengdan | 0 | NULL |
5 | 轩雪雨子 | 0 | NULL |
6 | whao1216 | 0 | NULL |
看到小何的记录数据,不能不说不上心,对于她的积极配合,只能说一声迟到的感谢,谢谢老婆,我会更加努力的。
select min(updated_at) as `第一笔记录`
from records
where user_id = 1;
|---------------------|
| 第一笔记录 |
|---------------------|
| 2014-03-06 13:24:41 |
|---------------------|
1 row in set (0.00 sec)
select max(updated_at) as `最后一笔记录`
from records
where user_id = 1;
|---------------------|
| 最后一笔记录 |
|---------------------|
| 2015-12-02 04:14:56 |
|---------------------|
1 row in set (0.00 sec)
查看印象笔记中的第一篇日记笔记是在 15-08-18
,竟然与记录消费行为重叠了三个多月,本篇小结值了。
select datediff(max(updated_at), min(updated_at)) as `时间跨度(天)`,
count(id) as `记录数量`
from records
where user_id = 1;
|-------------------|--------------|
| 时间跨度(天) | 记录数量 |
|-------------------|--------------|
| 636 | 1119 |
|-------------------|--------------|
1 row in set (0.01 sec)
select format(sum(value), 1) as `花费`,
case klass
when 1 then '衣'
when 2 then '食'
when 3 then '住'
when 4 then '行'
when 5 then '微信'
when -1 then '其他'
else '未知'
end `类型`,
format(sum(value)/(select sum(value) from records where user_id = 1) * 100, 2)
as `占比 %`,
user_id as `用户ID`
from records
group by user_id, klass
having user_id = 1
order by klass;
花费 | 类型 | 占比 % | 用户ID |
---|---|---|---|
72,386.4 | 其他 | 72.25 | 1 |
1,758.0 | 衣 | 1.75 | 1 |
4,768.9 | 食 | 4.76 | 1 |
7,380.9 | 住 | 7.37 | 1 |
1,696.0 | 行 | 1.69 | 1 |
12,203.5 | 微信 | 12.18 | 1 |
小结
对于生活的记录,从未中止,也没想放弃。
只是记录消费的行为是对生活记录的一个朦胧开始,且中止的无声无息,心中总好奇当时坚持记录了多久、花费了多少金额、还有机会重拾么。
哈哈,不会重拾了,只会重选方向,再建大厦。
就目前为止,使用印象笔记作记录,很舒服,推荐给想作笔记的朋友。
最后感谢 Mac markdown 编辑器 Mou
,此时正在使用它整理思路。
思考太专注,小何整个做饭过程,未打下手,被骂了,帮忙去了。
16/08/14 7 17:58
用时 2 小时 16 分钟