青羊经侦大队-数据平台
ok
baizonghao
2023-03-21 13c0e173eeaede98217ecca45f09c74a863f3175
ok
14个文件已修改
3个文件已添加
271 ■■■■■ 已修改文件
pom.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/aop/InterfaceLogHandler.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/auth/MyTokenSecurityConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/controller/CauseController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/controller/ReportController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/controller/WxAppController.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/dao/ReportDao.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/modle/entity/Report.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/modle/entity/User.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/modle/vo/MessageUserInfoVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/modle/vo/ReportListVo.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/modle/vo/ReportVXVO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/service/ReportService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/service/impl/CauseServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/service/impl/MinIOServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/service/impl/ReportServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ReportDao.xml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>