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

最低价做网站asp.net网站开发源码

最低价做网站,asp.net网站开发源码,大理高端网站建设,简单网站建设运营作者介绍#xff1a;✌️大厂全栈码农|毕设实战开发#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 #x1f345;获取源码联系方式请查看文末#x1f345; 推荐订阅精彩专栏 #x1f447;#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目… 作者介绍✌️大厂全栈码农|毕设实战开发专注于大学生项目实战开发、讲解和毕业答疑辅导。 获取源码联系方式请查看文末  推荐订阅精彩专栏 避免错过下次更新 Springboot项目精选实战案例 更多项目CSDN主页YAML墨韵 学如逆水行舟不进则退。学习如赶路不能慢一步。 目录 一、项目简介 二、开发技术与环境配置 2.1 微信小程序 2.2 Java语言简介 2.3 uni-app 2.4 mysql数据库介绍 2.5 B/S架构 三、系统功能实现 1、登录流程图 2、系统结构 3、数据库设计表 四、系统项目截图 4.1 小程序会员模块的实现 4.1.1 系统首页 4.1.2 我的菜单 4.1.3 景点购票 4.2、后台模块的实现 4.2.1 用户信息管理 4.2.2 旅游景点管理 4.2.3 景区活动管理 五、论文参考 六、核心代码 6.1、文件上传 6.2、数据库配置 6.3、登录功能实现 6.4、业务层Service 6.5、数据访问层Dao 一、项目简介 《微信小程序智慧旅游平台》是一款依托微信小程序打造的便捷旅游服务平台。 该平台充分利用微信小程序的便捷性和高普及度为用户提供全方位的智慧旅游体验。用户无需下载安装繁琐的 App只需在微信中轻松打开小程序即可随时随地开启旅游之旅。 在功能方面平台提供丰富的旅游信息包括热门景点介绍、特色美食推荐、旅游攻略分享等。用户可以根据自己的兴趣和需求快速找到适合自己的旅游目的地和游玩方案。同时平台还具备实时导航功能帮助用户准确找到景点位置避免迷路。 对于旅游商家来说该平台也是一个高效的推广渠道。商家可以在平台上展示自己的产品和服务吸引更多游客。平台还支持在线预订功能方便用户提前预订门票、酒店等旅游产品提高旅游的便利性和计划性。 总之微信小程序智慧旅游平台以其便捷、实用、智能的特点为用户和旅游商家带来全新的旅游体验推动旅游行业的智能化发展。 二、开发技术与环境配置 语言Java   使用框架UNIAPP||Spring Boot/SSM   前端技术JS、Vue 、css3   开发工具IDEA||微信开发者工具   数据库MySQL 5.7/8.0   数据库管理工具phpstudy/Navicat   JDK版本jdk1.8   Maven: apache-maven 3.8.1-bin   前端环境Node.Js 12\14\16 2.1 微信小程序 小程序是一种新的开放能力开发者可以快速地开发一个小程序。小程序可以在微信内被便捷地获取和传播同时具有出色的使用体验。尤其拥抱微信生态圈让微信小程序更加的如虎添翼发展迅猛。 2.2 Java语言简介 Java是由SUN公司推出该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景它是面向对象的分布式的动态的具有平台无关性、安全性、健壮性。Java语言的基本语句语法和C一样但是它面向对象的技术更加彻底因为Java要求将所有的内容都必须封装成类把类作为程序的基本单位。由于不允许类外有变量、方法。 Java语言的分布式体现在数据分布和操作分布它是面向网络的语言可以处理TCP/IP协议它也支持客户机/服务器的计算模式。Java语言的动态性是指类在运行时是动态安装的使得Java可以动态的维护程序。Java不支持指针对内存访问的所有操作都是通过对象实例化实现的这样就避免了指针操作中易产生的错误同时也预防了病毒对系统的破坏和威胁。 Java语言的编程风格与C语言非常接近它继承了C面向对象技术的核心它面世之后发展迅速非常流行对高级C语言形成了很大的冲击。业内人士称之为“一次编译、到处执行”。当然java也有缺点在每次执行编译后字节码都需要消耗一定的时间在某些程度上降低了性能。但是这并不影响java成为此次设计语言的选择。Java语言简单易学使用它的编程时间短功能性强开发者学习起来更简便、更快。Java的主要特性有以下几个 面向对象 面向对象有四个特点封装、继承、多态、抽象。抽象是指忽略一个问题中的次要部分关注主要部分。多态是指对同一种消息做出的不同反应。继承是指在原有的父类方法基础上增加自己独有的方法而不改变原来父类。 平台无关性、 Java编译出来的是字节码直接由虚拟机执行。在任何平台上只要有Java虚拟机Java代码都能运行。 可靠性和安全性 Java对内存的访问都必须通过对象的实例变量来实现避免了指针中出现的错误。 多线程 Java提供了多线程功能利用编程实现同一时间同时工作的功能。 2.3 uni-app uni-app 是一个使用 Vue.js 开发所有前端应用的框架开发者编写一套代码可发布到iOS、Android、Web响应式、以及各种小程序微信/支付宝/百度/头条/QQ/钉钉/淘宝、快应用等多个平台。 DCloud公司拥有800万开发者、数百万应用、12亿手机端月活用户、数千款uni-app插件。 uni-app在手做啥都不愁。即使不跨端uni-app也是更好的小程序开发框架更好的App跨平台框架、更方便的H5开发框架。不管领导安排什么样的项目你都可以快速交付不需要转换开发思维、不需要更改开发习惯。 2.4 mysql数据库介绍 利用MYSQL的数据独立性、安全性等特点在软件项目中对数据进行操作可以保证数据准确无误并降低了程序员的应用开发时间。 MYSQL的特点是支持多线程能方便的对系统资源充分利用有效提高速度还提供多种方式途径来对数据库进行连接MYSQL的功能相对弱小、规模也小但本系统要求不高MYSQL完全可以满足本系统使用。 利用MYSQL建立系统数据库不仅有利于数据处理业务的早期整合还能利于发展后两种数据扩展的操作。 2.5 B/S架构 B/S结构是目前使用最多的结构模式它可以使得系统的开发更加的简单好操作而且还可以对其进行维护。使用该结构时只需要在计算机中安装数据库和一些很常用的浏览器就可以了。浏览器就会与数据库进行信息的连接可以实现很多的功能B/S结构是可以直接进行使用的而且B/S结构在使用中极大的减少了工作的维护。基于B/S的软件所有的数据库之间都是相互独立的因此是非常安全的。因为基于B/S结构可以清楚的看到系统正在处理的业务并且能够及时的让管理人员做出决策这样就可以避免企业的损失。B/S结构的基本特点是集中式的管理模式用户使用系统生成数据后这些数据就可以存储到系统的数据库中方便日后能够用到这样就可以满足人们的所有的需求。 三、系统功能实现 1、登录流程图 2、系统结构 3、数据库设计表 用户表 字段类型是否为空默认注释id (主键)bigint(20)否主键addtimetimestamp否CURRENT_TIMESTAMP创建时间 yonghuming varchar(200) 否 用户名 mima varchar(200) 否 密码 xingming varchar(200) 是 NULL 姓名 touxiang varchar(200) 是 NULL 头像 xingbie varchar(200) 是 NULL 性别 shouji varchar(200) 是 NULL 手机 shenfenzheng varchar(200) 是 NULL 身份证 管理员用户表 字段类型是否为空默认注释id (主键)bigint(20)否主键 username varchar(100) 否 用户名 password varchar(100) 否 密码 role varchar(100) 是 管理员 角色 addtime timestamp 否 CURRENT_TIMESTAMP 新增时间 收藏表 字段类型是否为空默认注释id (主键)bigint(20)否主键addtimetimestamp否CURRENT_TIMESTAMP创建时间 userid bigint(20) 否 用户id refid bigint(20) 是 NULL 收藏id tablename varchar(200) 是 NULL 表名 name varchar(200) 否 收藏名称 picture varchar(200) 否 收藏图片 旅游资讯 字段类型是否为空默认注释id (主键)bigint(20)否主键 title varchar(200) 否 标题 introduction longtext 是 NULL 简介 picture varchar(200) 否 图片 content longtext 否 内容 addtimetimestamp否CURRENT_TIMESTAMP创建时间 留言板 字段类型是否为空默认注释id (主键)bigint(20)否主键 userid bigint(20) 否 留言人id username varchar(200) 是 NULL 用户名 content longtext 否 留言内容 reply longtext 是 NULL 回复内容 addtime timestamp 否 CURRENT_TIMESTAMP 创建时间 旅游景点 字段类型是否为空默认注释id (主键)bigint(20)否主键 jingdianmingcheng varchar(200) 否 景点名称 fenlei varchar(200) 否 分类 jingdiandizhi varchar(200) 是 NULL 景点地址 menpiaojiage int(11) 是 NULL 门票价格 jingdiantupian varchar(200) 是 NULL 景点图片 jingdiandengji varchar(200) 是 NULL 景点等级 kaifangshijian varchar(200) 是 NULL 开放时间 jingdianjieshao longtext 是 NULL 景点介绍 clicktime datetime 是 NULL 最近点击时间 clicknum int(11) 是 0 点击次数 addtime timestamp 否 CURRENT_TIMESTAMP 创建时间 景区活动 字段类型是否为空默认注释id (主键)bigint(20)否主键 fenlei varchar(200) 是 NULL 分类 jingdiandizhi varchar(200) 是 NULL 景点地址 huodongbiaoti varchar(200) 是 NULL 活动标题 jingdianmingcheng varchar(200) 是 NULL 景点名称 fengmiantu varchar(200) 是 NULL 封面图 huodongjieshao longtext 是 NULL 活动介绍 huodongneirong longtext 是 NULL 活动内容 huodongshijian varchar(200) 是 NULL 活动时间 faburiqi date 是 NULL 发布日期 addtime timestamp 否 CURRENT_TIMESTAMP 创建时间 景点购票 字段类型是否为空默认注释id (主键)bigint(20)否主键 fenlei varchar(200) 是 NULL 分类 jingdiantupian varchar(200) 是 NULL 景点图片 jingdiandizhi varchar(200) 是 NULL 景点地址 jingdianmingcheng varchar(200) 是 NULL 景点名称 menpiaojiage int(11) 是 NULL 门票价格 dingdanbianhao varchar(200) 是 NULL 订单编号 shuliang int(11) 是 NULL 数量 zongjine varchar(200) 是 NULL 总金额 goupiaoriqi date 是 NULL 购票日期 yonghuming varchar(200) 是 NULL 用户名 shouji varchar(200) 是 NULL 手机 shenfenzheng varchar(200) 是 NULL 身份证 sfsh varchar(200) 是 否 是否审核 shhf longtext 是 NULL 审核回复 ispay varchar(200) 是 未支付 是否支付 userid bigint(20) 是 NULL 用户id addtime timestamp 否 CURRENT_TIMESTAMP 创建时间 景点分类 字段类型是否为空默认注释id (主键)bigint(20)否主键 fenlei varchar(200) 否 分类 addtime timestamp 否 CURRENT_TIMESTAMP 创建时间 旅游景点评论表 字段类型是否为空默认注释id (主键)bigint(20)否主键 refid bigint(20) 否 关联表id userid bigint(20) 否 用户id nickname varchar(200) 是 NULL 用户名 content longtext 否 评论内容 reply longtext 是 NULL 回复内容 addtime timestamp 否 CURRENT_TIMESTAMP 创建时间 景区活动评论表 字段类型是否为空默认注释id (主键)bigint(20)否主键 refid bigint(20) 否 关联表id userid bigint(20) 否 用户id nickname varchar(200) 是 NULL 用户名 content longtext 否 评论内容 reply longtext 是 NULL 回复内容 addtime timestamp 否 CURRENT_TIMESTAMP 创建时间 四、系统项目截图 4.1 小程序会员模块的实现 4.1.1 系统首页 小程序用户是需要注册才可以进行登录的登录后在首页可以查看相关信息并且下面导航可以点击到其他功能模块 4.1.2 我的菜单 在小程序里点击我的会出现关于我的界面在这里可以修改个人信息以及可以点击其他功能模块 4.1.3 景点购票 用户可以对景点进行购票操作 4.2、后台模块的实现 4.2.1 用户信息管理 4.2.2 旅游景点管理 管理员可以对旅游景点信息进行添加修改删除操作 4.2.3 景区活动管理 管理员可以对景区活动信息进行添加修改删除操作 五、论文参考 六、核心代码 6.1、文件上传 /*** 上传文件映射表*/ RestController RequestMapping(file) SuppressWarnings({unchecked,rawtypes}) public class FileController{Autowiredprivate ConfigService configService;/*** 上传文件*/RequestMapping(/upload)public R upload(RequestParam(file) MultipartFile file,String type) throws Exception {if (file.isEmpty()) {throw new EIException(上传文件不能为空);}String fileExt file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(.)1);File path new File(ResourceUtils.getURL(classpath:static).getPath());if(!path.exists()) {path new File();}File upload new File(path.getAbsolutePath(),/upload/);if(!upload.exists()) {upload.mkdirs();}String fileName new Date().getTime().fileExt;File dest new File(upload.getAbsolutePath()/fileName);file.transferTo(dest);/*** 如果使用idea或者eclipse重启项目发现之前上传的图片或者文件丢失将下面一行代码注释打开* 请将以下的D:\\springbootq33sd\\src\\main\\resources\\static\\upload替换成你本地项目的upload路径* 并且项目路径不能存在中文、空格等特殊字符*/ // FileUtils.copyFile(dest, new File(D:\\springbootq33sd\\src\\main\\resources\\static\\upload/fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/if(StringUtils.isNotBlank(type) type.equals(1)) {ConfigEntity configEntity configService.selectOne(new EntityWrapperConfigEntity().eq(name, faceFile));if(configEntitynull) {configEntity new ConfigEntity();configEntity.setName(faceFile);configEntity.setValue(fileName);} else {configEntity.setValue(fileName);}configService.insertOrUpdate(configEntity);}return R.ok().put(file, fileName);}/*** 下载文件*/IgnoreAuthRequestMapping(/download)public ResponseEntitybyte[] download(RequestParam String fileName) {try {File path new File(ResourceUtils.getURL(classpath:static).getPath());if(!path.exists()) {path new File();}File upload new File(path.getAbsolutePath(),/upload/);if(!upload.exists()) {upload.mkdirs();}File file new File(upload.getAbsolutePath()/fileName);if(file.exists()){HttpHeaders headers new HttpHeaders();headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDispositionFormData(attachment, fileName); return new ResponseEntitybyte[](FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);}} catch (IOException e) {e.printStackTrace();}return new ResponseEntitybyte[](HttpStatus.INTERNAL_SERVER_ERROR);}} 6.2、数据库配置 server:tomcat:uri-encoding: UTF-8port: 8080servlet:context-path: /springbootr1tjfspring:datasource:driverClassName: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/springbootr1tjf?useUnicodetruecharacterEncodingutf-8useJDBCCompliantTimezoneShifttrueuseLegacyDatetimeCodefalseserverTimezoneGMT%2B8username: rootpassword: 123456# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseNamespringbootr1tjf # username: sa # password: 123456servlet:multipart:max-file-size: 10MBmax-request-size: 10MBresources:static-locations: classpath:static/,file:static/#mybatis mybatis-plus:mapper-locations: classpath*:mapper/*.xml#实体扫描多个package用逗号或者分号分隔typeAliasesPackage: com.entityglobal-config:#主键类型 0:数据库ID自增, 1:用户输入ID,2:全局唯一ID (数字类型唯一ID), 3:全局唯一ID UUID;id-type: 1#字段策略 0:忽略判断,1:非 NULL 判断),2:非空判断field-strategy: 2#驼峰下划线转换db-column-underline: true#刷新mapper 调试神器refresh-mapper: true#逻辑删除配置logic-delete-value: -1logic-not-delete-value: 0#自定义SQL注入器sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjectorconfiguration:map-underscore-to-camel-case: truecache-enabled: falsecall-setters-on-nulls: true#springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)jdbc-type-for-null: null 6.3、登录功能实现 package com.controller;import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.entity.TokenEntity; import com.entity.UserEntity; import com.service.TokenService; import com.service.UserService; import com.utils.CommonUtil; import com.utils.MPUtil; import com.utils.PageUtils; import com.utils.R; import com.utils.ValidatorUtils;/*** 登录相关*/ RequestMapping(users) RestController public class UserController{Autowiredprivate UserService userService;Autowiredprivate TokenService tokenService;/*** 登录*/IgnoreAuthPostMapping(value /login)public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user userService.selectOne(new EntityWrapperUserEntity().eq(username, username));if(usernull || !user.getPassword().equals(password)) {return R.error(账号或密码不正确);}String token tokenService.generateToken(user.getId(),username, users, user.getRole());return R.ok().put(token, token);}/*** 注册*/IgnoreAuthPostMapping(value /register)public R register(RequestBody UserEntity user){if(userService.selectOne(new EntityWrapperUserEntity().eq(username, user.getUsername())) !null) {return R.error(用户已存在);}userService.insert(user);return R.ok();}/*** 退出*/GetMapping(value logout)public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok(退出成功);}/*** 密码重置*/IgnoreAuthRequestMapping(value /resetPass)public R resetPass(String username, HttpServletRequest request){UserEntity user userService.selectOne(new EntityWrapperUserEntity ().eq(username, username));if(usernull) {return R.error(账号不存在);}user.setPassword(123456);userService.update(user,null);return R.ok(密码已重置为123456);}/*** 列表*/RequestMapping(/page)public R page(RequestParam MapString, Object params,UserEntity user){EntityWrapperUserEntity ew new EntityWrapperUserEntity();PageUtils page userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put(data, page);}/*** 列表*/RequestMapping(/list)public R list( UserEntity user){EntityWrapperUserEntity ew new EntityWrapperUserEntity();ew.allEq(MPUtil.allEQMapPre( user, user)); return R.ok().put(data, userService.selectListView(ew));}/*** 信息*/RequestMapping(/info/{id})public R info(PathVariable(id) String id){UserEntity user userService.selectById(id);return R.ok().put(data, user);}/*** 获取用户的session用户信息*/RequestMapping(/session)public R getCurrUser(HttpServletRequest request){Long id (Long)request.getSession().getAttribute(userId);UserEntity user userService.selectById(id);return R.ok().put(data, user);}/*** 保存*/PostMapping(/save)public R save(RequestBody UserEntity user){if(userService.selectOne(new EntityWrapperUserEntity().eq(username, user.getUsername())) !null) {return R.error(用户已存在);}userService.insert(user);return R.ok();}/*** 修改*/RequestMapping(/update)public R update(RequestBody UserEntity user){userService.updateById(user);//全部更新return R.ok();}/*** 删除*/RequestMapping(/delete)public R delete(RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();} } 6.4、业务层Service package com.service;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Param;import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.service.IService; import com.entity.UserEntity; import com.utils.PageUtils;/*** 系统用户*/ public interface UserService extends IServiceUserEntity {PageUtils queryPage(MapString, Object params);ListUserEntity selectListView(WrapperUserEntity wrapper);PageUtils queryPage(MapString, Object params,WrapperUserEntity wrapper);}6.5、数据访问层Dao package com.dao;import java.util.List;import org.apache.ibatis.annotations.Param;import com.baomidou.mybatisplus.mapper.BaseMapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.pagination.Pagination; import com.entity.UserEntity;/*** 用户*/ public interface UserDao extends BaseMapperUserEntity {ListUserEntity selectListView(Param(ew) WrapperUserEntity wrapper);ListUserEntity selectListView(Pagination page,Param(ew) WrapperUserEntity wrapper);}
http://www.dnsts.com.cn/news/38557.html

相关文章:

  • 手机模板网站开发wordpress系统安装教程
  • 购物网站需求分析报告展厅设计的要点有哪些
  • 网站做推广有用吗想做农村电商怎么入手
  • 电子商务网站规划与设计试题广东建科建设监理有限公司网站
  • 网站建设电脑维修数据恢复新昌品牌网站建设
  • 网站开发软件网站开发厦门百度广告
  • 嘉兴网站建设费用工作证明带公章电子版
  • 仿站多少钱网站建设 内容缺乏
  • 网站刷单账务处理怎么做网站开发财务费用
  • 医疗网站的建设设计要注意什么网站开发常用的技术
  • 网站建设相关优化自建网络商城
  • 商贸有限公司怎么样注册郑州网站seo分析
  • 网站返回首页怎么做的好看企业规划设计
  • 时政热点新闻seo关键词分析表
  • 布吉做棋牌网站建设哪家便宜软件网站免费
  • 清苑住房和城乡建设局网站wordpress定时采集
  • 郑州定制网站推广工具产品东台做网站的公司
  • 济南哪里有做网站的wordpress部分内容加密
  • 太原cms建站模板泰安网站建设工作室
  • 免费个人网站服务器扬州建设投资集团网站
  • 微信公众号怎么建网站哪些网站是用iframe
  • 网站开发代理谷歌推广怎么做最有效
  • 网站的总体方案制作网站公司 英语网站首页
  • 大型网站只做要多少钱园林景观设计公司官网
  • 织梦如何做几种语言的网站购物网站有哪些功能
  • 深圳做网站最好网站在什么地方设关键词
  • 网站流量分析怎么做wordpress插件手动升级
  • 设计色彩的门户网站模板芜湖网站网站建设
  • 大型企业网站建设网站建设 微信公众号运营
  • 南京那些公司做网站充实网站 廉政建设 板块