diff --git a/src/main/java/com/yzdx/AiInterviewer/controller/QuestionController.java b/src/main/java/com/yzdx/AiInterviewer/controller/QuestionController.java new file mode 100644 index 0000000..c366466 --- /dev/null +++ b/src/main/java/com/yzdx/AiInterviewer/controller/QuestionController.java @@ -0,0 +1,59 @@ +package com.yzdx.AiInterviewer.controller; + +import com.yzdx.AiInterviewer.comment.R; +import com.yzdx.AiInterviewer.entity.QuestionBank; +import com.yzdx.AiInterviewer.service.QuestionBankService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/question") +public class QuestionController { + + @Autowired + private QuestionBankService questionBankService; + + /** + * 获取题库列表 + * @param encoding 公司编码 + * @return 返回的该公司下的公司题库 + * */ + @GetMapping("/get_typeList") + public R getTypeListByEncoding(@RequestParam Integer encoding){ + + List typeList = questionBankService.getTypeList(encoding); + + return R.success(typeList); + } + +/** + * @param addInfo typeName,encoding,userId + * @return R + * */ + @PostMapping("/add_typeName") + public R addTypeName(@RequestBody Map addInfo){ + + if(addInfo.size()==0){ + return R.error("添加失败,请检查输入"); + } + String typeName=(String)addInfo.get("typeName"); + Integer encoding= Integer.parseInt((String)addInfo.get("encoding")); + Integer userId=(Integer)addInfo.get("userId"); + + Integer row=questionBankService.addTypeName(typeName,encoding,userId); + + if(row==0){ + return R.error("添加失败,请联系管理员"); + } + if (row==-2){ + return R.error("该题库类型已存在!"); + } + return R.success("添加成功"); + } + +} + + diff --git a/src/main/java/com/yzdx/AiInterviewer/controller/UserController.java b/src/main/java/com/yzdx/AiInterviewer/controller/UserController.java index d815b0b..a2bf2bb 100644 --- a/src/main/java/com/yzdx/AiInterviewer/controller/UserController.java +++ b/src/main/java/com/yzdx/AiInterviewer/controller/UserController.java @@ -6,10 +6,8 @@ import com.yzdx.AiInterviewer.service.UserService; import com.yzdx.AiInterviewer.utiles.JWT; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpRequest; -import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; +import org.springframework.web.bind.annotation.*; import java.util.Map; @@ -32,18 +30,31 @@ public class UserController { return userService.adminLogin(phone, encoding, password); } - @GetMapping("/getuserinfo") - public R getUserInfo(HttpServletRequest request) { + @GetMapping("/get_userInfo") + public R getUserInfo( @ApiParam("token值") String token) { - String Token = request.getHeader("Authorization"); - - Integer userId = JWT.getTokenId(Token); + if(token==null){ + return R.error(401,"非法访问,请重新登陆!"); + } + Integer userId = JWT.getTokenId(token); User findUser = userService.getUserById(userId); if (findUser == null) { return R.error(401, "非法访问,请重新登陆"); } - return R.success(findUser); + User user=new User(); + user.setId(findUser.getId()); + user.setUsername(findUser.getUsername()); + user.setRole(findUser.getRole()); + user.setPhone(findUser.getPhone()); + user.setSex(findUser.getSex()); + user.setAge(findUser.getAge()); + user.setAvatar(findUser.getAvatar()); + user.setEmail(findUser.getEmail()); + user.setCreateTime(findUser.getCreateTime()); + user.setUpdateTime(findUser.getUpdateTime()); + + return R.success(user); } diff --git a/src/main/java/com/yzdx/AiInterviewer/entity/BaseEntity.java b/src/main/java/com/yzdx/AiInterviewer/entity/BaseEntity.java index 176b748..f2bf152 100644 --- a/src/main/java/com/yzdx/AiInterviewer/entity/BaseEntity.java +++ b/src/main/java/com/yzdx/AiInterviewer/entity/BaseEntity.java @@ -3,13 +3,12 @@ package com.yzdx.AiInterviewer.entity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.util.Date; @Data public class BaseEntity { @ApiModelProperty("电子邮箱") - private Date createTime; + private String createTime; @ApiModelProperty("电子邮箱") - private Date updateTime; + private String updateTime; @ApiModelProperty("电子邮箱") private Integer createUser; @ApiModelProperty("电子邮箱") diff --git a/src/main/java/com/yzdx/AiInterviewer/entity/Employee.java b/src/main/java/com/yzdx/AiInterviewer/entity/Employee.java new file mode 100644 index 0000000..07f86b1 --- /dev/null +++ b/src/main/java/com/yzdx/AiInterviewer/entity/Employee.java @@ -0,0 +1,48 @@ +package com.yzdx.AiInterviewer.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class Employee { + @ApiModelProperty("用户id") + @TableId(type = IdType.AUTO) + private Integer id; + @ApiModelProperty("姓名") + private String name; + @ApiModelProperty("手机号码") + private String phone; + @ApiModelProperty("电子邮箱") + private String email; + @ApiModelProperty("住址") + private String address; + @ApiModelProperty("入职日期") + private Date onboardDate; + @ApiModelProperty("部门id") + private Integer departmentId; + @ApiModelProperty("公司编码") + private Integer companyEncoding; + @ApiModelProperty("职位") + private String position; + @ApiModelProperty("上级id") + private Integer superior; + @ApiModelProperty("工资") + private Double salary; + @ApiModelProperty("绩效评分") + private Double performanceScore; + @ApiModelProperty("教育背景") + private String educationalBackground; + @ApiModelProperty("工作经历") + private String workExperience; + @ApiModelProperty("性别") + private String sex; + @ApiModelProperty("年龄") + private String age; + @ApiModelProperty("员工证件照") + private String avatar; + +} diff --git a/src/main/java/com/yzdx/AiInterviewer/entity/Question.java b/src/main/java/com/yzdx/AiInterviewer/entity/Question.java new file mode 100644 index 0000000..b9b5c15 --- /dev/null +++ b/src/main/java/com/yzdx/AiInterviewer/entity/Question.java @@ -0,0 +1,4 @@ +package com.yzdx.AiInterviewer.entity; + +public class Question { +} diff --git a/src/main/java/com/yzdx/AiInterviewer/entity/QuestionBank.java b/src/main/java/com/yzdx/AiInterviewer/entity/QuestionBank.java new file mode 100644 index 0000000..0f31975 --- /dev/null +++ b/src/main/java/com/yzdx/AiInterviewer/entity/QuestionBank.java @@ -0,0 +1,21 @@ +package com.yzdx.AiInterviewer.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ApiModel("题库实体类") +@Data +@TableName("question_bank") +public class QuestionBank extends BaseEntity{ + @ApiModelProperty("题库id") + @TableId(type = IdType.AUTO) + private Integer id; + @ApiModelProperty("题库名称") + private String name; + @ApiModelProperty("公司编码") + private Integer companyEncoding; +} diff --git a/src/main/java/com/yzdx/AiInterviewer/mapper/EmployeeMapper.java b/src/main/java/com/yzdx/AiInterviewer/mapper/EmployeeMapper.java new file mode 100644 index 0000000..e15f479 --- /dev/null +++ b/src/main/java/com/yzdx/AiInterviewer/mapper/EmployeeMapper.java @@ -0,0 +1,9 @@ +package com.yzdx.AiInterviewer.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yzdx.AiInterviewer.entity.Employee; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface EmployeeMapper extends BaseMapper { +} diff --git a/src/main/java/com/yzdx/AiInterviewer/mapper/QuestionBankMapper.java b/src/main/java/com/yzdx/AiInterviewer/mapper/QuestionBankMapper.java new file mode 100644 index 0000000..1ada03c --- /dev/null +++ b/src/main/java/com/yzdx/AiInterviewer/mapper/QuestionBankMapper.java @@ -0,0 +1,9 @@ +package com.yzdx.AiInterviewer.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yzdx.AiInterviewer.entity.QuestionBank; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface QuestionBankMapper extends BaseMapper { +} diff --git a/src/main/java/com/yzdx/AiInterviewer/service/QuestionBankService.java b/src/main/java/com/yzdx/AiInterviewer/service/QuestionBankService.java new file mode 100644 index 0000000..3617bb3 --- /dev/null +++ b/src/main/java/com/yzdx/AiInterviewer/service/QuestionBankService.java @@ -0,0 +1,26 @@ +package com.yzdx.AiInterviewer.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yzdx.AiInterviewer.entity.QuestionBank; + +import java.util.List; + +public interface QuestionBankService extends IService { + + /** + * @param encoding 公司编码 + * @return List 题库列表 + * */ + List getTypeList(Integer encoding); +/** + * @param typeName,encoding,userId + * @return 返回影响行数 + * */ + Integer addTypeName(String typeName,Integer encoding,Integer userId); + /** + * @param typeNameId,encoding,userId + * @return 返回影响行数 + * */ + Integer deleteTypeName(Integer typeNameId,Integer encoding,Integer userId); + +} diff --git a/src/main/java/com/yzdx/AiInterviewer/service/impl/QuestionBankServiceImpl.java b/src/main/java/com/yzdx/AiInterviewer/service/impl/QuestionBankServiceImpl.java new file mode 100644 index 0000000..8c58b3b --- /dev/null +++ b/src/main/java/com/yzdx/AiInterviewer/service/impl/QuestionBankServiceImpl.java @@ -0,0 +1,68 @@ +package com.yzdx.AiInterviewer.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yzdx.AiInterviewer.entity.QuestionBank; +import com.yzdx.AiInterviewer.mapper.QuestionBankMapper; +import com.yzdx.AiInterviewer.service.QuestionBankService; +import com.yzdx.AiInterviewer.utiles.TimeUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class QuestionBankServiceImpl extends ServiceImpl implements QuestionBankService { + + @Autowired + private QuestionBankMapper questionBankMapper; + + @Override + public List getTypeList(Integer encoding) { + //若公司编码为空,则返回空 + if(encoding==null){ + return null; + } + LambdaQueryWrapper queryWrapper =new LambdaQueryWrapper<>(); + + queryWrapper.eq(QuestionBank::getCompanyEncoding,encoding); + + List questionBanks= questionBankMapper.selectList(queryWrapper); + + return questionBanks; + } + + @Override + public Integer addTypeName(String typeName, Integer encoding, Integer userId) { + + //判断题库名是否存在 + LambdaQueryWrapper queryWrapper =new LambdaQueryWrapper<>(); + queryWrapper.eq(QuestionBank::getName,typeName); + QuestionBank findQuestionBank=questionBankMapper.selectOne(queryWrapper); + if(findQuestionBank!=null){ + //存在返回-2 + return -2; + } + + QuestionBank insert=new QuestionBank(); + insert.setName(typeName); + insert.setCompanyEncoding(encoding); + insert.setCreateUser(userId); + insert.setUpdateUser(userId); + insert.setCreateTime(TimeUtil.getTime()); + insert.setUpdateTime(TimeUtil.getTime()); + + return questionBankMapper.insert(insert); + + } + + @Override + public Integer deleteTypeName(Integer typeNameId, Integer encoding, Integer userId) { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + + queryWrapper.eq(QuestionBank::getId,typeNameId).eq(QuestionBank::getCompanyEncoding,encoding); + + Integer row= questionBankMapper.deleteById(typeNameId); + return row; + } +} diff --git a/src/main/java/com/yzdx/AiInterviewer/service/impl/UserServiceImpl.java b/src/main/java/com/yzdx/AiInterviewer/service/impl/UserServiceImpl.java index d91192d..c6f3000 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/impl/UserServiceImpl.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/impl/UserServiceImpl.java @@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yzdx.AiInterviewer.comment.R; import com.yzdx.AiInterviewer.entity.Company; +import com.yzdx.AiInterviewer.entity.Employee; import com.yzdx.AiInterviewer.entity.User; import com.yzdx.AiInterviewer.mapper.CompanyMapper; +import com.yzdx.AiInterviewer.mapper.EmployeeMapper; import com.yzdx.AiInterviewer.mapper.UserMapper; import com.yzdx.AiInterviewer.service.UserService; import com.yzdx.AiInterviewer.utiles.JWT; @@ -25,9 +27,23 @@ public class UserServiceImpl extends ServiceImpl implements Us @Autowired private CompanyMapper companyMapper; + @Autowired + private EmployeeMapper employeeMapper; + @Override public R adminLogin(String phone, String encoding, String password) { + //判断员工是否在该公司 + LambdaQueryWrapper queryWrapper2=new LambdaQueryWrapper<>(); + queryWrapper2.eq(Employee::getPhone,phone).eq(Employee::getCompanyEncoding,encoding); + Employee findEmployee=employeeMapper.selectOne(queryWrapper2); + + if(findEmployee==null){ + + return R.error("输入的账号或密码错误"); + } + + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper(); queryWrapper.eq(User::getPhone,phone); @@ -70,6 +86,7 @@ public class UserServiceImpl extends ServiceImpl implements Us Map data=new HashMap<>(); data.put("token",token); + data.put("encoding",encoding); return R.success(data); } diff --git a/src/main/java/com/yzdx/AiInterviewer/utiles/TimeUtil.java b/src/main/java/com/yzdx/AiInterviewer/utiles/TimeUtil.java new file mode 100644 index 0000000..ae62d90 --- /dev/null +++ b/src/main/java/com/yzdx/AiInterviewer/utiles/TimeUtil.java @@ -0,0 +1,18 @@ +package com.yzdx.AiInterviewer.utiles; + +import java.text.SimpleDateFormat; +import java.util.Date; + +public class TimeUtil { + + public static String getTime(){ + Date now =new Date(); + + SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd"); + + String time = simpleDateFormat.format(now); + return time; + } + +} +