提交图片、其他数据、词云的功能-liyuchen

This commit is contained in:
李宇辰 2023-04-13 19:49:06 +08:00
parent 7963bb8a14
commit 7aded22ada
35 changed files with 1199 additions and 23 deletions

View File

@ -2,10 +2,18 @@ package com.kening.vordm.entity;
import lombok.Data;
/**
* 返回页面管理员数据实体
* @author liyuchen
* @date 2023/04/13
* @extends 灾害实体类
*/
@Data
public class AdminManager extends DisasterInfo{
private String managerName;
private Long managerId;
private Integer status;
}

View File

@ -10,4 +10,11 @@ import lombok.Data;
@Data
public class DataUpload extends EntityData{
private String uploaderName;
private String disasterType;
private String disasterKeyword;
private Long disasterId;
}

View File

@ -106,6 +106,11 @@ public class EntityData implements Serializable {
*/
private Integer uploadType;
/**
* 是否删除 0未删除 1已删除
*/
private Integer isDeleted;
@TableField(exist = false)
private static final long serialVersionUID = 1L;

View File

@ -76,6 +76,11 @@ public class Hotspot implements Serializable {
@ExcelIgnore
private Date reviewTime;
/**
* 是否删除 0未删除 1已删除
*/
private Integer isDeleted;
@ExcelIgnore
@TableField(exist = false)
private static final long serialVersionUID = 1L;

View File

@ -0,0 +1,25 @@
package com.kening.vordm.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
/**
* 其他数据实体类
* @extends 继承基础数据实体类
* @author liyuchen
* @date 2023/04/12
*/
@Data
public class OtherData{
private MultipartFile[] file;
private Integer isMain;
private String type;
private String remark;
private Long disasterId;
}

View File

@ -21,6 +21,11 @@ public class PictureInfo implements Serializable {
@TableId
private Long id;
/**
* 文件的原始名称
*/
private String name;
/**
* 数据存储链接
*/
@ -29,7 +34,7 @@ public class PictureInfo implements Serializable {
/**
* 数据大小byte
*/
private Integer size;
private Long size;
/**
* 数据格式jpgpng
@ -56,6 +61,11 @@ public class PictureInfo implements Serializable {
*/
private Long uploadId;
/**
* 是否删除 0未删除 1已删除
*/
private Integer isDeleted;
@TableField(exist = false)
private static final long serialVersionUID = 1L;

View File

@ -0,0 +1,35 @@
package com.kening.vordm.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 热点词云上传数据实体
* @author liyuchen
*/
@Data
public class VisualData {
private String areaCn;
private String areaEn;
private Integer frequency;
private Long disasterId;
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date time;
private String word;
/**
* 类型 1词云 2热点
* @description 区分上传的是词云还是热点数据
*/
private Integer type;
}

View File

@ -41,7 +41,7 @@ public class WordCLouds implements Serializable {
/**
* 灾害id
*/
private Integer disasterId;
private Long disasterId;
/**
* 数据条目创建时间
@ -63,6 +63,11 @@ public class WordCLouds implements Serializable {
*/
private Date reviewTime;
/**
* 是否删除 0未删除 1已删除
*/
private Integer isDeleted;
@TableField(exist = false)
private static final long serialVersionUID = 1L;

View File

@ -11,7 +11,7 @@ import org.springframework.cloud.client.SpringCloudApplication;
@SpringCloudApplication
public class VoRdmApplication {
public static void main(String[] args) {
BladeApplication.run("glj-"+CommonConstant.KN_VORDM_MODULE_NAME, VoRdmApplication.class, args);
BladeApplication.run(CommonConstant.KN_VORDM_MODULE_NAME, VoRdmApplication.class, args);
// BladeApplication.run("zqq-" + CommonConstant.KN_VORDM_MODULE_NAME, VoRdmApplication.class, args);
}
}

View File

@ -0,0 +1,31 @@
package com.kening.vordm.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
@Configuration
@EnableAsync
public class AsyncConfiguration {
// 声明一个线程池(并指定线程池的名字)
@Bean("taskExecutor")
public Executor asyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
//核心线程数5线程池创建时候初始化的线程数
executor.setCorePoolSize(5);
//最大线程数5线程池最大的线程数只有在缓冲队列满了之后才会申请超过核心线程数的线程
executor.setMaxPoolSize(5);
//缓冲队列500用来缓冲执行任务的队列
executor.setQueueCapacity(500);
//允许线程的空闲时间60秒当超过了核心线程出之外的线程在空闲时间到达之后会被销毁
executor.setKeepAliveSeconds(60);
//线程池名的前缀设置好了之后可以方便我们定位处理任务所在的线程池
executor.setThreadNamePrefix("DailyAsync-");
executor.initialize();
return executor;
}
}

View File

@ -19,7 +19,7 @@ import java.util.Map;
*/
@RestController
@AllArgsConstructor
@RequestMapping("/adminManager")
@RequestMapping("/ui/adminManager")
public class AdminManagerController {
private GuestManageDisasterRefService guestManageDisasterRefService;

View File

@ -20,7 +20,7 @@ import java.util.Map;
*/
@RestController
@AllArgsConstructor
@RequestMapping("/administrator")
@RequestMapping("/ui/administrator")
public class AdministratorController {
private AdministratorService service;
@ -46,14 +46,7 @@ public class AdministratorController {
*/
@PostMapping("/add")
public R<Boolean> add(@RequestBody Administrator administrator){
administrator.setTenantId("595035");
administrator.setUserType(1);
//密码默认为1234
administrator.setPassword(DigestUtil.encrypt("1234"));
//角色为chief
Long roleId = service.getChiefRole("chief");
administrator.setRoleId(String.valueOf(roleId));
return R.status(service.save(administrator));
return R.status(service.saveChiefAdmin(administrator));
}
/**

View File

@ -2,16 +2,17 @@ package com.kening.vordm.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.DataUpload;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.service.DataUploadService;
import lombok.AllArgsConstructor;
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.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 java.util.Date;
import java.util.List;
import java.util.Map;
/**
@ -20,11 +21,22 @@ import java.util.Map;
*/
@RestController
@AllArgsConstructor
@RequestMapping("/dataUpload")
@RequestMapping("/ui/dataUpload")
public class DataUploadController {
private DataUploadService service;
/**
* 灾害分页列表查询
* @param query
* @param params
* @return
*/
@GetMapping("/queryDisasterPage")
public R<IPage<DataUpload>> queryDisasterPage(Query query, @RequestParam Map<String,Object> params){
return R.data(service.queryDisasterPage(Condition.getPage(query),params));
}
/**
* 分页列表查询
* @param query
@ -33,6 +45,20 @@ public class DataUploadController {
*/
@GetMapping("/pages")
public R<IPage<DataUpload>> pages(Query query, @RequestParam Map<String,Object> params){
return R.data(service.page(Condition.getPage(query),Condition.getQueryWrapper(params,DataUpload.class)));
return R.data(service.queryPage(Condition.getPage(query),params));
}
/**
* 批量审批
* @return
*/
@PostMapping("/audit")
public R audit(@RequestBody List<EntityData> dataUploadList){
dataUploadList.forEach(data->{
data.setManagerId(AuthUtil.getUserId());
data.setReviewTime(new Date());
});
return R.status(service.updateBatchById(dataUploadList));
}
}

View File

@ -0,0 +1,74 @@
package com.kening.vordm.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.DataUpload;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.OtherData;
import com.kening.vordm.service.DataUploadService;
import com.kening.vordm.service.OtherDataService;
import lombok.AllArgsConstructor;
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.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 后端管理系统-其他数据上传界面
* @author liyuchen
*/
@RestController
@AllArgsConstructor
@RequestMapping("/ui/otherData")
public class OtherDataController {
private OtherDataService service;
/**
* 灾害分页列表查询
* @param query
* @param params
* @return
*/
@GetMapping("/queryDisasterPage")
public R<IPage<DataUpload>> queryDisasterPage(Query query, @RequestParam Map<String,Object> params){
return R.data(service.queryDisasterPage(Condition.getPage(query),params));
}
/**
* 分页列表查询
* @param query
* @param params
* @return
*/
@GetMapping("/pages")
public R<IPage<DataUpload>> pages(Query query, @RequestParam Map<String,Object> params){
return R.data(service.queryPage(Condition.getPage(query),params));
}
/**
* 批量审批
* @return
*/
@PostMapping("/upload")
public R audit(OtherData OtherData){
return R.status(service.uploadData(OtherData));
}
/**
* 删除
* @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));
}
}

View File

@ -0,0 +1,62 @@
package com.kening.vordm.controller;
import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.*;
import com.kening.vordm.service.HotspotService;
import com.kening.vordm.service.PictureInfoService;
import com.kening.vordm.service.VisualDataService;
import com.kening.vordm.service.WordCloudsService;
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.*;
import java.util.Map;
/**
* 后端管理系统-图片数据控制层
* @author liyuchen
*/
@RestController
@AllArgsConstructor
@RequestMapping("/ui/pictureInfo")
public class PictureInfoController {
private PictureInfoService service;
/**
* 图片分页列表查询
* @param query
* @param params
* @return
*/
@GetMapping("/page")
public R<IPage<PictureInfo>> page(Query query, @RequestParam Map<String,Object> params){
params.computeIfPresent("disasterId_equal", (k, v) -> Convert.toLong(v));
return R.data(service.page(Condition.getPage(query),Condition.getQueryWrapper(params,PictureInfo.class)));
}
/**
* 批量上传
* @return
*/
@PostMapping("/upload")
public R audit(OtherData OtherData){
return R.status(service.uploadData(OtherData));
}
/**
* 逻辑删除图片数据
* @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));
}
}

View File

@ -0,0 +1,95 @@
package com.kening.vordm.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.*;
import com.kening.vordm.service.HotspotService;
import com.kening.vordm.service.OtherDataService;
import com.kening.vordm.service.VisualDataService;
import com.kening.vordm.service.WordCloudsService;
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.*;
import java.util.Map;
/**
* 后端管理系统-词云热点数据控制层
* @author liyuchen
*/
@RestController
@AllArgsConstructor
@RequestMapping("/ui/visualData")
public class VisualDataController {
private VisualDataService service;
private WordCloudsService wordCloudsService;
private HotspotService hotspotService;
/**
* 灾害分页列表查询
* @param query
* @param params
* @return
*/
@GetMapping("/queryDisasterPage")
public R<IPage<DataUpload>> queryDisasterPage(Query query, @RequestParam Map<String,Object> params){
return R.data(service.queryDisasterPage(Condition.getPage(query),params));
}
/**
* 词云分页列表查询
* @param query
* @param params
* @return
*/
@GetMapping("/wordCloudPage")
public R<IPage<WordCLouds>> wordCloudPage(Query query, @RequestParam Map<String,Object> params){
return R.data(wordCloudsService.page(Condition.getPage(query),Condition.getQueryWrapper(params,WordCLouds.class)));
}
/**
* 热点分页列表查询
* @param query
* @param params
* @return
*/
@GetMapping("/hotspotPages")
public R<IPage<Hotspot>> hotspotPages(Query query, @RequestParam Map<String,Object> params){
return R.data(hotspotService.page(Condition.getPage(query),Condition.getQueryWrapper(params,Hotspot.class)));
}
/**
* 移除词云或者热点数据
* @param id
* @param type
* @return
*/
@DeleteMapping("/remove")
public R remove(@RequestParam Long id,@RequestParam Integer type){
if(type == 1){
WordCLouds wordCLouds = new WordCLouds();
wordCLouds.setId(id);
wordCLouds.setIsDeleted(1);
return R.status(wordCloudsService.updateById(wordCLouds));
}else {
Hotspot hotspot = new Hotspot();
hotspot.setId(id);
hotspot.setIsDeleted(1);
return R.status(hotspotService.updateById(hotspot));
}
}
/**
* 批量审批
* @return
*/
@PostMapping("/upload")
public R audit(@RequestBody VisualData visualData){
return R.status(service.uploadData(visualData));
}
}

View File

@ -1,15 +1,36 @@
package com.kening.vordm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.Administrator;
import com.kening.vordm.entity.DataUpload;
import com.kening.vordm.entity.EntityData;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 管理员用户Mapper层
* @author liycuhen
*/
public interface DataUploadMapper extends BaseMapper<DataUpload> {
public interface DataUploadMapper extends BaseMapper<EntityData> {
/**
* 灾害分页列表查询
* @param page
* @param params
* @return
*/
List<DataUpload> queryDisasterPage(IPage page,@Param("params") Map<String, Object> params);
/**
* 分页列表查询
* @param page
* @param params
* @return
*/
List<DataUpload> queryPage(IPage page,@Param("params") Map<String, Object> params);
/**
* 根据角色名称获取角色id

View File

@ -15,4 +15,37 @@
</if>
</where>
</select>
<select id="queryDisasterPage" resultType="com.kening.vordm.entity.DataUpload">
select
di.disaster_keyword,
bdb.dict_value as disasterType,
di.id as disasterId
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
left join blade_dict_biz bdb on di.disaster_type = dict_key
where ed.disaster_id is not null
group by di.id,bdb.dict_value
</select>
<select id="queryPage" resultType="com.kening.vordm.entity.DataUpload">
select
ed.id,ed.title,ed.size,
ed.type,ed.link,ed.remark,
ed.upload_time,ed.disaster_id,ed.visual_flag,
ed.visual_lon,ed.visual_lat,
ed.status,ed.uploader_id,ed.manager_id,
ed.review_time, ed.source_organization,
ed.upload_type,
bu.name as uploaderName
from entity_data ed
left join blade_user bu on bu.id = ed.uploader_id
<where>
and ed.status = 0
<if test="params.disasterId!=null">
and ed.disaster_id = #{params.disasterId}
</if>
</where>
</select>
</mapper>

View File

@ -25,6 +25,7 @@
gmdr.manager_id,
gmdr.disaster_id,
gmdr.response_organization,
gmdr.status,
bu.name as managerName,
bdb.dict_value as disasterType,
di.disaster_keyword,
@ -37,6 +38,7 @@
left join blade_user bu on gmdr.manager_id = bu.id
left join blade_dict_biz bdb on bdb.dict_key = di.disaster_type
<where>
and gmdr.status = 0
<if test="params.managerName!=null and params.managerName!=''">
and bu.name like concat('%',#{params.managerName},'%')
</if>

View File

@ -0,0 +1,40 @@
package com.kening.vordm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.DataUpload;
import com.kening.vordm.entity.EntityData;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 管理员用户Mapper层
* @author liycuhen
*/
public interface OtherDataMapper extends BaseMapper<EntityData> {
/**
* 灾害分页列表查询
* @param page
* @param params
* @return
*/
List<DataUpload> queryDisasterPage(IPage page,@Param("params") Map<String, Object> params);
/**
* 分页列表查询
* @param page
* @param params
* @return
*/
List<DataUpload> queryPage(IPage page,@Param("params") Map<String, Object> params);
/**
* 根据角色名称获取角色id
* @param roleName
* @return
*/
Long getChiefRole(@Param("roleName") String roleName);
}

View File

@ -0,0 +1,53 @@
<?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.kening.vordm.mapper.OtherDataMapper">
<select id="getChiefRole" resultType="java.lang.Long">
select
id
from blade_role
<where>
and is_deleted = 0
<if test="roleName!=null and roleName!=''">
and role_name = #{roleName}
</if>
</where>
</select>
<select id="queryDisasterPage" resultType="com.kening.vordm.entity.DataUpload">
select
di.disaster_keyword,
bdb.dict_value as disasterType,
di.id as disasterId
from disaster_info di
left join blade_dict_biz bdb on di.disaster_type = dict_key
</select>
<select id="queryPage" resultType="com.kening.vordm.entity.DataUpload">
select
ed.id,ed.title,ed.size,
ed.type,ed.link,ed.remark,
ed.upload_time,ed.disaster_id,ed.visual_flag,
ed.visual_lon,ed.visual_lat,
ed.status,ed.uploader_id,ed.manager_id,
ed.review_time, ed.source_organization,
ed.upload_type,
bu.name as uploaderName
from entity_data ed
left join blade_user bu on bu.id = ed.uploader_id
<where>
and ed.status = 1
<if test="params.disasterId!=null">
and ed.disaster_id = #{params.disasterId}
</if>
<if test="params.type!=null and params.type!=''" >
and ed.type = #{params.type}
</if>
<if test="params.isDeleted!=null">
and ed.is_deleted = #{params.isDeleted}
</if>
</where>
</select>
</mapper>

View File

@ -0,0 +1,40 @@
package com.kening.vordm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.DataUpload;
import com.kening.vordm.entity.EntityData;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 管理员用户Mapper层
* @author liycuhen
*/
public interface VisualDataMapper extends BaseMapper<EntityData> {
/**
* 灾害分页列表查询
* @param page
* @param params
* @return
*/
List<DataUpload> queryDisasterPage(IPage page,@Param("params") Map<String, Object> params);
/**
* 分页列表查询
* @param page
* @param params
* @return
*/
List<DataUpload> queryPage(IPage page,@Param("params") Map<String, Object> params);
/**
* 根据角色名称获取角色id
* @param roleName
* @return
*/
Long getChiefRole(@Param("roleName") String roleName);
}

View File

@ -0,0 +1,47 @@
<?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.kening.vordm.mapper.VisualDataMapper">
<select id="getChiefRole" resultType="java.lang.Long">
select
id
from blade_role
<where>
and is_deleted = 0
<if test="roleName!=null and roleName!=''">
and role_name = #{roleName}
</if>
</where>
</select>
<select id="queryDisasterPage" resultType="com.kening.vordm.entity.DataUpload">
select
di.disaster_keyword,
bdb.dict_value as disasterType,
di.id as disasterId
from disaster_info di
left join blade_dict_biz bdb on di.disaster_type = dict_key
</select>
<select id="queryPage" resultType="com.kening.vordm.entity.DataUpload">
select
ed.id,ed.title,ed.size,
ed.type,ed.link,ed.remark,
ed.upload_time,ed.disaster_id,ed.visual_flag,
ed.visual_lon,ed.visual_lat,
ed.status,ed.uploader_id,ed.manager_id,
ed.review_time, ed.source_organization,
ed.upload_type,
bu.name as uploaderName
from entity_data ed
left join blade_user bu on bu.id = ed.uploader_id
<where>
and ed.status = 1
<if test="params.disasterId!=null">
and ed.disaster_id = #{params.disasterId}
</if>
</where>
</select>
</mapper>

View File

@ -16,4 +16,11 @@ public interface AdministratorService extends BaseService<Administrator> {
* @return
*/
Long getChiefRole(String roleName);
/**
* 保存chief管理员信息
* @param administrator
* @return
*/
boolean saveChiefAdmin(Administrator administrator);
}

View File

@ -1,15 +1,35 @@
package com.kening.vordm.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.Administrator;
import com.kening.vordm.entity.DataUpload;
import com.kening.vordm.entity.EntityData;
import org.springblade.core.mp.base.BaseService;
import java.util.Map;
/**
* 管理员用户服务层
* @author liyuchen
*/
public interface DataUploadService extends IService<DataUpload> {
public interface DataUploadService extends IService<EntityData> {
/**
* 灾害分页列表查询
* @param page
* @param params
* @return
*/
IPage queryDisasterPage(IPage page, Map<String,Object> params);
/**
* 分页列表查询
* @param page
* @param params
* @return
*/
IPage queryPage(IPage page, Map<String,Object> params);
/**
* 根据角色名称获取角色id

View File

@ -13,6 +13,11 @@ import java.util.Map;
* @createDate 2023-04-04 15:54:30
*/
public interface GuestManageDisasterRefService extends IService<GuestManageDisasterRef> {
/**
* 分页查询角色为普通管理员shuju
* @param page
* @param params
* @return
*/
IPage queryPage(IPage page, Map<String,Object> params);
}

View File

@ -0,0 +1,45 @@
package com.kening.vordm.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.OtherData;
import java.util.Map;
/**
* 管理员用户服务层
* @author liyuchen
*/
public interface OtherDataService extends IService<EntityData> {
/**
* 灾害分页列表查询
* @param page
* @param params
* @return
*/
IPage queryDisasterPage(IPage page, Map<String,Object> params);
/**
* 分页列表查询
* @param page
* @param params
* @return
*/
IPage queryPage(IPage page, Map<String,Object> params);
/**
* 根据角色名称获取角色id
* @param roleName
* @return
*/
Long getChiefRole(String roleName);
/**
* 上传数据
* @param OtherData
* @return
*/
boolean uploadData(OtherData OtherData);
}

View File

@ -2,6 +2,7 @@ package com.kening.vordm.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.OtherData;
import com.kening.vordm.entity.PictureInfo;
/**
@ -11,4 +12,9 @@ import com.kening.vordm.entity.PictureInfo;
*/
public interface PictureInfoService extends IService<PictureInfo> {
/**
* 上传图片信息数据
* @return
*/
boolean uploadData(OtherData otherData);
}

View File

@ -0,0 +1,46 @@
package com.kening.vordm.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.OtherData;
import com.kening.vordm.entity.VisualData;
import java.util.Map;
/**
* 管理员用户服务层
* @author liyuchen
*/
public interface VisualDataService extends IService<EntityData> {
/**
* 灾害分页列表查询
* @param page
* @param params
* @return
*/
IPage queryDisasterPage(IPage page, Map<String,Object> params);
/**
* 分页列表查询
* @param page
* @param params
* @return
*/
IPage queryPage(IPage page, Map<String,Object> params);
/**
* 根据角色名称获取角色id
* @param roleName
* @return
*/
Long getChiefRole(String roleName);
/**
* 上传数据
* @param visualData
* @return
*/
boolean uploadData(VisualData visualData);
}

View File

@ -1,19 +1,33 @@
package com.kening.vordm.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.Administrator;
import com.kening.vordm.mapper.AdministratorMapper;
import com.kening.vordm.service.AdministratorService;
import com.kening.vordm.util.SendMailUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.DigestUtil;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.Map;
/**
* 管理员用户实现类
* @author liyuchen
*/
@Slf4j
@Service
@AllArgsConstructor
public class AdministratorServiceImpl extends BaseServiceImpl<AdministratorMapper,Administrator> implements AdministratorService {
private SendMailUtil sendMailUtil;
/**
* 根据角色名称获取角色id
* @param roleName
@ -23,4 +37,43 @@ public class AdministratorServiceImpl extends BaseServiceImpl<AdministratorMappe
public Long getChiefRole(String roleName) {
return baseMapper.getChiefRole(roleName);
}
/**
* 保存chief管理员 并发送邮件
* @param administrator
* @return
*/
@Override
public boolean saveChiefAdmin(Administrator administrator) {
//校验账号是否存在
Administrator admin = getOne(Wrappers.<Administrator>lambdaQuery().eq(Administrator::getAccount,administrator.getAccount()));
if(admin!=null){
throw new RuntimeException("The account has been registered");
}
administrator.setTenantId("595035");
administrator.setUserType(1);
administrator.setRealName(administrator.getName());
//密码默认为1234
administrator.setPassword(DigestUtil.encrypt("1234"));
//角色为chief
Long roleId = baseMapper.getChiefRole("chief");
administrator.setRoleId(String.valueOf(roleId));
save(administrator);
try{
//设置标题
String subject = "Welcome to register";
//设置要使用的模板
String emailTemplate = "email";
//设置要填充模板的参数
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("account", administrator.getAccount());
dataMap.put("password", "1234");
dataMap.put("time", LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd")));
sendMailUtil.sendTemplateMail(administrator.getEmail(),subject,emailTemplate,dataMap);
log.info("邮件发送成功");
}catch (Exception e){
log.error("发送邮件失败:{}",e);
}
return Boolean.TRUE;
}
}

View File

@ -1,8 +1,10 @@
package com.kening.vordm.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.Administrator;
import com.kening.vordm.entity.DataUpload;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.mapper.AdministratorMapper;
import com.kening.vordm.mapper.DataUploadMapper;
import com.kening.vordm.service.AdministratorService;
@ -10,12 +12,38 @@ import com.kening.vordm.service.DataUploadService;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* 管理员用户实现类
* @author liyuchen
*/
@Service
public class DataUploadServiceImpl extends ServiceImpl<DataUploadMapper, DataUpload> implements DataUploadService {
public class DataUploadServiceImpl extends ServiceImpl<DataUploadMapper, EntityData> implements DataUploadService {
/**
* 灾害分页列表查询
* @param page
* @param params
* @return
*/
@Override
public IPage queryDisasterPage(IPage page, Map<String, Object> params) {
page.setRecords(baseMapper.queryDisasterPage(page,params));
return page;
}
/**
* 分页列表查询
* @param page
* @param params
* @return
*/
@Override
public IPage queryPage(IPage page, Map<String, Object> params) {
page.setRecords(baseMapper.queryPage(page,params));
return page;
}
/**
* 根据角色名称获取角色id

View File

@ -0,0 +1,111 @@
package com.kening.vordm.service.impl;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.OtherData;
import com.kening.vordm.mapper.DataUploadMapper;
import com.kening.vordm.mapper.OtherDataMapper;
import com.kening.vordm.service.DataUploadService;
import com.kening.vordm.service.OtherDataService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.oss.MinioTemplate;
import org.springblade.core.oss.model.BladeFile;
import org.springblade.core.secure.utils.AuthUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 管理员用户实现类
* @author liyuchen
*/
@Slf4j
@Service
@AllArgsConstructor
public class OtherDataServiceImpl extends ServiceImpl<OtherDataMapper, EntityData> implements OtherDataService {
/**
* 对象存储模块
*/
private MinioTemplate minioTemplate;
/**
* 灾害分页列表查询
* @param page
* @param params
* @return
*/
@Override
public IPage queryDisasterPage(IPage page, Map<String, Object> params) {
page.setRecords(baseMapper.queryDisasterPage(page,params));
return page;
}
/**
* 分页列表查询
* @param page
* @param params
* @return
*/
@Override
public IPage queryPage(IPage page, Map<String, Object> params) {
page.setRecords(baseMapper.queryPage(page,params));
return page;
}
/**
* 根据角色名称获取角色id
* @param roleName
* @return
*/
@Override
public Long getChiefRole(String roleName) {
return baseMapper.getChiefRole(roleName);
}
/**
* 上传数据
* @param OtherData
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean uploadData(OtherData OtherData) {
log.info("上传数据:{}",OtherData);
//路径拼接
List<String> link = new ArrayList<>();
//文件大小
List<Long> size = new ArrayList<>();
for (MultipartFile multipartFile : OtherData.getFile()) {
BladeFile bladeFile = minioTemplate.putFile(multipartFile);
//获取文件大小
Long fileSize = multipartFile.getSize();
link.add(bladeFile.getLink());
size.add(fileSize);
}
Long sum = size.stream().reduce(Long::sum).orElse(0L);
//创建实体数据
EntityData entityData = new EntityData();
//实体数据
entityData.setType(OtherData.getType());
entityData.setSize(sum);
entityData.setLink(StringUtils.join(link,","));
entityData.setDisasterId(OtherData.getDisasterId());
entityData.setUploadTime(new Date());
entityData.setRemark(OtherData.getRemark());
entityData.setStatus(1);
entityData.setUploadType(2);
entityData.setUploaderId(AuthUtil.getUserId());
entityData.setManagerId(AuthUtil.getUserId());
entityData.setReviewTime(new Date());
return save(entityData);
}
}

View File

@ -1,18 +1,60 @@
package com.kening.vordm.service.impl;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.OtherData;
import com.kening.vordm.entity.PictureInfo;
import com.kening.vordm.mapper.PictureInfoMapper;
import com.kening.vordm.service.PictureInfoService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.oss.MinioTemplate;
import org.springblade.core.oss.model.BladeFile;
import org.springblade.core.secure.utils.AuthUtil;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author G1393
* @description 针对表picture_info(照片存储表)的数据库操作Service实现
* @createDate 2023-04-04 15:54:31
*/
@Slf4j
@Service
@AllArgsConstructor
public class PictureInfoServiceImpl extends ServiceImpl<PictureInfoMapper, PictureInfo>
implements PictureInfoService {
/**
* 对象存储模块
*/
private MinioTemplate minioTemplate;
/**
* 上传图片
* @param otherData
* @return
*/
@Override
public boolean uploadData(OtherData otherData) {
log.info("上传数据:{}",otherData);
List<PictureInfo> pictureInfoList = new ArrayList<>();
for (MultipartFile multipartFile : otherData.getFile()) {
BladeFile bladeFile = minioTemplate.putFile(multipartFile);
PictureInfo pictureInfo = new PictureInfo();
pictureInfo.setLink(bladeFile.getLink());
pictureInfo.setDisasterId(otherData.getDisasterId());
pictureInfo.setName(bladeFile.getOriginalName());
pictureInfo.setSize(multipartFile.getSize());
pictureInfo.setType(multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().indexOf(".")+1));
pictureInfo.setIsMain(otherData.getIsMain());
pictureInfoList.add(pictureInfo);
}
return saveBatch(pictureInfoList);
}
}

View File

@ -0,0 +1,107 @@
package com.kening.vordm.service.impl;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.*;
import com.kening.vordm.mapper.OtherDataMapper;
import com.kening.vordm.mapper.VisualDataMapper;
import com.kening.vordm.service.HotspotService;
import com.kening.vordm.service.OtherDataService;
import com.kening.vordm.service.VisualDataService;
import com.kening.vordm.service.WordCloudsService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.oss.MinioTemplate;
import org.springblade.core.oss.model.BladeFile;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 管理员用户实现类
* @author liyuchen
*/
@Slf4j
@Service
@AllArgsConstructor
public class VisualDataServiceImpl extends ServiceImpl<VisualDataMapper, EntityData> implements VisualDataService {
/**
* 对象存储模块
*/
private MinioTemplate minioTemplate;
private WordCloudsService wordCloudsService;
private HotspotService hotspotService;
/**
* 灾害分页列表查询
* @param page
* @param params
* @return
*/
@Override
public IPage queryDisasterPage(IPage page, Map<String, Object> params) {
page.setRecords(baseMapper.queryDisasterPage(page,params));
return page;
}
/**
* 分页列表查询
* @param page
* @param params
* @return
*/
@Override
public IPage queryPage(IPage page, Map<String, Object> params) {
page.setRecords(baseMapper.queryPage(page,params));
return page;
}
/**
* 根据角色名称获取角色id
* @param roleName
* @return
*/
@Override
public Long getChiefRole(String roleName) {
return baseMapper.getChiefRole(roleName);
}
/**
* 上传数据
* @param visualData
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean uploadData(VisualData visualData) {
if(visualData.getType() == 1){
//词云
WordCLouds wordCLouds = new WordCLouds();
BeanUtil.copyProperties(visualData,wordCLouds);
wordCLouds.setStatus(1);
wordCLouds.setManagerId(AuthUtil.getUserId());
wordCLouds.setReviewTime(new Date());
return wordCloudsService.save(wordCLouds);
}else{
//热点
Hotspot hotspot = new Hotspot();
BeanUtil.copyProperties(visualData,hotspot);
hotspot.setStatus(1);
hotspot.setManagerId(AuthUtil.getUserId());
hotspot.setReviewTime(new Date());
return hotspotService.save(hotspot);
}
}
}

View File

@ -0,0 +1,89 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>邮件模板</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: Arial, Helvetica, sans-serif;
}
body {
background-color: #ECECEC;
}
.container {
width: 800px;
margin: 50px auto;
}
.header {
height: 80px;
background-color: #49bcff;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
padding-left: 30px;
}
.header h2 {
padding-top: 25px;
color: white;
}
.content {
background-color: #fff;
padding-left: 30px;
padding-bottom: 30px;
border-bottom: 1px solid #ccc;
}
.content h2 {
padding-top: 20px;
padding-bottom: 20px;
}
.content p {
padding-top: 10px;
}
.footer {
background-color: #fff;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
padding: 35px;
}
.footer p {
color: #747474;
padding-top: 10px;
}
</style>
</head>
<body>
<!--您好,感谢您的注册,这是一封验证邮件,请点击下面的链接完成注册,感谢您的支持!
<a href="#" th:href="@{http://www.baidu.com/register/{id}(id=${id})}">激活账号</a>-->
<div class="container">
<!-- <div class="header">
<h1>欢迎加入宠物之家!</h1>
</div>-->
<div class="content">
<h2>Hello, thank you for your registration</h2>
<p>Your account number<b><span th:text="${account}"></span></b></p>
<p>Your password<b><span th:text="${password}"></span></b></p>
<p>The date you registered<b><span th:text="${time}"></span></b></p>
<P><b>Please click login:<a href="http://192.168.31.77:8888">Point-me jump</a></b></P>
<p></p>
<!-- <p>当您在使用本网站时,务必要遵守法律法规</p>
<p>如果您有什么疑问可以联系管理员Email: <b>r1624603357@126.com</b></p>-->
</div>
<div class="footer">
<p>This is system mail, please do not reply</p>
<p>Please take good care of your information to avoid misappropriation</p>
<!-- <p>©Rk</p>-->
</div>
</div>
</body>
</html>