EventExtendManagerImpl.java 5.6 KB
/*
 * @(#)EventExtendManagerImpl.java
 *
 * Copyright (c) 2014-2020  xteam.group 版权所有
 * xteam. All rights reserved.
 *
 * This software is the confidential and proprietary
 * information of  xteam.
 * ("Confidential Information"). You shall not disclose
 * such Confidential Information and shall use it only
 * in accordance with the terms of the contract agreement
 * you entered into with xteam.
 */
package com.xiniunet.service.railway.biz;

import com.xiniunet.foundation.service.FoundationService;
import com.xiniunet.framework.base.BaseManagerImpl;
import com.xiniunet.framework.constant.BaseMessage;
import com.xiniunet.framework.exception.ErrorType;
import com.xiniunet.framework.security.Passport;
import com.xiniunet.railway.domain.EventExtend;
import com.xiniunet.railway.request.*;
import com.xiniunet.railway.response.*;
import com.xiniunet.service.railway.dal.EventExtendMapper;
import com.xiniunet.service.railway.po.EventExtendPO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * 事件扩展表的管理方法实现
 *
 * @author xteam.developer
 */
@Service("RailwayEventExtendManager")
public class EventExtendManagerImpl extends BaseManagerImpl implements EventExtendManager {
    @Autowired
    private FoundationService basicService;

    @Autowired
    private EventExtendMapper eventExtendMapper;

    /**
     * 获取事件扩展表
     *
     * @param request  获取事件扩展表请求
     * @param passport 用户护照
     * @return 获取事件扩展表应答
     */
    @Override
    public EventExtendGetResponse get(EventExtendGetRequest request, Passport passport) {
        EventExtendGetResponse response = new EventExtendGetResponse();
        EventExtendPO entity = eventExtendMapper.getById(request.getId(), passport);
        if (entity != null) {
            EventExtend eventExtend = this.getMapper().map(entity, EventExtend.class);
            response.setEventExtend(eventExtend);
        } else {
            response.addError(ErrorType.EXPECTATION_NULL, BaseMessage.COMMON_GET_FAILURE);
        }
        return response;
    }

    /**
     * 查询事件扩展表
     *
     * @param request  查询事件扩展表请求
     * @param passport 用户护照
     * @return 查询事件扩展表应答
     */
    @Override
    public EventExtendFindResponse find(EventExtendFindRequest request, Passport passport) {
        EventExtendFindResponse response = new EventExtendFindResponse();
        List<EventExtend> modelList = new ArrayList<>();
        long count = eventExtendMapper.findCount(request, passport);
        if (count > 0) {
            // 处理分页参数
            if (request.getPageSize() > 0) {
                //如果输入的页码大于实际的分页数,将页码设置为最后一页的页码
                int lastPageNumber = (int) ((count - 1) / request.getPageSize() + 1);
                if (request.getPageNumber() > lastPageNumber) {
                    request.setPageNumber(lastPageNumber);
                }
            }

            List<EventExtendPO> entityList = eventExtendMapper.find(request, passport);
            for (EventExtendPO entity : entityList) {
                EventExtend eventExtend = this.getMapper().map(entity, EventExtend.class);
                modelList.add(eventExtend);
            }
        }

        response.setTotalCount(count);
        response.setResult(modelList);
        return response;
    }

    /**
     * 创建事件扩展表
     *
     * @param request  创建事件扩展表请求
     * @param passport 用户护照
     * @return 创建事件扩展表应答
     */
    @Override
    public EventExtendCreateResponse create(EventExtendCreateRequest request, Passport passport) {
        EventExtendCreateResponse response = new EventExtendCreateResponse();

        EventExtendPO entity = this.getMapper().map(request, EventExtendPO.class);
        if (entity.getId() == null) {
            long id = basicService.getNewId();
            entity.setId(id);
        }
        entity.setIsNoticed(request.getIsNoticed());

        if (eventExtendMapper.insert(entity, passport) == 0) {
            response.addError(ErrorType.EXPECTATION_NULL, BaseMessage.COMMON_CREATE_FAILURE);
            return response;
        }

        response.setId(entity.getId());
        return response;
    }

    /**
     * 更新事件扩展表
     *
     * @param request  更新事件扩展表请求
     * @param passport 用户护照
     * @return 更新事件扩展表应答
     */
    @Override
    public EventExtendUpdateResponse update(EventExtendUpdateRequest request, Passport passport) {
        EventExtendUpdateResponse response = new EventExtendUpdateResponse();

        EventExtendPO entity = this.getMapper().map(request, EventExtendPO.class);

        long result = eventExtendMapper.update(entity, passport);
        if (result != 1) {
            response.addError(ErrorType.BUSINESS_ERROR, BaseMessage.COMMON_UPDATE_FAILURE);
            return response;
        }
        response.setResult(result);
        return response;
    }

    /**
     * 删除事件扩展表
     *
     * @param request  删除事件扩展表请求
     * @param passport 用户护照
     * @return 删除事件扩展表应答
     */
    @Override
    public EventExtendDeleteResponse delete(EventExtendDeleteRequest request, Passport passport) {
        EventExtendDeleteResponse response = new EventExtendDeleteResponse();
        Long result = eventExtendMapper.delete(request.getId(), passport);
        response.setResult(result);
        return response;
    }
}