基于PHP+MYSQL的专业手语翻译预约系统

8 篇文章 0 订阅

本系统在数据库选择方面使用的是当前使用率最多的MySQL数据库,当前主流的数据库有微软的SQL Server,甲骨文公司的Oracle以及MySQL,和前两者相比MySQL更加的小巧轻便,它是常用的功能例如试图,存储过程和事务等内容它基本都具备,而且它支持标准的SQL结构化查询语言。MySQL不仅是免费的更关键是它是一个跨平台的数据存储介质,这些优点都是导致MySQL能够脱颖而出的重要原因。 请添加图片描述
请添加图片描述
网站基于B/S结构,主要功能有:用户管理(用户注册/登录、用户信息修改、冻结用户、用户信息查询);翻译员管理(新译员入职、翻译员离职、翻译员个人信息维护、翻译员信息展示、意向/动向管理、等级维护);预约管理(发起预约、提交预约、取消预约);服务追踪(彩信跟踪、信函问候、服务评价与打分、翻译员评分更新);订单管理(订单浏览、更新、取消、打印);论坛管理(发帖/回帖、管理帖子、帖子展示)。

请添加图片描述
PHP语言是当前最流行的高级语言之一,它主要是为了网页开发而诞生的,尤其是最近两年随着互联网的高速发展,越来越多的网站诞生了,这也就导致更多的人喜欢上了PHP,和JAVA等其他语言相比,它的语法结构简单,大多数学习过编程的人基本只需要看下说明和教程就可以快速的上手进行开发,而其他语言都需要经过漫长的学习和培训才能做到这一点。为此很多人说PHP是世界上最好的语言。
PHP虽然是为了WEB诞生的,但是它在配置和运行方面都非常的方便,它也是一个可以跨平台的语言,可以在Windows和Unix,Linux甚至苹果的Mac IOS上运行,在环境配置方面现在市面上有很多的集成开发环境,比较知名的有PHPstudy,Wamp,XAMPP等,这些环境安装都是傻瓜式的,及其方便安装和部署,这些都是让PHP快速吸粉的主要因素。而且PHP语言是一种开源且免费的语言,这更加让它深受广发开发人员的喜欢。

请添加图片描述
目录
1 绪论 1
1.1课题背景 1
1.2课题研究现状 1
1.3初步设计方法与实施方案 2
1.4本文研究内容 2
2 系统开发环境 4
2.1 语言介绍 4
2.2工具环境配置 4
2.3 B/S结构简介 4
2.4MySQL数据库 5
2.5 框架介绍 5
3 系统分析 6
3.1系统可行性分析 6
3.1.1经济可行性 6
3.1.2技术可行性 6
3.1.3运行可行性 6
3.2系统现状分析 6
3.3功能需求分析 7
3.4系统设计规则与运行环境 8
3.5系统流程分析 8
3.5.1操作流程 8
3.5.2添加信息流程 9
3.5.3删除信息流程 10
4 系统设计 11
4.1系统设计主要功能 11
4.2数据库设计 11
4.2.1数据库设计规范 11
4.2.2 E/R图 11
4.2.3数据表 12
5 系统实现 25
5.1系统功能模块 25
5.2后台模块 27
5.2.1管理员功能模块 27
5.2.2用户功能模块 30
6 系统测试 33
6.1功能测试 33
6.2可用性测试 33
6.3性能测试 34
6.4测试结果分析 34
7结 论 35
参考文献 36
致 谢 37

请添加图片描述
1.用户管理
用户注册/登录:用户进入网站首页,首次登录需注册,选择身份是普通用户,通过电话号码作为账号,获取验证码,即可注册并登录成功;非首次登录选择身份后可直接通过账号密码登录。
修改用户信息:普通用户登录成功后可以修改或完善个人信息,如更换头像、修改昵称、设置新手机号、绑定邮箱、个人认证、修改用户密码等。
冻结用户:管理员有权对经常打广告的、恶意差评的用户进行账号冻结。
用户信息查询:管理员可查询用户,浏览用户预约记录。
2.翻译员管理
新译员入职:管理员可根据要求对本机构考查合格的专业翻译员录入基本个人信息,如姓名、年龄、个人介绍、工作经历等;录入手语翻译员专业信息,如提供服务内容、擅长场合、职业等级、工作年限、手语服务时长等。其中服务内容有四类:为听障人士提供将口语翻译成手语的服务,为健听人士提供将手语翻译成口语的服务,直接用手语与听障人士进行交流,中国手语与其他国家手语直接进行翻译。
翻译员离职:翻译员请辞、退休或被开除,管理员需要对翻译员在系统进行离职操作,该翻译员不再为用户展示与服务。
翻译员个人信息维护:管理员可以对翻译员基本个人信息和专业信息进行及时修改,翻译员被用户预约成功后工作档期可实时更新,用户打分后翻译员综合评分可实时更新。
翻译员信息展示:用户可搜索、选择翻译员并浏览翻译员信息,包括基本个人信息、专业信息、工作档期等。
意向/动向管理:翻译员需要请假至少提前一天申请,管理员同意申请,添加翻译员在特定工作时间段的意向,进行暂离设置,在此时间段内不能被预约,若预约成功订单被取消。
等级维护:翻译员的服务内容变化、职业证书等级晋升,管理员进行等级更新。
3.预约管理
发起预约:用户选定某翻译员发起预约,进行预约信息填写,主要内容有联系电话、工作方式、场合、时间段;或发起预约,填写预约信息,筛选翻译员,可按关键词筛选或等级筛选。发起预约时间需至少提前服务时间两天,预约信息可存草稿。
取消预约:用户预约信息填写未完成选择不再预约后可取消预约,预约信息不予保存。
提交预约:用户预约信息填写及选择完整后提交预约,生成订单。
4.订单管理
订单浏览:用户和管理员可对已有订单进行搜索查询,可查看订单详情。
订单更新:如用户对订单有新操作,申请后管理员会更新订单详情,如更改预约时间、地点,更换翻译员等。根据订单完成情况,管理员会更新订单状态。
订单取消:用户在规定时间内不再需要手语翻译员可在提前一天取消订单,同时管理员根据翻译员动向/意向管理可在规定时间内取消客户订单。
订单打印:后台打印订单统计翻译时长,同时用户也可以在此打印自己的订单。
5.服务追踪
彩信跟踪:用户进行预约成功后电话信息跟踪开始,管理者向用户发布短信息以确认订单信息,短信内容以链接为主,得到用户回复;服务前与用户保持联系,距离服务时间一天后得不到用户回应则订单取消,服务结束后寻访服务体验。
信函问候:管理者可根据用户绑定邮箱进行信函问候,包括节日慰问、活动通知、公司概况等。
服务评价与打分:订单完成后提醒用户进行评价,用户对本订单进行文字点评或星级评分,完成后评分不予更改,但文字点评可进行追评。
翻译员评分更新:用户对订单的星级评分,该评分在合理区间内方有效,该评分与原翻译员个人评分按一定指标得到评分的更新。初始翻译员评分由翻译员等级决定。
6.论坛管理
发帖/回帖:已登录的用户可在论坛发帖,对该系统体验情况进行反馈。管理员可以发帖,用户和管理员都可对帖子进行评论。
管理帖子:管理员要对用户预发帖进行审核,对恶意帖子进行屏蔽,审核通过则发帖成功;用户可对自
请添加图片描述


/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().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("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	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){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	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){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值