Commit 0445dac9 authored by 廖旭伟's avatar 廖旭伟

事项预览次数接口,事项材料本地新增后自动转换图片

parent 8610a603
This diff is collapsed.
package com.mortals.xhx.module.matter.service.impl; package com.mortals.xhx.module.matter.service.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.RandomUtil;
import com.mortals.framework.exception.AppException;
import com.mortals.xhx.common.utils.HttpDownloadUtil;
import com.mortals.xhx.common.utils.WordUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.matter.dao.MatterDatumFileDao; import com.mortals.xhx.module.matter.dao.MatterDatumFileDao;
...@@ -6,6 +12,8 @@ import com.mortals.xhx.module.matter.model.MatterDatumFileEntity; ...@@ -6,6 +12,8 @@ import com.mortals.xhx.module.matter.model.MatterDatumFileEntity;
import com.mortals.xhx.module.matter.service.MatterDatumFileService; import com.mortals.xhx.module.matter.service.MatterDatumFileService;
import javax.naming.Context; import javax.naming.Context;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
...@@ -19,10 +27,63 @@ import java.util.Map; ...@@ -19,10 +27,63 @@ import java.util.Map;
@Service("matterDatumFileService") @Service("matterDatumFileService")
public class MatterDatumFileServiceImpl extends AbstractCRUDServiceImpl<MatterDatumFileDao, MatterDatumFileEntity, Long> implements MatterDatumFileService { public class MatterDatumFileServiceImpl extends AbstractCRUDServiceImpl<MatterDatumFileDao, MatterDatumFileEntity, Long> implements MatterDatumFileService {
@Value("${upload.path}")
private String filePath;
public static String word[] = {"doc", "dot", "wps", "wpt", "docx", "dotx", "docm", "dotm"};
public static String imgs[] = {"jpg", "png", "jpeg", "gif"};
public static String pdf[] = {"pdf"};
@Override @Override
public void deleteFileByDatumId(Long datumId, Context context) { public void deleteFileByDatumId(Long datumId, Context context) {
Map<String, Object> condition = new HashMap<>(); Map<String, Object> condition = new HashMap<>();
condition.put("datumId", datumId); condition.put("datumId", datumId);
this.dao.delete(condition); this.dao.delete(condition);
} }
@Override
protected void saveBefore(MatterDatumFileEntity entity, com.mortals.framework.model.Context context) throws AppException {
this.validData(entity, context);
String rootPath = this.filePath.endsWith("/") ? this.filePath : this.filePath + "/";
String prePath = "file/preview/";
String savePath = entity.getLocalFileUrl();
String newName = genPreviewPath(rootPath, prePath, savePath);
entity.setPreviewUrl(prePath+newName);
}
private String genPreviewPath(String rootPath, String prePath, String tempPath) {
//生成样表预览图片
String samplePath = rootPath + tempPath;
String filePath = rootPath + prePath;
File pathDir = new File(filePath);
if (!pathDir.exists()) {
pathDir.mkdirs();
}
String newName = RandomUtil.randomNumbers(12) + ".jpg";
String filePathAll = filePath + newName;
//判断文件类型是否为doc pdf jpg png 等
String extName = FileUtil.getSuffix(samplePath);
if (this.isExsitArry(extName, word)) {
WordUtil.convertWordToJPEG(samplePath, filePathAll);
} else if (this.isExsitArry(extName, pdf)) {
WordUtil.pdfToImages(samplePath, filePathAll);
} else if (this.isExsitArry(extName, imgs)) {
try {
com.mortals.framework.util.FileUtil.copyFile(samplePath, filePathAll);
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
return newName;
}
public boolean isExsitArry(String chex, String arry[]) {
for (String ex : arry) {
if (chex.equalsIgnoreCase(ex)) {
return true;
}
}
return false;
}
} }
\ No newline at end of file
...@@ -11,4 +11,14 @@ import java.util.List; ...@@ -11,4 +11,14 @@ import java.util.List;
*/ */
public class SiteMatterVo extends BaseEntityLong { public class SiteMatterVo extends BaseEntityLong {
/** 材料数量 */
private Integer datumCount;
public Integer getDatumCount() {
return datumCount;
}
public void setDatumCount(Integer datumCount) {
this.datumCount = datumCount;
}
} }
\ No newline at end of file
...@@ -11,4 +11,9 @@ import com.mortals.xhx.module.site.model.SiteMatterEntity; ...@@ -11,4 +11,9 @@ import com.mortals.xhx.module.site.model.SiteMatterEntity;
*/ */
public interface SiteMatterService extends ICRUDService<SiteMatterEntity,Long>{ public interface SiteMatterService extends ICRUDService<SiteMatterEntity,Long>{
/**
* 增加浏览次数
* @param id
*/
void addViewsCount(Long id);
} }
\ No newline at end of file
package com.mortals.xhx.module.site.service.impl; package com.mortals.xhx.module.site.service.impl;
import com.mortals.framework.model.PageInfo;
import com.mortals.xhx.module.matter.model.MatterDatumEntity;
import com.mortals.xhx.module.matter.model.MatterDatumFileEntity;
import com.mortals.xhx.module.matter.model.MatterDatumFileQuery;
import com.mortals.xhx.module.matter.model.MatterDatumQuery;
import com.mortals.xhx.module.matter.service.MatterDatumService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -6,6 +14,11 @@ import com.mortals.framework.model.Context; ...@@ -6,6 +14,11 @@ import com.mortals.framework.model.Context;
import com.mortals.xhx.module.site.dao.SiteMatterDao; import com.mortals.xhx.module.site.dao.SiteMatterDao;
import com.mortals.xhx.module.site.model.SiteMatterEntity; import com.mortals.xhx.module.site.model.SiteMatterEntity;
import com.mortals.xhx.module.site.service.SiteMatterService; import com.mortals.xhx.module.site.service.SiteMatterService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* SiteMatterService * SiteMatterService
* 站点事项 service实现 * 站点事项 service实现
...@@ -15,5 +28,42 @@ import com.mortals.xhx.module.site.service.SiteMatterService; ...@@ -15,5 +28,42 @@ import com.mortals.xhx.module.site.service.SiteMatterService;
*/ */
@Service("siteMatterService") @Service("siteMatterService")
public class SiteMatterServiceImpl extends AbstractCRUDServiceImpl<SiteMatterDao, SiteMatterEntity, Long> implements SiteMatterService { public class SiteMatterServiceImpl extends AbstractCRUDServiceImpl<SiteMatterDao, SiteMatterEntity, Long> implements SiteMatterService {
@Autowired
private MatterDatumService matterDatumService;
@Override
protected void findAfter(SiteMatterEntity params, PageInfo pageInfo, Context context, List<SiteMatterEntity> list) throws AppException {
list.stream().peek(item->{
List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.find(new MatterDatumQuery().matterId(item.getMatterId()));
if(CollectionUtils.isNotEmpty(matterDatumFileEntities)) {
item.setDatumCount(matterDatumFileEntities.size());
}else {
item.setDatumCount(0);
}
}).count();
super.findAfter(params, context, list);
}
@Override
protected void findAfter(SiteMatterEntity params, Context context, List<SiteMatterEntity> list) throws AppException {
list.stream().peek(item->{
List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.find(new MatterDatumQuery().matterId(item.getMatterId()));
if(CollectionUtils.isNotEmpty(matterDatumFileEntities)) {
item.setDatumCount(matterDatumFileEntities.size());
}else {
item.setDatumCount(0);
}
}).count();
super.findAfter(params, context, list);
}
@Override
public void addViewsCount(Long id) {
Map<String,Object> data = new HashMap<>();
data.put("viewsCountIncrement",1);
Map<String,Object> condition = new HashMap<>();
condition.put("id",id);
dao.update(data,condition);
}
} }
\ No newline at end of file
package com.mortals.xhx.module.site.web; package com.mortals.xhx.module.site.web;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.site.model.SiteMatterEntity; import com.mortals.xhx.module.site.model.SiteMatterEntity;
import com.mortals.xhx.module.site.model.SiteMatterQuery;
import com.mortals.xhx.module.site.service.SiteMatterService; import com.mortals.xhx.module.site.service.SiteMatterService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
/** /**
* *
...@@ -34,5 +37,17 @@ public class SiteMatterController extends BaseCRUDJsonBodyMappingController<Site ...@@ -34,5 +37,17 @@ public class SiteMatterController extends BaseCRUDJsonBodyMappingController<Site
super.init(model, context); super.init(model, context);
} }
@Override
protected void doListBefore(SiteMatterEntity query, Map<String, Object> model, Context context) throws AppException {
Map<String,String> orderMap = new HashMap<>();
orderMap.put("viewsCount","DESC");
query.setOrderCols(orderMap);
super.doListBefore(query,model,context);
}
@Override
protected int viewAfter(Long id, Map<String, Object> model, SiteMatterEntity entity, Context context) throws AppException {
this.service.addViewsCount(id);
return 1;
}
} }
\ No newline at end of file
...@@ -36,14 +36,17 @@ ...@@ -36,14 +36,17 @@
<resultMap type="MatterDatumFileEntity" id="MatterDatumFileEntity-Map"> <resultMap type="MatterDatumFileEntity" id="MatterDatumFileEntity-Map">
<result property="id" column="id" /> <result property="id" column="id" />
<result property="datumId" column="datumId" /> <result property="datumId" column="datumId" />
<result property="matterCode" column="matterCode" />
<result property="materialName" column="materialName" />
<result property="fileName" column="fileName" /> <result property="fileName" column="fileName" />
<result property="fileUrl" column="fileUrl" /> <result property="fileUrl" column="fileUrl" />
<result property="localFileUrl" column="localFileUrl" />
<result property="filetype" column="filetype" /> <result property="filetype" column="filetype" />
<result property="source" column="source" /> <result property="source" column="source" />
<result property="previewUrl" column="previewUrl" />
<result property="createTime" column="createTime" /> <result property="createTime" column="createTime" />
<result property="createUserId" column="createUserId" /> <result property="createUserId" column="createUserId" />
<result property="updateTime" column="updateTime" /> <result property="updateTime" column="updateTime" />
<result property="materialName" column="materialName" />
</resultMap> </resultMap>
...@@ -133,7 +136,7 @@ ...@@ -133,7 +136,7 @@
<!-- 子表所有列 --> <!-- 子表所有列 -->
<sql id="_columns_sub"> <sql id="_columns_sub">
<trim suffixOverrides="," suffix=""> <trim suffixOverrides="," suffix="">
b.id,b.datumId,b.fileName,b.fileUrl,b.filetype,b.source,b.createTime,b.createUserId,b.updateTime,b.materialName, b.id,b.datumId,b.matterCode,b.materialName,b.fileName,b.fileUrl,b.filetype,b.source,b.localFileUrl,b.previewUrl,b.createTime,b.createUserId,b.updateTime,b.materialName,
</trim> </trim>
</sql> </sql>
<!-- 新增 区分主键自增加还是业务插入 --> <!-- 新增 区分主键自增加还是业务插入 -->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment