From 13c0e173eeaede98217ecca45f09c74a863f3175 Mon Sep 17 00:00:00 2001 From: baizonghao <1719256278@qq.com> Date: 星期二, 21 三月 2023 14:46:45 +0800 Subject: [PATCH] ok --- src/main/java/com/example/jz/service/impl/MinIOServiceImpl.java | 1 src/main/resources/mapper/ReportDao.xml | 9 + src/main/java/com/example/jz/dao/ReportDao.java | 2 src/main/java/com/example/jz/modle/entity/Report.java | 15 ++ src/main/java/com/example/jz/modle/entity/User.java | 6 + src/main/java/com/example/jz/controller/ReportController.java | 7 + src/main/java/com/example/jz/controller/CauseController.java | 6 + src/main/java/com/example/jz/controller/WxAppController.java | 144 ++++++++++++++++++++++++++-- src/main/java/com/example/jz/service/impl/CauseServiceImpl.java | 5 + src/main/java/com/example/jz/aop/InterfaceLogHandler.java | 29 +++++ src/main/java/com/example/jz/modle/vo/ReportListVo.java | 1 pom.xml | 4 src/main/java/com/example/jz/modle/vo/MessageUserInfoVO.java | 7 + src/main/java/com/example/jz/auth/MyTokenSecurityConfig.java | 2 src/main/java/com/example/jz/service/ReportService.java | 2 src/main/java/com/example/jz/modle/vo/ReportVXVO.java | 19 +++ src/main/java/com/example/jz/service/impl/ReportServiceImpl.java | 12 ++ 17 files changed, 254 insertions(+), 17 deletions(-) diff --git a/pom.xml b/pom.xml index 94c8a10..9c9a115 100644 --- a/pom.xml +++ b/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> diff --git a/src/main/java/com/example/jz/aop/InterfaceLogHandler.java b/src/main/java/com/example/jz/aop/InterfaceLogHandler.java new file mode 100644 index 0000000..ba4b58b --- /dev/null +++ b/src/main/java/com/example/jz/aop/InterfaceLogHandler.java @@ -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()); + } + +} diff --git a/src/main/java/com/example/jz/auth/MyTokenSecurityConfig.java b/src/main/java/com/example/jz/auth/MyTokenSecurityConfig.java index 0df8a6c..3b71339 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("/wx/login").permitAll() // 寮�鏀惧皬绋嬪簭鐨勬帴鍙� + .antMatchers("/wx/login","/wx/isExist","/wx/checkIdentity","/wx/publicity","/minio/upload", "/minio/img/**").permitAll() // 寮�鏀惧皬绋嬪簭鐨勬帴鍙� .anyRequest().authenticated() // 浠讳綍璇锋眰閮介渶瑕佽璇� .and() .logout() // logout璁惧畾 diff --git a/src/main/java/com/example/jz/controller/CauseController.java b/src/main/java/com/example/jz/controller/CauseController.java index 785324d..4f3ef4a 100644 --- a/src/main/java/com/example/jz/controller/CauseController.java +++ b/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; diff --git a/src/main/java/com/example/jz/controller/ReportController.java b/src/main/java/com/example/jz/controller/ReportController.java index 0146590..d08477d 100644 --- a/src/main/java/com/example/jz/controller/ReportController.java +++ b/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) diff --git a/src/main/java/com/example/jz/controller/WxAppController.java b/src/main/java/com/example/jz/controller/WxAppController.java index c936a00..207acea 100644 --- a/src/main/java/com/example/jz/controller/WxAppController.java +++ b/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 { //灏忕▼搴忕櫥褰昽penid 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) { +// //灏忕▼搴忕櫥褰昽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(); +// } +// 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)) { diff --git a/src/main/java/com/example/jz/dao/ReportDao.java b/src/main/java/com/example/jz/dao/ReportDao.java index d4605dd..6d78709 100644 --- a/src/main/java/com/example/jz/dao/ReportDao.java +++ b/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); } diff --git a/src/main/java/com/example/jz/modle/entity/Report.java b/src/main/java/com/example/jz/modle/entity/Report.java index 4b4920d..a5b3f59 100644 --- a/src/main/java/com/example/jz/modle/entity/Report.java +++ b/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; /** * 鑾峰彇涓婚敭鍊� 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 b2b7109..c6323f3 100644 --- a/src/main/java/com/example/jz/modle/entity/User.java +++ b/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; } diff --git a/src/main/java/com/example/jz/modle/vo/MessageUserInfoVO.java b/src/main/java/com/example/jz/modle/vo/MessageUserInfoVO.java new file mode 100644 index 0000000..cafda2e --- /dev/null +++ b/src/main/java/com/example/jz/modle/vo/MessageUserInfoVO.java @@ -0,0 +1,7 @@ +package com.example.jz.modle.vo; + +public class MessageUserInfoVO { + private String realName; + private String userMobile; + private String userIdcard; +} diff --git a/src/main/java/com/example/jz/modle/vo/ReportListVo.java b/src/main/java/com/example/jz/modle/vo/ReportListVo.java index cc9f2e6..5863922 100644 --- a/src/main/java/com/example/jz/modle/vo/ReportListVo.java +++ b/src/main/java/com/example/jz/modle/vo/ReportListVo.java @@ -23,4 +23,5 @@ @ApiModelProperty(value = "鎶ユ浜鸿韩浠借瘉鍙�",dataType = "String") //鎶ユ浜鸿韩浠借瘉鍙� private String idcard; + } diff --git a/src/main/java/com/example/jz/modle/vo/ReportVXVO.java b/src/main/java/com/example/jz/modle/vo/ReportVXVO.java new file mode 100644 index 0000000..80d6a9c --- /dev/null +++ b/src/main/java/com/example/jz/modle/vo/ReportVXVO.java @@ -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; // 韬唤璇� +} diff --git a/src/main/java/com/example/jz/service/ReportService.java b/src/main/java/com/example/jz/service/ReportService.java index 9609883..731814e 100644 --- a/src/main/java/com/example/jz/service/ReportService.java +++ b/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); } 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 dd7b199..085d98b 100644 --- a/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java +++ b/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) { diff --git a/src/main/java/com/example/jz/service/impl/MinIOServiceImpl.java b/src/main/java/com/example/jz/service/impl/MinIOServiceImpl.java index 2358e28..d78868b 100644 --- a/src/main/java/com/example/jz/service/impl/MinIOServiceImpl.java +++ b/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; 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 5ae21e5..5bf28a8 100644 --- a/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java +++ b/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; + } } \ No newline at end of file diff --git a/src/main/resources/mapper/ReportDao.xml b/src/main/resources/mapper/ReportDao.xml index d3845e6..c5917a8 100644 --- a/src/main/resources/mapper/ReportDao.xml +++ b/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> -- Gitblit v1.8.0