diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/Administrator.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/Administrator.java index d746649..9695efd 100644 --- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/Administrator.java +++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/Administrator.java @@ -1,6 +1,7 @@ package com.kening.vordm.entity; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.protostuff.runtime.ArraySchemas; import lombok.Data; import org.springblade.core.mp.base.BaseEntity; @@ -26,6 +27,7 @@ public class Administrator extends BaseEntity { private String account; + @JsonIgnore private String password; private String name; diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/Contact.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/Contact.java index 266bcf4..4ef6699 100644 --- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/Contact.java +++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/Contact.java @@ -4,13 +4,16 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + import java.io.Serializable; /** - * + * * @TableName contact */ @TableName(value ="contact") +@Data public class Contact implements Serializable { /** * 用户姓名 @@ -37,123 +40,28 @@ public class Contact implements Serializable { */ private Long id; + /** + * 留言时间 + */ + private String contactDate; + /** + * 回复时间 + */ + private String replyDate; + /** + * 状态 + */ + private int status; + /** + * 回复内容 + */ + private String text; + /** + * 回复主题 + */ + private String subject; + @TableField(exist = false) private static final long serialVersionUID = 1L; - /** - * 用户姓名 - */ - public String getUserName() { - return userName; - } - - /** - * 用户姓名 - */ - public void setUserName(String userName) { - this.userName = userName; - } - - /** - * 电子邮件 - */ - public String getEmail() { - return email; - } - - /** - * 电子邮件 - */ - public void setEmail(String email) { - this.email = email; - } - - /** - * 组织 - */ - public String getOrganization() { - return organization; - } - - /** - * 组织 - */ - public void setOrganization(String organization) { - this.organization = organization; - } - - /** - * 意见建议 - */ - public String getMessage() { - return message; - } - - /** - * 意见建议 - */ - public void setMessage(String message) { - this.message = message; - } - - /** - * 数据自增列 - */ - public Long getId() { - return id; - } - - /** - * 数据自增列 - */ - public void setId(Long id) { - this.id = id; - } - - @Override - public boolean equals(Object that) { - if (this == that) { - return true; - } - if (that == null) { - return false; - } - if (getClass() != that.getClass()) { - return false; - } - Contact other = (Contact) that; - return (this.getUserName() == null ? other.getUserName() == null : this.getUserName().equals(other.getUserName())) - && (this.getEmail() == null ? other.getEmail() == null : this.getEmail().equals(other.getEmail())) - && (this.getOrganization() == null ? other.getOrganization() == null : this.getOrganization().equals(other.getOrganization())) - && (this.getMessage() == null ? other.getMessage() == null : this.getMessage().equals(other.getMessage())) - && (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())); - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((getUserName() == null) ? 0 : getUserName().hashCode()); - result = prime * result + ((getEmail() == null) ? 0 : getEmail().hashCode()); - result = prime * result + ((getOrganization() == null) ? 0 : getOrganization().hashCode()); - result = prime * result + ((getMessage() == null) ? 0 : getMessage().hashCode()); - result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); - return result; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", userName=").append(userName); - sb.append(", email=").append(email); - sb.append(", organization=").append(organization); - sb.append(", message=").append(message); - sb.append(", id=").append(id); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file +} diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DataUpload.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DataUpload.java index 58f6ba7..fec1c4c 100644 --- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DataUpload.java +++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DataUpload.java @@ -2,6 +2,8 @@ package com.kening.vordm.entity; import lombok.Data; +import java.util.Date; + /** * 数据上传实体类 * @author liyuchen @@ -16,5 +18,9 @@ public class DataUpload extends EntityData{ private String disasterKeyword; + private String disasterCountry; + + private Date disasterTime; + private Long disasterId; } diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DisasterData.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DisasterData.java new file mode 100644 index 0000000..132a78b --- /dev/null +++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/DisasterData.java @@ -0,0 +1,10 @@ +package com.kening.vordm.entity; + +import lombok.Data; + +@Data +public class DisasterData { + private String type; + private Integer value; + private String date; +} diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/OtherData.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/OtherData.java index b64bf3e..d7d8f9f 100644 --- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/OtherData.java +++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/OtherData.java @@ -6,7 +6,6 @@ import org.springframework.web.multipart.MultipartFile; /** * 其他数据实体类 - * @extends 继承基础数据实体类 * @author liyuchen * @date 2023/04/12 */ diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/PictureInfo.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/PictureInfo.java index 7ef4be6..5cb16d7 100644 --- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/PictureInfo.java +++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/PictureInfo.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import org.springframework.web.multipart.MultipartFile; import java.io.Serializable; import java.util.Date; @@ -66,6 +67,12 @@ public class PictureInfo implements Serializable { */ private Integer isDeleted; + /** + * 图片对象 + */ + @TableField(exist = false) + private MultipartFile file; + @TableField(exist = false) private static final long serialVersionUID = 1L; diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/VoRdmApplication.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/VoRdmApplication.java index 8464ead..ccbe0f3 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/VoRdmApplication.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/VoRdmApplication.java @@ -12,6 +12,5 @@ import org.springframework.cloud.client.SpringCloudApplication; public class VoRdmApplication { public static void main(String[] args) { BladeApplication.run("glj-"+CommonConstant.KN_VORDM_MODULE_NAME, VoRdmApplication.class, args); -// BladeApplication.run("zqq-" + CommonConstant.KN_VORDM_MODULE_NAME, VoRdmApplication.class, args); } } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/AdministratorController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/AdministratorController.java index 31cff24..ef7402b 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/AdministratorController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/AdministratorController.java @@ -9,6 +9,7 @@ import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DigestUtil; +import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.*; import java.util.Map; @@ -49,13 +50,23 @@ public class AdministratorController { return R.status(service.saveChiefAdmin(administrator)); } + /** + * 更新管理员信息 + * @param administrator + * @return + */ + @PutMapping("/update") + public R update(@RequestBody Administrator administrator){ + return R.status(service.updateById(administrator)); + } + /** * 删除管理员用户 * @param ids * @return */ @DeleteMapping("/delete") - public R delete(@RequestParam Long ids){ - return R.status(service.removeById(ids)); + public R delete(@RequestParam String ids){ + return R.status(service.deleteLogic(Func.toLongList(ids))); } } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/ContactController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/ContactController.java index e27548a..772d5ad 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/ContactController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/ContactController.java @@ -3,7 +3,9 @@ package com.kening.vordm.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.kening.vordm.entity.Email; import com.kening.vordm.service.ContactService; +import com.kening.vordm.service.EmailService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -11,6 +13,7 @@ import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.DateUtil; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springblade.core.mp.support.Query; @@ -18,6 +21,7 @@ import org.springframework.web.bind.annotation.*; import com.kening.vordm.entity.Contact; import java.util.Arrays; +import java.util.Date; @RestController @AllArgsConstructor @@ -32,6 +36,8 @@ public class ContactController{ }) @GetMapping("/list") public R> list(Contact contact, Query query) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(contact); + queryWrapper.orderByDesc("contact_date"); IPage pages = contactService.page(Condition.getPage(query), Condition.getQueryWrapper(contact)); return R.data(pages); } @@ -64,7 +70,37 @@ public class ContactController{ @ApiOperation(value = "提交", notes = "传入Contact") @PostMapping("/submit") public R submit(@ApiParam(value = "Contact对象", required = true) @RequestBody Contact contact) { + contact.setContactDate(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); return R.status(contactService.saveOrUpdate(contact)); } + private final EmailService emailService; + @ApiOperationSupport(order = 6) + @ApiOperation(value = "提交", notes = "传入Contact") + @PostMapping("/sendEmail") + public R sendEmail(@ApiParam(value = "Contact对象", required = true) @RequestBody Contact contact) { + contact.setReplyDate(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); + contact.setStatus(1); + Email email = new Email(); + email.setSubject(contact.getSubject()); + email.setText(contact.getText()); + String [] to = new String[]{contact.getEmail()}; + email.setTos(to); + email.setHtmlText(true); + try { + emailService.sendMimeMessage(email); + return R.status(contactService.saveOrUpdate(contact)); + } catch (Exception e) { + return R.fail("发送失败"); + } + } + @ApiOperationSupport(order = 8) + @ApiOperation(value = "详情", notes = "传入id") + @GetMapping("/observed") + public R observed(@ApiParam(value = "主键", required = true) @RequestParam String id) { + Contact contact = new Contact(); + contact.setId(Long.valueOf(id)); + contact.setStatus(2); + return R.data(contactService.updateById(contact)? "ok" : "false"); + } } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/DisasterInfoController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/DisasterInfoController.java index ba96113..c34125f 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/DisasterInfoController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/DisasterInfoController.java @@ -329,4 +329,13 @@ public class DisasterInfoController { Boolean flag=disasterInfoService.updateById(disasterInfo); return R.data(flag); } + + /** + * 后台管理系统-控制台灾害各项统计 + * @return + */ + @GetMapping("/statistics") + public R statistics(){ + return R.data(disasterInfoService.statistics()); + } } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/EmailController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/EmailController.java index 670d2aa..09f49a7 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/EmailController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/EmailController.java @@ -4,8 +4,10 @@ import com.kening.vordm.entity.Email; import com.kening.vordm.service.EmailService; import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -15,13 +17,15 @@ import javax.mail.MessagingException; @RequestMapping("/ui/email") @RequiredArgsConstructor @Api(value = "邮箱发送", tags = "邮箱发送") +@Slf4j public class EmailController { private final EmailService emailService; @PostMapping("/emailSend") - public R emailSend(Email email) { + public R emailSend(@RequestBody Email email) { try { + log.info("email:{}", email.getText()); emailService.sendMimeMessage(email); return R.success("OK"); } catch (MessagingException e) { diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/NewsController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/NewsController.java index 4903c4f..56fede1 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/NewsController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/NewsController.java @@ -1,8 +1,16 @@ package com.kening.vordm.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.kening.vordm.entity.Contact; +import com.kening.vordm.entity.DisasterInfo; import com.kening.vordm.entity.News; import com.kening.vordm.service.NewsService; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; @@ -48,4 +56,31 @@ public class NewsController { public void export(Long disasterId,Integer type,HttpServletRequest request, HttpServletResponse response){ newsService.export(disasterId,type,request,response); } + @ApiOperationSupport(order = 1) + @ApiOperation(value = "分页", notes = "News") + @ApiImplicitParams({ + @ApiImplicitParam(name = "current", value = "当前页", paramType = "query", dataType = "int"), + @ApiImplicitParam(name = "size", value = "分页大小", paramType = "query", dataType = "int") + }) + @GetMapping("/list") + public R> list(News news, Query query) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(news); + queryWrapper.orderByDesc("contact_date"); + IPage pages = newsService.page(Condition.getPage(query), Condition.getQueryWrapper(news)); + return R.data(pages); + } + @PostMapping("review") + public R review(String ids ,Integer status){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("status",status); + String [] id = ids.split(","); + //将id String 数组转为Long数组 + Long [] idLong = new Long[id.length]; + for (int i = 0; i < id.length; i++) { + idLong[i] = Long.parseLong(id[i]); + } + updateWrapper.in("id",idLong); + Boolean flag=newsService.update(updateWrapper); + return R.data(flag); + } } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/OtherDataController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/OtherDataController.java index 03bd7f2..4bb67c6 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/OtherDataController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/OtherDataController.java @@ -1,8 +1,10 @@ package com.kening.vordm.controller; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.kening.vordm.entity.DataUpload; import com.kening.vordm.entity.EntityData; +import com.kening.vordm.entity.Hotspot; import com.kening.vordm.entity.OtherData; import com.kening.vordm.service.DataUploadService; import com.kening.vordm.service.OtherDataService; @@ -11,6 +13,7 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.*; import java.util.Date; @@ -65,10 +68,7 @@ public class OtherDataController { * @return */ @DeleteMapping("/remove") - public R remove(@RequestParam Long id){ - EntityData entityData = new EntityData(); - entityData.setId(id); - entityData.setIsDeleted(1); - return R.status(service.updateById(entityData)); + public R remove(@RequestParam String id){ + return R.status(service.removeByIds(Func.toLongList(id))); } } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/PictureInfoController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/PictureInfoController.java index d283bfe..56a01cd 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/PictureInfoController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/PictureInfoController.java @@ -2,6 +2,7 @@ package com.kening.vordm.controller; import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.kening.vordm.entity.*; import com.kening.vordm.service.HotspotService; import com.kening.vordm.service.PictureInfoService; @@ -11,6 +12,7 @@ import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.*; import java.util.Map; @@ -43,20 +45,27 @@ public class PictureInfoController { * @return */ @PostMapping("/upload") - public R audit(OtherData OtherData){ + public R upload(OtherData OtherData){ return R.status(service.uploadData(OtherData)); } + /** + * 修改图片信息 + * @param pictureInfo + * @return + */ + @PutMapping("/update") + public R upadte(PictureInfo pictureInfo){ + return R.status(service.updatePicture(pictureInfo)); + } + /** * 逻辑删除图片数据 * @param id * @return */ @DeleteMapping("/remove") - public R remove(@RequestParam Long id){ - PictureInfo pictureInfo = new PictureInfo(); - pictureInfo.setId(id); - pictureInfo.setIsDeleted(1); - return R.status(service.updateById(pictureInfo)); + public R remove(@RequestParam String id){ + return R.status(service.removeByIds(Func.toLongList(id))); } } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/SocialMediaController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/SocialMediaController.java index 601f9f3..395878d 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/SocialMediaController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/SocialMediaController.java @@ -1,6 +1,9 @@ package com.kening.vordm.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.kening.vordm.entity.News; import com.kening.vordm.entity.SocialMedia; import com.kening.vordm.entity.Tweets; import com.kening.vordm.service.SocialMediaService; @@ -8,10 +11,7 @@ import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -61,4 +61,23 @@ public class SocialMediaController { public void export(Long disasterId, HttpServletRequest request, HttpServletResponse response){ service.export(disasterId,request,response); } + @GetMapping("/list") + public R> list(SocialMedia socialMedia, Query query) { + IPage pages = service.page(Condition.getPage(query), Condition.getQueryWrapper(socialMedia)); + return R.data(pages); + } + @PostMapping("review") + public R review(String ids ,Integer status){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("status",status); + String [] id = ids.split(","); + //将id String 数组转为Long数组 + Long [] idLong = new Long[id.length]; + for (int i = 0; i < id.length; i++) { + idLong[i] = Long.parseLong(id[i]); + } + updateWrapper.in("id",idLong); + Boolean flag=service.update(updateWrapper); + return R.data(flag); + } } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/VisualDataController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/VisualDataController.java index fb03349..971fbf8 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/VisualDataController.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/VisualDataController.java @@ -1,6 +1,7 @@ package com.kening.vordm.controller; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.kening.vordm.entity.*; import com.kening.vordm.service.HotspotService; import com.kening.vordm.service.OtherDataService; @@ -10,6 +11,7 @@ import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.*; import java.util.Map; @@ -63,6 +65,27 @@ public class VisualDataController { return R.data(hotspotService.page(Condition.getPage(query),Condition.getQueryWrapper(params,Hotspot.class))); } + /** + * 更新词云数据 + * @param wordCLouds + * @return + */ + @PutMapping("/updateWordCloud") + public R updateWordCloud(@RequestBody WordCLouds wordCLouds){ + return R.status(wordCloudsService.updateById(wordCLouds)); + } + + /** + * 更新热点数据 + * @param hotspot + * @return + */ + @PutMapping("/updateHotspot") + public R updateHotspot(@RequestBody Hotspot hotspot){ + return R.status(hotspotService.updateById(hotspot)); + } + + /** * 移除词云或者热点数据 * @param id @@ -70,17 +93,11 @@ public class VisualDataController { * @return */ @DeleteMapping("/remove") - public R remove(@RequestParam Long id,@RequestParam Integer type){ + public R remove(@RequestParam String id,@RequestParam Integer type){ if(type == 1){ - WordCLouds wordCLouds = new WordCLouds(); - wordCLouds.setId(id); - wordCLouds.setIsDeleted(1); - return R.status(wordCloudsService.updateById(wordCLouds)); + return R.status(wordCloudsService.removeByIds(Func.toLongList(id))); }else { - Hotspot hotspot = new Hotspot(); - hotspot.setId(id); - hotspot.setIsDeleted(1); - return R.status(hotspotService.updateById(hotspot)); + return R.status(hotspotService.removeByIds(Func.toLongList(id))); } } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/AdministratorMapper.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/AdministratorMapper.java index 1149e49..22c044c 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/AdministratorMapper.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/AdministratorMapper.java @@ -16,4 +16,11 @@ public interface AdministratorMapper extends BaseMapper { * @return */ Long getChiefRole(@Param("roleName") String roleName); + + /** + * 根据租户名称查询租户id + * @param tenantName + * @return + */ + String getChiefTenant(@Param("tenantName") String tenantName); } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/AdministratorMapper.xml b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/AdministratorMapper.xml index 8f81ac3..9300ef8 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/AdministratorMapper.xml +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/AdministratorMapper.xml @@ -15,4 +15,16 @@ + + diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DataUploadMapper.xml b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DataUploadMapper.xml index 682e0c6..f42a1a9 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DataUploadMapper.xml +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DataUploadMapper.xml @@ -20,7 +20,9 @@ select di.disaster_keyword, bdb.dict_value as disasterType, - di.id as disasterId + di.id as disasterId, + di.disaster_time as disasterTime, + di.disaster_country as disasterCountry from entity_data ed left join blade_user bu on bu.id = ed.uploader_id left join disaster_info di on di.id = ed.disaster_id diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.java index af4d11d..7a81ecd 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.java @@ -10,6 +10,7 @@ import org.apache.poi.ss.formula.functions.T; import org.springblade.core.secure.BladeUser; import java.util.List; +import java.util.Map; /** * @author G1393 @@ -53,4 +54,16 @@ public interface DisasterInfoMapper extends BaseMapper { Integer saveUserData(@Param("userVo") UserVo userVo); UserVo getUserByEmail(String email); + + /** + * 获取灾害数据 关联字典项 + * @return + */ + List getAllData(); + + /** + * 查询每个月响应的灾害 + * @return + */ + List> getDisasterInfoByMouth(@Param("start") String start,@Param("end") String end,@Param("type") Integer type); } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.xml b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.xml index 6092c73..e3a0f0e 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.xml +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/DisasterInfoMapper.xml @@ -156,9 +156,12 @@ d.respond_status = 1 or d.respond_status = 0 - + d.respond_status = 2 + + d.respond_status = 2 or d.respond_status = 3 + order by d.upload_time desc @@ -181,4 +184,31 @@ + + + + diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/OtherDataMapper.xml b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/OtherDataMapper.xml index 88ba110..936a778 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/OtherDataMapper.xml +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/OtherDataMapper.xml @@ -20,7 +20,9 @@ select di.disaster_keyword, bdb.dict_value as disasterType, - di.id as disasterId + di.id as disasterId, + di.disaster_time as disasterTime, + di.disaster_country as disasterCountry from disaster_info di left join blade_dict_biz bdb on di.disaster_type = dict_key diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/VisualDataMapper.xml b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/VisualDataMapper.xml index c5bd8aa..e06a2a7 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/VisualDataMapper.xml +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/VisualDataMapper.xml @@ -20,7 +20,9 @@ select di.disaster_keyword, bdb.dict_value as disasterType, - di.id as disasterId + di.id as disasterId, + di.disaster_time as disasterTime, + di.disaster_country as disasterCountry from disaster_info di left join blade_dict_biz bdb on di.disaster_type = dict_key diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/DisasterInfoService.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/DisasterInfoService.java index 49001c7..7efeeec 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/DisasterInfoService.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/DisasterInfoService.java @@ -8,6 +8,7 @@ import com.kening.vordm.vo.*; import org.springblade.core.tool.api.R; import java.util.List; +import java.util.Map; /** * @author G1393 @@ -55,4 +56,9 @@ public interface DisasterInfoService extends IService { IPage page(IPage page, CallForHelpVo callForHelpVo); R saveUserData(UserVo userVo); + /** + * 后台管理系统-控制台灾害各项统计 + * @return + */ + Map statistics(); } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/PictureInfoService.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/PictureInfoService.java index 3f5d2c8..00457f8 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/PictureInfoService.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/PictureInfoService.java @@ -14,7 +14,15 @@ public interface PictureInfoService extends IService { /** * 上传图片信息数据 + * @param otherData * @return */ boolean uploadData(OtherData otherData); + + /** + * 修改图片信息 + * @param pictureInfo + * @return + */ + boolean updatePicture(PictureInfo pictureInfo); } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/AdministratorServiceImpl.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/AdministratorServiceImpl.java index 99fc256..3d48c2a 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/AdministratorServiceImpl.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/AdministratorServiceImpl.java @@ -8,6 +8,7 @@ import com.kening.vordm.mapper.AdministratorMapper; import com.kening.vordm.service.AdministratorService; import com.kening.vordm.service.EmailService; import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.utils.DigestUtil; @@ -25,10 +26,14 @@ import java.util.Map; */ @Slf4j @Service -@AllArgsConstructor +@RequiredArgsConstructor public class AdministratorServiceImpl extends BaseServiceImpl implements AdministratorService { - private EmailService emailService; + private final EmailService emailService; + + + @Value("${mail.home.link}") + private String link; /** * 根据角色名称获取角色id @@ -52,7 +57,8 @@ public class AdministratorServiceImpl extends BaseServiceImpl dataMap = new HashMap<>(); dataMap.put("account", administrator.getAccount()); + //默认密码 1234 dataMap.put("password", "1234"); + dataMap.put("link",link); dataMap.put("time", LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd"))); Email email = new Email(); email.setSubject(subject); email.setDataMap(dataMap); email.setTos(new String[]{administrator.getEmail()}); - email.setForm("15806764589@163.com"); emailService.sendTemplate(email); log.info("邮件发送成功"); }catch (Exception e){ diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/DisasterInfoServiceImpl.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/DisasterInfoServiceImpl.java index ba99c1a..5a43e4e 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/DisasterInfoServiceImpl.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/DisasterInfoServiceImpl.java @@ -3,23 +3,27 @@ package com.kening.vordm.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.Maps; +import com.kening.vordm.entity.DisasterData; import com.kening.vordm.entity.DisasterInfo; import com.kening.vordm.mapper.DisasterInfoMapper; import com.kening.vordm.service.DisasterInfoService; -import com.kening.vordm.service.EmailService; +import com.kening.vordm.service.GuestManageDisasterRefService; import com.kening.vordm.vo.*; import lombok.RequiredArgsConstructor; import org.springblade.common.cache.CacheNames; import org.springblade.core.redis.cache.BladeRedis; -import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DigestUtil; import org.springblade.core.tool.utils.StringUtil; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import java.time.LocalDate; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @author G1393 @@ -33,6 +37,8 @@ public class DisasterInfoServiceImpl extends ServiceImpl statistics() { + Map resultMap = Maps.newHashMap(); + //查询灾害表全部数据数据(tip:暂时没有条件 需要的话后期改) + List disasterInfoList = list(); + //统计head头部的数据 + Map headMap = headData(disasterInfoList); + //统计灾害发生区域占比 + Map countryData = disasterCountryProportion(disasterInfoList); + //统计当年的灾害申请次数 按月查询 + List> applyMonth = getDisasterReponseByMouth(1); + //统计灾害数量占比 + Map disasterNum = disasterNumProportion(); + //统计当年的灾害响应次数 按月查询 + List> responseMonth = getDisasterReponseByMouth(2); + resultMap.put("header",headMap); + resultMap.put("country",countryData); + resultMap.put("disasterNum",disasterNum); + resultMap.put("responseMonth",responseMonth); + resultMap.put("applyMonth",applyMonth); + return resultMap; + } + /** + * 统计head头部信息 + * @return + */ + private Map headData(List disasterInfoList){ + Map headMap = Maps.newHashMap(); + //用户访问量 + Integer visitCount = disasterInfoList.stream().map(DisasterInfo::getVisitCount).reduce(Integer::sum).orElse(0); + //数据下载量 + Integer downloadCount = disasterInfoList.stream().map(DisasterInfo::getDownloadCount).reduce(Integer::sum).orElse(0); + //灾害响应申请次数 + Integer size = disasterInfoList.size(); + //灾害响应实际次数 + Long actResponseNum = disasterInfoList.stream().filter(data-> data.getRespondStatus() > 1).count(); + //灾害响应百分比 + headMap.put("visitCount",visitCount); + headMap.put("downloadCount",downloadCount); + headMap.put("applyCount",size); + headMap.put("actResponseNum",actResponseNum); + return headMap; + } + + /** + *计算每个国家的灾害占比 + * @return + */ + private Map disasterCountryProportion(List disasterInfoList){ + Map proportionMap; + //根据国家分组统计次数以及总灾害的占比 + proportionMap = disasterInfoList.stream().collect(Collectors.groupingBy(DisasterInfo::getDisasterCountry,Collectors.counting())); + return proportionMap; + } + + /** + * 计算每个灾害发生的次数 + * @return + */ + private Map disasterNumProportion(){ + List disasterInfoList = baseMapper.getAllData(); + Map proportionMap = disasterInfoList.stream().collect(Collectors.groupingBy(DisasterInfo::getDictValue,Collectors.counting())); + return proportionMap; + } + + /** + * 按月统计当年每个月的响应或者申请量 + * @return + */ + private List> getDisasterReponseByMouth(Integer type){ + //统计每个月的个数 + final String[] MONTH = new String[]{"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"}; + int year = LocalDate.now().getYear(); + List> resultList = new ArrayList<>(); + //查询开始时间 + String start = year + "-01-01 00:00:00"; + //查询结束时间 + String end = year + 1 + "-01-01 00:00:00"; + List> mapList = baseMapper.getDisasterInfoByMouth(start,end,type); + List disasterList = mapList.stream().map((map) -> { + return cn.hutool.core.bean.BeanUtil.mapToBean(map, DisasterData.class, true); + }).collect(Collectors.toList()); + int size = MONTH.length; + Map> collect = disasterList.stream().collect(Collectors.groupingBy(DisasterData::getDate)); + for (int i = 0; i < size; ++i) { + Map result = Maps.newLinkedHashMap(); + String month = MONTH[i]; + List disasterData = collect.get(month); + if (disasterData!=null&&!disasterData.isEmpty()){ + DisasterData disasterData1 = disasterData.get(0); + result.put(year+"-"+month,disasterData1); + }else { + result.put(year+"-"+month,null); + } + resultList.add(result); + } + return resultList; + + } } diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/PictureInfoServiceImpl.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/PictureInfoServiceImpl.java index c38ae12..9029ced 100644 --- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/PictureInfoServiceImpl.java +++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/PictureInfoServiceImpl.java @@ -35,6 +35,25 @@ implements PictureInfoService { */ private MinioTemplate minioTemplate; + /** + * 修改图片信息 + * @param pictureInfo + * @return + */ + @Override + public boolean updatePicture(PictureInfo pictureInfo) { + MultipartFile multipartFile = pictureInfo.getFile(); + BladeFile bladeFile = minioTemplate.putFile(multipartFile); + PictureInfo picture = new PictureInfo(); + picture.setLink(bladeFile.getLink()); + picture.setName(bladeFile.getOriginalName()); + picture.setSize(multipartFile.getSize()); + picture.setType(multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().indexOf(".")+1)); + picture.setIsMain(pictureInfo.getIsMain()); + picture.setId(pictureInfo.getId()); + return updateById(picture); + } + /** * 上传图片 * @param otherData diff --git a/kn-service/biz-vordm/src/main/resources/application.yml b/kn-service/biz-vordm/src/main/resources/application.yml index 6179445..62e9388 100644 --- a/kn-service/biz-vordm/src/main/resources/application.yml +++ b/kn-service/biz-vordm/src/main/resources/application.yml @@ -11,3 +11,7 @@ mybatis-plus: swagger: base-packages: - com.kening.vordm + +mail: + home: + link: http://192.168.31.77:8888 diff --git a/kn-service/biz-vordm/src/main/resources/templates/email.html b/kn-service/biz-vordm/src/main/resources/templates/email.html index e219419..141b70a 100644 --- a/kn-service/biz-vordm/src/main/resources/templates/email.html +++ b/kn-service/biz-vordm/src/main/resources/templates/email.html @@ -66,23 +66,17 @@
-

Hello, thank you for your registration

Your account number:

Your password:

The date you registered:

-

Please click login:Point-me jump

+

Please click login:Point-me jump

-