pom.xml
@@ -94,6 +94,10 @@ <version>1.9.6</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>3.0.5</version> src/main/java/com/example/jz/aop/InterfaceLogHandler.java
New file @@ -0,0 +1,29 @@ package com.example.jz.aop; import lombok.extern.log4j.Log4j2; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; @Aspect @Component @Log4j2 public class InterfaceLogHandler { @Pointcut("execution(* com.example.jz.controller.*.*(..))") public void pointcut(){}; @Before("pointcut()") public void log(JoinPoint joinPoint){ ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); log.info("访问接口:{}",request.getRequestURI()); } } 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("/wx/login").permitAll() // 开放小程序的接口 .antMatchers("/wx/login","/wx/isExist","/wx/checkIdentity","/wx/publicity","/minio/upload", "/minio/img/**").permitAll() // 开放小程序的接口 .anyRequest().authenticated() // 任何请求都需要认证 .and() .logout() // logout设定 src/main/java/com/example/jz/controller/CauseController.java
@@ -6,13 +6,19 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.api.ApiController; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.example.jz.dao.GroupDao; import com.example.jz.dao.GroupUserDao; import com.example.jz.dao.MessageDao; import com.example.jz.dao.ReportDao; import com.example.jz.modle.R; import com.example.jz.modle.dto.AddReportDto; import com.example.jz.modle.dto.CauseDto; import com.example.jz.modle.dto.ReportParamDto; import com.example.jz.modle.entity.Cause; import com.example.jz.modle.entity.GroupUser; import com.example.jz.modle.vo.ReportListVo; import com.example.jz.service.CauseService; import com.example.jz.service.GroupService; import com.example.jz.service.ReportService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; src/main/java/com/example/jz/controller/ReportController.java
@@ -30,6 +30,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.Serializable; import java.util.Map; /** * 报案表(Report)表控制层 @@ -102,6 +103,12 @@ return R.ok(reportService.audit(report)); } @PostMapping("/reject") @ApiOperation(value = "驳回") public R<Boolean> reject(@RequestBody Map map) { return R.ok(reportService.reject((Integer) map.get("id"), (String) map.get("reason"))); } @ApiOperation(httpMethod = "PUT", value = "案件台-报案人员-编辑") @PutMapping("/updateReport") @ApiResponse(message = "执行成功", code = 200) src/main/java/com/example/jz/controller/WxAppController.java
@@ -11,9 +11,7 @@ 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.modle.vo.ReportVo; import com.example.jz.modle.vo.*; import com.example.jz.service.*; import com.example.jz.utils.HttpUtil; import lombok.SneakyThrows; @@ -27,6 +25,7 @@ import org.springframework.web.client.RestTemplate; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @RestController @@ -71,9 +70,8 @@ @Autowired PublicityService publicityService; @GetMapping("/login") @SneakyThrows public R login(@RequestParam String code, @RequestParam String phoneNumberCode) { @GetMapping("/checkIdentity") public R checkIdentity(@RequestParam String code, @RequestParam String phoneNumberCode) throws Exception { //小程序登录openid Map<String, Object> pathUrl = new HashMap<>(); pathUrl.put("appid", appid); @@ -102,14 +100,92 @@ 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())); if(Objects.isNull(user)){ return R.ok(2, phone_info.getPurePhoneNumber()); }else { if (user.getRole() == 1){ return R.ok(1, phone_info.getPurePhoneNumber()); } else { return R.ok(0, phone_info.getPurePhoneNumber()); } } } // @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(); // } // User user1 = userDao.selectOne(new QueryWrapper<User>().eq("user_mobile", phone_info.getPurePhoneNumber())); // HashMap<String, Object> loginMessage = new HashMap<>(); // loginMessage.put("id", id); // loginMessage.put("token", token); // loginMessage.put("role", role); // loginMessage.put("time", user1.getUserIdcard()); // return R.ok(loginMessage); // } @GetMapping("/login") @SneakyThrows public R login(@RequestParam String phone) { User user = userDao.selectOne(new QueryWrapper<User>().eq("user_mobile", phone)); String token; Integer role; Integer id = null; if (user == null || user.getId() == null) { User newUser = new User(); newUser.setUserMobile(phone_info.getPurePhoneNumber()); newUser.setUserMobile(phone); newUser.setUserRegtime(new Date()); newUser.setOpenid(result.get("openid").toString()); newUser.setOpenid(phone); newUser.setStatus(1); newUser.setRole(0); newUser.setCtime(new Date()); @@ -118,14 +194,13 @@ 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(); } User user1 = userDao.selectOne(new QueryWrapper<User>().eq("user_mobile", phone_info.getPurePhoneNumber())); User user1 = userDao.selectOne(new QueryWrapper<User>().eq("user_mobile", phone)); HashMap<String, Object> loginMessage = new HashMap<>(); loginMessage.put("id", id); loginMessage.put("token", token); @@ -154,12 +229,31 @@ @GetMapping("/user/cause") public R getCause(Integer id) { return R.ok(reportService.list(new QueryWrapper<Report>().eq("user_id", id))); List<Report> reports = reportService.list(new QueryWrapper<Report>().eq("user_id", id)); List<ReportVXVO> res = reports.stream() .map(item -> { ReportVXVO res1 = new ReportVXVO(); BeanUtils.copyProperties(item, res1); if (!Objects.isNull(causeService.getById(item.getCauseId()))){ res1.setReportDescription(causeService.getById(item.getCauseId()).getName()); } return res1; }).collect(Collectors.toList()); return R.ok(res); } @PostMapping("/user/addReport") public R addReport(@RequestBody Report report) { User user = userService.getOne(new QueryWrapper<User>().eq("id", report.getUserId())); public R addReport(@RequestBody ReportVXVO reportVXVO) { User user = userService.getOne(new QueryWrapper<User>().eq("id", reportVXVO.getUserId())); user.setRealName(reportVXVO.getRealName()); user.setUserIdcard(reportVXVO.getUserIdCard()); user.setLocation(reportVXVO.getLocation()); user.setSex(reportVXVO.getSex()); user.setWorkingLocation(reportVXVO.getWorkingLocation()); userService.update(user, new LambdaQueryWrapper<User>().eq(User::getId, user.getId())); Report report = new Report(); BeanUtils.copyProperties(reportVXVO, report); report.setAmountInvolved(reportVXVO.getAmountInvolved()); report.setPic(user.getPic()); report.setIsInGroup(0); report.setCtime(new Date()); @@ -193,6 +287,27 @@ }); } return R.ok(list); } @GetMapping("/isExist") public R isExist(@RequestParam String phone){ User one = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getUserMobile, phone)); if(Objects.isNull(one)){ return R.ok(false, "该手机号没有被注册"); }else { return R.ok(true, "该手机号已被注册"); } } /** * 显示用户信息 */ @GetMapping("/getGroupUserInfo") public R getGroupUserInfo(@RequestParam Integer id){ User one = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getId, id)); MessageUserInfoVO messageUserInfoVO = new MessageUserInfoVO(); BeanUtils.copyProperties(messageUserInfoVO, one); return R.ok(messageUserInfoVO); } private void getMessage(HashMap<String, Object> groupMap, List<Message> message) { @@ -250,6 +365,7 @@ messageMap.put("id", user.getId()); messageMap.put("name", item.getReportName()); messageMap.put("mobile", user.getUserMobile()); messageMap.put("idcard", user.getUserIdcard()); messageMap.put("pic", user.getPic()); messageMap.put("role", 0); } else { @@ -400,6 +516,8 @@ return R.ok(messageService.save(message)); } @GetMapping("/group/user/sendMsg") public R sendUserMsg(@RequestParam Integer id, @RequestParam Integer groupId, @RequestParam String msg) { if (StringUtils.isBlank(msg)) { src/main/java/com/example/jz/dao/ReportDao.java
@@ -29,5 +29,7 @@ Integer getPageByGroupIdCount(ReportParamDto reportParamDto, Integer causeId); List<Report> selectListGroup(Integer id); Report selectReportByReportId(Integer id); } src/main/java/com/example/jz/modle/entity/Report.java
@@ -39,7 +39,18 @@ //涉案金额 private Double amountInvolved; //报案材料图片地址 多个用,分隔 private String reportMaterials; // private String reportMaterials; // 身份证 private String idCardMaterials; // 合同 private String contractMaterials; // 交易 private String transactionMaterials; // 其他 private String elseMaterials; //报案时间 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date reportTime; @@ -63,6 +74,8 @@ private String reportDescription; //是否进群 private Integer isInGroup; //驳回原因 private String remarks; /** * 获取主键值 src/main/java/com/example/jz/modle/entity/User.java
@@ -88,5 +88,11 @@ private Date ctime; private String openid; private String location; private String workingLocation; private String sex; } src/main/java/com/example/jz/modle/vo/MessageUserInfoVO.java
New file @@ -0,0 +1,7 @@ package com.example.jz.modle.vo; public class MessageUserInfoVO { private String realName; private String userMobile; private String userIdcard; } src/main/java/com/example/jz/modle/vo/ReportListVo.java
@@ -23,4 +23,5 @@ @ApiModelProperty(value = "报案人身份证号",dataType = "String") //报案人身份证号 private String idcard; } src/main/java/com/example/jz/modle/vo/ReportVXVO.java
New file @@ -0,0 +1,19 @@ package com.example.jz.modle.vo; import com.example.jz.modle.entity.Report; import lombok.Data; @Data public class ReportVXVO extends Report { private String description; private String Location; // 现居地 private String sex; // 性别 private String workingLocation; // 工作单位 private String realName; // 姓名 private String userIdCard; // 身份证 } src/main/java/com/example/jz/service/ReportService.java
@@ -43,5 +43,7 @@ List<Report> listGroup(Integer id); void loadFileReport(MultipartFile multipartFile, Integer causeId); Boolean reject(Integer id, String reason); } src/main/java/com/example/jz/service/impl/CauseServiceImpl.java
@@ -171,6 +171,7 @@ cause.setId(id); groupDao.update(null, Wrappers.lambdaUpdate(Group.class) .set(Group::getGroupName, causeDto.getName()) .set(Group::getUserId, causeDto.getUserId()) .eq(Group::getCauseId, id)); return causeDao.updateById(cause); } @@ -209,6 +210,10 @@ @Override public void deleteCause(Integer id) { List<Report> reports = reportDao.selectList(new LambdaQueryWrapper<Report>().eq(Report::getCauseId, id)); for (Report report : reports) { reportDao.deleteById(report.getId()); } causeDao.deleteById(id); Group group = groupDao.selectOne(new LambdaQueryWrapper<Group>().eq(Group::getCauseId, id)); if (group != null) { src/main/java/com/example/jz/service/impl/MinIOServiceImpl.java
@@ -6,7 +6,6 @@ import com.example.jz.service.MinIOService; import io.minio.MinioClient; import io.minio.PutObjectOptions; import jdk.internal.org.objectweb.asm.tree.FieldInsnNode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
@@ -245,4 +245,16 @@ .autoCloseStream(true) .doReadAll(); } @Override @Transactional(rollbackFor = Exception.class) public Boolean reject(Integer id, String reason) { Report report = reportDao.selectReportByReportId(id); // 1. 更新报案表 report.setStatus(2); report.setIsInGroup(2); report.setRemarks(reason); reportDao.updateById(report); return true; } } src/main/resources/mapper/ReportDao.xml
@@ -25,7 +25,7 @@ <if test="reportParamDto.isInGroup != null"> and r.is_in_group = ${reportParamDto.isInGroup} </if> and r.status = 0 and (r.status = 0 or r.status = 2) </where> order by r.ctime DESC </select> @@ -101,5 +101,12 @@ GROUP BY t2.group_id </select> <select id="selectReportByReportId" resultType="com.example.jz.modle.entity.Report"> SELECT * FROM `report` WHERE id =#{id} </select> </mapper>