From ba21c6caa5e573cf52d7f93f0be14d32fa893935 Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期一, 19 九月 2022 10:22:01 +0800
Subject: [PATCH] 支持小程序和修改bug

---
 src/main/java/com/example/jz/config/RestTemplateConfig.java      |   24 +
 src/main/java/com/example/jz/modle/dto/ManagerDto.java           |   13 +
 src/main/java/com/example/jz/modle/entity/Cause.java             |    9 
 src/main/resources/mapper/ReportDao.xml                          |    1 
 src/main/java/com/example/jz/modle/entity/GroupUser.java         |    7 
 src/main/java/com/example/jz/modle/entity/User.java              |    2 
 src/main/java/com/example/jz/modle/vo/CauseVo.java               |    7 
 src/main/java/com/example/jz/auth/TokenLoginFilter.java          |    1 
 src/main/java/com/example/jz/utils/HttpUtil.java                 |  103 +++++++
 src/main/java/com/example/jz/controller/CauseController.java     |    6 
 src/main/java/com/example/jz/controller/WxAppController.java     |  400 ++++++++++++++++++++++++++++++
 src/main/java/com/example/jz/service/impl/CauseServiceImpl.java  |   38 ++
 pom.xml                                                          |    6 
 src/main/java/com/example/jz/modle/vo/MemberVo.java              |   15 +
 src/main/java/com/example/jz/auth/MyTokenSecurityConfig.java     |    2 
 src/main/java/com/example/jz/controller/UserController.java      |   77 ++++-
 src/main/java/com/example/jz/auth/TokenJwtManager.java           |   13 +
 src/main/java/com/example/jz/modle/dto/CauseDto.java             |    4 
 src/main/java/com/example/jz/modle/vo/PublicityVo.java           |    3 
 src/main/java/com/example/jz/controller/GroupController.java     |    8 
 src/main/java/com/example/jz/service/CauseService.java           |    2 
 src/main/java/com/example/jz/modle/entity/PhoneInFo.java         |    9 
 src/main/java/com/example/jz/service/impl/ReportServiceImpl.java |    2 
 23 files changed, 721 insertions(+), 31 deletions(-)

diff --git a/pom.xml b/pom.xml
index 80be62e..936fb03 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,6 +50,12 @@
             <artifactId>mybatis-plus-boot-starter</artifactId>
             <version>3.3.2</version>
         </dependency>
+        <!-- httpclient-->
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.12</version>
+        </dependency>
         <!-- minio SDK -->
         <dependency>
             <groupId>io.minio</groupId>
diff --git a/src/main/java/com/example/jz/auth/MyTokenSecurityConfig.java b/src/main/java/com/example/jz/auth/MyTokenSecurityConfig.java
index 1e9aea1..0df8a6c 100644
--- a/src/main/java/com/example/jz/auth/MyTokenSecurityConfig.java
+++ b/src/main/java/com/example/jz/auth/MyTokenSecurityConfig.java
@@ -77,7 +77,7 @@
                 .and()
                 .authorizeRequests() // 璇锋眰璁剧疆
                 .antMatchers("/user/register", "/webjars/**", "/swagger/**", "/v2/api-docs", "/doc.html", "/swagger-ui.html", "/swagger-resources/**" ).permitAll() // 閰嶇疆涓嶉渶瑕佽璇佺殑鎺ュ彛
-                .antMatchers("/api/**").permitAll() // 寮�鏀惧皬绋嬪簭鐨勬帴鍙�
+                .antMatchers("/wx/login").permitAll() // 寮�鏀惧皬绋嬪簭鐨勬帴鍙�
                 .anyRequest().authenticated() // 浠讳綍璇锋眰閮介渶瑕佽璇�
                 .and()
                 .logout() // logout璁惧畾
diff --git a/src/main/java/com/example/jz/auth/TokenJwtManager.java b/src/main/java/com/example/jz/auth/TokenJwtManager.java
index abf9544..95ea355 100644
--- a/src/main/java/com/example/jz/auth/TokenJwtManager.java
+++ b/src/main/java/com/example/jz/auth/TokenJwtManager.java
@@ -5,6 +5,7 @@
 import com.auth0.jwt.algorithms.Algorithm;
 import com.auth0.jwt.interfaces.Claim;
 import com.auth0.jwt.interfaces.DecodedJWT;
+import com.example.jz.modle.entity.User;
 import org.springframework.stereotype.Component;
 
 import java.util.Calendar;
@@ -43,5 +44,17 @@
         Claim username = verify.getClaim("username");
         return username.asString();
     }
+    public String createToken(User user) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.add(Calendar.SECOND, tokenEcpiration);
+
+        return JWT.create()
+                .withKeyId(user.getId().toString())
+                .withHeader(new HashMap<>())
+                .withClaim("username", user.getLoginUsername())
+                .withExpiresAt(calendar.getTime())
+                .sign(Algorithm.HMAC256(tokenSignKey));
+    }
+
 }
 
diff --git a/src/main/java/com/example/jz/auth/TokenLoginFilter.java b/src/main/java/com/example/jz/auth/TokenLoginFilter.java
index a181e93..00b2e1d 100644
--- a/src/main/java/com/example/jz/auth/TokenLoginFilter.java
+++ b/src/main/java/com/example/jz/auth/TokenLoginFilter.java
@@ -25,6 +25,7 @@
  */
 public class TokenLoginFilter extends UsernamePasswordAuthenticationFilter {
 
+
     private TokenJwtManager tokenJwtManager;
     private AuthenticationManager authenticationManager;
 
diff --git a/src/main/java/com/example/jz/config/RestTemplateConfig.java b/src/main/java/com/example/jz/config/RestTemplateConfig.java
new file mode 100644
index 0000000..ba1fe4f
--- /dev/null
+++ b/src/main/java/com/example/jz/config/RestTemplateConfig.java
@@ -0,0 +1,24 @@
+package com.example.jz.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.client.ClientHttpRequestFactory;
+import org.springframework.http.client.SimpleClientHttpRequestFactory;
+import org.springframework.web.client.RestTemplate;
+
+@Configuration
+public class RestTemplateConfig {
+
+    @Bean
+    public RestTemplate restTemplate() {
+        return new RestTemplate();
+    }
+
+    @Bean
+    public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
+        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
+        factory.setReadTimeout(5000);//ms
+        factory.setConnectTimeout(15000);//ms
+        return factory;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/jz/controller/CauseController.java b/src/main/java/com/example/jz/controller/CauseController.java
index 2a4ce10..8ba9def 100644
--- a/src/main/java/com/example/jz/controller/CauseController.java
+++ b/src/main/java/com/example/jz/controller/CauseController.java
@@ -73,6 +73,12 @@
         return R.ok(causeService.getCauserListByCondition(cause, status, size, current));
     }
 
+    @ApiOperation(httpMethod = "GET", value = "妗堜欢鍙�-妗堜欢褰曞叆-妗堜欢褰曞叆鍒楄〃")
+    @GetMapping("/getCause")
+    @ApiResponse(message = "鎵ц鎴愬姛", code = 200)
+    public R getCause(String cause, Integer status, Integer size, Integer current,Integer id) {
+        return R.ok(causeService.getCauserListByCondition(cause, status, size, current,id));
+    }
     @ApiOperation(httpMethod = "GET", value = "妗堜欢鍙�-妗堜欢褰曞叆-璐熻矗浜烘煡璇�")
     @GetMapping("/getManagerList")
     @ApiResponse(message = "鎵ц鎴愬姛", code = 200)
diff --git a/src/main/java/com/example/jz/controller/GroupController.java b/src/main/java/com/example/jz/controller/GroupController.java
index 88968fe..9ecaf98 100644
--- a/src/main/java/com/example/jz/controller/GroupController.java
+++ b/src/main/java/com/example/jz/controller/GroupController.java
@@ -69,15 +69,15 @@
     @PutMapping("banSpeech")
     @ApiOperation(value = "绂佽█")
     @ApiImplicitParam(name = "id", value = "缇ょ粍id", required = true, dataType = "Integer")
-    public R setBanSpeech(@RequestParam("id") Integer id) {
-        return R.ok(groupUserService.update(new UpdateWrapper<GroupUser>().set("ban_speech",1).eq("user_id",id)));
+    public R setBanSpeech(@RequestParam("id") Integer id,@RequestParam("groupId")Integer groupId) {
+        return R.ok(groupUserService.update(new UpdateWrapper<GroupUser>().set("ban_speech",1).eq("user_id",id).eq("group_id",groupId)));
     }
 
     @PutMapping("allowSpeech")
     @ApiOperation(value = "鍏佽鍙戣█")
     @ApiImplicitParam(name = "id", value = "缇ょ粍id", required = true, dataType = "Integer")
-    public R setAllowSpeech(@RequestParam("id") Integer id) {
-        return R.ok(groupUserService.update(new UpdateWrapper<GroupUser>().set("ban_speech",0).eq("user_id",id)));
+    public R setAllowSpeech(@RequestParam("id") Integer id,@RequestParam("groupId")Integer groupId) {
+        return R.ok(groupUserService.update(new UpdateWrapper<GroupUser>().set("ban_speech",0).eq("user_id",id).eq("group_id",groupId)));
     }
 
     @PutMapping("banSpeechAll")
diff --git a/src/main/java/com/example/jz/controller/UserController.java b/src/main/java/com/example/jz/controller/UserController.java
index eb3c7ec..d5a65b6 100644
--- a/src/main/java/com/example/jz/controller/UserController.java
+++ b/src/main/java/com/example/jz/controller/UserController.java
@@ -1,23 +1,23 @@
 package com.example.jz.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.api.ApiController;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.example.jz.modle.R;
+import com.example.jz.modle.dto.ManagerDto;
 import com.example.jz.modle.entity.User;
 import com.example.jz.service.UserService;
 import com.example.jz.utils.Md5Utils;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.Serializable;
 import java.util.Date;
-import java.util.List;
+import java.util.function.Consumer;
 
 /**
  * 鐢ㄦ埛琛�(User)琛ㄦ帶鍒跺眰
@@ -47,9 +47,16 @@
     @ApiOperation("鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�")
     public R selectAll(Page<User> page, User user) {
         return R.ok(this.userService.page(page, new QueryWrapper<User>()
-                        .like(StringUtils.isNotBlank(user.getNickName()),"nick_name",user.getNickName())
+                .eq("role", 0)
+                        .and(StringUtils.isNotBlank(user.getNickName()) && StringUtils.isNotBlank(user.getRealName()), new Consumer<QueryWrapper<User>>() {
+                            @Override
+                            public void accept(QueryWrapper<User> userQueryWrapper) {
+                                userQueryWrapper.like("real_name", user.getRealName()).or().like("nick_name", user.getNickName());
+                            }
+                        })
+                .like(StringUtils.isNotBlank(user.getNickName())&&StringUtils.isBlank(user.getRealName()), "nick_name", user.getNickName())
                 .or()
-                .like(StringUtils.isNotBlank(user.getRealName()),"real_name",user.getRealName())
+                .like(StringUtils.isNotBlank(user.getRealName())&&StringUtils.isBlank(user.getNickName()), "real_name", user.getRealName())
                 .orderByDesc("ctime")));
     }
 
@@ -80,7 +87,7 @@
     /**
      * 鍒犻櫎鏁版嵁
      *
-     * @param idList 涓婚敭缁撳悎
+     * @param id 涓婚敭缁撳悎
      * @return 鍒犻櫎缁撴灉
      */
     @DeleteMapping
@@ -89,23 +96,47 @@
         return R.ok(this.userService.removeById(id));
     }
 
-    /**
-     * 娣诲姞绠$悊鍛�
-     *
-     * @param id       鐢ㄦ埛id
-     * @param username 绠$悊鍛樼敤鎴峰悕
-     * @param password 绠$悊鍛樺瘑鐮�
-     * @return
-     */
-    @PostMapping("/addAdmin/{id}")
-    @ApiOperation("娣诲姞绠$悊鍛�")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "password", value = "瀵嗙爜", required = true, dataType = "String"),
-            @ApiImplicitParam(name = "username", value = "鐢ㄦ埛鍚�", required = true, dataType = "String")
-    })
-    public R addAdmin(@PathVariable Serializable id, String username, String password) {
-        User user = userService.getById(id).setLoginUsername(username).setLoginPassword(Md5Utils.md5(password)).setRole(1);
-        return R.ok(userService.updateById(user));
+
+    @PostMapping("/manager")
+    @ApiOperation("娣诲姞绠$悊")
+    public R addManager(@RequestBody ManagerDto managerDto) {
+        User user = new User().setRealName(managerDto.getRealName())
+                .setLoginUsername(managerDto.getRealName())
+                .setUserMobile(managerDto.getPhoneNumber())
+                .setLoginPassword(Md5Utils.md5(managerDto.getPassword()))
+                .setRole(1)
+                .setCtime(new Date());
+        return R.ok(userService.save(user));
+    }
+
+    @DeleteMapping("/manager")
+    @ApiOperation("鍒犻櫎绠$悊")
+    public R removeManager(@RequestParam Integer id) {
+        return R.ok(userService.removeById(id));
+    }
+
+    @GetMapping("/manager")
+    @ApiOperation("鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�")
+    public R selectManager(Page<User> page, User user) {
+        return R.ok( userService.page(page, new QueryWrapper<User>()
+                .eq("role", 1)
+                .and( StringUtils.isNotBlank(user.getUserMobile()) && StringUtils.isNotBlank(user.getRealName()) ,new Consumer<QueryWrapper<User>>() {
+                    @Override
+                    public void accept(QueryWrapper<User> userQueryWrapper) {
+                        userQueryWrapper.like("real_name", user.getRealName()).or().like("user_mobile", user.getUserMobile());
+                    }
+                })
+                .like(StringUtils.isNotBlank(user.getUserMobile())&&StringUtils.isBlank(user.getRealName()), "user_mobile", user.getUserMobile())
+                .or()
+                .like(StringUtils.isNotBlank(user.getRealName())&&StringUtils.isBlank(user.getUserMobile()), "real_name", user.getRealName())
+                .orderByDesc("ctime")));
+    }
+
+    @PutMapping("/manager")
+    @ApiOperation("淇敼绠$悊鍛樺瘑鐮�")
+    public R modify(@RequestBody ManagerDto managerDto) {
+        User user = new User().setLoginPassword(Md5Utils.md5(managerDto.getPassword()));
+        return R.ok(userService.update(user, new UpdateWrapper<User>().eq("user_mobile", managerDto.getPhoneNumber()).eq("real_name", managerDto.getRealName())));
     }
 
     @PostMapping("/add")
diff --git a/src/main/java/com/example/jz/controller/WxAppController.java b/src/main/java/com/example/jz/controller/WxAppController.java
new file mode 100644
index 0000000..6415d2b
--- /dev/null
+++ b/src/main/java/com/example/jz/controller/WxAppController.java
@@ -0,0 +1,400 @@
+package com.example.jz.controller;
+
+
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.example.jz.auth.TokenJwtManager;
+import com.example.jz.dao.UserDao;
+import com.example.jz.modle.R;
+import com.example.jz.modle.entity.*;
+import com.example.jz.modle.vo.CauseVo;
+import com.example.jz.modle.vo.MemberVo;
+import com.example.jz.service.*;
+import com.example.jz.utils.HttpUtil;
+import lombok.SneakyThrows;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+@RestController
+@RequestMapping("/wx")
+public class WxAppController {
+
+    private final String wxApp_userCode_verify_url = "https://api.weixin.qq.com/sns/jscode2session";
+
+    private final String wxApp_phoneNumber_verify_url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber";
+
+    private final String wxApp_accessToken_verify_url = "https://api.weixin.qq.com/cgi-bin/token";
+
+    private final String appid = "wxebbb232d366dae09";
+
+    private final String secret = "9a160c97c821eaa163240e8ec9185b77";
+
+    private final String js_code = "";
+
+    private final String grant_type = "authorization_code";
+
+    @Autowired
+    UserDao userDao;
+    @Autowired
+    UserService userService;
+    @Autowired
+    TokenJwtManager tokenJwtManager;
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Autowired
+    ReportService reportService;
+    @Autowired
+    CauseService causeService;
+    @Autowired
+    GroupService groupService;
+    @Autowired
+    MessageService messageService;
+    @Autowired
+    GroupUserService groupUserService;
+
+    @GetMapping("/login")
+    @SneakyThrows
+    public R login(@RequestParam String code, @RequestParam String phoneNumberCode) {
+        //灏忕▼搴忕櫥褰昽penid
+        Map<String, Object> pathUrl = new HashMap<>();
+        pathUrl.put("appid", appid);
+        pathUrl.put("secret", secret);
+        pathUrl.put("js_code", code);
+        pathUrl.put("grant_type", grant_type);
+        JSONObject result = JSONUtil.parseObj(HttpUtil.doGet(wxApp_userCode_verify_url, pathUrl));
+
+        //鎵嬫満鍙风爜鐨刟ccess token
+        Map<String, Object> accessToken = new HashMap<>();
+        accessToken.put("appid", appid);
+        accessToken.put("secret", secret);
+        accessToken.put("grant_type", "client_credential");
+        JSONObject accessTokenResult = JSONUtil.parseObj(HttpUtil.doGet(wxApp_accessToken_verify_url, accessToken));
+
+        //鐢佃瘽鍙风爜
+        String url = wxApp_phoneNumber_verify_url + "?access_token=" + accessTokenResult.get("access_token");
+        Map<String, Object> phoneNumber = new HashMap<>();
+        phoneNumber.put("code", phoneNumberCode);
+
+        HttpHeaders headers = new HttpHeaders();
+        HttpEntity httpEntity = new HttpEntity<>(phoneNumber, headers);
+        System.out.println(httpEntity);
+        ResponseEntity response = restTemplate.postForEntity(url, httpEntity, Object.class);
+        response.getBody();
+        JSONObject entries = JSONUtil.parseObj(response.getBody());
+        PhoneInFo phone_info = entries.get("phone_info", PhoneInFo.class);
+        User user = userDao.selectOne(new QueryWrapper<User>().eq("user_mobile", phone_info.getPurePhoneNumber()));
+        String token;
+        Integer role;
+        Integer id = null;
+        if (user == null || user.getId() == null) {
+            User newUser = new User();
+            newUser.setUserMobile(phone_info.getPurePhoneNumber());
+            newUser.setUserRegtime(new Date());
+            newUser.setOpenid(result.get("openid").toString());
+            newUser.setStatus(1);
+            newUser.setRole(0);
+            newUser.setCtime(new Date());
+            userService.save(newUser);
+            token = tokenJwtManager.createToken(newUser);
+            role = 0;
+            id = newUser.getId();
+        } else {
+            user.setOpenid(result.get("openid").toString());
+            user.setUserLasttime(new Date());
+            userDao.updateById(user);
+            token = tokenJwtManager.createToken(user);
+            role = user.getRole();
+            id = user.getId();
+        }
+        HashMap<String, Object> loginMessage = new HashMap<>();
+        loginMessage.put("id", id);
+        loginMessage.put("token", token);
+        loginMessage.put("role", role);
+        return R.ok(loginMessage);
+    }
+
+    @GetMapping("/manager/myself")
+    public R getReport(Integer id) {
+        HashMap<String, Object> myselfMessage = new HashMap<>();
+        User user = userService.getOne(new QueryWrapper<User>().eq("id", id));
+        int causeNum = causeService.count(new QueryWrapper<Cause>().eq("user_id", id));
+        Integer reporterNum = causeService.list(new QueryWrapper<Cause>().eq("user_id", id)).stream().mapToInt(item -> reportService.count(new QueryWrapper<Report>().eq("cause_id", item.getId()))).sum();
+        myselfMessage.put("name", user.getRealName());
+        myselfMessage.put("phoneNum", user.getUserMobile());
+        myselfMessage.put("causeNum", causeNum);
+        myselfMessage.put("reporterNum", reporterNum);
+        return R.ok(myselfMessage);
+    }
+
+    @GetMapping("/user/myself")
+    public R getMyself(Integer id) {
+        return R.ok(userService.getOne(new QueryWrapper<User>().eq("id", id)));
+    }
+
+    @GetMapping("/user/cause")
+    public R getCause(Integer id) {
+        return R.ok(reportService.list(new QueryWrapper<Report>().eq("user_id", id)));
+    }
+
+    @PostMapping("/user/addReport")
+    public R addReport(@RequestBody Report report) {
+        User user = userService.getOne(new QueryWrapper<User>().eq("id", report.getUserId()));
+        report.setPic(user.getPic());
+        report.setIsInGroup(0);
+        report.setCtime(new Date());
+        report.setStatus(0);
+        report.setReportMethod("鐜板満褰曞叆");
+        return R.ok(reportService.save(report));
+    }
+
+    @PostMapping("/user/add")
+    public R addUser(@RequestBody User user) {
+        user.setUserLasttime(new Date());
+        return R.ok(userService.updateById(user));
+    }
+
+    @GetMapping("/manager/group/list")
+    public R getMessage(@RequestParam Integer id, @RequestParam String newDate, @RequestParam String lastDate) {
+        ArrayList<Map<String, Object>> list = new ArrayList<>();
+//        List<GroupUser> groupUsers = groupUserService.list(new QueryWrapper<GroupUser>().eq("user_id", id));
+        List<Group> groupUsers = groupService.list(new QueryWrapper<Group>().eq("user_id", id));
+        if (groupUsers != null && groupUsers.size() != 0) {
+            groupUsers.forEach(item -> {
+                HashMap<String, Object> groupMap = new HashMap<>();
+                List<Message> message = messageService.list(new QueryWrapper<Message>().eq("group_id", item.getId()).isNotNull("user_id").orderByDesc("ctime"));
+                groupMap.put("groupName", item.getGroupName());
+                if (message != null && message.size() != 0) {
+                    groupMap.put("message", message.get(0).getText());
+                    groupMap.put("name", message.get(0).getReportName());
+                    groupMap.put("time", message.get(0).getCtime());
+                }
+                if (StringUtils.isNotBlank(lastDate)) {
+                    int count = messageService.count(new QueryWrapper<Message>().eq("group_id", item.getId()).between("ctime", lastDate, newDate));
+                    groupMap.put("count", count);
+                }
+                groupMap.put("id", item.getId());
+                list.add(groupMap);
+            });
+        }
+        return R.ok(list);
+    }
+
+
+    @GetMapping("/user/group/list")
+    public R getUserMessage(@RequestParam Integer id, @RequestParam String newDate, @RequestParam String lastDate) {
+        ArrayList<Map<String, Object>> list = new ArrayList<>();
+        reportService.list((new QueryWrapper<Report>().eq("user_id", id)))
+                .forEach(item ->
+                        {
+                            GroupUser groupUser = groupUserService.getOne(new QueryWrapper<GroupUser>().eq("user_id", item.getId()));
+                            if (groupUser != null) {
+                                HashMap<String, Object> groupMap = new HashMap<>();
+                                List<Message> message = messageService.list(new QueryWrapper<Message>().eq("group_id", groupUser.getGroupId()).orderByDesc("ctime"));
+                                if (message != null && message.size() != 0) {
+                                    groupMap.put("message", message.get(0).getText());
+                                    groupMap.put("time", message.get(0).getCtime());
+                                }
+                                Group group = groupService.getOne(new QueryWrapper<Group>().eq("id", groupUser.getGroupId()));
+                                groupMap.put("groupName", group.getGroupName());
+                                groupMap.put("id", group.getId());
+                                groupMap.put("ban", groupUser.getBanSpeech());
+                                groupMap.put("reportId", groupUser.getUserId());
+                                if (StringUtils.isNotBlank(lastDate)) {
+                                    int count = messageService.count(new QueryWrapper<Message>().eq("group_id", groupUser.getGroupId()).between("ctime", lastDate, newDate));
+                                    groupMap.put("count", count);
+                                }
+                                list.add(groupMap);
+                            }
+                        }
+                );
+
+        return R.ok(list);
+    }
+
+    @GetMapping("/message")
+    public R getMessage(@RequestParam Integer groupId) {
+        ArrayList<HashMap<String, Object>> message = new ArrayList<>();
+        messageService.list(new QueryWrapper<Message>().eq("group_id", groupId).orderByAsc("ctime")).stream()
+                .forEach(item -> {
+                    HashMap<String, Object> messageMap = new HashMap<>();
+                    messageMap.put("text", item.getText());
+                    messageMap.put("time", item.getCtime());
+                    if (item.getUserId() != null) {
+                        Report report = reportService.getOne(new QueryWrapper<Report>().eq("id", item.getUserId()));
+                        User user = userService.getOne(new QueryWrapper<User>().eq("id", report.getUserId()));
+                        messageMap.put("id", user.getId());
+                        messageMap.put("name", item.getReportName());
+                        messageMap.put("mobile", user.getUserMobile());
+                        messageMap.put("pic", user.getPic());
+                        messageMap.put("role", 0);
+                    } else {
+                        messageMap.put("id", item.getCopId());
+                        User user = userService.getOne(new QueryWrapper<User>().eq("id", item.getCopId()));
+                        messageMap.put("name", user.getRealName());
+                        messageMap.put("mobile", user.getUserMobile());
+                        messageMap.put("role", 1);
+                    }
+                    message.add(messageMap);
+                });
+        return R.ok(message);
+    }
+
+    @GetMapping("/group/cause")
+    public R getGroupCause(@RequestParam Integer id) {
+        Integer causeId = groupService.getOne(new QueryWrapper<Group>().eq("id", id)).getCauseId();
+        Cause cause = causeService.getOne(new QueryWrapper<Cause>().eq("id", causeId));
+        CauseVo causeVo = new CauseVo();
+        BeanUtils.copyProperties(cause, causeVo);
+        User user = userService.getOne(new QueryWrapper<User>().eq("id", cause.getUserId()));
+        causeVo.setUserName(user.getRealName());
+        causeVo.setMobile(user.getUserMobile());
+        causeVo.setReportNumber(reportService.count(new QueryWrapper<Report>().eq("cause_id", causeId)));
+        return R.ok(causeVo);
+    }
+
+    @GetMapping("/group/member")
+    public R getGroupMember(@RequestParam Integer id) {
+        Map<String, Object> map = new HashMap<>();
+        List<GroupUser> groupUserList = groupUserService.list(new QueryWrapper<GroupUser>().eq("group_id", id));
+        List<MemberVo> memberVoList = groupUserList.stream()
+                .map(item -> {
+                    Report report = reportService.getOne(new QueryWrapper<Report>().eq("id", item.getUserId()));
+                    User user = userService.getOne(new QueryWrapper<User>().eq("id", report.getUserId()));
+                    MemberVo memberVo = new MemberVo();
+                    memberVo.setRealName(user.getRealName());
+                    memberVo.setPic(user.getPic());
+                    memberVo.setId(item.getUserId());
+                    memberVo.setBanSpeech(item.getBanSpeech());
+                    return memberVo;
+                }).collect(Collectors.toList());
+        List<Group> groupList = groupService.list(new QueryWrapper<Group>().eq("id", id));
+        List<MemberVo> managerMemberVoList = groupList.stream().map(item -> {
+                    User user = userService.getOne(new QueryWrapper<User>().eq("id", item.getUserId()));
+                    MemberVo memberVo = new MemberVo();
+                    memberVo.setRealName(user.getRealName());
+                    memberVo.setPic(user.getPic());
+                    memberVo.setId(item.getUserId());
+                    return memberVo;
+                }
+        ).collect(Collectors.toList());
+        map.put("managerMemberList", managerMemberVoList);
+        map.put("managerMemberCount", managerMemberVoList.size());
+        map.put("memberList", memberVoList);
+        map.put("memberCount", memberVoList.size());
+        return R.ok(map);
+    }
+
+    @GetMapping("/group/member/find")
+    public R getGroupMemberByName(@RequestParam(required = false) String name, @RequestParam Integer id) {
+        Map<String, Object> map = new HashMap<>();
+        List<GroupUser> groupUserList = groupUserService.list(new QueryWrapper<GroupUser>().eq("group_id", id));
+        List<MemberVo> memberVoList = groupUserList.stream()
+                .filter(item ->
+                        StringUtils
+                                .matches(userService.getOne(new QueryWrapper<User>()
+                                        .eq("id", reportService.getOne(new QueryWrapper<Report>()
+                                                .eq("id", item.getUserId())).getUserId())).getRealName(), name))
+                .map(item -> {
+                    Report report = reportService.getOne(new QueryWrapper<Report>().eq("id", item.getUserId()));
+                    User user = userService.getOne(new QueryWrapper<User>().eq("id", report.getUserId()));
+                    MemberVo memberVo = new MemberVo();
+                    memberVo.setRealName(user.getRealName());
+                    memberVo.setPic(user.getPic());
+                    memberVo.setId(item.getUserId());
+                    memberVo.setBanSpeech(item.getBanSpeech());
+                    return memberVo;
+                }).collect(Collectors.toList());
+        map.put("memberList", memberVoList);
+        map.put("memberCount", memberVoList.size());
+        return R.ok(map);
+    }
+
+    @GetMapping("/group/member/banSpeech")
+    public R banSpeech(@RequestParam Integer id, @RequestParam Integer groupId) {
+        return R.ok(groupUserService.update(new UpdateWrapper<GroupUser>().set("ban_speech", 1).eq("user_id", id).eq("group_id", groupId)));
+    }
+
+    @GetMapping("/group/member/allBanSpeech")
+    public R allBanSpeech(@RequestParam Integer id) {
+        return R.ok(groupUserService.update(new UpdateWrapper<GroupUser>().set("ban_speech", 1).eq("group_id", id)));
+    }
+
+    @GetMapping("/group/member/allowSpeech")
+    public R allowSpeech(@RequestParam Integer id, @RequestParam Integer groupId) {
+        return R.ok(groupUserService.update(new UpdateWrapper<GroupUser>().set("ban_speech", 0).eq("user_id", id).eq("group_id", groupId)));
+    }
+
+    @GetMapping("/group/member/allAllowSpeech")
+    public R allAllowSpeech(@RequestParam Integer id) {
+        return R.ok(groupUserService.update(new UpdateWrapper<GroupUser>().set("ban_speech", 0).eq("group_id", id)));
+    }
+
+    @GetMapping("/group/records/keyword")
+    public R getRecords(@RequestParam String keyWord, @RequestParam Integer groupId) {
+        return R.ok(messageService.list(new QueryWrapper<Message>().eq("group_id", groupId).like(StringUtils.isNotBlank(keyWord), "text", keyWord).isNotNull("user_id"))
+                .stream().map(item -> {
+                    Report report = reportService.getOne(new QueryWrapper<Report>().eq("id", item.getUserId()));
+                    String pic = report.getPic();
+                    if (StringUtils.isBlank(pic)) {
+                        pic = userService.getOne(new QueryWrapper<User>().eq("id", report.getUserId())).getPic();
+                    }
+                    MemberVo memberVo = new MemberVo();
+                    memberVo.setCtime(item.getCtime());
+                    memberVo.setText(item.getText());
+                    memberVo.setPic(pic);
+                    memberVo.setRealName(item.getReportName());
+                    return memberVo;
+                }).collect(Collectors.toList()));
+    }
+
+    @GetMapping("/group/records/member")
+    public R getRecords(@RequestParam Integer id, @RequestParam Integer groupId) {
+        return R.ok(messageService.list(new QueryWrapper<Message>().eq("group_id", groupId).eq("user_id", id))
+                .stream().map(item -> {
+                    Report report = reportService.getOne(new QueryWrapper<Report>().eq("id", item.getUserId()));
+                    String pic = report.getPic();
+                    if (StringUtils.isBlank(pic)) {
+                        pic = userService.getOne(new QueryWrapper<User>().eq("id", report.getUserId())).getPic();
+                    }
+                    MemberVo memberVo = new MemberVo();
+                    memberVo.setCtime(item.getCtime());
+                    memberVo.setText(item.getText());
+                    memberVo.setPic(pic);
+                    memberVo.setRealName(item.getReportName());
+                    return memberVo;
+                }).collect(Collectors.toList()));
+    }
+
+    @GetMapping("/group/manager/sendMsg")
+    public R sendMsg(@RequestParam Integer id, @RequestParam Integer groupId, @RequestParam String msg) {
+        Message message = new Message();
+        message.setCopId(id);
+        message.setText(msg);
+        message.setCtime(new Date());
+        message.setGroupId(groupId);
+        return R.ok(messageService.save(message));
+    }
+
+    @GetMapping("/group/user/sendMsg")
+    public R sendUserMsg(@RequestParam Integer id, @RequestParam Integer groupId, @RequestParam String msg) {
+        Message message = new Message();
+        message.setUserId(id);
+        message.setText(msg);
+        message.setCtime(new Date());
+        message.setGroupId(groupId);
+        message.setReportName(userService.getOne(new QueryWrapper<User>().eq("id", reportService.getOne(new QueryWrapper<Report>().eq("id", id)).getUserId())).getRealName());
+        return R.ok(messageService.save(message));
+    }
+}
diff --git a/src/main/java/com/example/jz/modle/dto/CauseDto.java b/src/main/java/com/example/jz/modle/dto/CauseDto.java
index 0c95d1f..ed2cd8b 100644
--- a/src/main/java/com/example/jz/modle/dto/CauseDto.java
+++ b/src/main/java/com/example/jz/modle/dto/CauseDto.java
@@ -40,4 +40,8 @@
     @ApiModelProperty(dataType = "Integer", value = "妗堜欢鐘舵��")
     @NotNull(message = "妗堜欢鐘舵��")
     private Integer status;
+
+    @ApiModelProperty(dataType = "String", value = "閲戦挶")
+    @NotBlank(message = "棰勪及鎬婚噾棰濅笉鑳戒负绌�")
+    private String totalMoney;
 }
diff --git a/src/main/java/com/example/jz/modle/dto/ManagerDto.java b/src/main/java/com/example/jz/modle/dto/ManagerDto.java
new file mode 100644
index 0000000..7686938
--- /dev/null
+++ b/src/main/java/com/example/jz/modle/dto/ManagerDto.java
@@ -0,0 +1,13 @@
+package com.example.jz.modle.dto;
+
+import lombok.Data;
+
+@Data
+public class ManagerDto {
+
+    private String realName;
+
+    private String password;
+
+    private String phoneNumber;
+}
diff --git a/src/main/java/com/example/jz/modle/entity/Cause.java b/src/main/java/com/example/jz/modle/entity/Cause.java
index a0d9934..f9922f6 100644
--- a/src/main/java/com/example/jz/modle/entity/Cause.java
+++ b/src/main/java/com/example/jz/modle/entity/Cause.java
@@ -31,6 +31,7 @@
     //妗堜欢鎻忚堪
     private String description;
 
+    private String totalMoney;
 
     public Integer getId() {
         return id;
@@ -89,6 +90,14 @@
         this.description = description;
     }
 
+    public String getTotalMoney() {
+        return totalMoney;
+    }
+
+    public void setTotalMoney(String totalMoney) {
+        this.totalMoney = totalMoney;
+    }
+
     /**
      * 鑾峰彇涓婚敭鍊�
      *
diff --git a/src/main/java/com/example/jz/modle/entity/GroupUser.java b/src/main/java/com/example/jz/modle/entity/GroupUser.java
index 29f829b..62efb4f 100644
--- a/src/main/java/com/example/jz/modle/entity/GroupUser.java
+++ b/src/main/java/com/example/jz/modle/entity/GroupUser.java
@@ -35,10 +35,15 @@
     /**
      * 鏄惁绂佽█(0涓哄惁1涓烘槸锛�
      */
-    private Object banSpeech;
+    private Integer banSpeech;
     /**
      * 鍒涘缓鏃堕棿
      */
     private Date ctime;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date ltime;
+
 }
 
diff --git a/src/main/java/com/example/jz/modle/entity/PhoneInFo.java b/src/main/java/com/example/jz/modle/entity/PhoneInFo.java
new file mode 100644
index 0000000..21caa69
--- /dev/null
+++ b/src/main/java/com/example/jz/modle/entity/PhoneInFo.java
@@ -0,0 +1,9 @@
+package com.example.jz.modle.entity;
+
+import lombok.Data;
+
+@Data
+public class PhoneInFo {
+    private String phoneNumber;
+    private String purePhoneNumber;
+}
diff --git a/src/main/java/com/example/jz/modle/entity/User.java b/src/main/java/com/example/jz/modle/entity/User.java
index d04b868..b2b7109 100644
--- a/src/main/java/com/example/jz/modle/entity/User.java
+++ b/src/main/java/com/example/jz/modle/entity/User.java
@@ -86,5 +86,7 @@
     private Integer role;
 
     private Date ctime;
+
+    private String openid;
 }
 
diff --git a/src/main/java/com/example/jz/modle/vo/CauseVo.java b/src/main/java/com/example/jz/modle/vo/CauseVo.java
index d27fbc6..c32ad96 100644
--- a/src/main/java/com/example/jz/modle/vo/CauseVo.java
+++ b/src/main/java/com/example/jz/modle/vo/CauseVo.java
@@ -43,6 +43,10 @@
     @ApiModelProperty(dataType = "String", value = "妗堜欢鎻忚堪")
     private String description;
 
+    //妗堜欢鎻忚堪
+    @ApiModelProperty(dataType = "String", value = "妗堜欢鎻忚堪")
+    private String totalMoney;
+
     //妗堜欢鎶ユ浜烘暟
     @ApiModelProperty(dataType = "Integer", value = "妗堜欢鎶ユ浜烘暟")
     private Integer reportNumber;
@@ -50,4 +54,7 @@
     //妗堜欢缇や富id
     @ApiModelProperty(dataType = "Integer", value = "妗堜欢缇や富id")
     private Integer groupId;
+
+    @ApiModelProperty(dataType = "String", value = "mobile")
+    private String mobile;
 }
diff --git a/src/main/java/com/example/jz/modle/vo/MemberVo.java b/src/main/java/com/example/jz/modle/vo/MemberVo.java
new file mode 100644
index 0000000..17b7154
--- /dev/null
+++ b/src/main/java/com/example/jz/modle/vo/MemberVo.java
@@ -0,0 +1,15 @@
+package com.example.jz.modle.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class MemberVo {
+    private String realName;
+    private String pic;
+    private Integer id;
+    private Integer banSpeech;
+    private String text;
+    private Date ctime;
+}
diff --git a/src/main/java/com/example/jz/modle/vo/PublicityVo.java b/src/main/java/com/example/jz/modle/vo/PublicityVo.java
index 87b3326..192953e 100644
--- a/src/main/java/com/example/jz/modle/vo/PublicityVo.java
+++ b/src/main/java/com/example/jz/modle/vo/PublicityVo.java
@@ -23,6 +23,9 @@
     @ApiModelProperty(dataType = "String", value = "鍒涘缓浜�")
     private String userName;
 
+    @ApiModelProperty(dataType = "String", value = "鏂囨湰")
+    private String text;
+
     //鏈�鏃╂妗堝彂鏃堕棿
     @ApiModelProperty(dataType = "Date", value = "鍙戝竷鏃堕棿")
     private Date releaseTime;
diff --git a/src/main/java/com/example/jz/service/CauseService.java b/src/main/java/com/example/jz/service/CauseService.java
index 167d5a2..8f3ca06 100644
--- a/src/main/java/com/example/jz/service/CauseService.java
+++ b/src/main/java/com/example/jz/service/CauseService.java
@@ -84,5 +84,7 @@
     List<Map<String,String>> getCauseIdAndName();
 
     void loadFileReport(MultipartFile multipartFile,Integer causeId);
+
+    PageParam<CauseVo> getCauserListByCondition(String cause, Integer status, Integer size, Integer current, Integer id);
 }
 
diff --git a/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java b/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java
index ac5649a..63ecf0f 100644
--- a/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java
+++ b/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java
@@ -115,6 +115,42 @@
     }
 
     @Override
+    public PageParam<CauseVo> getCauserListByCondition(String cause, Integer status, Integer size, Integer current,Integer id) {
+        QueryWrapper<Cause> causeQueryWrapper = new QueryWrapper<>();
+        if (StringUtils.isNotBlank(cause)) {
+            causeQueryWrapper.and(a -> a.like(StringUtils.isNotBlank(cause), "number", cause)
+                    .or(StringUtils.isNotBlank(cause))
+                    .like(StringUtils.isNotBlank(cause), "name", cause));
+        }
+        if (status != null) {
+            causeQueryWrapper.eq("status", status);
+        }
+        causeQueryWrapper.eq("user_id",id);
+        causeQueryWrapper.orderByDesc("ctime");
+        PageParam<Cause> causePageParam = new PageParam<>();
+        if (size != null) {
+            causePageParam.setSize(size);
+        }
+        if (current != null) {
+            causePageParam.setCurrent(current);
+        }
+        PageParam<Cause> causePage = causeDao.selectPage(causePageParam, causeQueryWrapper);
+        List<CauseVo> causeVos = causePage.getRecords().stream().map(
+                a -> {
+                    CauseVo causeVo = new CauseVo();
+                    BeanUtils.copyProperties(a, causeVo);
+                    causeVo.setUserName(userDao.selectOne(new QueryWrapper<User>().eq("id", a.getUserId())).getRealName());
+                    causeVo.setReportNumber(reportDao.selectCount(new QueryWrapper<Report>().eq("cause_id", a.getId())));
+                    causeVo.setGroupId(groupDao.selectOne(new QueryWrapper<Group>().eq("cause_id", a.getId())).getId());
+                    return causeVo;
+                }).collect(Collectors.toList());
+        PageParam<CauseVo> causeVoPageParam = new PageParam<>();
+        BeanUtils.copyProperties(causePage, causeVoPageParam);
+        causeVoPageParam.setRecords(causeVos);
+        return causeVoPageParam;
+    }
+
+    @Override
     public List<UserVo> getManagerList() {
         return userDao.selectList(new QueryWrapper<User>().eq("role", 1)).stream().map(a -> {
             UserVo userVo = new UserVo();
@@ -252,7 +288,7 @@
                 .setUserId(user.getId())
                 .setCtime(new Date())
                 .setStatus(0)
-                .setReportMethod("鐜板満褰曞叆")
+                .setReportMethod("鍚庡彴褰曞叆")
                 .setIsCommission("0").setReportTime(new Date())
                 .setCauseId(addReportDto.getCauseId());
         reportService.save(report);
diff --git a/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java b/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
index 659c1f2..6842e8c 100644
--- a/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
+++ b/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
@@ -206,7 +206,7 @@
                 .setCtime(new Date())
                 .setStatus(0)
                 .setIsInGroup(0)
-                .setReportMethod("鐜板満褰曞叆")
+                .setReportMethod("鍚庡彴褰曞叆")
                 .setIsCommission("0").setReportTime(new Date())
                 .setCauseId(addReportDto.getCauseId());
         return reportService.save(report);
diff --git a/src/main/java/com/example/jz/utils/HttpUtil.java b/src/main/java/com/example/jz/utils/HttpUtil.java
new file mode 100644
index 0000000..e46a6e3
--- /dev/null
+++ b/src/main/java/com/example/jz/utils/HttpUtil.java
@@ -0,0 +1,103 @@
+package com.example.jz.utils;
+
+import org.apache.http.*;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+
+public class HttpUtil {
+
+    private static final CloseableHttpClient httpclient = HttpClients.createDefault();
+
+    public static String doGet(String urlPath, Map<String, Object> params)
+            throws Exception {
+        StringBuilder sb = new StringBuilder(urlPath);
+        if (params != null && !params.isEmpty()) { // 璇存槑鏈夊弬鏁�
+            sb.append("?");
+
+            Set<Entry<String, Object>> set = params.entrySet();
+            for (Entry<String, Object> entry : set) { // 閬嶅巻map閲岄潰鐨勫弬鏁�
+                String key = entry.getKey();
+                String value = "";
+                if (null != entry.getValue()) {
+                    value = entry.getValue().toString();
+                    // 杞爜
+                    value = URLEncoder.encode(value, "UTF-8");
+                }
+                sb.append(key).append("=").append(value).append("&");
+            }
+
+            sb.deleteCharAt(sb.length() - 1); // 鍒犻櫎鏈�鍚庝竴涓�&
+        }
+        // System.out.println(sb.toString());
+
+        URL url = new URL(sb.toString());
+        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+        conn.setConnectTimeout(5000); // 5s瓒呮椂
+        conn.setRequestMethod("GET");
+
+        if (conn.getResponseCode() == HttpStatus.SC_OK) {// HttpStatus.SC_OK ==
+            // 200
+            BufferedReader reader = new BufferedReader(new InputStreamReader(
+                    conn.getInputStream()));
+            StringBuilder sbs = new StringBuilder();
+            String line;
+            while ((line = reader.readLine()) != null) {
+                sbs.append(line);
+            }
+            // JSONObject jsonObject = new JSONObject(sbs.toString());
+            return sbs.toString();
+        }
+
+        return null;
+    }
+
+
+    /**
+     * 鍙戦�丠ttpPost璇锋眰锛屽弬鏁颁负map
+     * @param url
+     * @param map
+     * @return
+     */
+    public static String sendPost(String url, Map<String, Object> map) {
+        List<NameValuePair> formparams = new ArrayList<NameValuePair>();
+        for (Entry<String, Object> entry : map.entrySet()) {
+            formparams.add(new BasicNameValuePair(entry.getKey(), entry.getValue().toString()));
+        }
+        UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);
+        HttpPost httppost = new HttpPost(url);
+        httppost.setEntity(entity);
+        CloseableHttpResponse response = null;
+        try {
+            response = httpclient.execute(httppost);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        HttpEntity entity1 = response.getEntity();
+        String result = null;
+        try {
+            result = EntityUtils.toString(entity1);
+        } catch (ParseException | IOException e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+}
+
diff --git a/src/main/resources/mapper/ReportDao.xml b/src/main/resources/mapper/ReportDao.xml
index a11e47b..d83adb9 100644
--- a/src/main/resources/mapper/ReportDao.xml
+++ b/src/main/resources/mapper/ReportDao.xml
@@ -25,6 +25,7 @@
             <if test="reportParamDto.isInGroup != null">
                 and r.is_in_group = ${reportParamDto.isInGroup}
             </if>
+        and  r.status = 0
         </where>
         order by  r.ctime DESC
     </select>

--
Gitblit v1.8.0