qxp192083 преди 5 години
родител
ревизия
9c00ffce30
променени са 40 файла, в които са добавени 1760 реда и са изтрити 107 реда
  1. 1 7
      dgtly-admin/pom.xml
  2. 82 0
      dgtly-admin/src/main/java/com/dgtly/web/controller/people/EntryPassController.java
  3. 63 0
      dgtly-admin/src/main/java/com/dgtly/web/controller/people/UserTemperatureController.java
  4. 57 0
      dgtly-admin/src/main/resources/application-test-druid.yml
  5. 129 0
      dgtly-admin/src/main/resources/application-test.yml
  6. 10 0
      dgtly-admin/src/main/resources/templates/system/people/add.html
  7. 80 0
      dgtly-admin/src/main/resources/templates/system/people/pass/edit.html
  8. 93 0
      dgtly-admin/src/main/resources/templates/system/people/pass/pass.html
  9. 17 0
      dgtly-admin/src/main/resources/templates/system/people/people.html
  10. 45 0
      dgtly-admin/src/main/resources/templates/system/people/temperature.html
  11. 1 1
      dgtly-api/pom.xml
  12. 46 0
      dgtly-api/src/main/java/com/dgtly/api/controller/CommonController.java
  13. 151 0
      dgtly-api/src/main/java/com/dgtly/api/controller/GridController.java
  14. 80 8
      dgtly-api/src/main/java/com/dgtly/api/controller/IndexController.java
  15. 200 0
      dgtly-api/src/main/java/com/dgtly/api/controller/PeopleController.java
  16. 1 1
      dgtly-api/src/main/resources/application-dev.yml
  17. 1 1
      dgtly-api/src/main/resources/application-test-druid.yml
  18. 7 8
      dgtly-api/src/main/resources/application-test.yml
  19. 1 1
      dgtly-api/src/main/resources/application.yml
  20. 9 0
      dgtly-apiframework/src/main/java/com/dgtly/apiframework/exception/ApiGlobalExceptionHandler.java
  21. 15 0
      dgtly-apiframework/src/main/java/com/dgtly/apiframework/exception/ApiTokenTimeoutException.java
  22. 2 1
      dgtly-apiframework/src/main/java/com/dgtly/apiframework/interceptor/AuthenticationInterceptor.java
  23. 18 18
      dgtly-apiframework/src/main/java/com/dgtly/apiframework/interceptor/VerifyInterceptor.java
  24. 6 0
      dgtly-common/src/main/java/com/dgtly/common/config/BodyReaderHttpServletRequestWrapper.java
  25. 2 1
      dgtly-common/src/main/java/com/dgtly/common/core/controller/BaseController.java
  26. 3 1
      dgtly-common/src/main/java/com/dgtly/common/core/domain/ResultType.java
  27. 214 0
      dgtly-system/src/main/java/com/dgtly/system/domain/EntryPass.java
  28. 14 0
      dgtly-system/src/main/java/com/dgtly/system/domain/SysUser.java
  29. 7 7
      dgtly-system/src/main/java/com/dgtly/system/domain/UserTemperature.java
  30. 64 0
      dgtly-system/src/main/java/com/dgtly/system/mapper/EntryPassMapper.java
  31. 15 15
      dgtly-system/src/main/java/com/dgtly/system/mapper/UserTemperatureMapper.java
  32. 64 0
      dgtly-system/src/main/java/com/dgtly/system/service/IEntryPassService.java
  33. 3 0
      dgtly-system/src/main/java/com/dgtly/system/service/ISysUserService.java
  34. 15 15
      dgtly-system/src/main/java/com/dgtly/system/service/IUserTemperatureService.java
  35. 99 0
      dgtly-system/src/main/java/com/dgtly/system/service/impl/EntryPassServiceImpl.java
  36. 21 5
      dgtly-system/src/main/java/com/dgtly/system/service/impl/SysUserServiceImpl.java
  37. 15 15
      dgtly-system/src/main/java/com/dgtly/system/service/impl/UserTemperatureServiceImpl.java
  38. 102 0
      dgtly-system/src/main/resources/mapper/system/EntryPassMapper.xml
  39. 6 2
      dgtly-system/src/main/resources/mapper/system/SysUserMapper.xml
  40. 1 0
      dgtly-system/src/main/resources/mapper/system/UserTemperatureMapper.xml

+ 1 - 7
dgtly-admin/pom.xml

@@ -9,7 +9,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 	<packaging>jar</packaging>
-    <artifactId>dgtly-admin</artifactId>
+    <artifactId>epidemic-admin</artifactId>
 	
 	<description>
 	    web服务入口
@@ -78,12 +78,6 @@
             <groupId>com.dgtly</groupId>
             <artifactId>dgtly-generator</artifactId>
         </dependency>
-        <!-- 商品管理-->
-        <dependency>
-            <groupId>com.dgtly</groupId>
-            <artifactId>dgtly-goods-admin</artifactId>
-            <version>4.0.0</version>
-        </dependency>
 
     </dependencies>
 

+ 82 - 0
dgtly-admin/src/main/java/com/dgtly/web/controller/people/EntryPassController.java

@@ -0,0 +1,82 @@
+package com.dgtly.web.controller.people;
+
+import java.util.List;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.dgtly.common.annotation.Log;
+import com.dgtly.common.enums.BusinessType;
+import com.dgtly.system.domain.EntryPass;
+import com.dgtly.system.service.IEntryPassService;
+import com.dgtly.common.core.controller.BaseController;
+import com.dgtly.common.core.domain.AjaxResult;
+import com.dgtly.common.utils.poi.ExcelUtil;
+import com.dgtly.common.core.page.TableDataInfo;
+
+/**
+ * 出入证Controller
+ * 
+ * @author dgtly
+ * @date 2020-02-15
+ */
+@Controller
+@RequestMapping("/people/pass")
+public class EntryPassController extends BaseController
+{
+    private String prefix = "system/people/pass";
+
+    @Autowired
+    private IEntryPassService entryPassService;
+
+    @RequiresPermissions("people:pass:view")
+    @GetMapping()
+    public String pass()
+    {
+        return prefix + "/pass";
+    }
+
+    /**
+     * 查询出入证列表
+     */
+    @RequiresPermissions("people:pass:list")
+    @PostMapping("/list")
+    @ResponseBody
+    public TableDataInfo list(EntryPass entryPass)
+    {
+        startPage();
+        List<EntryPass> list = entryPassService.selectEntryPassList(entryPass);
+        return getDataTable(list);
+    }
+
+
+    /**
+     * 修改出入证
+     */
+    @GetMapping("/edit/{userId}")
+    public String edit(@PathVariable("userId") Long userId, ModelMap mmap)
+    {
+        EntryPass entryPass = entryPassService.selectEntryPassByUserId(userId);
+        mmap.put("entryPass", entryPass);
+        return prefix + "/edit";
+    }
+
+    /**
+     * 修改保存出入证
+     */
+    @RequiresPermissions("people:pass:edit")
+    @Log(title = "出入证", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(EntryPass entryPass)
+    {
+        return toAjax(entryPassService.updateEntryPass(entryPass));
+    }
+
+
+}

+ 63 - 0
dgtly-admin/src/main/java/com/dgtly/web/controller/people/UserTemperatureController.java

@@ -0,0 +1,63 @@
+package com.dgtly.web.controller.people;
+
+import java.util.List;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.dgtly.common.annotation.Log;
+import com.dgtly.common.enums.BusinessType;
+import com.dgtly.system.domain.UserTemperature;
+import com.dgtly.system.service.IUserTemperatureService;
+import com.dgtly.common.core.controller.BaseController;
+import com.dgtly.common.core.domain.AjaxResult;
+import com.dgtly.common.utils.poi.ExcelUtil;
+import com.dgtly.common.core.page.TableDataInfo;
+
+/**
+ * 用户体温Controller
+ * 
+ * @author dgtly
+ * @date 2020-02-14
+ */
+@Controller
+@RequestMapping("/people/temperature")
+public class UserTemperatureController extends BaseController
+{
+    private String prefix = "system/people";
+
+    @Autowired
+    private IUserTemperatureService userTemperatureService;
+
+
+    @GetMapping("{userId}")
+    public String temperature(ModelMap mmap,@PathVariable Long userId)
+    {
+        mmap.put("userId",userId);
+        return prefix + "/temperature";
+    }
+
+    /**
+     * 查询体温申报列表
+     */
+    @PostMapping("/list/{userId}")
+    @ResponseBody
+    public TableDataInfo list(@PathVariable Long userId)
+    {
+        UserTemperature userTemperature = new UserTemperature();
+        userTemperature.setUserId(userId);
+        startPage();
+        List<UserTemperature> list = userTemperatureService.selectUserTemperatureList(userTemperature);
+        return getDataTable(list);
+    }
+
+
+
+
+
+}

+ 57 - 0
dgtly-admin/src/main/resources/application-test-druid.yml

@@ -0,0 +1,57 @@
+# 数据源配置
+spring:
+    datasource:
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            # 主库数据源
+            master:
+                url: jdbc:mysql://localhost:3306/epidemic_situation?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                username: qxp
+                password: qxp
+            # 从库数据源
+            slave:
+                # 从数据源开关/默认关闭
+                enabled: false
+                url: 
+                username: 
+                password: 
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter: 
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: 
+                login-password: 
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true

+ 129 - 0
dgtly-admin/src/main/resources/application-test.yml

@@ -0,0 +1,129 @@
+# 项目相关配置1
+ruoyi:
+  # 名称
+  name: dgtly_admin
+  # 版本
+  version: 4.0.0
+  # 版权年份
+  copyrightYear: 2019
+  # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
+  profile: /home/softfile/steelfurniture
+  # 获取ip地址开关
+  addressEnabled: true
+  openSwagger: true
+
+# 开发环境配置
+server:
+  # 服务器的HTTP端口,默认为80
+  port: 9000
+  servlet:
+    # 应用的访问路径
+    context-path: /
+  tomcat:
+    # tomcat的URI编码
+    uri-encoding: UTF-8
+    # tomcat最大线程数,默认为200
+    max-threads: 800
+    # Tomcat启动初始化的线程数,默认值25
+    min-spare-threads: 30
+
+# 日志配置
+logging:
+  level:
+    com.dgtly: debug
+    org.springframework: warn
+
+# 用户配置
+user:
+  password:
+    # 密码错误{maxRetryCount}次锁定10分钟
+    maxRetryCount: 5
+
+# Spring配置
+spring:
+  # 模板引擎
+  thymeleaf:
+    mode: HTML
+    encoding: utf-8
+    # 禁用缓存
+    cache: false
+  # 资源信息
+  messages:
+    # 国际化资源文件路径
+    basename: static/i18n/messages
+  jackson:
+    time-zone: GMT+8
+    date-format: yyyy-MM-dd HH:mm:ss
+  profiles:
+    include: dev-druid
+  # 文件上传
+  servlet:
+    multipart:
+      # 单个文件大小
+      max-file-size:  10MB
+      # 设置总上传的文件大小
+      max-request-size:  20MB
+  # 服务模块
+  devtools:
+    restart:
+      # 热部署开关
+      enabled: true
+
+# MyBatis
+mybatis:
+  # 搜索指定包别名
+  typeAliasesPackage: com.dgtly.**.domain
+  # 配置mapper的扫描,找到所有的mapper.xml映射文件
+  mapperLocations: classpath*:mapper/**/*Mapper.xml
+  # 加载全局的配置文件
+  configLocation: classpath:mybatis/mybatis-config.xml
+
+# PageHelper分页插件
+pagehelper:
+  helperDialect: mysql
+  reasonable: true
+  supportMethodsArguments: true
+  params: count=countSql
+
+# Shiro
+shiro:
+  user:
+    # 登录地址
+    loginUrl: /login
+    # 权限认证失败地址
+    unauthorizedUrl: /unauth
+    # 首页地址
+    indexUrl: /index
+    # 验证码开关
+    captchaEnabled: true
+    # 验证码类型 math 数组计算 char 字符
+    captchaType: math
+  cookie:
+    # 设置Cookie的域名 默认空,即当前访问的域名
+    domain:
+    # 设置cookie的有效访问路径
+    path: /
+    # 设置HttpOnly属性
+    httpOnly: true
+    # 设置Cookie的过期时间,天为单位
+    maxAge: 30
+  session:
+    # Session超时时间,-1代表永不过期(默认30分钟)
+    expireTime: 30
+    # 同步session到数据库的周期(默认1分钟)
+    dbSyncPeriod: 1
+    # 相隔多久检查一次session的有效性,默认就是10分钟
+    validationInterval: 10
+    # 同一个用户最大会话数,比如2的意思是同一个账号允许最多同时两个人登录(默认-1不限制)
+    maxSession: -1
+    # 踢出之前登录的/之后登录的用户,默认踢出之前登录的用户
+    kickoutAfter: false
+
+# 防止XSS攻击
+xss:
+  # 过滤开关
+  enabled: true
+  # 排除链接(多个用逗号分隔)
+  excludes: /system/notice/*
+  # 匹配链接
+  urlPatterns: /system/*,/monitor/*,/tool/*

+ 10 - 0
dgtly-admin/src/main/resources/templates/system/people/add.html

@@ -66,6 +66,16 @@
                         </div>
                     </div>
                 </div>
+                <div class="col-sm-6">
+                    <div class="form-group">
+                        <label class="col-sm-4 control-label">是否有武汉旅居史:</label>
+                        <div class="col-sm-8">
+                            <select name="isWuhan" class="form-control m-b" th:with="type=${@dict.getType('sys_yes_no')}">
+                                <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+                            </select>
+                        </div>
+                    </div>
+                </div>
             </div>
 
             <h4 class="form-header h4">其他信息</h4>

+ 80 - 0
dgtly-admin/src/main/resources/templates/system/people/pass/edit.html

@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('修改出入证')" />
+</head>
+<body class="white-bg">
+    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+        <form class="form-horizontal m" id="form-pass-edit" th:object="${entryPass}">
+            <input name="id" th:field="*{id}" type="hidden">
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">是否有武汉旅居史:</label>
+                <div class="col-sm-8">
+                    <select name="isWuhan" class="form-control m-b" th:with="type=${@dict.getType('sys_yes_no')}">
+                        <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{isWuhan}"></option>
+                    </select>
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">居住地址:</label>
+                <div class="col-sm-8">
+                    <input name="address" th:field="*{address}" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">出入证二维码:</label>
+                <div class="col-sm-8">
+                    <input name="qrCode" th:field="*{qrCode}" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">常驻人数:</label>
+                <div class="col-sm-8">
+                    <input name="residentNum" th:field="*{residentNum}" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">与屋主关系:</label>
+                <div class="col-sm-8">
+                    <input name="householdRelation" th:field="*{householdRelation}" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">房产证或租房合同:</label>
+                <div class="col-sm-8">
+                    <textarea name="ownership" class="form-control">[[*{ownership}]]</textarea>
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">审核意见:</label>
+                <div class="col-sm-8">
+                    <input name="auditOpinion" th:field="*{auditOpinion}" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">状态0未审核  1 通过审核  -1未通过审核:</label>
+                <div class="col-sm-8">
+                    <div class="radio-box">
+                        <input type="radio" name="status" value="">
+                        <label th:for="status" th:text="未知"></label>
+                    </div>
+                    <span class="help-block m-b-none"><i class="fa fa-info-circle"></i> 代码生成请选择字典属性</span>
+                </div>
+            </div>
+        </form>
+    </div>
+    <th:block th:include="include :: footer" />
+    <script type="text/javascript">
+        var prefix = ctx + "people/pass";
+        $("#form-pass-edit").validate({
+            focusCleanup: true
+        });
+
+        function submitHandler() {
+            if ($.validate.form()) {
+                $.operate.save(prefix + "/edit", $('#form-pass-edit').serialize());
+            }
+        }
+    </script>
+</body>
+</html>

+ 93 - 0
dgtly-admin/src/main/resources/templates/system/people/pass/pass.html

@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <th:block th:include="include :: header('出入证列表')" />
+</head>
+<body class="gray-bg">
+     <div class="container-div">
+        <div class="row">
+            <div class="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="people:pass:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+            </div>
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+    <th:block th:include="include :: footer" />
+    <script th:inline="javascript">
+        var editFlag = [[${@permission.hasPermi('people:pass:edit')}]];
+        var removeFlag = [[${@permission.hasPermi('people:pass:remove')}]];
+        var isWuhanDatas = [[${@dict.getType('sys_yes_no')}]];
+        var prefix = ctx + "people/pass";
+
+        $(function() {
+            var options = {
+                url: prefix + "/list",
+                createUrl: prefix + "/add",
+                updateUrl: prefix + "/edit/{id}",
+                removeUrl: prefix + "/remove",
+                exportUrl: prefix + "/export",
+                modalName: "出入证",
+                columns: [{
+                    checkbox: true
+                },
+                {
+                    field : 'id', 
+                    title : 'null',
+                    visible: false
+                },
+                {
+                    field : 'isWuhan', 
+                    title : '是否有武汉旅居史',
+                    formatter: function(value, row, index) {
+                       return $.table.selectDictLabel(isWuhanDatas, value);
+                    }
+                },
+                {
+                    field : 'address', 
+                    title : '居住地址'
+                },
+                {
+                    field : 'qrCode', 
+                    title : '出入证二维码'
+                },
+                {
+                    field : 'residentNum', 
+                    title : '常驻人数'
+                },
+                {
+                    field : 'householdRelation', 
+                    title : '与屋主关系'
+                },
+                {
+                    field : 'ownership', 
+                    title : '房产证或租房合同'
+                },
+                {
+                    field : 'auditOpinion', 
+                    title : '审核意见'
+                },
+                {
+                    field : 'status', 
+                    title : '状态0未审核  1 通过审核  -1未通过审核'
+                },
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        var actions = [];
+                        if(row.status=="0"){
+                            actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>审核</a> ');
+                        }
+                        return actions.join('');
+                    }
+                }]
+            };
+            $.table.init(options);
+        });
+    </script>
+</body>
+</html>

+ 17 - 0
dgtly-admin/src/main/resources/templates/system/people/people.html

@@ -104,6 +104,18 @@
 
                     }
                 },
+                {
+                    field : 'idWuhan',
+                    title : '是否有武汉旅居史',
+                    formatter: function (value, row, index) {
+                        if(value==0){
+                            return "没有"
+                        }else if(value==1){
+                            return "有"
+                        }
+
+                    }
+                },
                 {
                     field : 'idCard', 
                     title : '身份证'
@@ -118,6 +130,7 @@
                     align: 'center',
                     formatter: function(value, row, index) {
                         var actions = [];
+                        actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="openTemperature(\'' + row.userId + '\')"><i class="fa fa-edit"></i>体温</a> ');
                         actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.userId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
                         actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.userId + '\')"><i class="fa fa-remove"></i>删除</a>');
                         return actions.join('');
@@ -126,6 +139,10 @@
             };
             $.table.init(options);
         });
+
+        function openTemperature(userId){
+            $.modal.open("修改头像", "temperature/"+userId);
+        }
     </script>
 </body>
 </html>

+ 45 - 0
dgtly-admin/src/main/resources/templates/system/people/temperature.html

@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <th:block th:include="include :: header('【请填写功能名称】列表')" />
+</head>
+<body class="gray-bg">
+    <input id="userId" type="hidden"  th:value="${userId}" />
+     <div class="container-div">
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+    <th:block th:include="include :: footer" />
+    <script th:inline="javascript">
+        var editFlag = [[${@permission.hasPermi('system:temperature:edit')}]];
+        var removeFlag = [[${@permission.hasPermi('system:temperature:remove')}]];
+        var prefix = ctx + "people/temperature";
+        var userId =$("#userId").val();
+        $(function() {
+            var options = {
+                url: prefix + "/list/"+userId,
+                modalName: "用户体温",
+                columns: [{
+                    checkbox: true
+                },
+                {
+                    field : 'userId',
+                    visible: false
+                },
+                {
+                    field : 'temperature', 
+                    title : '温度'
+                },
+                {
+                    field : 'createTime',
+                    title : '日期'
+                }
+                ]
+            };
+            $.table.init(options);
+        });
+    </script>
+</body>
+</html>

+ 1 - 1
dgtly-api/pom.xml

@@ -9,7 +9,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <packaging>jar</packaging>
-    <artifactId>dgtly-api</artifactId>
+    <artifactId>epidemic-api</artifactId>
 
     <description>
         前端页面API接口

+ 46 - 0
dgtly-api/src/main/java/com/dgtly/api/controller/CommonController.java

@@ -0,0 +1,46 @@
+package com.dgtly.api.controller;
+
+
+import com.dgtly.common.annotation.ApiPassToken;
+import com.dgtly.common.config.Global;
+import com.dgtly.common.config.ServerConfig;
+import com.dgtly.common.core.domain.AjaxResult;
+import com.dgtly.common.utils.file.FileUploadUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+@Controller
+public class CommonController {
+
+
+    @Autowired
+    private ServerConfig serverConfig;
+    /**
+     * 通用上传请求
+     */
+    @PostMapping("/common/upload")
+    @ResponseBody
+    @ApiPassToken
+    public AjaxResult uploadFile(MultipartFile file) throws Exception
+    {
+        try
+        {
+            // 上传文件路径
+            String filePath = Global.getUploadPath();
+            // 上传并返回新文件名称
+            String fileName = FileUploadUtils.upload(filePath, file);
+            String url = serverConfig.getUrl() + fileName;
+            AjaxResult ajax = AjaxResult.success();
+            ajax.putKV("fileName", fileName);
+            ajax.putKV("url", url);
+            return ajax;
+        }
+        catch (Exception e)
+        {
+            return AjaxResult.error(e.getMessage());
+        }
+    }
+}

+ 151 - 0
dgtly-api/src/main/java/com/dgtly/api/controller/GridController.java

@@ -0,0 +1,151 @@
+package com.dgtly.api.controller;
+
+
+import com.dgtly.apiframework.exception.LessParamException;
+import com.dgtly.apiframework.util.TokenUtil;
+import com.dgtly.common.constant.UserConstants;
+import com.dgtly.common.core.controller.BaseController;
+import com.dgtly.common.core.domain.AjaxResult;
+import com.dgtly.common.utils.security.EncryptPassWordClass;
+import com.dgtly.system.domain.EntryPass;
+import com.dgtly.system.domain.SysUser;
+import com.dgtly.system.service.IEntryPassService;
+import com.dgtly.system.service.ISysUserService;
+import org.apache.shiro.crypto.SecureRandomNumberGenerator;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/grid")
+public class GridController extends BaseController {
+
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private IEntryPassService entryPassService;
+
+    /**
+     * 获取社区内人员列表
+     * @return
+     */
+    @PostMapping("/getCommunityPeople")
+    @ResponseBody
+    public AjaxResult getCommunityPeople(){
+        Long userId = Long.parseLong(TokenUtil.getTokenUserId());
+        SysUser user = sysUserService.selectUserById(userId);
+        SysUser paramUser =  new SysUser();
+        paramUser.setChargeCommunityId(user.getChargeCommunityId());
+        List<SysUser> resultUsers = sysUserService.selectPeople(paramUser);
+        return AjaxResult.success().putKV("list",resultUsers);
+    }
+
+    /**
+     * 新增所属网格内的普通人员
+     * @return
+     */
+    @PostMapping("/addCommunityPeople")
+    @ResponseBody
+    public AjaxResult addCommunityPeople(){
+        Long userId = Long.parseLong(TokenUtil.getTokenUserId());
+        SysUser user = sysUserService.selectUserById(userId);
+
+        Map param = getJsonMap();
+        SysUser addUser = new SysUser();
+        Long[] i = {3L};
+        addUser.setRoleIds(i);
+        if(!param.containsKey("phonenumber")||!param.containsKey("username")||!param.containsKey("idcard")
+                ||!param.containsKey("sex")||!param.containsKey("isWuhan")){
+            throw  new LessParamException();
+        }
+        addUser.setPhonenumber(param.get("phonenumber").toString());
+        addUser.setLoginName(param.get("phonenumber").toString());
+        addUser.setPassword(param.get("phonenumber").toString());
+        addUser.setChargeCommunityId(user.getChargeCommunityId());
+        addUser.setUserName(param.get("username").toString());
+        addUser.setIdCard(param.get("idcard").toString());
+        addUser.setSex(param.get("sex").toString());
+        addUser.setIsWuhan(param.get("isWuhan").toString());
+        if (UserConstants.USER_NAME_NOT_UNIQUE.equals(sysUserService.checkLoginNameUnique(addUser.getLoginName(),0L)))
+        {
+            return error("新增用户'" + addUser.getLoginName() + "'失败,登录账号已存在");
+        }
+        else if (UserConstants.USER_PHONE_NOT_UNIQUE.equals(sysUserService.checkPhoneUnique(addUser)))
+        {
+            return error("新增用户'" + addUser.getLoginName() + "'失败,手机号码已存在");
+        }
+        addUser.setSalt(randomSalt());
+        addUser.setPassword(EncryptPassWordClass.encryptPassword(addUser.getLoginName(), addUser.getPassword(), addUser.getSalt()));
+        addUser.setCreateBy(user.getLoginName());
+
+        int num = sysUserService.insertUser(addUser);
+        if(num>0){
+            return success();
+        }else{
+           return error();
+        }
+
+    }
+
+    /**
+     * 获取出入证待审批列表
+     * @return
+     */
+    @PostMapping("/getUncheckedPostList")
+    @ResponseBody
+    public AjaxResult getUncheckedPostList(){
+        Long userId = Long.parseLong(TokenUtil.getTokenUserId());
+        SysUser user = sysUserService.selectUserById(userId);
+        EntryPass ep = new EntryPass();
+        ep.setChargeCommunityId(user.getChargeCommunityId());
+        ep.setStatus("0");
+        List<EntryPass> result = entryPassService.selectEntryPassList(ep);
+        return success().putKV("list",result);
+    }
+
+    /**
+     * 获取出入证待审批列表
+     * @return
+     */
+    @PostMapping("/checkPass")
+    @ResponseBody
+    public AjaxResult checkPass(){
+        Long userId = Long.parseLong(TokenUtil.getTokenUserId());
+        SysUser user = sysUserService.selectUserById(userId);
+        Map param = getJsonMap();
+        if(!param.containsKey("status")||!param.containsKey("userId")){
+            throw new LessParamException();
+        }
+        EntryPass ep = new EntryPass();
+        ep.setUpdateBy(user.getLoginName());
+        ep.setUserId(Long.parseLong(param.get("userId").toString()));
+        ep.setStatus(param.get("status").toString());
+        if(param.containsKey("auditOpinion")){
+            ep.setAuditOpinion(param.get("auditOpinion").toString());
+        }
+        int i  = entryPassService.updateEntryPass(ep);
+        if(i>0){
+            return success();
+        }
+        return error();
+    }
+
+
+    /**
+     * 生成随机盐
+     */
+    public static String randomSalt()
+    {
+        // 一个Byte占两个字节,此处生成的3字节,字符串长度为6
+        SecureRandomNumberGenerator secureRandom = new SecureRandomNumberGenerator();
+        String hex = secureRandom.nextBytes(3).toHex();
+        return hex;
+    }
+
+
+}

+ 80 - 8
dgtly-api/src/main/java/com/dgtly/api/controller/IndexController.java

@@ -2,6 +2,7 @@ package com.dgtly.api.controller;
 
 import com.auth0.jwt.JWT;
 import com.auth0.jwt.algorithms.Algorithm;
+import com.dgtly.apiframework.exception.LessParamException;
 import com.dgtly.apiframework.util.TokenUtil;
 import com.dgtly.common.annotation.ApiNoCheckSign;
 import com.dgtly.common.annotation.ApiPassToken;
@@ -10,7 +11,11 @@ import com.dgtly.common.core.domain.AjaxResult;
 import com.dgtly.common.core.domain.ResultType;
 import com.dgtly.common.utils.StringUtils;
 import com.dgtly.common.utils.security.EncryptPassWordClass;
+import com.dgtly.system.domain.Community;
+import com.dgtly.system.domain.EntryPass;
 import com.dgtly.system.domain.SysUser;
+import com.dgtly.system.service.ICommunityService;
+import com.dgtly.system.service.IEntryPassService;
 import com.dgtly.system.service.ISysUserService;
 import io.swagger.annotations.Api;
 import jdk.nashorn.internal.parser.Token;
@@ -19,13 +24,11 @@ import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.authc.UsernamePasswordToken;
 import org.apache.shiro.subject.Subject;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 
 @RestController
@@ -35,11 +38,24 @@ public class IndexController extends BaseController {
     @Autowired
     private ISysUserService sysUserService;
 
+    @Autowired
+    private IEntryPassService entryPassService;
+
+    @Autowired
+    private ICommunityService communityService;
+
     @PostMapping("/login")
     @ResponseBody
     @ApiPassToken
-    public AjaxResult ajaxLogin(String username, String password, Boolean rememberMe)
+    public AjaxResult ajaxLogin( )
     {
+        Map<String,Object> paramMap =  getJsonMap();
+        String username = (String)paramMap.get("loginname");
+        String password = (String)paramMap.get("password");
+        if(username==null||username.trim().equals("")
+        ||password==null||password.trim().equals("")){
+            throw  new LessParamException();
+        }
         SysUser resultUser = null;
         SysUser user = new SysUser();
         user.setLoginName(username);
@@ -60,15 +76,71 @@ public class IndexController extends BaseController {
                     .withIssuedAt(start)
                     .withExpiresAt(end)
                     .sign(Algorithm.HMAC256(resultUser.getPassword()));
-            return success().putKV("token",token).putKV("type",resultUser.getRoleId());
+            return success().putKV("token",token).putKV("type",resultUser.getRoles().get(0).getRoleId());
         }else{
             return  new AjaxResult(300,"账号或密码错误!");
         }
     }
 
-    @PostMapping("/getUser")
+    /**
+     * 获取用户基本信息
+     * @return
+     */
+    @PostMapping("/getUserInfo")
     @ResponseBody
     public AjaxResult getUser(){
-        return AjaxResult.success().putKV("id",TokenUtil.getTokenUserId());
+        Long userId = Long.parseLong(TokenUtil.getTokenUserId());
+        SysUser user = sysUserService.selectUserById(userId);
+        return AjaxResult.success(user);
+    }
+
+    /**
+     * 获取用户基本信息
+     * @return
+     */
+    @PostMapping("/getUserInfoByUserId")
+    @ResponseBody
+    @ApiPassToken
+    public AjaxResult getUserInfoByUserId(){
+        Map param = getJsonMap();
+        if(!param.containsKey("userId")){
+            throw new LessParamException();
+        }
+        SysUser user = sysUserService.selectUserById(Long.parseLong(param.get("userId").toString()));
+        return AjaxResult.success(user);
+    }
+
+    /**
+     * 查询社区列表
+     */
+    @PostMapping("/community/list")
+    @ResponseBody
+    @ApiPassToken
+    public Object list()
+    {
+        Community community = new Community();
+        List<Community> list = communityService.selectCommunityList(community);
+        return AjaxResult.success().putKV("list",list);
+    }
+
+    /**
+     * 获取用户基本信息
+     * @return
+     */
+    @PostMapping("/getPassInfo")
+    @ResponseBody
+    @ApiPassToken
+    public AjaxResult getPassInfo(){
+        Map<String,Object> paramMap =  getJsonMap();
+        if(!paramMap.containsKey("userId")){
+            throw new LessParamException();
+        }
+        String userId = paramMap.get("userId").toString();
+        EntryPass ep = entryPassService.selectEntryPassByUserId(Long.parseLong(userId));
+        return AjaxResult.success(ep);
     }
+
+
+
+
 }

+ 200 - 0
dgtly-api/src/main/java/com/dgtly/api/controller/PeopleController.java

@@ -0,0 +1,200 @@
+package com.dgtly.api.controller;
+
+import com.auth0.jwt.JWT;
+import com.auth0.jwt.algorithms.Algorithm;
+import com.dgtly.apiframework.exception.LessParamException;
+import com.dgtly.apiframework.util.TokenUtil;
+import com.dgtly.common.annotation.ApiPassToken;
+import com.dgtly.common.constant.UserConstants;
+import com.dgtly.common.core.controller.BaseController;
+import com.dgtly.common.core.domain.AjaxResult;
+import com.dgtly.common.utils.security.EncryptPassWordClass;
+import com.dgtly.system.domain.EntryPass;
+import com.dgtly.system.domain.SysUser;
+import com.dgtly.system.domain.UserTemperature;
+import com.dgtly.system.service.IEntryPassService;
+import com.dgtly.system.service.ISysUserService;
+import com.dgtly.system.service.IUserTemperatureService;
+import org.apache.shiro.crypto.SecureRandomNumberGenerator;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/people")
+public class PeopleController extends BaseController {
+
+
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private IEntryPassService entryPassService;
+    @Autowired
+    private IUserTemperatureService userTemperatureService;
+
+    /**
+     * 新增所属网格内的普通人员
+     * @return
+     */
+    @PostMapping("/addPeople")
+    @ResponseBody
+    @ApiPassToken
+    public AjaxResult addPeople(){
+        Map param = getJsonMap();
+        SysUser addUser = new SysUser();
+        Long[] i = {3L};
+        addUser.setRoleIds(i);
+        if(!param.containsKey("phonenumber")||!param.containsKey("username")||!param.containsKey("idcard")
+                ||!param.containsKey("sex")||!param.containsKey("isWuhan")||!param.containsKey("password")
+                ||!param.containsKey("chargeCommunity")){
+            throw  new LessParamException();
+        }
+        addUser.setPhonenumber(param.get("phonenumber").toString());
+        addUser.setLoginName(param.get("phonenumber").toString());
+        addUser.setPassword(param.get("password").toString());
+        addUser.setChargeCommunityId((Long)param.get("chargeCommunity"));
+        addUser.setUserName(param.get("username").toString());
+        addUser.setIdCard(param.get("idcard").toString());
+        addUser.setSex(param.get("sex").toString());
+        addUser.setIsWuhan(param.get("isWuhan").toString());
+        if (UserConstants.USER_NAME_NOT_UNIQUE.equals(sysUserService.checkLoginNameUnique(addUser.getLoginName(),0L)))
+        {
+            return error("新增用户'" + addUser.getLoginName() + "'失败,登录账号已存在");
+        }
+        else if (UserConstants.USER_PHONE_NOT_UNIQUE.equals(sysUserService.checkPhoneUnique(addUser)))
+        {
+            return error("新增用户'" + addUser.getLoginName() + "'失败,手机号码已存在");
+        }
+        addUser.setSalt(randomSalt());
+        addUser.setPassword(EncryptPassWordClass.encryptPassword(addUser.getLoginName(), addUser.getPassword(), addUser.getSalt()));
+
+        int num = sysUserService.insertUser(addUser);
+        if(num>0){
+            return success();
+        }else{
+            return error();
+        }
+
+    }
+
+
+    /**
+     * 直接申请通行证
+     * @return
+     */
+    @PostMapping("/getPass")
+    @ResponseBody
+    @ApiPassToken
+    public AjaxResult getPass(){
+        Map param = getJsonMap();
+        SysUser addUser = new SysUser();
+        Long[] i = {3L};
+        addUser.setRoleIds(i);
+        if(!param.containsKey("phonenumber")||!param.containsKey("username")||!param.containsKey("idcard")
+                ||!param.containsKey("sex")||!param.containsKey("isWuhan") ||!param.containsKey("chargeCommunityId")){
+            throw  new LessParamException();
+        }
+
+        if(!param.containsKey("address")||!param.containsKey("householdRelation")
+                ||!param.containsKey("residentNum")){
+            throw  new LessParamException();
+        }
+        addUser.setPhonenumber(param.get("phonenumber").toString());
+        addUser.setLoginName(param.get("phonenumber").toString());
+        addUser.setPassword(param.get("phonenumber").toString());
+        addUser.setChargeCommunityId(Long.parseLong(param.get("chargeCommunityId").toString()));
+        addUser.setUserName(param.get("username").toString());
+        addUser.setIdCard(param.get("idcard").toString());
+        addUser.setSex(param.get("sex").toString());
+        addUser.setIsWuhan(param.get("isWuhan").toString());
+        if (UserConstants.USER_NAME_NOT_UNIQUE.equals(sysUserService.checkLoginNameUnique(addUser.getLoginName(),0L)))
+        {
+            return error(300,"新增用户'" + addUser.getLoginName() + "'失败,手机号码已存在");
+        }
+        else if (UserConstants.USER_PHONE_NOT_UNIQUE.equals(sysUserService.checkPhoneUnique(addUser)))
+        {
+            return error(300,"新增用户'" + addUser.getLoginName() + "'失败,手机号码已存在");
+        }
+        addUser.setSalt(randomSalt());
+        addUser.setPassword(EncryptPassWordClass.encryptPassword(addUser.getLoginName(), addUser.getPassword(), addUser.getSalt()));
+
+        /*--------------------添加通行证信息---------------------------*/
+        EntryPass ep = new EntryPass();
+        ep.setAddress(param.get("address").toString());
+        ep.setHouseholdRelation(param.get("householdRelation").toString());
+        ep.setResidentNum(Long.parseLong(param.get("residentNum").toString()));
+        if(param.containsKey("ownership")){
+            ep.setOwnership(param.get("ownership").toString());
+        }
+        ep.setStatus("0");
+
+        int num  =sysUserService.insertPass(addUser,ep);
+
+        if(num>0){
+            Date start = new Date();
+            long currentTime = System.currentTimeMillis() + 12*60* 60 * 1000;//12小时有效时间
+            Date end = new Date(currentTime);
+            String token = "";
+
+            token = JWT.create().withAudience(addUser.getUserId().toString())
+                    .withIssuedAt(start)
+                    .withExpiresAt(end)
+                    .sign(Algorithm.HMAC256(addUser.getPassword()));
+            return success().putKV("userId",addUser.getUserId()).putKV("token",token);
+        }
+        return error();
+    }
+
+    /**
+     * 直接申请通行证
+     * @return
+     */
+    @PostMapping("/addTemperature")
+    @ResponseBody
+    public AjaxResult addTemperature(){
+        Map param = getJsonMap();
+        if(!param.containsKey("temperature")){
+            throw new LessParamException();
+        }
+        UserTemperature ut = new UserTemperature();
+        ut.setUserId(Long.parseLong(TokenUtil.getTokenUserId()));
+        ut.setTemperature(param.get("temperature").toString());
+        int i =userTemperatureService.insertUserTemperature(ut);
+        if(i>0){
+            return success();
+        }
+        return error();
+    }
+
+    /**
+     * 直接申请通行证
+     * @return
+     */
+    @PostMapping("/getTemperatureList")
+    @ResponseBody
+    public AjaxResult getTemperatureList(){
+        Map param = getJsonMap();
+        if(!param.containsKey("userId")){
+            throw new LessParamException();
+        }
+        UserTemperature ut = new UserTemperature();
+        ut.setUserId(Long.parseLong(param.get("userId").toString()));
+        List<UserTemperature> utList =userTemperatureService.selectUserTemperatureList(ut);
+        return success().putKV("list",utList);
+    }
+
+    /**
+     * 生成随机盐
+     */
+    public static String randomSalt()
+    {
+        // 一个Byte占两个字节,此处生成的3字节,字符串长度为6
+        SecureRandomNumberGenerator secureRandom = new SecureRandomNumberGenerator();
+        String hex = secureRandom.nextBytes(3).toHex();
+        return hex;
+    }
+
+}

+ 1 - 1
dgtly-api/src/main/resources/application-dev.yml

@@ -1,7 +1,7 @@
 # 项目相关配置1
 ruoyi:
   # 名称
-  name: dgtly_oneportal
+  name: dgtly_api
   # 版本
   version: 4.0.0
   # 版权年份

+ 1 - 1
dgtly-api/src/main/resources/application-test-druid.yml

@@ -6,7 +6,7 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://localhost:3306/SteelfurnitureManager?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://localhost:3306/epidemic_situation?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: qxp
                 password: qxp
             # 从库数据源

+ 7 - 8
dgtly-api/src/main/resources/application-test.yml

@@ -1,13 +1,13 @@
 # 项目相关配置1
 ruoyi:
   # 名称
-  name: dgtly_oneportal
+  name: dgtly_api
   # 版本
   version: 4.0.0
   # 版权年份
   copyrightYear: 2019
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
-  profile: /home/softfile/steelfurniture
+  profile: /home/softfile/epidemic
   # 获取ip地址开关
   addressEnabled: true
   #是否开启swagger
@@ -21,21 +21,20 @@ security:
   #开发模式下 可以使用swagger测试 放过验签环节
   isDev: true
 
-
 # 开发环境配置
 server:
   # 服务器的HTTP端口,默认为80
-  port: 8888
+  port: 9002
   servlet:
     # 应用的访问路径
-    context-path: /steelfurnitureAPI
+    context-path: /api
   tomcat:
     # tomcat的URI编码
     uri-encoding: UTF-8
     # tomcat最大线程数,默认为200
-    max-threads: 800
+    max-threads: 200
     # Tomcat启动初始化的线程数,默认值25
-    min-spare-threads: 30
+    min-spare-threads: 25
  
 # 日志配置
 logging:
@@ -60,7 +59,7 @@ spring:
   devtools:
     restart:
       # 热部署开关
-      enabled: true
+      enabled: false
 # MyBatis
 mybatis:
     # 搜索指定包别名

+ 1 - 1
dgtly-api/src/main/resources/application.yml

@@ -1,4 +1,4 @@
 spring:
   profiles:
-    active: dev
+    active: test
 #开发环境dev 测试环境test 正式环境prod  启动时可以设置参数Java -jar xxxxxx.jar spring.profiles.actiove=prod

+ 9 - 0
dgtly-apiframework/src/main/java/com/dgtly/apiframework/exception/ApiGlobalExceptionHandler.java

@@ -45,6 +45,15 @@ public class ApiGlobalExceptionHandler
     {
         return AjaxResult.error(ResultType.NOLOGIN);
     }
+
+    /**
+     * token超时
+     */
+    @ExceptionHandler(ApiTokenTimeoutException.class)
+    public AjaxResult handleException(ApiTokenTimeoutException e)
+    {
+        return AjaxResult.error(ResultType.TOKENTIMEOUT);
+    }
     /**
      * 缺少参数
      */

+ 15 - 0
dgtly-apiframework/src/main/java/com/dgtly/apiframework/exception/ApiTokenTimeoutException.java

@@ -0,0 +1,15 @@
+package com.dgtly.apiframework.exception;
+
+public class ApiTokenTimeoutException extends RuntimeException{
+    private static final long serialVersionUID = 1L;
+
+    public ApiTokenTimeoutException()
+    {
+        super("token超时!");
+    }
+    public ApiTokenTimeoutException(String msg)
+    {
+        super(msg);
+    }
+
+}

+ 2 - 1
dgtly-apiframework/src/main/java/com/dgtly/apiframework/interceptor/AuthenticationInterceptor.java

@@ -5,6 +5,7 @@ import com.auth0.jwt.JWTVerifier;
 import com.auth0.jwt.algorithms.Algorithm;
 import com.auth0.jwt.exceptions.JWTDecodeException;
 import com.auth0.jwt.exceptions.JWTVerificationException;
+import com.dgtly.apiframework.exception.ApiTokenTimeoutException;
 import com.dgtly.apiframework.exception.NoLoginException;
 import com.dgtly.common.annotation.ApiPassToken;
 import com.dgtly.system.domain.SysUser;
@@ -61,7 +62,7 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
         try {
             jwtVerifier.verify(token);
         } catch (JWTVerificationException e) {
-            throw new RuntimeException("401");
+            throw new ApiTokenTimeoutException();
         }
         return true;
     }

+ 18 - 18
dgtly-apiframework/src/main/java/com/dgtly/apiframework/interceptor/VerifyInterceptor.java

@@ -46,12 +46,12 @@ public class VerifyInterceptor  extends HandlerInterceptorAdapter {
             String handlerPackage = h.getBeanType().getPackage().getName();
             String thisPackage = this.getClass().getPackage().getName();
             String verifPackage =thisPackage.substring(0,thisPackage.indexOf(".",thisPackage.indexOf(".")+1));
-            if(handlerPackage.indexOf(verifPackage)!=-1){
+            /*  if(handlerPackage.indexOf(verifPackage)!=-1){
                 ApiNoCheckSign a1=((HandlerMethod)handler).getBeanType().getAnnotation(ApiNoCheckSign.class);
                 ApiNoCheckSign a2 = ((HandlerMethod)handler).getMethodAnnotation(ApiNoCheckSign.class);
-                /**
+                *//**
                  * 判断类或方法上是否有放行注解  只要一个有就不验证
-                 */
+                 *//*
                 if(a1==null&&a2==null){
                     if(isDev){
                         String swaggerSign = request.getHeader("SwaggerSign");
@@ -62,58 +62,58 @@ public class VerifyInterceptor  extends HandlerInterceptorAdapter {
                             }
                         }
                     }
-                    /**
+                    *//**
                      * 验证是否存在timestamp
-                     */
+                     *//*
                     String timestamp = request.getHeader("timestamp");
                     if(timestamp==null||timestamp.trim().equals("")){
                         returnError(response,ResultType.ERRORSIGN);
                         return false;
                     }
-                    /**
+                    *//**
                      * 超时验证
-                     */
+                     *//*
                     long now = new Date().getTime();
                     long time =Long.parseLong(timestamp);
                     if(Math.abs(time-now)>1000*60*apiTimeOut){
                         returnError(response,ResultType.TIMEOUT);
                         return false;
                     }
-                    /**
+                    *//**
                      * 验证是否存在plat
-                     */
+                     *//*
                     String plat = request.getHeader("plat");
                     if(plat==null||plat.trim().equals("")){
                         returnError(response,ResultType.ERRORSIGN);
                         return false;
                     }
-                    /**
+                    *//**
                      * 验证是否存在plat是否有对应的appkey
-                     */
+                     *//*
                     if(platMap==null&&!platMap.containsKey(plat)){
                         returnError(response,ResultType.ERRORSIGN);
                         return false;
                     }
                     String appKey =platMap.get(plat);
-                    /**
+                    *//**
                      * 验证是否存在v
-                     */
+                     *//*
                     String v = request.getHeader("v");
                     if(v==null||v.trim().equals("")){
                         returnError(response,ResultType.ERRORSIGN);
                         return false;
                     }
-                    /**
+                    *//**
                      * 验证是否存在sign
-                     */
+                     *//*
                     String sign = request.getHeader("sign");
                     if(sign==null||sign.trim().equals("")){
                         returnError(response,ResultType.ERRORSIGN);
                         return false;
                     }
-                    /**
+                    *//**
                      * 按照规则拼接字符串并加密比对
-                     */
+                     *//*
                     String mySign = "timestamp"+timestamp+"plat"+plat+"v"+v+"appKey"+appKey;
                     mySign = Md5Utils.hash(mySign);
                     if(!mySign.equalsIgnoreCase(sign)){
@@ -123,7 +123,7 @@ public class VerifyInterceptor  extends HandlerInterceptorAdapter {
                 }
                 logger.info("======收到请求======"+((HandlerMethod) handler).getClass().getName()+"类的"+
                         ((HandlerMethod) handler).getMethod().getName()+"方法");
-            }
+            }*/
             return true;
         }else
         {

+ 6 - 0
dgtly-common/src/main/java/com/dgtly/common/config/BodyReaderHttpServletRequestWrapper.java

@@ -14,11 +14,17 @@ import java.nio.charset.Charset;
 public class BodyReaderHttpServletRequestWrapper extends HttpServletRequestWrapper {
     private final byte[] body;
 
+    private final String json;
+
     public BodyReaderHttpServletRequestWrapper(HttpServletRequest request) {
         super(request);
         String sessionStream = getBodyString(request);
+        json = sessionStream;
         body = sessionStream.getBytes(Charset.forName("UTF-8"));
     }
+    public String getJson(){
+        return json;
+    }
     /**
      * 获取请求Body
      *

+ 2 - 1
dgtly-common/src/main/java/com/dgtly/common/core/controller/BaseController.java

@@ -174,7 +174,8 @@ public class BaseController
     }
 
     public Map<String,Object> getJsonMap(){
-        String data = ((BodyReaderHttpServletRequestWrapper)getRequest()).getBodyString(getRequest());
+        BodyReaderHttpServletRequestWrapper  request = new BodyReaderHttpServletRequestWrapper(getRequest());
+        String data =  request.getJson();
         Map<String,Object> map =JSONObject.parseObject(data);
         return map;
     }

+ 3 - 1
dgtly-common/src/main/java/com/dgtly/common/core/domain/ResultType.java

@@ -21,8 +21,10 @@ public enum ResultType {
     ,SIGNERROR(504,"验签错误")
     /** 暂不支持此种请求方式 */
     ,FORBIDMETHOD(505,"暂不支持此种请求方式")
-    /** 缺少参数 */
+    /** 缺少token */
     ,NOLOGIN(506,"未登录")
+    /** 缺少token */
+    ,TOKENTIMEOUT(507,"token超时")
     ;
 
 

+ 214 - 0
dgtly-system/src/main/java/com/dgtly/system/domain/EntryPass.java

@@ -0,0 +1,214 @@
+package com.dgtly.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.dgtly.common.annotation.Excel;
+import com.dgtly.common.core.domain.BaseEntity;
+
+/**
+ * 出入证对象 entry_pass
+ * 
+ * @author dgtly
+ * @date 2020-02-15
+ */
+public class EntryPass extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** null */
+    private Long userId;
+
+
+    /** 居住地址 */
+    @Excel(name = "居住地址")
+    private String address;
+
+    /** 出入证二维码 */
+    @Excel(name = "出入证二维码")
+    private String qrCode;
+
+    /** 常驻人数 */
+    @Excel(name = "常驻人数")
+    private Long residentNum;
+
+    /** 与屋主关系 */
+    @Excel(name = "与屋主关系")
+    private String householdRelation;
+
+    /** 房产证或租房合同 */
+    @Excel(name = "房产证或租房合同")
+    private String ownership;
+
+    /** 审核意见 */
+    @Excel(name = "审核意见")
+    private String auditOpinion;
+
+    /** 状态0未审核  1 通过审核  -1未通过审核 */
+    @Excel(name = "状态0未审核  1 通过审核  -1未通过审核")
+    private String status;
+
+    @Excel(name = "用户名称")
+    private String username;
+
+    @Excel(name = "身份证号")
+    private String idCard;
+
+    @Excel(name = "手机号码")
+    private String phonenumber;
+
+    @Excel(name = "性别")
+    private String sex;
+
+    @Excel(name = "是否旅居武汉")
+    private String isWuhan;
+
+
+
+    @Excel(name="所处社区id")
+    private Long chargeCommunityId;
+
+    @Excel(name="所处社区名称")
+    private String communityName;
+
+    public void setUserId(Long userId)
+    {
+        this.userId = userId;
+    }
+
+    public Long getUserId()
+    {
+        return userId;
+    }
+    public void setAddress(String address) 
+    {
+        this.address = address;
+    }
+
+    public String getAddress() 
+    {
+        return address;
+    }
+    public void setQrCode(String qrCode) 
+    {
+        this.qrCode = qrCode;
+    }
+
+    public String getQrCode() 
+    {
+        return qrCode;
+    }
+    public void setResidentNum(Long residentNum) 
+    {
+        this.residentNum = residentNum;
+    }
+
+    public Long getResidentNum() 
+    {
+        return residentNum;
+    }
+    public void setHouseholdRelation(String householdRelation) 
+    {
+        this.householdRelation = householdRelation;
+    }
+
+    public String getHouseholdRelation() 
+    {
+        return householdRelation;
+    }
+    public void setOwnership(String ownership) 
+    {
+        this.ownership = ownership;
+    }
+
+    public String getOwnership() 
+    {
+        return ownership;
+    }
+    public void setAuditOpinion(String auditOpinion) 
+    {
+        this.auditOpinion = auditOpinion;
+    }
+
+    public String getAuditOpinion() 
+    {
+        return auditOpinion;
+    }
+    public void setStatus(String status) 
+    {
+        this.status = status;
+    }
+
+    public String getStatus() 
+    {
+        return status;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getIdCard() {
+        return idCard;
+    }
+
+    public void setIdCard(String idCard) {
+        this.idCard = idCard;
+    }
+
+    public String getPhonenumber() {
+        return phonenumber;
+    }
+
+    public void setPhonenumber(String phonenumber) {
+        this.phonenumber = phonenumber;
+    }
+
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+
+    public String getIsWuhan() {
+        return isWuhan;
+    }
+
+    public void setIsWuhan(String isWuhan) {
+        this.isWuhan = isWuhan;
+    }
+
+    public String getCommunityName() {
+        return communityName;
+    }
+
+    public void setCommunityName(String communityName) {
+        this.communityName = communityName;
+    }
+
+    public Long getChargeCommunityId() {
+        return chargeCommunityId;
+    }
+
+    public void setChargeCommunityId(Long chargeCommunityId) {
+        this.chargeCommunityId = chargeCommunityId;
+    }
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("user_id", getUserId())
+            .append("address", getAddress())
+            .append("qrCode", getQrCode())
+            .append("residentNum", getResidentNum())
+            .append("householdRelation", getHouseholdRelation())
+            .append("ownership", getOwnership())
+            .append("auditOpinion", getAuditOpinion())
+            .append("status", getStatus())
+            .toString();
+    }
+}

+ 14 - 0
dgtly-system/src/main/java/com/dgtly/system/domain/SysUser.java

@@ -58,6 +58,10 @@ public class SysUser extends BaseEntity
     @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
     private String sex;
 
+    /** 是否武汉旅居史 */
+    @Excel(name = "是否武汉旅居史", readConverterExp = "0=没有,1=有")
+    private String isWuhan;
+
     /** 用户头像 */
     private String avatar;
 
@@ -177,6 +181,16 @@ public class SysUser extends BaseEntity
         this.roleId = roleId;
     }
 
+    public String getIsWuhan()
+    {
+        return isWuhan;
+    }
+
+    public void setIsWuhan(String isWuhan)
+    {
+        this.isWuhan = isWuhan;
+    }
+
     @NotBlank(message = "登录账号不能为空")
     @Size(min = 0, max = 30, message = "登录账号长度不能超过30个字符")
     public String getLoginName()

+ 7 - 7
dgtly-system/src/main/java/com/dgtly/system/domain/UserTemperature.java

@@ -6,24 +6,24 @@ import com.dgtly.common.annotation.Excel;
 import com.dgtly.common.core.domain.BaseEntity;
 
 /**
- * 【请填写功能名称】对象 user_temperature
+ * 体温信息对象 user_temperature
  * 
  * @author dgtly
- * @date 2020-02-14
+ * @date 2020-02-15
  */
 public class UserTemperature extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
 
-    /** $column.columnComment */
+    /** null */
     private Long id;
 
-    /** $column.columnComment */
-    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    /** 用户id */
+    @Excel(name = "用户id")
     private Long userId;
 
-    /** $column.columnComment */
-    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    /** 体温 */
+    @Excel(name = "体温")
     private String temperature;
 
     public void setId(Long id) 

+ 64 - 0
dgtly-system/src/main/java/com/dgtly/system/mapper/EntryPassMapper.java

@@ -0,0 +1,64 @@
+package com.dgtly.system.mapper;
+
+import com.dgtly.system.domain.EntryPass;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 出入证Mapper接口
+ * 
+ * @author dgtly
+ * @date 2020-02-15
+ */
+public interface EntryPassMapper 
+{
+    /**
+     * 查询出入证
+     * 
+     * @param userId 出入证ID
+     * @return 出入证
+     */
+    public EntryPass selectEntryPassByUserId(Long userId);
+
+    /**
+     * 查询出入证列表
+     * 
+     * @param entryPass 出入证
+     * @return 出入证集合
+     */
+    public List<EntryPass> selectEntryPassList(EntryPass entryPass);
+
+    /**
+     * 新增出入证
+     * 
+     * @param entryPass 出入证
+     * @return 结果
+     */
+    public int insertEntryPass(EntryPass entryPass);
+
+    /**
+     * 修改出入证
+     * 
+     * @param entryPass 出入证
+     * @return 结果
+     */
+    public int updateEntryPass(EntryPass entryPass);
+
+    /**
+     * 删除出入证
+     * 
+     * @param id 出入证ID
+     * @return 结果
+     */
+    public int deleteEntryPassById(Long id);
+
+    /**
+     * 批量删除出入证
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteEntryPassByIds(String[] ids);
+
+
+}

+ 15 - 15
dgtly-system/src/main/java/com/dgtly/system/mapper/UserTemperatureMapper.java

@@ -4,55 +4,55 @@ import com.dgtly.system.domain.UserTemperature;
 import java.util.List;
 
 /**
- * 【请填写功能名称】Mapper接口
+ * 体温信息Mapper接口
  * 
  * @author dgtly
- * @date 2020-02-14
+ * @date 2020-02-15
  */
 public interface UserTemperatureMapper 
 {
     /**
-     * 查询【请填写功能名称】
+     * 查询体温信息
      * 
-     * @param id 【请填写功能名称】ID
-     * @return 【请填写功能名称】
+     * @param id 体温信息ID
+     * @return 体温信息
      */
     public UserTemperature selectUserTemperatureById(Long id);
 
     /**
-     * 查询【请填写功能名称】列表
+     * 查询体温信息列表
      * 
-     * @param userTemperature 【请填写功能名称】
-     * @return 【请填写功能名称】集合
+     * @param userTemperature 体温信息
+     * @return 体温信息集合
      */
     public List<UserTemperature> selectUserTemperatureList(UserTemperature userTemperature);
 
     /**
-     * 新增【请填写功能名称】
+     * 新增体温信息
      * 
-     * @param userTemperature 【请填写功能名称】
+     * @param userTemperature 体温信息
      * @return 结果
      */
     public int insertUserTemperature(UserTemperature userTemperature);
 
     /**
-     * 修改【请填写功能名称】
+     * 修改体温信息
      * 
-     * @param userTemperature 【请填写功能名称】
+     * @param userTemperature 体温信息
      * @return 结果
      */
     public int updateUserTemperature(UserTemperature userTemperature);
 
     /**
-     * 删除【请填写功能名称】
+     * 删除体温信息
      * 
-     * @param id 【请填写功能名称】ID
+     * @param id 体温信息ID
      * @return 结果
      */
     public int deleteUserTemperatureById(Long id);
 
     /**
-     * 批量删除【请填写功能名称】
+     * 批量删除体温信息
      * 
      * @param ids 需要删除的数据ID
      * @return 结果

+ 64 - 0
dgtly-system/src/main/java/com/dgtly/system/service/IEntryPassService.java

@@ -0,0 +1,64 @@
+package com.dgtly.system.service;
+
+import com.dgtly.system.domain.EntryPass;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 出入证Service接口
+ * 
+ * @author dgtly
+ * @date 2020-02-15
+ */
+public interface IEntryPassService 
+{
+    /**
+     * 查询出入证
+     * 
+     * @param userId 出入证ID
+     * @return 出入证
+     */
+    public EntryPass selectEntryPassByUserId(Long userId);
+
+    /**
+     * 查询出入证列表
+     * 
+     * @param entryPass 出入证
+     * @return 出入证集合
+     */
+    public List<EntryPass> selectEntryPassList(EntryPass entryPass);
+
+    /**
+     * 新增出入证
+     * 
+     * @param entryPass 出入证
+     * @return 结果
+     */
+    public int insertEntryPass(EntryPass entryPass);
+
+    /**
+     * 修改出入证
+     * 
+     * @param entryPass 出入证
+     * @return 结果
+     */
+    public int updateEntryPass(EntryPass entryPass);
+
+    /**
+     * 批量删除出入证
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteEntryPassByIds(String ids);
+
+    /**
+     * 删除出入证信息
+     * 
+     * @param id 出入证ID
+     * @return 结果
+     */
+    public int deleteEntryPassById(Long id);
+
+
+}

+ 3 - 0
dgtly-system/src/main/java/com/dgtly/system/service/ISysUserService.java

@@ -3,6 +3,7 @@ package com.dgtly.system.service;
 import java.util.List;
 
 import com.dgtly.common.exception.BusinessException;
+import com.dgtly.system.domain.EntryPass;
 import com.dgtly.system.domain.SysUser;
 
 /**
@@ -209,4 +210,6 @@ public interface ISysUserService
      * @return 用户信息集合信息
      */
     List<SysUser> selectUserByLoginNameOrPhone(String username);
+
+    public int insertPass(SysUser addUser, EntryPass ep);
 }

+ 15 - 15
dgtly-system/src/main/java/com/dgtly/system/service/IUserTemperatureService.java

@@ -4,47 +4,47 @@ import com.dgtly.system.domain.UserTemperature;
 import java.util.List;
 
 /**
- * 【请填写功能名称】Service接口
+ * 体温信息Service接口
  * 
  * @author dgtly
- * @date 2020-02-14
+ * @date 2020-02-15
  */
 public interface IUserTemperatureService 
 {
     /**
-     * 查询【请填写功能名称】
+     * 查询体温信息
      * 
-     * @param id 【请填写功能名称】ID
-     * @return 【请填写功能名称】
+     * @param id 体温信息ID
+     * @return 体温信息
      */
     public UserTemperature selectUserTemperatureById(Long id);
 
     /**
-     * 查询【请填写功能名称】列表
+     * 查询体温信息列表
      * 
-     * @param userTemperature 【请填写功能名称】
-     * @return 【请填写功能名称】集合
+     * @param userTemperature 体温信息
+     * @return 体温信息集合
      */
     public List<UserTemperature> selectUserTemperatureList(UserTemperature userTemperature);
 
     /**
-     * 新增【请填写功能名称】
+     * 新增体温信息
      * 
-     * @param userTemperature 【请填写功能名称】
+     * @param userTemperature 体温信息
      * @return 结果
      */
     public int insertUserTemperature(UserTemperature userTemperature);
 
     /**
-     * 修改【请填写功能名称】
+     * 修改体温信息
      * 
-     * @param userTemperature 【请填写功能名称】
+     * @param userTemperature 体温信息
      * @return 结果
      */
     public int updateUserTemperature(UserTemperature userTemperature);
 
     /**
-     * 批量删除【请填写功能名称】
+     * 批量删除体温信息
      * 
      * @param ids 需要删除的数据ID
      * @return 结果
@@ -52,9 +52,9 @@ public interface IUserTemperatureService
     public int deleteUserTemperatureByIds(String ids);
 
     /**
-     * 删除【请填写功能名称】信息
+     * 删除体温信息信息
      * 
-     * @param id 【请填写功能名称】ID
+     * @param id 体温信息ID
      * @return 结果
      */
     public int deleteUserTemperatureById(Long id);

+ 99 - 0
dgtly-system/src/main/java/com/dgtly/system/service/impl/EntryPassServiceImpl.java

@@ -0,0 +1,99 @@
+package com.dgtly.system.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.dgtly.system.mapper.EntryPassMapper;
+import com.dgtly.system.domain.EntryPass;
+import com.dgtly.system.service.IEntryPassService;
+import com.dgtly.common.core.text.Convert;
+
+/**
+ * 出入证Service业务层处理
+ * 
+ * @author dgtly
+ * @date 2020-02-15
+ */
+@Service
+public class EntryPassServiceImpl implements IEntryPassService 
+{
+    @Autowired
+    private EntryPassMapper entryPassMapper;
+
+    /**
+     * 查询出入证
+     * 
+     * @param id 出入证ID
+     * @return 出入证
+     */
+    @Override
+    public EntryPass selectEntryPassByUserId(Long userId)
+    {
+        return entryPassMapper.selectEntryPassByUserId(userId);
+    }
+
+    /**
+     * 查询出入证列表
+     * 
+     * @param entryPass 出入证
+     * @return 出入证
+     */
+    @Override
+    public List<EntryPass> selectEntryPassList(EntryPass entryPass)
+    {
+        return entryPassMapper.selectEntryPassList(entryPass);
+    }
+
+    /**
+     * 新增出入证
+     * 
+     * @param entryPass 出入证
+     * @return 结果
+     */
+    @Override
+    public int insertEntryPass(EntryPass entryPass)
+    {
+        return entryPassMapper.insertEntryPass(entryPass);
+    }
+
+    /**
+     * 修改出入证
+     * 
+     * @param entryPass 出入证
+     * @return 结果
+     */
+    @Override
+    public int updateEntryPass(EntryPass entryPass)
+    {
+        return entryPassMapper.updateEntryPass(entryPass);
+    }
+
+    /**
+     * 删除出入证对象
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    @Override
+    public int deleteEntryPassByIds(String ids)
+    {
+        return entryPassMapper.deleteEntryPassByIds(Convert.toStrArray(ids));
+    }
+
+    /**
+     * 删除出入证信息
+     * 
+     * @param id 出入证ID
+     * @return 结果
+     */
+    @Override
+    public int deleteEntryPassById(Long id)
+    {
+        return entryPassMapper.deleteEntryPassById(id);
+    }
+
+
+
+}

+ 21 - 5
dgtly-system/src/main/java/com/dgtly/system/service/impl/SysUserServiceImpl.java

@@ -2,6 +2,9 @@ package com.dgtly.system.service.impl;
 
 import java.util.ArrayList;
 import java.util.List;
+
+import com.dgtly.system.domain.*;
+import com.dgtly.system.service.IEntryPassService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -13,11 +16,6 @@ import com.dgtly.common.core.text.Convert;
 import com.dgtly.common.exception.BusinessException;
 import com.dgtly.common.utils.StringUtils;
 import com.dgtly.common.utils.security.Md5Utils;
-import com.dgtly.system.domain.SysPost;
-import com.dgtly.system.domain.SysRole;
-import com.dgtly.system.domain.SysUser;
-import com.dgtly.system.domain.SysUserPost;
-import com.dgtly.system.domain.SysUserRole;
 import com.dgtly.system.mapper.SysPostMapper;
 import com.dgtly.system.mapper.SysRoleMapper;
 import com.dgtly.system.mapper.SysUserMapper;
@@ -54,6 +52,9 @@ public class SysUserServiceImpl implements ISysUserService
     @Autowired
     private ISysConfigService configService;
 
+    @Autowired
+    private IEntryPassService entryPassService;
+
     /**
      * 根据条件分页查询用户列表
      * 
@@ -522,5 +523,20 @@ public class SysUserServiceImpl implements ISysUserService
         return userMapper.selectUserByLoginNameOrPhone(username);
     }
 
+    /**
+     * 新增保存用户信息
+     *
+     * @param user 用户信息
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int insertPass(SysUser user, EntryPass ep)
+    {
+        insertUser(user);
+        ep.setUserId(user.getUserId());
+        int rows = entryPassService.insertEntryPass(ep);
+        return rows;
+    }
 
 }

+ 15 - 15
dgtly-system/src/main/java/com/dgtly/system/service/impl/UserTemperatureServiceImpl.java

@@ -10,10 +10,10 @@ import com.dgtly.system.service.IUserTemperatureService;
 import com.dgtly.common.core.text.Convert;
 
 /**
- * 【请填写功能名称】Service业务层处理
+ * 体温信息Service业务层处理
  * 
  * @author dgtly
- * @date 2020-02-14
+ * @date 2020-02-15
  */
 @Service
 public class UserTemperatureServiceImpl implements IUserTemperatureService 
@@ -22,10 +22,10 @@ public class UserTemperatureServiceImpl implements IUserTemperatureService
     private UserTemperatureMapper userTemperatureMapper;
 
     /**
-     * 查询【请填写功能名称】
+     * 查询体温信息
      * 
-     * @param id 【请填写功能名称】ID
-     * @return 【请填写功能名称】
+     * @param id 体温信息ID
+     * @return 体温信息
      */
     @Override
     public UserTemperature selectUserTemperatureById(Long id)
@@ -34,10 +34,10 @@ public class UserTemperatureServiceImpl implements IUserTemperatureService
     }
 
     /**
-     * 查询【请填写功能名称】列表
+     * 查询体温信息列表
      * 
-     * @param userTemperature 【请填写功能名称】
-     * @return 【请填写功能名称】
+     * @param userTemperature 体温信息
+     * @return 体温信息
      */
     @Override
     public List<UserTemperature> selectUserTemperatureList(UserTemperature userTemperature)
@@ -46,9 +46,9 @@ public class UserTemperatureServiceImpl implements IUserTemperatureService
     }
 
     /**
-     * 新增【请填写功能名称】
+     * 新增体温信息
      * 
-     * @param userTemperature 【请填写功能名称】
+     * @param userTemperature 体温信息
      * @return 结果
      */
     @Override
@@ -59,9 +59,9 @@ public class UserTemperatureServiceImpl implements IUserTemperatureService
     }
 
     /**
-     * 修改【请填写功能名称】
+     * 修改体温信息
      * 
-     * @param userTemperature 【请填写功能名称】
+     * @param userTemperature 体温信息
      * @return 结果
      */
     @Override
@@ -72,7 +72,7 @@ public class UserTemperatureServiceImpl implements IUserTemperatureService
     }
 
     /**
-     * 删除【请填写功能名称】对象
+     * 删除体温信息对象
      * 
      * @param ids 需要删除的数据ID
      * @return 结果
@@ -84,9 +84,9 @@ public class UserTemperatureServiceImpl implements IUserTemperatureService
     }
 
     /**
-     * 删除【请填写功能名称】信息
+     * 删除体温信息信息
      * 
-     * @param id 【请填写功能名称】ID
+     * @param id 体温信息ID
      * @return 结果
      */
     @Override

+ 102 - 0
dgtly-system/src/main/resources/mapper/system/EntryPassMapper.xml

@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dgtly.system.mapper.EntryPassMapper">
+    
+    <resultMap type="EntryPass" id="EntryPassResult">
+        <result property="userId"    column="user_id"    />
+        <result property="address"    column="address"    />
+        <result property="qrCode"    column="qr_code"    />
+        <result property="residentNum"    column="resident_num"    />
+        <result property="householdRelation"    column="household_relation"    />
+        <result property="ownership"    column="ownership"    />
+        <result property="auditOpinion"    column="audit_opinion"    />
+        <result property="user_name"    column="username"    />
+        <result property="phonenumber"    column="phonenumber"    />
+        <result property="isWuhan"    column="is_wuhan"    />
+        <result property="sex"    column="sex"    />
+        <result property="idCard"    column="id_card"    />
+        <result property="chargeCommunityId"    column="charge_community_id"    />
+        <result property="communityName"    column="community_name"    />
+
+    </resultMap>
+
+    <sql id="selectEntryPassVo">
+         select ep.user_id  , ep.address, ep.qr_code , ep.resident_num, ep.household_relation, ep.ownership, ep.audit_opinion, ep.status,
+         u.user_name,u.phonenumber,u.sex,u.is_wuhan,u.id_card,u.charge_community_id,com.name community_name
+        from entry_pass ep
+        left join sys_user u on ep.user_id = u.user_id
+        left join community com on com.id = u.charge_community_id
+    </sql>
+
+    <select id="selectEntryPassList" parameterType="EntryPass" resultMap="EntryPassResult">
+        <include refid="selectEntryPassVo"/>
+        <where>  
+            <if test="address != null  and address != ''"> and ep.address = #{address}</if>
+            <if test="qrCode != null  and qrCode != ''"> and ep.qr_code = #{qrCode}</if>
+            <if test="residentNum != null "> and ep.resident_num = #{residentNum}</if>
+            <if test="householdRelation != null  and householdRelation != ''"> and ep.household_relation = #{householdRelation}</if>
+            <if test="ownership != null  and ownership != ''"> and ep.ownership = #{ownership}</if>
+            <if test="auditOpinion != null  and auditOpinion != ''"> and ep.audit_opinion = #{auditOpinion}</if>
+            <if test="status != null  and status != ''"> and ep.status = #{status}</if>
+            <if test="chargeCommunityId != null  and chargeCommunityId != ''"> and u.charge_community_id = #{chargeCommunityId}</if>
+        </where>
+    </select>
+    
+    <select id="selectEntryPassByUserId" parameterType="Long" resultMap="EntryPassResult">
+        <include refid="selectEntryPassVo"/>
+        where ep.user_id = #{userId}
+    </select>
+        
+    <insert id="insertEntryPass" parameterType="EntryPass" useGeneratedKeys="true" keyProperty="id">
+        insert into entry_pass
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            user_id,
+            <if test="address != null  and address != ''">address,</if>
+            <if test="qrCode != null  and qrCode != ''">qr_code,</if>
+            <if test="residentNum != null ">resident_num,</if>
+            <if test="householdRelation != null  and householdRelation != ''">household_relation,</if>
+            <if test="ownership != null  and ownership != ''">ownership,</if>
+            <if test="auditOpinion != null  and auditOpinion != ''">audit_opinion,</if>
+            <if test="status != null  and status != ''">status,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            #{userId},
+            <if test="address != null  and address != ''">#{address},</if>
+            <if test="qrCode != null  and qrCode != ''">#{qrCode},</if>
+            <if test="residentNum != null ">#{residentNum},</if>
+            <if test="householdRelation != null  and householdRelation != ''">#{householdRelation},</if>
+            <if test="ownership != null  and ownership != ''">#{ownership},</if>
+            <if test="auditOpinion != null  and auditOpinion != ''">#{auditOpinion},</if>
+            <if test="status != null  and status != ''">#{status},</if>
+         </trim>
+    </insert>
+
+    <update id="updateEntryPass" parameterType="EntryPass">
+        update entry_pass
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="address != null  and address != ''">address = #{address},</if>
+            <if test="qrCode != null  and qrCode != ''">qr_code = #{qrCode},</if>
+            <if test="residentNum != null ">resident_num = #{residentNum},</if>
+            <if test="householdRelation != null  and householdRelation != ''">household_relation = #{householdRelation},</if>
+            <if test="ownership != null  and ownership != ''">ownership = #{ownership},</if>
+            <if test="auditOpinion != null  and auditOpinion != ''">audit_opinion = #{auditOpinion},</if>
+            <if test="status != null  and status != ''">status = #{status},</if>
+        </trim>
+        where user_id = #{userId}
+    </update>
+
+    <delete id="deleteEntryPassById" parameterType="Long">
+        delete from entry_pass where user_id = #{userId}
+    </delete>
+
+    <delete id="deleteEntryPassByIds" parameterType="String">
+        delete from entry_pass where user_id in
+        <foreach item="userId" collection="array" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+    </delete>
+
+    
+</mapper>

+ 6 - 2
dgtly-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -15,6 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="sex"          column="sex"          />
 		<result property="idCard"    column="id_card"    />
 		<result property="chargeCommunityId"    column="charge_community_id"    />
+		<result property="isWuhan"    column="is_wuhan"    />
 		<result property="communityName"     column="community_name"    />
 		<result property="avatar"       column="avatar"       />
 		<result property="password"     column="password"     />
@@ -62,7 +63,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	
 	<sql id="selectUserVo">
         select  u.user_id,u.company_id, u.dept_id, u.login_name, u.user_name, u.email, u.avatar, u.phonenumber,
-        		u.id_card,u.charge_community_id,com.name community_name,
+        		u.id_card,u.charge_community_id,com.name community_name,u.is_wuhan,
         		u.sex, u.password, u.salt, u.status, u.del_flag, u.login_ip, u.login_date, u.create_time, u.remark,
        		    d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status,
        		    r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
@@ -202,6 +203,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="sex != null and sex != ''">sex = #{sex},</if>
 			<if test="idCard != null and idCard != ''">id_card = #{idCard},</if>
 			<if test="chargeCommunityId != null and chargeCommunityId != ''">charge_community_id = #{chargeCommunityId},</if>
+			<if test="isWuhan != null  and isWuhan != ''">is_wuhan = #{isWuhan},</if>
  			<if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
  			<if test="password != null and password != ''">password = #{password},</if>
  			<if test="salt != null and salt != ''">salt = #{salt},</if>
@@ -238,6 +240,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
 			<if test="idCard != null  and idCard != ''">id_card,</if>
 			<if test="chargeCommunityId != null ">charge_community_id,</if>
+			<if test="isWuhan != null  and isWuhan != ''">is_wuhan,</if>
  			<if test="sex != null and sex != ''">sex,</if>
  			<if test="password != null and password != ''">password,</if>
  			<if test="salt != null and salt != ''">salt,</if>
@@ -256,6 +259,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
 			<if test="idCard != null  and idCard != ''">#{idCard},</if>
 			<if test="chargeCommunityId != null ">#{chargeCommunityId},</if>
+			<if test="isWuhan != null  and isWuhan != ''">#{isWuhan},</if>
  			<if test="sex != null and sex != ''">#{sex},</if>
  			<if test="password != null and password != ''">#{password},</if>
  			<if test="salt != null and salt != ''">#{salt},</if>
@@ -317,7 +321,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<select id="selectPeople" parameterType="String" resultMap="SysUserResult">
 		select
 			u.user_id,u.company_id, u.dept_id, u.login_name, u.user_name, u.email,
-			u.id_card,u.charge_community_id,c.name community_name,
+			u.id_card,u.charge_community_id,c.name community_name,u.is_wuhan,
 			u.avatar, u.phonenumber, u.password, u.sex, u.salt, u.status, u.del_flag,
 			u.login_ip, u.login_date, u.create_by, u.create_time, u.remark
 		from sys_user u

+ 1 - 0
dgtly-system/src/main/resources/mapper/system/UserTemperatureMapper.xml

@@ -25,6 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="userId != null "> and user_id = #{userId}</if>
             <if test="temperature != null  and temperature != ''"> and temperature = #{temperature}</if>
         </where>
+        order by create_time desc
     </select>
     
     <select id="selectUserTemperatureById" parameterType="Long" resultMap="UserTemperatureResult">