组织竞价是party_bid移动应用开发项目要完成的第三部分功能,这部分要完成的功能主要是活动报名结束以后,对该活动开始竞价;每次竞价开始后,已经对该活动报过名的人可以发送短信“JJ+价格“到18601126251进行出价;如果短信格式正确并未出过价,会回发短信提示“恭喜!您已出价成功!”否则提示“重复报名!”
该部分功能主要可以分成数据存储,短信处理及视图显示三部分功能模块,其中数据存储是这部分的难点:
(1)数据存储结构采用把竞价人的姓名,手机号和价格存储到相应的“now_activity_name+biding_name”下,把“bid_name”和"bid_status"存储到“now_activity_name+竞价”下;
![](https://i-blog.csdnimg.cn/blog_migrate/7079f92cd2ce2d98acf4c82ab7f39769.jpeg)
数据存储部分的难点之一:“now_activity_name+竞价”数组里存储"bid_name"和"bid_status",其中“bid_name”是逐一递增的(即“竞价+i”,i是逐一递增的),因为i的增加是与“now_activity_name+竞价”数组长度的增加是同步的,所以我把“bid_name”存储成"竞价" + (bid_array.length + 1)的形式;
(2)短信处理模块:接收到竞价人的短信后,先检查竞价报名活动是否开始,如果未开始或已结束短信提示"对不起,活动尚未开始!"或"对不起,活动已结束!";如果活动正在进行,继续检查竞价人是否参与活动报名,未参与报名短信提示"对不起,您没有报名此次活动!";如果竞价人参与了该活动的报名,查看竞价人发送短信的格式是否正确,(即“JJ+价格”,价格是否是数字)如果错误则提示"格式不正确,请重发!";如果没有以上问题则继续检查参与竞价的人是否参与过本次竞价,如果没有短信提示"恭喜,您已出价成功!"否则提示"您已成功出价,请勿重复出价!"
在短信处理时接触到的函数:
isNaN(x):函数用于检查其参数是否为非数字值;
Number(x):Number(x)函数把对象的值转换为数字,如果对象的值无法转换为数字,那么函数Number(x)函数返回NaN。
parseInt()函数可解析一个字符串,并返回一个整数。parseInt(string,radix):string是要被解析的字符串,是必需项。radix是要解析的数字的基数,介于2到36之间。如果省略改参数或值为0则数字将以10为基数解析。如果以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。只有字符串中的第一个数字会被返回。如果字符串的第一个字符不能被转换为数字,那么 parseInt() 会返回 NaN。
(3)视图显示部分要注意一下两点:
处于竞价状态的竞价名底色显示为黄色;
当前竞价未结束前,活动列表页面的“创建活动”按钮不能点击;并且所对应的活动名称底色为黄色。