From 9a9c683bf74de6fc5b8fb64f6fddae82e648e4e0 Mon Sep 17 00:00:00 2001 From: cp <2474209645@qq.com> Date: Mon, 28 Apr 2025 21:12:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/controller/YishengController.java | 383 ++++++++---------- 1 file changed, 172 insertions(+), 211 deletions(-) diff --git a/src/main/java/com/controller/YishengController.java b/src/main/java/com/controller/YishengController.java index c056d20..bca53e8 100644 --- a/src/main/java/com/controller/YishengController.java +++ b/src/main/java/com/controller/YishengController.java @@ -1,4 +1,3 @@ - package com.controller; import java.io.File; @@ -37,7 +36,7 @@ import com.alibaba.fastjson.*; * 后端接口 * @author * @email -*/ + */ @RestController @Controller @RequestMapping("/yisheng") @@ -45,140 +44,134 @@ public class YishengController { private static final Logger logger = LoggerFactory.getLogger(YishengController.class); @Autowired - private YishengService yishengService; - + private YishengService yishengService; // 医生服务 @Autowired - private TokenService tokenService; + private TokenService tokenService; // token服务 @Autowired - private DictionaryService dictionaryService; + private DictionaryService dictionaryService; // 字典服务 //级联表service @Autowired - private YonghuService yonghuService; + private YonghuService yonghuService; // 用户服务 /** - * 后端列表 - */ + * 后端列表 + */ @RequestMapping("/page") 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")); + String role = String.valueOf(request.getSession().getAttribute("role")); // 获取用户角色 if(false) return R.error(511,"永不会进入"); else if("用户".equals(role)) - params.put("yonghuId",request.getSession().getAttribute("userId")); + params.put("yonghuId",request.getSession().getAttribute("userId")); // 如果是用户角色,添加用户ID参数 else if("医生".equals(role)) - params.put("yishengId",request.getSession().getAttribute("userId")); + params.put("yishengId",request.getSession().getAttribute("userId")); // 如果是医生角色,添加医生ID参数 if(params.get("orderBy")==null || params.get("orderBy")==""){ - params.put("orderBy","id"); + params.put("orderBy","id"); // 默认按ID排序 } - PageUtils page = yishengService.queryPage(params); + PageUtils page = yishengService.queryPage(params); // 分页查询 //字典表数据转换 List list =(List)page.getList(); for(YishengView c:list){ //修改对应字典表字段 - dictionaryService.dictionaryConvert(c, request); + dictionaryService.dictionaryConvert(c, request); // 转换字典字段 } - return R.ok().put("data", page); + return R.ok().put("data", page); // 返回分页数据 } /** - * 后端详情 - */ + * 后端详情 + */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id, HttpServletRequest request){ logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id); - YishengEntity yisheng = yishengService.selectById(id); + YishengEntity yisheng = yishengService.selectById(id); // 根据ID查询医生 if(yisheng !=null){ //entity转view YishengView view = new YishengView(); - BeanUtils.copyProperties( yisheng , view );//把实体数据重构到view中 + BeanUtils.copyProperties( yisheng , view ); // 把实体数据重构到view中 //修改对应字典表字段 - dictionaryService.dictionaryConvert(view, request); - return R.ok().put("data", view); + dictionaryService.dictionaryConvert(view, request); // 转换字典字段 + return R.ok().put("data", view); // 返回医生详情 }else { - return R.error(511,"查不到数据"); + 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")); + String role = String.valueOf(request.getSession().getAttribute("role")); // 获取用户角色 if(false) return R.error(511,"永远不会进入"); + // 构建查询条件:用户名或手机号 Wrapper queryWrapper = new EntityWrapper() - .eq("username", yisheng.getUsername()) - .or() - .eq("yisheng_phone", yisheng.getYishengPhone()) - ; + .eq("username", yisheng.getUsername()) + .or() + .eq("yisheng_phone", yisheng.getYishengPhone()); logger.info("sql语句:"+queryWrapper.getSqlSegment()); - YishengEntity yishengEntity = yishengService.selectOne(queryWrapper); + YishengEntity yishengEntity = yishengService.selectOne(queryWrapper); // 查询是否已存在 if(yishengEntity==null){ - yisheng.setCreateTime(new Date()); - yisheng.setPassword("123456"); - yishengService.insert(yisheng); - return R.ok(); + yisheng.setCreateTime(new Date()); // 设置创建时间 + yisheng.setPassword("123456"); // 设置默认密码 + yishengService.insert(yisheng); // 插入新医生数据 + return R.ok(); // 返回成功 }else { - return R.error(511,"账户或者联系方式已经被使用"); + 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,"永远不会进入"); - //根据字段查询是否有相同数据 + String role = String.valueOf(request.getSession().getAttribute("role")); // 获取用户角色 + // 构建查询条件:排除当前ID,查询用户名或手机号是否已被其他记录使用 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()); logger.info("sql语句:"+queryWrapper.getSqlSegment()); - YishengEntity yishengEntity = yishengService.selectOne(queryWrapper); + YishengEntity yishengEntity = yishengService.selectOne(queryWrapper); // 查询是否冲突 if("".equals(yisheng.getYishengPhoto()) || "null".equals(yisheng.getYishengPhoto())){ - yisheng.setYishengPhoto(null); + yisheng.setYishengPhoto(null); // 处理空照片 } if(yishengEntity==null){ - yishengService.updateById(yisheng);//根据id更新 - return R.ok(); + yishengService.updateById(yisheng); // 根据id更新 + return R.ok(); // 返回成功 }else { - return R.error(511,"账户或者联系方式已经被使用"); + return R.error(511,"账户或者联系方式已经被使用"); // 冲突返回错误 } } /** - * 删除 - */ + * 删除 + */ @RequestMapping("/delete") public R delete(@RequestBody Integer[] ids){ logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString()); - yishengService.deleteBatchIds(Arrays.asList(ids)); - return R.ok(); + yishengService.deleteBatchIds(Arrays.asList(ids)); // 批量删除 + return R.ok(); // 返回成功 } - /** * 批量上传 */ @@ -186,76 +179,62 @@ public class YishengController { public R save( String fileName){ logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName); try { - List yishengList = new ArrayList<>();//上传的东西 - 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,"该文件没有后缀"); + return R.error(511,"该文件没有后缀"); // 文件后缀检查 }else{ String suffix = fileName.substring(lastIndexOf); if(!".xls".equals(suffix)){ - return R.error(511,"只支持后缀为xls的excel文件"); + return R.error(511,"只支持后缀为xls的excel文件"); // 文件格式检查 }else{ - URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径 + URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName); // 获取文件路径 File file = new File(resource.getFile()); if(!file.exists()){ - return R.error(511,"找不到上传文件,请联系管理员"); + return R.error(511,"找不到上传文件,请联系管理员"); // 文件存在检查 }else{ - List> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件 - dataList.remove(0);//删除第一行,因为第一行是提示 + 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");//密码 -// 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); - - - //把要查询是否重复的字段放入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); - } + // 这里注释掉的代码是字段映射示例,实际使用时需要根据Excel列对应关系修改 + yishengList.add(yishengEntity); // 添加到列表 + + // 把要查询是否重复的字段放入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<>(); @@ -264,7 +243,7 @@ public class YishengController { } return R.error(511,"数据库的该表中的 [医生工号] 字段已经存在 存在数据为:"+repeatFields.toString()); } - //账户 + // 账户 List yishengEntities_username = yishengService.selectList(new EntityWrapper().in("username", seachFields.get("username"))); if(yishengEntities_username.size() >0 ){ ArrayList repeatFields = new ArrayList<>(); @@ -273,7 +252,7 @@ public class YishengController { } return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString()); } - //联系方式 + // 联系方式 List yishengEntities_yishengPhone = yishengService.selectList(new EntityWrapper().in("yisheng_phone", seachFields.get("yishengPhone"))); if(yishengEntities_yishengPhone.size() >0 ){ ArrayList repeatFields = new ArrayList<>(); @@ -282,60 +261,53 @@ public class YishengController { } return R.error(511,"数据库的该表中的 [联系方式] 字段已经存在 存在数据为:"+repeatFields.toString()); } - yishengService.insertBatch(yishengList); + yishengService.insertBatch(yishengList); // 批量插入 return R.ok(); } } } }catch (Exception e){ - return R.error(511,"批量插入数据异常,请联系管理员"); + 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)); + YishengEntity yisheng = yishengService.selectOne(new EntityWrapper().eq("username", username)); // 根据用户名查询 if(yisheng==null || !yisheng.getPassword().equals(password)) - 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(yisheng.getId(),username, "yisheng", "医生"); + return R.error("账号或密码不正确"); // 验证账号密码 + String token = tokenService.generateToken(yisheng.getId(),username, "yisheng", "医生"); // 生成token 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()); + r.put("token", token); // 返回token + r.put("role","医生"); // 返回角色 + r.put("username",yisheng.getYishengName()); // 返回医生姓名 + r.put("tableName","yisheng"); // 返回表名 + r.put("userId",yisheng.getId()); // 返回用户ID 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); + .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(); + return R.error("账户或者联系方式已经被使用"); // 已存在返回错误 + yisheng.setYishengNewMoney(0.0); // 设置初始金额 + yisheng.setCreateTime(new Date()); // 设置创建时间 + yishengService.insert(yisheng); // 插入新医生 + return R.ok(); // 返回成功 } /** @@ -344,69 +316,63 @@ public class YishengController { @GetMapping(value = "/resetPassword") public R resetPassword(Integer id){ YishengEntity yisheng = new YishengEntity(); - yisheng.setPassword("123456"); + yisheng.setPassword("123456"); // 重置为默认密码 yisheng.setId(id); - yishengService.updateById(yisheng); - return R.ok(); + 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)); + YishengEntity yisheng = yishengService.selectOne(new EntityWrapper().eq("username", username)); // 根据用户名查询 if(yisheng!=null){ - yisheng.setPassword("123456"); - boolean b = yishengService.updateById(yisheng); + yisheng.setPassword("123456"); // 重置为默认密码 + boolean b = yishengService.updateById(yisheng); // 更新密码 if(!b){ - return R.error(); + return R.error(); // 更新失败 } }else{ - return R.error("账号不存在"); + return R.error("账号不存在"); // 账号不存在 } - return R.ok(); + return R.ok(); // 返回成功 } - /** - * 获取用户的session用户信息 - */ + * 获取用户的session用户信息 + */ @RequestMapping("/session") public R getCurrYisheng(HttpServletRequest request){ - Integer id = (Integer)request.getSession().getAttribute("userId"); - YishengEntity yisheng = yishengService.selectById(id); + Integer id = (Integer)request.getSession().getAttribute("userId"); // 获取session中的用户ID + YishengEntity yisheng = yishengService.selectById(id); // 查询用户信息 if(yisheng !=null){ //entity转view YishengView view = new YishengView(); - BeanUtils.copyProperties( yisheng , view );//把实体数据重构到view中 + BeanUtils.copyProperties( yisheng , view ); // 复制属性到view //修改对应字典表字段 - dictionaryService.dictionaryConvert(view, request); - return R.ok().put("data", view); + dictionaryService.dictionaryConvert(view, request); // 转换字典字段 + return R.ok().put("data", view); // 返回用户信息 }else { - return R.error(511,"查不到数据"); + return R.error(511,"查不到数据"); // 查询不到返回错误 } } - /** - * 退出 - */ + * 退出 + */ @GetMapping(value = "logout") public R logout(HttpServletRequest request) { - request.getSession().invalidate(); - return R.ok("退出成功"); + request.getSession().invalidate(); // 使session失效 + return R.ok("退出成功"); // 返回退出成功 } - - - /** - * 前端列表 - */ + * 前端列表 + */ @IgnoreAuth @RequestMapping("/list") public R list(@RequestParam Map params, HttpServletRequest request){ @@ -416,60 +382,55 @@ public class YishengController { if(StringUtil.isEmpty(String.valueOf(params.get("orderBy")))){ params.put("orderBy","id"); } - PageUtils page = yishengService.queryPage(params); + PageUtils page = yishengService.queryPage(params); // 分页查询 //字典表数据转换 List list =(List)page.getList(); for(YishengView c:list) - dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段 - return R.ok().put("data", page); + 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中 + YishengEntity yisheng = yishengService.selectById(id); // 根据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,"查不到数据"); - } + //修改对应字典表字段 + 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()) - ; + .eq("username", yisheng.getUsername()) + .or() + .eq("yisheng_phone", yisheng.getYishengPhone()); logger.info("sql语句:"+queryWrapper.getSqlSegment()); - YishengEntity yishengEntity = yishengService.selectOne(queryWrapper); + YishengEntity yishengEntity = yishengService.selectOne(queryWrapper); // 查询是否已存在 if(yishengEntity==null){ - yisheng.setCreateTime(new Date()); - yisheng.setPassword("123456"); - yishengService.insert(yisheng); - return R.ok(); + yisheng.setCreateTime(new Date()); // 设置创建时间 + yisheng.setPassword("123456"); // 设置默认密码 + yishengService.insert(yisheng); // 插入新医生 + return R.ok(); // 返回成功 }else { - return R.error(511,"账户或者联系方式已经被使用"); + return R.error(511,"账户或者联系方式已经被使用"); // 已存在返回错误 } } - - -} +} \ No newline at end of file