| | |
| | | |
| | | import cn.hutool.json.JSONObject; |
| | | import cn.hutool.json.JSONUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | 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.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.*; |
| | | import com.example.jz.service.*; |
| | | import com.example.jz.utils.HttpUtil; |
| | | import lombok.SneakyThrows; |
| | |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import java.util.*; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @RestController |
| | |
| | | private final String wxApp_accessToken_verify_url = "https://api.weixin.qq.com/cgi-bin/token"; |
| | | |
| | | @Value("${wx.appid}") |
| | | private String appid; |
| | | private String appid; |
| | | |
| | | @Value("${wx.secret}") |
| | | private String secret; |
| | |
| | | MessageService messageService; |
| | | @Autowired |
| | | GroupUserService groupUserService; |
| | | @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); |
| | |
| | | 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()); |
| | |
| | | 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); |
| | | loginMessage.put("role", role); |
| | | loginMessage.put("time",user1.getUserIdcard()); |
| | | loginMessage.put("time", user1.getUserIdcard()); |
| | | return R.ok(loginMessage); |
| | | } |
| | | |
| | |
| | | |
| | | @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.setSex(reportVXVO.getSex()); |
| | | user.setUserIdcard(reportVXVO.getUserIdCard()); |
| | | user.setLocation(reportVXVO.getLocation()); |
| | | 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()); |
| | | report.setStatus(0); |
| | | report.setReportMethod("现场录入"); |
| | | report.setReportMethod("扫码报案"); |
| | | return R.ok(reportService.save(report)); |
| | | } |
| | | |
| | |
| | | @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) { |
| | | if (!groupUsers.isEmpty()) { |
| | | 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")); |
| | | List<Message> message = messageService.list(new QueryWrapper<Message>().eq("group_id", item.getId()).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()); |
| | | } |
| | | getMessage(groupMap, message); |
| | | if (StringUtils.isNotBlank(lastDate)) { |
| | | int count = messageService.count(new QueryWrapper<Message>().eq("group_id", item.getId()).between("ctime", lastDate, newDate)); |
| | | groupMap.put("count", count); |
| | |
| | | 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) { |
| | | if (!message.isEmpty()) { |
| | | groupMap.put("message", message.get(0).getText()); |
| | | if (message.get(0).getUserId() == null) { |
| | | groupMap.put("name", userDao.selectOne(new QueryWrapper<User>().eq("id", message.get(0).getCopId())).getRealName()); |
| | | } else { |
| | | groupMap.put("name", message.get(0).getReportName()); |
| | | } |
| | | groupMap.put("time", message.get(0).getCtime()); |
| | | } |
| | | } |
| | | |
| | | |
| | | @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))) |
| | | reportService.listGroup(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()); |
| | | } |
| | | getMessage(groupMap, message); |
| | | Group group = groupService.getOne(new QueryWrapper<Group>().eq("id", groupUser.getGroupId())); |
| | | groupMap.put("groupName", group.getGroupName()); |
| | | groupMap.put("id", group.getId()); |
| | |
| | | messageMap.put("id", user.getId()); |
| | | messageMap.put("name", item.getReportName()); |
| | | messageMap.put("mobile", user.getUserMobile()); |
| | | messageMap.put("idcard", user.getUserIdcard()); |
| | | messageMap.put("sex", user.getSex()); |
| | | messageMap.put("pic", user.getPic()); |
| | | messageMap.put("role", 0); |
| | | } else { |
| | |
| | | User user = userService.getOne(new QueryWrapper<User>().eq("id", item.getCopId())); |
| | | messageMap.put("name", user.getRealName()); |
| | | messageMap.put("mobile", user.getUserMobile()); |
| | | messageMap.put("sex", user.getSex()); |
| | | messageMap.put("role", 1); |
| | | } |
| | | message.add(messageMap); |
| | |
| | | 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)){ |
| | | if (StringUtils.isBlank(msg)) { |
| | | return R.failed("msg is blank"); |
| | | } |
| | | Message message = new Message(); |
| | |
| | | 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)); |
| | | } |
| | | |
| | | @GetMapping("/group/member/detail") |
| | | public R getMemberDetail(@RequestParam Integer id) { |
| | | Report report = reportService.getOne(new LambdaQueryWrapper<Report>().eq(Report::getId, id)); |
| | | ReportVo reportVo = new ReportVo(); |
| | | BeanUtils.copyProperties(report, reportVo); |
| | | User user = userDao.selectOne(new LambdaQueryWrapper<User>().eq(User::getId, report.getUserId())); |
| | | reportVo.setReporterName(user.getRealName()); |
| | | reportVo.setMobile(user.getUserMobile()); |
| | | reportVo.setIdcard(user.getUserIdcard()); |
| | | return R.ok(reportVo); |
| | | } |
| | | |
| | | @GetMapping("/manager/report") |
| | | public R queryReport() { |
| | | return R.ok(reportService.list(new LambdaQueryWrapper<Report>().eq(Report::getStatus, 0)) |
| | | .stream() |
| | | .map(item -> { |
| | | ReportVo reportVo = new ReportVo(); |
| | | BeanUtils.copyProperties(item, reportVo); |
| | | User user = userDao.selectOne(new LambdaQueryWrapper<User>().eq(User::getId, item.getUserId())); |
| | | reportVo.setReporterName(user.getRealName()); |
| | | reportVo.setMobile(user.getUserMobile()); |
| | | reportVo.setIdcard(user.getUserIdcard()); |
| | | return reportVo; |
| | | }) |
| | | .collect(Collectors.toList())); |
| | | } |
| | | |
| | | @GetMapping("/publicity") |
| | | public R queryPublicity(@RequestParam(required = false) Integer size) { |
| | | List<Publicity> publicityList = publicityService.list(new LambdaQueryWrapper<Publicity>().eq(Publicity::getStatus, 1)); |
| | | if (size != null) { |
| | | return R.ok(publicityList.stream().limit(size)); |
| | | } |
| | | return R.ok(publicityList); |
| | | } |
| | | } |