青羊经侦大队-数据平台
baizonghao
2023-04-17 4a5879a5454a5b396a13ab0b3c7386cdc0779ea7
一系列修改,主要包括添加,警方通告
10个文件已修改
6个文件已添加
351 ■■■■■ 已修改文件
src/main/java/com/example/jz/config/MybatisPlusConfig.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/controller/MessageController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/controller/PoliceAnnouncementController.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/controller/PublicityController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/controller/UserController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/controller/WxAppController.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/dao/PoliceAnnouncementDao.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/modle/entity/PoliceAnnouncement.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/modle/vo/ReportVXVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/service/AnnouncementService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/service/PoliceAnnouncementService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/service/impl/PoliceAnnouncementServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-dev.yml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/PoliceAnnouncementMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/config/MybatisPlusConfig.java
@@ -1,7 +1,5 @@
package com.example.jz.config;
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
src/main/java/com/example/jz/controller/MessageController.java
@@ -3,8 +3,8 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.api.ApiController;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.jz.modle.R;
import com.example.jz.modle.entity.Message;
import com.example.jz.modle.vo.GroupMessageVo;
import com.example.jz.service.MessageService;
@@ -34,5 +34,11 @@
    @Resource
    private MessageService messageService;
    @GetMapping("deleteById")
    public R deleteById(@RequestParam Integer id){
        boolean b = messageService.removeById(id);
        return R.ok("删除成功");
    }
}
src/main/java/com/example/jz/controller/PoliceAnnouncementController.java
New file
@@ -0,0 +1,92 @@
package com.example.jz.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.example.jz.modle.PageParam;
import com.example.jz.modle.R;
import com.example.jz.modle.entity.PoliceAnnouncement;
import com.example.jz.service.PoliceAnnouncementService;
import io.swagger.annotations.Api;
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.ArrayList;
import java.util.Date;
@RestController
@RequestMapping("policePublicity")
@Api(tags = "警方公告接口")
public class PoliceAnnouncementController {
    @Autowired
    private PoliceAnnouncementService policeAnnouncementService;
    @GetMapping
    @ApiOperation("分页查询数据")
    public R<IPage<PoliceAnnouncement>> selectAll(PageParam<PoliceAnnouncement> page, PoliceAnnouncement policeAnnouncement){
        ArrayList<PoliceAnnouncement> list = new ArrayList<>();
        PageParam<PoliceAnnouncement> policeAnnouncementPageParam ;
        if (policeAnnouncement.getStatus()!=null ){
            policeAnnouncementPageParam = policeAnnouncementService.page(page,
                    new QueryWrapper<PoliceAnnouncement>().like(StringUtils.isNotBlank(policeAnnouncement.getTitle()),
                            "title",
                            policeAnnouncement.getTitle()).eq("status",policeAnnouncement.getStatus()).orderByDesc("ctime"));
        }else {
            policeAnnouncementPageParam = policeAnnouncementService.page(page,
                    new QueryWrapper<PoliceAnnouncement>().like(StringUtils.isNotBlank(policeAnnouncement.getTitle()),
                            "title",
                            policeAnnouncement.getTitle()).orderByDesc("ctime"));
        }
        return R.ok(policeAnnouncementPageParam);
    }
    @GetMapping("{id}")
    @ApiOperation("通过主键查询单条数据")
    public R<PoliceAnnouncement> selectOne(@PathVariable Serializable id){
        return R.ok(policeAnnouncementService.getById(id));
    }
    @PostMapping
    @ApiOperation("添加警方公告")
    public R<Boolean> insert(@RequestBody PoliceAnnouncement policeAnnouncement) {
        policeAnnouncement.setStatus(0);
        policeAnnouncement.setCtime(new Date());
        return R.ok(policeAnnouncementService.save(policeAnnouncement));
    }
    @PutMapping
    @ApiOperation("修改警方公告内容")
    public R<Boolean> update(@RequestBody PoliceAnnouncement policeAnnouncement) {
        return R.ok(policeAnnouncementService.updateById(policeAnnouncement));
    }
    @GetMapping("offline/{id}")
    @ApiOperation("下架警方公告内容")
    public R<Boolean> offline(@PathVariable Serializable id) {
        PoliceAnnouncement byId = policeAnnouncementService.getById(id);
        byId.setStatus(0);
        return R.ok(policeAnnouncementService.saveOrUpdate(byId));
    }
    @GetMapping("release/{id}")
    @ApiOperation("发布警方公告内容")
    public R<Boolean> release(@PathVariable Serializable id) {
        PoliceAnnouncement byId = policeAnnouncementService.getById(id);
        byId.setStatus(1);
        return R.ok(policeAnnouncementService.saveOrUpdate(byId));
    }
    @DeleteMapping("{id}")
    @ApiOperation("删除警方公告")
    public R<Boolean> delete(@PathVariable Serializable id) {
        return R.ok(policeAnnouncementService.removeById(id));
    }
}
src/main/java/com/example/jz/controller/PublicityController.java
@@ -56,9 +56,15 @@
        ArrayList<PublicityVo> publicityVos = new ArrayList<>();
        PageParam<Publicity> publicityPageParam ;
        if (publicity.getStatus()!=null ){
            publicityPageParam = publicityService.page(page, new QueryWrapper<Publicity>().like(StringUtils.isNotBlank(publicity.getPublicityTitle()),"publicity_title",publicity.getPublicityTitle()).eq("status",publicity.getStatus()).orderByDesc("ctime"));
            publicityPageParam = publicityService.page(page,
                    new QueryWrapper<Publicity>().like(StringUtils.isNotBlank(publicity.getPublicityTitle()),
                            "publicity_title",
                            publicity.getPublicityTitle()).eq("status",publicity.getStatus()).orderByDesc("ctime"));
        }else {
            publicityPageParam = publicityService.page(page, new QueryWrapper<Publicity>().like(StringUtils.isNotBlank(publicity.getPublicityTitle()),"publicity_title",publicity.getPublicityTitle()).orderByDesc("ctime"));
            publicityPageParam = publicityService.page(page,
                    new QueryWrapper<Publicity>().like(StringUtils.isNotBlank(publicity.getPublicityTitle()),
                            "publicity_title",
                            publicity.getPublicityTitle()).orderByDesc("ctime"));
        }
        publicityPageParam.getRecords().forEach(item->{
            PublicityVo publicityVo = new PublicityVo();
src/main/java/com/example/jz/controller/UserController.java
@@ -4,6 +4,7 @@
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.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.api.ApiController;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.jz.modle.R;
@@ -143,7 +144,7 @@
    }
    @DeleteMapping("/manager")
    @ApiOperation("删除管理")
    @ApiOperation("删除管理人员")
    public R removeManager(@RequestParam Integer id) {
        List<Cause> list = causeService.list(new LambdaQueryWrapper<Cause>().eq(Cause::getUserId, id));
        if (!Objects.isNull(list) && list.size() != 0){
@@ -164,6 +165,19 @@
        return R.ok(userService.removeById(id));
    }
    @DeleteMapping("/crowd")
    @ApiOperation("删除普通用户")
    public R removeCrowd(@RequestParam Integer id){
        List<Report> list = reportService.list(Wrappers.<Report>lambdaQuery().eq(Report::getUserId, id));
        for (Report report : list) {
            groupUserService.remove(new LambdaQueryWrapper<GroupUser>().eq(GroupUser::getUserId, report.getId()));
            messageService.remove(new LambdaQueryWrapper<Message>().eq(Message::getUserId, report.getId()));
            reportService.removeById(report.getId());
        }
        userService.remove(Wrappers.<User>lambdaQuery().eq(User::getId, id));
        return R.ok();
    }
    @GetMapping("/manager")
    @ApiOperation("分页查询所有数据")
    public R selectManager(Page<User> page, User user) {
src/main/java/com/example/jz/controller/WxAppController.java
@@ -7,6 +7,7 @@
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.core.toolkit.Wrappers;
import com.example.jz.auth.TokenJwtManager;
import com.example.jz.dao.UserDao;
import com.example.jz.modle.R;
@@ -14,6 +15,9 @@
import com.example.jz.modle.vo.*;
import com.example.jz.service.*;
import com.example.jz.utils.HttpUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import lombok.SneakyThrows;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -24,12 +28,15 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.sql.Array;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/wx")
@Api(tags = "微信小程序接口")
public class WxAppController {
    private final String wxApp_userCode_verify_url = "https://api.weixin.qq.com/sns/jscode2session";
@@ -69,6 +76,10 @@
    GroupUserService groupUserService;
    @Autowired
    PublicityService publicityService;
    @Autowired
    private AnnouncementService announcementService;
    @Autowired
    private PoliceAnnouncementService policeAnnouncementService;
    @GetMapping("/checkIdentity")
    public R checkIdentity(@RequestParam String code, @RequestParam String phoneNumberCode) throws Exception {
@@ -263,6 +274,36 @@
        return R.ok(reportService.save(report));
    }
    @PostMapping("/user/policeAddReport")
    public R policeAddReport(@RequestBody ReportVXVO reportVXVO) {
        User one = userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUserMobile, reportVXVO.getPhone()));
        if (Objects.nonNull(one)){
             return R.ok("该手机号已被注册");
        }
        User user = new User();
        user.setUserMobile(reportVXVO.getPhone());
        user.setRealName(reportVXVO.getRealName());
        user.setSex(reportVXVO.getSex());
        user.setUserIdcard(reportVXVO.getUserIdCard());
        user.setLocation(reportVXVO.getLocation());
        user.setWorkingLocation(reportVXVO.getWorkingLocation());
        user.setCtime(new Date());
        userService.save(user);
        Report report = new Report();
        BeanUtils.copyProperties(reportVXVO, report);
        report.setAmountInvolved(reportVXVO.getAmountInvolved());
        report.setUserId(user.getId());
        report.setPic(user.getPic());
        report.setIsInGroup(0);
        report.setCtime(new Date());
        report.setStatus(0);
        report.setReportMethod("扫码报案");
        return R.ok(reportService.save(report));
    }
    @PutMapping ("/user/addReport")
    public R addReport1(@RequestBody ReportVXVO reportVXVO) {
        User user = userService.getOne(new QueryWrapper<User>().eq("id", reportVXVO.getUserId()));
@@ -383,6 +424,7 @@
                    HashMap<String, Object> messageMap = new HashMap<>();
                    messageMap.put("text", item.getText());
                    messageMap.put("time", item.getCtime());
                    messageMap.put("messageId", item.getId());
                    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()));
@@ -580,9 +622,15 @@
        return R.ok(reportVo);
    }
    /**
     *
     * @param id
     * @return
     */
    @GetMapping("/manager/report")
    public R queryReport() {
        return R.ok(reportService.list(new LambdaQueryWrapper<Report>().eq(Report::getStatus, 0))
    public R queryReport(@RequestParam Integer id) {
        List<Integer> collect = causeService.list(Wrappers.<Cause>lambdaQuery().eq(Cause::getUserId, id)).stream().map(cause -> cause.getId()).collect(Collectors.toList());
        R<List<ReportVo>> ok = R.ok(reportService.list(new LambdaQueryWrapper<Report>().eq(Report::getStatus, 0).in(Report::getCauseId, collect))
                .stream()
                .map(item -> {
                    ReportVo reportVo = new ReportVo();
@@ -596,6 +644,7 @@
                    return reportVo;
                })
                .collect(Collectors.toList()));
        return ok;
    }
    @GetMapping("/publicity")
@@ -606,4 +655,33 @@
        }
        return R.ok(publicityList);
    }
    @ApiOperation(httpMethod = "POST", value = "群公告添加")
    @PostMapping("/announcement/add")
    public R insert(@RequestParam(value = "groupId") Integer groupId, @RequestParam String announcement) {
        Announcement announcement1 = new Announcement();
        announcement1.setText(announcement);
        announcement1.setStatus(1);
        return R.ok(announcementService.vxAdd(groupId, announcement1));
    }
    @ApiOperation(httpMethod = "DELETE", value = "群公告删除")
    @DeleteMapping("/announcement/delete")
    public R delete(@RequestParam(value = "id") Integer id) {
        announcementService.removeById(id);
        return R.ok();
    }
    @ApiOperation(httpMethod = "GET", value = "查看群公告")
    @GetMapping("/getAnnouncements")
    public R getAnnouncements(@RequestParam(value = "groupId") Integer groupId) {
        return R.ok(announcementService.getAnnouncements(groupId));
    }
    @GetMapping("policeAnnouncement/list")
    @ApiOperation(httpMethod = "GET", value = "警方公告")
    public R getPoliceAnnouncement(){
        List<PoliceAnnouncement> list = policeAnnouncementService.list(Wrappers.<PoliceAnnouncement>lambdaQuery().eq(PoliceAnnouncement::getStatus, 1).orderByDesc(PoliceAnnouncement::getCtime));
        return R.ok(list);
    }
}
src/main/java/com/example/jz/dao/PoliceAnnouncementDao.java
New file
@@ -0,0 +1,7 @@
package com.example.jz.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.jz.modle.entity.PoliceAnnouncement;
public interface PoliceAnnouncementDao extends BaseMapper<PoliceAnnouncement> {
}
src/main/java/com/example/jz/modle/entity/PoliceAnnouncement.java
New file
@@ -0,0 +1,65 @@
package com.example.jz.modle.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName("police_announcement")
public class PoliceAnnouncement extends Model<PoliceAnnouncement> {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "警方公告Id")
    private Integer id;
    /**
     * 标题
     */
    @ApiModelProperty(value = "公告标题")
    private String title;
    /**
     * 状态0:未发布,1:已发布
     */
    @ApiModelProperty(value = "公告状态,状态0:未发布,1:已发布")
    private Integer status;
    /**
     * 媒体
     */
    @ApiModelProperty(value = "图片")
    private String media;
    /**
     * 内容
     */
    @ApiModelProperty(value = "内容")
    private String text;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date ctime;
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
}
src/main/java/com/example/jz/modle/vo/ReportVXVO.java
@@ -16,4 +16,6 @@
    private String realName;    // 姓名
    private String userIdCard;  // 身份证
    private String phone;
}
src/main/java/com/example/jz/service/AnnouncementService.java
@@ -22,6 +22,8 @@
     **/
    PageParam<AnnouncementVo> getAnnouncements(Integer size, Integer current, String content, Integer status,Integer groupId);
    List<Announcement> getAnnouncements(Integer groupId);
    /**
     * @Description 发布/下架
     * @Param [id]
@@ -36,6 +38,8 @@
     **/
    Integer add(Integer groupId, Announcement announcement);
    Integer vxAdd(Integer groupId, Announcement announcement);
    AnnouncementVo getAnnouncementsById(Integer id);
}
src/main/java/com/example/jz/service/PoliceAnnouncementService.java
New file
@@ -0,0 +1,8 @@
package com.example.jz.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.jz.modle.entity.PoliceAnnouncement;
public interface PoliceAnnouncementService extends IService<PoliceAnnouncement> {
}
src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java
@@ -3,6 +3,7 @@
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.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.jz.auth.TokenJwtManager;
import com.example.jz.dao.AnnouncementDao;
@@ -69,6 +70,12 @@
    }
    @Override
    public List<Announcement> getAnnouncements(Integer groupId) {
        List<Announcement> announcements = announcementDao.selectList(Wrappers.<Announcement>lambdaQuery().eq(Announcement::getGroupId, groupId).orderByDesc(Announcement::getPublishTime));
        return announcements;
    }
    @Override
    public void updateStatus(Integer id,Integer status) {
        if (status==1){
            announcementDao.update(new Announcement().setStatus(2), new UpdateWrapper<Announcement>().eq("id", id));
@@ -93,6 +100,15 @@
    }
    @Override
    public Integer vxAdd(Integer groupId, Announcement announcement) {
//        announcement.setCreator(userDao.selectOne(new QueryWrapper<User>().eq("login_username", SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId());
        announcement.setPublishTime(new Date());
        announcement.setCtime(new Date());
        announcement.setGroupId(groupId);
        return announcementDao.insert(announcement);
    }
    @Override
    public AnnouncementVo getAnnouncementsById(Integer id) {
        AnnouncementVo announcementVo = new AnnouncementVo();
        Announcement announcement = announcementDao.selectById(id);
src/main/java/com/example/jz/service/impl/PoliceAnnouncementServiceImpl.java
New file
@@ -0,0 +1,11 @@
package com.example.jz.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.jz.dao.PoliceAnnouncementDao;
import com.example.jz.modle.entity.PoliceAnnouncement;
import com.example.jz.service.PoliceAnnouncementService;
import org.springframework.stereotype.Service;
@Service
public class PoliceAnnouncementServiceImpl extends ServiceImpl<PoliceAnnouncementDao, PoliceAnnouncement> implements PoliceAnnouncementService {
}
src/main/resources/application-dev.yml
@@ -11,6 +11,12 @@
    password: 234#Wersdf!
    driverClassName: com.mysql.cj.jdbc.Driver
    type: com.zaxxer.hikari.HikariDataSource
#  datasource:
#    url: jdbc:mysql://42.193.1.25:3306/qyjz?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
#    username: root
#    password: 321$YcYl@1970!
#    driverClassName: com.mysql.cj.jdbc.Driver
#    type: com.zaxxer.hikari.HikariDataSource
    # 数据库连接池配置
    hikari:
      minimum-idle: 10
src/main/resources/application.yml
@@ -1,3 +1,3 @@
spring:
  profiles:
    active: dev
    active: pro
src/main/resources/mapper/PoliceAnnouncementMapper.xml
New file
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.jz.dao.PoliceAnnouncementDao">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.example.jz.modle.entity.PoliceAnnouncement">
        <id column="id" property="id" />
        <result column="title" property="title" />
        <result column="status" property="status" />
        <result column="media" property="media" />
        <result column="text" property="text" />
        <result column="ctime" property="ctime" />
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, title, status, media, text, photo_str, ctime
    </sql>
</mapper>