com.greenline.guahao.biz.manager.orderremind.impl.OrderRemindManagerImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.greenline.guahao.biz.manager.orderremind.impl.OrderRemindManagerImpl.java

Source

/*
 * Project: guahao-portal-biz-core
 * 
 * File Created at 2014-5-13
 * 
 * Copyright 2012 Greenline.com Corporation Limited.
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of
 * Greenline Company. ("Confidential Information").  You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with Greenline.com.
 */
package com.greenline.guahao.biz.manager.orderremind.impl;

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

import javax.annotation.Resource;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.greenline.epay.taikang.service.PortalCustomerApplyService;
import com.greenline.epay.taikang.service.UserAuthenticationService;
import com.greenline.epay.taikang.service.dto.CheckResponse;
import com.greenline.epay.taikang.service.dto.CustomerApplyDTO;
import com.greenline.epay.taikang.service.dto.ResponseDTO;
import com.greenline.epay.taikang.service.dto.ServiceDTO;
import com.greenline.epay.taikang.service.dto.UserInfoRequestDTO;
import com.greenline.epay.taikang.service.dto.query.CustomerApplyQueryDTO;
import com.greenline.epay.taikang.service.dto.query.QueryResultDTO;
import com.greenline.guahao.biz.manager.cache.JackJsonUtil;
import com.greenline.guahao.biz.manager.common.LocalResponseDO;
import com.greenline.guahao.biz.manager.common.LocalResponseDO.LocalResponseCode;
import com.greenline.guahao.biz.manager.orderremind.OrderRemindManager;
import com.greenline.guahao.biz.manager.orderremind.convertors.OrderRemindConvertor;
import com.greenline.guahao.biz.manager.orderremind.dataobject.OrderRemindDO;
import com.greenline.guahao.biz.manager.orderremind.dataobject.OrderRemindRequestDO;
import com.greenline.guahao.biz.manager.orderremind.validator.OrderRemindValidator;
import com.greenline.guahao.biz.manager.user.UserManager;
import com.greenline.guahao.biz.manager.user.dataobject.UserDO;
import com.greenline.hrs.biz.service.dto.ResponseCode;

/**
 * @Type OrderRemindManagerImpl
 * @Desc ????
 * @author alex
 * @date 2014-5-13
 * @Version V1.0
 */
public class OrderRemindManagerImpl implements OrderRemindManager {
    private static final Log logger = LogFactory.getLog(OrderRemindManagerImpl.class);
    @Resource
    private UserManager userManager;
    @Resource
    private PortalCustomerApplyService portalCustomerApplyService;
    @Resource
    private UserAuthenticationService userAuthenticationService;
    @Resource
    private JackJsonUtil jackJson;

    /*
     * (non-Javadoc)
     * 
     * @see com.greenline.guahao.biz.manager.orderremind.OrderRemindManager#
     * findOrderRemindCount
     * (com.greenline.guahao.biz.manager.common.LocalResponseDO,
     * java.lang.String)
     */
    @Override
    public OrderRemindDO findOrderRemindCount(LocalResponseDO<Object> lrd, UserDO user) {
        String logObj = "????";
        String error = null;
        OrderRemindDO remind = new OrderRemindDO();
        CheckResponse resp = null;
        UserInfoRequestDTO request = new UserInfoRequestDTO();
        if (null != user) {
            request.setiDNo(user.getCertNo());
            request.setUserName(user.getUserName());
            request.setPartnerId(user.getPartnerId());
            request.setServerType("1"); // 
        }
        try {
            if (lrd.isSuccess()) {
                logger.info(String.format("%s?[userAuthenticationService.checkUserService]?:%s",
                        logObj, jackJson.writeString(request)));
                resp = userAuthenticationService.checkUserService(request);
                if (null != resp) {
                    logger.info(
                            String.format("%s?[userAuthenticationService.checkUserService]:%s",
                                    logObj, jackJson.writeString(resp)));
                    if (resp.getIsSucess()) {
                        List<ServiceDTO> list = resp.getServiceList();
                        if (null != list && list.size() > 0) {
                            int total = 0; // 
                            int residue = 0; // 
                            for (ServiceDTO s : list) {
                                if (null != s) {
                                    if (StringUtils.isNotBlank(s.getTotalCount())
                                            && StringUtils.isNumeric(s.getTotalCount())) {
                                        total += new Integer(s.getTotalCount());
                                    }
                                    if (StringUtils.isNotBlank(s.getValidCount())
                                            && StringUtils.isNumeric(s.getValidCount())) {
                                        residue += new Integer(s.getValidCount());
                                    }
                                }
                            }
                            remind.setTotalCount(total);
                            if (null != resp.getInserviceCount()) {
                                remind.setUsingCount(resp.getInserviceCount());
                                residue -= resp.getInserviceCount(); // ?
                            }
                            if (residue < 0) {
                                logger.warn(String.format(
                                        "[%s]????0",
                                        jackJson.writeString(user)));
                                residue = 0;
                            }
                            remind.setResidueCount(residue);
                            remind.setUsedCount(total - residue);
                        }
                    } else {
                        lrd.setResult(LocalResponseCode.REMOTE_ERROR, resp.getErrorsInfo(), String.format(
                                "%s?[userAuthenticationService.checkUserService]?%s",
                                logObj, resp.getErrorsInfo()));
                    }
                } else {
                    lrd.setResult(LocalResponseCode.REMOTE_EXCEPTION, "?", String
                            .format("%s?[userAuthenticationService.checkUserService]null", logObj));
                }
            }
            if (!lrd.isSuccess()) {
                logger.error(lrd.getProfessionalInfo());
            }
        } catch (Exception e) {
            error = String.format("%S%s", logObj, e.getMessage());
            logger.error(error, e);
            lrd.setResult(LocalResponseCode.REMOTE_CALL_EXCEPTION, String.format("%S", logObj), error);
        }
        return remind;
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.greenline.guahao.biz.manager.orderremind.OrderRemindManager#
     * applyOrderRemind(com.greenline.guahao.biz.manager.common.LocalResponseDO,
     * com.greenline.guahao.biz.manager.orderremind.dataobject.OrderRemindDO)
     */
    @Override
    public boolean applyOrderRemind(LocalResponseDO<Object> lrd, OrderRemindDO apply) {
        String logObj = "???";
        String error = null;
        boolean applyResult = false;
        ResponseDTO<String> resp = null;
        try {
            OrderRemindRequestDO request = OrderRemindConvertor.convertToCustomerApplyRequest(apply);
            logger.info(
                    String.format("%s?[portalCustomerApplyService.sendCustomerApplyOrder]?:%s",
                            logObj, jackJson.writeString(request)));
            if (OrderRemindValidator.validateApplyOrderRemindRequest(lrd, request, logObj)) {
                resp = portalCustomerApplyService.sendCustomerApplyOrder(request);
                if (null != resp) {
                    logger.info(String.format(
                            "%s?[portalCustomerApplyService.sendCustomerApplyOrder]:%s", logObj,
                            jackJson.writeString(resp)));
                    if (ResponseCode.isSuccess(resp.getCode())) { // ?
                        applyResult = true;
                        lrd.setData(resp.getDataResult()); // ?
                    } else {
                        lrd.setResult(LocalResponseCode.REMOTE_ERROR, resp.getErrorMsg(), String.format(
                                "%s?[portalCustomerApplyService.sendCustomerApplyOrder]?%s",
                                logObj, resp.getErrorMsg()));
                    }
                } else {
                    lrd.setResult(LocalResponseCode.REMOTE_EXCEPTION, "?", String.format(
                            "%s?[portalCustomerApplyService.sendCustomerApplyOrder]null", logObj));
                }
            }
            if (!lrd.isSuccess()) {
                logger.error(lrd.getProfessionalInfo());
            }
        } catch (Exception e) {
            error = String.format("%S%s", logObj, e.getMessage());
            logger.error(error, e);
            lrd.setResult(LocalResponseCode.REMOTE_CALL_EXCEPTION, String.format("%S", logObj), error);
        }
        return applyResult;
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.greenline.guahao.biz.manager.orderremind.OrderRemindManager#
     * queryOrderRemindDOs
     * (com.greenline.guahao.biz.manager.common.LocalResponseDO,
     * com.greenline.guahao.biz.manager.orderremind.dataobject.OrderRemindDO)
     */
    @Override
    public List<OrderRemindDO> queryOrderRemindDOs(LocalResponseDO<Object> lrd, OrderRemindDO query) {
        String logObj = "???";
        String error = null;
        List<OrderRemindDO> list = new ArrayList<OrderRemindDO>();
        QueryResultDTO<List<CustomerApplyDTO>> resp = null;
        try {
            CustomerApplyQueryDTO dto = OrderRemindConvertor.convertToCustomerApplyQueryDTO(query);
            logger.info(String.format("%s?[portalCustomerApplyService.queryCustomerApply]?:%s",
                    logObj, jackJson.writeString(dto)));
            resp = portalCustomerApplyService.queryCustomerApply(dto);
            if (null != resp) {
                logger.info(
                        String.format("%s?[portalCustomerApplyService.queryCustomerApply]:%s",
                                logObj, jackJson.writeString(resp)));
                if (ResponseCode.isSuccess(resp.getCode())) { // ?
                    list = OrderRemindConvertor.convertToOrderRemindDOs(resp.getDataResult());
                } else {
                    lrd.setResult(LocalResponseCode.REMOTE_ERROR, resp.getErrorMsg(), String.format(
                            "%s?[portalCustomerApplyService.queryCustomerApply]?%s",
                            logObj, resp.getErrorMsg()));
                }
            } else {
                lrd.setResult(LocalResponseCode.REMOTE_EXCEPTION, "?", String
                        .format("%s?[portalCustomerApplyService.queryCustomerApply]null", logObj));
            }
            if (!lrd.isSuccess()) {
                logger.error(lrd.getProfessionalInfo());
            }
        } catch (Exception e) {
            error = String.format("%S%s", logObj, e.getMessage());
            logger.error(error, e);
            lrd.setResult(LocalResponseCode.REMOTE_CALL_EXCEPTION, String.format("%S", logObj), error);
        }
        return list;
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.greenline.guahao.biz.manager.orderremind.OrderRemindManager#
     * cancelOrderRemind
     * (com.greenline.guahao.biz.manager.common.LocalResponseDO,
     * java.lang.String)
     */
    @Override
    public boolean cancelOrderRemind(LocalResponseDO<Object> lrd, String orderRemindId) {
        String logObj = "????";
        String error = null;
        boolean cancelResult = false;
        ResponseDTO<Boolean> resp = null;
        try {
            logger.info(
                    String.format("%s?[portalCustomerApplyService.cancelCustomerApplyOrder]?:%s",
                            logObj, orderRemindId));
            resp = portalCustomerApplyService.cancelCustomerApplyOrder(orderRemindId);
            if (null != resp) {
                logger.info(String.format(
                        "%s?[portalCustomerApplyService.cancelCustomerApplyOrder]:%s", logObj,
                        jackJson.writeString(resp)));
                if (ResponseCode.isSuccess(resp.getCode())) { // ?
                    cancelResult = resp.getDataResult();
                } else {
                    lrd.setResult(LocalResponseCode.REMOTE_ERROR, resp.getErrorMsg(), String.format(
                            "%s?[portalCustomerApplyService.cancelCustomerApplyOrder]?%s",
                            logObj, resp.getErrorMsg()));
                }
            } else {
                lrd.setResult(LocalResponseCode.REMOTE_EXCEPTION, "?", String.format(
                        "%s?[portalCustomerApplyService.cancelCustomerApplyOrder]null", logObj));
            }
            if (!lrd.isSuccess()) {
                logger.error(lrd.getProfessionalInfo());
            }
        } catch (Exception e) {
            error = String.format("%S%s", logObj, e.getMessage());
            logger.error(error, e);
            lrd.setResult(LocalResponseCode.REMOTE_CALL_EXCEPTION, String.format("%S", logObj), error);
        }
        return cancelResult;
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.greenline.guahao.biz.manager.orderremind.OrderRemindManager#
     * findOrderRemind(com.greenline.guahao.biz.manager.common.LocalResponseDO,
     * java.lang.String)
     */
    @Override
    public OrderRemindDO findOrderRemind(LocalResponseDO<Object> lrd, String orderRemindId) {
        String logObj = "???";
        String error = null;
        OrderRemindDO remind = new OrderRemindDO();
        ResponseDTO<CustomerApplyDTO> resp = null;
        try {
            logger.info(String.format(
                    "%s?[portalCustomerApplyService.queryCustomerApplyByOrderId]?:%s", logObj,
                    orderRemindId));
            resp = portalCustomerApplyService.queryCustomerApplyByOrderId(orderRemindId);
            if (null != resp) {
                logger.info(String.format(
                        "%s?[portalCustomerApplyService.queryCustomerApplyByOrderId]:%s",
                        logObj, jackJson.writeString(resp)));
                if (ResponseCode.isSuccess(resp.getCode())) { // ?
                    remind = OrderRemindConvertor.convertToOrderRemindDO(resp.getDataResult());
                } else {
                    lrd.setResult(LocalResponseCode.REMOTE_ERROR, resp.getErrorMsg(), String.format(
                            "%s?[portalCustomerApplyService.queryCustomerApplyByOrderId]?%s",
                            logObj, resp.getErrorMsg()));
                }
            } else {
                lrd.setResult(LocalResponseCode.REMOTE_EXCEPTION, "?", String.format(
                        "%s?[portalCustomerApplyService.queryCustomerApplyByOrderId]null", logObj));
            }
            if (!lrd.isSuccess()) {
                logger.error(lrd.getProfessionalInfo());
            }
        } catch (Exception e) {
            error = String.format("%S%s", logObj, e.getMessage());
            logger.error(error, e);
            lrd.setResult(LocalResponseCode.REMOTE_CALL_EXCEPTION, String.format("%S", logObj), error);
        }
        return remind;
    }

    /*
     * (non-Javadoc)
     * 
     * @see
     * com.greenline.guahao.biz.manager.orderremind.OrderRemindManager#findCustomer
     * (com.greenline.guahao.biz.manager.common.LocalResponseDO,
     * com.greenline.guahao.biz.manager.orderremind.dataobject.OrderRemindDO)
     */
    @Override
    public OrderRemindDO findCustomer(LocalResponseDO<Object> lrd, OrderRemindDO query) {
        String logObj = "?";
        String error = null;
        OrderRemindDO customer = new OrderRemindDO();
        ResponseDTO<Long> resp = null;
        try {
            logger.info(String.format("%s?[portalCustomerApplyService.queryCustomer]?:%s",
                    logObj, jackJson.writeString(query)));
            resp = portalCustomerApplyService.queryCustomer(query.getUserName(), query.getUserIdCard(),
                    query.getPartnerId());
            if (null != resp) {
                logger.info(String.format("%s?[portalCustomerApplyService.queryCustomer]:%s",
                        logObj, jackJson.writeString(resp)));
                if (ResponseCode.isSuccess(resp.getCode())) { // ?
                    customer.setCustomerId(resp.getDataResult().toString());
                } else {
                    lrd.setResult(LocalResponseCode.REMOTE_ERROR, resp.getErrorMsg(), String.format(
                            "%s?[portalCustomerApplyService.queryCustomer]?%s",
                            logObj, resp.getErrorMsg()));
                }
            } else {
                lrd.setResult(LocalResponseCode.REMOTE_EXCEPTION, "?",
                        String.format("%s?[portalCustomerApplyService.queryCustomer]null", logObj));
            }
            if (!lrd.isSuccess()) {
                logger.error(lrd.getProfessionalInfo());
            }
        } catch (Exception e) {
            error = String.format("%S%s", logObj, e.getMessage());
            logger.error(error, e);
            lrd.setResult(LocalResponseCode.REMOTE_CALL_EXCEPTION, String.format("%S", logObj), error);
        }
        return customer;
    }
}