邮件功能问题总结

前端问题总结:

后端问题总结:

1.注解含意:

1.@Transactional 注解用于提交事务,若没有带上这句,会报事务异常提示。
2.@Modifying(clearAutomatically = true) 自动清除实体里保存的数据
 /**
     * 邮件删除(发件箱列表删除)
     */
    @Modifying
    @Transactional
    @Query(value = "update oa_xt_yjxx set yjzt = 2 where kid = :kid", nativeQuery = true)
    int changeDeleStatus(@Param("kid") String kid);

    /**
     * 查询删除邮件
     */
    @Modifying
    @Transactional
    @Query(value = "select * from oa_xt_yjxx where fjrid = :fjrid and yjzt = 2", nativeQuery = true)
    List<OaXtYjxx> queryAllDel(@Param("fjrid") String fjrid);

2.查询条件构建:

/**
     * 构建查询条件:
     * 收件箱查询条件
     *
     * */
    public default Specification<OaXtYjxxSjxx> toSpecification(OaXtYjxxSjxx yjxxSjxx){
        return (root, query, builder) -> {
            List<Predicate> predicates = new ArrayList<>();
            Optional.ofNullable(yjxxSjxx.getSjrid()).filter(StringUtils::isNotBlank)
                    .ifPresent(value -> predicates.add(builder.equal(root.get("sjrid"), value)));
            Optional.ofNullable(yjxxSjxx.getSjrxm()).filter(StringUtils::isNotBlank)
                    .ifPresent(value -> predicates.add(builder.equal(root.get("sjrxm"), value)));
            Optional.ofNullable(yjxxSjxx.getYjzt()).ifPresent(value -> predicates.add(builder.equal(root.get("yjzt"), value)));
            return builder.and(predicates.toArray(new Predicate[predicates.size()]));
        };
    }

3.分页查询:

/**
     * 分页查询某人的所有邮件(收件箱)
     */
    Page<OaXtYjxxSjxx> queryAllYjxx(OaXtYjxxSjxx yjxxSjxx, CommonPageRequest pageRequest);
/**
     * 分页查询某人的所有邮件(收件箱)
     */
    @Override
    public Page<OaXtYjxxSjxx> queryAllYjxx(OaXtYjxxSjxx yjxxSjxx, CommonPageRequest pageRequest) {
        Page<OaXtYjxxSjxx> sjxxList = yjxxSjxxRepository.findAll(yjxxSjxxRepository.toSpecification(yjxxSjxx),pageRequest.createSortPageable());
        if(sjxxList.getContent().size() != 0){
            //循环将发件人信息添加
            for(OaXtYjxxSjxx sjxx : sjxxList.getContent()){
                if(sjxx.getXszt() == 2){//收件人显示状态为不显示,整理收件人信息
                    //获取此发件人的所有收件人信息
                    List<OaXtYjxxSjxx> xszt = yjxxSjxxRepository.findByYjxxKid(sjxx.getYjxxKid());
                    //过滤出需要进行显示的数据
                    List<OaXtYjxxSjxx> newXszt =  xszt.stream().filter(a -> a.getXszt() == 1).collect(Collectors.toList());
                    //对需要进行显示的数据进行排序,保证显示的顺序
                    List<OaXtYjxxSjxx> listSort = newXszt.stream().sorted(Comparator.comparing(OaXtYjxxSjxx::getXh)).collect(Collectors.toList());
                    List<String> sjrxxList = listSort.stream().map(OaXtYjxxSjxx::getSjrxm).collect(Collectors.toList());
                    String sjrxx = StringUtils.join(sjrxxList.toArray(),",");
                    sjxx.setSjrxm(sjrxx);
                }
                sjxx.setXtYjxx(xtYjxxRepository.findByKid(sjxx.getYjxxKid()));
            }
        }
        return sjxxList;
    }

4.swagger相关注解

@RestController
@RequestMapping(value = API_PATH_PREFIX + "/email", consumes = { ALL_VALUE }, produces = { APPLICATION_JSON_UTF8_VALUE })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值