10121 基于SSH开发的旅行社管理系统
运行视频、代码等:
鏈-椄:https://pan@baidu@com/s/1tw4Qvtcuwt7ys36M7HvLSg(把@换成 . 就可正常访问)
趧-紶-碼:1589
f/u枝此段-吶傛打开baidu網盤手机App,caozuo更方便哦
技术
Struts + Spring + Hibernate
工具
eclipse + tomact + mysql + jdk
功能详情
前台功能 | 后台功能 |
---|---|
首页 | 用户管理 |
关于 | 城市列表 |
旅游线路 | 景点资源 |
导游信息 | 旅游线路 |
联系我们 | 导游信息 |
退出登录 | 团队信息 站点导航 |
系统相关截图
- 系统首页
package org.javaboy.vhr.service;
import org.javaboy.vhr.mapper.JobLevelMapper;
import org.javaboy.vhr.model.JobLevel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
public class JobLevelService {
@Autowired
JobLevelMapper jobLevelMapper;
public List<JobLevel> getAllJobLevels() {
return jobLevelMapper.getAllJobLevels();
}
public Integer addJobLevel(JobLevel jobLevel) {
jobLevel.setCreateDate(new Date());
jobLevel.setEnabled(true);
return jobLevelMapper.insertSelective(jobLevel);
}
public Integer updateJobLevelById(JobLevel jobLevel) {
return jobLevelMapper.updateByPrimaryKeySelective(jobLevel);
}
public Integer deleteJobLevelById(Integer id) {
return jobLevelMapper.deleteByPrimaryKey(id);
}
public Integer deleteJobLevelsByIds(Integer[] ids) {
return jobLevelMapper.deleteJobLevelsByIds(ids);
}
}
package org.javaboy.vhr.service;
import org.javaboy.vhr.mapper.MailSendLogMapper;
import org.javaboy.vhr.model.MailSendLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
public class MailSendLogService {
@Autowired
MailSendLogMapper mailSendLogMapper;
public Integer updateMailSendLogStatus(String msgId, Integer status) {
return mailSendLogMapper.updateMailSendLogStatus(msgId, status);
}
public Integer insert(MailSendLog mailSendLog) {
return mailSendLogMapper.insert(mailSendLog);
}
public List<MailSendLog> getMailSendLogsByStatus() {
return mailSendLogMapper.getMailSendLogsByStatus();
}
public Integer updateCount(String msgId, Date date) {
return mailSendLogMapper.updateCount(msgId,date);
}
}
package org.javaboy.vhr.service;
import org.javaboy.vhr.mapper.SalaryMapper;
import org.javaboy.vhr.model.Salary;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
public class SalaryService {
@Autowired
SalaryMapper salaryMapper;
public List<Salary> getAllSalaries() {
return salaryMapper.getAllSalaries();
}
public Integer addSalary(Salary salary) {
salary.setCreateDate(new Date());
return salaryMapper.insertSelective(salary);
}
public Integer deleteSalaryById(Integer id) {
return salaryMapper.deleteByPrimaryKey(id);
}
public Integer updateSalaryById(Salary salary) {
return salaryMapper.updateByPrimaryKeySelective(salary);
}
}package org.javaboy.vhr.service;
import org.javaboy.vhr.mapper.HrMapper;
import org.javaboy.vhr.mapper.HrRoleMapper;
import org.javaboy.vhr.model.Hr;
import org.javaboy.vhr.utils.HrUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
public class HrService implements UserDetailsService {
@Autowired
HrMapper hrMapper;
@Autowired
HrRoleMapper hrRoleMapper;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Hr hr = hrMapper.loadUserByUsername(username);
if (hr == null) {
throw new UsernameNotFoundException("用户名不存在!");
}
hr.setRoles(hrMapper.getHrRolesById(hr.getId()));
return hr;
}
public List<Hr> getAllHrs(String keywords) {
return hrMapper.getAllHrs(HrUtils.getCurrentHr().getId(),keywords);
}
public Integer updateHr(Hr hr) {
return hrMapper.updateByPrimaryKeySelective(hr);
}
@Transactional
public boolean updateHrRole(Integer hrid, Integer[] rids) {
hrRoleMapper.deleteByHrid(hrid);
return hrRoleMapper.addRole(hrid, rids) == rids.length;
}
public Integer deleteHrById(Integer id) {
return hrMapper.deleteByPrimaryKey(id);
}
public List<Hr> getAllHrsExceptCurrentHr() {
return hrMapper.getAllHrsExceptCurrentHr(HrUtils.getCurrentHr().getId());
}
public Integer updateHyById(Hr hr) {
return hrMapper.updateByPrimaryKeySelective(hr);
}
public boolean updateHrPasswd(String oldpass, String pass, Integer hrid) {
Hr hr = hrMapper.selectByPrimaryKey(hrid);
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
if (encoder.matches(oldpass, hr.getPassword())) {
String encodePass = encoder.encode(pass);
Integer result = hrMapper.updatePasswd(hrid, encodePass);
if (result == 1) {
return true;
}
}
return false;
}
public Integer updateUserface(String url, Integer id) {
return hrMapper.updateUserface(url, id);
}
}package org.javaboy.vhr.task;
import org.javaboy.vhr.model.Employee;
import org.javaboy.vhr.model.MailConstants;
import org.javaboy.vhr.model.MailSendLog;
import org.javaboy.vhr.service.EmployeeService;
import org.javaboy.vhr.service.MailSendLogService;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
@Component
public class MailSendTask {
@Autowired
MailSendLogService mailSendLogService;
@Autowired
RabbitTemplate rabbitTemplate;
@Autowired
EmployeeService employeeService;
@Scheduled(cron = “0/10 * * * * ?”)
public void mailResendTask() {
List logs = mailSendLogService.getMailSendLogsByStatus();
if (logs == null || logs.size() == 0) {
return;
}
logs.forEach(mailSendLog->{
if (mailSendLog.getCount() >= 3) {
mailSendLogService.updateMailSendLogStatus(mailSendLog.getMsgId(), 2);//直接设置该条消息发送失败
}else{
mailSendLogService.updateCount(mailSendLog.getMsgId(), new Date());
Employee emp = employeeService.getEmployeeById(mailSendLog.getEmpId());
rabbitTemplate.convertAndSend(MailConstants.MAIL_EXCHANGE_NAME, MailConstants.MAIL_ROUTING_KEY_NAME, emp, new CorrelationData(mailSendLog.getMsgId()));
}
});
}
}