外卖订单生成分析

http://192.168.1.126/store.php?ctl=tview&act=menuorder
module:app/Lib/store/tviewModule.class.php
action:menuorder
提交参数
sid(商户id):9
contacter(联系人):王五
sex(性别):1
tel(联系电话):13012345678
address(地址):测试地址
msg(留言):留言


public function menuorder()
{
convert_req($_REQUEST);
$return = array("status"=>0,"message"=>"");

if($GLOBALS['user_info']) {
$return['status']=1;
$sid = intval($_REQUEST['sid']);

//判断餐厅id
if($sid==0){
$return['status']=0;
$return['message']="请选择餐厅!";
ajax_return($return);
}

//获取餐厅实体
$store_info = $GLOBALS['db']->getRowCached("select takeaway_price,takeaway_nums,takeaway_tel from ".DB_PREFIX."supplier_location where id = ".$sid." and is_effect = 1");

//不存在则退出
if(!$store_info)
exit();

$data['supplier_location_id'] = $sid;
$data['user_id'] = $GLOBALS['user_info']['id'];

//获取该餐厅所有菜单
$templist = $GLOBALS['db']->getAllCached("SELECT id,name,price FROM ".DB_PREFIX."supplier_location_menu WHERE supplier_location_id=".$sid." ORDER BY id DESC");
$list = array();
$all_nums = 0;
$all_price = 0;

//从session中获取用户的点菜信息
foreach($templist as $k=>$v){
$nums = es_session::get("cho_nums_".$v['id']);
if(intval($nums) > 0){
$templist[$k]['nums'] = $nums;
$list[]=$templist[$k];
$all_nums += $nums;
$all_price += $v['price'];
}
}

//判断起送金额
if(floatval($all_price) < floatval($store_info['takeaway_price'])){
$return['status']=0;
$return['message']="起送价格不够哦!";
ajax_return($return);
}

//判断起送份数
if(intval($all_nums) < intval($store_info['takeaway_nums'])){
$return['status']=0;
$return['message']="起送份数不够哦!";
ajax_return($return);
}

//开始表单验证
$data['contacter'] = htmlspecialchars(addslashes(trim($_REQUEST['contacter'])));
if($data['contacter']==""){
$return['status']=0;
$return['message']="请填写您的称呼!";
ajax_return($return);
}
$data['sex'] = intval($_REQUEST['sex']);

$data['tel'] = htmlspecialchars(addslashes(trim($_REQUEST['tel'])));
if($data['tel']==""){
$return['status']=0;
$return['message']="请填写您的联系电话!";
ajax_return($return);
}
$data['address'] = htmlspecialchars(addslashes(trim($_REQUEST['address'])));
if($data['address']==""){
$return['status']=0;
$return['message']="请填写您的送餐地址!";
ajax_return($return);
}
$data['msg'] = htmlspecialchars(addslashes(trim($_REQUEST['msg'])));
$data['create_time'] = get_gmtime();

//提交间隔判断
if(!check_ipop_limit(get_client_ip(),"store_torder",intval(app_conf("SUBMIT_DELAY")))){
ajax_return(array("status"=>false,"message"=>$GLOBALS['lang']['SUBMIT_TOO_FAST']));
}

//用户点菜信息序列化
if($list){
$data['cache_data'] = addslashes(serialize($list));
//生成外卖订单
do
{
$data['order_sn'] = to_date(get_gmtime(),"Ymdhis").rand(10,99);
$GLOBALS['db']->autoExecute(DB_PREFIX."takeaway_order",$data,'INSERT','','SILENT');
$order_id = intval($GLOBALS['db']->insert_id());
}while($order_id==0);

if($order_id > 0) {
//删除session中的菜单
foreach($list as $k=>$v) {
$nums = es_session::get("cho_nums_".$v['id']);
if(intval($nums) > 0){
$GLOBALS['db']->query("UPDATE ".DB_PREFIX."supplier_location_menu SET collect_nums = collect_nums + 1 WHERE id=".$v['id']);
}
es_session::delete("cho_nums_".$v['id']);
}


//发短信
if(app_conf("SMS_SEND_TAKEAWAY_STORE")==1 && $store_info['takeaway_tel']!=''){
$msg= "菜单:";
foreach($list as $kk=>$vv){
if($kk!=0)
$msg .=",";
$msg .= $vv['name']."×".$vv['nums'];
}

$msg .="。联系人:".$data['contacter'];
$msg .=",联系电话:".$data['tel'];
$msg .=",送餐地址:".$data['address'];
if($data['msg'])
$msg .=",备注:".$data['msg'];
$msg .= "。";

$msg_data['send_type'] = 0;
$msg_data['content'] = addslashes($msg);
$msg_data['send_time'] = 0;
$msg_data['is_send'] = 0;
$msg_data['create_time'] = get_gmtime();
$msg_data['user_id'] = intval($GLOBALS['user_info']['id']);
$msg_data['is_html'] = 0;
$msg_data['is_youhui'] = 4;
$msg_data['dest'] = $store_info['takeaway_tel'];
$GLOBALS['db']->autoExecute(DB_PREFIX."deal_msg_list",$msg_data,"INSERT"); //插入
}

$return['status']=1;
ajax_return($return);
}
else{
$return['status']=0;
$return['message']="处理数据失败!";
ajax_return($return);
}
}
else{
$return['status']=1;
ajax_return($return);
}
}
else{
//提示登录
$return['status']=2;
ajax_return($return);
}
}
1.简介 1.1目的   本文档是将系统在测试过程出现的问题陈列出来,使得开发人员清楚的知道系统中所存在的问题不足,从而加以改进,使系统更加健壮安全,增强系统的可运行性和可维护性。本文档的读者为开发人员和测试人员。 1. 2范围 本文档从编程人员编写代码开始就能使用,在用户登录系统、用户订餐系统、会员管理系统、订餐信息处理系统、菜式管理系统、系统用户管理系统等六大模块中均适用,在每一个模块都必须进行单元测试,到软件完整开发出来后进行综合测试。本文档将会解决测试问题、环境、结果、缺陷和评价等问题。 2. 测试内容 2.1 用户登录模块用户订餐系统会员管理系统订餐信息处理系统菜式管理系统 用户输入ID和密码,如验证无误便可登陆成功,在登陆状态下所做的定购额记入用户总积分。如果用户不登陆或为非会员,则定购额无法记入总积分。 2.2 用户订餐系统 用户首页上显示的菜式图片来点选自己喜欢的菜式和饭食,也可以对快餐进行分类查询。点选确认后放入虚拟购物车。可点选多样菜式。最后在虚拟柜台提交所有定购的物品,定购金额在10元以上才可提交,否则弹出对话框提示定购额不足。 2.3会员管理系统 对注册为会员的用户的信息进行管理。可以每月对会员进行积分排名,星级会员评定,以及对用户资料进行删除。 2.4 订餐信息处理系统 对订餐的信息进行管理和分类。将全天定餐信息显示在服务器端,分记录显示。记录分为两种状态:“未派送”和“已派送”。此系统的操作人员把刚刚送出的“未派送”记录进行标记,该记录则变为“已派送”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值