当前位置: 首页 > news >正文

顺德网站制作案例价格电商运营主要负责什么

顺德网站制作案例价格,电商运营主要负责什么,.flv 网站播放,wordpress站群搭建一、基本成员及功能实现 本项目主要由服务器,消费者,商家,外卖员组成。基本的功能如下。 对所有人: 1、可以注册登录 2、可以修改个人信息 3、可以销户 商家: 1、注册时需要填写售卖商品信息 2、可以修改商品信…

一、基本成员及功能实现

本项目主要由服务器,消费者,商家,外卖员组成。基本的功能如下。

对所有人:

1、可以注册登录

2、可以修改个人信息

3、可以销户

商家:

1、注册时需要填写售卖商品信息

2、可以修改商品信息对自己的商品增删改查

消费者:

1:可以查看商家列表并进入商家列表选购商品

2:可以查看购物车自己已经选购的商品

3:确认完购物车后将商品放入订单列表等待外卖员接单

4:10分钟还未接单将发消息给消费者让其重新下单

5:选购完商品后将选购信息发送给商家

外卖员:

1:可以查看订单列表

2:可以接单并派送

3:将外卖送给消费者后自动结单

服务器:

1:支持所有身份的登录注册功能,分类储存当前用户(商家、消费者、外卖员)

2:对外卖员:储存当前订单列表、需要时打印订单至终端

3:对消费者:支持多个用户同时在线选购以及购物车系统

4:对消费者:支持计时功能到达十分钟后无人接单自动取消订单并提示消费者重新下单

5:会记录所有订单的订单编号和结单时间

6:支持商家和消费者之间的订单传输功能

二、功能展示

参考视频:效果演示-CSDN直播

三、原理实现

1、数据库结构

        本项目使用sqlite数据库,在服务器端需要有一套比较完备的数据库结构。本次项目主要创建了四个不同的数据库,分别是:商家、其他人(消费者和外卖员)、购物车、订单记录。

        对于商家数据库来说,他必须有一个merchant表单用于记录商家用户的用户名和密码。商家的用户名就是商家店铺的名称。将用户名设为主键,不允许重复。每当一个商家注册时,需要填写自己出售的商品,数据库中会自动再创建一个名为该商家的表单用于存储出售的商品信息(商品名称及商品价格)。

        对于其他人来说,要有一个username表单用于记录外卖员和消费者的用户名,防止用户名重复。再创建消费者和外卖员两个表单分别存储用户名和密码。

        对于购物车,只需要当消费者添加商品进购物车时创建,再消费者确认购物车后删除。是一个比较动态的。

        对于记录来说,他会记录订单编号、确认订单时间、结束时间、消费者用户名和外卖员用户名。在确认订单后存入除了结束时间的其他内容,并将订单编号发给外卖员客户端。当外卖员结束订单后将结束时间填入。

2、超时机制

        在消费者确认订单后,会将订单存放在服务器的链表中,链表中有消费者用户名,商家用户名,下单时间、消费者客户端的信息结构体和套接字接口。在存入链表中会设置一个闹钟alarm。在设定时间到了之后向进程发送SIGALRM信号,然后使用signal函数捕捉这种信号后去遍历订单链表,给订单的消费者发信息并将超时的订单删掉。如果订单被外卖员接走,那么也会删除该订单。这样在遍历的时候也找不到要删除的订单,以实现超时机制。

3、信息交互

        本项目的信息交互非常多,这对信息的种类分类有着很高的要求。我是用的是类似tftp协议的信息传输方式,将信息的种类封装进一个字符数组中,然后在服务器端进行解码,并实现相应功能。

最后附上本次项目的主函数源码

int main(int argc, const char *argv[])
{if(signal(SIGALRM,handle)==SIG_ERR){perror("signal error:");return -1;}//打开所有的数据库sqlite3 *shangjialist=NULL;if(sqlite3_open("./shangjialist.db",&shangjialist)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(shangjialist));return -1;}sqlite3 *otherlist=NULL;if(sqlite3_open("./otherlist.db",&otherlist)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(otherlist));return -1;}sqlite3 *gouwuche=NULL;if(sqlite3_open("./gouwuche.db",&gouwuche)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(otherlist));return -1;}sqlite3 *recorder=NULL;if(sqlite3_open("./record.db",&recorder)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(otherlist));return -1;}//初始化所有的数据库init_sqlite(shangjialist,otherlist,recorder);int sfd=socket(AF_INET,SOCK_STREAM,0);if(sfd==-1){perror("socket error:");return -1;}int reuse = 1;if(setsockopt(sfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))==-1){perror("setsockaddr error:");return -1;}struct sockaddr_in sin;sin.sin_family=AF_INET;sin.sin_port=htons(SER_PORT);sin.sin_addr.s_addr=inet_addr(SER_IP);if(bind(sfd,(struct sockaddr*)&sin,sizeof(sin))==-1){perror("bind error:");return -1;}if(listen(sfd,128)==-1){perror("listen error:");return -1;}struct sockaddr_in cin;socklen_t socklen=sizeof(cin);int n=2;struct pollfd pfd[1024];pfd[0].fd=0;pfd[0].events=POLLIN;pfd[1].fd=sfd;pfd[1].events=POLLIN;while(1){int res=poll(pfd,n,-1);if(res==0){printf("manba out\n");return -1;}else if(res==-1&&errno!=4){perror("poll error:");return -1;}if(pfd[1].revents==POLLIN){int newfd=accept(sfd,(struct sockaddr*)&cin,&socklen);pfd[n].fd=newfd;pfd[n].events=POLLIN;n++;printf("[%s:%d:%d]已连接\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port),newfd);}if(pfd[0].revents==POLLIN){}for(int i=2;i<n;i++){if(pfd[i].revents==POLLIN){char buf[111]="";recvfrom(pfd[i].fd,buf,sizeof(buf),0,(struct sockaddr*)&cin,&socklen);short *type_point=(short*)buf;switch(ntohs(*type_point)){case 1001://消费者注册信息{char *name_point=buf+2;char *psd_point=buf+strlen(name_point)+3;char sbuf[111]="";if(new_member_other(otherlist,name_point,psd_point,"xiaofeizhe")!=0)//注册失败,用户名重复{strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}strcpy(sbuf,"success");send(pfd[i].fd,sbuf,sizeof(sbuf),0);printf("%s注册成功\n",name_point);break;}case 1002://消费者登陆成功后发来的信息,提示服务器将所有商家名称传给消费者{get_merchant(pfd[i].fd,shangjialist);break;}case 1003://消费者请求查看商家的所有商品{char *name_point=buf+2;get_table(pfd[i].fd,shangjialist,name_point);break;}case 1004:{char *name_point=buf+2;//用户名char *good_name_point=buf+strlen(name_point)+3;//商品名称char *mer_name_point=buf+strlen(name_point)+strlen(good_name_point)+4;//商家名称add_gouwuche(pfd[i].fd,shangjialist,gouwuche,name_point,good_name_point,mer_name_point);break;}case 1005://将购物车的信息发送给消费者等待确认信息{char *name_point=buf+2;get_table(pfd[i].fd,gouwuche,name_point);break;}case 1006://消费者发来确认信息{char *name_point=buf+2;char *mer_name_point=buf+strlen(name_point)+3;head=add_dingdan(head,name_point,mer_name_point,cin,pfd[i].fd);send_msg_to_mer(gouwuche,name_point,mer_name_point);del_gouwuche(gouwuche,name_point);break;}case 1007://修改密码信息{short *ide_point=(short *)(buf+2);char *name_point=buf+4;char *psd_point=buf+strlen(name_point)+5;short identity=ntohs(*ide_point);char sbuf[111]="";if(identity==0){if(update_info(otherlist,"xiaofeizhe",name_point,psd_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}}else if(identity==1){if(update_info(otherlist,"waimaiyuan",name_point,psd_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}}else if(identity==2){if(update_info(shangjialist,"merchant",name_point,psd_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}}else{strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}case 1008://销户{char sbuf[111]="";short *ide_point=(short *)(buf+2);short identity=ntohs(*ide_point);char *name_point=buf+4;if(del_user(shangjialist,otherlist,identity,name_point,pfd[i].fd)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");}send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}case 2001://商家注册信息{char sbuf[111]="";char *name_point=buf+2;char *psd_point=buf+strlen(name_point)+3;if(new_member_shangjia(shangjialist,name_point,psd_point)!=0){strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}strcpy(sbuf,"success");send(pfd[i].fd,sbuf,sizeof(sbuf),0);printf("%s注册成功\n",name_point);break;}case 2002://商家添加商品信息{char sbuf[111]="";char *name_point=buf+2;short *count_point=(short *)(buf+strlen(name_point)+3);char *good_name_point=buf+strlen(name_point)+5;short *price_point=(short *)(good_name_point+strlen(good_name_point)+1);if(new_good(shangjialist,name_point,count_point,good_name_point,price_point)!=0){strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}strcpy(sbuf,"success");send(pfd[i].fd,sbuf,sizeof(sbuf),0);printf("%s添加商品\n",name_point);break;}case 2003://商家修改商品前获取商品列表{char *name_point=buf+2;get_table(pfd[i].fd,shangjialist,name_point);break;}case 2004://商家增加商品{char sbuf[111]="";char *good_name_point=buf+2;char *price_point=buf+strlen(good_name_point)+3;char *name_point=buf+strlen(good_name_point)+strlen(price_point)+4;if(add_good(pfd[i].fd,shangjialist,good_name_point,price_point,name_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");}send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}case 2005://商家删除商品{char sbuf[111]="";char *name_point=buf+2;char *good_name_point=buf+strlen(name_point)+3;if(del_good(pfd[i].fd,shangjialist,name_point,good_name_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");}send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}case 2006://商家修改商品名称{char sbuf[111]="";char *name_point=buf+2;char *good_name_point=buf+strlen(name_point)+3;char *new_good_name_point=buf+strlen(name_point)+strlen(good_name_point)+4;if(update_good_name(shangjialist,name_point,good_name_point,new_good_name_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");}send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}case 2007://商家修改商品价格{char sbuf[111]="";char *name_point=buf+2;char *good_name_point=buf+strlen(name_point)+3;char *new_price_point=buf+strlen(name_point)+strlen(good_name_point)+4;if(update_good_price(shangjialist,name_point,good_name_point,new_price_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");}send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}case 2008://商家登录后将商家的信息存入链表{char *name_point=buf+2;add_sj(pfd[i].fd,cin,name_point);break;}case 3001://外卖员注册信息{char *name_point=buf+2;char *psd_point=buf+strlen(name_point)+3;char sbuf[111]="";if(new_member_other(otherlist,name_point,psd_point,"waimaiyuan")!=0)//注册失败,用户名重复{strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}strcpy(sbuf,"success");send(pfd[i].fd,sbuf,sizeof(sbuf),0);printf("%s注册成功\n",name_point);break;}case 3002://外卖员获取当前订单{get_dingdan(pfd[i].fd);break;}case 3003://确认订单后将大部分订单记录存入数据库{char *name_point=buf+2;char *ddname_point=buf+strlen(name_point)+3;save(recorder,name_point,ddname_point,pfd[i].fd);break;}case 3004://当结束订单后修改订单结束时间{char *ddnumb_point=buf+2;save2(recorder,ddnumb_point);break;}case 4001://登录信息{char *name_point=buf+2;char *psd_point=buf+strlen(name_point)+3;login(pfd[i].fd,shangjialist,otherlist,name_point,psd_point);break;}case 4002://退出消息{pfd[i].fd=-1;	printf("[%s:%d]已下线\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port));break;}}}}}return 0;
}

       

int main(int argc, const char *argv[])
{int sfd=socket(AF_INET,SOCK_STREAM,0);if(sfd==-1){perror("socket error:");return -1;}struct sockaddr_in sin;sin.sin_family=AF_INET;sin.sin_port=htons(SER_PORT);sin.sin_addr.s_addr=inet_addr(SER_IP);if(connect(sfd,(struct sockaddr*)&sin,sizeof(sin))==-1){perror("connect error:");return -1;}pid_t pid=fork();if(pid==0){//子进程,用于接受消息char buf[111]="";while(1){sleep(1);bzero(buf,sizeof(buf));recv(sfd,buf,sizeof(buf),0);if(strcmp(buf,"quit")==0){break;}printf("%s\n",buf);}exit(EXIT_SUCCESS);}else if(pid>0){while(1){printf("====================欢迎使用====================\n");printf("1登录\t2注册\t0退出\n");printf("请输入命令\n");int cmd;scanf("%d",&cmd);getchar();switch(cmd){case 1:{login(sfd);break;}case 2:{registe(sfd);break;}case 0:{kill(pid,SIGKILL);char buf[111]="";short *type_point=(short *)buf;*type_point=htons(4002);send(sfd,buf,sizeof(buf),0);close(sfd);wait(NULL);return 0;}default:{printf("输入有误\n");}}printf("请输入任意键清屏\n");while(getchar()!='\n');//system("clear");}}return 0;
}

http://www.ds6.com.cn/news/93767.html

相关文章:

  • 客户评价网站建设网站排名查询工具
  • 如何查询网站注册信息查询2020年可用好用的搜索引擎
  • wordpress 搜索不能用seo优化培训课程
  • 邯郸做wap网站建设免费网站开发平台
  • 杭州外贸网站建设重庆关键词排名推广
  • 证书兼职的人才网站电商网站平台
  • 海外网络推广招聘佛山seo网站排名
  • 网站开发公司需要投入什么资源在线优化网站
  • 微信app网站建设品牌传播推广方案
  • asp网站版权站长工具 seo查询
  • 网站导航建设注意事项郑州seo技术顾问
  • 网站制作案例图片西安seo网站优化
  • 动态网站设计用什么软件个人网站设计欣赏
  • 做国内贸易的网站培训课程网站
  • 做租赁的行业网站上海关键词优化排名软件
  • 百度上搜不到做的网站抄一则新闻四年级
  • 建网360 网站建设跨境电商网站开发
  • 手机网站开发合同范本百度推广二级代理商
  • jz做网站2024很有可能再次封城吗
  • 上海静安网站建设河南网络推广公司
  • 织梦网站提示保存目录数据时报陕西今日头条新闻
  • 如何自建网页百度seo权重
  • 淄博网站排名优化今日头条新闻推荐
  • 做网站都用什么工具seo关键词排名优化报价
  • 佛山外贸建站dw网页制作详细步骤
  • 怎么才能百度做网站百度关键词规划师入口
  • 购物app下载百度站长工具seo综合查询
  • 银川 网站建设电脑系统优化工具
  • 江苏建设厅施工员证报名网站十大嵌入式培训机构
  • 专业网站设计工作室无锡网站seo