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> 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设定 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)); } } src/main/java/com/example/jz/auth/TokenLoginFilter.java
@@ -25,6 +25,7 @@ */ public class TokenLoginFilter extends UsernamePasswordAuthenticationFilter { private TokenJwtManager tokenJwtManager; private AuthenticationManager authenticationManager; src/main/java/com/example/jz/config/RestTemplateConfig.java
New file @@ -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; } } 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) 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") 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") src/main/java/com/example/jz/controller/WxAppController.java
New file @@ -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) { //小程序登录openid 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)); //手机号码的access 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)); } } 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; } src/main/java/com/example/jz/modle/dto/ManagerDto.java
New file @@ -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; } 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; } /** * 获取主键值 * 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; } src/main/java/com/example/jz/modle/entity/PhoneInFo.java
New file @@ -0,0 +1,9 @@ package com.example.jz.modle.entity; import lombok.Data; @Data public class PhoneInFo { private String phoneNumber; private String purePhoneNumber; } src/main/java/com/example/jz/modle/entity/User.java
@@ -86,5 +86,7 @@ private Integer role; private Date ctime; private String openid; } 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; } src/main/java/com/example/jz/modle/vo/MemberVo.java
New file @@ -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; } 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; 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); } 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); 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); src/main/java/com/example/jz/utils/HttpUtil.java
New file @@ -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; } /** * 发送HttpPost请求,参数为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; } } 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>