batchserviceimpl.java

来自「移动彩信管理平台」· Java 代码 · 共 352 行

JAVA
352
字号
package com.my7g.zj.mobile.mms.business.service;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;

import org.springframework.jdbc.core.JdbcTemplate;

import com.my7g.zj.mobile.mms.bean.BatchBuildBean;
import com.my7g.zj.mobile.mms.business.IBatchService;
import com.my7g.zj.mobile.mms.mapping.TbMmsBatch;
import com.my7g.zj.mobile.mms.mapping.TbMmsGroupSend;
import com.my7g.zj.mobile.mms.sys.BasicDao;
import com.my7g.zj.mobile.mms.util.DividePageBean;
import com.my7g.zj.mobile.mms.util.PageBean;

/**
 * @author csc
 * 
 */
public class BatchServiceImpl extends BasicDao implements IBatchService {

	private JdbcTemplate jdbcTemplatePlatform;

	private EntityManagerFactory entityManagerFactory;

	private DividePageBean dividePageBean;

	public DividePageBean getDividePageBean() {
		return dividePageBean;
	}

	public void setDividePageBean(DividePageBean dividePageBean) {
		this.dividePageBean = dividePageBean;
	}

	public EntityManagerFactory getEntityManagerFactory() {
		return entityManagerFactory;
	}

	public void setEntityManagerFactory(
			EntityManagerFactory entityManagerFactory) {
		this.entityManagerFactory = entityManagerFactory;
	}

	public JdbcTemplate getJdbcTemplatePlatform() {
		return jdbcTemplatePlatform;
	}

	public void setJdbcTemplatePlatform(JdbcTemplate jdbcTemplatePlatform) {
		this.jdbcTemplatePlatform = jdbcTemplatePlatform;
	}

	/**
	 * 获得子类的列表
	 * 
	 * @return
	 */
	public List getSubType() {
		return this.jdbcTemplatePlatform
				.queryForList("select sort_index,sort_name from "
						+ "tb_mms_type where sort_deep = 3 order by sort_order ");
	}

	/**
	 * 获得所有的群发彩信
	 * 
	 * @param page
	 * @param rowPerPage
	 * @param href
	 * @param mmstype
	 * @param starttime
	 * @param endtime
	 * @return
	 */
	public PageBean getBulidBatch(int page, int rowPerPage, String href,
			String mmstype, String starttime, String endtime) {
		EntityManager entityManager = null;
		PageBean bean = null;
		try {
			entityManager = entityManagerFactory.createEntityManager();
			starttime = "'" + starttime + " 00:00:00.000'";
			endtime = "'" + endtime + " 00:00:00.999'";

			String countsql = "select count(*) from tb_mms_group_send "
					+ " where sent_time >= " + starttime + " and sent_time <="
					+ endtime + "and type_index like '%" + mmstype + "%'";
			String sql = " select a.mms_id,a.mms_title,c.sort_name,c.sort_index,d.ent_name,a.sent_time,b.batch_id "
					+ " from tb_mms_group_send a left join tb_mms_batch b                 "
					+ " on a.mms_id = b.mms_id                                            "
					+ " , tb_mms_type c                                                   "
					+ " ,supermms_cp..tb_mms_cp_provider d                                "
					+ " where a.type_index = c.sort_index and a.type_index = d.type_index and a.provide_id = d.provider_id"
					+ "  and a.sent_time >="
					+ starttime
					+ " and a.sent_time <= "
					+ endtime
					+ " and a.type_index like '%"
					+ mmstype
					+ "%'"
					+ " order by a.sent_time ";

			dividePageBean.setwaitPage(String.valueOf(page), rowPerPage);

			Long ecount = 0L;
			Vector evs = (Vector) (entityManager.createNativeQuery(countsql)
					.getSingleResult());
			if (evs != null && !evs.isEmpty()) {
				ecount = Long.valueOf(evs.get(0).toString());
			}
			dividePageBean.setPageInfo(ecount.intValue());

			List rs = entityManager.createNativeQuery(sql).setFirstResult(
					(page - 1) * rowPerPage).setMaxResults(rowPerPage)
					.getResultList();
			List rsList = new ArrayList();
			for (Iterator it = rs.iterator(); it.hasNext();) {

				Vector vs = (Vector) it.next();
				BatchBuildBean bbb = new BatchBuildBean();
				bbb.setMmsId(vs.get(0) == null ? "" : vs.get(0).toString());
				bbb.setTitle(vs.get(1) == null ? "" : vs.get(1).toString());
				bbb.setType(vs.get(2) == null ? "" : vs.get(2).toString());
				bbb
						.setType_index(vs.get(3) == null ? "" : vs.get(3)
								.toString());
				bbb.setCp(vs.get(4) == null ? "" : vs.get(4).toString());
				bbb.setSentTime(vs.get(5) == null ? "" : vs.get(5).toString());
				bbb.setState(vs.get(6) == null ? "0" : vs.get(6).toString());
				bbb.setStatezh(vs.get(6) == null ? "未生成批次"
						: "<font color='red'>已生成批次</font>");
				rsList.add(bbb);

			}

			String pageHref = dividePageBean.gethrefPage(href, "pagesel",
					"page");

			bean = new PageBean(pageHref, rsList);

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (entityManager != null) {
				entityManager.close();
			}
		}

		return bean;
	}

	/**
	 * 生成彩信批次
	 * 
	 * @param mmsid
	 */
	public void createBatch(TbMmsBatch tmb) {

		this.save(tmb);

	}

	/**
	 * 根据彩信id查询批次
	 * 
	 * @param mmsId
	 * @return
	 */
	public List checkByMmsId(String mmsId) {

		EntityManager entityManager = null;
		PageBean bean = null;
		List rsList = new ArrayList();
		try {
			entityManager = entityManagerFactory.createEntityManager();
			
			String sql = " select a.batch_id,a.mms_id,c.mms_title,b.sort_name,d.ent_name,a.real_send_time           "
				+ " from tb_mms_batch a,tb_mms_type b,tb_mms_seed c,supermms_cp..tb_mms_cp_provider d           "
				+ " where a.type_index = b.sort_index and a.mms_id = c.mms_id and d.provider_id = c.provide_id  "
				+ " and a.mms_id ='"+mmsId+"'";

			List rs = entityManager.createNativeQuery(sql)
					.getResultList();
			
			for (Iterator it = rs.iterator(); it.hasNext();) {

				Vector vs = (Vector) it.next();
				BatchBuildBean bbb = new BatchBuildBean();
				bbb.setBatchId(vs.get(0) == null ? "" : vs.get(0).toString());
				bbb.setMmsId(vs.get(1) == null ? "" : vs.get(1).toString());
				bbb.setTitle(vs.get(2) == null ? "" : vs.get(2).toString());
				bbb.setType(vs.get(3) == null ? "" : vs.get(3).toString());
				bbb.setCp(vs.get(4) == null ? "" : vs.get(4).toString());
				bbb.setRealSentTime(vs.get(5) == null ? "" : vs.get(5).toString());
				
				rsList.add(bbb);
			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (entityManager != null) {
				entityManager.close();
			}
		}
		
		return rsList;
	}

	/**
	 * 根据批次id查询
	 * 
	 * @param batchId
	 * @return
	 */
	public List checkByBatchId(String batchId) {

		EntityManager entityManager = null;
		PageBean bean = null;
		List rsList = new ArrayList();
		try {
			entityManager = entityManagerFactory.createEntityManager();
			
			String sql = " select a.batch_id,a.mms_id,c.mms_title,b.sort_name,d.ent_name,a.real_send_time           "
				+ " from tb_mms_batch a,tb_mms_type b,tb_mms_seed c,supermms_cp..tb_mms_cp_provider d           "
				+ " where a.type_index = b.sort_index and a.mms_id = c.mms_id and d.provider_id = c.provide_id  "
				+ " and a.batch_id ='"+batchId+"'";

			List rs = entityManager.createNativeQuery(sql)
					.getResultList();
			
			for (Iterator it = rs.iterator(); it.hasNext();) {

				Vector vs = (Vector) it.next();
				BatchBuildBean bbb = new BatchBuildBean();
				bbb.setBatchId(vs.get(0) == null ? "" : vs.get(0).toString());
				bbb.setMmsId(vs.get(1) == null ? "" : vs.get(1).toString());
				bbb.setTitle(vs.get(2) == null ? "" : vs.get(2).toString());
				bbb.setType(vs.get(3) == null ? "" : vs.get(3).toString());
				bbb.setCp(vs.get(4) == null ? "" : vs.get(4).toString());
				bbb.setRealSentTime(vs.get(5) == null ? "" : vs.get(5).toString());
				
				rsList.add(bbb);
			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (entityManager != null) {
				entityManager.close();
			}
		}
		
		return rsList;
	}

	/**分页查询批次
	 * @param page
	 * @param rowPerPage
	 * @param href
	 * @param mmstype
	 * @param starttime
	 * @param endtime
	 * @return
	 */
	public PageBean getCheckBatch(int page, int rowPerPage, String href,
			String mmstype, String starttime, String endtime) {
		EntityManager entityManager = null;
		PageBean bean = null;
		try {
			entityManager = entityManagerFactory.createEntityManager();
			starttime = "'" + starttime + " 00:00:00.000'";
			endtime = "'" + endtime + " 00:00:00.999'";

			String countsql = "select count(*) from tb_mms_batch "
					+ " where real_send_time >= " + starttime + " and real_send_time <="
					+ endtime + "and type_index like '%" + mmstype + "%'";
			String sql = " select a.batch_id,a.mms_id,c.mms_title,b.sort_name,d.ent_name,a.real_send_time           "
					+ " from tb_mms_batch a,tb_mms_type b,tb_mms_seed c,supermms_cp..tb_mms_cp_provider d           "
					+ " where a.type_index = b.sort_index and a.mms_id = c.mms_id and d.provider_id = c.provide_id  "
					+ "  and a.real_send_time >="
					+ starttime
					+ " and a.real_send_time <= "
					+ endtime
					+ " and c.type_index like '%"
					+ mmstype
					+ "%'"
					+ " order by a.real_send_time ";
			System.out.println("sql-----"+sql);
			dividePageBean.setwaitPage(String.valueOf(page), rowPerPage);

			Long ecount = 0L;
			Vector evs = (Vector) (entityManager.createNativeQuery(countsql)
					.getSingleResult());
			if (evs != null && !evs.isEmpty()) {
				ecount = Long.valueOf(evs.get(0).toString());
			}
			dividePageBean.setPageInfo(ecount.intValue());

			List rs = entityManager.createNativeQuery(sql).setFirstResult(
					(page - 1) * rowPerPage).setMaxResults(rowPerPage)
					.getResultList();
			List rsList = new ArrayList();
			for (Iterator it = rs.iterator(); it.hasNext();) {

				Vector vs = (Vector) it.next();
				BatchBuildBean bbb = new BatchBuildBean();
				bbb.setBatchId(vs.get(0) == null ? "" : vs.get(0).toString());
				bbb.setMmsId(vs.get(1) == null ? "" : vs.get(1).toString());
				bbb.setTitle(vs.get(2) == null ? "" : vs.get(2).toString());
				bbb.setType(vs.get(3) == null ? "" : vs.get(3).toString());
				bbb.setCp(vs.get(4) == null ? "" : vs.get(4).toString());
				bbb.setRealSentTime(vs.get(5) == null ? "" : vs.get(5).toString());
				
				rsList.add(bbb);

			}

			String pageHref = dividePageBean.gethrefPage(href, "pagesel",
					"page");

			bean = new PageBean(pageHref, rsList);

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (entityManager != null) {
				entityManager.close();
			}
		}

		return bean;
	}
	
	
	/**删除批次方法
	 * @param batchid
	 * @return
	 */
	public String deleteBatch(String batchid){
		
		this.delete(TbMmsBatch.class, new Long(batchid));
		
		return "删除批次 "+batchid+" 成功!";
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?