Search in sources :

Example 21 with PmphUser

use of com.bc.pmpheep.back.po.PmphUser in project pmph by BCSquad.

the class MaterialServiceImpl method upTempFile.

@Override
public List<String> upTempFile(HttpServletRequest request, MultipartFile[] files) throws CheckedServiceException, IOException {
    String sessionId = CookiesUtil.getSessionId(request);
    PmphUser pmphUser = SessionUtil.getPmphUserBySessionId(sessionId);
    if (null == pmphUser) {
        throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "用户没有登录!");
    }
    if (null == files || files.length == 0) {
        throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "没有文件");
    }
    for (MultipartFile file : files) {
        if (file.getOriginalFilename().length() > 80) {
            throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "附件名称超出80个字符长度,请修改后上传!");
        }
    }
    List<String> filsRelativePaths = new ArrayList<String>(files.length);
    for (MultipartFile file : files) {
        UUID uuid = UUID.randomUUID();
        String tempFileId = uuid.toString();
        request.getSession(false).setAttribute("fileName_" + tempFileId, file.getOriginalFilename());
        byte[] fileByte = file.getBytes();
        request.getSession(false).setAttribute(tempFileId, fileByte);
        filsRelativePaths.add(tempFileId);
    }
    return filsRelativePaths;
}
Also used : MultipartFile(org.springframework.web.multipart.MultipartFile) PmphUser(com.bc.pmpheep.back.po.PmphUser) ArrayList(java.util.ArrayList) CheckedServiceException(com.bc.pmpheep.service.exception.CheckedServiceException) UUID(java.util.UUID)

Example 22 with PmphUser

use of com.bc.pmpheep.back.po.PmphUser 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();
}
Also used : MaterialNoteAttachment(com.bc.pmpheep.back.po.MaterialNoteAttachment) MaterialContact(com.bc.pmpheep.back.po.MaterialContact) Gson(com.google.gson.Gson) MaterialProjectEditorVO(com.bc.pmpheep.back.vo.MaterialProjectEditorVO) MaterialNoticeAttachment(com.bc.pmpheep.back.po.MaterialNoticeAttachment) CmsContent(com.bc.pmpheep.back.po.CmsContent) MaterialProjectEditor(com.bc.pmpheep.back.po.MaterialProjectEditor) PmphUser(com.bc.pmpheep.back.po.PmphUser) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) MaterialExtension(com.bc.pmpheep.back.po.MaterialExtension) CheckedServiceException(com.bc.pmpheep.service.exception.CheckedServiceException) Material(com.bc.pmpheep.back.po.Material) Date(java.util.Date) ByteArrayInputStream(java.io.ByteArrayInputStream) TypeToken(com.google.gson.reflect.TypeToken) MaterialExtra(com.bc.pmpheep.back.po.MaterialExtra)

Example 23 with PmphUser

use of com.bc.pmpheep.back.po.PmphUser 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;
}
Also used : PmphUser(com.bc.pmpheep.back.po.PmphUser) MaterialListVO(com.bc.pmpheep.back.vo.MaterialListVO) CheckedServiceException(com.bc.pmpheep.service.exception.CheckedServiceException)

Example 24 with PmphUser

use of com.bc.pmpheep.back.po.PmphUser 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()));
}
Also used : MaterialVO(com.bc.pmpheep.back.vo.MaterialVO) MaterialNoticeAttachment(com.bc.pmpheep.back.po.MaterialNoticeAttachment) PmphUser(com.bc.pmpheep.back.po.PmphUser) MaterialNoteAttachment(com.bc.pmpheep.back.po.MaterialNoteAttachment) MaterialContact(com.bc.pmpheep.back.po.MaterialContact) ArrayList(java.util.ArrayList) Gson(com.google.gson.Gson) MaterialExtension(com.bc.pmpheep.back.po.MaterialExtension) CheckedServiceException(com.bc.pmpheep.service.exception.CheckedServiceException) Material(com.bc.pmpheep.back.po.Material) MaterialProjectEditorVO(com.bc.pmpheep.back.vo.MaterialProjectEditorVO) MaterialType(com.bc.pmpheep.back.po.MaterialType) MaterialExtra(com.bc.pmpheep.back.po.MaterialExtra)

Example 25 with PmphUser

use of com.bc.pmpheep.back.po.PmphUser in project pmph by BCSquad.

the class UserMessageServiceImpl method getUserMessageById.

@Override
public Map<String, Object> getUserMessageById(Long userMsgId) {
    Map<String, Object> resultMap = new HashMap<String, Object>();
    if (ObjectUtil.isNull(userMsgId)) {
        throw new CheckedServiceException(CheckedExceptionBusiness.MESSAGE, CheckedExceptionResult.NULL_PARAM, "消息ID为空!");
    }
    UserMessage userMessage = userMessageDao.getUserMessageById(userMsgId);
    if (ObjectUtil.isNull(userMessage)) {
        throw new CheckedServiceException(CheckedExceptionBusiness.MESSAGE, CheckedExceptionResult.NULL_PARAM, "用户消息对象为空!");
    }
    String realName = null;
    if (Const.SENDER_TYPE_0 == userMessage.getSenderType() || Const.SENDER_TYPE_1 == userMessage.getSenderType()) {
        PmphUser pmphUser = pmphUserService.get(userMessage.getSenderId());
        realName = pmphUser.getRealname();
    }
    if (Const.SENDER_TYPE_2 == userMessage.getSenderType()) {
        WriterUser writerUser = writerUserService.get(userMessage.getSenderId());
        realName = writerUser.getRealname();
    }
    if (Const.SENDER_TYPE_3 == userMessage.getSenderType()) {
        OrgUser orgUser = orgUserService.getOrgUserById(userMessage.getSenderId());
        realName = orgUser.getRealname();
    }
    // 主键ID
    resultMap.put("msgId", userMessage.getId());
    // 标题
    resultMap.put("title", userMessage.getTitle());
    // 发送者
    resultMap.put("senderName", realName);
    // 发送时间
    resultMap.put("senderDate", userMessage.getGmtCreate());
    // 获取消息内容
    Message message = messageService.get(userMessage.getMsgId());
    if (ObjectUtil.notNull(message)) {
        // throw new CheckedServiceException(CheckedExceptionBusiness.MESSAGE,
        // CheckedExceptionResult.NULL_PARAM, "消息对象为空!");
        // 内容
        resultMap.put("content", message.getContent());
        List<MessageAttachment> messageAttachments = messageAttachmentService.getMessageAttachmentByMsgId(message.getId());
        if (CollectionUtil.isNotEmpty(messageAttachments)) {
            for (MessageAttachment mAttachment : messageAttachments) {
                String attachmentId = mAttachment.getAttachment();
                mAttachment.setAttachment(Const.FILE_DOWNLOAD + attachmentId);
            }
        }
        // 内容附件
        resultMap.put("MessageAttachment", messageAttachments);
    }
    return resultMap;
}
Also used : MessageAttachment(com.bc.pmpheep.back.po.MessageAttachment) UserMessage(com.bc.pmpheep.back.po.UserMessage) WebScocketMessage(com.bc.pmpheep.websocket.WebScocketMessage) Message(com.bc.pmpheep.general.po.Message) HashMap(java.util.HashMap) PmphUser(com.bc.pmpheep.back.po.PmphUser) OrgUser(com.bc.pmpheep.back.po.OrgUser) CheckedServiceException(com.bc.pmpheep.service.exception.CheckedServiceException) UserMessage(com.bc.pmpheep.back.po.UserMessage) WriterUser(com.bc.pmpheep.back.po.WriterUser)

Aggregations

PmphUser (com.bc.pmpheep.back.po.PmphUser)102 CheckedServiceException (com.bc.pmpheep.service.exception.CheckedServiceException)81 ArrayList (java.util.ArrayList)33 PageResult (com.bc.pmpheep.back.plugin.PageResult)17 HashMap (java.util.HashMap)13 Material (com.bc.pmpheep.back.po.Material)11 WriterUser (com.bc.pmpheep.back.po.WriterUser)11 WebScocketMessage (com.bc.pmpheep.websocket.WebScocketMessage)10 PmphRole (com.bc.pmpheep.back.po.PmphRole)9 UserMessage (com.bc.pmpheep.back.po.UserMessage)9 PmphGroupMemberVO (com.bc.pmpheep.back.vo.PmphGroupMemberVO)9 BaseTest (com.bc.pmpheep.test.BaseTest)9 Test (org.junit.Test)9 CmsContent (com.bc.pmpheep.back.po.CmsContent)8 PmphGroupMember (com.bc.pmpheep.back.po.PmphGroupMember)8 PmphGroup (com.bc.pmpheep.back.po.PmphGroup)7 Textbook (com.bc.pmpheep.back.po.Textbook)7 WriterUserTrendst (com.bc.pmpheep.back.po.WriterUserTrendst)6 Gson (com.google.gson.Gson)6 OrgUser (com.bc.pmpheep.back.po.OrgUser)5