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>