diff --git a/src/main/java/com/controller/YishengController.java b/src/main/java/com/controller/YishengController.java index a080aa1..7e0e8bb 100644 --- a/src/main/java/com/controller/YishengController.java +++ b/src/main/java/com/controller/YishengController.java @@ -36,8 +36,7 @@ import com.alibaba.fastjson.*; * 后端接口 * @author * @email - */ -// 声明为RESTful控制器,处理HTTP请求并返回JSON数据 +*/ @RestController // 声明为Spring MVC控制器 @Controller @@ -51,10 +50,9 @@ public class YishengController { @Autowired private YishengService yishengService; - // 自动注入令牌服务类,用于生成和管理令牌 + @Autowired private TokenService tokenService; - // 自动注入字典服务类,用于字典表数据转换 @Autowired private DictionaryService dictionaryService; @@ -63,159 +61,121 @@ public class YishengController { private YonghuService yonghuService; /** - * 后端获取医生信息列表(分页) - */ + * 后端列表 + */ @RequestMapping("/page") - public R page(@RequestParam Map params, HttpServletRequest request) { - // 记录方法调用日志,包含控制器类名和请求参数 - logger.debug("page方法:,,Controller:{},,params:{}", this.getClass().getName(), JSONObject.toJSONString(params)); - // 从请求会话中获取用户角色 + public R page(@RequestParam Map params, HttpServletRequest request){ + logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params)); String role = String.valueOf(request.getSession().getAttribute("role")); - // 此条件永远为false,不会进入该分支 - if (false) - return R.error(511, "永不会进入"); - // 如果用户角色是"用户" - else if ("用户".equals(role)) - // 在请求参数中添加用户ID - params.put("yonghuId", request.getSession().getAttribute("userId")); - // 如果用户角色是"医生" - else if ("医生".equals(role)) - // 在请求参数中添加医生ID - params.put("yishengId", request.getSession().getAttribute("userId")); - // 如果请求参数中未指定排序字段,则默认按id排序 - if (params.get("orderBy") == null || params.get("orderBy") == "") { - params.put("orderBy", "id"); + if(false) + return R.error(511,"永不会进入"); + else if("用户".equals(role)) + params.put("yonghuId",request.getSession().getAttribute("userId")); + else if("医生".equals(role)) + params.put("yishengId",request.getSession().getAttribute("userId")); + if(params.get("orderBy")==null || params.get("orderBy")==""){ + params.put("orderBy","id"); } - // 调用医生服务的queryPage方法进行分页查询 PageUtils page = yishengService.queryPage(params); - // 将分页结果中的列表转换为医生视图列表 - List list = (List) page.getList(); - // 遍历医生视图列表,进行字典表数据转换 - for (YishengView c : list) { + //字典表数据转换 + List list =(List)page.getList(); + for(YishengView c:list){ + //修改对应字典表字段 dictionaryService.dictionaryConvert(c, request); } - // 返回成功响应,并将分页结果数据放入响应中 return R.ok().put("data", page); } /** - * 后端获取医生信息详情 - */ + * 后端详情 + */ @RequestMapping("/info/{id}") - public R info(@PathVariable("id") Long id, HttpServletRequest request) { - // 记录方法调用日志,包含控制器类名和请求的ID - logger.debug("info方法:,,Controller:{},,id:{}", this.getClass().getName(), id); - // 根据ID查询医生实体 + public R info(@PathVariable("id") Long id, HttpServletRequest request){ + logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id); YishengEntity yisheng = yishengService.selectById(id); - // 如果查询到医生实体 - if (yisheng != null) { - // 创建医生视图对象 + if(yisheng !=null){ + //entity转view YishengView view = new YishengView(); - // 将医生实体数据复制到医生视图中 - BeanUtils.copyProperties(yisheng, view); + BeanUtils.copyProperties( yisheng , view );//把实体数据重构到view中 - // 进行字典表数据转换 + //修改对应字典表字段 dictionaryService.dictionaryConvert(view, request); - // 返回成功响应,并将医生视图数据放入响应中 return R.ok().put("data", view); - } else { - // 如果未查询到数据,返回错误响应 - return R.error(511, "查不到数据"); + }else { + return R.error(511,"查不到数据"); } } /** - * 后端保存医生信息 - */ + * 后端保存 + */ @RequestMapping("/save") public R save(@RequestBody YishengEntity yisheng, HttpServletRequest request) { // 记录方法调用日志,包含控制器类名和要保存的医生实体信息 logger.debug("save方法:,,Controller:{},,yisheng:{}", this.getClass().getName(), yisheng.toString()); - // 从请求会话中获取用户角色 String role = String.valueOf(request.getSession().getAttribute("role")); - // 此条件永远为false,不会进入该分支 - if (false) - return R.error(511, "永远不会进入"); + if(false) + return R.error(511,"永远不会进入"); - // 创建查询包装器,检查用户名或联系方式是否已存在 Wrapper queryWrapper = new EntityWrapper() .eq("username", yisheng.getUsername()) .or() .eq("yisheng_phone", yisheng.getYishengPhone()); - // 记录生成的SQL查询语句 - logger.info("sql语句:" + queryWrapper.getSqlSegment()); - // 根据查询条件查询医生实体 + logger.info("sql语句:"+queryWrapper.getSqlSegment()); YishengEntity yishengEntity = yishengService.selectOne(queryWrapper); - // 如果未查询到相同的医生实体 - if (yishengEntity == null) { - // 设置创建时间为当前时间 + if(yishengEntity==null){ yisheng.setCreateTime(new Date()); - // 设置默认密码为123456 yisheng.setPassword("123456"); - // 插入医生信息到数据库 yishengService.insert(yisheng); - // 返回成功响应 return R.ok(); - } else { - // 如果已存在相同的用户名或联系方式,返回错误响应 - return R.error(511, "账户或者联系方式已经被使用"); + }else { + return R.error(511,"账户或者联系方式已经被使用"); } } /** - * 后端更新医生信息 - */ + * 后端修改 + */ @RequestMapping("/update") public R update(@RequestBody YishengEntity yisheng, HttpServletRequest request) { // 记录方法调用日志,包含控制器类名和要更新的医生实体信息 logger.debug("update方法:,,Controller:{},,yisheng:{}", this.getClass().getName(), yisheng.toString()); - // 从请求会话中获取用户角色 String role = String.valueOf(request.getSession().getAttribute("role")); - // 此条件被注释掉,不会进入该分支 -// if (false) -// return R.error(511, "永远不会进入"); - // 创建查询包装器,排除当前要更新的记录,检查用户名或联系方式是否已存在 +// if(false) +// return R.error(511,"永远不会进入"); + //根据字段查询是否有相同数据 Wrapper queryWrapper = new EntityWrapper() - .notIn("id", yisheng.getId()) - .andNew() - .eq("username", yisheng.getUsername()) - .or() - .eq("yisheng_phone", yisheng.getYishengPhone()); + .notIn("id",yisheng.getId()) + .andNew() + .eq("username", yisheng.getUsername()) + .or() + .eq("yisheng_phone", yisheng.getYishengPhone()) + ; - // 记录生成的SQL查询语句 - logger.info("sql语句:" + queryWrapper.getSqlSegment()); - // 根据查询条件查询医生实体 + logger.info("sql语句:"+queryWrapper.getSqlSegment()); YishengEntity yishengEntity = yishengService.selectOne(queryWrapper); - // 如果医生照片为空字符串或"null",设置为null - if ("".equals(yisheng.getYishengPhoto()) || "null".equals(yisheng.getYishengPhoto())) { - yisheng.setYishengPhoto(null); + if("".equals(yisheng.getYishengPhoto()) || "null".equals(yisheng.getYishengPhoto())){ + yisheng.setYishengPhoto(null); } - // 如果未查询到相同的医生实体 - if (yishengEntity == null) { - // 根据ID更新医生信息 - yishengService.updateById(yisheng); - // 返回成功响应 + if(yishengEntity==null){ + yishengService.updateById(yisheng);//根据id更新 return R.ok(); - } else { - // 如果已存在相同的用户名或联系方式,返回错误响应 - return R.error(511, "账户或者联系方式已经被使用"); + }else { + return R.error(511,"账户或者联系方式已经被使用"); } } /** - * 删除医生信息 - */ + * 删除 + */ @RequestMapping("/delete") - public R delete(@RequestBody Integer[] ids) { - // 记录方法调用日志,包含控制器类名和要删除的ID数组 - logger.debug("delete:,,Controller:{},,ids:{}", this.getClass().getName(), ids.toString()); - // 根据ID数组批量删除医生信息 + public R delete(@RequestBody Integer[] ids){ + logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString()); yishengService.deleteBatchIds(Arrays.asList(ids)); - // 返回成功响应 return R.ok(); } @@ -227,41 +187,28 @@ public class YishengController { // 记录方法调用日志,包含控制器类名和文件名 logger.debug("batchInsert方法:,,Controller:{},,fileName:{}", this.getClass().getName(), fileName); try { - // 创建列表用于存储要上传的医生实体 - List yishengList = new ArrayList<>(); - // 创建Map用于存储要查询的字段 - Map> seachFields = new HashMap<>(); - // 获取当前日期 + List yishengList = new ArrayList<>();//上传的东西 + Map> seachFields= new HashMap<>();//要查询的字段 Date date = new Date(); // 获取文件名中最后一个点的索引 int lastIndexOf = fileName.lastIndexOf("."); - // 如果文件名没有后缀,返回错误响应 - if (lastIndexOf == -1) { - return R.error(511, "该文件没有后缀"); - } else { - // 获取文件后缀 + if(lastIndexOf == -1){ + return R.error(511,"该文件没有后缀"); + }else{ String suffix = fileName.substring(lastIndexOf); - // 如果文件后缀不是.xls,返回错误响应 - if (!".xls".equals(suffix)) { - return R.error(511, "只支持后缀为xls的excel文件"); - } else { - // 获取文件路径 - URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName); - // 创建文件对象 + if(!".xls".equals(suffix)){ + return R.error(511,"只支持后缀为xls的excel文件"); + }else{ + URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径 File file = new File(resource.getFile()); - // 如果文件不存在,返回错误响应 - if (!file.exists()) { - return R.error(511, "找不到上传文件,请联系管理员"); - } else { - // 读取xls文件数据 - List> dataList = PoiUtil.poiImport(file.getPath()); - // 删除第一行(表头) - dataList.remove(0); - // 遍历数据行 - for (List data : dataList) { - // 创建医生实体对象 + if(!file.exists()){ + return R.error(511,"找不到上传文件,请联系管理员"); + }else{ + List> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件 + dataList.remove(0);//删除第一行,因为第一行是提示 + for(List data:dataList){ + //循环 YishengEntity yishengEntity = new YishengEntity(); - // 以下字段赋值被注释,需根据实际情况修改 // yishengEntity.setYishengUuidNumber(data.get(0)); //医生工号 要改的 // yishengEntity.setUsername(data.get(0)); //账户 要改的 // //yishengEntity.setPassword("123456");//密码 @@ -276,41 +223,41 @@ public class YishengController { // yishengEntity.setYishengNewMoney(data.get(0)); //挂号价格 要改的 // yishengEntity.setYishengContent("");//照片 // yishengEntity.setCreateTime(date);//时间 - // 将医生实体添加到列表中 yishengList.add(yishengEntity); - // 将可能重复的字段添加到seachFields中 - // 医生工号 - if (seachFields.containsKey("yishengUuidNumber")) { - List yishengUuidNumber = seachFields.get("yishengUuidNumber"); - yishengUuidNumber.add(data.get(0));//要改的 - } else { - List yishengUuidNumber = new ArrayList<>(); - yishengUuidNumber.add(data.get(0));//要改的 - seachFields.put("yishengUuidNumber", yishengUuidNumber); - } - // 账户 - if (seachFields.containsKey("username")) { - List username = seachFields.get("username"); - username.add(data.get(0));//要改的 - } else { - List username = new ArrayList<>(); - username.add(data.get(0));//要改的 - seachFields.put("username", username); - } - // 联系方式 - if (seachFields.containsKey("yishengPhone")) { - List yishengPhone = seachFields.get("yishengPhone"); - yishengPhone.add(data.get(0));//要改的 - } else { - List yishengPhone = new ArrayList<>(); - yishengPhone.add(data.get(0));//要改的 - seachFields.put("yishengPhone", yishengPhone); - } + + //把要查询是否重复的字段放入map中 + //医生工号 + if(seachFields.containsKey("yishengUuidNumber")){ + List yishengUuidNumber = seachFields.get("yishengUuidNumber"); + yishengUuidNumber.add(data.get(0));//要改的 + }else{ + List yishengUuidNumber = new ArrayList<>(); + yishengUuidNumber.add(data.get(0));//要改的 + seachFields.put("yishengUuidNumber",yishengUuidNumber); + } + //账户 + if(seachFields.containsKey("username")){ + List username = seachFields.get("username"); + username.add(data.get(0));//要改的 + }else{ + List username = new ArrayList<>(); + username.add(data.get(0));//要改的 + seachFields.put("username",username); + } + //联系方式 + if(seachFields.containsKey("yishengPhone")){ + List yishengPhone = seachFields.get("yishengPhone"); + yishengPhone.add(data.get(0));//要改的 + }else{ + List yishengPhone = new ArrayList<>(); + yishengPhone.add(data.get(0));//要改的 + seachFields.put("yishengPhone",yishengPhone); + } } - // 检查是否有重复数据 - // 医生工号 + //查询是否重复 + //医生工号 List yishengEntities_yishengUuidNumber = yishengService.selectList(new EntityWrapper().in("yisheng_uuid_number", seachFields.get("yishengUuidNumber"))); if (yishengEntities_yishengUuidNumber.size() > 0) { ArrayList repeatFields = new ArrayList<>(); @@ -337,29 +284,193 @@ public class YishengController { } return R.error(511, "数据库的该表中的 [联系方式] 字段已经存在 存在数据为:" + repeatFields.toString()); } - // 批量插入医生信息 yishengService.insertBatch(yishengList); - // 返回成功响应 return R.ok(); } } } - } catch (Exception e) { - // 如果发生异常,返回错误响应 - return R.error(511, "批量插入数据异常,请联系管理员"); + }catch (Exception e){ + return R.error(511,"批量插入数据异常,请联系管理员"); } } /** - * 医生登录 - */ + * 登录 + */ @IgnoreAuth @RequestMapping(value = "/login") public R login(String username, String password, String captcha, HttpServletRequest request) { - // 根据用户名查询医生实体 YishengEntity yisheng = yishengService.selectOne(new EntityWrapper().eq("username", username)); - // 如果医生不存在或密码不正确 - if (yisheng == null || !yisheng.getPassword().equals(password)) + if(yisheng==null || !yisheng.getPassword().equals(password)) return R.error("账号或密码不正确"); - // 以下代码被注释,可能是获取字典表相关操作,目前未启用 - // // \ No newline at end of file + // // 获取监听器中的字典表 + // ServletContext servletContext = ContextLoader.getCurrentWebApplicationContext().getServletContext(); + // Map> dictionaryMap= (Map>) servletContext.getAttribute("dictionaryMap"); + // Map role_types = dictionaryMap.get("role_types"); + // role_types.get(.getRoleTypes()); + String token = tokenService.generateToken(yisheng.getId(),username, "yisheng", "医生"); + R r = R.ok(); + r.put("token", token); + r.put("role","医生"); + r.put("username",yisheng.getYishengName()); + r.put("tableName","yisheng"); + r.put("userId",yisheng.getId()); + return r; + } + + /** + * 注册 + */ + @IgnoreAuth + @PostMapping(value = "/register") + public R register(@RequestBody YishengEntity yisheng){ +// ValidatorUtils.validateEntity(user); + Wrapper queryWrapper = new EntityWrapper() + .eq("username", yisheng.getUsername()) + .or() + .eq("yisheng_phone", yisheng.getYishengPhone()) + ; + YishengEntity yishengEntity = yishengService.selectOne(queryWrapper); + if(yishengEntity != null) + return R.error("账户或者联系方式已经被使用"); + yisheng.setYishengNewMoney(0.0); + yisheng.setCreateTime(new Date()); + yishengService.insert(yisheng); + return R.ok(); + } + + /** + * 重置密码 + */ + @GetMapping(value = "/resetPassword") + public R resetPassword(Integer id){ + YishengEntity yisheng = new YishengEntity(); + yisheng.setPassword("123456"); + yisheng.setId(id); + yishengService.updateById(yisheng); + return R.ok(); + } + + + /** + * 忘记密码 + */ + @IgnoreAuth + @RequestMapping(value = "/resetPass") + public R resetPass(String username, HttpServletRequest request) { + YishengEntity yisheng = yishengService.selectOne(new EntityWrapper().eq("username", username)); + if(yisheng!=null){ + yisheng.setPassword("123456"); + boolean b = yishengService.updateById(yisheng); + if(!b){ + return R.error(); + } + }else{ + return R.error("账号不存在"); + } + return R.ok(); + } + + + /** + * 获取用户的session用户信息 + */ + @RequestMapping("/session") + public R getCurrYisheng(HttpServletRequest request){ + Integer id = (Integer)request.getSession().getAttribute("userId"); + YishengEntity yisheng = yishengService.selectById(id); + if(yisheng !=null){ + //entity转view + YishengView view = new YishengView(); + BeanUtils.copyProperties( yisheng , view );//把实体数据重构到view中 + + //修改对应字典表字段 + dictionaryService.dictionaryConvert(view, request); + return R.ok().put("data", view); + }else { + return R.error(511,"查不到数据"); + } + } + + + /** + * 退出 + */ + @GetMapping(value = "logout") + public R logout(HttpServletRequest request) { + request.getSession().invalidate(); + return R.ok("退出成功"); + } + + + + + /** + * 前端列表 + */ + @IgnoreAuth + @RequestMapping("/list") + public R list(@RequestParam Map params, HttpServletRequest request){ + logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params)); + + // 没有指定排序字段就默认id倒序 + if(StringUtil.isEmpty(String.valueOf(params.get("orderBy")))){ + params.put("orderBy","id"); + } + PageUtils page = yishengService.queryPage(params); + + //字典表数据转换 + List list =(List)page.getList(); + for(YishengView c:list) + dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段 + return R.ok().put("data", page); + } + + /** + * 前端详情 + */ + @RequestMapping("/detail/{id}") + public R detail(@PathVariable("id") Long id, HttpServletRequest request){ + logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id); + YishengEntity yisheng = yishengService.selectById(id); + if(yisheng !=null){ + + + //entity转view + YishengView view = new YishengView(); + BeanUtils.copyProperties( yisheng , view );//把实体数据重构到view中 + + //修改对应字典表字段 + dictionaryService.dictionaryConvert(view, request); + return R.ok().put("data", view); + }else { + return R.error(511,"查不到数据"); + } + } + + + /** + * 前端保存 + */ + @RequestMapping("/add") + public R add(@RequestBody YishengEntity yisheng, HttpServletRequest request){ + logger.debug("add方法:,,Controller:{},,yisheng:{}",this.getClass().getName(),yisheng.toString()); + Wrapper queryWrapper = new EntityWrapper() + .eq("username", yisheng.getUsername()) + .or() + .eq("yisheng_phone", yisheng.getYishengPhone()) + ; + logger.info("sql语句:"+queryWrapper.getSqlSegment()); + YishengEntity yishengEntity = yishengService.selectOne(queryWrapper); + if(yishengEntity==null){ + yisheng.setCreateTime(new Date()); + yisheng.setPassword("123456"); + yishengService.insert(yisheng); + return R.ok(); + }else { + return R.error(511,"账户或者联系方式已经被使用"); + } + } + + +} diff --git a/src/main/java/com/controller/YonghuController.java b/src/main/java/com/controller/YonghuController.java index a080aa1..5ccb116 100644 --- a/src/main/java/com/controller/YonghuController.java +++ b/src/main/java/com/controller/YonghuController.java @@ -32,334 +32,468 @@ import com.utils.R; import com.alibaba.fastjson.*; /** - * 医生 + * 用户 * 后端接口 * @author * @email - */ -// 声明为RESTful控制器,处理HTTP请求并返回JSON数据 +*/ @RestController -// 声明为Spring MVC控制器 @Controller -// 定义请求映射路径,所有以/yisheng开头的请求由该控制器处理 -@RequestMapping("/yisheng") -public class YishengController { - // 日志记录器,用于记录当前控制器的日志信息 - private static final Logger logger = LoggerFactory.getLogger(YishengController.class); +@RequestMapping("/yonghu") +public class YonghuController { + private static final Logger logger = LoggerFactory.getLogger(YonghuController.class); - // 自动注入医生服务类,用于处理医生相关业务逻辑 @Autowired - private YishengService yishengService; + private YonghuService yonghuService; + - // 自动注入令牌服务类,用于生成和管理令牌 @Autowired private TokenService tokenService; - // 自动注入字典服务类,用于字典表数据转换 @Autowired - private DictionaryService dictionaryService; + private DictionaryService dictionaryService; // 字典服务 + + //级联表service - // 级联表service,自动注入用户服务类 @Autowired - private YonghuService yonghuService; + private YishengService yishengService; + /** - * 后端获取医生信息列表(分页) - */ + * 后端列表 + */ @RequestMapping("/page") - public R page(@RequestParam Map params, HttpServletRequest request) { - // 记录方法调用日志,包含控制器类名和请求参数 - logger.debug("page方法:,,Controller:{},,params:{}", this.getClass().getName(), JSONObject.toJSONString(params)); - // 从请求会话中获取用户角色 + public R page(@RequestParam Map params, HttpServletRequest request){ + logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params)); String role = String.valueOf(request.getSession().getAttribute("role")); - // 此条件永远为false,不会进入该分支 - if (false) - return R.error(511, "永不会进入"); - // 如果用户角色是"用户" - else if ("用户".equals(role)) - // 在请求参数中添加用户ID - params.put("yonghuId", request.getSession().getAttribute("userId")); - // 如果用户角色是"医生" - else if ("医生".equals(role)) - // 在请求参数中添加医生ID - params.put("yishengId", request.getSession().getAttribute("userId")); - // 如果请求参数中未指定排序字段,则默认按id排序 - if (params.get("orderBy") == null || params.get("orderBy") == "") { - params.put("orderBy", "id"); + if(false) + return R.error(511,"永不会进入"); + else if("用户".equals(role)) + params.put("yonghuId",request.getSession().getAttribute("userId")); + else if("医生".equals(role)) + params.put("yishengId",request.getSession().getAttribute("userId")); + params.put("yonghuDeleteStart",1);params.put("yonghuDeleteEnd",1); + if(params.get("orderBy")==null || params.get("orderBy")==""){ + params.put("orderBy","id"); } - // 调用医生服务的queryPage方法进行分页查询 - PageUtils page = yishengService.queryPage(params); + PageUtils page = yonghuService.queryPage(params); - // 将分页结果中的列表转换为医生视图列表 - List list = (List) page.getList(); - // 遍历医生视图列表,进行字典表数据转换 - for (YishengView c : list) { + //字典表数据转换 + List list =(List)page.getList(); + for(YonghuView c:list){ + //修改对应字典表字段 dictionaryService.dictionaryConvert(c, request); } - // 返回成功响应,并将分页结果数据放入响应中 return R.ok().put("data", page); } /** - * 后端获取医生信息详情 - */ + * 后端详情 + */ @RequestMapping("/info/{id}") - public R info(@PathVariable("id") Long id, HttpServletRequest request) { - // 记录方法调用日志,包含控制器类名和请求的ID - logger.debug("info方法:,,Controller:{},,id:{}", this.getClass().getName(), id); - // 根据ID查询医生实体 - YishengEntity yisheng = yishengService.selectById(id); - // 如果查询到医生实体 - if (yisheng != null) { - // 创建医生视图对象 - YishengView view = new YishengView(); - // 将医生实体数据复制到医生视图中 - BeanUtils.copyProperties(yisheng, view); - - // 进行字典表数据转换 + public R info(@PathVariable("id") Long id, HttpServletRequest request){ + logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id); + YonghuEntity yonghu = yonghuService.selectById(id); + if(yonghu !=null){ + //entity转view + YonghuView view = new YonghuView(); + BeanUtils.copyProperties( yonghu , view );//把实体数据重构到view中 + + //修改对应字典表字段 dictionaryService.dictionaryConvert(view, request); - // 返回成功响应,并将医生视图数据放入响应中 return R.ok().put("data", view); - } else { - // 如果未查询到数据,返回错误响应 - return R.error(511, "查不到数据"); + }else { + return R.error(511,"查不到数据"); } } /** - * 后端保存医生信息 - */ + * 后端保存 + */ @RequestMapping("/save") - public R save(@RequestBody YishengEntity yisheng, HttpServletRequest request) { - // 记录方法调用日志,包含控制器类名和要保存的医生实体信息 - logger.debug("save方法:,,Controller:{},,yisheng:{}", this.getClass().getName(), yisheng.toString()); + public R save(@RequestBody YonghuEntity yonghu, HttpServletRequest request){ + logger.debug("save方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString()); - // 从请求会话中获取用户角色 String role = String.valueOf(request.getSession().getAttribute("role")); - // 此条件永远为false,不会进入该分支 - if (false) - return R.error(511, "永远不会进入"); - - // 创建查询包装器,检查用户名或联系方式是否已存在 - Wrapper queryWrapper = new EntityWrapper() - .eq("username", yisheng.getUsername()) - .or() - .eq("yisheng_phone", yisheng.getYishengPhone()); - - // 记录生成的SQL查询语句 - logger.info("sql语句:" + queryWrapper.getSqlSegment()); - // 根据查询条件查询医生实体 - YishengEntity yishengEntity = yishengService.selectOne(queryWrapper); - // 如果未查询到相同的医生实体 - if (yishengEntity == null) { - // 设置创建时间为当前时间 - yisheng.setCreateTime(new Date()); - // 设置默认密码为123456 - yisheng.setPassword("123456"); - // 插入医生信息到数据库 - yishengService.insert(yisheng); - // 返回成功响应 + if(false) + return R.error(511,"永远不会进入"); + + Wrapper queryWrapper = new EntityWrapper() + .eq("username", yonghu.getUsername()) + .or() + .eq("yonghu_phone", yonghu.getYonghuPhone()) + .or() + .eq("yonghu_id_number", yonghu.getYonghuIdNumber()) + .andNew() + .eq("yonghu_delete", 1) + ; + + logger.info("sql语句:"+queryWrapper.getSqlSegment()); + YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper); + if(yonghuEntity==null){ + yonghu.setYonghuDelete(1); + yonghu.setCreateTime(new Date()); + yonghu.setPassword("123456"); + yonghuService.insert(yonghu); return R.ok(); - } else { - // 如果已存在相同的用户名或联系方式,返回错误响应 - return R.error(511, "账户或者联系方式已经被使用"); + }else { + return R.error(511,"账户或者用户手机号或者用户身份证号已经被使用"); } } /** - * 后端更新医生信息 - */ + * 后端修改 + */ @RequestMapping("/update") - public R update(@RequestBody YishengEntity yisheng, HttpServletRequest request) { - // 记录方法调用日志,包含控制器类名和要更新的医生实体信息 - logger.debug("update方法:,,Controller:{},,yisheng:{}", this.getClass().getName(), yisheng.toString()); + public R update(@RequestBody YonghuEntity yonghu, HttpServletRequest request){ + logger.debug("update方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString()); - // 从请求会话中获取用户角色 String role = String.valueOf(request.getSession().getAttribute("role")); - // 此条件被注释掉,不会进入该分支 -// if (false) -// return R.error(511, "永远不会进入"); - // 创建查询包装器,排除当前要更新的记录,检查用户名或联系方式是否已存在 - Wrapper queryWrapper = new EntityWrapper() - .notIn("id", yisheng.getId()) - .andNew() - .eq("username", yisheng.getUsername()) - .or() - .eq("yisheng_phone", yisheng.getYishengPhone()); - - // 记录生成的SQL查询语句 - logger.info("sql语句:" + queryWrapper.getSqlSegment()); - // 根据查询条件查询医生实体 - YishengEntity yishengEntity = yishengService.selectOne(queryWrapper); - // 如果医生照片为空字符串或"null",设置为null - if ("".equals(yisheng.getYishengPhoto()) || "null".equals(yisheng.getYishengPhoto())) { - yisheng.setYishengPhoto(null); +// if(false) +// return R.error(511,"永远不会进入"); + //根据字段查询是否有相同数据 + Wrapper queryWrapper = new EntityWrapper() + .notIn("id",yonghu.getId()) + .andNew() + .eq("username", yonghu.getUsername()) + .or() + .eq("yonghu_phone", yonghu.getYonghuPhone()) + .or() + .eq("yonghu_id_number", yonghu.getYonghuIdNumber()) + .andNew() + .eq("yonghu_delete", 1) + ; + + logger.info("sql语句:"+queryWrapper.getSqlSegment()); + YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper); + if("".equals(yonghu.getYonghuPhoto()) || "null".equals(yonghu.getYonghuPhoto())){ + yonghu.setYonghuPhoto(null); } - // 如果未查询到相同的医生实体 - if (yishengEntity == null) { - // 根据ID更新医生信息 - yishengService.updateById(yisheng); - // 返回成功响应 + if(yonghuEntity==null){ + yonghuService.updateById(yonghu);//根据id更新 return R.ok(); - } else { - // 如果已存在相同的用户名或联系方式,返回错误响应 - return R.error(511, "账户或者联系方式已经被使用"); + }else { + return R.error(511,"账户或者用户手机号或者用户身份证号已经被使用"); } } /** - * 删除医生信息 - */ + * 删除 + */ @RequestMapping("/delete") - public R delete(@RequestBody Integer[] ids) { - // 记录方法调用日志,包含控制器类名和要删除的ID数组 - logger.debug("delete:,,Controller:{},,ids:{}", this.getClass().getName(), ids.toString()); - // 根据ID数组批量删除医生信息 - yishengService.deleteBatchIds(Arrays.asList(ids)); - // 返回成功响应 + public R delete(@RequestBody Integer[] ids){ + logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString()); + ArrayList list = new ArrayList<>(); + for(Integer id:ids){ + YonghuEntity yonghuEntity = new YonghuEntity(); + yonghuEntity.setId(id); + yonghuEntity.setYonghuDelete(2); + list.add(yonghuEntity); + } + if(list != null && list.size() >0){ + yonghuService.updateBatchById(list); + } return R.ok(); } /** - * 批量上传医生信息 + * 批量上传 */ @RequestMapping("/batchInsert") - public R save(String fileName) { - // 记录方法调用日志,包含控制器类名和文件名 - logger.debug("batchInsert方法:,,Controller:{},,fileName:{}", this.getClass().getName(), fileName); + public R save( String fileName){ + logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName); try { - // 创建列表用于存储要上传的医生实体 - List yishengList = new ArrayList<>(); - // 创建Map用于存储要查询的字段 - Map> seachFields = new HashMap<>(); - // 获取当前日期 + List yonghuList = new ArrayList<>();//上传的东西 + Map> seachFields= new HashMap<>();//要查询的字段 Date date = new Date(); - // 获取文件名中最后一个点的索引 int lastIndexOf = fileName.lastIndexOf("."); - // 如果文件名没有后缀,返回错误响应 - if (lastIndexOf == -1) { - return R.error(511, "该文件没有后缀"); - } else { - // 获取文件后缀 + if(lastIndexOf == -1){ + return R.error(511,"该文件没有后缀"); + }else{ String suffix = fileName.substring(lastIndexOf); - // 如果文件后缀不是.xls,返回错误响应 - if (!".xls".equals(suffix)) { - return R.error(511, "只支持后缀为xls的excel文件"); - } else { - // 获取文件路径 - URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName); - // 创建文件对象 + if(!".xls".equals(suffix)){ + return R.error(511,"只支持后缀为xls的excel文件"); + }else{ + URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径 File file = new File(resource.getFile()); - // 如果文件不存在,返回错误响应 - if (!file.exists()) { - return R.error(511, "找不到上传文件,请联系管理员"); - } else { - // 读取xls文件数据 - List> dataList = PoiUtil.poiImport(file.getPath()); - // 删除第一行(表头) - dataList.remove(0); - // 遍历数据行 - for (List data : dataList) { - // 创建医生实体对象 - YishengEntity yishengEntity = new YishengEntity(); - // 以下字段赋值被注释,需根据实际情况修改 -// yishengEntity.setYishengUuidNumber(data.get(0)); //医生工号 要改的 -// yishengEntity.setUsername(data.get(0)); //账户 要改的 -// //yishengEntity.setPassword("123456");//密码 -// yishengEntity.setYishengName(data.get(0)); //医生名称 要改的 -// yishengEntity.setYishengTypes(Integer.valueOf(data.get(0))); //科室 要改的 -// yishengEntity.setZhiweiTypes(Integer.valueOf(data.get(0))); //职位 要改的 -// yishengEntity.setYishengZhichneg(data.get(0)); //职称 要改的 -// yishengEntity.setYishengPhoto("");//照片 -// yishengEntity.setYishengPhone(data.get(0)); //联系方式 要改的 -// yishengEntity.setYishengGuahao(data.get(0)); //挂号须知 要改的 -// yishengEntity.setYishengEmail(data.get(0)); //邮箱 要改的 -// yishengEntity.setYishengNewMoney(data.get(0)); //挂号价格 要改的 -// yishengEntity.setYishengContent("");//照片 -// yishengEntity.setCreateTime(date);//时间 - // 将医生实体添加到列表中 - yishengList.add(yishengEntity); - - // 将可能重复的字段添加到seachFields中 - // 医生工号 - if (seachFields.containsKey("yishengUuidNumber")) { - List yishengUuidNumber = seachFields.get("yishengUuidNumber"); - yishengUuidNumber.add(data.get(0));//要改的 - } else { - List yishengUuidNumber = new ArrayList<>(); - yishengUuidNumber.add(data.get(0));//要改的 - seachFields.put("yishengUuidNumber", yishengUuidNumber); - } - // 账户 - if (seachFields.containsKey("username")) { - List username = seachFields.get("username"); - username.add(data.get(0));//要改的 - } else { - List username = new ArrayList<>(); - username.add(data.get(0));//要改的 - seachFields.put("username", username); - } - // 联系方式 - if (seachFields.containsKey("yishengPhone")) { - List yishengPhone = seachFields.get("yishengPhone"); - yishengPhone.add(data.get(0));//要改的 - } else { - List yishengPhone = new ArrayList<>(); - yishengPhone.add(data.get(0));//要改的 - seachFields.put("yishengPhone", yishengPhone); - } + if(!file.exists()){ + return R.error(511,"找不到上传文件,请联系管理员"); + }else{ + List> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件 + dataList.remove(0);//删除第一行,因为第一行是提示 + for(List data:dataList){ + //循环 + YonghuEntity yonghuEntity = new YonghuEntity(); +// yonghuEntity.setUsername(data.get(0)); //账户 要改的 +// //yonghuEntity.setPassword("123456");//密码 +// yonghuEntity.setYonghuName(data.get(0)); //用户姓名 要改的 +// yonghuEntity.setYonghuPhoto("");//照片 +// yonghuEntity.setYonghuPhone(data.get(0)); //用户手机号 要改的 +// yonghuEntity.setYonghuIdNumber(data.get(0)); //用户身份证号 要改的 +// yonghuEntity.setYonghuEmail(data.get(0)); //邮箱 要改的 +// yonghuEntity.setSexTypes(Integer.valueOf(data.get(0))); //性别 要改的 +// yonghuEntity.setNewMoney(data.get(0)); //余额 要改的 +// yonghuEntity.setYonghuDelete(1);//逻辑删除字段 +// yonghuEntity.setCreateTime(date);//时间 + yonghuList.add(yonghuEntity); + + + //把要查询是否重复的字段放入map中 + //账户 + if(seachFields.containsKey("username")){ + List username = seachFields.get("username"); + username.add(data.get(0));//要改的 + }else{ + List username = new ArrayList<>(); + username.add(data.get(0));//要改的 + seachFields.put("username",username); + } + //用户手机号 + if(seachFields.containsKey("yonghuPhone")){ + List yonghuPhone = seachFields.get("yonghuPhone"); + yonghuPhone.add(data.get(0));//要改的 + }else{ + List yonghuPhone = new ArrayList<>(); + yonghuPhone.add(data.get(0));//要改的 + seachFields.put("yonghuPhone",yonghuPhone); + } + //用户身份证号 + if(seachFields.containsKey("yonghuIdNumber")){ + List yonghuIdNumber = seachFields.get("yonghuIdNumber"); + yonghuIdNumber.add(data.get(0));//要改的 + }else{ + List yonghuIdNumber = new ArrayList<>(); + yonghuIdNumber.add(data.get(0));//要改的 + seachFields.put("yonghuIdNumber",yonghuIdNumber); + } } - // 检查是否有重复数据 - // 医生工号 - List yishengEntities_yishengUuidNumber = yishengService.selectList(new EntityWrapper().in("yisheng_uuid_number", seachFields.get("yishengUuidNumber"))); - if (yishengEntities_yishengUuidNumber.size() > 0) { + //查询是否重复 + //账户 + List yonghuEntities_username = yonghuService.selectList(new EntityWrapper().in("username", seachFields.get("username")).eq("yonghu_delete", 1)); + if(yonghuEntities_username.size() >0 ){ ArrayList repeatFields = new ArrayList<>(); - for (YishengEntity s : yishengEntities_yishengUuidNumber) { - repeatFields.add(s.getYishengUuidNumber()); + for(YonghuEntity s:yonghuEntities_username){ + repeatFields.add(s.getUsername()); } - return R.error(511, "数据库的该表中的 [医生工号] 字段已经存在 存在数据为:" + repeatFields.toString()); + return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString()); } - // 账户 - List yishengEntities_username = yishengService.selectList(new EntityWrapper().in("username", seachFields.get("username"))); - if (yishengEntities_username.size() > 0) { + //用户手机号 + List yonghuEntities_yonghuPhone = yonghuService.selectList(new EntityWrapper().in("yonghu_phone", seachFields.get("yonghuPhone")).eq("yonghu_delete", 1)); + if(yonghuEntities_yonghuPhone.size() >0 ){ ArrayList repeatFields = new ArrayList<>(); - for (YishengEntity s : yishengEntities_username) { - repeatFields.add(s.getUsername()); + for(YonghuEntity s:yonghuEntities_yonghuPhone){ + repeatFields.add(s.getYonghuPhone()); } - return R.error(511, "数据库的该表中的 [账户] 字段已经存在 存在数据为:" + repeatFields.toString()); + return R.error(511,"数据库的该表中的 [用户手机号] 字段已经存在 存在数据为:"+repeatFields.toString()); } - // 联系方式 - List yishengEntities_yishengPhone = yishengService.selectList(new EntityWrapper().in("yisheng_phone", seachFields.get("yishengPhone"))); - if (yishengEntities_yishengPhone.size() > 0) { + //用户身份证号 + List yonghuEntities_yonghuIdNumber = yonghuService.selectList(new EntityWrapper().in("yonghu_id_number", seachFields.get("yonghuIdNumber")).eq("yonghu_delete", 1)); + if(yonghuEntities_yonghuIdNumber.size() >0 ){ ArrayList repeatFields = new ArrayList<>(); - for (YishengEntity s : yishengEntities_yishengPhone) { - repeatFields.add(s.getYishengPhone()); + for(YonghuEntity s:yonghuEntities_yonghuIdNumber){ + repeatFields.add(s.getYonghuIdNumber()); } - return R.error(511, "数据库的该表中的 [联系方式] 字段已经存在 存在数据为:" + repeatFields.toString()); + return R.error(511,"数据库的该表中的 [用户身份证号] 字段已经存在 存在数据为:"+repeatFields.toString()); } - // 批量插入医生信息 - yishengService.insertBatch(yishengList); - // 返回成功响应 + yonghuService.insertBatch(yonghuList); return R.ok(); } } } - } catch (Exception e) { - // 如果发生异常,返回错误响应 - return R.error(511, "批量插入数据异常,请联系管理员"); + }catch (Exception e){ + return R.error(511,"批量插入数据异常,请联系管理员"); } } /** - * 医生登录 - */ + * 登录 + */ @IgnoreAuth @RequestMapping(value = "/login") public R login(String username, String password, String captcha, HttpServletRequest request) { - // 根据用户名查询医生实体 - YishengEntity yisheng = yishengService.selectOne(new EntityWrapper().eq("username", username)); - // 如果医生不存在或密码不正确 - if (yisheng == null || !yisheng.getPassword().equals(password)) + YonghuEntity yonghu = yonghuService.selectOne(new EntityWrapper().eq("username", username)); + if(yonghu==null || !yonghu.getPassword().equals(password)) return R.error("账号或密码不正确"); - // 以下代码被注释,可能是获取字典表相关操作,目前未启用 - // // \ No newline at end of file + else if(yonghu.getYonghuDelete() != 1) + return R.error("账户已被删除"); + // // 获取监听器中的字典表 + // ServletContext servletContext = ContextLoader.getCurrentWebApplicationContext().getServletContext(); + // Map> dictionaryMap= (Map>) servletContext.getAttribute("dictionaryMap"); + // Map role_types = dictionaryMap.get("role_types"); + // role_types.get(.getRoleTypes()); + String token = tokenService.generateToken(yonghu.getId(),username, "yonghu", "用户"); + R r = R.ok(); + r.put("token", token); + r.put("role","用户"); + r.put("username",yonghu.getYonghuName()); + r.put("tableName","yonghu"); + r.put("userId",yonghu.getId()); + return r; + } + + /** + * 注册 + */ + @IgnoreAuth + @PostMapping(value = "/register") + public R register(@RequestBody YonghuEntity yonghu){ +// ValidatorUtils.validateEntity(user); + Wrapper queryWrapper = new EntityWrapper() + .eq("username", yonghu.getUsername()) + .or() + .eq("yonghu_phone", yonghu.getYonghuPhone()) + .or() + .eq("yonghu_id_number", yonghu.getYonghuIdNumber()) + .andNew() + .eq("yonghu_delete", 1) + ; + YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper); + if(yonghuEntity != null) + return R.error("账户或者用户手机号或者用户身份证号已经被使用"); + yonghu.setNewMoney(0.0); + yonghu.setYonghuDelete(1); + yonghu.setCreateTime(new Date()); + yonghuService.insert(yonghu); + return R.ok(); + } + + /** + * 重置密码 + */ + @GetMapping(value = "/resetPassword") + public R resetPassword(Integer id){ + YonghuEntity yonghu = new YonghuEntity(); + yonghu.setPassword("123456"); + yonghu.setId(id); + yonghuService.updateById(yonghu); + return R.ok(); + } + + + /** + * 忘记密码 + */ + @IgnoreAuth + @RequestMapping(value = "/resetPass") + public R resetPass(String username, HttpServletRequest request) { + YonghuEntity yonghu = yonghuService.selectOne(new EntityWrapper().eq("username", username)); + if(yonghu!=null){ + yonghu.setPassword("123456"); + boolean b = yonghuService.updateById(yonghu); + if(!b){ + return R.error(); + } + }else{ + return R.error("账号不存在"); + } + return R.ok(); + } + + + /** + * 获取用户的session用户信息 + */ + @RequestMapping("/session") + public R getCurrYonghu(HttpServletRequest request){ + Integer id = (Integer)request.getSession().getAttribute("userId"); + YonghuEntity yonghu = yonghuService.selectById(id); + if(yonghu !=null){ + //entity转view + YonghuView view = new YonghuView(); + BeanUtils.copyProperties( yonghu , view );//把实体数据重构到view中 + + //修改对应字典表字段 + dictionaryService.dictionaryConvert(view, request); + return R.ok().put("data", view); + }else { + return R.error(511,"查不到数据"); + } + } + + + /** + * 退出 + */ + @GetMapping(value = "logout") + public R logout(HttpServletRequest request) { + request.getSession().invalidate(); + return R.ok("退出成功"); + } + + + + + /** + * 前端列表 + */ + @IgnoreAuth + @RequestMapping("/list") + public R list(@RequestParam Map params, HttpServletRequest request){ + logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params)); + + // 没有指定排序字段就默认id倒序 + if(StringUtil.isEmpty(String.valueOf(params.get("orderBy")))){ + params.put("orderBy","id"); + } + PageUtils page = yonghuService.queryPage(params); + + //字典表数据转换 + List list =(List)page.getList(); + for(YonghuView c:list) + dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段 + return R.ok().put("data", page); + } + + /** + * 前端详情 + */ + @RequestMapping("/detail/{id}") + public R detail(@PathVariable("id") Long id, HttpServletRequest request){ + logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id); + YonghuEntity yonghu = yonghuService.selectById(id); + if(yonghu !=null){ + + + //entity转view + YonghuView view = new YonghuView(); + BeanUtils.copyProperties( yonghu , view );//把实体数据重构到view中 + + //修改对应字典表字段 + dictionaryService.dictionaryConvert(view, request); + return R.ok().put("data", view); + }else { + return R.error(511,"查不到数据"); + } + } + + + /** + * 前端保存 + */ + @RequestMapping("/add") + public R add(@RequestBody YonghuEntity yonghu, HttpServletRequest request){ + logger.debug("add方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString()); + Wrapper queryWrapper = new EntityWrapper() + .eq("username", yonghu.getUsername()) + .or() + .eq("yonghu_phone", yonghu.getYonghuPhone()) + .or() + .eq("yonghu_id_number", yonghu.getYonghuIdNumber()) + .andNew() + .eq("yonghu_delete", 1) + ; + logger.info("sql语句:"+queryWrapper.getSqlSegment()); + YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper); + if(yonghuEntity==null){ + yonghu.setYonghuDelete(1); + yonghu.setCreateTime(new Date()); + yonghu.setPassword("123456"); + yonghuService.insert(yonghu); + return R.ok(); + }else { + return R.error(511,"账户或者用户手机号或者用户身份证号已经被使用"); + } + } + + +} diff --git a/src/main/java/com/dao/YonghuDao.java b/src/main/java/com/dao/YonghuDao.java index eddd875..e9bcb12 100644 --- a/src/main/java/com/dao/YonghuDao.java +++ b/src/main/java/com/dao/YonghuDao.java @@ -9,10 +9,10 @@ import com.baomidou.mybatisplus.plugins.pagination.Pagination; import org.apache.ibatis.annotations.Param; import com.entity.view.YonghuView; -/** - * 用户 Dao 接口 - * - * @author + +/* + * 用户 Dao 接口 + * @author */ public interface YonghuDao extends BaseMapper { diff --git a/src/main/java/com/entity/YishengEntity.java b/src/main/java/com/entity/YishengEntity.java index 6a73b45..e354aec 100644 --- a/src/main/java/com/entity/YishengEntity.java +++ b/src/main/java/com/entity/YishengEntity.java @@ -34,400 +34,360 @@ import com.baomidou.mybatisplus.enums.IdType; /** * 医生 * - * @author + * @author * @email */ -// 使用 TableName 注解指定该类对应的数据库表名为 "yisheng" @TableName("yisheng") -// 定义泛型类 YishengEntity,实现 Serializable 接口,以便对象可以进行序列化和反序列化 public class YishengEntity implements Serializable { - // 定义序列化版本号,用于保证在不同版本的类之间进行序列化和反序列化时的兼容性 private static final long serialVersionUID = 1L; - // 无参构造函数,用于创建 YishengEntity 对象 - public YishengEntity() { - } + public YishengEntity() { - // 带参构造函数,接受一个泛型对象 t,通过 BeanUtils.copyProperties 方法 - // 将对象 t 的属性复制到当前 YishengEntity 对象中 - public YishengEntity(T t) { - try { - BeanUtils.copyProperties(this, t); - } catch (IllegalAccessException | InvocationTargetException e) { - // 如果在复制属性过程中出现异常,打印异常堆栈信息 - e.printStackTrace(); - } } + public YishengEntity(T t) { + try { + BeanUtils.copyProperties(this, t); + } catch (IllegalAccessException | InvocationTargetException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + /** * 主键 */ - // 使用 TableId 注解指定该字段为主键,主键生成策略为自动增长(AUTO) @TableId(type = IdType.AUTO) - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "id" @TableField(value = "id") - // 存储医生记录的主键值,用于唯一标识一条医生记录 + private Integer id; /** * 医生工号 */ - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "yisheng_uuid_number" @TableField(value = "yisheng_uuid_number") - // 存储医生的唯一工号,用于标识医生个体 + private String yishengUuidNumber; /** * 账户 */ - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "username" @TableField(value = "username") - // 存储医生的登录账户名 + private String username; /** * 密码 */ - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "password" @TableField(value = "password") - // 存储医生账户的密码 + private String password; /** * 医生名称 */ - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "yisheng_name" @TableField(value = "yisheng_name") - // 存储医生的真实姓名 + private String yishengName; /** * 科室 */ - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "yisheng_types" @TableField(value = "yisheng_types") - // 存储医生所属的科室,用整数表示不同科室类别 + private Integer yishengTypes; /** * 职位 */ - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "zhiwei_types" @TableField(value = "zhiwei_types") - // 存储医生的职位,用整数表示不同职位类别 + private Integer zhiweiTypes; /** * 职称 */ - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "yisheng_zhichneg" @TableField(value = "yisheng_zhichneg") - // 存储医生的职称信息,如主任医师、副主任医师等 + private String yishengZhichneg; /** * 医生头像 */ - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "yisheng_photo" @TableField(value = "yisheng_photo") - // 存储医生头像的路径或标识 + private String yishengPhoto; /** * 联系方式 */ - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "yisheng_phone" @TableField(value = "yisheng_phone") - // 存储医生的联系方式,如电话号码 + private String yishengPhone; /** * 挂号须知 */ - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "yisheng_guahao" @TableField(value = "yisheng_guahao") - // 存储医生的挂号须知内容,告知患者相关注意事项 + private String yishengGuahao; /** * 邮箱 */ - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "yisheng_email" @TableField(value = "yisheng_email") - // 存储医生的电子邮箱地址 + private String yishengEmail; /** * 挂号价格 */ - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "yisheng_new_money" @TableField(value = "yisheng_new_money") - // 存储医生的挂号价格 + private Double yishengNewMoney; /** * 履历介绍 */ - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "yisheng_content" @TableField(value = "yisheng_content") - // 存储医生的履历介绍,展示医生的教育背景、工作经历等信息 + private String yishengContent; /** * 创建时间 */ - // 设置 JSON 序列化时日期的格式,使用中文环境,时区为东八区,格式为 "yyyy-MM-dd HH:mm:ss" - @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - // 用于 Spring MVC 接收表单数据时将日期字符串转换为 Date 对象 - @DateTimeFormat - // 使用 TableField 注解指定该字段在数据库表中对应的字段名为 "create_time", - // 并设置在插入数据时自动填充当前时间 - @TableField(value = "create_time", fill = FieldFill.INSERT) - // 存储医生记录的创建时间,用于记录数据的创建时间戳 + @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") + @DateTimeFormat + @TableField(value = "create_time",fill = FieldFill.INSERT) + private Date createTime; /** - * 设置:主键 - */ - // 获取主键值的方法 + * 设置:主键 + */ public Integer getId() { return id; } /** - * 获取:主键 - */ - // 设置主键值的方法 + * 获取:主键 + */ + public void setId(Integer id) { this.id = id; } /** - * 设置:医生工号 - */ - // 获取医生工号值的方法 + * 设置:医生工号 + */ public String getYishengUuidNumber() { return yishengUuidNumber; } /** - * 获取:医生工号 - */ - // 设置医生工号值的方法 + * 获取:医生工号 + */ + public void setYishengUuidNumber(String yishengUuidNumber) { this.yishengUuidNumber = yishengUuidNumber; } /** - * 设置:账户 - */ - // 获取账户名值的方法 + * 设置:账户 + */ public String getUsername() { return username; } /** - * 获取:账户 - */ - // 设置账户名值的方法 + * 获取:账户 + */ + public void setUsername(String username) { this.username = username; } /** - * 设置:密码 - */ - // 获取密码值的方法 + * 设置:密码 + */ public String getPassword() { return password; } /** - * 获取:密码 - */ - // 设置密码值的方法 + * 获取:密码 + */ + public void setPassword(String password) { this.password = password; } /** - * 设置:医生名称 - */ - // 获取医生名称值的方法 + * 设置:医生名称 + */ public String getYishengName() { return yishengName; } /** - * 获取:医生名称 - */ - // 设置医生名称值的方法 + * 获取:医生名称 + */ + public void setYishengName(String yishengName) { this.yishengName = yishengName; } /** - * 设置:科室 - */ - // 获取科室值的方法 + * 设置:科室 + */ public Integer getYishengTypes() { return yishengTypes; } /** - * 获取:科室 - */ - // 设置科室值的方法 + * 获取:科室 + */ + public void setYishengTypes(Integer yishengTypes) { this.yishengTypes = yishengTypes; } /** - * 设置:职位 - */ - // 获取职位值的方法 + * 设置:职位 + */ public Integer getZhiweiTypes() { return zhiweiTypes; } /** - * 获取:职位 - */ - // 设置职位值的方法 + * 获取:职位 + */ + public void setZhiweiTypes(Integer zhiweiTypes) { this.zhiweiTypes = zhiweiTypes; } /** - * 设置:职称 - */ - // 获取职称值的方法 + * 设置:职称 + */ public String getYishengZhichneg() { return yishengZhichneg; } /** - * 获取:职称 - */ - // 设置职称值的方法 + * 获取:职称 + */ + public void setYishengZhichneg(String yishengZhichneg) { this.yishengZhichneg = yishengZhichneg; } /** - * 设置:医生头像 - */ - // 获取医生头像路径值的方法 + * 设置:医生头像 + */ public String getYishengPhoto() { return yishengPhoto; } /** - * 获取:医生头像 - */ - // 设置医生头像路径值的方法 + * 获取:医生头像 + */ + public void setYishengPhoto(String yishengPhoto) { this.yishengPhoto = yishengPhoto; } /** - * 设置:联系方式 - */ - // 获取联系方式值的方法 + * 设置:联系方式 + */ public String getYishengPhone() { return yishengPhone; } /** - * 获取:联系方式 - */ - // 设置联系方式值的方法 + * 获取:联系方式 + */ + public void setYishengPhone(String yishengPhone) { this.yishengPhone = yishengPhone; } /** - * 设置:挂号须知 - */ - // 获取挂号须知值的方法 + * 设置:挂号须知 + */ public String getYishengGuahao() { return yishengGuahao; } /** - * 获取:挂号须知 - */ - // 设置挂号须知值的方法 + * 获取:挂号须知 + */ + public void setYishengGuahao(String yishengGuahao) { this.yishengGuahao = yishengGuahao; } /** - * 设置:邮箱 - */ - // 获取邮箱值的方法 + * 设置:邮箱 + */ public String getYishengEmail() { return yishengEmail; } /** - * 获取:邮箱 - */ - // 设置邮箱值的方法 + * 获取:邮箱 + */ + public void setYishengEmail(String yishengEmail) { this.yishengEmail = yishengEmail; } /** - * 设置:挂号价格 - */ - // 获取挂号价格值的方法 + * 设置:挂号价格 + */ public Double getYishengNewMoney() { return yishengNewMoney; } /** - * 获取:挂号价格 - */ - // 设置挂号价格值的方法 + * 获取:挂号价格 + */ + public void setYishengNewMoney(Double yishengNewMoney) { this.yishengNewMoney = yishengNewMoney; } /** - * 设置:履历介绍 - */ - // 获取履历介绍值的方法 + * 设置:履历介绍 + */ public String getYishengContent() { return yishengContent; } /** - * 获取:履历介绍 - */ - // 设置履历介绍值的方法 + * 获取:履历介绍 + */ + public void setYishengContent(String yishengContent) { this.yishengContent = yishengContent; } /** - * 设置:创建时间 - */ - // 获取创建时间值的方法 + * 设置:创建时间 + */ public Date getCreateTime() { return createTime; } /** - * 获取:创建时间 - */ - // 设置创建时间值的方法 + * 获取:创建时间 + */ + public void setCreateTime(Date createTime) { this.createTime = createTime; } - // 重写 toString 方法,返回对象的字符串表示,方便调试和日志记录 @Override public String toString() { return "Yisheng{" + diff --git a/src/main/java/com/entity/YonghuEntity.java b/src/main/java/com/entity/YonghuEntity.java index 351390e..3d91b1a 100644 --- a/src/main/java/com/entity/YonghuEntity.java +++ b/src/main/java/com/entity/YonghuEntity.java @@ -1,360 +1,325 @@ package com.entity; -// 导入 MyBatis-Plus 用于指定主键的注解 import com.baomidou.mybatisplus.annotations.TableId; -// 导入 MyBatis-Plus 用于指定数据库表名的注解 import com.baomidou.mybatisplus.annotations.TableName; -// 导入 JSR 303 验证注解,用于字段验证,当前代码未实际使用这些注解 import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; -// 导入 Jackson 注解,用于忽略 JSON 序列化和反序列化时的某些属性,当前代码未实际使用 + import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -// 导入反射调用可能抛出的异常类 import java.lang.reflect.InvocationTargetException; -// 导入序列化接口,使该类的对象可以进行序列化和反序列化操作 + import java.io.Serializable; -// 导入日期类,用于处理日期相关的操作 import java.util.Date; -// 导入列表集合类,当前代码未使用 import java.util.List; -// 导入 Spring 框架用于日期格式化的注解,用于将字符串日期转换为 Date 对象 + import org.springframework.format.annotation.DateTimeFormat; -// 导入 Jackson 用于 JSON 序列化时日期格式化的注解 import com.fasterxml.jackson.annotation.JsonFormat; -// 导入 Apache Commons BeanUtils 工具类,用于对象属性复制 import org.apache.commons.beanutils.BeanUtils; -// 导入 MyBatis-Plus 用于指定字段的注解 import com.baomidou.mybatisplus.annotations.TableField; -// 导入 MyBatis-Plus 字段填充策略枚举 import com.baomidou.mybatisplus.enums.FieldFill; -// 导入 MyBatis-Plus 主键生成策略枚举 import com.baomidou.mybatisplus.enums.IdType; /** - * 用户 + * 用户实体类 + * 数据库表映射对象,对应数据库中的yonghu表 * * @author * @email */ -// 指定该类对应数据库中的 yonghu 表 @TableName("yonghu") -// 定义泛型类,实现 Serializable 接口 public class YonghuEntity implements Serializable { - // 序列化版本号,确保序列化和反序列化的兼容性 private static final long serialVersionUID = 1L; - // 无参构造函数,方便创建 YonghuEntity 类的实例 - public YonghuEntity() { - } + public YonghuEntity() { - // 带参构造函数,接收一个泛型对象 t,将其属性复制到当前 YonghuEntity 对象 - public YonghuEntity(T t) { - try { - // 使用 BeanUtils 工具类复制属性 - BeanUtils.copyProperties(this, t); - } catch (IllegalAccessException | InvocationTargetException e) { - // 若复制属性过程中出现异常,打印异常堆栈信息 - e.printStackTrace(); - } } + public YonghuEntity(T t) { + try { + BeanUtils.copyProperties(this, t); + } catch (IllegalAccessException | InvocationTargetException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + /** - * 主键 + * 主键ID + * 自增类型 */ - // 指定该字段为主键,且主键生成策略为自增 @TableId(type = IdType.AUTO) - // 指定该字段对应数据库表中的 id 字段 @TableField(value = "id") - // 主键,用于唯一标识一条用户记录 + private Integer id; /** - * 账户 + * 用户名/账户 + * 用于登录系统的唯一标识 */ - // 指定该字段对应数据库表中的 username 字段 @TableField(value = "username") - // 用户的登录账户名 + private String username; /** * 密码 + * 存储加密后的用户密码 */ - // 指定该字段对应数据库表中的 password 字段 @TableField(value = "password") - // 用户登录账户的密码 + private String password; /** - * 用户姓名 + * 用户真实姓名 */ - // 指定该字段对应数据库表中的 yonghu_name 字段 @TableField(value = "yonghu_name") - // 用户的真实姓名 + private String yonghuName; /** - * 头像 + * 用户头像 + * 存储头像图片路径 */ - // 指定该字段对应数据库表中的 yonghu_photo 字段 @TableField(value = "yonghu_photo") - // 用户头像的存储路径 + private String yonghuPhoto; /** * 用户手机号 */ - // 指定该字段对应数据库表中的 yonghu_phone 字段 @TableField(value = "yonghu_phone") - // 用户的手机号码 + private String yonghuPhone; /** * 用户身份证号 */ - // 指定该字段对应数据库表中的 yonghu_id_number 字段 @TableField(value = "yonghu_id_number") - // 用户的身份证号码 + private String yonghuIdNumber; /** - * 邮箱 + * 用户邮箱 */ - // 指定该字段对应数据库表中的 yonghu_email 字段 @TableField(value = "yonghu_email") - // 用户的电子邮箱地址 + private String yonghuEmail; /** * 性别 + * 使用数字表示,对应字典表中的性别类型 */ - // 指定该字段对应数据库表中的 sex_types 字段 @TableField(value = "sex_types") - // 用户的性别,用整数表示不同性别,如 1 表示男性,2 表示女性等 + private Integer sexTypes; /** - * 余额 + * 用户余额 */ - // 指定该字段对应数据库表中的 new_money 字段 @TableField(value = "new_money") - // 用户账户的余额 + private Double newMoney; /** - * 假删 + * 逻辑删除标志 + * 1-未删除,2-已删除 */ - // 指定该字段对应数据库表中的 yonghu_delete 字段 @TableField(value = "yonghu_delete") - // 假删除标记,用整数表示是否删除,如 0 表示未删除,1 表示已删除 + private Integer yonghuDelete; /** * 创建时间 + * 自动填充,格式化为yyyy-MM-dd HH:mm:ss */ - // 设置 JSON 序列化时日期的格式,使用中文环境,时区为东八区,格式为 "yyyy-MM-dd HH:mm:ss" - @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - // 用于 Spring MVC 接收表单数据时将日期字符串转换为 Date 对象 - @DateTimeFormat - // 指定该字段对应数据库表中的 create_time 字段,且在插入数据时自动填充 - @TableField(value = "create_time", fill = FieldFill.INSERT) - // 该条用户记录的创建时间 + @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") + @DateTimeFormat + @TableField(value = "create_time",fill = FieldFill.INSERT) + private Date createTime; + /** - * 设置:主键 - */ - // 获取主键的方法 + * 设置:主键 + */ public Integer getId() { return id; } /** - * 获取:主键 - */ - // 设置主键的方法 + * 获取:主键 + */ + public void setId(Integer id) { this.id = id; } /** - * 设置:账户 - */ - // 获取账户名的方法 + * 设置:账户 + */ public String getUsername() { return username; } /** - * 获取:账户 - */ - // 设置账户名的方法 + * 获取:账户 + */ + public void setUsername(String username) { this.username = username; } /** - * 设置:密码 - */ - // 获取密码的方法 + * 设置:密码 + */ public String getPassword() { return password; } /** - * 获取:密码 - */ - // 设置密码的方法 + * 获取:密码 + */ + public void setPassword(String password) { this.password = password; } /** - * 设置:用户姓名 - */ - // 获取用户姓名的方法 + * 设置:用户姓名 + */ public String getYonghuName() { return yonghuName; } /** - * 获取:用户姓名 - */ - // 设置用户姓名的方法 + * 获取:用户姓名 + */ + public void setYonghuName(String yonghuName) { this.yonghuName = yonghuName; } /** - * 设置:头像 - */ - // 获取头像路径的方法 + * 设置:头像 + */ public String getYonghuPhoto() { return yonghuPhoto; } /** - * 获取:头像 - */ - // 设置头像路径的方法 + * 获取:头像 + */ + public void setYonghuPhoto(String yonghuPhoto) { this.yonghuPhoto = yonghuPhoto; } /** - * 设置:用户手机号 - */ - // 获取用户手机号码的方法 + * 设置:用户手机号 + */ public String getYonghuPhone() { return yonghuPhone; } /** - * 获取:用户手机号 - */ - // 设置用户手机号码的方法 + * 获取:用户手机号 + */ + public void setYonghuPhone(String yonghuPhone) { this.yonghuPhone = yonghuPhone; } /** - * 设置:用户身份证号 - */ - // 获取用户身份证号码的方法 + * 设置:用户身份证号 + */ public String getYonghuIdNumber() { return yonghuIdNumber; } /** - * 获取:用户身份证号 - */ - // 设置用户身份证号码的方法 + * 获取:用户身份证号 + */ + public void setYonghuIdNumber(String yonghuIdNumber) { this.yonghuIdNumber = yonghuIdNumber; } /** - * 设置:邮箱 - */ - // 获取邮箱地址的方法 + * 设置:邮箱 + */ public String getYonghuEmail() { return yonghuEmail; } /** - * 获取:邮箱 - */ - // 设置邮箱地址的方法 + * 获取:邮箱 + */ + public void setYonghuEmail(String yonghuEmail) { this.yonghuEmail = yonghuEmail; } /** - * 设置:性别 - */ - // 获取性别标识的方法 + * 设置:性别 + */ public Integer getSexTypes() { return sexTypes; } /** - * 获取:性别 - */ - // 设置性别标识的方法 + * 获取:性别 + */ + public void setSexTypes(Integer sexTypes) { this.sexTypes = sexTypes; } /** - * 设置:余额 - */ - // 获取余额的方法 + * 设置:余额 + */ public Double getNewMoney() { return newMoney; } /** - * 获取:余额 - */ - // 设置余额的方法 + * 获取:余额 + */ + public void setNewMoney(Double newMoney) { this.newMoney = newMoney; } /** - * 设置:假删 - */ - // 获取假删除标记的方法 + * 设置:假删 + */ public Integer getYonghuDelete() { return yonghuDelete; } /** - * 获取:假删 - */ - // 设置假删除标记的方法 + * 获取:假删 + */ + public void setYonghuDelete(Integer yonghuDelete) { this.yonghuDelete = yonghuDelete; } /** - * 设置:创建时间 - */ - // 获取创建时间的方法 + * 设置:创建时间 + */ public Date getCreateTime() { return createTime; } /** - * 获取:创建时间 - */ - // 设置创建时间的方法 + * 获取:创建时间 + */ + public void setCreateTime(Date createTime) { this.createTime = createTime; } - // 重写 toString 方法,方便打印对象信息 @Override public String toString() { return "Yonghu{" + diff --git a/src/main/java/com/entity/model/YishengModel.java b/src/main/java/com/entity/model/YishengModel.java index c2e0a2c..482f995 100644 --- a/src/main/java/com/entity/model/YishengModel.java +++ b/src/main/java/com/entity/model/YishengModel.java @@ -1,15 +1,11 @@ package com.entity.model; -// 导入YishengEntity类,后续可能用于与该实体进行数据转换、关联查询等操作 import com.entity.YishengEntity; -// 导入MyBatis-Plus的TableName注解,通常用于指定数据库表名,不过在当前代码中未实际使用该注解功能 + import com.baomidou.mybatisplus.annotations.TableName; -// 导入Jackson的JsonFormat注解,用于在将对象序列化为JSON格式时,对日期类型的字段进行格式化处理 import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; -// 导入Spring的DateTimeFormat注解,用于在Spring MVC接收前端传递的日期数据时,对日期字符串进行格式化转换 import org.springframework.format.annotation.DateTimeFormat; -// 实现Serializable接口,使得该类的对象可以在网络传输或存储时进行序列化和反序列化操作 import java.io.Serializable; /** @@ -19,339 +15,300 @@ import java.io.Serializable; * 取自ModelAndView 的model名称 */ public class YishengModel implements Serializable { - // 序列化版本号,用于确保在不同版本的类之间进行序列化和反序列化时的兼容性,固定值1L private static final long serialVersionUID = 1L; + + + /** * 主键 */ - // 用于唯一标识数据库中该医生记录的主键字段,在数据的增删改查操作中起关键作用 private Integer id; /** * 医生工号 */ - // 医生在系统中的唯一工作编号,可用于内部管理和识别不同医生 private String yishengUuidNumber; /** * 账户 */ - // 医生用于登录系统的用户名,用于身份验证和权限管理 private String username; /** * 密码 */ - // 与账户对应的登录密码,必须与用户名匹配才能成功登录系统,注意密码安全存储 private String password; /** * 医生名称 */ - // 医生的真实姓名或者对外展示的名称,用于标识和显示医生身份 private String yishengName; /** * 科室 + * 使用Integer类型存储,对应字典表中的科室编码 */ - // 用整数表示医生所属的科室,不同整数值对应不同的科室,方便对医生进行分类管理 private Integer yishengTypes; /** * 职位 + * 使用Integer类型存储,对应字典表中的职位编码 */ - // 用整数标识医生在医院中的职位,如主任医师、主治医师等不同职位分类,反映医生的职责和级别 private Integer zhiweiTypes; /** * 职称 */ - // 存储医生的专业技术职称信息,如“副主任医师”等,体现医生的专业水平和能力 private String yishengZhichneg; /** * 医生头像 + * 存储头像图片的路径或URL */ - // 存储医生头像图片的路径或者相关标识,用于在界面上展示医生的头像,增强用户体验 private String yishengPhoto; /** * 联系方式 */ - // 记录医生的联系电话或者其他可联系的方式,方便患者或其他人员与医生取得联系 private String yishengPhone; /** * 挂号须知 + * 存储医生挂号的相关注意事项 */ - // 包含了关于该医生挂号的各种注意事项和规定等信息,为患者提供挂号指导 private String yishengGuahao; /** * 邮箱 */ - // 医生的电子邮箱地址,可用于接收系统通知、患者咨询邮件等 private String yishengEmail; /** * 挂号价格 */ - // 记录该医生的挂号费用金额,以Double类型存储,单位可能是元,用于收费和展示 private Double yishengNewMoney; /** * 履历介绍 + * 存储医生的详细履历信息 */ - // 存储医生的个人履历、教育背景、工作经历、专业技能等详细信息,帮助患者了解医生的专业能力 private String yishengContent; /** * 创建时间 show1 show2 photoShow + * 使用@JsonFormat和@DateTimeFormat注解进行日期格式化 */ - // 设置JSON序列化时日期的格式,使用中文环境,时区为东八区,格式为 "yyyy-MM-dd HH:mm:ss" - @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - // 用于Spring MVC接收前端传递的日期数据时,对日期字符串进行格式化转换 - @DateTimeFormat - // 记录该医生信息在系统中创建的具体时间,可用于审计和数据追溯等 + @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") + @DateTimeFormat private Date createTime; /** - * 获取:主键 - */ - // 获取该医生记录的主键ID值,外部调用该方法可获取唯一标识该记录的ID + * 获取:主键 + */ public Integer getId() { return id; } /** - * 设置:主键 - */ - // 设置该医生记录的主键ID值,一般在数据插入等操作时由系统或者特定逻辑来设置 + * 设置:主键 + */ public void setId(Integer id) { this.id = id; } /** - * 获取:医生工号 - */ - // 获取医生的工号信息,外部可通过调用该方法获取医生的唯一工作编号 + * 获取:医生工号 + */ public String getYishengUuidNumber() { return yishengUuidNumber; } /** - * 设置:医生工号 - */ - // 设置医生的工号信息,可用于修改或者初始化医生的工号 + * 设置:医生工号 + */ public void setYishengUuidNumber(String yishengUuidNumber) { this.yishengUuidNumber = yishengUuidNumber; } /** - * 获取:账户 - */ - // 获取医生用于登录系统的账户名,外部调用可获取该医生的登录账户 + * 获取:账户 + */ public String getUsername() { return username; } /** - * 设置:账户 - */ - // 设置医生的登录账户名,可用于修改医生的登录账户信息 + * 设置:账户 + */ public void setUsername(String username) { this.username = username; } /** - * 获取:密码 - */ - // 获取医生的登录密码,注意在实际应用中,密码的获取和使用需要遵循安全规范 + * 获取:密码 + */ public String getPassword() { return password; } /** - * 设置:密码 - */ - // 设置医生的登录密码,设置密码时需要考虑密码的强度和安全性要求 + * 设置:密码 + */ public void setPassword(String password) { this.password = password; } /** - * 获取:医生名称 - */ - // 获取医生的姓名信息,外部调用可获取医生的真实姓名或者展示名称 + * 获取:医生名称 + */ public String getYishengName() { return yishengName; } /** - * 设置:医生名称 - */ - // 设置医生的姓名信息,可用于修改医生的显示名称等情况 + * 设置:医生名称 + */ public void setYishengName(String yishengName) { this.yishengName = yishengName; } /** - * 获取:科室 - */ - // 获取医生所属的科室编号,通过该编号可查询对应的科室信息,了解医生的专业领域 + * 获取:科室 + */ public Integer getYishengTypes() { return yishengTypes; } /** - * 设置:科室 - */ - // 设置医生所属的科室编号,可用于调整医生的科室归属等操作 + * 设置:科室 + */ public void setYishengTypes(Integer yishengTypes) { this.yishengTypes = yishengTypes; } /** - * 获取:职位 - */ - // 获取医生在医院中的职位编号,根据编号可确定医生的职位信息和职责范围 + * 获取:职位 + */ public Integer getZhiweiTypes() { return zhiweiTypes; } /** - * 设置:职位 - */ - // 设置医生在医院中的职位编号,可用于更新医生的职位信息 + * 设置:职位 + */ public void setZhiweiTypes(Integer zhiweiTypes) { this.zhiweiTypes = zhiweiTypes; } /** - * 获取:职称 - */ - // 获取医生的专业技术职称信息,外部调用可获取医生的职称描述 + * 获取:职称 + */ public String getYishengZhichneg() { return yishengZhichneg; } /** - * 设置:职称 - */ - // 设置医生的专业技术职称信息,可用于修改医生的职称信息 + * 设置:职称 + */ public void setYishengZhichneg(String yishengZhichneg) { this.yishengZhichneg = yishengZhichneg; } /** - * 获取:医生头像 - */ - // 获取医生头像的路径或者标识信息,用于在界面上加载和展示医生的头像图片 + * 获取:医生头像 + */ public String getYishengPhoto() { return yishengPhoto; } /** - * 设置:医生头像 - */ - // 设置医生头像的路径或者标识信息,可用于更新医生的头像展示 + * 设置:医生头像 + */ public void setYishengPhoto(String yishengPhoto) { this.yishengPhoto = yishengPhoto; } /** - * 获取:联系方式 - */ - // 获取医生的联系电话或者其他联系方式,方便与医生进行沟通和联系 + * 获取:联系方式 + */ public String getYishengPhone() { return yishengPhone; } /** - * 设置:联系方式 - */ - // 设置医生的联系电话或者其他联系方式,可用于修改医生的联系信息 + * 设置:联系方式 + */ public void setYishengPhone(String yishengPhone) { this.yishengPhone = yishengPhone; } /** - * 获取:挂号须知 - */ - // 获取关于该医生挂号的注意事项和规定等信息,为患者提供挂号相关的指导 + * 获取:挂号须知 + */ public String getYishengGuahao() { return yishengGuahao; } /** - * 设置:挂号须知 - */ - // 设置关于该医生挂号的注意事项和规定等信息,可用于更新挂号须知内容 + * 设置:挂号须知 + */ public void setYishengGuahao(String yishengGuahao) { this.yishengGuahao = yishengGuahao; } /** - * 获取:邮箱 - */ - // 获取医生的电子邮箱地址,可用于向医生发送邮件通知或者接收患者的邮件咨询 + * 获取:邮箱 + */ public String getYishengEmail() { return yishengEmail; } /** - * 设置:邮箱 - */ - // 设置医生的电子邮箱地址,可用于修改医生的邮箱信息 + * 设置:邮箱 + */ public void setYishengEmail(String yishengEmail) { this.yishengEmail = yishengEmail; } /** - * 获取:挂号价格 - */ - // 获取该医生的挂号费用金额,外部调用可获取医生的挂号价格信息 + * 获取:挂号价格 + */ public Double getYishengNewMoney() { return yishengNewMoney; } /** - * 设置:挂号价格 - */ - // 设置该医生的挂号费用金额,可用于调整医生的挂号价格 + * 设置:挂号价格 + */ public void setYishengNewMoney(Double yishengNewMoney) { this.yishengNewMoney = yishengNewMoney; } /** - * 获取:履历介绍 - */ - // 获取医生的个人履历和专业介绍等信息,帮助了解医生的背景和专业能力 + * 获取:履历介绍 + */ public String getYishengContent() { return yishengContent; } /** - * 设置:履历介绍 - */ - // 设置医生的个人履历和专业介绍等信息,可用于更新医生的履历内容 + * 设置:履历介绍 + */ public void setYishengContent(String yishengContent) { this.yishengContent = yishengContent; } /** - * 获取:创建时间 show1 show2 photoShow - */ - // 获取该医生信息记录的创建时间,可用于了解记录的生成时间,进行数据管理和分析 + * 获取:创建时间 show1 show2 photoShow + */ public Date getCreateTime() { return createTime; } /** - * 设置:创建时间 show1 show2 photoShow - */ - // 设置该医生信息记录的创建时间,一般由系统在创建记录时自动生成,特殊情况可进行设置 + * 设置:创建时间 show1 show2 photoShow + */ public void setCreateTime(Date createTime) { this.createTime = createTime; } diff --git a/src/main/java/com/entity/model/YonghuModel.java b/src/main/java/com/entity/model/YonghuModel.java index 0d4f8ee..619cfa4 100644 --- a/src/main/java/com/entity/model/YonghuModel.java +++ b/src/main/java/com/entity/model/YonghuModel.java @@ -1,21 +1,14 @@ package com.entity.model; -// 导入YonghuEntity类,可能用于与数据库实体进行交互或数据转换等操作 import com.entity.YonghuEntity; -// 导入MyBatis-Plus的TableName注解,通常用于指定数据库表名(但在当前代码中未实际使用该注解) import com.baomidou.mybatisplus.annotations.TableName; - -// 导入Jackson的JsonFormat注解,用于在JSON序列化和反序列化时对日期类型字段进行格式化处理 import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; - -// 导入Spring的DateTimeFormat注解,用于在处理表单数据时对日期类型字段进行格式化 import org.springframework.format.annotation.DateTimeFormat; - -// 实现Serializable接口,使该类的对象可以被序列化和反序列化,便于在网络传输或存储中使用 import java.io.Serializable; + /** * 用户 * 接收传参的实体类 @@ -23,273 +16,235 @@ import java.io.Serializable; * 取自ModelAndView 的model名称 */ public class YonghuModel implements Serializable { - // 定义序列化版本号,用于保证在不同版本的类之间进行序列化和反序列化时的兼容性 private static final long serialVersionUID = 1L; /** * 主键 */ - // 用于唯一标识用户记录的主键,在数据库操作中通常作为唯一标识字段 private Integer id; /** * 账户 */ - // 用户用于登录系统的账户名,用于身份验证和权限管理 private String username; /** * 密码 */ - // 与账户对应的登录密码,用于验证用户身份,确保账户安全 private String password; /** * 用户姓名 */ - // 存储用户的真实姓名或显示名称,用于标识和显示用户身份 private String yonghuName; /** * 头像 */ - // 存储用户头像图片的路径或标识,用于在系统中展示用户的头像 private String yonghuPhoto; /** * 用户手机号 */ - // 存储用户的手机号码,可用于联系用户、验证身份等 private String yonghuPhone; /** * 用户身份证号 */ - // 存储用户的身份证号码,用于身份验证和相关业务处理 private String yonghuIdNumber; /** * 邮箱 */ - // 存储用户的电子邮箱地址,可用于接收系统通知、找回密码等 private String yonghuEmail; /** * 性别 */ - // 用整数表示用户的性别,例如0表示男,1表示女等,方便进行统计和分类 private Integer sexTypes; /** * 余额 */ - // 存储用户账户的余额,以Double类型表示金额,用于相关支付和消费操作 private Double newMoney; /** * 假删 + * 用一个整数来标记用户是否被逻辑删除,例如0表示未删除,1表示已删除 */ - // 用于实现逻辑删除的字段,0表示未删除,1表示已删除(假删),避免物理删除数据 private Integer yonghuDelete; /** * 创建时间 */ - // 设置JSON序列化时日期的格式,使用中文环境,时区为东八区,格式为 "yyyy-MM-dd HH:mm:ss" - @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - // 用于Spring MVC接收表单数据时将日期字符串转换为Date对象 - @DateTimeFormat - // 记录该用户信息记录的实际创建时间 + @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") + @DateTimeFormat private Date createTime; /** - * 获取:主键 - */ - // 获取主键ID的方法,供外部调用以获取该用户信息记录的唯一标识 + * 获取:主键 + */ public Integer getId() { return id; } /** - * 设置:主键 - */ - // 设置主键ID的方法,供外部调用以设置该用户信息记录的唯一标识 + * 设置:主键 + */ public void setId(Integer id) { this.id = id; } /** - * 获取:账户 - */ - // 获取用户账户名的方法,供外部调用以获取用户的登录账户信息 + * 获取:账户 + */ public String getUsername() { return username; } /** - * 设置:账户 - */ - // 设置用户账户名的方法,供外部调用以修改用户的登录账户信息 + * 设置:账户 + */ public void setUsername(String username) { this.username = username; } /** - * 获取:密码 - */ - // 获取用户密码的方法,实际应用中需注意密码安全,防止泄露 + * 获取:密码 + */ public String getPassword() { return password; } /** - * 设置:密码 - */ - // 设置用户密码的方法,设置时需遵循一定的密码强度规则 + * 设置:密码 + */ public void setPassword(String password) { this.password = password; } /** - * 获取:用户姓名 - */ - // 获取用户姓名的方法,供外部调用以获取用户的名称信息 + * 获取:用户姓名 + */ public String getYonghuName() { return yonghuName; } /** - * 设置:用户姓名 - */ - // 设置用户姓名的方法,供外部调用以修改用户的显示名称 + * 设置:用户姓名 + */ public void setYonghuName(String yonghuName) { this.yonghuName = yonghuName; } /** - * 获取:头像 - */ - // 获取用户头像路径或标识的方法,供外部调用以获取用户的头像信息 + * 获取:头像 + */ public String getYonghuPhoto() { return yonghuPhoto; } /** - * 设置:头像 - */ - // 设置用户头像路径或标识的方法,供外部调用以修改用户的头像展示 + * 设置:头像 + */ public void setYonghuPhoto(String yonghuPhoto) { this.yonghuPhoto = yonghuPhoto; } /** - * 获取:用户手机号 - */ - // 获取用户手机号码的方法,供外部调用以获取用户的联系方式 + * 获取:用户手机号 + */ public String getYonghuPhone() { return yonghuPhone; } /** - * 设置:用户手机号 - */ - // 设置用户手机号码的方法,供外部调用以修改用户的联系电话 + * 设置:用户手机号 + */ public void setYonghuPhone(String yonghuPhone) { this.yonghuPhone = yonghuPhone; } /** - * 获取:用户身份证号 - */ - // 获取用户身份证号码的方法,供外部调用以获取用户的身份信息 + * 获取:用户身份证号 + */ public String getYonghuIdNumber() { return yonghuIdNumber; } /** - * 设置:用户身份证号 - */ - // 设置用户身份证号码的方法,设置时需保证号码的合法性和准确性 + * 设置:用户身份证号 + */ public void setYonghuIdNumber(String yonghuIdNumber) { this.yonghuIdNumber = yonghuIdNumber; } /** - * 获取:邮箱 - */ - // 获取用户电子邮箱地址的方法,供外部调用以获取用户的邮箱信息 + * 获取:邮箱 + */ public String getYonghuEmail() { return yonghuEmail; } /** - * 设置:邮箱 - */ - // 设置用户电子邮箱地址的方法,供外部调用以修改用户的邮箱信息 + * 设置:邮箱 + */ public void setYonghuEmail(String yonghuEmail) { this.yonghuEmail = yonghuEmail; } /** - * 获取:性别 - */ - // 获取用户性别的方法,供外部调用以获取用户的性别标识 + * 获取:性别 + */ public Integer getSexTypes() { return sexTypes; } /** - * 设置:性别 - */ - // 设置用户性别的方法,供外部调用以修改用户的性别标识 + * 设置:性别 + */ public void setSexTypes(Integer sexTypes) { this.sexTypes = sexTypes; } /** - * 获取:余额 - */ - // 获取用户账户余额的方法,供外部调用以获取用户的账户金额信息 + * 获取:余额 + */ public Double getNewMoney() { return newMoney; } /** - * 设置:余额 - */ - // 设置用户账户余额的方法,供外部调用以修改用户的账户金额 + * 设置:余额 + */ public void setNewMoney(Double newMoney) { this.newMoney = newMoney; } /** - * 获取:假删 - */ - // 获取用户记录假删状态的方法,供外部调用以获取用户记录的删除标识 + * 获取:假删 + */ public Integer getYonghuDelete() { return yonghuDelete; } /** - * 设置:假删 - */ - // 设置用户记录假删状态的方法,供外部调用以修改用户记录的删除标识 + * 设置:假删 + */ public void setYonghuDelete(Integer yonghuDelete) { this.yonghuDelete = yonghuDelete; } /** - * 获取:创建时间 - */ - // 获取用户信息记录创建时间的方法,供外部调用以获取该记录的实际创建时间 + * 获取:创建时间 + */ public Date getCreateTime() { return createTime; } /** - * 设置:创建时间 - */ - // 设置用户信息记录创建时间的方法,一般由系统自动生成,特殊情况可进行设置 + * 设置:创建时间 + */ public void setCreateTime(Date createTime) { this.createTime = createTime; } diff --git a/src/main/java/com/entity/view/YishengView.java b/src/main/java/com/entity/view/YishengView.java index be8cca8..e28c177 100644 --- a/src/main/java/com/entity/view/YishengView.java +++ b/src/main/java/com/entity/view/YishengView.java @@ -13,69 +13,82 @@ import java.util.Date; * 医生 * 后端返回视图实体辅助类 * (通常后端关联的表或者自定义的字段需要返回使用) + * 该类继承自 YishengEntity,用于扩展或修改返回给前端的实体数据结构 */ -@TableName("yisheng") +@TableName("yisheng") // 表明该实体类对应的数据库表名为 "yisheng",这里可能是为了保持与基础实体类的一致性或者有特定的 MyBatis-Plus 相关用途 public class YishengView extends YishengEntity implements Serializable { - private static final long serialVersionUID = 1L; - - /** - * 科室的值 - */ - private String yishengValue; - /** - * 职位的值 - */ - private String zhiweiValue; - - - + private static final long serialVersionUID = 1L; + // 序列化版本号,用于在对象序列化和反序列化过程中保持版本一致性 + + /** + * 科室的值 + * 这里定义了一个额外的字段,用于存储科室相关的具体值(可能是科室名称等更详细信息,与 YishengEntity 中的科室字段可能有所区别) + */ + private String yishengValue; + + /** + * 职位的值 + * 同样定义了一个额外的字段,用于存储职位相关的具体值(可能是职位名称等更详细信息,与 YishengEntity 中的职位字段可能有所区别) + */ + private String zhiweiValue; + + /** + * 无参构造函数 + * 用于创建一个空的 YishengView 对象 + */ public YishengView() { } + /** + * 带参构造函数 + * 接收一个 YishengEntity 对象,将其属性复制到当前 YishengView 对象中 + * + * @param yishengEntity YishengEntity 类型的对象,其属性将被复制到当前对象 + */ public YishengView(YishengEntity yishengEntity) { try { + // 使用 BeanUtils 工具类将 YishengEntity 对象的属性复制到当前 YishengView 对象 BeanUtils.copyProperties(this, yishengEntity); } catch (IllegalAccessException | InvocationTargetException e) { - // TODO Auto-generated catch block + // 如果在属性复制过程中出现非法访问或调用目标异常,打印异常堆栈信息 e.printStackTrace(); } } + /** + * 获取科室的值 + * + * @return 返回存储的科室的值 + */ + public String getYishengValue() { + return yishengValue; + } + /** + * 设置科室的值 + * + * @param yishengValue 要设置的科室的值 + */ + public void setYishengValue(String yishengValue) { + this.yishengValue = yishengValue; + } - /** - * 获取: 科室的值 - */ - public String getYishengValue() { - return yishengValue; - } - /** - * 设置: 科室的值 - */ - public void setYishengValue(String yishengValue) { - this.yishengValue = yishengValue; - } - /** - * 获取: 职位的值 - */ - public String getZhiweiValue() { - return zhiweiValue; - } - /** - * 设置: 职位的值 - */ - public void setZhiweiValue(String zhiweiValue) { - this.zhiweiValue = zhiweiValue; - } - - - - - - - - - + /** + * 获取职位的值 + * + * @return 返回存储的职位的值 + */ + public String getZhiweiValue() { + return zhiweiValue; + } -} + /** + * 设置职位的值 + * + * @param zhiweiValue 要设置的职位的值 + */ + public void setZhiweiValue(String zhiweiValue) { + this.zhiweiValue = zhiweiValue; + } +} \ No newline at end of file diff --git a/src/main/java/com/entity/view/YonghuView.java b/src/main/java/com/entity/view/YonghuView.java index 22d2723..f8cca4c 100644 --- a/src/main/java/com/entity/view/YonghuView.java +++ b/src/main/java/com/entity/view/YonghuView.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; import java.util.Date; + /** * 用户 * 后端返回视图实体辅助类 @@ -18,9 +19,10 @@ import java.util.Date; public class YonghuView extends YonghuEntity implements Serializable { private static final long serialVersionUID = 1L; - /** - * 性别的值 - */ + + /** + * 性别的值 + */ private String sexValue; @@ -40,15 +42,17 @@ public class YonghuView extends YonghuEntity implements Serializable { - /** - * 获取: 性别的值 - */ + + /** + * 获取: 性别的值 + */ public String getSexValue() { return sexValue; } - /** - * 设置: 性别的值 - */ + + /** + * 设置: 性别的值 + */ public void setSexValue(String sexValue) { this.sexValue = sexValue; } diff --git a/src/main/java/com/entity/vo/YishengVO.java b/src/main/java/com/entity/vo/YishengVO.java index 4b69f91..77c0977 100644 --- a/src/main/java/com/entity/vo/YishengVO.java +++ b/src/main/java/com/entity/vo/YishengVO.java @@ -13,358 +13,389 @@ import java.io.Serializable; * 医生 * 手机端接口返回实体辅助类 * (主要作用去除一些不必要的字段) + * 该类用于定义返回给手机端接口的数据结构,通过定义特定的属性,控制返回给客户端的数据内容, + * 避免返回不必要的敏感或无用信息。 */ -@TableName("yisheng") +@TableName("yisheng") // 声明该实体类对应的数据库表名为 "yisheng",用于 MyBatis-Plus 的相关操作 public class YishengVO implements Serializable { private static final long serialVersionUID = 1L; - + // 序列化版本号,用于保证在对象序列化和反序列化过程中的兼容性 /** * 主键 + * 对应数据库表中记录的唯一标识字段 */ - @TableField(value = "id") private Integer id; - /** * 医生工号 + * 用于唯一标识医生的编号 */ - @TableField(value = "yisheng_uuid_number") private String yishengUuidNumber; - /** * 账户 + * 医生登录系统使用的账户名 */ - @TableField(value = "username") private String username; - /** * 密码 + * 医生登录系统使用的密码 + * 注意:通常密码不应该返回给客户端,这里可能存在安全风险,需要根据实际情况处理 */ - @TableField(value = "password") private String password; - /** * 医生名称 + * 医生的真实姓名 */ - @TableField(value = "yisheng_name") private String yishengName; - /** * 科室 + * 医生所属的科室,用整数表示科室编号 */ - @TableField(value = "yisheng_types") private Integer yishengTypes; - /** * 职位 + * 医生的职位,用整数表示职位编号 */ - @TableField(value = "zhiwei_types") private Integer zhiweiTypes; - /** * 职称 + * 医生的职称信息 */ - @TableField(value = "yisheng_zhichneg") private String yishengZhichneg; - /** * 医生头像 + * 医生头像的存储路径或链接 */ - @TableField(value = "yisheng_photo") private String yishengPhoto; - /** * 联系方式 + * 医生的联系电话号码 */ - @TableField(value = "yisheng_phone") private String yishengPhone; - /** * 挂号须知 + * 关于该医生挂号的相关注意事项 */ - @TableField(value = "yisheng_guahao") private String yishengGuahao; - /** * 邮箱 + * 医生的电子邮箱地址 */ - @TableField(value = "yisheng_email") private String yishengEmail; - /** * 挂号价格 + * 患者挂该医生号所需支付的费用 */ - @TableField(value = "yisheng_new_money") private Double yishengNewMoney; - /** * 履历介绍 + * 医生的工作履历、专业技能等相关介绍信息 */ - @TableField(value = "yisheng_content") private String yishengContent; - /** * 创建时间 show1 show2 photoShow + * 该字段表示医生记录的创建时间,通过注解进行日期格式的处理 */ - @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") - @DateTimeFormat - + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat @TableField(value = "create_time") private Date createTime; - /** - * 设置:主键 - */ + * 获取主键的值 + * + * @return 主键的值 + */ public Integer getId() { return id; } - /** - * 获取:主键 - */ - + * 设置主键的值 + * + * @param id 要设置的主键值 + */ public void setId(Integer id) { this.id = id; } + /** - * 设置:医生工号 - */ + * 获取医生工号的值 + * + * @return 医生工号的值 + */ public String getYishengUuidNumber() { return yishengUuidNumber; } - /** - * 获取:医生工号 - */ - + * 设置医生工号的值 + * + * @param yishengUuidNumber 要设置的医生工号值 + */ public void setYishengUuidNumber(String yishengUuidNumber) { this.yishengUuidNumber = yishengUuidNumber; } + /** - * 设置:账户 - */ + * 获取账户的值 + * + * @return 账户的值 + */ public String getUsername() { return username; } - /** - * 获取:账户 - */ - + * 设置账户的值 + * + * @param username 要设置的账户值 + */ public void setUsername(String username) { this.username = username; } + /** - * 设置:密码 - */ + * 获取密码的值 + * + * @return 密码的值 + */ public String getPassword() { return password; } - /** - * 获取:密码 - */ - + * 设置密码的值 + * + * @param password 要设置的密码值 + */ public void setPassword(String password) { this.password = password; } + /** - * 设置:医生名称 - */ + * 获取医生名称的值 + * + * @return 医生名称的值 + */ public String getYishengName() { return yishengName; } - /** - * 获取:医生名称 - */ - + * 设置医生名称的值 + * + * @param yishengName 要设置的医生名称值 + */ public void setYishengName(String yishengName) { this.yishengName = yishengName; } + /** - * 设置:科室 - */ + * 获取科室的值 + * + * @return 科室的值 + */ public Integer getYishengTypes() { return yishengTypes; } - /** - * 获取:科室 - */ - + * 设置科室的值 + * + * @param yishengTypes 要设置的科室值 + */ public void setYishengTypes(Integer yishengTypes) { this.yishengTypes = yishengTypes; } + /** - * 设置:职位 - */ + * 获取职位的值 + * + * @return 职位的值 + */ public Integer getZhiweiTypes() { return zhiweiTypes; } - /** - * 获取:职位 - */ - + * 设置职位的值 + * + * @param zhiweiTypes 要设置的职位值 + */ public void setZhiweiTypes(Integer zhiweiTypes) { this.zhiweiTypes = zhiweiTypes; } + /** - * 设置:职称 - */ + * 获取职称的值 + * + * @return 职称的值 + */ public String getYishengZhichneg() { return yishengZhichneg; } - /** - * 获取:职称 - */ - + * 设置职称的值 + * + * @param yishengZhichneg 要设置的职称值 + */ public void setYishengZhichneg(String yishengZhichneg) { this.yishengZhichneg = yishengZhichneg; } + /** - * 设置:医生头像 - */ + * 获取医生头像的值 + * + * @return 医生头像的值 + */ public String getYishengPhoto() { return yishengPhoto; } - /** - * 获取:医生头像 - */ - + * 设置医生头像的值 + * + * @param yishengPhoto 要设置的医生头像值 + */ public void setYishengPhoto(String yishengPhoto) { this.yishengPhoto = yishengPhoto; } + /** - * 设置:联系方式 - */ + * 获取联系方式的值 + * + * @return 联系方式的值 + */ public String getYishengPhone() { return yishengPhone; } - /** - * 获取:联系方式 - */ - + * 设置联系方式的值 + * + * @param yishengPhone 要设置的联系方式值 + */ public void setYishengPhone(String yishengPhone) { this.yishengPhone = yishengPhone; } + /** - * 设置:挂号须知 - */ + * 获取挂号须知的值 + * + * @return 挂号须知的值 + */ public String getYishengGuahao() { return yishengGuahao; } - /** - * 获取:挂号须知 - */ - + * 设置挂号须知的值 + * + * @param yishengGuahao 要设置的挂号须知值 + */ public void setYishengGuahao(String yishengGuahao) { this.yishengGuahao = yishengGuahao; } + /** - * 设置:邮箱 - */ + * 获取邮箱的值 + * + * @return 邮箱的值 + */ public String getYishengEmail() { return yishengEmail; } - /** - * 获取:邮箱 - */ - + * 设置邮箱的值 + * + * @param yishengEmail 要设置的邮箱值 + */ public void setYishengEmail(String yishengEmail) { this.yishengEmail = yishengEmail; } + /** - * 设置:挂号价格 - */ + * 获取挂号价格的值 + * + * @return 挂号价格的值 + */ public Double getYishengNewMoney() { return yishengNewMoney; } - /** - * 获取:挂号价格 - */ - + * 设置挂号价格的值 + * + * @param yishengNewMoney 要设置的挂号价格值 + */ public void setYishengNewMoney(Double yishengNewMoney) { this.yishengNewMoney = yishengNewMoney; } + /** - * 设置:履历介绍 - */ + * 获取履历介绍的值 + * + * @return 履历介绍的值 + */ public String getYishengContent() { return yishengContent; } - /** - * 获取:履历介绍 - */ - + * 设置履历介绍的值 + * + * @param yishengContent 要设置的履历介绍值 + */ public void setYishengContent(String yishengContent) { this.yishengContent = yishengContent; } + /** - * 设置:创建时间 show1 show2 photoShow - */ + * 获取创建时间的值 + * + * @return 创建时间的值 + */ public Date getCreateTime() { return createTime; } - /** - * 获取:创建时间 show1 show2 photoShow - */ - + * 设置创建时间的值 + * + * @param createTime 要设置的创建时间值 + */ public void setCreateTime(Date createTime) { this.createTime = createTime; } - -} +} \ No newline at end of file diff --git a/src/main/java/com/service/YonghuService.java b/src/main/java/com/service/YonghuService.java index bdd6c32..a006d07 100644 --- a/src/main/java/com/service/YonghuService.java +++ b/src/main/java/com/service/YonghuService.java @@ -6,14 +6,16 @@ import com.entity.YonghuEntity; import java.util.Map; import javax.servlet.http.HttpServletRequest; + /** * 用户 服务类 */ public interface YonghuService extends IService { + /** - * @param params 查询参数 - * @return 带分页的查询出来的数据 - */ + * @param params 查询参数 + * @return 带分页的查询出来的数据 + */ PageUtils queryPage(Map params); } \ No newline at end of file diff --git a/src/main/java/com/service/impl/YishengServiceImpl.java b/src/main/java/com/service/impl/YishengServiceImpl.java index cd443ec..9e3454d 100644 --- a/src/main/java/com/service/impl/YishengServiceImpl.java +++ b/src/main/java/com/service/impl/YishengServiceImpl.java @@ -19,21 +19,36 @@ import com.entity.view.YishengView; /** * 医生 服务实现类 + * 该类实现了 YishengService 接口,用于处理医生相关业务逻辑,继承自 MyBatis-Plus 的 ServiceImpl 类 */ -@Service("yishengService") -@Transactional +@Service("yishengService") // 声明这是一个 Spring 服务组件,名称为 "yishengService" +@Transactional // 开启事务管理,确保数据库操作的原子性 public class YishengServiceImpl extends ServiceImpl implements YishengService { + /** + * 分页查询医生信息 + * + * @param params 包含分页和查询条件的参数映射,可能包含 "page"(页码)、"limit"(每页记录数)等信息 + * @return 返回封装好的分页信息对象 PageUtils + */ @Override - public PageUtils queryPage(Map params) { - if(params != null && (params.get("limit") == null || params.get("page") == null)){ - params.put("page","1"); - params.put("limit","10"); + public PageUtils queryPage(Map params) { + // 检查参数是否为空,并且判断是否缺少 "limit" 或 "page" 参数 + if (params != null && (params.get("limit") == null || params.get("page") == null)) { + // 如果缺少 "page" 参数,将其默认设置为 "1",表示第一页 + params.put("page", "1"); + // 如果缺少 "limit" 参数,将其默认设置为 "10",表示每页显示 10 条记录 + params.put("limit", "10"); } - Page page =new Query(params).getPage(); - page.setRecords(baseMapper.selectListView(page,params)); - return new PageUtils(page); - } + // 根据传入的参数创建一个分页对象 Page,用于存储查询结果 + Page page = new Query(params).getPage(); + + // 调用 baseMapper(即 YishengDao)的 selectListView 方法,根据分页对象和查询参数进行分页查询 + // 并将查询结果记录设置到分页对象中 + page.setRecords(baseMapper.selectListView(page, params)); -} + // 将分页对象封装到 PageUtils 中,方便返回给调用者 + return new PageUtils(page); + } +} \ No newline at end of file diff --git a/src/main/resources/admin/admin/src/views/modules/guahao/add-or-update.vue b/src/main/resources/admin/admin/src/views/modules/guahao/add-or-update.vue index 90c8752..02dcdf7 100644 --- a/src/main/resources/admin/admin/src/views/modules/guahao/add-or-update.vue +++ b/src/main/resources/admin/admin/src/views/modules/guahao/add-or-update.vue @@ -1,698 +1,283 @@ - - + + + + +
+ + + +
+
+ + + + +
+ + + +
+
+ + + + +
+ + + +
+
+ + + + +
+ + + +
+
+ + + + +
+ + + +
+
+ + + + + + + + +
+ + + +
+
+ + + + + +
+ + + +
+
+ + + + + + + +
+ + + +
+
+ + + + + + + +
+ + + +
+
+ + + + - -
-