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