f-li.cn
package org.rx.service.command.impl; import lombok.Getter;
import lombok.Setter;
import org.rx.core.NQuery;
import org.rx.core.dto.media.MediaType;
import org.rx.core.dto.media.AdvFoundStatus;
import org.rx.core.dto.media.FindAdvResult;
import org.rx.service.command.Command;
import org.rx.service.command.HandleResult;
import org.springframework.context.annotation.Scope;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component; import javax.annotation.Resource; import static org.rx.core.Contract.require; @Order(22)
@Component
@Scope("prototype")
public class BuyCmd implements Command {
private static final String key = "买";
@Resource
private FindAdvCmd findAdvCmd;
@Getter
@Setter
private int step = 1;
private int errorCount = 0; @Override
public boolean peek(String message) {
require(message);
message = message.trim(); String goodsName = tryGetGoodsName(message);
if (goodsName != null) {
step = 2;
return true;
}
return NQuery.of("买").contains(message);
} @Override
public HandleResult<String> handleMessage(String userId, String message) {
require(userId, message); switch (step) {
case 1:
step = 2;
return HandleResult.ok("一一一一我 买 商 品一一一一\n" +
"亲,请回复如下格式:\n" +
"买********\n" +
"\n" +
"如:买苹果手机", this);
case 2:
String goodsName = tryGetGoodsName(message);
if (goodsName == null) {
return HandleResult.ok("一一一一我 买 商 品一一一一\n" +
"亲,回复格式错误,请回复如下格式:\n" +
"买********\n" +
"\n" +
"如:买苹果手机", ++errorCount > 2 ? null : this);
}
for (MediaType mediaType : new MediaType[]{MediaType.Taobao, MediaType.Jd}) {
FindAdvResult recommendAdv = findAdvCmd.getRecommendAdv(mediaType, goodsName, userId);
if (recommendAdv != null && recommendAdv.getFoundStatus() == AdvFoundStatus.Ok) {
return findAdvCmd.handleResult(userId, recommendAdv, null);
}
}
return findAdvCmd.noAdv();
}
return HandleResult.fail();
} private String tryGetGoodsName(String message) {
if (!message.startsWith(key)) {
return null;
}
return message.substring(1).trim();
}
}
f-li.cn的更多相关文章
- http://f.dataguru.cn/forum.php?mod=viewthread&tid=44212&fromuid=4771
http://f.dataguru.cn/forum.php?mod=viewthread&tid=44212&fromuid=4771
- 如何在Html的CSS中去除<li>标签前面小黑点,和ul、LI部分属性方法
div是很多人做网站都会用到的,但在显示效果时前面总是会有一个小黑点,这个效果很多人不想要,但又不知到如何去除,然而我们可以用以下方法来清除. 1.在CSS中写入代码.找到相关性的CSS,在..li和 ...
- 如何在Html的div+css中去除<li>标签前面小黑点,和ul、LI部分属性方法
div是很多人做网站都会用到的,但在显示效果时前面总是会有一个小黑点,这个效果很多人不想要,但又不知到如何去除,然而我们可以用以下方法来清除. 1.在CSS中写入代码.找到相关性的CSS,在..li和 ...
- 关于css中使用ul li的一些体会
参考网址:http://hi.baidu.com/july_leo/item/5237cd612070ae2668105b40 如何修改ul li的显示 ----------------------- ...
- 2018"百度之星"程序设计大赛 - 资格赛 A/B/E/F
调查问卷 Accepts: 505 Submissions: 2436 Time Limit: 6500/6000 MS (Java/Others) Memory Limit: 262144/ ...
- [HTML]去除li前面的小黑点,和ul、LI部分属性
[转] 对于很多人用div来做网站时,总会用到,但在显示效果时前面总是会有一个小黑点,这个令很多人头痛,但又找不到要源,其它我们可以用以下方法来清除.[HTML]去除li前面的小黑点,和ul.LI部分 ...
- HTML中的ul, ol,li , dl,dt, dd标签
ul: unordered lists ol: ordered lists li: Lists ol 有序列表. <ol><li>……</li><li> ...
- [HTML]去除li前面的小黑点,和ul、LI部分属性[转]
转摘自:http://blog.csdn.net/cqkxzyi/article/details/7606181 对于很多人用div来做网站时,总会用到,但在显示效果时前面总是会有一个小黑点,这个令很 ...
- Html中CSS之去除li前面的小黑点,和ul、LI部分属性方法
对于很多人用div来做网站时,总会用到,但在显示效果时前面总是会有一个小黑点,这个令很多人头痛,但又找不到要源,其它我们可以用以下方法来清除.1.在CSS中写入代码.找到相关性的CSS,在..li和. ...
- 02.lib-v1.js
/* Date: 2014-07-29 4:06:07 [PM] */ function StringBuilder() { this.strings = new Array, this.length ...
随机推荐
- delphi文件类型
1.DPR: Delphi Project文件,包含了Pascal代码.应用系统的工程文件2.PAS: Pascal文件,Pascal单元的源代码,可以是与窗体有关的单元或是独立的单元.3.DFM:D ...
- html生成pdf
/** * 生成pdf * @param string $html 需要生成的内容 */ function pdf($html='<h1 style="color:red"& ...
- 剑指offer---3、按之字形顺序打印二叉树
剑指offer---3.按之字形顺序打印二叉树 一.总结 一句话总结: |||-begin 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照 ...
- 怎么知道dll文件是哪个net版本
有时候经常需要查看.dll所使用的.net版本, 因为根本不知道它是使用了1.1还是2.0, 或者是3.0, 这个时候如果需要打开vs.net那又太麻烦, 所以经过长久的摸索, 我找到了一个比较简便的 ...
- echarts数据包坐标拾取工具
http://geojson.io/#map=4/37.20/103.45
- nginx支持http2协议
1.http2协议 HTTP 2.0 的主要目标是改进传输性能,实现低延迟和高吞吐量.从另一方面看,HTTP 的高层协议语义并不会因为这次版本升级而受影响.所有HTTP 首部.值,以及它们的使用场景都 ...
- python操作xls表
1.python读取excel中单元格内容为日期的方式 python读取excel中单元格的内容返回的有5种类型,即上面例子中的ctype: ? 1 ctype : 0 empty,1 string, ...
- tushare下载安装教程与版本更新步骤
使用前提 安装Python 安装pandas:pip install pandas 安装lxml:pip install lxml 下载安装 方式1:pip install tushare,如果安装网 ...
- ActionEnter cannot be resolved to a type
2014-6-13 23:50:57 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for ser ...
- [轉]关于CR0.WP
关于CR0.WP 我们知道CR0的WP位可以关闭内核写保护.他和页表的R/W位有关.Intel手册中的描述绕来绕去似乎一直没有说到重点. When the processor is in superv ...