让网站运营更简单
让搜索引擎更喜欢的网站
立即咨询
福利,定制网站送小程序, 名额有限,先到先得
我们的祖国地大物博,悠久的历史和多民族的特点为中国旅游吸引物构成,提供了得天独厚的优越条件由此,不少人以为有了这些天赋的国宝,我们的旅游事业就必然会取得成功然而,天时地利人和都具备的情况下,旅游行业仍然有不少问题亟待解决,市场的垄断,游客的素质文明等都将会使旅游业遭受巨大的打击和损失,为了尽可能的避免这种情况,我们急需要一款约束旅游行业的在线数据管理系统,用它来约束相关规章制度,让大家一起制定相关规范。
展,如今5G已经到来,所以随着我国高速的发展,市面上针对于旅游行业的管理软件还处于低水平状态,我国旅游业的三大系统之家(去哪儿,携程,途牛)所研发的系统各有千秋,但是确每每因为各种原因让人心生厌恶和痛恨。
因此市面上急需一款让年轻人有所依赖,有所喜欢的旅游行业的管理系统终端,这个系统完全可以解决相关痛点问题1.2 国外研究现状欧洲游成为出境游中的黑马中国旅游研究院数据表明,20
其中包含“一带一路”国家最多的东欧地区,出境人数占比整个欧洲最高,达到36%,增速最快超过20%凭借着迷人的自然风景,丰富的旅游资源国外政府主导着旅游产业,大力发展旅游行业生产总值比重已然超过传统的农牧业和采矿业。
国外网站的建设以专业定制化为主,和国内旅游网站开发模式有所不同,国外网站倾向于专业化做好旅游线路,主要的业务核心在于卖线路,围绕线路的归类、筛选、展示例如机票、酒店等,都包含在线路里面,而无需专门做“机票预订”、“酒店预订”等服务。
但受限于语言和币种等问题,国外的旅游网站往往不能很好的服务国内游客,并且国外的旅游网站色调单一,布局单调,无响应化设计,无国际化标签设计,导致部分中国游客青睐于国内网站欧盟在2001年开始实施“创建用户友好的个性化移动旅游服务”项目。
重视基础设施的建设和应用推广,并致力于打造一体化市场在智慧旅游应用方面,欧盟国公司在资助下协作开发智能导游软件,在借助全球定位系统和识别软件的基础上,还原古迹在全盛时期的样貌旅行路线规划软件也得到了广泛应用。
在智慧交通层面,为迎合自助游客需求,北美地区“游客自助导航”已经广泛应用 在智慧酒店建设方面,北美地区以满足客户智能化、人性化和信息化需求为导向,完善细节服务、优化管理流程、降低管理 运营成本1.3国内研究现状
由此可见,我国的网民数量仍然不断地在增长互联网普及率越来越高正是由于互联网信息技术的高速发展,在线旅游网站行业随之兴起我国第一家旅游网站于1996年创建,经过了十几年的摸索,已拥有具有一定资讯服务实力的旅游网站。
现今,随着电子商务的蓬勃发展,为旅游业的发展注入新活力,开辟了智慧营销新路径,通过建设网络智慧营销服务体系,创新旅游宣传平台,加强智慧旅游运营管理,从而逐步构建起完善的旅游智慧营销模式,不断提高旅游经济效益,促进智慧旅游发展。
为地区经济的快速发展带来了明显优势旅游电子商务改变了传统的旅游模式,给旅游产业带来了全新的发展模式,也给旅游者带来了更多更优质的服务,为旅游者增加了许多消费渠道,促进旅游企业和旅游者之间的沟通和交流,节约了旅游者大量的经济成本,也节省了时间。
旅游者可根据个人需求自主选择旅行内容,享受定制旅游服务此外,跟团游依然是旅游的最主要形式,但目的地跟团以及主题游、深度游等的增速也在明显上升,亲子游、家庭游、研学游等新业态也成为供应商们
截止8月1日,中国旅游研究院发布的《中国出境旅游增长14%。
根据中国文化和旅游部数据显示,2019年上半年,入境旅游人数预计达到7,269万人次,国际旅游收入为649亿美元,同比分别增长5%入境旅游上升趋势也是进一步稳固我国旅游业发展迅速,国内旅游、入境旅游、出境旅游全面发展。
,未来几年,旅游行业将会比现在更加热门,所以跻身旅游行业,完成对本系统的开发,将会给旅游业带来质的变化。
1.4黔南州地区特点及风俗文化黔南布依族苗族自治州是贵州省辖自治州,位于贵州省中南部,东与黔东南州相连,南与广西壮族自治区毗邻,西与安顺市、黔西南州接壤,北靠省会贵阳市;处于贵州高原向广西丘陵过渡的斜坡地带,地势北高南低,地处东亚季风区。
全州总面积26197平方千米,辖2个县级市、9个县、1个自
唐朝之后,中央政府加强了对少数民族的统治,唐宋元明时期在州境内设立了多个羁縻府、州、县、峒、卫、所元代,黔南开始推行土司制度,境内分属于八番顺元等处宣慰都元帅府、都云定云安抚司、新天葛蛮安抚司、播州宣慰司和庆云南丹安抚司,至明代建省前,黔南地域主要设置了卫所军事机构,黔南分属于贵州卫、龙里卫、平越卫、都云卫、新添卫、定番州、广顺州等。
明弘治年间,贵州推行“改土归流” ,部分土司统治地区改设府县,如都匀府、新贵县、贵定县和荔波县等雍正四年,清政府在黔南境内强行大规模推行“改土归流”,废除土司世袭制度的安抚司、长官司等,而代之以流官统治,撤销了“卫所”等军事地域,将其并入府州厅县等行政地域,黔南地区分属于贵阳府、都匀府、独山州和平越直隶州。
民国三年(1914年),将清代的府州厅县一律改称为县民国二十四年(1935年),国民党中央政府入主贵州,改设行政督察区,黔南州地域分属于第一、第七和第十一行政督察区,第一行政督察专员公署驻定番县(今惠水县),辖今惠水、龙里、罗甸、长顺等县,第七行政督察区专员公署设在平越县(今福泉县),辖今福泉、贵定和瓮安等县市,第十一行政督察区专员公署设在独山县,辖今独山、都匀、平塘、荔波和三都等县市。
之时的瓮安、贵定、龙里、惠水和长顺等县隶属贵阳专区。
1952年,独山专区改称都匀专区,贵阳专区改称贵定专区,专员公署移驻贵定,撤销惠水县,改设惠水县夷族苗族自治区1954年,改称惠水县布依族苗族自治区,这是黔南境内设置的第一个民族自治区同年,罗甸县也改设罗甸县布依族自治区。
至黔南布依族苗族自治州成立前夕,都匀、三都、独山、平塘、荔波、福泉六县隶属都匀专区;贵定、龙里、瓮安、长顺、惠水、罗甸六县隶属贵定专区1956年8月8日,设立黔南布依族苗族自治州,自治州人民委员会驻都匀县。
1957年1月2日,由三都县及荔波、都匀、榕江、独山等县部分地区合并设立三都水族自治县1958年,撤销都匀县,改设都匀市自治州人民委员会驻都匀市将惠水县划归贵阳市领导;安龙、镇宁2县划归安顺专区;原属安顺专区的瓮安、贵定2县划入黔南布依族苗族自治州。
撤销荔波县,并入独山县;撤销平塘县,并入独山、罗甸2县;撤销紫云县,并入望谟、长顺2县;撤销贞丰县,并入兴仁县;撤销册亨县,并入安龙县黔南布依族苗族自治州辖1市、6县、1自治县1961年,恢复荔波、平塘、紫云、龙里、福等5县。
黔南布依族苗族自治州辖1市、11县、1自治县1962年,撤销都匀市,恢复都匀县黔南布依族苗族自治州辖12县、1自治县1963年,原属贵阳市领导的惠水县和原属安顺专区的贞丰、册亨(驻者楼)、安龙3县划入黔南布依族苗族自治州。
5年将安龙、贞丰、册亨、望谟4县划归兴义专区;紫云县划归安顺专区黔南布依族苗族自治州辖11县、1自治县1966年,复设都匀市黔南布依族苗族自治州人民委员会驻都匀市辖1市、11县、1自治县。
1996年,撤销福泉县,设立县级福泉市,以原福泉县的行政区域为福泉市的行政区域趋势2.1旅游行业的发展青年正在成长的途中,一切还不确定;而旅行也是在路上,途中充满许多不确定性正因为如此,旅行对青年充满了吸引力。
旅行就是经历和体验,而青年缺乏的恰恰是丰富的经历和体验,青年如果因其年轻而纵向的经历有限,那么,横向的经历——出游,则弥补了其纵向经历的不足因此,旅行不但是在开阔青年的视野,而且是在促成青年的成长根据T
5个百分点国人旅游呈年轻化趋势2.2旅游业待解决的问题根据《“十三五”旅游业发展规划》,“十三五”期间,我国旅游总收入年均增长11%以上,处于黄金发展期。
不过,旅游业的发展也面临不少挑战:旅游业发展与综合执法的要求不适应、旅游基础设施和公共服务明显滞后、游客和从业人员文明素质亟待提升,这些问题都需要在“十三五”期间重点加以解决开发工具简介3.1 eclipse与jdk简述
Jdk是Java Development Kit 的简称,是由SunMicrosystems针对Java开发员的产品,提供了开发语言环境和开发语言工具包它在1997-09-12发布了第一个版本,给它命名为Sparkler(宝石
Jdk每个版本都有自己的特性,由于jdk在1.8版本之后,不在是免费授权,所以本次开发,我们采用jdk1.8版本的免费授权版本来作为我们的开发工具Jdk1.8是目前主流公司非常推荐的版本之一,它具有以下特点:。
Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可新增lambda表达式提供函数式接口Java 8 允许你使用关键字来传递方法或者构造函数引用我们可以直接在lambda表达式中访问外层的局部变量。
所以本次开发中,我们采用jdk1.8版本来进行开发Eclipse是基于jdk的代码编辑器,它也是一个开发工具,主要用于我们的代码编写,错误纠错,错误语法提醒以及代码高亮显示等功能Eclipse从2006年起,Eclipse基金会每年都会安排同步发布(simultaneous release)。
tomcat的快速使用
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。
因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。
不过,Tomcat处理静态HTML的能力不如Apache服务器目前Tomcat最新版本为9.0.27tomcat的使用非常
如图所示:图(1)tomcat首页3.3 数据库选择方案与对比目前市面上主要的数据库包含了关系型数据库和非关系型数据库,其中关系型数据库包含了mysql、sqlserver、oracle、sqllite等;非关系型数据库主要有redis、mongdb这两种。
在本次开发中,我们将选择采用关系型数据库mysql来作为我们的数据存储方案,采用非关系型数据库redis来作为我们的缓存存储方案MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。
MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
redis是一个key-value存储系统和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的在此基础上,redis支持各种不同方式的排序与memcached一样,为了保证效率,数据都是缓存在内存中。
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步Redis 是一个高性能的key-value数据库 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。
它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便Redis支持主从同步数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。
这使得Redis可执行单层树复制存盘可以有意无意的对数据进行写操作由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录同步对读取操作的可扩展性和数据冗余很有帮助。
4、需求分析与代码编写4.1系统详细需求说明书构建为了开发需要,我们需要构建详细的需求说明书来构建我们的系统,所以下表将会针对具体的需求做出说明和介绍。表(1)
4.2 系统数据库设计方案4.2.1数据库命名规范数据库命名要做到见名知义,不能以中文或者中文拼音来命名,数据库编码格式均采用utf-8amp4编码,其他编码不适合中文如一个英文单词不能表达其意思,可以下划线分割多个单词,最长不超过50个字符。
4.2.2数据表命名规范数据表的命名规则同数据库命名规则相同,但仍需保持一定的原则,如某一个字段能用smallint,绝不用int,能用char绝不用varchar,原则保持存储空间最小原则命名一张数据表至少包含一个主键,不得少于两个字段,存储引擎均采用innodb引擎。
4.2.3 数据表设计表(2)
表(3)
表(4)
表(5)
表(6)
4.3 核心代码汇总4.3.1 基本配置信息汇总undertow.devMode=truejboot.server.type=undertowundertow.host=localhostundertow.port=8083
undertow.session
undertow.gzip.minLength=1024undertow.resourcePath=classpath:templatejboot.cache.type=redisjboot.cache.redis.hos
jboot.cache.redis.password=jboot.cache.redis.port=6379jboot.cache.redis.database=10jboot.datasource.druid.name=druid
jboot.datasource.factory=druidjboot.datasource.filters=stat,wall,lo
jboot.datasource.encryptionType=encryptionjboot.datasource.publicKey=jboot.datasource.name=tourjboot.datasource.type=mysql
jboot.datasource.uharacterEncoding=utf8&useSSL=true&serverTimezone=UTC
er;import java.util.ArrayList;import java.util.List;import java.util.Map;
boot;
import io.jboot.web.controller.JbootController;import io.jboot.web.controller.annotation.RequestMapping;
@RequestMapping("/login/api")public class LoginController extends JbootController {public JSONObject result = new JSONObject();
/** 系统后台登录 ***/ public void adminLogin() { String userName = getPara("userName"); String passWord = getPara("passWord");
if (StrUtil.isAllBlank(userName)) { result.put("code", -1); result.put("msg", "用户名不能为空"); renderJson(result);
return; } if (StrUtil.isAllBlank(passWord)) { result.put("code", -1); result.put("msg", "密码不能为空");
renderJson(result); return; } String sql = "select * from tour_admin_info where 1=1 and name=#para(userName) and pwd =#para(passWord) and flag=0 ";
Record re = Db.templateByString(sql, Kv.by("userName", userName).set("passWord", passWord)).findFirst();
if (re == null || re.getColumns().size() == 0) { result.put("code", -1); result.put("msg", "此用户尚未被启用或者此用户不存在");
renderJson(result); return; } result.put("code", 0); result.put("msg", "获取成功"); result.put("data", re);
Jboot.getCache().put("adminList", re.getStr("id"), re);// 把当前登录用户封装到缓存中 renderJson(result); } /***** 系统前端登录 ********/
public void frontLogin() { String userName = getPara("userName"); String passWord = getPara("passWord");
if (StrUtil.isAllBlank(userName)) { result.put("code", -1); result.put("msg", "用户名不能为空"); renderJson(result);
return; } if (StrUtil.isAllBlank(passWord)) { result.put("code", -1); result.put("msg", "密码不能为空");
renderJson(result); return; } String sql = "select * from tour_admin_info where 1=1 and name=#para(userName) and pwd =#para(passWord) and flag=1 ";
Record re = Db.templateByString(sql, Kv.by("userName", userName).set("passWord", passWord)).findFirst();
if (re == null || re.getColumns().size() == 0) { result.put("code", -1); result.put("msg", "此用户尚未被启用或者此用户不存在");
renderJson(result); return; } result.put("code", 0); result.put("msg", "获取成功"); result.put("data", re);
Jboot.getCache().put("clientUserList", re.getStr("id"), re);// 把当前登录用户封装到缓存中 renderJson(result); }
/******** 系统前端注册 **********/ public void frontRegedit() { String userName = getPara("userName"); String passWord = getPara("passWord");
if (StrUtil.isAllBlank(userName)) { result.put("code", -1); result.put("msg", "用户名不能为空"); renderJson(result);
return; } if (StrUtil.isAllBlank(passWord)) { result.put("code", -1); result.put("msg", "密码不能为空");
renderJson(result); return; } String sql = "select * from tour_admin_info where 1=1 and name=#para(userName) and flag=1 ";
Record re = Db.templateByString(sql, Kv.by("userName", userName)).findFirst(); if (re != null) { result.put("code", -1);
result.put("msg", "用户名已存在,请登录"); renderJson(result); return; } sql = "insert into tour_admin_info (name,pwd,status,flag,create_time) "
+ "values (#para(userName),#para(passWord),1,1,now()) "; int code = Db.templateByString(sql, Kv.by("userName", userName).set("passWord", passWord)).update();
if (code == 1) { result.put("code", 0); result.put("msg", "注册成功,登录账户" + userName + ";登录密码" + passWord);
renderJson(result); return; } else { result.put("code", 0); result.put("msg", "注册失败,请重试"); renderJson(result);
return; } } public void update() { String json = getRawData(); JSONObject jsonObj = JSONUtil.parseObj(json);
String sql = "update tour_admin_info set "; sql += "name=#para(name),pwd=#para(pwd),email=#para(email),phone=#para(phone),havor=#para(havor) where 1=1 and id = #para(id)";
Db.templateByString(sql, Kv.by("id", jsonObj.getStr("id")).set("name", jsonObj.getStr("name")).set("pwd", jsonObj.getStr("pwd"))
.set("email", jsonObj.getStr("email")).set("phone", jsonObj.getStr("phone")) .set("havor", jsonObj.getStr("havor")))
.update(); Record re = Db.templateByString("select * from tour_admin_info where 1=1 and id = #para(id)",
Kv.by("id", jsonObj.getStr("id"))).findFirst(); result.put("code", 0); result.put("data", re); result.put("msg", "更新成功");
renderJson(result); } public void getList() { String sql1 = "select * from tour_admin_info where 1=1 and `flag`=#para(flag) limit #para(page),#para(pagesize)";
String sql2 = "select count(*) from tour_admin_info where 1=1 and `flag`=#para(flag) limit #para(page),#para(pagesize)";
int page = getParaToInt("page"); int pagesize = getParaToInt("limit"); int flag = getParaToInt("flag");
page = (page - 1) * pagesize; List li = new ArrayList<>(); List lis = Db.templateByString(sql1, Kv.by("page", page).set("pagesize", pagesize).set("flag", flag))
.find(); int count = Db.templateByString(sql2, Kv.by("page", page).set("pagesize", pagesize).set("flag", flag))
.queryInt(); for (Record re : lis) { Map m = re.getColumns(); li.add(m); } result.put("code", 0);
result.put("msg", "获取成功"); result.put("total", count); result.put("data", li); renderJson(result);
} public void del() { String json = getRawData(); JSONObject jsonObj = JSONUtil.parseObj(json); String sql = "delete from tour_admin_info where 1=1 and id = #para(id) ";
Db.templateByString(sql, Kv.by("id", jsonObj.getStr("id"))).update(); result.put("code", 0); result.put("msg", "删除成功");
renderJson(result); }}
import io.jboot.web.controller.JbootController;import io.jboot.web.controller.annotation.RequestMapping;
@RequestMapping("/front/api")public class FrontController extends JbootController {public JSONObject result = new JSONObject();
public void getSences() { String sql = "select * from tour_context_info where 1=1 and `type`=0"; List lis = Db.templateByString(sql).find();
result.put("data", lis); renderJson(result); } public void getJd() { String sql = "select * from tour_context_info where 1=1 and `type`=1";
List lis = Db.templateByString(sql).find(); result.put("data", lis); renderJson(result); }
public void getCs() { String sql = "select * from tour_context_info where 1=1 and `type`=2"; List lis = Db.templateByString(sql).find();
result.put("data", lis); renderJson(result); } public void goBuy() { String json = getRawData(); JSONObject jsonObj = JSONUtil.parseObj(json);
String sql = "insert into tour_order_info (name,flag,pay_time,create_time,foreign_context_id,user_id,num,prices,ydsj) "
+ "values (#para(name),#para(flag),now(),now(),#para(foreignId),#para(userId),#para(num),#para(prices),#para(ydsj))";
Db.templateByString(sql, Kv.by("name", jsonObj.getStr("name")).set("flag", jsonObj.getStr("flag"))
.set("foreignId", jsonObj.getStr("foreignId")).set("userId", jsonObj.getStr("userId")) .set("num", jsonObj.getStr("num")).set("prices", jsonObj.getStr("prices"))
.set("ydsj", jsonObj.getStr("ydsj"))) .update(); result.put("code", 0); result.put("msg", "支付成功");
renderJson(result); } public void getJdInfoById() { String json = getRawData(); JSONObject jsonObj = JSONUtil.parseObj(json);
String sql = "select * from tour_context_info where 1=1 and `type`=1 and id = #para(id)"; String sql1 = "select p.*,GROUP_CONCAT(k.content) as ct,GROUP_CONCAT(k.server_value) as serverValue,GROUP_CONCAT(k.hj_value) as hjValue,GROUP_CONCAT(k.name) as userName,GROUP_CONCAT(k.havor) as havor from tour_hotour_info p "
+ "left join (select m.*,a.name,a.havor from tour_pj_info m left join tour_admin_info a on m.user_id=a.id where 1=1 and m.flag=1) k on p.id=k.foreign_id where 1=1 and p.foreign_id=#para(id) group by p.id";
List fjList = Db.templateByString(sql1, Kv.by("id", jsonObj.get("id"))).find(); Record re = Db.templateByString(sql, Kv.by("id", jsonObj.get("id"))).findFirst();
result.put("data", re); result.put("fjList", fjList); renderJson(result); } public void getOrder() {
String json = getRawData(); JSONObject jsonObj = JSONUtil.parseObj(json); String sql = "select * from tour_order_info where 1=1 and user_id = #para(userId) ";
List fjList = Db.templateByString(sql, Kv.by("userId", jsonObj.get("userId"))).find(); result.put("data", fjList);
renderJson(result); } public void writePj() { String json = getRawData(); JSONObject jsonObj = JSONUtil.parseObj(json);
String sql = "insert into tour_pj_info (content,server_value,hj_value,foreign_id,flag,create_time,user_id) values ("
+ "#para(content),#para(serverValue),#para(hjValue),#para(foreignId),#para(flag),now(),#para(userId))";
String sql1 = "update tour_order_info set sfpj=T where 1=1 and id=#para(orderId)"; Db.templateByString(sql1, Kv.by("orderId", jsonObj.get("orderId"))).update();
Db.templateByString(sql, Kv.by("content", jsonObj.get("content")).set("serverValue", jsonObj.get("serverValue"))
.set("foreignId", jsonObj.get("foreignId")).set("userId", jsonObj.get("userId")) .set("hjValue", jsonObj.get("hjValue")).set("flag", jsonObj.get("flag")))
.update(); result.put("code", 0); result.put("msg", "评价成功"); renderJson(result); } public void getPjByFjId() {
String json = getRawData(); JSONObject jsonObj = JSONUtil.parseObj(json); String sql = "select p.*,a.* from tour_pj_info p left join tour_admin_info a on p.user_id=a.id where 1=1 and p.flag=1 and p.foreign_id=#para(foreignId) ";
List data = Db.templateByString(sql, Kv.by("foreignId", jsonObj.get("foreignId"))).find(); result.put("data", data);
renderJson(result); }}5、测试与上线5.1编写测试用例表(7)
5.2系统存在的问题经过这一系列的开发,系统还是存在一定的缺陷和问题,还有很多技术层面的功能尚未实现本系统功能还有待完善,针对当前功能测试用例还不够完善,功能缺陷比较明显,无法投入实际生产线上进行使用系统在设计之初,未考虑相关综合性问题,比如并发问题,数据一致性问题,以及线程死锁问题,都需要进行系统性的测试和开发,方可使用。
5.3 系统发布上线流程图图(2)系统发布流程图6、总结通过本次开发和研究,发现了自己的知识的欠缺,于此同时也学到了很多相关经验,在遇到问题时,可以根据现有情况来查找资料,这让我学会了人生的第一课,学会利用手中的工具来得到自己的答案。
也非常感谢我的老师和同学,在我最无助的时候援助了我,给我于帮助,完成了本次论文,我相信,在人生的道路上,仍会会有很多坎坷等着我,仍然会有很多的艰难险阻等着我,但是,我相信,经过本次的实践,使我有勇气面对未来的挫折。
本次论文所实现的的程序功能还有很多不足,缺陷也有很多,但是却让我学到了相关的知识,如html、js、css等前端页面绘制的语言,还有后台java、servlet等相关的动态语言,使我对未来的程序发展之路更加顺畅。
7、致谢在此要感谢我的指导老师对我悉心的指导,感谢老师给我的帮助在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。
而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益大学四年就会在这最后的毕业设计总结划上一个圆满的句号.我曾经以为时间是一个不快不慢的东西,但现在我感到时间过的是多么的飞快,三年了,感觉就在一眨眼之间结束了我的大学生涯.毕业,最重要的一个过程,最能把理论知识运用到实践当中的过程就数毕业设计了,这也是我们从一个学生走向社会的一个转折,另一个生命历程的开始。
8、参考文献李泽群.旅游电子商务网站评价体系研究[D].海口:海南大
国务院.国务院关于促
汪美.“
中国互联网络信息中心《中国互联网络发展状况统计报告》桂路芬,吴菲,魏霞.基于java的旅游管理系统设计[J].通讯世界
刘京华. Java Web整合开发王者归来[M]. 北京:清华大学出版社,2010张孝祥. 深入Java Web开发内幕——核心基础[M]. 北京:电子工业出版社. 2006孙卫琴,李洪成. Tomcat 与 Java Web 开发技术详解[M]. 电子工业出版社,2003.6:1-205
萨师煊,王珊. 数据库系统概论[M]. 高等教育出版社,2002.2:3-460Bruce Eckel. Thinking in Java[M]. Upper Saddle River, New Jersey, USA: Prentice Hall, 2006
LEE ANNE PHILLIPS. 巧学活用HTML4[M].电子工业出版社,2004.8:1-319
本文图文来源于网络,版权属于原作者或网站,内容为作者观点,内容版权归原作者所有、本站不对文章中的任何观点负责,内容只用于提供信息阅读,无任何商业用途。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站(文章、图片、音频、视频)有涉嫌抄袭侵权/违法违规的内容,请联系管理员,一经查实,将立刻删除、维护您的正当权益。
扫一扫,关注我们