发送邮件功能 Service 层

package com.thinkgem.jeesite.modules.yudengjipush.service;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;

import com.google.common.collect.Maps;
import com.itextpdf.text.log.SysoLogger;
import com.thinkgem.jeesite.common.service.CrudService;
import com.thinkgem.jeesite.common.utils.SendMailUtil;
import com.thinkgem.jeesite.modules.flight.entity.Detail;
import com.thinkgem.jeesite.modules.flight.entity.FlightIndexBean;
import com.thinkgem.jeesite.modules.flight.entity.FlightInfoList;
import com.thinkgem.jeesite.modules.flight.entity.FlightList;
import com.thinkgem.jeesite.modules.flight.entity.PriceDeatil;
import com.thinkgem.jeesite.modules.flight.entity.ProductList;
import com.thinkgem.jeesite.modules.flight.service.FlightService;
import com.thinkgem.jeesite.modules.hotel.dao.HotelDao;
import com.thinkgem.jeesite.modules.hotel.entity.Hotel;
import com.thinkgem.jeesite.modules.sys.entity.BaseArea;
import com.thinkgem.jeesite.modules.sys.service.BaseAreaService;
import com.thinkgem.jeesite.modules.yudengjipush.dao.YuDengJiPushDao;
import com.thinkgem.jeesite.modules.yudengjipush.entity.YuDengJiPush;

/**
 * 详情页面意向登记 Service 类
 * 
 * @author Administrator
 * 
 */
@Service
@Scope
public class YuDengJiPushService extends CrudService<YuDengJiPushDao, YuDengJiPush> {

    private static final String beijing = "BJS";// 北京三字码
    private static final String shanghai = "SHA";// 上海三字码
    private static final String guangzhou = "CAN";// 广州三字码
    private static final String hongkong = "HKG";// 香港三字码

    @Autowired
    YuDengJiPushDao yuDengJiPushDao;
    @Autowired
    FlightService flightService;
    @Autowired
    BaseAreaService baseAreaService;

    @Autowired
    HotelDao hotelDao;

    /**
     * 查询参观预登记要推送的信息
     * 
     * @param yuDengJiPush
     * @throws ParseException
     */
    public void queryYuDengJiPush() {
        String takeoffDate = flightService.getDateTime(28, "yyyy-MM-dd");// 飞机起飞时间
        String returnDate = flightService.getDateTime(37, "yyyy-MM-dd");// 飞机返程日期为展览开展时间的后7天
        String launchTime = flightService.getDateTime(30, "yyyy-MM-dd");// 展会举办时间
        YuDengJiPush yuDengJiPush = new YuDengJiPush();
        yuDengJiPush.setJuBanTime(launchTime);
        Hotel ht = new Hotel();
        List<YuDengJiPush> yuDengJiPushList = yuDengJiPushDao.findList(yuDengJiPush);
        Map<String, Object> map = Maps.newHashMap();
        try {
            if (yuDengJiPushList != null && yuDengJiPushList.size() > 0) {
                for (YuDengJiPush yp : yuDengJiPushList) {
                    if ("".equals(yp.getCityAdd()) || yp.getCityAdd() == null) {
                        yp.setCityAdd("北京");
                    }
                    // 获取展会所在城市的酒店信息
                    if (!"".equals(yp.getZhanGuanId()) && yp.getZhanGuanId() != null) {
                        ht.setZhanGuanId(Integer.parseInt(yp.getZhanGuanId()));
                        List<Hotel> hotelTop4 = hotelDao.findHotelTop4(ht);
                        if(hotelTop4.size()>0 && hotelTop4 !=null){
                            for(int i=0;i<hotelTop4.size();i++){
                                if(hotelTop4.get(i)!=null){
                                    map.put("hotel"+String.valueOf(i), hotelTop4.get(i));
                                }else{
                                    map.put("hotel"+String.valueOf(i), null);}
                            }
                        }
                        
                    } 
                    
                    List<FlightList> flightList = queryFlightList(yp.getZhanGuanId(), yp.getCityAdd(), takeoffDate, returnDate);
                    if (flightList != null && flightList.size() > 0) {
                        
                        for(int i=0;i<4;i++){
                            FlightIndexBean ftBean = new FlightIndexBean();
                            FlightList ft = flightList.get(i);
                            List<FlightInfoList> flightInfoList = ft.getFlightInfoList();//综合信息
                            List<ProductList> productList = ft.getProductList();//机票价格信息
                            if(flightInfoList !=null && flightInfoList.size()>0){
                                FlightInfoList takeoffList = flightInfoList.get(0);//起飞时的航程信息
                                FlightInfoList arrivalList = flightInfoList.get(flightInfoList.size()-1);//降落时的航程信息
                                if(takeoffList !=null){
                                    ftBean.setAirName(takeoffList.getAirName());// 航空公司
                                    ftBean.setEquipment(takeoffList.getEquipment());// 机型
                                    String takeoffTime = takeoffList.getTakeoffTime();
                                    if(takeoffTime.length()>=5){
                                        ftBean.setTakeoffTime(takeoffTime.substring(0, takeoffTime.length()-5));// 起飞时间
                                    }
                                    ftBean.setTakeoffCity(takeoffList.getTakeoffCity());// 出发城市名称
                                    ftBean.setTakeoffAirportName(takeoffList.getTakeoffAirportName());//起飞时机场名称
                                    ftBean.setTakeoffTerminal(takeoffList.getTakeoffTerminal());// 出发航站楼
                                }
                                if(arrivalList !=null){
                                    String arrivalTime = arrivalList.getArrivalTime();
                                    if(arrivalTime.length()>=5){
                                        ftBean.setArrivalTime(arrivalTime.substring(0, arrivalTime.length()-5));// 着陆点时间
                                    }
                                    ftBean.setArrivalCity(arrivalList.getArrivalCity());// 着陆点城市
                                    ftBean.setArrivalAirportName(arrivalList.getArrivalAirportName());//着陆点机场名称
                                    ftBean.setArrivalTerminal(arrivalList.getArrivalTerminal());// 着陆点航站楼
                                    ftBean.setArrivalEquipment(arrivalList.getEquipment());//终点站时机型
                                }
                            }
                            if(productList !=null && productList.size()>0){
                                for(ProductList p : productList){
                                    List<PriceDeatil> priceDeatilList = p.getPriceDeatil();
                                    if(priceDeatilList !=null && priceDeatilList.size()>0){
                                        for(PriceDeatil pd : priceDeatilList){
                                            Detail detail = pd.getDetail();
                                            ftBean.setSalePrice(detail.getSalePrice());
                                        }
                                    }
                                }
                            }
                            map.put("ftBean"+String.valueOf(i), ftBean);
                        }
                        
                    }
                    map.put("yp", yp);
                    SendMailUtil.sendFtlMail(yp.getMail(), "参观预登记提示", "canGuanYuDengJi.ftl", map);// 发送邮件
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 
     * @param zhanGuanId
     *            展馆的ID
     * @param cityAdd
     *            参观预登记下单人所在的城市
     * @param takeoffDate
     *            起飞时间
     * @return
     */
    /*
     * public Integer getTicketPrice(String zhanGuanId, String cityAdd, String
     * takeoffDate) { int Price = 0; String takeoffSZM = beijing;//
     * 默认当前下单用户起飞城市是北京 BaseArea ba = new BaseArea();
     * ba.setZhanGuanId(Integer.parseInt(zhanGuanId)); ba =
     * baseAreaService.getsanZiMa(ba); if ("".equals(ba.getSanZiMa()) ||
     * ba.getSanZiMa() == null) { return Price; } if ("广州".equals(cityAdd)) {
     * takeoffSZM = guangzhou; } else if ("上海".equals(cityAdd)) { takeoffSZM =
     * shanghai; } else if ("香港".equals(cityAdd)) { takeoffSZM = hongkong; }
     * FlightIndexBean flightIndexBean =
     * flightService.queryYuDengJiPushFlight(takeoffSZM, ba.getSanZiMa(),
     * takeoffDate); if (flightIndexBean != null &&
     * flightIndexBean.getSalePrice() != null) { Price =
     * Integer.parseInt(flightIndexBean.getSalePrice()); } return Price; }
     */
    /**
     * 
     * @param zhanGuanId 展馆的ID
     * @param cityAdd 参观预登记下单人所在的城市
     * @param takeoffDate 起飞时间
     * @param returnDate 返程时间
     * @return List<FlightList>
     */
    public List<FlightList> queryFlightList(String zhanGuanId, String cityAdd, String takeoffDate, String returnDate) {

        String takeoffCityCode = beijing;// 默认当前下单用户起飞城市是北京
        BaseArea ba = new BaseArea();
        ba.setZhanGuanId(Integer.parseInt(zhanGuanId));
        ba = baseAreaService.getsanZiMa(ba);
        if ("".equals(ba.getSanZiMa()) || ba.getSanZiMa() == null) {
            return null;
        }
        if ("广州".equals(cityAdd)) {
            takeoffCityCode = guangzhou;
        } else if ("上海".equals(cityAdd)) {
            takeoffCityCode = shanghai;
        } else if ("香港".equals(cityAdd)) {
            takeoffCityCode = hongkong;
        }
        return flightService.queryYuDengJiPushList(takeoffCityCode, ba.getSanZiMa(), takeoffDate, returnDate);
    }

}

 

posted @ 2016-02-18 15:06  阿若蜜意  阅读(587)  评论(0编辑  收藏  举报