TODO List:
  1. 收款
  2. 部署
  3. 无线打印机试验
    1. 一般网络打印机实验、
      1. 从三星手机能打印网页,已经试验通过
      2. (小米,和iphone未发现有打印功能)
      3. javascript打印代码功能试验。
    2. 魏女士的网络打印机实验
  4. 功能开发准备
    1. selenium自动测试脚本补全。
    2. bug fix: owner登录后,点击账户图标,界面混乱。
    3. 数据库问题排除。
    4. 尝试重新发布吧,
    5. 设置专门的饭店服务器,在rightnow上面叫enjoy-rightnow.rhcloud.com(改为增加动态搬家功能)
  5. 代码培训
    1. 周五晚或周六晚要一个比较整块的时间。
    2. 需要pei带上电脑到我家。
    3. Eclipse拷贝
    4. 代码拷贝
    5. 演示代码如何调试
  6. 确认规格
    1. 缺少功能
      1. 订单审批功能
        1. 首先用MainOrder来记录合并菜单(能否同时支持一人一单和一桌一单模式?),用subOrder来记录细节
        2. 用表格显示,字段包括id(不显示),桌号(可能是地址+电话),(位置号),总价(用于支持有的饭店到位子上收钱用),状态(客户预订,提交后厨,全部上桌,已付款,外加呼叫中---任何状态下,客户按铃铛,表示该位置的MainOrder改成呼叫状态)。
      2. 订单修改功能
        1. 要带加号表示点击展开以便于修改,要带垃圾箱表示清除该订单。
        2. 订单展开页内容(要显示所点菜品图片,要允许修改,然后重新打印
      3. 订单打印功能
        1. 要做一个只对employee可见的打印设置页面,为每一个打印机配置菜品。(改为对printer用户可见,因为每个打印机需要单独设定,这样能做到可重,可不重)
        2. 外加一个config,key为打印机,value为逗号分隔的id字串,用来知道应该在哪个打印机打印。(C3用来存放打印机段)
    2. 已有功能
      1. 客人端菜单显示。
  7. 确认价钱
    1. 我们前面两个用户每个收300刀,两个以上用户,每个收200刀,所以您的面店我们计划收您600刀就可以了。另外我们大体给您算了一下,包括您另外还要跟魏女士购买打印机两台算600刀,两个打印机配套程序600刀的话,你的一次性投资估计在1800刀左右。
    2. 另外我们在您使用后还要收取每个用户每个月10刀的服务器维护费用。这就是全部费用了。
    3. 如果您同意我们确认下规格,然后马上开始开发,预计两个月之内您就可以使用了。
    4. 以上改为做好,用好再谈价钱。估计价钱不是问题,问题是好用,管用)
-- zhajiang 04:13 04/06/2017

  1. 代码完成了,测试后下午将提交。如果有问题,你看下MainPageController.java 551行开始。这里是准备每个打印机需要打印的数据的逻辑,mainidea是,看看系统有几个打印机,把他们的名字(注册时要用ip作为名字)加到printers。另外,为每个打印机准备一个需要打印的内容列表。570行逻辑结束
  2. 前台展示: 查找<!-- hidden places for each printer -->, 该位置循环每个打印机数据,id分别为id="forPrinter1"、id="forPrinter2"、id="forPrinter3"......每个div的name属性即改内容所属打印机的ip地址。
  3. 一个供你调试打印时用的秘密命令:我提供了供每个打印机打印的内容,可是这些内容再页面上是不可见的。所以提供了一个命令,用来把这些内容显示出来:
    1. 在pintPreview页面,打开Chrome调试(F12),
    2. 运行$("#showHiddenDivs").click();
    3. 会弹出一个面板,显示各个打印机需要打印的内容。
-- Sam 11:53 30/06/2017
界面参照其他软件进行了调整,尽量多的支持各种定制:
  1. 允许定制购物的时候不显示总价,或显示总价
  2. 允许定制购物时的状态栏提示信息。
  3. 允许定制点击checkOut按钮时是直接checkOut还是先显示当前所有选择,然后再checkOut.
  4. 允许定制上传CheckkOut的图标。
-----------------------------------
下一步将会改进selectionCheck box,选中后将显示减号和加号
然后将增加允许用户为多分同样的产品,每一个增加不同的备注的功能。(第二版看客户情况再提供)
-- Sam 06:51 21/06/2017
 类别标签功能完成,亟待测试。请pei更新近文档的同时,注意bug。
-- Sam 21:28 10/06/2017
  1.  类别标签功能,
  2. total总价计算有错。
  3. 按铃报错说没有菜被选中。
  4. 增加only selected/show All功能。
  5. 提交后,除了createNewMainOrder,还要自动调用清空选择状态,
  6. 提交后employee以上角色的bell不隐藏。
-- Sam 20:06 11/06/2017
 多个类别的菜的选择,难度在于,当点另一个类别时,跳转到了一个新的页面。这时在原来页面选择的菜会丢失,所以挑战就是在页面间跳转时要记住前面的网页中已经点了的菜。
  1. 现在已经通过把已经点了的菜放入session解决了这个问题。 
  2. 牺牲掉了原有的当在第二个区域中点菜时,第一个区域中没有选中的菜自动灰掉(暂时牺牲掉)
  3. 类别标签的功能,至此完成了1/4到1/3。(现在已经全部完成)
-- Sam 20:07 11/06/2017

本周工作计划:
  1. 打印内容的重新生成(菜名占一行,字更大)
  2. 记录转为20状态的设计实现
  3. 二级菜单改为fix+半透明
    1. 改二级菜单不合适,因为页面跳转将导致在前面页面的选择丢失。
    2. 改为feature页专门加分类条,防止选择丢失。
    3. 分类条后面加个显示我的全部选择,(show all),显示所有已选,
    4. 分类条后面加个reset,复位所有选择。(改为提交后自动切换到signup页面/已经登录用户切换到dashboard页面)
    5. 已经选的个数和总价钱。
    6. bell或许可以改成分类条上的提交按钮(bell不变,只提示中增加总价总数)。
      1. 总价计算有错。
  4. 图像更小和mx值更小的效果测试
  5. 针对平板的显示效果调优。
-- Sam 16:55 11/06/2017
本来预计周末更新test环境,结果遇到一个技术问题,tomcat突然坏掉,现象总结:
  1. 开始不能输入错误异常:printer1更新菜品所属打印机时,service.persistence 抛出异常,但eclipse控制台没有任何显示。
  2. 怀疑tomcat坏了,换回老的tomcat6,发现启动时报错class not found exception.(后来更新project property,增加maven属性解决)
  3. 然后当访问taostyle时,页面报错:org.apache.tiles.impl.CannotRenderException: ServletException including path '/WEB-INF/layouts/default.jspx'.
-- Sam 10:04 05/06/2017
 刚刚写了作为一般客人的文档:

作为餐厅客人:

1,扫描二维码,进入电子菜单。

2,电子菜单默认的是餐厅推荐的菜(Feather of the day).

3, 电子菜单的显示方式是:菜的照片,照片下面是菜的名字和价钱和可供选择的checkbox

  • ·         客人点击菜的照片,弹出新的页面,该页面显示所选择菜的大照片和菜的描述。点击页面右上角的'X'关闭按钮,关闭该页面。回到之前的页面。
  • ·         客人选中checkbox,说明客人点了这个菜。也可取消checkbox,这时该菜显示灰色。

4 客人可以通过下滑餐单,浏览全部菜品。

5,客人可以通过点击页面右上角的menu,可以选择FULL MENU,浏览全部菜品。

6,当客人选择完菜品,点击页面右下角的图标(Please click me to submit the order or call a waiter),系统会比较客人的当时地址和餐厅地址,从而判断出客人是叫外卖还是在本餐厅就餐。

  • ·         如果客人不在餐厅内,是叫外卖,系统会核实客人信息:

系统会弹出对话框(Please leave a phone number to contact), 要求客人提供手机号码;

接下来弹出对话框(Address we should deliver to),要求客人提供地址;

接下来弹出对话框(When you prefer it arriver:),要求客人提供接适合的送餐时间;

接下来弹出对话框(the name to whom it deliver to);要求客人提供姓名;

最后弹出确认信息(Order submitted!(if you are ordering from remote, please call us to confirm at your earliest convenience)).确认信息后,当前页面只显示客人点的餐。

 

  • ·         如果客人在餐厅内,这个workflow目前不能确定

-- PeiYu 20:39 03/06/2017
上周提供了临时的打印方案,如果店里有一台windows机器的话,就可以用起来了。(由于目前如果用epson就没有利润了,所以这个方案在更好方案出来之前,或者店内有电脑可用的情况下,是主推方案)
本周要实现wee给的几个建议
  1. 打印的字体变大(备注自占一行)
  2. 用户提交命令时,要求输入名字(即使是在店内点餐,也邀请输入名字,提高服务质量)
  3. 允许用户自己设置每个打印机负责打印那些菜。
    1. 打印机用户登陆后不直接跳转dashboard,而是直接跳转feature页。
    2. feature也的显示策略重新调整,改为显示各个类别下属于该打印机的菜品。
    3. feature页的选择动作,后台所对应的行为要重新调整。改为为各个产品添加打印机信息。
------------------------------------------------------------
问题:
pei能不能把产品用法学习一下?每个角色的用法要写到你的blog中。最好一周能学好,这样好培训魏姐她们。
-- Sam 07:19 03/06/2017
 你的问题,只能等我拿到打印机,研究javascript API之后,我才能回答是用JSON还是div
-- PeiYu 11:37 02/06/2017
 项目卡在打印上已经一个半星期了,wee对我们很支持,全力配合,不但借打印机给我们研究,还积极联系国内厂商,寻找支持javascript的打印机。目前,鉴于国内尚无支持javascript的打印机厂商,wee将购进一台Epson给我们用。届时,Pei将抓紧进行打印调试。我这边需要提前将可打印的内容准备好。(已经准备完成!)
(注:我还研究了android打印,发现这个方案不可用,因为有可能服务员因为个人原因,手机换了,程序忘了开启,程序坏了服务员忘记了重装等,服务员换班导致忘记开启打印程序.......服务员会认为就应该只开一个程序-------即只打开一个网页,要求记住每次打开两个程序是很怪异的)
------------------------------------------------------------
问题:
Pei,打印的内容应该以json的形式提供还是以div的形式提供?
-- Sam 05:40 08/06/2017
 增加了安全机制:
  1. 每次成功的order request都会记录一条log在数据库log表
  2. 记录包括访问者ip,访问地址,访问时间等。
  3. 每个ip每天默认只能下单三次(应该改进为对同一家店最多下单三次)
  4. 允许对某些ip增加/减少访问次数限制
  5. 允许设置某些ip段位为禁止段位(外城或外国的订单都应忽略/视为heck)
  6. 192.168.开头的不限次数(服务员/堂吃用的内部网IP)
  7. ------_------
  8. 客户端提交后,自动隐藏bell,避免点着玩的冲动
  9. 客户如果有开location,那么检查位置,不在店里却用带桌号的话提示:you are using a on site qrcode, please use qrcode specially for OUT SIDE ORDER which you can find at the end of the page, OR CALL 5146676920.
  10. 对于确定是黑客的行为,公司级别会有统一跟踪和处理。(具体处理办法为第二版重点解决问题)
    1. 提示其行为:在某时某刻用其手机对某某网站进行过攻击,触犯了了加拿大法律,请终止您的行为并联系我们对您的行为做出解释,否则我们将把您的行为报告皇家骑警备案。

-- Sam 11:24 23/05/2017
 关于手机版本,bootstrap css 有手机版的。
-- PeiYu 20:38 18/05/2017
 我把打印机连到本地的局域网了,给打印机设置了固定的IP 地址,我在自己的电脑上能ping到打印机。
那现在的情况是我们的网站在外网,打印机在内网的一个局域网。服务员用手机打印的链接的是内网的打印机。
我刚才又试了试JavaScript webSOCKE,是链接close error。
我在网上搜了这个打印机开发的API,开始试着研究一下。
-- PeiYu 20:36 18/05/2017
我把自定义的字段缩短了一些,便于手机上观看,本地数据库更新可以用这些语句。
select * from Customize where cusKey like '%_w'
select * from Customize where cusKey like '%_width'
UPDATE Customize SET cusKey = replace(cusKey,"_width","_w") where cusKey like '%_width'

select * from Customize where cusKey like '%_h'
select * from Customize where cusKey like '%_height'
UPDATE Customize SET cusKey = replace(cusKey,"_height","_h") where cusKey like '%_height'

select * from Customize where cusKey like '%img_%'
select * from Customize where cusKey like '%image_%'
UPDATE Customize SET cusKey = replace(cusKey,"image_","img_") where cusKey like '%image_%'


select * from Customize where cusKey like '%_img%'
select * from Customize where cusKey like '%_image%'
UPDATE Customize SET cusKey = replace(cusKey,"_image","_img") where cusKey like '%_image%'

select * from Customize where cusKey like 'show_%'
select * from Customize where cusKey like 'showArea_%'
UPDATE Customize SET cusKey = replace(cusKey,"showArea_","show_") where cusKey like 'showArea_%'

select * from Customize where cusKey like '%_cBox'
select * from Customize where cusKey like '%_checkBox'
UPDATE Customize SET cusKey = replace(cusKey,"_checkBox","_cBox") where cusKey like '%_checkBox'

select * from MediaUpload where filePath like '%_img%'
select * from MediaUpload where filePath like '%_image%'
UPDATE MediaUpload SET filePath = replace(filePath,"_image","_img") where filePath like '%_image%'
-- Sam 12:08 18/05/2017
 刚跟群里请教了一圈意见,感觉shawn的方案不错,结合我们的情况后记录如下:
  1. 服务员打印后,并不打印,仅仅设置状态为10.
  2. 增加一个默认账户name:printer。
  3. 该用户的dashbard界面没有按钮,其只显示状态为10的mainorder(即我们的打印队列)。并自动从队列中自动打印。
  4. 打印完成,状态设置成20
  5. 服务完成,状态设置为30
-- Sam 11:05 22/05/2017
是的,是可以这么做,但还是不顺,正确做法是直接提交代码到opennshift(test-rightnow.rhcloud.com),这样只要一个push命令,它会自动maven编译,然后运行自动测试,然后自动部署。你说的做法每次发布需要登陆两台服务器,运行多个命令了.....坚持不了多久就会因为嫌麻烦重新考虑commit到openshift。
-- Sam 05:10 15/05/2017
 你说的提交war文件,应该是部署war文件吧。我需要下载提交代码的Git账号和部署到openshift 的账号。
OpenShift支持Git,bitbucket是免费的,提供code repository。我们可以用bitbucket管理代码,然后用openshift的账号部署。
-- PeiYu 20:26 14/05/2017
 代码提交了吗?Git怎么下载代码?
-- PeiYu 18:53 13/05/2017
mainOrder已经能显示了,detailOrder实现中
TODO:
当用户修改了description of service或者description of product,必须增加一个检查,看看能否正确解析出产品的名字和价格,
不能解析出来,需要报警。

如果能解析出来,还用其跟Product或者Servicce表中相应记录的名称和价格进行比对,如果不一样的话,也要报警,问用户哪个是对的,并修改Product或者Service的Price字段值。(等待两表启用再说)
将来订单的价格要改成从Service中取已经解析好的,而不是从description中现算。毕竟创建一个产品或者服务时,时间和运算量是相对压力小的。
-- Sam 11:04 22/05/2017

Please click here to login and add comments! || automatically refresh content every seconds