diff --git a/.gitignore b/.gitignore index 9bbc9f4..2784e28 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,19 @@ out +target 【01】JavaSE 【02】MySQL 【03】网络协议 【04】jQuery 【05】J2EE -【06】拓展部分知识点 -【07】Java算法 -【20】Java公开课 \ No newline at end of file +【06】MyBatis +【07】Spring +【08】SpringMVC +【09】SpringBoot + +【20】Maven +【21】Git+svn + +【30】Java公开课 +【31】拓展部分知识点 +【32】Java算法 \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/.idea/webContexts.xml" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/.idea/webContexts.xml" index 99b47e3..627269f 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/.idea/webContexts.xml" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/.idea/webContexts.xml" @@ -3,6 +3,8 @@ diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/pom.xml" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/pom.xml" index 60cae61..88788d3 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/pom.xml" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/pom.xml" @@ -165,6 +165,13 @@ compile + + + com.github.pagehelper + pagehelper + 5.2.0 + + diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/PageController.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/PageController.java" index 9884aeb..66e20a7 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/PageController.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/PageController.java" @@ -1,33 +1,176 @@ package com.zgh.onlinevideo.controller; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.zgh.onlinevideo.domain.*; +import com.zgh.onlinevideo.service.*; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; +import java.util.List; + @Controller public class PageController { + @Autowired + CourseTopicService courseTopicService; + + @Autowired + BannerService bannerService; + + @Autowired + CourseTypeService courseTypeService; + + @Autowired + ToolItemService toolItemService; + + @Autowired + ToolTypeService toolTypeService; + // 首页 @RequestMapping("/") - public String indexPage() { + public String indexPage(Model model) { + + // 设置头页面的导航条当前焦点位置 + model.addAttribute("focusIndex", 1); + + // 获取首页数据 + + // banner + List bannerList = bannerService.getIndexBanner(); + + // 最新 + // 设置分页 第几页,显示N个 + PageHelper.startPage(1, 4); + PageInfo newsetTopicList = courseTopicService.getIndexNewestTopic(); + + // type=3 + // 设置分页 第几页,显示N个 + PageHelper.startPage(1, 4); + PageInfo courseTopicList = courseTopicService.getIndexCourseTopic(3); + + model.addAttribute("newsetTopicList", newsetTopicList); + model.addAttribute("courseTopicList", courseTopicList); + model.addAttribute("bannerList", bannerList); + return "index"; } - // 工具 - @RequestMapping("/tools") - public String toolsPage() { - return "tools"; + // 课程列表 + @RequestMapping("/course_list") + public String courseListPage(Model model) { + model.addAttribute("focusIndex", 2); //头页面聚焦 + model.addAttribute("courseTypeId", 0);//全部课程 无论类型 + + // 课程主题(全部) 排列显示 + PageHelper.startPage(1, 4); + PageInfo newsetTopicList = courseTopicService.getIndexNewestTopic(); + model.addAttribute("topicList", newsetTopicList); + + // 课程分类 导航栏 + List courseTypeList = courseTypeService.getCourseTypeAll(); + model.addAttribute("courseTypeList", courseTypeList); + + return "course_list"; + } + + // 课程列表 显示某一分类 + @RequestMapping("/course_list/type/{courseTypeId}") + public String courseListPage(@PathVariable Integer courseTypeId, Integer pageNum, Model model) { + + model.addAttribute("focusIndex", 2); + model.addAttribute("courseTypeId", courseTypeId);//课程某一分类 + + if (pageNum == null || pageNum <= 1) { + pageNum = 1; + } + + // 课程分类 导航栏 + List courseTypeList = courseTypeService.getCourseTypeAll(); + model.addAttribute("courseTypeList", courseTypeList); + + // 课程主题(按照分类) 排列显示 + PageHelper.startPage(pageNum, 4); + PageInfo courseTopicList = null; + if (courseTypeId == 0) { + // 最新专题 + courseTopicList = courseTopicService.getIndexNewestTopic(); + } else { + // 对应类型专题 + courseTopicList = courseTopicService.getIndexCourseTopic(courseTypeId); + } + + model.addAttribute("topicList", courseTopicList); + + return "course_list"; } // vip @RequestMapping("/vip") - public String vipPage() { + public String vipPage(Model model) { + model.addAttribute("focusIndex", 3); return "vip"; } - // 课程列表 - @RequestMapping("/course_list") - public String courseListPage() { - return "course_list"; + // 直播 + @RequestMapping("/live") + public String livePage(Model model) { + model.addAttribute("focusIndex", 4); + return "redirect:https://www.bilibili.com/"; + } + + // 工具列表 + @RequestMapping("/tool") + public String toolPage(Model model) { + model.addAttribute("focusIndex", 5); + model.addAttribute("toolTypeId", 0); + // 最新 + // 设置分页 第几页,显示N个 + PageHelper.startPage(1, 8); + PageInfo toolList = toolItemService.getToolItemAll(); + model.addAttribute("toolList", toolList); + + List toolTypeList = toolTypeService.getToolTypeAll(); + model.addAttribute("toolTypeList", toolTypeList); + + return "tool"; + } + + //工具列表 显示所有分类 + @RequestMapping(value = "/tool/type/{toolTypeId}") + public String toolPage(@PathVariable Integer toolTypeId, Model model, Integer pageNum) { + model.addAttribute("focusIndex", 5); + model.addAttribute("toolTypeId", toolTypeId); + + if (pageNum == null || pageNum <= 1) { + pageNum = 1; + } + + List toolTypeList = toolTypeService.getToolTypeAll(); + model.addAttribute("toolTypeList", toolTypeList); + + PageHelper.startPage(pageNum, 8); + + PageInfo toolList = null; + if (toolTypeId == 0) { + // 最新 + toolList = toolItemService.getToolItemAll(); + } else { + // 对应类型 + toolList = toolItemService.getToolItem(toolTypeId); + } + + model.addAttribute("toolList", toolList); + + return "tool"; + } + + @RequestMapping("/course_video") + public String courseVideoPage() { + return "course_video"; } } diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/SearchController.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/SearchController.java" new file mode 100644 index 0000000..e5dfdbd --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/SearchController.java" @@ -0,0 +1,34 @@ +package com.zgh.onlinevideo.controller; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.zgh.onlinevideo.domain.CourseTopic; +import com.zgh.onlinevideo.service.CourseTopicService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +public class SearchController { + + @Autowired + CourseTopicService courseTopicService; + + @RequestMapping("/search") + public String searchPage(Model model, String searchkey, Integer pageNum) { + model.addAttribute("focusIndex", 2); //头页面聚焦 + + if (pageNum == null || pageNum <= 1) { + pageNum = 1; + } + + // 课程主题(全部) 排列显示 + PageHelper.startPage(pageNum, 4); + PageInfo searchTopicList = courseTopicService.searchTopicByTitle(searchkey); + model.addAttribute("searchTopicList", searchTopicList); + + return "search"; + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/TopicController.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/TopicController.java" new file mode 100644 index 0000000..df23529 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/TopicController.java" @@ -0,0 +1,82 @@ +package com.zgh.onlinevideo.controller; + +import com.zgh.onlinevideo.domain.CourseTopic; +import com.zgh.onlinevideo.domain.CourseVideo; +import com.zgh.onlinevideo.domain.User; +import com.zgh.onlinevideo.service.CourseTopicService; +import com.zgh.onlinevideo.service.CourseVideoService; +import com.zgh.onlinevideo.util.Constants; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.servlet.http.HttpSession; +import java.util.List; + +@Controller +public class TopicController { + + @Autowired + CourseTopicService courseTopicService; + + @Autowired + CourseVideoService courseVideoService; + + // 课程专题页面 + @RequestMapping("/topic/{courseTopicId}") + public String topicPage(@PathVariable Integer courseTopicId, Model model) { + model.addAttribute("focusIndex", 2); + model.addAttribute("courseTopicId", courseTopicId); + + CourseTopic courseTopic = courseTopicService.getCourseTopic(courseTopicId); + + // 浏览数+1 + courseTopicService.viewsAdd(courseTopicId, courseTopic.getViews()+1); + + courseTopic = courseTopicService.getCourseTopic(courseTopicId); + model.addAttribute("courseTopic", courseTopic); + + List courseVideoList = courseVideoService.getCourseVideoAll(courseTopicId); + model.addAttribute("courseVideoList", courseVideoList); + + model.addAttribute("video", courseVideoList.get(0)); + + + + return "course_video"; + } + + // 课程专题页面 播放某一集视频 + @RequestMapping(value = "/topic/{courseTopicId}/{videoId}") + public String topicPage(@PathVariable Integer courseTopicId, @PathVariable Integer videoId, Model model, HttpSession session) { + model.addAttribute("focusIndex", 2); + model.addAttribute("courseTopicId", courseTopicId); + + CourseTopic courseTopic = courseTopicService.getCourseTopic(courseTopicId); + + // 检查当前登录用户 vip + User dbUser = (User) session.getAttribute(Constants.LOGIN_USER); + if (dbUser != null) { + int userVipFlag = dbUser.getVipFlag(); + System.out.println(dbUser); + model.addAttribute("userVipFlag", userVipFlag); + } + + // 浏览数+1 + courseTopicService.viewsAdd(courseTopicId, courseTopic.getViews()+1); + + courseTopic = courseTopicService.getCourseTopic(courseTopicId); + model.addAttribute("courseTopic", courseTopic); + + List courseVideoList = courseVideoService.getCourseVideoAll(courseTopicId); + model.addAttribute("courseVideoList", courseVideoList); + + CourseVideo video = courseVideoService.getCourseVideo(videoId); + model.addAttribute("video", video); + + return "course_video"; + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/UserController.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/UserController.java" index 6d15d4f..afdc613 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/UserController.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/UserController.java" @@ -58,7 +58,7 @@ public String login(User user, String autoLogin, HttpServletRequest request, Htt User dbUser = userService.login(user); if (dbUser != null) { - session.setAttribute(Constants.LOGIN_USER, user); + session.setAttribute(Constants.LOGIN_USER, dbUser); } // TODO 上面是账号密码的判断 @@ -67,7 +67,7 @@ public String login(User user, String autoLogin, HttpServletRequest request, Htt if ("1".equals(autoLogin)) { // 1 生成cookie返回给客户端凭证 // 2 服务器端保存token对应loginToken数据 application - LoginToken loginToken = VideoUtil.generateLoginToken(request, user); + LoginToken loginToken = VideoUtil.generateLoginToken(request, dbUser); Cookie cookie = new Cookie("autoToken", loginToken.generateToken()); // 设置COOKIE保存属性 diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/admin/AdminController.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/admin/AdminController.java" new file mode 100644 index 0000000..b7e78ea --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/controller/admin/AdminController.java" @@ -0,0 +1,88 @@ +package com.zgh.onlinevideo.controller.admin; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.zgh.onlinevideo.domain.User; +import com.zgh.onlinevideo.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +@Controller +public class AdminController { + + @Autowired + UserService userService; + + // 后台页面 + @RequestMapping("/admin") + public String adminPage(Model model) { + + PageHelper.startPage(1, 8); + PageInfo userList = userService.getUserList(); + model.addAttribute("userList", userList); + + return "admin_main"; + + } + + //用户列表 显示所有用户 + @RequestMapping(value = "/admin/user") + public String userPage(Model model, Integer pageNum) { + + if (pageNum == null || pageNum <= 1) { + pageNum = 1; + } + + PageHelper.startPage(pageNum, 8); + + PageInfo userList = userService.getUserList(); + model.addAttribute("userList", userList); + + return "admin_main"; + } + + // 删除用户 + @RequestMapping(value = "/admin/userDel/{uid}") + public String userDel(@PathVariable Integer uid, Integer pageNum) { + + int code = userService.delete(uid); + if (pageNum == null || pageNum <= 1) { + pageNum = 1; + } + return "redirect:/admin/user?pageNum=" + pageNum; + } + + // 显示更新用户页面 + @RequestMapping(value = "/admin/userUpdatePage/{uid}") + public String userUpdate(@PathVariable Integer uid, Model model, Integer pageNum) { + + User user = userService.getUser(uid); + + model.addAttribute("user", user); + model.addAttribute("pageNum", pageNum); + + return "admin_user_update"; + } + + // 处理用户更新请求 + @RequestMapping(value = "/admin/userUpdate", method = RequestMethod.POST) + public String userUpdate(User user, Integer pageNum) { + + int code = userService.updateUser(user); + + if (pageNum == null || pageNum <= 1) { + pageNum = 1; + } + + return "redirect:/admin/user?pageNum=" + pageNum; + } + + + // 新增用户 + // ... + +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/BannerDao.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/BannerDao.java" index 4b880de..1640062 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/BannerDao.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/BannerDao.java" @@ -3,9 +3,13 @@ import com.zgh.onlinevideo.domain.Banner; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface BannerDao { int insertBanner(Banner banner); + List findBannerAll(); + } diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/CourseTopicDao.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/CourseTopicDao.java" index 5735fad..f403956 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/CourseTopicDao.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/CourseTopicDao.java" @@ -3,9 +3,18 @@ import com.zgh.onlinevideo.domain.CourseTopic; import org.springframework.stereotype.Repository; +import java.util.HashMap; +import java.util.List; + @Repository public interface CourseTopicDao { int insertCourseTopic(CourseTopic courseTopic); + List findCourseTopicByCondition(HashMap map); + + List findCourseTopicByIds(List ids); + + int updateCourseTopic(HashMap map); + } diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/CourseTypeDao.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/CourseTypeDao.java" index 3c9bbc1..0d3c380 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/CourseTypeDao.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/CourseTypeDao.java" @@ -3,9 +3,13 @@ import com.zgh.onlinevideo.domain.CourseType; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface CourseTypeDao { int insertCourseType(CourseType courseType); + List findCourseTypeAll(); + } diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/CourseVideoDao.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/CourseVideoDao.java" index dfb7c2f..05bf25f 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/CourseVideoDao.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/CourseVideoDao.java" @@ -3,9 +3,16 @@ import com.zgh.onlinevideo.domain.CourseVideo; import org.springframework.stereotype.Repository; +import java.util.HashMap; +import java.util.List; + @Repository public interface CourseVideoDao { int insertCourseVideo(CourseVideo courseVideo); + List findCourseVideoByCondition(HashMap map); + + CourseVideo findCourseVideoByIds(List ids); + } diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/ToolItemDao.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/ToolItemDao.java" index 52adf0d..8d5259b 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/ToolItemDao.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/ToolItemDao.java" @@ -3,9 +3,16 @@ import com.zgh.onlinevideo.domain.ToolItem; import org.springframework.stereotype.Repository; +import java.util.HashMap; +import java.util.List; + @Repository public interface ToolItemDao { int insertToolItem(ToolItem toolItem); + List findToolItemByCondition(HashMap map); + + List findToolItemAll(); + } diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/ToolTypeDao.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/ToolTypeDao.java" index 6cf6264..dd3b13b 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/ToolTypeDao.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/ToolTypeDao.java" @@ -3,9 +3,13 @@ import com.zgh.onlinevideo.domain.ToolType; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface ToolTypeDao { int insertToolType(ToolType toolType); + List findToolTypeAll(); + } diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/UserDao.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/UserDao.java" index 88ec0f7..466b9ca 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/UserDao.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/dao/UserDao.java" @@ -4,6 +4,7 @@ import org.springframework.stereotype.Repository; import java.util.HashMap; +import java.util.List; @Repository public interface UserDao { @@ -12,4 +13,10 @@ public interface UserDao { User findUserByCondition(HashMap map); + List findUserAll(); + + int updateUser(User user); + + User findUserByIds(List ids); + } diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/domain/CourseVideo.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/domain/CourseVideo.java" index 4f4ad42..c014c2a 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/domain/CourseVideo.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/domain/CourseVideo.java" @@ -23,8 +23,8 @@ public class CourseVideo implements java.io.Serializable { /** freeFlag */ private Integer freeFlag; - /** courseTypeId */ - private Integer courseTypeId; + /** courseTopicId */ + private Integer courseTopicId; /** flag */ private Integer flag; @@ -101,17 +101,17 @@ public void setFreeFlag(Integer freeFlag) { * * @return courseTypeId */ - public Integer getCourseTypeId() { - return this.courseTypeId; + public Integer getCourseTopicId() { + return this.courseTopicId; } /** * 设置courseTypeId * - * @param courseTypeId + * @param courseTopicId */ - public void setCourseTypeId(Integer courseTypeId) { - this.courseTypeId = courseTypeId; + public void setCourseTopicId(Integer courseTopicId) { + this.courseTopicId = courseTopicId; } /** diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/domain/User.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/domain/User.java" index e42def1..43462aa 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/domain/User.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/domain/User.java" @@ -35,6 +35,15 @@ public class User implements java.io.Serializable { /** createTime */ private Date createTime; + private Integer flag; + + public Integer getFlag() { + return flag; + } + + public void setFlag(Integer flag) { + this.flag = flag; + } /* This code was generated by TableGo tools, mark 1 end. */ /* This code was generated by TableGo tools, mark 2 begin. */ diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/exception/PageException.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/exception/PageException.java" new file mode 100644 index 0000000..436910c --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/exception/PageException.java" @@ -0,0 +1,12 @@ +package com.zgh.onlinevideo.exception; + +public class PageException extends RuntimeException { + + public PageException() { + } + + public PageException(String message) { + super(message); + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/exception/VideoExceptionResolver.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/exception/VideoExceptionResolver.java" index deaffc4..656b48a 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/exception/VideoExceptionResolver.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/exception/VideoExceptionResolver.java" @@ -21,10 +21,11 @@ public ModelAndView resolveException(HttpServletRequest httpServletRequest, Http mv.setViewName("error"); if (e instanceof UserException) { - mv.addObject("message", e.getMessage()); - } else { - mv.addObject("message", e); + mv.addObject("flag", "用户逻辑错误"); + } else if (e instanceof PageException) { + mv.addObject("flag", "页面逻辑错误"); } + mv.addObject("message", e.getMessage()); return mv; diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/BannerService.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/BannerService.java" new file mode 100644 index 0000000..2fcf5f6 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/BannerService.java" @@ -0,0 +1,11 @@ +package com.zgh.onlinevideo.service; + + +import com.zgh.onlinevideo.domain.Banner; + +import java.util.List; + +public interface BannerService { + + List getIndexBanner(); +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/CourseTopicService.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/CourseTopicService.java" new file mode 100644 index 0000000..a333ae9 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/CourseTopicService.java" @@ -0,0 +1,21 @@ +package com.zgh.onlinevideo.service; + + +import com.github.pagehelper.PageInfo; +import com.zgh.onlinevideo.domain.CourseTopic; + +public interface CourseTopicService { + + PageInfo getIndexCourseTopic(int typeId); + + // 最新的那些课程主题 + PageInfo getIndexNewestTopic(); + + CourseTopic getCourseTopic(int topicId); + + // 课程专题浏览数+1 + void viewsAdd(int courseTopicId, int views); + + // 搜索课程专题 + PageInfo searchTopicByTitle(String title); +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/CourseTypeService.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/CourseTypeService.java" index cb1c1c2..34d9410 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/CourseTypeService.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/CourseTypeService.java" @@ -2,8 +2,12 @@ import com.zgh.onlinevideo.domain.CourseType; +import java.util.List; + public interface CourseTypeService { int insertCourseType(CourseType courseType); + List getCourseTypeAll(); + } diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/CourseVideoService.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/CourseVideoService.java" new file mode 100644 index 0000000..b0fd8cb --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/CourseVideoService.java" @@ -0,0 +1,13 @@ +package com.zgh.onlinevideo.service; + +import com.zgh.onlinevideo.domain.CourseVideo; + +import java.util.List; + +public interface CourseVideoService { + + List getCourseVideoAll(int topicId); + + CourseVideo getCourseVideo(int vid); + +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/ToolItemService.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/ToolItemService.java" new file mode 100644 index 0000000..9c670f5 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/ToolItemService.java" @@ -0,0 +1,11 @@ +package com.zgh.onlinevideo.service; + +import com.github.pagehelper.PageInfo; +import com.zgh.onlinevideo.domain.ToolItem; + +public interface ToolItemService { + + PageInfo getToolItem(int typeId); + + PageInfo getToolItemAll(); +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/ToolTypeService.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/ToolTypeService.java" new file mode 100644 index 0000000..27a4a7a --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/ToolTypeService.java" @@ -0,0 +1,11 @@ +package com.zgh.onlinevideo.service; + +import com.zgh.onlinevideo.domain.ToolType; + +import java.util.List; + +public interface ToolTypeService { + + List getToolTypeAll(); + +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/UserService.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/UserService.java" index 8be1198..52cd284 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/UserService.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/UserService.java" @@ -1,5 +1,6 @@ package com.zgh.onlinevideo.service; +import com.github.pagehelper.PageInfo; import com.zgh.onlinevideo.domain.User; public interface UserService { @@ -10,4 +11,12 @@ public interface UserService { User existEmail(String email); + PageInfo getUserList(); + + int delete(Integer uid); + + User getUser(int uid); + + int updateUser(User user); + } diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/BannerServiceImpl.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/BannerServiceImpl.java" new file mode 100644 index 0000000..afca96a --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/BannerServiceImpl.java" @@ -0,0 +1,22 @@ +package com.zgh.onlinevideo.service.impl; + +import com.zgh.onlinevideo.dao.BannerDao; +import com.zgh.onlinevideo.domain.Banner; +import com.zgh.onlinevideo.service.BannerService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class BannerServiceImpl implements BannerService { + + + @Autowired + BannerDao bannerDao; + + @Override + public List getIndexBanner() { + return bannerDao.findBannerAll(); + } +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/CourseTopicServiceImpl.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/CourseTopicServiceImpl.java" new file mode 100644 index 0000000..19499c3 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/CourseTopicServiceImpl.java" @@ -0,0 +1,92 @@ +package com.zgh.onlinevideo.service.impl; + + +import com.github.pagehelper.PageException; +import com.github.pagehelper.PageInfo; +import com.zgh.onlinevideo.dao.CourseTopicDao; +import com.zgh.onlinevideo.domain.CourseTopic; +import com.zgh.onlinevideo.service.CourseTopicService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + + +@Service +public class CourseTopicServiceImpl implements CourseTopicService { + + @Autowired + CourseTopicDao courseTopicDao; + + @Override + public PageInfo getIndexCourseTopic(int typeId) { + + HashMap map = new HashMap<>(); + // 类型ID + map.put("courseTypeId", typeId); + // flag=1 + map.put("flag", 1); + + List list = courseTopicDao.findCourseTopicByCondition(map); + + PageInfo pageInfo = new PageInfo<>(list, 4); + + return pageInfo; + } + + @Override + public PageInfo getIndexNewestTopic() { + // TODO 1 + + HashMap map = new HashMap<>(); + // 排序 ==1 倒序 desc + map.put("order", 1); + // flag=1 + map.put("flag", 1); + List list = courseTopicDao.findCourseTopicByCondition(map); + + // TODO 2 + // TODO 3 MYBATIS 配置文件拦截器(PageInfo) + PageInfo pageInfo = new PageInfo<>(list, 4); + + return pageInfo; + + } + + @Override + public CourseTopic getCourseTopic(int topicId) { + List ids = new ArrayList<>(); + ids.add(topicId); + List list = courseTopicDao.findCourseTopicByIds(ids); + return list.get(0); + } + + @Override + public void viewsAdd(int courseTopicId, int views) { + HashMap map = new HashMap<>(); + map.put("id", courseTopicId); + map.put("views", views); + int flag = courseTopicDao.updateCourseTopic(map); + if (flag != 1) { + throw new PageException("观看次数增加行为发生错误"); + } + } + + @Override + public PageInfo searchTopicByTitle(String title) { + + HashMap map = new HashMap<>(); + + map.put("title", title); + map.put("flag", 1); + + List list = courseTopicDao.findCourseTopicByCondition(map); + PageInfo pageInfo = new PageInfo<>(list, 4); + + return pageInfo; + + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/CourseTypeServiceImpl.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/CourseTypeServiceImpl.java" index 807640f..5682fb3 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/CourseTypeServiceImpl.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/CourseTypeServiceImpl.java" @@ -6,6 +6,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + @Service public class CourseTypeServiceImpl implements CourseTypeService { @@ -16,4 +18,9 @@ public int insertCourseType(CourseType courseType) { return courseTypeDao.insertCourseType(courseType); } + @Override + public List getCourseTypeAll() { + return courseTypeDao.findCourseTypeAll(); + } + } diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/CourseVideoServiceImpl.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/CourseVideoServiceImpl.java" new file mode 100644 index 0000000..7835a14 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/CourseVideoServiceImpl.java" @@ -0,0 +1,37 @@ +package com.zgh.onlinevideo.service.impl; + +import com.zgh.onlinevideo.dao.CourseVideoDao; +import com.zgh.onlinevideo.domain.CourseVideo; +import com.zgh.onlinevideo.service.CourseVideoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +@Service +public class CourseVideoServiceImpl implements CourseVideoService { + + @Autowired + CourseVideoDao courseVideoDao; + + @Override + public List getCourseVideoAll(int courseTopicId) { + + HashMap map = new HashMap<>(); + + map.put("courseTopicId", courseTopicId); + map.put("flag", 1); + + return courseVideoDao.findCourseVideoByCondition(map); + } + + @Override + public CourseVideo getCourseVideo(int vid) { + + List ids = new ArrayList(); + ids.add(vid); + return courseVideoDao.findCourseVideoByIds(ids); + } +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/ToolItemServiceImpl.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/ToolItemServiceImpl.java" new file mode 100644 index 0000000..36acf82 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/ToolItemServiceImpl.java" @@ -0,0 +1,43 @@ +package com.zgh.onlinevideo.service.impl; + +import com.github.pagehelper.PageInfo; +import com.zgh.onlinevideo.dao.ToolItemDao; +import com.zgh.onlinevideo.domain.ToolItem; +import com.zgh.onlinevideo.service.ToolItemService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; + +@Service +public class ToolItemServiceImpl implements ToolItemService { + + @Autowired + ToolItemDao toolItemDao; + + @Override + public PageInfo getToolItem(int toolTypeId) { + + HashMap map = new HashMap<>(); + // 类型ID + map.put("toolTypeId", toolTypeId); + + List list = toolItemDao.findToolItemByCondition(map); + + PageInfo pageInfo = new PageInfo<>(list, 4); + + return pageInfo; + } + + @Override + public PageInfo getToolItemAll() { + HashMap map = new HashMap<>(); + + List list = toolItemDao.findToolItemAll(); + + PageInfo pageInfo = new PageInfo<>(list, 4); + + return pageInfo; + } +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/ToolTypeServiceImpl.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/ToolTypeServiceImpl.java" new file mode 100644 index 0000000..d9204b9 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/ToolTypeServiceImpl.java" @@ -0,0 +1,21 @@ +package com.zgh.onlinevideo.service.impl; + +import com.zgh.onlinevideo.dao.ToolTypeDao; +import com.zgh.onlinevideo.domain.ToolType; +import com.zgh.onlinevideo.service.ToolTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ToolTypeServiceImpl implements ToolTypeService { + + @Autowired + ToolTypeDao toolTypeDao; + + @Override + public List getToolTypeAll() { + return toolTypeDao.findToolTypeAll(); + } +} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/UserServiceImpl.java" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/UserServiceImpl.java" index 2e7e3e9..a4b7021 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/UserServiceImpl.java" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/java/com/zgh/onlinevideo/service/impl/UserServiceImpl.java" @@ -1,12 +1,15 @@ package com.zgh.onlinevideo.service.impl; +import com.github.pagehelper.PageInfo; import com.zgh.onlinevideo.dao.UserDao; import com.zgh.onlinevideo.domain.User; import com.zgh.onlinevideo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; @Service public class UserServiceImpl implements UserService { @@ -37,4 +40,37 @@ public User existEmail(String email) { return userDao.findUserByCondition(map); } + + @Override + public PageInfo getUserList() { + + List userList = userDao.findUserAll(); + PageInfo pageInfo = new PageInfo<>(userList, 4); + + return pageInfo; + } + + // 假的删除 修改字段 flag 0 + @Override + public int delete(Integer uid) { + + User user = this.getUser(uid); + user.setFlag(0); + + return userDao.updateUser(user); + } + + @Override + public User getUser(int uid) { + + ArrayList list = new ArrayList<>(); + list.add(uid); + + return userDao.findUserByIds(list); + } + + @Override + public int updateUser(User user) { + return userDao.updateUser(user); + } } diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mapper/courseTopicMapper.xml" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mapper/courseTopicMapper.xml" index 658e945..50f756e 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mapper/courseTopicMapper.xml" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mapper/courseTopicMapper.xml" @@ -70,6 +70,9 @@ AND ct.courseware_url LIKE CONCAT('%', #{coursewareUrl}, '%') + + order by ct.create_time desc + diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mapper/courseVideoMapper.xml" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mapper/courseVideoMapper.xml" index 13c56f7..8e0aaa0 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mapper/courseVideoMapper.xml" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mapper/courseVideoMapper.xml" @@ -9,7 +9,7 @@ - + @@ -20,7 +20,7 @@ - cv.id, cv.name, cv.free_flag, cv.course_type_id, cv.flag, cv.create_time, cv.video_url1, cv.video_url2 + cv.id, cv.name, cv.free_flag, cv.course_topic_id, cv.flag, cv.create_time, cv.video_url1, cv.video_url2 @@ -42,8 +42,8 @@ AND cv.free_flag = #{freeFlag} - - AND cv.course_type_id = #{courseTypeId} + + AND cv.course_topic_id = #{courseTopicId} AND cv.flag = #{flag} @@ -72,12 +72,12 @@ INSERT INTO course_video ( - id, name, free_flag, course_type_id, flag, create_time, video_url1, video_url2 + id, name, free_flag, course_topic_id, flag, create_time, video_url1, video_url2 ) VALUES ( #{id}, #{name}, #{freeFlag}, - #{courseTypeId}, + #{courseTopicId}, #{flag}, #{createTime}, #{videoUrl1}, @@ -95,8 +95,8 @@ free_flag = #{freeFlag}, - - course_type_id = #{courseTypeId}, + + course_topic_id = #{courseTopicId}, flag = #{flag}, @@ -125,8 +125,8 @@ free_flag = #{item.freeFlag}, - - course_type_id = #{item.courseTypeId}, + + course_topic_id = #{item.courseTopicId}, flag = #{item.flag}, diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mapper/userMapper.xml" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mapper/userMapper.xml" index 95c7a08..edc219f 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mapper/userMapper.xml" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mapper/userMapper.xml" @@ -12,6 +12,7 @@ + @@ -19,7 +20,7 @@ - u.id, u.name, u.password, u.number, u.email, u.vip_flag, u.create_time + u.id, u.name, u.password, u.number, u.email, u.vip_flag, u.create_time, u.flag @@ -27,7 +28,7 @@ @@ -50,6 +51,9 @@ AND u.vip_flag = #{vipFlag} + + AND u.flag = #{flag} + AND u.create_time = #{createTime} @@ -68,7 +72,7 @@ INSERT INTO user ( - id, name, password, number, email, vip_flag, create_time + id, name, password, number, email, vip_flag, create_time, flag ) VALUES ( #{id}, #{name}, @@ -76,12 +80,13 @@ #{number}, #{email}, #{vipFlag}, - #{createTime} + #{createTime}, + #{flag} ) - + UPDATE user @@ -100,7 +105,10 @@ vip_flag = #{vipFlag}, - create_time = #{createTime} + create_time = #{createTime}, + + + flag = #{flag} WHERE id = #{id} @@ -129,6 +137,9 @@ create_time = #{item.createTime} + + flag = #{item.flag} + WHERE id = #{item.id} diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mybatis-config.xml" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mybatis-config.xml" index 4fd8871..f2e1c34 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mybatis-config.xml" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/resources/mybatis-config.xml" @@ -14,4 +14,10 @@ + + + + + + \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/webapp/WEB-INF/jsp/admin_main.jsp" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/webapp/WEB-INF/jsp/admin_main.jsp" new file mode 100644 index 0000000..24ab0fb --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/webapp/WEB-INF/jsp/admin_main.jsp" @@ -0,0 +1,246 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + 网站后台 + + + + + + + + + + <%--提示确认对话框--%> + +<%-- --%> + + + + + +
+
+ + + +
+ +

Section title

+ +
+
DataTables Example
+
+
+
+
+
+
+ 添加 +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#ID + 手机 + 用户名 + 密码 + 邮箱 + 会员 + 注册时间 + 删除 + 修改 +
${user.id}${user.number}${user.name}${user.password}${user.email}${user.vipFlag}${user.createTime}
+
+
+
+
+
+ Showing 1 to ${userList.pages} of ${userList.total} entries +
+
+
+
+ <%-- 分页--%> + +
+
+
+
+
+
+
+
+
+
+ + + + + + + + +<%----%> + + + + diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/webapp/WEB-INF/jsp/admin_user_update.jsp" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/webapp/WEB-INF/jsp/admin_user_update.jsp" new file mode 100644 index 0000000..ae3b1e1 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/webapp/WEB-INF/jsp/admin_user_update.jsp" @@ -0,0 +1,176 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + 网站后台 + + + + + + + + + + <%--提示确认对话框--%> + +<%-- --%> + + + + + + +
+
+ + + +
+ +

Section title

+ +
+
修改用户信息
+
+
+
+
+ +
+ + + We'll never share your email with + anyone else. +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+<%--
--%> +<%-- --%> +<%-- --%> +<%--
--%> +
+ + +
+ +
+
+
+
+
+
+
+ + + + + + + + +<%----%> + + + + diff --git "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/webapp/WEB-INF/jsp/common/header.jsp" "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/webapp/WEB-INF/jsp/common/header.jsp" index c4df0c4..acbc508 100644 --- "a/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/webapp/WEB-INF/jsp/common/header.jsp" +++ "b/\343\200\22000\343\200\221demos_04/01\357\274\232ssm\345\234\250\347\272\277\350\247\206\351\242\221\345\255\246\344\271\240\347\275\221\347\253\231/src/main/webapp/WEB-INF/jsp/common/header.jsp" @@ -15,21 +15,21 @@ @@ -228,11 +228,9 @@ - - + + + + + + + +
+ + + + + + \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graphBar.html" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graphBar.html" new file mode 100644 index 0000000..dcee2e7 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/graphBar.html" @@ -0,0 +1,51 @@ + + + + + epidemic + + + + + + +
+ + + + + + \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" new file mode 100644 index 0000000..fed20dc --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/list.html" @@ -0,0 +1,41 @@ + + + + + epidemic + + + + + + +

epidemic

+ + + + + + + + + + + + + + + + + + + + + + +

地区

现有确诊

累计确诊

治愈

死亡

+ + + \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/map.html" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/map.html" new file mode 100644 index 0000000..b64ec4a --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/main/resources/templates/map.html" @@ -0,0 +1,110 @@ + + + + + epidemic + + + + + + + +
+ + + + + + \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/EpidemicApplicationTests.java" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/EpidemicApplicationTests.java" new file mode 100644 index 0000000..fd8565f --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/src/test/java/com/zgh/EpidemicApplicationTests.java" @@ -0,0 +1,21 @@ +package com.zgh; + +import com.zgh.mail.MailComponent; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class EpidemicApplicationTests { + + @Autowired + MailComponent mail; + + @Test + void contextLoads() { + + mail.send(); + + } + +} diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.html" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.html" new file mode 100644 index 0000000..a428c93 --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.html" @@ -0,0 +1,10856 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.json" "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.json" new file mode 100644 index 0000000..8db2fae --- /dev/null +++ "b/\343\200\22000\343\200\221demos_04/02\357\274\232springboot-epidemic/tmp.json" @@ -0,0 +1,9598 @@ +{ + "lastUpdateTime": "2020-12-30 09:31:35", + "chinaTotal": { + "confirm": 96592, + "heal": 90360, + "dead": 4784, + "nowConfirm": 1448, + "suspect": 0, + "nowSevere": 6, + "importedCase": 4247, + "noInfect": 269 + }, + "chinaAdd": { + "confirm": 79, + "heal": 113, + "dead": 2, + "nowConfirm": -36, + "suspect": 0, + "nowSevere": 1, + "importedCase": 17, + "noInfect": 17 + }, + "isShowAdd": true, + "showAddSwitch": { + "all": true, + "confirm": true, + "suspect": true, + "dead": true, + "heal": true, + "nowConfirm": true, + "nowSevere": true, + "importedCase": true, + "noInfect": true + }, + "areaTree": [ + { + "name": "中国", + "today": { + "confirm": 79, + "isUpdated": true + }, + "total": { + "nowConfirm": 1448, + "confirm": 96592, + "suspect": 0, + "dead": 4784, + "deadRate": "4.95", + "showRate": false, + "heal": 90360, + "healRate": "93.55", + "showHeal": true + }, + "children": [ + { + "name": "香港", + "today": { + "confirm": 53, + "confirmCuts": 0, + "isUpdated": true, + "tip": "" + }, + "total": { + "nowConfirm": 965, + "confirm": 8724, + "suspect": 0, + "dead": 143, + "deadRate": "1.64", + "showRate": false, + "heal": 7616, + "healRate": "87.30", + "showHeal": true + }, + "children": [ + { + "name": "地区待确认", + "today": { + "confirm": 53, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 965, + "confirm": 8724, + "suspect": 0, + "dead": 143, + "deadRate": "1.64", + "showRate": false, + "heal": 7616, + "healRate": "87.30", + "showHeal": true + } + } + ] + }, + { + "name": "台湾", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true, + "tip": "" + }, + "total": { + "nowConfirm": 127, + "confirm": 795, + "suspect": 0, + "dead": 7, + "deadRate": "0.88", + "showRate": false, + "heal": 661, + "healRate": "83.14", + "showHeal": true + }, + "children": [ + { + "name": "地区待确认", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 127, + "confirm": 795, + "suspect": 0, + "dead": 7, + "deadRate": "0.88", + "showRate": false, + "heal": 661, + "healRate": "83.14", + "showHeal": true + } + } + ] + }, + { + "name": "上海", + "today": { + "confirm": 7, + "confirmCuts": 0, + "isUpdated": true, + "tip": "上海累计报告境外输入确诊病例1156例。" + }, + "total": { + "nowConfirm": 98, + "confirm": 1505, + "suspect": 0, + "dead": 7, + "deadRate": "0.47", + "showRate": false, + "heal": 1400, + "healRate": "93.02", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 7, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 96, + "confirm": 1156, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1060, + "healRate": "91.70", + "showHeal": true + } + }, + { + "name": "浦东", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 2, + "confirm": 68, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 66, + "healRate": "97.06", + "showHeal": true, + "grade": "全部低风险" + } + }, + { + "name": "青浦", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "外地来沪", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 113, + "suspect": 0, + "dead": 1, + "deadRate": "0.88", + "showRate": false, + "heal": 112, + "healRate": "99.12", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "宝山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 1, + "deadRate": "4.55", + "showRate": false, + "heal": 21, + "healRate": "95.45", + "showHeal": true + } + }, + { + "name": "嘉定", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 2, + "deadRate": "22.22", + "showRate": false, + "heal": 7, + "healRate": "77.78", + "showHeal": true + } + }, + { + "name": "徐汇", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 1, + "deadRate": "5.56", + "showRate": false, + "heal": 17, + "healRate": "94.44", + "showHeal": true + } + }, + { + "name": "静安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 16, + "suspect": 0, + "dead": 1, + "deadRate": "6.25", + "showRate": false, + "heal": 15, + "healRate": "93.75", + "showHeal": true + } + }, + { + "name": "黄浦", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 1, + "deadRate": "16.67", + "showRate": false, + "heal": 5, + "healRate": "83.33", + "showHeal": true + } + }, + { + "name": "境外来沪", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "普陀", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "崇明", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "金山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "虹口", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "奉贤", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "杨浦", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "长宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "松江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "闵行", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "辽宁", + "today": { + "confirm": 5, + "confirmCuts": 0, + "isUpdated": true, + "tip": "辽宁累计报告境外输入病例67例。" + }, + "total": { + "nowConfirm": 53, + "confirm": 342, + "suspect": 0, + "dead": 2, + "deadRate": "0.58", + "showRate": false, + "heal": 287, + "healRate": "83.92", + "showHeal": true + }, + "children": [ + { + "name": "大连", + "today": { + "confirm": 3, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 38, + "confirm": 148, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 110, + "healRate": "74.32", + "showHeal": true, + "grade": "部分中风险" + } + }, + { + "name": "沈阳", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 13, + "confirm": 47, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 34, + "healRate": "72.34", + "showHeal": true, + "grade": "部分中风险" + } + }, + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 2, + "confirm": 67, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 65, + "healRate": "97.01", + "showHeal": true, + "grade": "待公布" + } + }, + { + "name": "葫芦岛", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 1, + "deadRate": "8.33", + "showRate": false, + "heal": 11, + "healRate": "91.67", + "showHeal": true + } + }, + { + "name": "抚顺", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "朝阳市", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 1, + "deadRate": "16.67", + "showRate": false, + "heal": 5, + "healRate": "83.33", + "showHeal": true + } + }, + { + "name": "丹东", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "铁岭", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "鞍山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "锦州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "盘锦", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "阜新", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "本溪", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "辽阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "营口", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "四川", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "四川累计报告297例境外输入病例。" + }, + "total": { + "nowConfirm": 31, + "confirm": 851, + "suspect": 0, + "dead": 3, + "deadRate": "0.35", + "showRate": false, + "heal": 817, + "healRate": "96.00", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 20, + "confirm": 297, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 277, + "healRate": "93.27", + "showHeal": true + } + }, + { + "name": "成都", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 11, + "confirm": 158, + "suspect": 0, + "dead": 3, + "deadRate": "1.90", + "showRate": false, + "heal": 144, + "healRate": "91.14", + "showHeal": true, + "grade": "部分中风险" + } + }, + { + "name": "遂宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "达州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 42, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 42, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "巴中", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 24, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 24, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "自贡", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "攀枝花", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 16, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 16, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "泸州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 24, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 24, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "德阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 18, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "绵阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 22, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "广元", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "雅安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "内江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 22, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "乐山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南充", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 39, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 39, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宜宾", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "广安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 30, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 30, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "凉山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "甘孜", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 78, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 78, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "阿坝", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "资阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "眉山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "北京", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true, + "tip": "北京累计报告境外输入确诊病例204例。\\n北京卫健委未明确治愈病例和死亡病例的归属分区,北京分区现有确诊数据暂无法获取。" + }, + "total": { + "nowConfirm": 30, + "confirm": 980, + "suspect": 0, + "dead": 9, + "deadRate": "0.92", + "showRate": false, + "heal": 941, + "healRate": "96.02", + "showHeal": true + }, + "children": [ + { + "name": "顺义", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 14, + "confirm": 24, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "41.67", + "showHeal": false, + "grade": "部分中风险" + } + }, + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 13, + "confirm": 204, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 191, + "healRate": "93.63", + "showHeal": true + } + }, + { + "name": "朝阳", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 3, + "confirm": 80, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 77, + "healRate": "96.25", + "showHeal": false, + "grade": "部分中风险" + } + }, + { + "name": "石景山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "延庆", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "密云", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "怀柔", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "外地来京", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 25, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 25, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "门头沟", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "东城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "房山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 20, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 20, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "昌平", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 30, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 30, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "大兴", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 104, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 104, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "西城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 59, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 59, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "海淀", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 82, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 82, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "丰台", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 273, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 273, + "healRate": "100.00", + "showHeal": false + } + }, + { + "name": "通州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 20, + "suspect": 0, + "dead": 9, + "deadRate": "45.00", + "showRate": false, + "heal": 11, + "healRate": "55.00", + "showHeal": false + } + } + ] + }, + { + "name": "广东", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true, + "tip": "广东省累计报告境外输入病例645例。" + }, + "total": { + "nowConfirm": 25, + "confirm": 2041, + "suspect": 0, + "dead": 8, + "deadRate": "0.39", + "showRate": false, + "heal": 2008, + "healRate": "98.38", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 25, + "confirm": 645, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 620, + "healRate": "96.12", + "showHeal": true + } + }, + { + "name": "揭阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "广州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 377, + "suspect": 0, + "dead": 1, + "deadRate": "0.27", + "showRate": false, + "heal": 376, + "healRate": "99.73", + "showHeal": true + } + }, + { + "name": "清远", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "潮州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "韶关", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 1, + "deadRate": "10.00", + "showRate": false, + "heal": 9, + "healRate": "90.00", + "showHeal": true + } + }, + { + "name": "中山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 67, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 67, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "河源", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "湛江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 22, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "珠海", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 98, + "suspect": 0, + "dead": 1, + "deadRate": "1.02", + "showRate": false, + "heal": 97, + "healRate": "98.98", + "showHeal": true + } + }, + { + "name": "汕尾", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "江门", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 23, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 23, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "梅州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 16, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 16, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "佛山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 89, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 89, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "深圳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 423, + "suspect": 0, + "dead": 3, + "deadRate": "0.71", + "showRate": false, + "heal": 420, + "healRate": "99.29", + "showHeal": true + } + }, + { + "name": "肇庆", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 1, + "deadRate": "5.26", + "showRate": false, + "heal": 18, + "healRate": "94.74", + "showHeal": true + } + }, + { + "name": "东莞", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 99, + "suspect": 0, + "dead": 1, + "deadRate": "1.01", + "showRate": false, + "heal": 98, + "healRate": "98.99", + "showHeal": true + } + }, + { + "name": "阳江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "惠州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 62, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 62, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "茂名", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "汕头", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 25, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 25, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "福建", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true, + "tip": "福建省累计报告境外输入确诊病例215例。" + }, + "total": { + "nowConfirm": 24, + "confirm": 511, + "suspect": 0, + "dead": 1, + "deadRate": "0.20", + "showRate": false, + "heal": 486, + "healRate": "95.11", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 24, + "confirm": 215, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 191, + "healRate": "88.84", + "showHeal": true + } + }, + { + "name": "莆田", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 56, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 56, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "漳州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 20, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 20, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "宁德", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 26, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 26, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "龙岩", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南平", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 20, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 20, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "三明", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "泉州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 47, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 47, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "厦门", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 35, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 35, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "福州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 72, + "suspect": 0, + "dead": 1, + "deadRate": "1.39", + "showRate": false, + "heal": 71, + "healRate": "98.61", + "showHeal": true + } + } + ] + }, + { + "name": "内蒙古", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true, + "tip": "内蒙古自治区累计报告境外输入确诊病例256例。" + }, + "total": { + "nowConfirm": 21, + "confirm": 361, + "suspect": 0, + "dead": 1, + "deadRate": "0.28", + "showRate": false, + "heal": 339, + "healRate": "93.91", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 2, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 21, + "confirm": 256, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 235, + "healRate": "91.80", + "showHeal": true + } + }, + { + "name": "呼伦贝尔", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 37, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 37, + "healRate": "100.00", + "showHeal": true, + "grade": "全部低风险" + } + }, + { + "name": "包头", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "呼和浩特", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "乌兰察布", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "赤峰", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "锡林郭勒", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "通辽", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "鄂尔多斯", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "巴彦淖尔", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 1, + "deadRate": "12.50", + "showRate": false, + "heal": 7, + "healRate": "87.50", + "showHeal": true + } + }, + { + "name": "兴安盟", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "乌海", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "陕西", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "陕西累计报告境外输入确诊病例260例。" + }, + "total": { + "nowConfirm": 13, + "confirm": 505, + "suspect": 0, + "dead": 3, + "deadRate": "0.59", + "showRate": false, + "heal": 489, + "healRate": "96.83", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 13, + "confirm": 260, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 247, + "healRate": "95.00", + "showHeal": true + } + }, + { + "name": "韩城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "渭南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "咸阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "西安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 120, + "suspect": 0, + "dead": 3, + "deadRate": "2.50", + "showRate": false, + "heal": 117, + "healRate": "97.50", + "showHeal": true + } + }, + { + "name": "汉中", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 26, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 26, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "杨凌", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "榆林", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "商洛", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "铜川", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "延安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宝鸡", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "安康", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 26, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 26, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "云南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "云南省累计报告境外输入确诊病例55例。" + }, + "total": { + "nowConfirm": 13, + "confirm": 229, + "suspect": 0, + "dead": 2, + "deadRate": "0.87", + "showRate": false, + "heal": 214, + "healRate": "93.45", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 13, + "confirm": 55, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 42, + "healRate": "76.36", + "showHeal": true + } + }, + { + "name": "昭通市", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 25, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 25, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "德宏州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "昆明", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 53, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 53, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "保山市", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "玉溪", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 1, + "deadRate": "7.14", + "showRate": false, + "heal": 13, + "healRate": "92.86", + "showHeal": true + } + }, + { + "name": "红河", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "曲靖", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "大理", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "西双版纳州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 1, + "deadRate": "6.67", + "showRate": false, + "heal": 14, + "healRate": "93.33", + "showHeal": true + } + }, + { + "name": "文山州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "普洱", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "楚雄州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "丽江市", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "临沧", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "浙江", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true, + "tip": "浙江累计报告境外输入确诊病例87例。" + }, + "total": { + "nowConfirm": 12, + "confirm": 1306, + "suspect": 0, + "dead": 1, + "deadRate": "0.08", + "showRate": false, + "heal": 1293, + "healRate": "99.00", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 12, + "confirm": 87, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 75, + "healRate": "86.21", + "showHeal": true + } + }, + { + "name": "金华", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 55, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 55, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "省十里丰监狱", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 36, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 36, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "丽水", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "舟山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "衢州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "台州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 147, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 147, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "绍兴", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 42, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 42, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "嘉兴", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 46, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 46, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "湖州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "温州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 504, + "suspect": 0, + "dead": 1, + "deadRate": "0.20", + "showRate": false, + "heal": 503, + "healRate": "99.80", + "showHeal": true + } + }, + { + "name": "宁波", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 157, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 157, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "杭州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 181, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 181, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "山东", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true, + "tip": "山东累计报告境外输入确诊病例85例。" + }, + "total": { + "nowConfirm": 9, + "confirm": 862, + "suspect": 0, + "dead": 7, + "deadRate": "0.81", + "showRate": false, + "heal": 846, + "healRate": "98.14", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 9, + "confirm": 85, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 76, + "healRate": "89.41", + "showHeal": true + } + }, + { + "name": "泰安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 35, + "suspect": 0, + "dead": 2, + "deadRate": "5.71", + "showRate": false, + "heal": 33, + "healRate": "94.29", + "showHeal": true + } + }, + { + "name": "济宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 260, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 260, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "济南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 47, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 47, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "淄博", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 30, + "suspect": 0, + "dead": 1, + "deadRate": "3.33", + "showRate": false, + "heal": 29, + "healRate": "96.67", + "showHeal": true + } + }, + { + "name": "枣庄", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 24, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 24, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "烟台", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 47, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 47, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "潍坊", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 44, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 44, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "青岛", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 79, + "suspect": 0, + "dead": 1, + "deadRate": "1.27", + "showRate": false, + "heal": 78, + "healRate": "98.73", + "showHeal": true + } + }, + { + "name": "威海", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 38, + "suspect": 0, + "dead": 1, + "deadRate": "2.63", + "showRate": false, + "heal": 37, + "healRate": "97.37", + "showHeal": true + } + }, + { + "name": "日照", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 16, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 16, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "临沂", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 49, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 49, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "聊城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 38, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 38, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "滨州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "菏泽", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 18, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "德州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 37, + "suspect": 0, + "dead": 2, + "deadRate": "5.41", + "showRate": false, + "heal": 35, + "healRate": "94.59", + "showHeal": true + } + } + ] + }, + { + "name": "黑龙江", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true, + "tip": "黑龙江省累计报告境外输入确诊病例389例。" + }, + "total": { + "nowConfirm": 8, + "confirm": 962, + "suspect": 0, + "dead": 13, + "deadRate": "1.35", + "showRate": false, + "heal": 941, + "healRate": "97.82", + "showHeal": true + }, + "children": [ + { + "name": "牡丹江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 6, + "confirm": 36, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 30, + "healRate": "83.33", + "showHeal": true, + "grade": "部分中风险" + } + }, + { + "name": "黑河", + "today": { + "confirm": 1, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 1, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "93.33", + "showHeal": true, + "grade": "部分中风险" + } + }, + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 1, + "confirm": 389, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 388, + "healRate": "99.74", + "showHeal": true + } + }, + { + "name": "大兴安岭", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "哈尔滨", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 264, + "suspect": 0, + "dead": 4, + "deadRate": "1.52", + "showRate": false, + "heal": 260, + "healRate": "98.48", + "showHeal": true + } + }, + { + "name": "大庆", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 27, + "suspect": 0, + "dead": 1, + "deadRate": "3.70", + "showRate": false, + "heal": 26, + "healRate": "96.30", + "showHeal": true + } + }, + { + "name": "齐齐哈尔", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 43, + "suspect": 0, + "dead": 1, + "deadRate": "2.33", + "showRate": false, + "heal": 42, + "healRate": "97.67", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "双鸭山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 52, + "suspect": 0, + "dead": 3, + "deadRate": "5.77", + "showRate": false, + "heal": 49, + "healRate": "94.23", + "showHeal": true + } + }, + { + "name": "绥化", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 47, + "suspect": 0, + "dead": 4, + "deadRate": "8.51", + "showRate": false, + "heal": 43, + "healRate": "91.49", + "showHeal": true + } + }, + { + "name": "鸡西", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 46, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 46, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "七台河", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "鹤岗", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "伊春", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "佳木斯", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "河南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "河南累计报告26例境外输入型病例。" + }, + "total": { + "nowConfirm": 7, + "confirm": 1299, + "suspect": 0, + "dead": 22, + "deadRate": "1.69", + "showRate": false, + "heal": 1270, + "healRate": "97.77", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 7, + "confirm": 26, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "73.08", + "showHeal": true + } + }, + { + "name": "许昌", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 39, + "suspect": 0, + "dead": 1, + "deadRate": "2.56", + "showRate": false, + "heal": 38, + "healRate": "97.44", + "showHeal": true + } + }, + { + "name": "周口", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 76, + "suspect": 0, + "dead": 1, + "deadRate": "1.32", + "showRate": false, + "heal": 75, + "healRate": "98.68", + "showHeal": true + } + }, + { + "name": "南阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 156, + "suspect": 0, + "dead": 3, + "deadRate": "1.92", + "showRate": false, + "heal": 153, + "healRate": "98.08", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "信阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 274, + "suspect": 0, + "dead": 2, + "deadRate": "0.73", + "showRate": false, + "heal": 272, + "healRate": "99.27", + "showHeal": true + } + }, + { + "name": "郑州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 157, + "suspect": 0, + "dead": 5, + "deadRate": "3.18", + "showRate": false, + "heal": 152, + "healRate": "96.82", + "showHeal": true + } + }, + { + "name": "安阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 53, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 53, + "healRate": "100.00", + "showHeal": true, + "grade": "2020/3/9 11:26:04" + } + }, + { + "name": "济源示范区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "新乡", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 57, + "suspect": 0, + "dead": 3, + "deadRate": "5.26", + "showRate": false, + "heal": 54, + "healRate": "94.74", + "showHeal": true + } + }, + { + "name": "漯河", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 36, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 36, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "商丘", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 91, + "suspect": 0, + "dead": 3, + "deadRate": "3.30", + "showRate": false, + "heal": 88, + "healRate": "96.70", + "showHeal": true + } + }, + { + "name": "驻马店", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 139, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 139, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "焦作", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 32, + "suspect": 0, + "dead": 1, + "deadRate": "3.12", + "showRate": false, + "heal": 31, + "healRate": "96.88", + "showHeal": true + } + }, + { + "name": "开封", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 26, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 26, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "平顶山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 58, + "suspect": 0, + "dead": 1, + "deadRate": "1.72", + "showRate": false, + "heal": 57, + "healRate": "98.28", + "showHeal": true + } + }, + { + "name": "洛阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 31, + "suspect": 0, + "dead": 1, + "deadRate": "3.23", + "showRate": false, + "heal": 30, + "healRate": "96.77", + "showHeal": true + } + }, + { + "name": "濮阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "鹤壁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "三门峡", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 1, + "deadRate": "14.29", + "showRate": false, + "heal": 6, + "healRate": "85.71", + "showHeal": true + } + } + ] + }, + { + "name": "天津", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false, + "tip": "天津市累计报告境外输入确诊病例162例。" + }, + "total": { + "nowConfirm": 6, + "confirm": 309, + "suspect": 0, + "dead": 3, + "deadRate": "0.97", + "showRate": false, + "heal": 300, + "healRate": "97.09", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 6, + "confirm": 162, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 156, + "healRate": "96.30", + "showHeal": true, + "grade": "全部低风险" + } + }, + { + "name": "宁河区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "北辰区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宝坻区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 60, + "suspect": 0, + "dead": 2, + "deadRate": "3.33", + "showRate": false, + "heal": 58, + "healRate": "96.67", + "showHeal": true + } + }, + { + "name": "河北区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "津南区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南开区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "河东区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 1, + "deadRate": "6.67", + "showRate": false, + "heal": 14, + "healRate": "93.33", + "showHeal": true + } + }, + { + "name": "滨海新区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true, + "grade": "全部低风险" + } + }, + { + "name": "和平区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "外地来津", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "武清区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "东丽区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "河西区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "西青区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "红桥区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "山西", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "山西省累计报告境外输入确诊病例90例。" + }, + "total": { + "nowConfirm": 3, + "confirm": 224, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 221, + "healRate": "98.66", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 3, + "confirm": 90, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 87, + "healRate": "96.67", + "showHeal": true + } + }, + { + "name": "太原", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 21, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 21, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "晋中", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 37, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 37, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "大同", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "运城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "晋城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "忻州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "长治", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "朔州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "临汾", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "阳泉", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "吕梁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "江苏", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "江苏累计报告境外输入确诊病例53例。" + }, + "total": { + "nowConfirm": 2, + "confirm": 684, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 682, + "healRate": "99.71", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 2, + "confirm": 53, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 51, + "healRate": "96.23", + "showHeal": true + } + }, + { + "name": "徐州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 79, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 79, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宿迁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南通", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 40, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 40, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "苏州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 87, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 87, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南京", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 93, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 93, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "无锡", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 55, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 55, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "盐城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 27, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 27, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "连云港", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 48, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 48, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "淮安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 66, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 66, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "镇江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "常州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 51, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 51, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "扬州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 23, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 23, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "泰州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 37, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 37, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "湖南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "湖南省累计报告境外输入确诊病例3例。" + }, + "total": { + "nowConfirm": 1, + "confirm": 1021, + "suspect": 0, + "dead": 4, + "deadRate": "0.39", + "showRate": false, + "heal": 1016, + "healRate": "99.51", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 1, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "66.67", + "showHeal": true + } + }, + { + "name": "张家界", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "湘西自治州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "娄底", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 76, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 76, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "怀化", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 40, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 40, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "郴州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 39, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 39, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "益阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 60, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 60, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "永州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 44, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 44, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "常德", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 82, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 82, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "岳阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 156, + "suspect": 0, + "dead": 1, + "deadRate": "0.64", + "showRate": false, + "heal": 155, + "healRate": "99.36", + "showHeal": true + } + }, + { + "name": "邵阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 102, + "suspect": 0, + "dead": 1, + "deadRate": "0.98", + "showRate": false, + "heal": 101, + "healRate": "99.02", + "showHeal": true + } + }, + { + "name": "湘潭", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 36, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 36, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "株洲", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 80, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 80, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "衡阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 48, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 48, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "长沙", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 242, + "suspect": 0, + "dead": 2, + "deadRate": "0.83", + "showRate": false, + "heal": 240, + "healRate": "99.17", + "showHeal": true + } + } + ] + }, + { + "name": "广西", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "广西累计报告境外输入确诊病例12例。" + }, + "total": { + "nowConfirm": 1, + "confirm": 264, + "suspect": 0, + "dead": 2, + "deadRate": "0.76", + "showRate": false, + "heal": 261, + "healRate": "98.86", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 1, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "91.67", + "showHeal": true + } + }, + { + "name": "桂林", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 32, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 32, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "来宾", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 55, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 55, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "防城港", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "柳州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 24, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 24, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "河池", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 28, + "suspect": 0, + "dead": 1, + "deadRate": "3.57", + "showRate": false, + "heal": 27, + "healRate": "96.43", + "showHeal": true + } + }, + { + "name": "北海", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 44, + "suspect": 0, + "dead": 1, + "deadRate": "2.27", + "showRate": false, + "heal": 43, + "healRate": "97.73", + "showHeal": true + } + }, + { + "name": "玉林", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "钦州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "贵港", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "梧州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "百色", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "贺州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "安徽", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "安徽省累计报告境外输入确诊病例2例。" + }, + "total": { + "nowConfirm": 1, + "confirm": 993, + "suspect": 0, + "dead": 6, + "deadRate": "0.60", + "showRate": false, + "heal": 986, + "healRate": "99.30", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 1, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "50.00", + "showHeal": true + } + }, + { + "name": "黄山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宣城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "池州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "亳州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 108, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 108, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "六安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 69, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 69, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宿州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 41, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 41, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "滁州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "阜阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 156, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 156, + "healRate": "100.00", + "showHeal": true, + "grade": "全部低风险" + } + }, + { + "name": "安庆", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 83, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 83, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "铜陵", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 29, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 29, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "淮北", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 27, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 27, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "马鞍山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 38, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 38, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "淮南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 27, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 27, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "蚌埠", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 160, + "suspect": 0, + "dead": 5, + "deadRate": "3.12", + "showRate": false, + "heal": 155, + "healRate": "96.88", + "showHeal": true + } + }, + { + "name": "芜湖", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 34, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 34, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "合肥", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 174, + "suspect": 0, + "dead": 1, + "deadRate": "0.57", + "showRate": false, + "heal": 173, + "healRate": "99.43", + "showHeal": true + } + } + ] + }, + { + "name": "重庆", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "重庆市累计报告境外输入确诊病例14例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 590, + "suspect": 0, + "dead": 6, + "deadRate": "1.02", + "showRate": false, + "heal": 584, + "healRate": "98.98", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "荣昌区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "大足区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "綦江区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 23, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 23, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "长寿区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 22, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "江北区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 28, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 28, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "沙坪坝区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "潼南区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 18, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "铜梁区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "九龙坡区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 21, + "suspect": 0, + "dead": 1, + "deadRate": "4.76", + "showRate": false, + "heal": 20, + "healRate": "95.24", + "showHeal": true + } + }, + { + "name": "丰都县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南岸区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "万州区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 118, + "suspect": 0, + "dead": 4, + "deadRate": "3.39", + "showRate": false, + "heal": 114, + "healRate": "96.61", + "showHeal": true + } + }, + { + "name": "两江新区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "巴南区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "渝中区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 20, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 20, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "垫江县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 20, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 20, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "云阳县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 25, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 25, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "奉节县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 22, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "石柱县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "涪陵区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "渝北区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "彭水县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "忠县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 21, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 21, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "开州区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 21, + "suspect": 0, + "dead": 1, + "deadRate": "4.76", + "showRate": false, + "heal": 20, + "healRate": "95.24", + "showHeal": true + } + }, + { + "name": "合川区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 23, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 23, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "大渡口区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "巫溪县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "巫山县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "万盛经开区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "酉阳县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "璧山区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "高新区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "永川区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "江津区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "武隆区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "梁平区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "城口县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "黔江区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "秀山县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "青海", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false, + "tip": "" + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 18, + "healRate": "100.00", + "showHeal": true + }, + "children": [ + { + "name": "海北州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "西宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 15, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "河北", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "河北累计报告境外输入确诊病例34例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 373, + "suspect": 0, + "dead": 6, + "deadRate": "1.61", + "showRate": false, + "heal": 367, + "healRate": "98.39", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 34, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 34, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "沧州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 49, + "suspect": 0, + "dead": 3, + "deadRate": "6.12", + "showRate": false, + "heal": 46, + "healRate": "93.88", + "showHeal": true + } + }, + { + "name": "廊坊", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 32, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 32, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "保定", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 48, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 48, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "张家口", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 43, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 43, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "唐山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 58, + "suspect": 0, + "dead": 1, + "deadRate": "1.72", + "showRate": false, + "heal": 57, + "healRate": "98.28", + "showHeal": true + } + }, + { + "name": "邯郸", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 32, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 32, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "石家庄", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 29, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 29, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "承德", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "衡水", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "秦皇岛", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 1, + "deadRate": "10.00", + "showRate": false, + "heal": 9, + "healRate": "90.00", + "showHeal": true + } + }, + { + "name": "邢台", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 23, + "suspect": 0, + "dead": 1, + "deadRate": "4.35", + "showRate": false, + "heal": 22, + "healRate": "95.65", + "showHeal": true + } + } + ] + }, + { + "name": "西藏", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false, + "tip": "" + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + }, + "children": [ + { + "name": "拉萨", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "吉林", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "吉林累计报告境外输入确诊病例19例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 157, + "suspect": 0, + "dead": 2, + "deadRate": "1.27", + "showRate": false, + "heal": 155, + "healRate": "98.73", + "showHeal": true + }, + "children": [ + { + "name": "四平", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 1, + "deadRate": "5.88", + "showRate": false, + "heal": 16, + "healRate": "94.12", + "showHeal": true + } + }, + { + "name": "吉林", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 48, + "suspect": 0, + "dead": 1, + "deadRate": "2.08", + "showRate": false, + "heal": 47, + "healRate": "97.92", + "showHeal": true + } + }, + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 19, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 19, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "通化", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "长春", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 45, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 45, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "白城", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "公主岭", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "辽源", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "延边", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "松原", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "梅河口市", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "宁夏", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "宁夏累计确诊病例中包含3名境外输入型病例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 75, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 75, + "healRate": "100.00", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "银川", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 34, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 34, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "吴忠", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 28, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 28, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "固原", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "中卫", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "石嘴山", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宁东管委会", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "湖北", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "" + }, + "total": { + "nowConfirm": 0, + "confirm": 68149, + "suspect": 0, + "dead": 4512, + "deadRate": "6.62", + "showRate": false, + "heal": 63637, + "healRate": "93.38", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 14, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 14, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "随州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1307, + "suspect": 0, + "dead": 45, + "deadRate": "3.44", + "showRate": false, + "heal": 1262, + "healRate": "96.56", + "showHeal": true + } + }, + { + "name": "恩施州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 252, + "suspect": 0, + "dead": 7, + "deadRate": "2.78", + "showRate": false, + "heal": 245, + "healRate": "97.22", + "showHeal": true + } + }, + { + "name": "武汉", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 50340, + "suspect": 0, + "dead": 3869, + "deadRate": "7.69", + "showRate": false, + "heal": 46471, + "healRate": "92.31", + "showHeal": true + } + }, + { + "name": "宜昌", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 931, + "suspect": 0, + "dead": 37, + "deadRate": "3.97", + "showRate": false, + "heal": 894, + "healRate": "96.03", + "showHeal": true + } + }, + { + "name": "荆州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1580, + "suspect": 0, + "dead": 52, + "deadRate": "3.29", + "showRate": false, + "heal": 1528, + "healRate": "96.71", + "showHeal": true + } + }, + { + "name": "黄冈", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2907, + "suspect": 0, + "dead": 125, + "deadRate": "4.30", + "showRate": false, + "heal": 2782, + "healRate": "95.70", + "showHeal": true + } + }, + { + "name": "十堰", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 672, + "suspect": 0, + "dead": 8, + "deadRate": "1.19", + "showRate": false, + "heal": 664, + "healRate": "98.81", + "showHeal": true + } + }, + { + "name": "孝感", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3518, + "suspect": 0, + "dead": 129, + "deadRate": "3.67", + "showRate": false, + "heal": 3389, + "healRate": "96.33", + "showHeal": true + } + }, + { + "name": "仙桃", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 575, + "suspect": 0, + "dead": 22, + "deadRate": "3.83", + "showRate": false, + "heal": 553, + "healRate": "96.17", + "showHeal": true + } + }, + { + "name": "黄石", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1015, + "suspect": 0, + "dead": 39, + "deadRate": "3.84", + "showRate": false, + "heal": 976, + "healRate": "96.16", + "showHeal": true + } + }, + { + "name": "咸宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 836, + "suspect": 0, + "dead": 15, + "deadRate": "1.79", + "showRate": false, + "heal": 821, + "healRate": "98.21", + "showHeal": true + } + }, + { + "name": "襄阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1175, + "suspect": 0, + "dead": 40, + "deadRate": "3.40", + "showRate": false, + "heal": 1135, + "healRate": "96.60", + "showHeal": true + } + }, + { + "name": "鄂州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1394, + "suspect": 0, + "dead": 59, + "deadRate": "4.23", + "showRate": false, + "heal": 1335, + "healRate": "95.77", + "showHeal": true + } + }, + { + "name": "神农架", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 11, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 11, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "潜江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 198, + "suspect": 0, + "dead": 9, + "deadRate": "4.55", + "showRate": false, + "heal": 189, + "healRate": "95.45", + "showHeal": true + } + }, + { + "name": "荆门", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 928, + "suspect": 0, + "dead": 41, + "deadRate": "4.42", + "showRate": false, + "heal": 887, + "healRate": "95.58", + "showHeal": true + } + }, + { + "name": "天门", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 496, + "suspect": 0, + "dead": 15, + "deadRate": "3.02", + "showRate": false, + "heal": 481, + "healRate": "96.98", + "showHeal": true + } + } + ] + }, + { + "name": "甘肃", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "甘肃累计报告境外输入确诊病例90例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 182, + "suspect": 0, + "dead": 2, + "deadRate": "1.10", + "showRate": false, + "heal": 180, + "healRate": "98.90", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 90, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 90, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "兰州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 37, + "suspect": 0, + "dead": 2, + "deadRate": "5.41", + "showRate": false, + "heal": 35, + "healRate": "94.59", + "showHeal": true + } + }, + { + "name": "定西", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 0, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 0, + "healRate": "0.00", + "showHeal": true + } + }, + { + "name": "平凉", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 9, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "庆阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "白银", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "甘南州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 8, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 8, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "天水", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 12, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 12, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "陇南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "临夏", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "张掖", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "金昌", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "江西", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "江西累计报告境外输入病例5例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 935, + "suspect": 0, + "dead": 1, + "deadRate": "0.11", + "showRate": false, + "heal": 934, + "healRate": "99.89", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "新余", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 129, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 129, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "赣州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 74, + "suspect": 0, + "dead": 1, + "deadRate": "1.35", + "showRate": false, + "heal": 73, + "healRate": "98.65", + "showHeal": true + } + }, + { + "name": "九江", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 116, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 116, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "南昌", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 230, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 230, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "上饶", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 123, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 123, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "抚州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 72, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 72, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "吉安", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 22, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 22, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "萍乡", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 33, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 33, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "宜春", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 106, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 106, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "鹰潭", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 18, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "景德镇", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "赣江新区", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "澳门", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "" + }, + "total": { + "nowConfirm": 0, + "confirm": 46, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 46, + "healRate": "100.00", + "showHeal": true + }, + "children": [ + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true + }, + "total": { + "nowConfirm": 0, + "confirm": 46, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 46, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "新疆", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "" + }, + "total": { + "nowConfirm": 0, + "confirm": 980, + "suspect": 0, + "dead": 3, + "deadRate": "0.31", + "showRate": false, + "heal": 977, + "healRate": "99.69", + "showHeal": true + }, + "children": [ + { + "name": "喀什", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 80, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 80, + "healRate": "100.00", + "showHeal": true, + "grade": "低风险" + } + }, + { + "name": "乌鲁木齐", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 845, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 845, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "地区待确认", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "昌吉州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 5, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 5, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "兵团第九师", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 1, + "deadRate": "25.00", + "showRate": false, + "heal": 3, + "healRate": "75.00", + "showHeal": true + } + }, + { + "name": "吐鲁番", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "第八师石河子", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 1, + "deadRate": "25.00", + "showRate": false, + "heal": 3, + "healRate": "75.00", + "showHeal": true + } + }, + { + "name": "兵团第四师", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 1, + "deadRate": "10.00", + "showRate": false, + "heal": 9, + "healRate": "90.00", + "showHeal": true + } + }, + { + "name": "伊犁州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 18, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 18, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "六师五家渠", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "兵团第十二师", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "巴州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "第七师", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "阿克苏", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "海南", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false, + "tip": "海南省累计报告境外输入确诊病例2例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 171, + "suspect": 0, + "dead": 6, + "deadRate": "3.51", + "showRate": false, + "heal": 165, + "healRate": "96.49", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "三亚", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 55, + "suspect": 0, + "dead": 1, + "deadRate": "1.82", + "showRate": false, + "heal": 54, + "healRate": "98.18", + "showHeal": true + } + }, + { + "name": "海口", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 39, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 39, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "儋州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 15, + "suspect": 0, + "dead": 1, + "deadRate": "6.67", + "showRate": false, + "heal": 14, + "healRate": "93.33", + "showHeal": true + } + }, + { + "name": "东方", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 1, + "deadRate": "33.33", + "showRate": false, + "heal": 2, + "healRate": "66.67", + "showHeal": true + } + }, + { + "name": "万宁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 13, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 13, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "澄迈县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 9, + "suspect": 0, + "dead": 1, + "deadRate": "11.11", + "showRate": false, + "heal": 8, + "healRate": "88.89", + "showHeal": true + } + }, + { + "name": "昌江县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 7, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 7, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "保亭", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "琼海", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 1, + "deadRate": "16.67", + "showRate": false, + "heal": 5, + "healRate": "83.33", + "showHeal": true + } + }, + { + "name": "临高县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 6, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 6, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "陵水县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "乐东", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 2, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 2, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "文昌", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 3, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "定安县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 3, + "suspect": 0, + "dead": 1, + "deadRate": "33.33", + "showRate": false, + "heal": 2, + "healRate": "66.67", + "showHeal": true + } + }, + { + "name": "琼中县", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + } + ] + }, + { + "name": "贵州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": true, + "tip": "贵州累计报告境外输入确诊病例1例。" + }, + "total": { + "nowConfirm": 0, + "confirm": 147, + "suspect": 0, + "dead": 2, + "deadRate": "1.36", + "showRate": false, + "heal": 145, + "healRate": "98.64", + "showHeal": true + }, + "children": [ + { + "name": "境外输入", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 1, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 1, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "贵阳", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 36, + "suspect": 0, + "dead": 1, + "deadRate": "2.78", + "showRate": false, + "heal": 35, + "healRate": "97.22", + "showHeal": true + } + }, + { + "name": "遵义", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 32, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 32, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "六盘水", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 1, + "deadRate": "10.00", + "showRate": false, + "heal": 9, + "healRate": "90.00", + "showHeal": true + } + }, + { + "name": "毕节", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 23, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 23, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "黔南州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 17, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 17, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "安顺", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "黔东南州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "铜仁", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 10, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 10, + "healRate": "100.00", + "showHeal": true + } + }, + { + "name": "黔西南州", + "today": { + "confirm": 0, + "confirmCuts": 0, + "isUpdated": false + }, + "total": { + "nowConfirm": 0, + "confirm": 4, + "suspect": 0, + "dead": 0, + "deadRate": "0.00", + "showRate": false, + "heal": 4, + "healRate": "100.00", + "showHeal": true + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/README.md" "b/\343\200\22000\343\200\221demos_04/README.md" index cbd395c..cab2d1c 100644 --- "a/\343\200\22000\343\200\221demos_04/README.md" +++ "b/\343\200\22000\343\200\221demos_04/README.md" @@ -1,15 +1,16 @@ -# 环境 +# 通用环境 - 编程语言:Java 1.8 -- IDE:intelliJ IDEA 2020.2 +- IDE:intelliJ IDEA - 数据库:MySQL 8.0 -- Web容器:Tomcat 9.0.37 -- ssm:Spring + SpringMVC + Mybatis - 版本管理工具:Maven 3.6.3 # 01:ssm在线视频学习网站 - 模拟 -### 一、数据库 +- Web容器:Tomcat 9.0.37 +- ssm:Spring + SpringMVC + Mybatis + +### 一 : 数据库 1. 课程类型 course_type @@ -25,7 +26,7 @@ 4. 用户表 user - id、用户名 name、密码 passsword、电话 number、email、会员状态 vip_flag、注册时间 create_time + id、用户名 name、密码 passsword、电话 number、email、会员状态 vip_flag、注册时间 create_time、状态 flag 5. 工具类型 tool_type @@ -33,11 +34,13 @@ 6. 工具表 tool_item - id、名称 name、地址URL tool_url、封面图片 cover_url、**类型ID** tool_type_id + id、名称 name、地址URL tool_url、封面图片 cover_url、**类型ID** tool_type_id、状态 flag 7. 横幅图片 banner id、横幅图片URL banner_img_url、状态 flag、类型 type、创建时间 create_time、目标地址 banner_url + +8. 补充:每个表都有`flag`字段,默认为1,删除为0(这就是假的删除了) ```mysql # 数据库 @@ -47,7 +50,7 @@ CREATE SCHEMA `ssm4` DEFAULT CHARACTER SET utf8 ; CREATE TABLE `ssm4`.`course_type` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NULL, - `flag` TINYINT NULL, + `flag` TINYINT NULL DEFAULT 1, PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 @@ -61,7 +64,7 @@ CREATE TABLE `ssm4`.`course_topic` ( `intro` VARCHAR(255) NULL, `intro_url` VARCHAR(255) NULL, `views` INT NULL, - `flag` TINYINT NULL, + `flag` TINYINT NULL DEFAULT 1, `course_type_id` INT NULL, `create_time` DATETIME NULL, `vip_flag` TINYINT NULL, @@ -76,8 +79,8 @@ CREATE TABLE `ssm4`.`course_video` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NULL, `free_flag` TINYINT NULL, - `course_type_id` INT NULL, - `flag` TINYINT NULL, + `course_topic_id` INT NULL, + `flag` TINYINT NULL DEFAULT 1, `create_time` DATETIME NULL, `video_url1` VARCHAR(255) NULL, `video_url2` VARCHAR(255) NULL, @@ -95,6 +98,7 @@ CREATE TABLE `ssm4`.`user` ( `email` VARCHAR(255) NULL, `vip_flag` TINYINT NULL, `create_time` DATETIME NULL, + `flag` TINYINT NULL DEFAULT 1 PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 @@ -104,7 +108,7 @@ COLLATE = utf8_bin; CREATE TABLE `ssm4`.`tool_type` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NULL, - `flag` TINYINT NULL, + `flag` TINYINT NULL DEFAULT 1, PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 @@ -117,6 +121,7 @@ CREATE TABLE `ssm4`.`tool_item` ( `tool_url` VARCHAR(255) NULL, `cover_url` VARCHAR(255) NULL, `tool_type_id` INT NULL, + `flag` TINYINT NULL DEFAULT 1, PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 @@ -126,7 +131,7 @@ COLLATE = utf8_bin; CREATE TABLE `ssm4`.`banner` ( `id` INT NOT NULL AUTO_INCREMENT, `banner_img_url` VARCHAR(255) NULL, - `flag` TINYINT NULL, + `flag` TINYINT NULL DEFAULT 1, `type` INT NULL COMMENT '广告图分类,区分展示页面', `create_time` DATETIME NULL, `banner_url` VARCHAR(255) NULL, @@ -184,4 +189,174 @@ COLLATE = utf8_bin; 4. 服务器接处理URL(修改密码链接), - 验证URL是否合法(时间是否超时,是否是服务器生成,是否有篡改) - 跳转修改密码页面 - - 输入密码,提交密码修改用户密码 \ No newline at end of file + - 输入密码,提交密码修改用户密码 + +# 02:springboot-epidemic - 模拟 + +在数据可视化方面,涉及到 表格、折线图、柱状图、中国地图 + +前三者都需要分别设计一个bean,但只设计了前两者的数据库,第三个我偷懒了... + +## 一、数据库 + +```mysql +CREATE SCHEMA `epidemic` DEFAULT CHARACTER SET utf8 ; +``` + +**表格** + +id、地区名 name、现有确诊人数 now_confirm、累计确诊人数 confirm、死亡人数 dead、治愈人数 heal + +```mysql +CREATE TABLE `epidemic`.`illness` ( + `id` BIGINT NOT NULL AUTO_INCREMENT, + `name` VARCHAR(255) NULL, + `now_confirm` INT NULL, + `confirm` INT NULL, + `dead` INT NULL, + `heal` INT NULL, + PRIMARY KEY (`id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = utf8; +``` + +**折线图** + +```mysql +CREATE TABLE `epidemic`.`graph` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `date` varchar(45) COLLATE utf8_estonian_ci DEFAULT NULL, + `confirm` int DEFAULT NULL, + `heal` int DEFAULT NULL, + `dead` int DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1344578936000938121 DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci +``` + +## 二、爬虫 + +> 搜索引擎做的事儿,链接人和内容 + +爬虫: 网页爬取 -- 网页去重 -- 网页解析 -- 内容保存(倒排索引) + +- 通用型爬虫——非定向数据 (搜索引擎使用) +- 垂直型爬虫——定向数据(本项目使用) + +**爬取数据 新型冠状病毒肺炎 - 疫情实时追踪** + +1. 爬取对象:腾讯新闻 https://news.qq.com/zt2020/page/feiyan.htm#/ + 1. 疫情数据的请求地址 https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5 + 2. 数据格式 JSON +2. 爬取对象:丁香医生 https://ncov.dxy.cn/ncovh5/view/pneumonia + 1. 疫情数据的请求地址 https://ncov.dxy.cn/ncovh5/view/pneumonia + 2. 数据格式 HTML + +## 三、爬取数据并存储 + +**持久层框架使用 mybats-plus** + +1. pom.xml 引入依赖 +2. apllication.yml 数据库配置(url driver-class username password) +3. mapper接口 `extends BaseMapper` +4. 主程序入口增加注解 `@MapperScan("com.zgh.mapper")` +5. service + 1. 接口`extends IService` + 2. 子类实现 `extends ServiceImpl` +6. bean + 1. 序列化 `implements Serializable` + 2. 使用 lombok `@@Data @AllArgsConstructor @NoArgsConstructor` + 3. 对应数据库中具体的表 `@TableName("illness")` + +**初始化数据** + +1. 定义一个类 > 爬取疫情数据 > 每一份数据都封装到 bean 中 > 全部 bean 存储在集合中 + +2. 让其在服务器启动时执行 将数据存储入数据库中 方法上加上`@PostConstruct` + + 服务器启动流程:服务器加载 Servlet > Servlet 执行构造函数 > PostConstruct > init > service > destroy > PreDestroy > 服务器卸载 Servlet + +**定时更新数据** + +1. 主程序入口增加注解 `@EnableScheduling` +2. 在更新方法中设置定时时效 `@Scheduled(cron = "0 0/10 * * * ?")` 每十分钟执行一次 + +cron 表达式(有七个字段:秒 分 时 日 月 周 年) + +| 字段 | 范围 | +| :--: | :-------: | +| 秒 | 0-59 | +| 分钟 | 0-59 | +| 小时 | 0-23 | +| 日期 | 1-31 | +| 月份 | 1-12 | +| 星期 | 1-7 | +| 年份 | 2013-3000 | + +字符:`*`任意 `-`区间 `,`枚举 `/`步长 `L`最后 `W`工作日 + + `@Scheduled` + +1)cron 表达式 + +`@Scheduled(cron = "0 0/10 * * * ?")` 每十分钟执行一次 + +2)固定频率任务 + + `@Scheduled(fixedRate = 10000)` 每10s执行一次 + +从上一次方法执行开始的时间算起,如果上一次方法阻塞住了,下一次并不会执行,但是在阻塞这段时间内累计应该执行的次数,当不再阻塞时,一下子把这些全部执行掉,而后再按照固定速率继续执行 + +3)固定间隔任务 + + `@Scheduled(fixedDelay = 10000)` 每10s执行一次 + +以上一次方法执行完开始算起,如果上一次方法执行阻塞住了,那么直到上一次执行完,并间隔给定的时间后,执行下一次 + +## 四、数据可视化 + +**表格** 展示国内各省疫情情况 现有确诊人数 now_confirm、累计确诊人数 confirm、死亡人数 dead、治愈人数 heal + +使用 **echarts** 实现数据可视化 + +- **折线图** 自疫情爆发以来国内每日 累计确诊人数 confirm、死亡人数 dead、治愈人数 heal + +- **柱状图** 省市境外输入TOP10 + +- **中国地图** 现有确诊 + 累计确诊 + +## 五、国际化 + +**切换多语种** + +- list.properties 声明 key 和 value,默认显示的数据(注意编码格式) + +- list_zh_CN.properties 和 list_en_US.properties,分别对应中文与英文(美国) + + ![image-20210101122150218](images/image-20210101122150218.png) + +- application.yml,增加 `spring.messages.basename=i18n.list`(list代表默认使用的文件名) + +- 浏览器鉴别语言的原理是,根据 http 请求中 Accept-Language 参数的不同,然后进行语言切换处理 + +## 六、邮件发送 + +![image-20201119211503524](images/image-20201119211503524.png) + +使用电子邮件协议 SMTP = Simple Mail Transfer Protocol 简单邮件传输协议 + +## 七、cookie 与 session + +- cookie 在客户端,session 在服务端 +- cookie不安全,可以模拟,session相对安全,往往保存在缓存中 +- cookie有不可跨域名的特性,有大小限制,最大 4k + +**分布式 session** + +同一个服务 部署到多台机器 机器A 机器B 机器C ... + +当登录请求分发到机器A后,如何让 session 在机器B和机器C中也生效 + +1. 多个机器处理session时,使用统一的存储 **redis** +2. 当用户第一次请求,访问了机器A,后面所有的请求都访问机器A —— 粘性session + 缺点 会导致负载不均衡,因为根据ip绑定,可能造成单个机器负载过重 +3. session复制,当任一机器的 session 发生变化,广播给其他所有节点,以保证同步 \ No newline at end of file diff --git "a/\343\200\22000\343\200\221demos_04/images/image-20201119211503524.png" "b/\343\200\22000\343\200\221demos_04/images/image-20201119211503524.png" new file mode 100644 index 0000000..7992651 Binary files /dev/null and "b/\343\200\22000\343\200\221demos_04/images/image-20201119211503524.png" differ diff --git "a/\343\200\22000\343\200\221demos_04/images/image-20210101122150218.png" "b/\343\200\22000\343\200\221demos_04/images/image-20210101122150218.png" new file mode 100644 index 0000000..bbaa81d Binary files /dev/null and "b/\343\200\22000\343\200\221demos_04/images/image-20210101122150218.png" differ