use of com.bc.pmpheep.service.exception.CheckedServiceException in project pmph by BCSquad.
the class MaterialServiceImpl method addOrUpdateMaterial.
@Override
public Long addOrUpdateMaterial(HttpServletRequest request, MaterialVO materialVO, // MultipartFile[] noteFiles,
boolean isUpdate) throws CheckedServiceException, IOException {
if (null == request.getSession(false)) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "会话过期");
}
// 获取当前用户
String sessionId = CookiesUtil.getSessionId(request);
PmphUser pmphUser = SessionUtil.getPmphUserBySessionId(sessionId);
if (null == pmphUser) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "请求用户不存在");
}
Material material = materialVO.getMaterial();
// 如果是更新教材,判断主键
if (isUpdate && (null == material.getId())) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "教材更新时主键为空");
}
// 教材名称的验证
if (StringUtil.isEmpty(material.getMaterialName())) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "教材名称为空");
}
if (material.getMaterialName().length() > 50) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "教材名称过长");
}
// 教材轮次验证
if (null == material.getMaterialRound()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "教材轮次为空");
}
// 显示报名截止时间
if (null == material.getDeadline()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "显示报名截止时间为空");
}
// 如果是新建教材,显示报名截止时间必须大于当前时间
if (!isUpdate && material.getDeadline().getTime() <= new Date().getTime()) {
// throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL,
// CheckedExceptionResult.ILLEGAL_PARAM,
// "显示报名截止时间必须大于当前时间");
}
// 实际报名截止日期
if (null == material.getActualDeadline()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "实际报名截止日期为空");
}
// 如果是新建教材,实际报名截止日期必须大于当前时间
if (!isUpdate && material.getActualDeadline().getTime() <= new Date().getTime()) {
// throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL,
// CheckedExceptionResult.ILLEGAL_PARAM,
// "实际报名截止日期必须大于当前时间");
}
// 实际报名截止日期和显示报名截止时间比较
if (material.getActualDeadline().getTime() < material.getDeadline().getTime()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "实际报名截止日期不能小于显示报名截止时间");
}
// 年龄计算截止日期
if (null == material.getAgeDeadline()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "年龄计算截止日期为空");
}
// 邮寄地址验证
if (StringUtil.isEmpty(material.getMailAddress())) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "邮寄地址为空");
}
if (material.getMailAddress().length() > 100) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "邮寄地址过长");
}
// 教材类型验证
String materialType = materialVO.getMaterialType();
if (StringUtil.isEmpty(materialType) || "[]".equals(materialType.replace(" ", "")) || "[NaN]".equals(materialType.replace(" ", ""))) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "教材类型为空");
}
if (null == material.getDirector()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "教材主任为空");
}
// 教材通知备注内容验证
MaterialExtra materialExtra = materialVO.getMaterialExtra();
if (StringUtil.isEmpty(materialExtra.getNotice())) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "教材通知内容为空");
}
if (materialExtra.getNotice().length() > 2000) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "教材通知内容过长");
}
// }
if ("null".equals(materialExtra.getNote()) || "[]".equals(materialExtra.getNote())) {
materialExtra.setNote("");
}
if (null != materialExtra.getNote() && materialExtra.getNote().length() > 2000) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "教材备注内容过长");
}
Gson gson = new Gson();
// 获取主任
PmphUser director = pmphUserService.get(material.getDirector());
if (null == director) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "找不到对应的主任");
} else if (null == director.getDepartmentId()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "主任对应的机构为空");
}
// //给主任添加角色
// String roleName="主任";//通过roleName查询roleid
// List<PmphRole> pmphRoles=pmphRoleService.getList(roleName);
// if (ObjectUtil.isNull(material.getDirector()) ||
// ObjectUtil.isNull(pmphRoles.get(0).getId())) {
// throw new CheckedServiceException(CheckedExceptionBusiness.ROLE_MANAGEMENT,
// CheckedExceptionResult.NULL_PARAM, "角色ID或主任ID为空时禁止新增");
// }
// //先查看该主任是否已有主任角色 没有则新加
// List<PmphUserRole>
// pmphUserRoles=pmphRoleService.getUserRoleList(material.getDirector(),pmphRoles.get(0).getId());
// if(ObjectUtil.isNull(pmphUserRoles)&&pmphUserRoles.size() == 0){
// pmphRoleService.addUserRole(material.getDirector(),
// pmphRoles.get(0).getId());
// }
// 教材所属部门
material.setDepartmentId(director.getDepartmentId());
// 修改人
material.setMenderId(pmphUser.getId());
// 教材类型
List<Long> materialTypeList = gson.fromJson(materialType, new TypeToken<ArrayList<Long>>() {
}.getType());
material.setMaterialType(materialTypeList.get(materialTypeList.size() - 1));
// 设置权限
material.setPlanPermission(Integer.valueOf(materialVO.getCehuaPowers(), 2));
material.setProjectPermission(Integer.valueOf(materialVO.getProjectEditorPowers(), 2));
// 保存或者更新教材
if (isUpdate) {
materialDao.updateMaterial(material);
} else {
// 创建人
material.setFounderId(pmphUser.getId());
materialDao.addMaterial(material);
}
Long materialId = material.getId();
// 扩展项转换
List<MaterialExtension> oldMaterialExtensionlist = materialExtensionService.getMaterialExtensionByMaterialId(materialId);
String newMaterialExtensionIds = ",";
String materialExtensions = materialVO.getMaterialExtensions();
if (!StringUtil.isEmpty(materialExtensions)) {
List<MaterialExtension> materialExtensionlist = gson.fromJson(materialExtensions, new TypeToken<ArrayList<MaterialExtension>>() {
}.getType());
for (MaterialExtension materialExtension : materialExtensionlist) {
if (null == materialExtension) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "扩展项对象为空");
}
if (StringUtil.isEmpty(materialExtension.getExtensionName())) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "扩展项名称为空");
}
if (materialExtension.getExtensionName().length() > 100) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "扩展项名称太长");
}
materialExtension.setMaterialId(materialId);
if (null == materialExtension.getId()) {
// 保存或者修改扩展项
materialExtensionService.addMaterialExtension(materialExtension);
} else {
materialExtensionService.updateMaterialExtension(materialExtension);
}
newMaterialExtensionIds += materialExtension.getId() + ",";
}
}
for (MaterialExtension oldMaterialExtension : oldMaterialExtensionlist) {
// 删除删除的MaterialExtension
if (!newMaterialExtensionIds.contains("," + oldMaterialExtension.getId() + ",")) {
// 不包含
// 删除扩展项
materialExtensionService.deleteMaterialExtensionById(oldMaterialExtension.getId());
// 删除扩展值
decExtensionService.deleteDecExtensionByExtensionId(oldMaterialExtension.getId());
}
}
// 联系人转换
String materialContacts = materialVO.getMaterialContacts();
// 删除已经有的联系人
materialContactService.deleteMaterialContactsByMaterialId(materialId);
if (StringUtil.isEmpty(materialContacts)) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "教材联系人参数有误");
}
List<MaterialContact> materialContactlist = gson.fromJson(materialContacts, new TypeToken<ArrayList<MaterialContact>>() {
}.getType());
if (null == materialContactlist || materialContactlist.size() == 0) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "教材联系人为空");
}
for (MaterialContact materialContact : materialContactlist) {
if (null == materialContact) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "教材联系人对象为空");
}
if (null == materialContact.getContactUserId()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "联系人为空");
}
if (StringUtil.isEmpty(materialContact.getContactUserName())) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "联系人姓名为空");
}
if (materialContact.getContactUserName().length() > 20) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "联系人姓名太长");
}
if (StringUtil.isEmpty(materialContact.getContactPhone())) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "联系电话为空");
}
if (materialContact.getContactPhone().length() > 25) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "联系电话太长");
}
if (StringUtil.isEmpty(materialContact.getContactEmail())) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "联系邮箱为空");
}
if (materialContact.getContactEmail().length() > 40) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "联系邮箱太长");
}
if (null == materialContact.getSort()) {
materialContact.setSort(999);
}
materialContact.setMaterialId(materialId);
// 保存联系人
materialContactService.addMaterialContact(materialContact);
}
// 项目编辑转换
// 先删除该教材下的项目编辑
materialProjectEditorService.deleteMaterialProjectEditorByMaterialId(materialId);
String materialProjectEditors = materialVO.getMaterialProjectEditors();
if (StringUtil.isEmpty(materialProjectEditors)) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "教材项目编辑参数有误");
}
List<MaterialProjectEditorVO> materialProjectEditorVOlist = gson.fromJson(materialProjectEditors, new TypeToken<ArrayList<MaterialProjectEditorVO>>() {
}.getType());
for (MaterialProjectEditorVO materialProjectEditorVO : materialProjectEditorVOlist) {
if (null == materialProjectEditorVO || null == materialProjectEditorVO.getEditorId()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "项目编辑为空");
}
MaterialProjectEditor materialProjectEditor = new MaterialProjectEditor();
materialProjectEditor.setEditorId(materialProjectEditorVO.getEditorId());
materialProjectEditor.setMaterialId(materialId);
// 保存项目编辑
materialProjectEditorService.addMaterialProjectEditor(materialProjectEditor);
// // 项目编辑绑定角色
// String rolename="项目编辑";//通过roleName查询roleid
// List<PmphRole> pmphRoleList=pmphRoleService.getList(rolename);
// if (ObjectUtil.isNull(materialId) ||
// ObjectUtil.isNull(pmphRoleList.get(0).getId())) {
// throw new CheckedServiceException(CheckedExceptionBusiness.ROLE_MANAGEMENT,
// CheckedExceptionResult.NULL_PARAM, "角色ID或项目编辑ID为空时禁止新增");
// }
// //判断该用户是否有项目编辑角色 若没有则新加
// List<PmphUserRole> pmphUserRoles2=pmphRoleService.getUserRoleList(materialId,
// pmphRoleList.get(0).getId());
// if(ObjectUtil.isNull(pmphUserRoles2) && pmphUserRoles2.size() == 0){
// roleDao.addUserRole(materialId, pmphRoleList.get(0).getId());//给项目编辑绑定角色
// }
}
// 保存教材通知备注
materialExtra.setMaterialId(materialId);
if (null == materialExtra.getId()) {
materialExtraService.addMaterialExtra(materialExtra);
} else {
materialExtraService.updateMaterialExtra(materialExtra);
}
// 保存通知附件
String materialNoticeAttachments = materialVO.getMaterialNoticeAttachments();
if (StringUtil.isEmpty(materialNoticeAttachments)) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "教材通知附件为空");
}
List<MaterialNoticeAttachment> materialNoticeAttachmentlist = gson.fromJson(materialNoticeAttachments, new TypeToken<ArrayList<MaterialNoticeAttachment>>() {
}.getType());
// 原来有的通知附件
List<MaterialNoticeAttachment> oldMaterialNoticeAttachmentlist = materialNoticeAttachmentService.getMaterialNoticeAttachmentsByMaterialExtraId(materialExtra.getId());
String newTempNoticeFileIds = ",";
for (MaterialNoticeAttachment materialNoticeAttachment : materialNoticeAttachmentlist) {
if (null == materialNoticeAttachment.getId()) {
String tempFileId = materialNoticeAttachment.getAttachment();
byte[] fileByte = (byte[]) request.getSession(false).getAttribute(tempFileId);
String fileName = (String) request.getSession(false).getAttribute("fileName_" + tempFileId);
materialNoticeAttachment.setAttachment(String.valueOf(new Date().getTime()));
materialNoticeAttachment.setAttachmentName(fileName);
materialNoticeAttachment.setDownload(0L);
materialNoticeAttachment.setMaterialExtraId(materialExtra.getId());
// 保存通知
materialNoticeAttachmentService.addMaterialNoticeAttachment(materialNoticeAttachment);
String noticeId;
// 保存通知文件
InputStream sbs = new ByteArrayInputStream(fileByte);
noticeId = fileService.save(sbs, fileName, FileType.MATERIAL_NOTICE_ATTACHMENT, materialNoticeAttachment.getId());
materialNoticeAttachment.setAttachment(noticeId);
// 更新通知
materialNoticeAttachmentService.updateMaterialNoticeAttachment(materialNoticeAttachment);
// 移除session的文件
// request.getSession(false).removeAttribute(tempFileId);
// request.getSession(false).removeAttribute("fileName_" + tempFileId);
} else {
newTempNoticeFileIds += materialNoticeAttachment.getId() + ",";
}
}
for (MaterialNoticeAttachment materialNoticeAttachment : oldMaterialNoticeAttachmentlist) {
if (!newTempNoticeFileIds.contains("," + materialNoticeAttachment.getId() + ",")) {
// 不包含
// 删除文件
fileService.remove(materialNoticeAttachment.getAttachment());
materialNoticeAttachmentService.deleteMaterialNoticeAttachmentById(materialNoticeAttachment.getId());
}
}
// 备注附件保存
String materialNoteAttachments = materialVO.getMaterialNoteAttachments();
if (StringUtil.isEmpty(materialNoteAttachments)) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "教材备注附件为空");
}
List<MaterialNoteAttachment> materialNoteAttachmentList = gson.fromJson(materialNoteAttachments, new TypeToken<ArrayList<MaterialNoteAttachment>>() {
}.getType());
// 原来的备注文件
List<MaterialNoteAttachment> oldMaterialNoteAttachmentlist = materialNoteAttachmentService.getMaterialNoteAttachmentByMaterialExtraId(materialExtra.getId());
String newTempNoteFileIds = ",";
for (MaterialNoteAttachment materialNoteAttachment : materialNoteAttachmentList) {
if (null == materialNoteAttachment.getId()) {
String tempFileId = materialNoteAttachment.getAttachment();
byte[] file = (byte[]) request.getSession(false).getAttribute(tempFileId);
String fileName = (String) request.getSession(false).getAttribute("fileName_" + tempFileId);
materialNoteAttachment.setAttachment(String.valueOf(new Date().getTime()));
materialNoteAttachment.setAttachmentName(fileName);
materialNoteAttachment.setDownload(0L);
materialNoteAttachment.setMaterialExtraId(materialExtra.getId());
// 保存备注
materialNoteAttachmentService.addMaterialNoteAttachment(materialNoteAttachment);
String noticeId;
InputStream sbs = new ByteArrayInputStream(file);
// 保存备注文件
noticeId = fileService.save(sbs, fileName, FileType.MATERIAL_NOTICE_ATTACHMENT, materialNoteAttachment.getId());
materialNoteAttachment.setAttachment(noticeId);
// 更新备注
materialNoteAttachmentService.updateMaterialNoteAttachment(materialNoteAttachment);
// 移除session的文件
// request.getSession().removeAttribute(tempFileId);
// request.getSession().removeAttribute("fileName_" + tempFileId);
} else {
newTempNoteFileIds += materialNoteAttachment.getId() + ",";
}
}
for (MaterialNoteAttachment materialNoteAttachment : oldMaterialNoteAttachmentlist) {
if (!newTempNoteFileIds.contains("," + materialNoteAttachment.getId() + ",")) {
// 不包含
// 删除文件
fileService.remove(materialNoteAttachment.getAttachment());
materialNoteAttachmentService.deleteMaterialNoteAttachmentById(materialNoteAttachment.getId());
}
}
CmsContent cmsContent = cmsContentService.getCmsContentByMaterialId(materialId);
String title = material.getMaterialName();
if (null != cmsContent && null != cmsContent.getTitle() && !title.equals(cmsContent.getTitle())) {
cmsContent.setTitle(title);
cmsContentService.updateCmsContent(cmsContent);
}
/**
* // 判断教材备注附件和教材通知附件 List<MaterialNoticeAttachment>
* materialNoticeAttachmentlist = new ArrayList<MaterialNoticeAttachment>(5);
* String materialNoticeAttachments=materialVO.getMaterialNoticeAttachments();
* if (!StringUtil.isEmpty(materialNoticeAttachments)) {
* materialNoticeAttachmentlist = gson.fromJson(materialNoticeAttachments, new
* TypeToken<ArrayList<MaterialNoticeAttachment>>() { }.getType()); } if (null
* != noticeFiles && noticeFiles.length > 0) { for (MultipartFile notice :
* noticeFiles) { if (null == notice || !(notice instanceof MultipartFile)) {
* throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL,
* CheckedExceptionResult.NULL_PARAM, "教材通知附件为空"); } if
* (notice.getName().length() > 80) { throw new
* CheckedServiceException(CheckedExceptionBusiness.MATERIAL,
* CheckedExceptionResult.ILLEGAL_PARAM, "教材通知附件文件名过长"); } } } if ((null ==
* noticeFiles && materialNoticeAttachmentlist.size() == 0) ||
* (materialNoticeAttachmentlist.size() + noticeFiles.length == 0)) {//
* 已有的数量加上新增的数量 throw new
* CheckedServiceException(CheckedExceptionBusiness.MATERIAL,
* CheckedExceptionResult.NULL_PARAM, "教材通知附件为空"); }
* List<MaterialNoteAttachment> materialNoteAttachmentList = new
* ArrayList<MaterialNoteAttachment>(5); String materialNoteAttachments =
* materialVO.getMaterialNoteAttachments(); if
* (!StringUtil.isEmpty(materialNoteAttachments)) { materialNoteAttachmentList =
* gson.fromJson(materialNoteAttachments, new
* TypeToken<ArrayList<MaterialNoteAttachment>>() { }.getType()); } if (null !=
* noteFiles && noteFiles.length > 0) { for (MultipartFile note : noteFiles) {
* if (null == note || !(note instanceof MultipartFile)) { throw new
* CheckedServiceException(CheckedExceptionBusiness.MATERIAL,
* CheckedExceptionResult.NULL_PARAM, "教材备注附件为空"); } if (note.getName().length()
* > 80) { throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL,
* CheckedExceptionResult.ILLEGAL_PARAM, "教材备注附件文件名过长"); } } } if ((null ==
* noteFiles && materialNoteAttachmentList.size() == 0) ||
* (materialNoteAttachmentList.size() + noteFiles.length == 0)) {// 已有的数量加上新增的数量
* throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL,
* CheckedExceptionResult.NULL_PARAM, "教材备注附件为空"); } // 保存教材通知附件
* List<MaterialNoticeAttachment> oldMaterialNoticeAttachmentlist =
* materialNoticeAttachmentService
* .getMaterialNoticeAttachmentsByMaterialExtraId(materialExtra.getId()); String
* newMaterialNoticeAttachmentIds = ","; for (MaterialNoticeAttachment
* materialNoticeAttachment : materialNoticeAttachmentlist) { if (null ==
* materialNoticeAttachment.getId()) { throw new
* CheckedServiceException(CheckedExceptionBusiness.MATERIAL,
* CheckedExceptionResult.NULL_PARAM, "教材通知id为空"); }
* newMaterialNoticeAttachmentIds += materialNoticeAttachment.getId() + ","; }
* if (null != noticeFiles && noticeFiles.length > 0) { for (MultipartFile
* notice : noticeFiles) { MaterialNoticeAttachment materialNoticeAttachment =
* new MaterialNoticeAttachment();
* materialNoticeAttachment.setAttachment("---------");
* materialNoticeAttachment.setAttachmentName(notice.getOriginalFilename());
* materialNoticeAttachment.setDownload(0L);
* materialNoticeAttachment.setMaterialExtraId(materialExtra.getId()); // 保存通知
* materialNoticeAttachmentService.addMaterialNoticeAttachment(materialNoticeAttachment);
* String noticeId; // 保存通知文件 noticeId = fileService.save(notice,
* FileType.MATERIAL_NOTICE_ATTACHMENT, materialNoticeAttachment.getId());
*
* materialNoticeAttachment.setAttachment(noticeId); // 更新通知
* materialNoticeAttachmentService.updateMaterialNoticeAttachment(materialNoticeAttachment);
* newMaterialNoticeAttachmentIds += materialNoticeAttachment.getId() + ","; } }
* for (MaterialNoticeAttachment materialNoticeAttachment :
* oldMaterialNoticeAttachmentlist) { if
* (!newMaterialNoticeAttachmentIds.contains("," +
* materialNoticeAttachment.getId() + ",")) {// 不包含
* fileService.remove(materialNoticeAttachment.getAttachment()); // 删除文件
* materialNoticeAttachmentService
* .deleteMaterialNoticeAttachmentById(materialNoticeAttachment.getId()); } } //
* 保存教材备注附件 List<MaterialNoteAttachment> oldMaterialNoteAttachmentlist =
* materialNoteAttachmentService
* .getMaterialNoteAttachmentByMaterialExtraId(materialExtra.getId()); String
* newMaterialNoteAttachmentIds = ","; for (MaterialNoteAttachment
* materialNoteAttachment : materialNoteAttachmentList) { if (null ==
* materialNoteAttachment.getId()) { throw new
* CheckedServiceException(CheckedExceptionBusiness.MATERIAL,
* CheckedExceptionResult.NULL_PARAM, "教材备注id为空"); }
* newMaterialNoteAttachmentIds += materialNoteAttachment.getId() + ","; } if
* (null != noteFiles && noteFiles.length > 0) { for (MultipartFile note :
* noteFiles) { MaterialNoteAttachment materialNoteAttachment = new
* MaterialNoteAttachment(); materialNoteAttachment.setAttachment("---------");
* materialNoteAttachment.setAttachmentName(note.getOriginalFilename());
* materialNoteAttachment.setDownload(0L);
* materialNoteAttachment.setMaterialExtraId(materialExtra.getId()); // 保存备注
* materialNoteAttachmentService.addMaterialNoteAttachment(materialNoteAttachment);
* String noticeId; // 保存备注文件 noticeId = fileService.save(note,
* FileType.MATERIAL_NOTICE_ATTACHMENT, materialNoteAttachment.getId());
* materialNoteAttachment.setAttachment(noticeId); // 更新备注
* materialNoteAttachmentService.updateMaterialNoteAttachment(materialNoteAttachment);
* newMaterialNoteAttachmentIds += materialNoteAttachment.getId() + ","; } } for
* (MaterialNoteAttachment materialNoteAttachment :
* oldMaterialNoteAttachmentlist) { if
* (!newMaterialNoteAttachmentIds.contains("," + materialNoteAttachment.getId()
* + ",")) {// 不包含 fileService.remove(materialNoteAttachment.getAttachment());
* // 删除文件 materialNoteAttachmentService
* .deleteMaterialNoteAttachmentById(materialNoteAttachment.getId()); } }
*/
return material.getId();
}
use of com.bc.pmpheep.service.exception.CheckedServiceException in project pmph by BCSquad.
the class MaterialServiceImpl method addMaterialContact.
/**
* 功能描述:想每个教材中加入联系人信息
*
* @param list
* 教材集合
* @return
*/
public List<MaterialListVO> addMaterialContact(List<MaterialListVO> list, String sessionId) {
PmphUser pmphUser = SessionUtil.getPmphUserBySessionId(sessionId);
if (ObjectUtil.isNull(pmphUser)) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "用户为空");
}
for (MaterialListVO materialListVO : list) {
materialListVO.setFounderName(pmphUserService.get(materialListVO.getFounderId()).getRealname());
materialListVO.setIsMy(false);
// 获取联系人
materialListVO.setContacts(materialContactService.listMaterialContactByMaterialId(materialListVO.getId()));
if (!materialListVO.getIsPublished()) {
if (textbookService.getTextbookByMaterialId(materialListVO.getId()).size() == 0) {
// 判断新建教材时是否到了书目录页面
materialListVO.setMaterialStep("设置书目录");
}
if (ObjectUtil.isNull(cmsContentService.getCmsContentByMaterialId(materialListVO.getId()))) {
// 判断新建教材时是否到了编辑通知详情页面
materialListVO.setMaterialStep("编辑通知详情");
}
}
if (pmphUser.getIsAdmin()) {
// 如果是超级管理员则为所欲为
materialListVO.setIsMy(true);
}
if (pmphUser.getId().equals(materialListVO.getFounderId())) {
// 判断是否是创建者
materialListVO.setIsMy(true);
materialListVO.setIsFounder(true);
} else {
materialListVO.setIsFounder(false);
}
if (pmphUser.getId().equals(materialListVO.getDirector())) {
// 判断是否是主任
materialListVO.setIsMy(true);
materialListVO.setIsDirector(true);
} else {
materialListVO.setIsDirector(false);
}
if (!ObjectUtil.isNull(materialProjectEditorService.getMaterialProjectEditorByMaterialIdAndUserId(materialListVO.getId(), pmphUser.getId()))) {
// 判断是否为项目编辑
materialListVO.setIsMy(true);
}
if (!CollectionUtil.isEmpty(textbookService.getTextbookByMaterialIdAndUserId(materialListVO.getId(), pmphUser.getId()))) {
// 判断是否为策划编辑
materialListVO.setIsMy(true);
}
if (materialListVO.getIsPublished()) {
if (materialListVO.getIsForceEnd() || materialListVO.getIsAllTextbookPublished()) {
materialListVO.setState("已结束");
} else {
materialListVO.setState("已发布");
}
} else {
materialListVO.setState("未发布");
}
String myPower = getMaterialMainInfoById(materialListVO.getId(), sessionId).getMyPower();
if (materialListVO.getIsFounder()) {
myPower = "1" + myPower.substring(1);
}
materialListVO.setMyPower(myPower);
}
return list;
}
use of com.bc.pmpheep.service.exception.CheckedServiceException in project pmph by BCSquad.
the class MaterialServiceImpl method getMaterialVO.
@Override
public MaterialVO getMaterialVO(Long id) throws CheckedServiceException {
if (null == id) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "教材主键为空");
}
// 教材主要信息
Material material = materialDao.getMaterialById(id);
// 教材主任
PmphUser director = pmphUserService.get(material.getDirector());
// 教材类型字符串
MaterialType materialType = materialTypeService.getMaterialTypeById(material.getMaterialType());
String mtype = "[]";
if (null != materialType) {
mtype = "[" + materialType.getPath().replace("-", ",") + "," + material.getMaterialType() + "]";
// 去掉 0
mtype = mtype.replace("[0,", "[").replace("[0", "[");
}
// 教材通知备注表
MaterialExtra materialExtra = materialExtraService.getMaterialExtraByMaterialId(id);
Gson gson = new Gson();
// 联系人
List<MaterialContact> materialContactList = materialContactService.listMaterialContactByMaterialId(id);
String materialContacts = gson.toJson(materialContactList);
// 扩展项
List<MaterialExtension> materialExtensionList = materialExtensionService.getMaterialExtensionByMaterialId(id);
String materialExtensions = gson.toJson(materialExtensionList);
// 项目编辑
List<MaterialProjectEditorVO> materialProjectEditorVOList = materialProjectEditorService.listMaterialProjectEditors(id);
String materialProjectEditorVOs = gson.toJson(materialProjectEditorVOList);
// 通知附件信息
List<MaterialNoticeAttachment> materialNoticeAttachmentList = new ArrayList<MaterialNoticeAttachment>(5);
if (null != materialExtra) {
materialNoticeAttachmentList = materialNoticeAttachmentService.getMaterialNoticeAttachmentsByMaterialExtraId(materialExtra.getId());
}
String materialNoticeAttachments = gson.toJson(materialNoticeAttachmentList);
// 通知备注附件信息
List<MaterialNoteAttachment> materialNoteAttachmentList = new ArrayList<MaterialNoteAttachment>(5);
if (null != materialExtra) {
materialNoteAttachmentList = materialNoteAttachmentService.getMaterialNoteAttachmentByMaterialExtraId(materialExtra.getId());
}
String materialNoteAttachments = gson.toJson(materialNoteAttachmentList);
return new MaterialVO(material, director == null ? null : director.getRealname(), mtype, materialExtra, materialContacts, materialExtensions, materialProjectEditorVOs, materialNoticeAttachments, materialNoteAttachments, StringUtil.tentToBinary(material.getPlanPermission()), StringUtil.tentToBinary(material.getProjectPermission()));
}
use of com.bc.pmpheep.service.exception.CheckedServiceException in project pmph by BCSquad.
the class OrgUserServiceImpl method resetPassword.
@Override
public String resetPassword(Long id) throws CheckedServiceException {
if (ObjectUtil.isNull(id)) {
throw new CheckedServiceException(CheckedExceptionBusiness.ORG, CheckedExceptionResult.NULL_PARAM, "参数为空");
}
String password = "123456";
OrgUser orgUser = orgUserDao.getOrgUserById(id);
DesRun desRun = new DesRun(orgUser.getUsername(), password);
orgUser.setPassword(desRun.enpsw);
orgUserDao.updateOrgUser(orgUser);
return password;
}
use of com.bc.pmpheep.service.exception.CheckedServiceException in project pmph by BCSquad.
the class OrgUserServiceImpl method importExcel.
@SuppressWarnings("resource")
@Override
public List<OrgVO> importExcel(MultipartFile file) throws CheckedServiceException {
String fileType = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
Workbook workbook = null;
InputStream in = null;
try {
in = file.getInputStream();
} catch (FileNotFoundException e) {
throw new CheckedServiceException(CheckedExceptionBusiness.EXCEL, CheckedExceptionResult.NULL_PARAM, "获取上传的文件失败");
} catch (IOException e) {
throw new CheckedServiceException(CheckedExceptionBusiness.EXCEL, CheckedExceptionResult.ILLEGAL_PARAM, "读取文件失败");
}
try {
if (".xls".equals(fileType)) {
workbook = new HSSFWorkbook(in);
} else if (".xlsx".equals(fileType)) {
workbook = new XSSFWorkbook(in);
} else {
throw new CheckedServiceException(CheckedExceptionBusiness.EXCEL, CheckedExceptionResult.ILLEGAL_PARAM, "读取的不是Excel文件");
}
} catch (IOException e) {
throw new CheckedServiceException(CheckedExceptionBusiness.EXCEL, CheckedExceptionResult.ILLEGAL_PARAM, "文件读取失败");
} catch (OfficeXmlFileException e) {
throw new CheckedServiceException(CheckedExceptionBusiness.EXCEL, CheckedExceptionResult.ILLEGAL_PARAM, "此文档不是对应的.xls或.xlsx的Excel文档,请修改为正确的后缀名再进行上传");
}
PageParameter<OrgAndOrgUserVO> pageParameter = new PageParameter<>();
pageParameter.setParameter(new OrgAndOrgUserVO());
pageParameter.setStart(null);
List<OrgAndOrgUserVO> orgUsers = orgUserDao.getListAllOrgUser(pageParameter);
List<OrgVO> list = new ArrayList<>();
for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) {
Sheet sheet = workbook.getSheetAt(numSheet);
if (null == sheet) {
continue;
}
for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
OrgVO orgVO = new OrgVO();
Row row = sheet.getRow(rowNum);
if (null == row) {
break;
}
Cell second = row.getCell(1);
String orgName = StringUtil.getCellValue(second);
if (StringUtil.isEmpty(orgName)) {
throw new CheckedServiceException(CheckedExceptionBusiness.EXCEL, CheckedExceptionResult.NULL_PARAM, "Excel文件里序号为" + rowNum + "的机构名称为空");
}
orgVO.setOrgName(orgName);
if (null == orgUsers || orgUsers.isEmpty()) {
list.add(orgVO);
continue;
}
for (OrgAndOrgUserVO orgAndOrgUserVO : orgUsers) {
if (orgName.equals(orgAndOrgUserVO.getOrgName())) {
orgVO.setUsername(orgAndOrgUserVO.getUsername());
orgVO.setOrgTypeName(orgAndOrgUserVO.getOrgTypeName());
orgVO.setRealname(orgAndOrgUserVO.getRealname());
break;
}
}
list.add(orgVO);
}
}
return list;
}
Aggregations