在本系统中,我建了一共7张表:schoolsys,user,useraccount,job,jobtype,company,applyjob,分别对应学校系统,已注册用户,用户账户,工作,工作类型,公司,申请工作。
schoolsys:
user:
useraccount:
company:
job:
jobtype:
applyjob:
这七张表对应了7个实体类:
SchoolSys类:
public class SchoolSys {
private String userid;
private String name;
public SchoolSys() {
}
public SchoolSys(String userid, String name) {
this.userid = userid;
this.name = name;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
User类:
public class User {
private String userId;
private String passWord;
private String name;
private int age;
private String gender;
private int telephone;
private String department;
private Timestamp regdat;
private int credit_rating;
private int balance;
private int times;
public User() {
}
public User(String userId, String passWord, String name, int age, String gender, int telephone, String department) {
this.userId = userId;
this.passWord = passWord;
this.name = name;
this.age = age;
this.gender = gender;
this.telephone = telephone;
this.department = department;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getTelephone() {
return telephone;
}
public void setTelephone(int telephone) {
this.telephone = telephone;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
public Timestamp getRegdat() {
return regdat;
}
public void setRegdat(Timestamp regdat) {
this.regdat = regdat;
}
public int getCredit_rating() {
return credit_rating;
}
public void setCredit_rating(int credit_rating) {
this.credit_rating = credit_rating;
}
public int getBalance() {
return balance;
}
public void setBalance(int balance) {
this.balance = balance;
}
public int getTimes() {
return times;
}
public void setTimes(int times) {
this.times = times;
}
public String getUser(){
return userId+"\t"+name+"\t"+passWord+"\t"+department;
}
@Override
public String toString() {
return "User{" +
"userId='" + userId + '\'' +
", passWord='" + passWord + '\'' +
", name='" + name + '\'' +
", age=" + age +
", gender=" + gender +
", telephone=" + telephone +
", department='" + department + '\'' +
", regdat='" + regdat + '\'' +
", credit_rating=" + credit_rating +
", balance=" + balance +
", times=" + times +
'}';
}
}
UserAccount类:
public class UserAccount implements Serializable {
private String userid;
private int ACID;
private int credit_rating;
private long balance;
private static final long serialVersionUID = 42L;
public UserAccount() {
}
public UserAccount(String userid,int ACID, int credit_rating, long balance) {
this.userid=userid;
this.ACID = ACID;
this.credit_rating = credit_rating;
this.balance = balance;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public int getACID() {
return ACID;
}
public void setACID(int ACID) {
this.ACID = ACID;
}
public int getCredit_rating() {
return credit_rating;
}
public void setCredit_rating(int credit_rating) {
this.credit_rating = credit_rating;
}
public long getBalance() {
return balance;
}
public void setBalance(long balance) {
this.balance = balance;
}
@Override
public String toString() {
return userid+"\t"+ACID+"\t"+credit_rating+"\t"+balance;
}
}
Company类:
public class Company {
private String company_id;//以com开头 6位
private String company_name;//5位
private String password;//6-12
public Company() {
}
public Company(String company_id, String company_name, String password) {
this.company_id = company_id;
this.company_name = company_name;
this.password = password;
}
public String getCompany_id() {
return company_id;
}
public void setCompany_id(String company_id) {
this.company_id = company_id;
}
public String getCompany_name() {
return company_name;
}
public void setCompany_name(String company_name) {
this.company_name = company_name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Company{" +
"company_id=" + company_id +
", company_name='" + company_name + '\'' +
", password='" + password + '\'' +
'}';
}
}
Job类:
public class Job {
private int JID;
private String company_name;
private String job_name;
private String jobtype_name;
private int job_level;
private int salary;
private int deduct_salary;
private String job_content;
private int job_demand;
private double job_time;
int status;
public Job() {
}
public Job(String company_name, String job_name, String jobtype_name, int job_level, int salary, int job_demand, double job_time,int deduct_salary, String job_content) {
this.company_name = company_name;
this.job_name = job_name;
this.jobtype_name = jobtype_name;
this.job_level = job_level;
this.salary = salary;
this.job_demand = job_demand;
this.job_time = job_time;
this.deduct_salary=deduct_salary;
this.job_content=job_content;
}
public int getJID() {
return JID;
}
public void setStatus(int status) {
this.status = status;
}
public void setJID(int JID) {
this.JID = JID;
}
public String getCompany_name() {
return company_name;
}
public void setCompany_name(String company_name) {
this.company_name = company_name;
}
public String getJob_name() {
return job_name;
}
public void setJob_name(String job_name) {
this.job_name = job_name;
}
public int getJob_level() {
return job_level;
}
public void setJob_level(int job_level) {
this.job_level = job_level;
}
public String getJob_content() {
return job_content;
}
public void setJob_content(String job_content) {
this.job_content = job_content;
}
public int getJob_demand() {
return job_demand;
}
public void setJob_demand(int job_demand) {
this.job_demand = job_demand;
}
public double getJob_time() {
return job_time;
}
public void setJob_time(double job_time) {
this.job_time = job_time;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public int getDeduct_salary() {
return deduct_salary;
}
public String getJobtype_name() {
return jobtype_name;
}
public void setJobtype_name(String jobtype_name) {
this.jobtype_name = jobtype_name;
}
public void setDeduct_salary(int deduct_salary) {
this.deduct_salary = deduct_salary;
}
public int getStatus() {
return status;
}
@Override
public String toString() {
return JID+"\t"+ job_name + "\t"+company_name + "\t" + job_level + "\t" + salary+"\t" + job_time+"\t" + jobtype_name+"\t" + status;
}
}
JobType类:
public class JobType {
protected int JTID;
protected int deduct_salary;
protected String jobtype_name;
public JobType() {
}
public JobType(int deduct_salary, String jobtype_name) {
this.deduct_salary = deduct_salary;
this.jobtype_name = jobtype_name;
}
public int getDeduct_salary() {
return deduct_salary;
}
public void setJTID(int JTID) {
this.JTID = JTID;
}
public void setDeduct_salary(int deduct_salary) {
this.deduct_salary = deduct_salary;
}
public String getJobtype_name() {
return jobtype_name;
}
public void setJobtype_name(String jobtype_name) {
this.jobtype_name = jobtype_name;
}
@Override
public String toString() {
return JTID+"\t"+jobtype_name+"\t"+deduct_salary;
}
}
Applyjob类:
public class ApplyJob {
private String userid;
private int JID;
private String job_name;
private Timestamp work_start;
private Timestamp work_end;
private double job_time;
private int overdue;//逾期为1,未逾期为0
public ApplyJob() {
}
public ApplyJob(String userid, int JID,String job_name, Timestamp work_start,double job_time) {
this.userid = userid;
this.JID = JID;
this.job_name=job_name;
this.work_start = work_start;
this.job_time = job_time;
}
public String getuserid() {
return userid;
}
public void setuserid(String userid) {
this.userid = userid;
}
public int getJID() {
return JID;
}
public void setJID(int JID) {
this.JID = JID;
}
public String getJob_name() {
return job_name;
}
public void setJob_name(String job_name) {
this.job_name = job_name;
}
public Timestamp getWork_start() {
return work_start;
}
public void setWork_start(Timestamp work_start) {
this.work_start = work_start;
}
public Timestamp getWork_end() {
return work_end;
}
public void setWork_end(Timestamp work_end) {
this.work_end = work_end;
}
public double getJob_time() {
return job_time;
}
public void setJob_time(double job_time) {
this.job_time = job_time;
}
public int getOverdue() {
return overdue;
}
public void setOverdue(int overdue) {
this.overdue = overdue;
}
@Override
public String toString() {
return JID+"\t"+userid+"\t"+job_name+"\t"+job_time+"\t"+work_start+"\t"+work_end;
}
}
它们对应的增删改查方法都在DAO中定义规范,并有对应的实现类
业务逻辑层代码位于service类中
UserService:
public class UserService {
public UserDAO ud=new UserDAOImpl();
//录入系统
public int entrySystem(SchoolSys ss){
if (ud.findUserFromSys(ss.getUserid())!=null){
System.out.println("信息已存在,请重新录入!");
return 0;
}
return ud.entrySystem(ss);
}
public UserAccount addAccount(User user){
boolean flag;
if (ud.addAccount(user.getUserId())>0) {
flag=true;
}else {
System.out.println("创建账户失败");
flag=false;
}
if (flag){
String userId = user.getUserId();
System.out.println(userId);
return ud.findUserAccount(userId);
}else {
return null;
}
}
//获取注册日期
public void getRegdat(User user){
Timestamp ts=new Timestamp(new Date(System.currentTimeMillis()).getTime());
user.setRegdat(ts);
ud.setRegdat(user);
}
//注册
public int register(User user){
if (ud.findUserFromSys(user.getUserId())==null){
System.out.println("该用户没有在系统录入");
return 0;
}
if (ud.findUser(user.getUserId())!=null){
System.out.println("该用户已被注册");
return 0;
}
return ud.register(user);
}
//登录
public Object logIn(String userid,String password){
return ud.login(userid);
}
//兼职发布人员注册
public boolean comRegister(Company company){
if (ud.findCom(company.getCompany_id())!=null){
System.out.println("该公司已注册");
return false;
}
if (ud.comRegister(company)>0){
return true;
}else {
return false;
}
}
//兼职发布人员登录
public Company comLogin(String company_id,String password){
if (ud.findCom(company_id)==null){
System.out.println("该公司不存在");
}
Object o = ud.comLogin(company_id, password);
if(o !=null){
if (o instanceof Company) {
return (Company) o;
}else {
System.out.println("密码输入错误");
}
}else {
System.out.println("登陆失败");
}
return null;
}
//删除兼职发布人员
public Company delCom(Company company) {
Company com=null;
while (true) {
System.out.println("请输入你需要删除的公司id:");
String company_id = TSUtility.readUserID();
if (company_id.equals(company.getCompany_id())){
System.out.println("不能删除已经登录的用户!");
break;
}
System.out.println("是否删除此用户?(Y/N)");
if (TSUtility.readConfirmSelection()) {
Company com1 = ud.delCom(company_id);
if (com1 !=null){
com= com1;
}
}
}
return com;
}
//修改用户信息
public void modifyMsg() {
System.out.println("请输入你需要修改的用户id:");
String userId= TSUtility.readUserID();
User user= ud.findUser(userId);
if (user!=null) {
System.out.print("请输入您的姓名(按下Enter代表不修改):");
String name = TSUtility.readString(5, user.getName());
System.out.print("请输入您的年龄(按下Enter代表不修改):");
int age = TSUtility.readInt(2, user.getAge());
System.out.print("请输入您的性别(按下Enter代表不修改):");
String gender = TSUtility.setGender(user.getGender());
System.out.print("请输入您的手机号码(按下Enter代表不修改):");
int telephone = TSUtility.readInt(11, user.getTelephone());
user.setUserId(userId);
user.setName(name);
user.setAge(age);
user.setGender(gender);
user.setTelephone(telephone);
System.out.println(ud.modifyMsg(user));
System.out.println("修改用户成功!");
}
}
public void modifyMsg(User user) {
if (user!=null) {
System.out.print("请输入您的姓名(按下Enter代表不修改):");
String name = TSUtility.readString(5, user.getName());
System.out.print("请输入您的年龄(按下Enter代表不修改):");
int age = TSUtility.readInt(2, user.getAge());
System.out.print("请输入您的性别(按下Enter代表不修改):");
String gender = TSUtility.setGender(user.getGender());
System.out.print("请输入您的手机号码(按下Enter代表不修改):");
int telephone = TSUtility.readInt(11, user.getTelephone());
user.setName(name);
user.setAge(age);
user.setGender(gender);
user.setTelephone(telephone);
System.out.println(ud.modifyMsg(user));
System.out.println("修改用户成功!");
}
}
//删除用户
public void delUser(User user) {
User user2=null;
while (true) {
System.out.println("请输入你需要删除的用户id:");
String userId = TSUtility.readUserID();
if (userId.equals(user.getUserId())){
System.out.println("不能删除已经登录的用户!");
break;
}
System.out.println("是否删除此用户?(Y/N)");
if (TSUtility.readConfirmSelection()) {
if (ud.findUser(userId)!=null){
System.out.println(ud.delUser(userId));
System.out.println("删除成功");
break;
}
}
}
}
//查看指定用户
public void findUser(){
System.out.println("请输入需要查看的用户id:");
String userId=TSUtility.readUserID();
User user = ud.findUser(userId);
if (user==null){
System.out.println("该用户不存在");
}
System.out.println("学号/教师编号\t姓名\t密码\t院系");
System.out.println(user.getUser());
}
//查看指定用户账户
public void findAccount(){
System.out.println("请输入需要查询账户的用户id:");
String userId= TSUtility.readUserID();
UserAccount ua = ud.findUserAccount(userId);
if (ua ==null){
System.out.println("该用户不存在");
}
System.out.println("用户id\t账户\t信用等级\t余额");
System.out.println(ua);
}
//找回密码
public void findPassword() {
System.out.println("请输入您的学号/教师编号:");
String userId=TSUtility.readUserID();
System.out.println("请输入您的姓名:");
String name= TSUtility.readKeyBoard(4,false);
String password;
System.out.println("请输入新的密码:");
password=TSUtility.readPasWord();
int i = ud.findPassword(userId, name, password);
if (i>0) {
System.out.println("修改密码成功!");
}else {
System.out.println("修改密码失败!");
}
}
//修改密码
public void modifyPassword(User user) {
System.out.println("请输入您的密码:");
String passWord= TSUtility.readPasWord();
if (ud.checkPassword(user.getUserId())!=null) {
if (passWord.equals(ud.checkPassword(user.getUserId()))) {
System.out.println("请输入新的密码(回车代表不修改):");
String pw = TSUtility.readPasWord(passWord);
if (ud.modifyPassword(user.getUserId(), pw)>0){
System.out.println("修改密码成功!");
}
} else {
System.out.println("您输入的密码不正确!");
}
}
}
public void modifyPassword(){
System.out.println("请输入需要修改密码的用户id:");
String userid= TSUtility.readUserID();
System.out.println("请输入新的密码(回车代表不修改):");
String pw = TSUtility.readPasWord();
if (ud.modifyPassword(userid, pw)>0){
System.out.println("修改密码成功!");
} else {
System.out.println("修改失败!");
}
}
//余额查询
public void queryBalance(User user){
if (ud.findUser(user.getUserId())!=null) {
System.out.println("您当前余额为:" + user.getBalance());
}
}
//信用等级查询
public void queryCredit_Rating(User user) {
System.out.println("您目前的信用等级为:"+user.getCredit_rating());
if (user.getCredit_rating()<5) {
System.out.println("再按时完成" + (3 - user.getTimes()) + "次后信用等级恢复至" + (user.getCredit_rating() +1));
}
}
}
JobService:
public class JobService {
private JobDAO jd =new JobDAOImpl();
private JobTypeDAO jtd=new JobTypeDAOImpl();
private UserDAO ud=new UserDAOImpl();
//录入兼职信息
public void addJob() {
Job job;
if (jtd.showJobType()==null){
System.out.println("当前没有工作类型,请先设置工作类型");
return;
}
System.out.println("请输入工作名称:");
String job_name = TSUtility.readKeyBoard(5, false);
String jobtype_name;
JobType type;
while (true) {
System.out.println("请输入个工作类型:");
jobtype_name = TSUtility.readKeyBoard(5, false);
type = jtd.findJobtypeByName(jobtype_name);
if (type == null) {
System.out.println("工作类型不存在,请重新输入");
}else {
break;
}
}
System.out.println("请输入公司名:");
String company_name = TSUtility.readKeyBoard(20, false);
System.out.println("请输入兼职薪资:");
int salary = TSUtility.readInt(5);
System.out.println("请输入需要人员数量:");
int job_demand = TSUtility.readInt(3);
System.out.println("请输入工作等级:");
int job_level = TSUtility.readLevel();
System.out.println("请输入工作内容(50字以内):");
String job_content = TSUtility.readKeyBoard(50, false);
System.out.println("请输入工作时间:");
double job_time = TSUtility.readDouble();
int deduct_salary= type.getDeduct_salary();
job = new Job(company_name,job_name,jobtype_name,job_level,salary,job_demand,job_time,deduct_salary,job_content);
int i = jd.addJob(job);
if (i>0){
System.out.println("工作添加成功");
}else {
System.out.println("工作添加失败");
}
}
public void addJob(Company company) {
Job job;
if (jtd.showJobType()==null){
System.out.println("当前没有工作类型,请先设置工作类型");
return;
}
System.out.println("请输入工作名称:");
String job_name = TSUtility.readKeyBoard(5, false);
String jobtype_name;
JobType type;
while (true) {
System.out.println("请输入个工作类型:");
jobtype_name = TSUtility.readKeyBoard(5, false);
type = jtd.findJobtypeByName(jobtype_name);
if (type == null) {
System.out.println("工作类型不存在,请重新输入");
}else {
break;
}
}
System.out.println("请输入兼职薪资:");
int salary = TSUtility.readInt(5);
System.out.println("请输入需要人员数量:");
int job_demand = TSUtility.readInt(3);
System.out.println("请输入工作等级:");
int job_level = TSUtility.readLevel();
System.out.println("请输入工作内容(50字以内):");
String job_content = TSUtility.readKeyBoard(50, false);
System.out.println("请输入工作时间:");
double job_time = TSUtility.readDouble();
int deduct_salary= type.getDeduct_salary();
job = new Job(company.getCompany_name(), job_name,jobtype_name,job_level,salary,job_demand,job_time,deduct_salary,job_content);
int i = jd.addJob(job);
if (i>0){
System.out.println("工作添加成功");
}else {
System.out.println("工作添加失败");
}
}
//删除兼职
public void delJob(String company_name) {
showComJobs(company_name);
System.out.println("请输入需要删除的兼职编号:");
int JID=TSUtility.readInt(3);
Job job = jd.findJobByJID(JID);
if (job !=null){
if (!job.getCompany_name().equals(company_name)){
System.out.println("只能删除本公司发布的工作");
return;
}
int i = jd.delJob(JID);
if (i>0){
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
}else {
System.out.println("该兼职不存在");
}
}
public void delJob() {
showAllJobs();
System.out.println("请输入需要删除的兼职编号:");
int JID=TSUtility.readInt(3);
if (jd.findJobByJID(JID)!=null){
int i = jd.delJob(JID);
if (i>0){
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
}else {
System.out.println("该兼职不存在");
}
}
//查看所有兼职信息
public void showAllJobs(){
List<Job> jobs = jd.showAllJobs();
if (jobs ==null){
System.out.println("当前没有已发布的工作");
return;
}
System.out.println("工作编号\t工作名\t公司名\t兼职等级\t薪水\t工作时间\t工作类型");
for (Job job : jobs) {
System.out.println(job.toString());
}
}
//查看自己能申请的岗位
public void showMyJobs(User user){
if (jd.showAllJobs()==null){
System.out.println("当前没有已发布的工作");
return;
}
int credit_rating= user.getCredit_rating();
System.out.println("工作编号\t工作名\t公司名\t兼职等级\t薪水\t工作时间\t工作类型");
List<Job> jobs = jd.showMyJobs(credit_rating);
if (jobs ==null){
System.out.println("当前没有可申请的工作");
}else {
for (Job job: jobs){
System.out.println(job.toString());
}
}
}
//查看已被完成的工作
public void showFinishedJobs(){
System.out.println("工作编号\t工作名\t公司名\t兼职等级\t薪水\t工作时间\t工作类型");
List<Job> jobs = jd.showFinishedJobs();
if (jobs ==null){
System.out.println("当前没有已被完成的工作");
}else {
for (Job job: jobs){
System.out.println(job.toString());
}
}
}
//同意发布兼职
public void agreeJobRelease(){
showUnsettledJobs();
System.out.println("请输入同意发布的兼职id或公司名:");
Object o=TSUtility.read(5);
if (jd.agreeJobRelease(o)>0){
System.out.println("同意发布成功");
}else {
System.out.println("同意发布失败");
System.out.println("该工作已经被同意或拒绝");
}
}
//拒绝发布兼职
public void refuseJobRelease(){
showUnsettledJobs();
System.out.println("请输入拒绝发布的兼职id或公司名:");
Object o=TSUtility.read(5);
if (jd.refuseJobRelease(o)>0){
System.out.println("拒绝发布成功");
}else {
System.out.println("拒绝发布失败");
System.out.println("该工作已经被同意或拒绝");
}
}
//查看未投放的兼职
public void showUnsettledJobs(){
List<Job> jobs = jd.showUnsettledJobs();
if (jobs ==null){
System.out.println("当前没有未发布的工作");
return;
}
System.out.println("工作编号\t工作名\t公司名\t兼职等级\t薪水\t工作时间\t工作类型");
for (Job job : jobs) {
System.out.println(job.toString());
}
}
//查看该公司发布的兼职信息
public void showComJobs(String company_name){
List<Job> jobs = jd.showComJobs(company_name);
if (jobs ==null || jobs.size()==0){
System.out.println("当前没有发布工作");
return;
}
System.out.println("工作编号\t工作名\t公司名\t兼职等级\t薪水\t工作时间\t工作类型");
for (Job job : jobs) {
System.out.println(job.toString());
}
}
public void showComJobs(){
System.out.println("请输入公司名");
String company_name=TSUtility.readKeyBoard(5,false);
if (jd.showUnsettledJobs()==null){
System.out.println("当前没有未发布的工作");
return;
}
System.out.println("工作编号\t工作名\t公司名\t兼职等级\t薪水\t工作时间\t工作类型");
for (Job job : jd.showComJobs(company_name)) {
System.out.println(job.toString());
}
}
//修改工作人数
public void modifyDemand(Company company){
showComJobs(company.getCompany_name());
System.out.println("请输入需要修改人数的工作id:");
int JID=TSUtility.readInt(3);
Job job = jd.findJobByJID(JID);
if (job !=null){
if (!job.getCompany_name().equals(company.getCompany_name())){
System.out.println("只能修改本公司发布的工作");
return;
}
System.out.println("请输入修改后的人数:");
int job_demand= TSUtility.readInt(5);
if (jd.modifyDemand(JID,job_demand)>0){
System.out.println("工作人数修改成功");
}else {
System.out.println("工作人数修改失败");
}
}else {
System.out.println("工作不存在");
}
}
//工作金额调整
public void modifySalary(Company company){
showComJobs(company.getCompany_name());
System.out.println("请输入需要修改金额的工作id:");
int JID=TSUtility.readInt(3);
Job job = jd.findJobByJID(JID);
if (job !=null){
if (!job.getCompany_name().equals(company.getCompany_name())){
System.out.println("只能修改本公司发布的工作");
return;
}
System.out.println("请输入修改后的金额:");
int salary= TSUtility.readInt(5);
if (jd.modifySalary(JID,salary)>0){
System.out.println("工作金额修改成功");
}else {
System.out.println("工作金额修改失败");
}
}else {
System.out.println("工作不存在");
}
}
//工作时间调整
public void modifyJob_time(Company company){
showComJobs(company.getCompany_name());
System.out.println("请输入需要修改的工作id:");
int JID=TSUtility.readInt(3);
Job job = jd.findJobByJID(JID);
if (job !=null){
if (!job.getCompany_name().equals(company.getCompany_name())){
System.out.println("只能修改本公司发布的工作");
return;
}
System.out.println("请输入修改后的工作时间:");
double job_time= TSUtility.readInt(5);
if (jd.modifyJob_time(JID,job_time)>0){
System.out.println("工作时间修改成功");
}else {
System.out.println("工作时间修改失败");
}
}else {
System.out.println("工作不存在");
}
}
}
BaseMessageService:
public class BaseMessageService {
public UserDAO ud=new UserDAOImpl();
public JobDAO jd=new JobDAOImpl();
public JobTypeDAO jtd=new JobTypeDAOImpl();
//设置工作等级
public void setJobLevel() {
List<Job> jobs = jd.showAllJobs();
if (jobs ==null){
System.out.println("当前没有已发布的工作");
return;
}
System.out.println("工作编号\t工作名\t公司名\t兼职等级\t薪水\t工作时间\t工作类型");
for (Job job : jobs) {
System.out.println(job.toString());
}
System.out.println("请输入需要调整等级的工作编号(三位数字);");
while (true) {
int JID= TSUtility.readInt(3);
if (jd.findJobByJID(JID)!=null) {
System.out.println("请输入需要设置的等级");
int jobLevel = TSUtility.readLevel();
if (jd.setJobLevel(JID,jobLevel)>0) {
System.out.println("工作等级设置成功!");
return;
}else {
System.out.println("设置失败!");
System.out.println("请重新输入工作编号(三位数字):");
}
}else {
System.out.println("未找到您输入的工作!");
System.out.println("请重新输入工作编号(三位数字):");
}
}
}
//用户信用调整
public void setUserCreditRating() {
System.out.println("请输入需要修改的用户学号/教师编号;");
String userId= TSUtility.readUserID();
User user=ud.findUser(userId);
if (user==null){
System.out.println("该用户不存在");
return;
}
if (user.getCredit_rating()==0){
System.out.println("用户信用等级已降为0,不可修改!");
return;
}
System.out.println("请输入需要设置的信用等级");
int creditRating = TSUtility.readLevel(user.getCredit_rating());
int i = ud.setUserCreditRating(userId, creditRating);
if (i>0) {
System.out.println("用户信用等级设置成功!");
}
}
//增加工作类型
public void addJobType() {
System.out.println("请输入工作类型名称:");
String jobtype_name = TSUtility.readKeyBoard(6, false);
if (jtd.findJobtypeByName(jobtype_name)!=null){
System.out.println("工作类型已存在");
return;
}
System.out.println("请设置该工作类型的逾期扣除比例:");
int deduct_salary = TSUtility.readInt(4);
JobType jobType=new JobType(deduct_salary,jobtype_name);
int i = jtd.addJobType(jobType);
if (i>0) {
System.out.println("工作类型增加成功!");
}else {
System.out.println("修改失败");
}
}
//查看所有工作类型
public void showJobType(){
if (jtd.showJobType()==null){
System.out.println("当前无工作类型");
return;
}
System.out.println("工作类型编号\t工作类型\t逾期扣除比例");
for (JobType jt:jtd.showJobType()){
System.out.println(jt);
}
}
//删除工作类型
public JobType delJobType() {
if (jtd.showJobType()==null){
System.out.println("当前无工作类型");
return null;
}
System.out.println("请输入需要修改逾期扣除比例的工作类型编号:");
int JTID=TSUtility.readInt(3);
if (jtd.findJobTypeById(JTID)!=null){
System.out.println("是否删除该工作类型?");
if (TSUtility.readConfirmSelection()) {
JobType jobType = jtd.delJobType(JTID);
if (jobType!=null) {
System.out.println("删除成功!");
return jobType;
}
}
}
System.out.println("删除失败");
return null;
}
//修改逾期扣除比例
public void modifyDeductSalary() {
System.out.println("请输入需要修改逾期扣除比例的工作类型编号:");
int JTID=TSUtility.readInt(3);
JobType jt = jtd.findJobTypeById(JTID);
if (jt !=null){
System.out.println("请输入逾期扣除比例:");
int deductSalary=TSUtility.readInt(4);
jtd.modifyDeductSalary(JTID,deductSalary);
System.out.println("修改成功!");
}else {
System.out.println("未找到该工作类型");
System.out.println("修改失败");
}
}
}
ApplyJobService:
public class ApplyJobService {
private JobApplyDAO jad=new JobApplyDAOImpl();
private JobDAO jd=new JobDAOImpl();
private JobService js=new JobService();
private UserDAO ud=new UserDAOImpl();
//查看逾期工作
public void showOverdueJobs(){
List<ApplyJob> applyJobs = jad.showOverdueJobs();
if (applyJobs ==null){
System.out.println("当前没有逾期的工作");
return;
}
System.out.println("工作编号\t用户id\t工作名称\t工作时间\t开始时间\t结束时间");
for (ApplyJob aj : applyJobs) {
System.out.println(aj.toString());
}
}
//查看自己已完成的工作
public void showMyFinishedJob(User user){
System.out.println("您已经完成的工作有:");
List<ApplyJob> applyJobs = jad.showMyFinishedJob(user.getUserId());
if (applyJobs !=null && applyJobs.size()>0) {
System.out.println("工作编号\t用户id\t工作名称\t工作时间\t开始时间\t结束时间");
for (ApplyJob aj : applyJobs) {
System.out.println(aj.toString());
}
}else {
System.out.println("您没有已经完成的工作");
}
}
//查看自己正在完成的工作
public void showMyFinishingJob(User user){
System.out.println("您正在完成的工作有:");
ApplyJob applyJob = jad.showMyFinishingJob(user.getUserId());
if (applyJob !=null) {
System.out.println("工作编号\t用户id\t工作名称\t工作时间\t开始时间\t结束时间");
System.out.println(applyJob);
}else {
System.out.println("您没有正在完成的工作");
}
}
//比较时间,如果自己有正在完成的工作完成时间晚于想申请工作的开始时间则返回false
public boolean timeCompare(User user) {
boolean isConflicting=false;
if (jad.showMyFinishingJob(user.getUserId())==null){
isConflicting=true;
}else {
System.out.println("请先结束您正在完成的工作");
}
return isConflicting;
}
//申请工作
public void applyJob(User user) {
if (user.getCredit_rating()==0){
System.out.println("该用户信用等级已降至0,不可寻找兼职工作!");
return;
}
System.out.println("当前可选择工作如下:");
js.showMyJobs(user);
System.out.println("请输入需要申请的工作编号:");
int JID= TSUtility.readInt(3);
Job job = jd.findJobByJID(JID);
if (job !=null) {
if (user.getCredit_rating() < job.getJob_level()) {
System.out.println("您的信用等级低于此工作等级,无法申请!");
return;
}
if (job.getJob_demand()<=0){
System.out.println("该工作已被完成");
return;
}
if (job.getStatus()!=1){
System.out.println("该工作未审批或已被拒绝");
return;
}
}else {
System.out.println("该工作不存在");
return;
}
Timestamp ts=new Timestamp(new Date(System.currentTimeMillis()).getTime());
if (timeCompare(user)) {
jd.modifyDemand(JID, job.getJob_demand()-1);
String job_name= job.getJob_name();
double job_time= job.getJob_time();
ApplyJob aj=new ApplyJob(user.getUserId(), JID,job_name,ts,job_time);
if (jad.applyJob(aj)>0) {
System.out.println("申请工作成功!");
}else {
System.out.println("申请工作失败!");
}
} else {
System.out.println("您有正在完成的工作与该工作时间冲突!");
}
}
//获取一个工作扣除的费用
public int getDeduct_salary(ApplyJob aj,int deduct_salary) {
int deSalary=0;
Timestamp work_end=aj.getWork_end();
Calendar c=Calendar.getInstance();
c.setTime(aj.getWork_start());
c.add(Calendar.MINUTE,(int)(aj.getJob_time()*60));
Date schedule=new Date(c.getTime().getTime());//规定完成工作的时间
if (work_end.after(schedule)){
double time=(work_end.getTime()-schedule.getTime())/(60*60*1000.0);
if (time<1){
deSalary=deduct_salary;
}else {
deSalary=deduct_salary*((int)time+1);
}
}
return deSalary;
}
//结束工作
public void endJob(User user) throws ParseException {
String end_time;
Timestamp work_end;
int salary;
ApplyJob aj = jad.showMyFinishingJob(user.getUserId());
int JID=aj.getJID();
Timestamp work_start=aj.getWork_start();
while (true) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");
System.out.println("请输入您的完成工作时间(年-月-日 时:分):");
end_time = TSUtility.readKeyBoard(20, false);
String regular="^(\\d{4})-([0-1]?[0-9])-([0-3]?[0-9])\\s([0-2]?[0-9]):([0-5]?[0-9])$";
if (Pattern.matches(regular,end_time)) {
work_end = new Timestamp(sdf.parse(end_time).getTime());
}else {
System.out.println("日期格式输入错误");
continue;
}
if (work_end.after(work_start)) {
aj.setWork_end(work_end);
if (jad.setWork_end(aj)>0) {
System.out.println("结束工作成功");
break;
}else {
System.out.println("结束工作失败");
}
}else {
System.out.println("您输入的工作结束时间早于工作开始时间!请重新输入!");
}
}
if (work_start.getTime() + (aj.getJob_time() * 60 * 60 * 1000) < work_end.getTime()) {
if (jad.setOverdue(aj)>0) {
System.out.println("您的工作已逾期,信用等级-1");
ud.setUserCreditRating(user.getUserId(), user.getCredit_rating() - 1);
}
}else {
if (user.getCredit_rating()<5){
if (user.getTimes()<3){
user.setTimes(user.getTimes()+1);
System.out.println("再完成"+(3-user.getTimes())+"次工作后信用等级恢复到"+(user.getCredit_rating()+1));
}else {
user.setTimes(0);
user.setCredit_rating(user.getCredit_rating() + 1);
System.out.println("信用等级已恢复到"+user.getCredit_rating());
}
}else {
System.out.println("工作已完成");
}
}
Job job=jd.findJobByJID(JID);
salary= job.getSalary()-getDeduct_salary(aj, job.getDeduct_salary());
if (salary>=0){
user.setBalance(user.getBalance()+salary);
}else if (-salary<= user.getBalance()){
user.setBalance(user.getBalance()+salary);
}else {
user.setBalance(0);
}
ud.setBalance(user);
}
}
TSUtility:书写了一些关于输入的方法
JDBCUtils:书写的JDBC获取、关闭连接的方法
IndexView:主页面设计
LoginView:登陆注册页面设计