Browse Source

dsp资质审核

Signed-off-by: jiapeng.dong <jiapeng.dong@cloudcross.com>
jiapeng.dong 9 years ago
parent
commit
9e95ee651c

+ 23 - 0
src/main/java/com/cloudcross/ssp/model/Item.java

@@ -0,0 +1,23 @@
+package com.cloudcross.ssp.model;
+
+public class Item {
+	long dspId;
+	long advertiserId;
+	public long getDspId() {
+		return dspId;
+	}
+	public void setDspId(long dspId) {
+		this.dspId = dspId;
+	}
+	public long getAdvertiserId() {
+		return advertiserId;
+	}
+	public void setAdvertiserId(long advertiserId) {
+		this.advertiserId = advertiserId;
+	}
+	@Override
+	public String toString() {
+		return "Item [dspId=" + dspId + ", advertiserId=" + advertiserId + "]";
+	}
+	
+}

+ 111 - 0
src/main/java/com/cloudcross/ssp/model/mapper/aptitude-audit.sql.xml

@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="aptitudeAuditSqlMapper">
+	
+	<sql id="base_column">
+		t_dsp_advertiser.dsp_id as dspId,
+		t_dsp_advertiser.advertiser_id as advertiserId,
+		t_dsp_advertiser.industry_id as industryId,
+		t_dsp_advertiser.name as name,
+		t_dsp_advertiser.reg_name as regName,
+		t_dsp_advertiser.homepage as homepage,
+		t_dsp_advertiser.tel as tel,
+		t_dsp_advertiser.email as email,
+		t_dsp_advertiser.licence_path as licencePath,
+		t_dsp_advertiser.cpi_path as cpiPath,
+		t_dsp_advertiser.org_path as orgPath,
+		t_dsp_advertiser.id_path as idPath,
+		t_dsp_advertiser.state as state,
+		t_dsp_advertiser.updated as updated	
+	</sql>
+	
+	
+	<select id="selectByParamsBack"  parameterType="map" resultType="com.cloudcross.ssp.model.DspAdvertiser">
+		select 
+		<include refid="base_column" />
+		,t_dsp_agent.name as agentName
+		from t_dsp_advertiser left join t_dsp_agent 
+		on t_dsp_advertiser.dsp_id=t_dsp_agent.id 
+		where t_dsp_advertiser.state != -1
+		 <if test="searchValue!=null">
+			and t_dsp_advertiser.name like #{value}
+		</if>
+		 <if test="checkStatus!=null">	
+			and t_dsp_advertiser.state= #{checkStatus}
+		</if>
+		order by t_dsp_advertiser.dsp_id   desc
+		limit #{pager.offset}, #{pager.limit}
+		
+	</select>
+
+	
+	<select id="countByParamsBack" parameterType="map" resultType="int">
+		select count(*)
+		from t_dsp_advertiser a left join t_dsp_agent b 
+		on b.id=a.dsp_id 
+		where a.state != -1
+		 <if test="searchValue!=null">
+			and a.name like #{value}
+		</if>
+		 <if test="checkStatus!=null">	
+			and a.state = #{checkStatus}
+		</if>
+	</select>
+	<!-- 批量通过 -->
+	<update id="updateAuditPass" parameterType="HashMap">
+		update t_dsp_advertiser 
+			set state = #{checkStatus},updated = #{modifyDate},memo=""
+			where 
+			<foreach item="Item" collection="arrayList"
+		      open="(" separator="," close=")">
+		    dsp_id = #{Item.dspId} and
+		    advertiser_id = #{Item.advertiserId} 
+			</foreach>
+			
+	</update>
+
+	<!--批量不通过  -->
+		<update id="updateAuditNoPass" parameterType="HashMap">
+		update t_dsp_advertiser 
+			set state = #{checkStatus},updated = #{modifyDate},memo = #{memo}
+			where 
+			<foreach item="Item" collection="arrayList"
+		      open="(" separator="," close=")">
+		    dsp_id = #{Item.dspId} and
+		    advertiser_id = #{Item.advertiserId} 
+			</foreach>
+	</update>
+	
+	<select id="selectByIdBack" parameterType="map" resultType="com.cloudcross.ssp.model.DspAdvertiser">
+		select <include refid="base_column" /> from t_dsp_advertiser
+		where dsp_id = #{dspId} and advertiser_id = #{advertiserId}
+	</select>
+	
+	<update id="updateCheckStatus" parameterType="map">
+		update t_dsp_advertiser 
+		set state = #{checkStatus},memo = #{checkMemo},updated = now()
+		where dsp_id = #{dspId} and advertiser_id = #{advertiserId}
+	</update>
+	
+	
+	<!-- 导出Excel用 -->
+	<select id="findDeliverEffectAnalysis" parameterType="map" resultType="com.cloudcross.ssp.model.DspAdvertiser">		
+		
+		select 
+		<include refid="base_column" />
+		,t_dsp_agent.name as agentName
+		from t_dsp_advertiser left join t_dsp_agent 
+		on t_dsp_advertiser.dsp_id=t_dsp_agent.id 
+		where t_dsp_advertiser.state != -1
+		
+		  <if test="searchValue!=null">
+			and t_dsp_advertiser.name like #{value}
+		</if>
+		 <if test="checkStatus!=null">	
+			and t_dsp_advertiser.state= #{checkStatus}
+		</if>
+		order by t_dsp_advertiser.dsp_id  desc
+		
+	</select>
+	
+</mapper>

+ 20 - 0
src/main/java/com/cloudcross/ssp/service/IAptitudeAuditService.java

@@ -0,0 +1,20 @@
+package com.cloudcross.ssp.service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.cloudcross.ssp.base.service.IGenericService;
+import com.cloudcross.ssp.model.Audit;
+import com.cloudcross.ssp.model.DspAdvertiser;
+import com.cloudcross.ssp.model.DspAgent;
+
+public interface IAptitudeAuditService extends IGenericService<DspAdvertiser>{
+
+	public boolean upDateNoPass(List<Long> auditIdList,List<Long> advIdList, int checkStatus,String memo);
+	public boolean updatePass(List<Long> dspIdList,List<Long> advIdList,int status); 
+	public boolean updateCheckStatus(Map<String, Object> paramMap);
+	//导出Excel用
+	public List<DspAdvertiser> findDeliverEffectAnalysis(Map<String, Object> paramMap);
+	public DspAdvertiser findById(Long dspId, Long advertiserId);
+
+}

+ 133 - 0
src/main/java/com/cloudcross/ssp/service/impl/AptitudeAuditService.java

@@ -0,0 +1,133 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.base.service.IGenericService;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+import com.cloudcross.ssp.model.DspAdvertiser;
+import com.cloudcross.ssp.model.Item;
+import com.cloudcross.ssp.service.IAptitudeAuditService;
+
+@Service
+public class AptitudeAuditService implements IAptitudeAuditService{
+	
+	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	@Override
+	public DspAdvertiser findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		if(paramMap.get("searchValue")==null || paramMap.get("searchValue")==""){
+			paramMap.put("searchValue", null);
+		}else{
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("value", searchValue);
+		}
+		return myBatisDao.get("aptitudeAuditSqlMapper.countByParamsBack", paramMap);
+	}
+
+	@Override
+	public List<DspAdvertiser> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("aptitudeAuditSqlMapper.selectByParamsBack", paramMap);
+	}
+
+	@Override
+	public boolean add(DspAdvertiser t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(DspAdvertiser t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updatePass(List<Long> dspIdList,List<Long> advIdList, int status) {
+		List<Item> arrayList = new ArrayList<Item>();
+		Item item = new Item();
+		for(int i=0;i<dspIdList.size();i++){
+			item.setDspId(dspIdList.get(i));
+			item.setAdvertiserId(advIdList.get(i));
+			arrayList.add(i,item);
+		}
+		myBatisDao.save("aptitudeAuditSqlMapper.updateAuditPass",
+				MapBuilder.create(HashMap.class)
+					.add("arrayList", arrayList)
+					.add("modifyDate", new Date())
+					.add("checkStatus", status).map());
+		return true;
+	}
+
+	@Override
+	public boolean upDateNoPass(List<Long> dspIdList, List<Long> advIdList,int checkStatus,
+			String memo) {
+		List<Item> arrayList = new ArrayList<Item>();
+		Item item = new Item();
+		for(int i=0;i<dspIdList.size();i++){
+			item.setDspId(dspIdList.get(i));
+			item.setAdvertiserId(advIdList.get(i));
+			arrayList.add(i,item);
+		}
+		myBatisDao.save("aptitudeAuditSqlMapper.updateAuditNoPass",
+				MapBuilder.create(HashMap.class)
+					.add("arrayList", arrayList)
+					.add("memo",memo)
+					.add("modifyDate", new Date())
+					.add("checkStatus", checkStatus).map());
+		return true;
+	}
+
+	@Override
+	public boolean updateCheckStatus(Map<String, Object> paramMap) {
+		myBatisDao.save("aptitudeAuditSqlMapper.updateCheckStatus", paramMap);
+		return false;
+	}
+
+	@Override
+	public List<DspAdvertiser> findDeliverEffectAnalysis(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.getList("aptitudeAuditSqlMapper.findDeliverEffectAnalysis", paramMap);
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public DspAdvertiser findById(Long dspId, Long advertiserId) {
+		
+		return myBatisDao.get("aptitudeAuditSqlMapper.selectByIdBack",
+				MapBuilder.create(HashMap.class)
+				.add("dspId", dspId)
+				.add("advertiserId", advertiserId)
+				.map());
+	}
+
+	
+
+}

+ 0 - 3
src/main/java/com/cloudcross/ssp/web/back/main/audit/AuditController.java

@@ -88,9 +88,6 @@ public class AuditController extends SimpleController{
 		model.addAllAttributes(paramMap);
 		model.addAttribute("pager", pager);
 		model.addAttribute("auditList", auditList);
-		for(Audit audit:auditList){
-			System.out.println(audit);
-		}
 		return page("list");
 	}
 	/**

+ 177 - 0
src/main/java/com/cloudcross/ssp/web/back/main/dsp/AptitudeAuditController.java

@@ -0,0 +1,177 @@
+package com.cloudcross.ssp.web.back.main.dsp;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+
+
+
+import com.cloudcross.ssp.base.utils.freemarker.FreemarkerTemplateProcessor;
+import com.cloudcross.ssp.base.web.SimpleController;
+import com.cloudcross.ssp.common.consts.Status;
+import com.cloudcross.ssp.common.utils.LangUtil;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.DspAdvertiser;
+import com.cloudcross.ssp.service.IAptitudeAuditService;
+
+
+
+@Controller
+@RequestMapping("/back/main/dsp/aptitude-audit")
+public class AptitudeAuditController extends SimpleController{
+	
+	@Autowired
+	private IAptitudeAuditService iAptitudeAuditService;
+	@Autowired
+	private FreemarkerTemplateProcessor templateProcessor;
+	/**
+	 * @return 返回到dsp资质审核第一页。
+	 */
+	@RequestMapping("/list")
+	public String list(Model model,
+			@RequestParam HashMap<String, Object> paramMap,
+			@RequestParam(defaultValue="1") int page) {
+		//按状态搜索用
+		if(paramMap.containsKey("checked")){
+			if(paramMap.get("checked").equals("")) { 
+				paramMap.put("checkStatus", null);
+			}
+			if(paramMap.get("checked").equals("1")) { 
+				paramMap.put("checkStatus", 0);
+			}
+			if(paramMap.get("checked").equals("2")) { 
+				paramMap.put("checkStatus", 2);
+			}
+			if(paramMap.get("checked").equals("0")) { 
+				paramMap.put("checkStatus", 1);
+			}
+		}
+		int totalRow = iAptitudeAuditService.countByParams(paramMap);
+		
+		Pager pager = new Pager();
+		pager.setPage(page);
+		pager.setTotalRow(totalRow);
+		List<DspAdvertiser> auditList = iAptitudeAuditService.findByParams(paramMap, pager);
+		
+		model.addAllAttributes(paramMap);
+		model.addAttribute("pager", pager);
+		model.addAttribute("auditList", auditList);
+		return page("list");
+	}
+	/**
+	 * 用来查看资质审核
+	 * @param model
+	 * @param paramMap
+	 * @param auditId
+	 * @return
+	 */
+	@RequestMapping("/details")
+	public String update(Model model,
+			@RequestParam HashMap<String, Object> paramMap,
+			@RequestParam Long dspId,
+			@RequestParam Long advertiserId) {
+		DspAdvertiser dspAdvertiser = iAptitudeAuditService.findById(dspId,advertiserId);
+		System.out.println("luo2:" + paramMap);
+		model.addAllAttributes(paramMap);
+		model.addAttribute("dspAdvertiser", dspAdvertiser);
+		model.addAttribute("dspId", dspId);
+		model.addAttribute("advertiserId",advertiserId);
+		return page("details");
+	}
+	
+	
+	@RequestMapping("check")
+	public @ResponseBody String enable(@RequestParam Map<String, Object> paramMap) {
+		if(paramMap.get("checkMemo")==null || paramMap.get("checkMemo")==""){
+			paramMap.put("checkMemo", "");
+		}
+		System.out.println(paramMap.toString());
+		iAptitudeAuditService.updateCheckStatus(paramMap);
+		return OK;
+	}
+	
+	@RequestMapping("/enable")
+	public @ResponseBody String enable(Long[] id,Long[] advertiserId) {
+		if (ArrayUtils.isNotEmpty(id)) {
+			iAptitudeAuditService.updatePass(LangUtil.array2List(id),LangUtil.array2List(advertiserId),Status.enable.value);
+		}
+		return OK;
+	}
+
+	@RequestMapping("/disable")
+	public @ResponseBody String disable(@RequestParam Long[] id,Long[] advertiserId,String memo) {
+		
+		if (ArrayUtils.isNotEmpty(id)) {
+			iAptitudeAuditService.upDateNoPass(LangUtil.array2List(id),LangUtil.array2List(advertiserId),Status.backnopass.value,memo); 
+		}
+		return OK ;
+	}
+	//导出audit列表页Excel用
+	
+	@RequestMapping("/exportDataReportExcel")
+	public void exportDataReportExcel(Model model,HttpServletRequest request,
+			HttpServletResponse response,
+			@RequestParam Map<String, Object> paramMap) {
+			//model.addAttribute("advertiserId", advertiserId);
+		//按状态搜索用
+		if(paramMap.get("checked").equals("")) { 
+			paramMap.put("checkStatus", null);
+		}
+		if(paramMap.get("checked").equals("1")) { 
+			paramMap.put("checkStatus", 0);
+		}
+		if(paramMap.get("checked").equals("2")) { 
+			paramMap.put("checkStatus", 2);
+		}
+		if(paramMap.get("checked").equals("0")) { 
+			paramMap.put("checkStatus", 1);
+		}
+		/**
+		 * 参数和list里要一样
+		 */
+		List<DspAdvertiser> reportList = iAptitudeAuditService.findDeliverEffectAnalysis(paramMap);
+		paramMap.put("dataList", reportList);
+		response.reset();
+		// Content-Type:application/vnd.ms-excel;charset=utf8或者text/xml;charset=utf8
+		response.setContentType("application/vnd.ms-excel;charset=utf8");
+		// 设置excel文件名称
+		SimpleDateFormat df2 = new SimpleDateFormat("yyyyMMddHHmmss");
+		String fileName = "Report" + df2.format(new Date());
+		response.setHeader("Content-Disposition", "attachment;filename="
+				+ fileName + ".xls");
+		// 需要对excel的列和行的总数进行指定
+		int column = 9;
+		paramMap.put("dataSize", (reportList.size() + 100));
+		paramMap.put("column", column);
+		paramMap.put("advertiserName", "广告主列表");
+		paramMap.put("startDate", "2015-04-01");
+		paramMap.put("endDate", "2015-06-01");
+		String excelOrder = templateProcessor.processTemplate("excel/aptitudeAudit.ftl", paramMap);
+		try {
+			PrintWriter out = response.getWriter();
+			out.write(excelOrder);
+			out.flush();
+			out.close();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+	
+}

+ 102 - 0
src/main/resources/template/excel/aptitudeAudit.ftl

@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<?mso-application progid="Excel.Sheet"?>
+<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
+ xmlns:o="urn:schemas-microsoft-com:office:office"
+ xmlns:x="urn:schemas-microsoft-com:office:excel"
+ xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
+ xmlns:html="http://www.w3.org/TR/REC-html40">
+ <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
+  <Author>adnetwork</Author>
+  <LastAuthor>adnetwork</LastAuthor>
+  <Created>2014-10-15T06:05:44Z</Created>
+  <Version>14.00</Version>
+ </DocumentProperties>
+ <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
+  <AllowPNG/>
+ </OfficeDocumentSettings>
+ <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
+  <WindowHeight>5130</WindowHeight>
+  <WindowWidth>16155</WindowWidth>
+  <WindowTopX>240</WindowTopX>
+  <WindowTopY>45</WindowTopY>
+  <ProtectStructure>False</ProtectStructure>
+  <ProtectWindows>False</ProtectWindows>
+ </ExcelWorkbook>
+ <Styles>
+  <Style ss:ID="Default" ss:Name="Normal">
+   <Alignment ss:Vertical="Center"/>
+   <Borders/>
+   <Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
+   <Interior/>
+   <NumberFormat/>
+   <Protection/>
+  </Style>
+  <Style ss:ID="s63" ss:Name="超链接">
+   <Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#0000FF"
+    ss:Underline="Single"/>
+  </Style>
+  <Style ss:ID="s65">
+   <NumberFormat ss:Format="Short Date"/>
+  </Style>
+  <Style ss:ID="s66">
+   <NumberFormat ss:Format="0%"/>
+  </Style>
+ </Styles>
+ <Worksheet ss:Name="Sheet1">
+  <Table ss:ExpandedColumnCount="${column!}" ss:ExpandedRowCount="<#if dataSize??>${dataSize+3}<#else>3</#if>" x:FullColumns="1"
+   x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="13.5">
+   <Column ss:AutoFitWidth="0" ss:Width="114"/>
+   <Column ss:AutoFitWidth="0" ss:Width="95.25"/>
+   <Column ss:AutoFitWidth="0" ss:Width="93" ss:Span="1"/>
+   <Column ss:Index="5" ss:AutoFitWidth="0" ss:Width="74.25"/>
+   <Column ss:Width="63"/>
+   <Row>
+    <Cell ss:MergeAcross="9"><Data ss:Type="String">公司名:${regName!} </Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="9"><Data ss:Type="String">开始日期:${startDate!}    结束日期:${endDate!}</Data></Cell>
+   </Row>
+   <Row>
+	   
+	   	
+	    <Cell><Data ss:Type="String">广告主名称</Data></Cell>
+	     <Cell><Data ss:Type="String">广告主注册名</Data></Cell>
+	    <Cell><Data ss:Type="String">审核状态(0审核通过,1未审核,2审核未通过)</Data></Cell>
+	    <Cell><Data ss:Type="String">联系人</Data></Cell>
+	     <Cell><Data ss:Type="String">电话</Data></Cell>
+	      <Cell><Data ss:Type="String">邮箱</Data></Cell>	   	
+	    <Cell><Data ss:Type="String">最后更新日期</Data></Cell>
+	   </Row>
+<#if dataList ??>
+     <#list dataList as deliverAnalysis>   
+		   <Row>
+	    	<Cell><Data ss:Type="String">${deliverAnalysis.name!}</Data></Cell>
+	    	<Cell><Data ss:Type="String">${deliverAnalysis.regName!}</Data></Cell>
+	    	<Cell><Data ss:Type="String">${deliverAnalysis.agentName!}</Data></Cell>
+	    	<Cell><Data ss:Type="String">${deliverAnalysis.state!}</Data></Cell>
+	    	<Cell><Data ss:Type="String">${deliverAnalysis.tel!}</Data></Cell>
+	    	<Cell><Data ss:Type="String">${deliverAnalysis.email!}</Data></Cell>
+	   		<Cell><Data ss:Type="String">${deliverAnalysis.updated?datetime}</Data></Cell> 
+		   </Row>
+	 </#list>
+  </#if>   
+  </Table>
+  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
+   <PageSetup>
+    <Header x:Margin="0.3"/>
+    <Footer x:Margin="0.3"/>
+    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
+   </PageSetup>
+   <Selected/>
+   <Panes>
+    <Pane>
+     <Number>3</Number>
+     <ActiveRow>7</ActiveRow>
+     <ActiveCol>8</ActiveCol>
+    </Pane>
+   </Panes>
+   <ProtectObjects>False</ProtectObjects>
+   <ProtectScenarios>False</ProtectScenarios>
+  </WorksheetOptions>
+ </Worksheet>
+</Workbook>

+ 76 - 0
src/main/webapp/WEB-INF/pages/back/main/dsp/aptitude-audit/details.ftl

@@ -0,0 +1,76 @@
+<@override name="head">
+<title>资质审核</title>
+<script type="text/javascript" src="${ctx}/assets/js/lib/bootstrap.min.js"></script>
+<script type="text/javascript" src="${ctx}/assets/js/lib/bootbox.js"></script>
+<script type="text/javascript" src="${ctx}/assets/js/common/table.js"></script>
+<script type="text/javascript" src="${ctx}/assets/js/back/aptitudeAudit.js"></script>
+</@override> 
+<@override name="body">
+<div id=content_bg>
+	<#include "/back/main/public-head.ftl">
+	<div id= "pagecontent">
+		<div id="content">
+			<div id="selectBar_audit" class="selectBar">
+				<a href="${ctx}/back/main/dsp/audit/list">素材审核</a>
+				<a class="selectBar_change" href="${ctx}/back/main/dsp/aptitude-audit/list">资质审核</a>
+		    </div>
+		    <div id="navDiv">
+				<ul id="navDiv_ul">
+					<li><i class="icon-home"></i></li>
+					<li><a href="${ctx}/back/main/dashboard">首页</a></li>
+					<li><i class="icon-angle-right"></i></li>
+				    <li><a href="${ctx}/back/main/audit/audit/list">资质审核</a></li>
+				    <li><i class="icon-angle-right"></i></li>
+				    <li class="navDiv_currentLi">审核</li>
+				</ul>  
+ 			</div>
+			<div id="navButtons">
+				<div id="button">	
+					<input type="hidden" id="auditId" dspId="${dspId!}" advertiserId="${advertiserId}"/>				
+					<a class="btn2" id="btn-auditpass">审核通过</a>
+					<a class="btn2" id="btn-auditunpass">审核不通过</a>
+				</div>
+			</div>
+			<div class="auditDiv">
+				<span>广告主名称:${dspAdvertiser.name!}</span>
+				<span>广告主注册名:${dspAdvertiser.regName!}</span>
+				<span>网址:<a href="${dspAdvertiser.homePage!}">${dspAdvertiser.homePage!}</a></span>
+				<span>电话:${dspAdvertiser.tel!}</span>
+				<span>邮箱:${dspAdvertiser.email!}</span>
+			</div>
+			<table border="1" class="tableFig">
+				<thead>
+					<tr class="theadTr">
+						<th class="theadTh" style="width:30%;">资质</th>
+						<th class="theadTh" style="width:40%;">素材</th>
+						<th class="theadTh" style="width:30%;">最后更新时间</th>
+				    </tr>
+				</thead>
+				<tbody>
+				    <tr id="tbodyTr">
+						<td class="tbodyTd">ICP</td>
+						<td class="tbodyTd"><img class="audit_img" src="${dspAdvertiser.cpiPath}"></td>
+						<td class="tbodyTd">${dspAdvertiser.updated!?datetime}</td>
+					</tr>
+					<tr id="tbodyTr">
+						<td class="tbodyTd">企业营业执照</td>
+						<td class="tbodyTd"><img class="audit_img" src="${dspAdvertiser.licencePath}"></td>
+						<td class="tbodyTd">${dspAdvertiser.updated!?datetime}</td>
+					</tr>
+					<tr id="tbodyTr">
+						<td class="tbodyTd">法人代表身份证</td>
+						<td class="tbodyTd"><img class="audit_img" src="${dspAdvertiser.idPath}"></td>
+						<td class="tbodyTd">${dspAdvertiser.updated!?datetime}</td>
+					</tr>
+					<tr id="tbodyTr">
+						<td class="tbodyTd">企业机构代码证</td>
+						<td class="tbodyTd"><img class="audit_img" src="${dspAdvertiser.orgPath}"></td>
+						<td class="tbodyTd">${dspAdvertiser.updated!?datetime}</td>
+					</tr>
+				</tbody>
+			</table>
+		</div>
+	</div>
+</div>
+</@override>
+<@extends name="/common/simple.ftl"/>

+ 88 - 0
src/main/webapp/WEB-INF/pages/back/main/dsp/aptitude-audit/list.ftl

@@ -0,0 +1,88 @@
+<@override name="head">
+<title>资质审核</title>
+<script type="text/javascript" src="${ctx}/assets/js/lib/bootstrap.min.js"></script>
+<script type="text/javascript" src="${ctx}/assets/js/lib/bootbox.js"></script>
+<script type="text/javascript" src="${ctx}/assets/js/common/table.js"></script>
+<script type="text/javascript" src="${ctx}/assets/js/back/aptitudeAudit.js"></script>
+</@override> 
+<@override name="body">
+<div id=content_bg>
+	<#include "/back/main/public-head.ftl">
+	<div id= "pagecontent">
+		<div id="content">
+			<div id="selectBar_audit" class="selectBar">
+				<a href="${ctx}/back/main/dsp/audit/list">Dsp素材审核</a>
+				<a class="selectBar_change" href="${ctx}/back/main/dsp/aptitude-audit/list">Dsp资质审核</a>
+		    </div>
+		    <div id="navDiv">
+				<ul id="navDiv_ul">
+					<li><i class="icon-home"></i></li>
+					<li><a href="${ctx}/back/main/dashboard">首页</a></li>
+					<li><i class="icon-angle-right"></i></li>
+				    <li class="navDiv_currentLi">Dsp资质审核</li>
+				</ul>  
+ 			</div>
+ 			<form id="myform" action="${ctx}/back/main/dsp/aptitude-audit/list" method="post">
+ 				<input type="hidden" id="status" name="checked" value="${checked!}"/>
+	 			<div id="selectBar_statusOther" class="selectBar">
+		 			<span>状态:</span>
+					<a value="">全部</a>
+					<a value="1">审核通过</a>
+					<a value="2">审核未通过</a>
+					<a value="0">未审核</a>
+				</div>
+				<div id="navButtons_other">
+					<div id="button">
+						<a class="btn2" id="all-btn-pass-list">批量通过</a>
+						<a class="btn2" id="all-btn-unpass-list">批量不通过</a>
+					</div>
+					<div id="searchValueDiv">
+						<input type="hidden" id="page" name="page" value="${pager.page}"/>
+						<input id="searchValue" type="text" name="searchValue" value="${searchValue!}" tabindex="1"/>
+						<input id="serachData_img" type="submit" value=""/>
+					</div>
+				</div>
+				<table border="1" class="tableFig">
+				    <thead>
+				        <tr class="theadTr">
+				        	<th class="theadTh" style="width:5%;"><div class="checkboxStyleTh"></div></th>
+							<th class="theadTh" style="width:20%;">广告主名称</th>
+							<th class="theadTh" style="width:20%;">广告主注册名</th>
+							<th class="theadTh" style="width:25%;">操作</th>
+				        </tr>
+				    </thead>
+				    <tbody>
+				    	<#if auditList ??>
+				        <#list auditList as audit>
+				        <tr id="tbodyTr">
+							<td class="tbodyTd"><div class="checkboxStyleTd" id="${audit.dspId!}" advertiserId="${audit.advertiserId}"></div></td>
+							<td class="tbodyTd">${audit.name!}</td>
+							<td class="tbodyTd">${audit.regName!}</td>
+							<td class="tbodyTd">
+								<div id="listButtons">
+									<#if audit.state == 1>
+					            	<a href='${ctx}/back/main/dsp/aptitude-audit/details?dspId=${audit.dspId!}&advertiserId=${audit.advertiserId}'>未审核</a>
+					            	<#elseif audit.state == 0>
+					            		审核通过
+					            	<#elseif audit.state == 2>
+					            		审核不通过 
+					            	</#if>
+								</div>
+							</td>
+				        </tr>
+					    </#list>
+						</#if>	
+				    </tbody>
+				</table>
+				<div id="exportReport">
+					<a id="exportExcel" class="btn_export" href="javascript:void(0);" onclick="exportExcel_aptitudeAudit()">导出Excel</a>
+				</div>
+				<div id="pageDiv">
+					<#include "/common/pagination/simple.ftl"/>
+				</div>
+			</form>
+		</div>
+	</div>
+</div>
+</@override>
+<@extends name="/common/simple.ftl"/>

+ 4 - 0
src/main/webapp/WEB-INF/pages/back/main/dsp/audit/list.ftl

@@ -10,6 +10,10 @@
 	<#include "/back/main/public-head.ftl">
 	<div id= "pagecontent">
 		<div id="content">
+			<div id="selectBar_audit" class="selectBar">
+				<a class="selectBar_change"href="${ctx}/back/main/dsp/audit/list">Dsp素材审核</a>
+				<a href="${ctx}/back/main/dsp/aptitude-audit/list">Dsp资质审核</a>
+		    </div>
 		    <div id="navDiv">
 				<ul id="navDiv_ul">
 					<li><i class="icon-home"></i></li>

+ 188 - 0
src/main/webapp/assets/js/back/aptitudeAudit.js

@@ -0,0 +1,188 @@
+$(document).ready(function(){
+	var ctx = $("#ctx").val();//获取服务器地址
+	
+	//状态全部、开启、停用
+ 	if($("#status").val() == ""){
+ 		$("#selectBar_statusOther a:first").addClass("selectBar_change");
+	}
+ 	$("#selectBar_statusOther a").each(function(){
+ 		var value = $(this).attr("value");
+ 		if($("#status").val() == value){
+ 			$(this).addClass("selectBar_change").siblings('.selectBar_change').removeClass('selectBar_change');
+ 		}
+ 	});
+ 	$("#selectBar_statusOther a").click(function(){
+ 		$("#status").val($(this).attr("value"));
+ 		refreshData();
+ 	});
+	
+ 		
+	//批量通过,或不通过
+	$("#all-btn-pass-list,#all-btn-unpass-list").click(function(){
+		var url = "";var type = "";
+		if($(this).attr("id") == "all-btn-pass-list"){
+			url = ctx+"/back/main/dsp/aptitude-audit/enable";
+			type = "pass";
+		}else if($(this).attr("id") == "all-btn-unpass-list"){
+			url = ctx+"/back/main/dsp/aptitude-audit/disable";
+			type = "unpass";
+		}
+		dspPassOrUnpassOper($(this),url,type);
+	});
+	
+	$("#btn-auditpass,#btn-auditunpass").click(function(){
+		var url = ctx+"/back/main/dsp/aptitude-audit/check";
+		var type = "";
+		if($(this).attr("id") == "btn-auditpass"){
+			type = "pass";
+		}else if($(this).attr("id") == "btn-auditunpass"){
+			type = "unpass";
+		}
+		dspAuditOper($(this),url,type);
+	});
+	
+});
+
+//通过,或不通过
+$("#btn-pass,#btn-unpass").click(function(){
+	var url = "";var type = "";
+	if($(this).attr("id") == "btn-pass"){
+		url = ctx+"/back/main/dsp/aptitude-audit/enable";
+		type = "pass";
+	}else if($(this).attr("id") == "btn-unpass"){
+		url = ctx+"/back/main/dsp/aptitude-audit/disable";
+		type = "unpass";
+	}
+	singlePassOrUnpassOper($(this),url,type);
+});
+
+function singleDspPassOrUnpassOper(obj,url,type){
+	var ids = [];
+	var advs = [];
+	var id = parseInt(obj.attr("dspId"));
+	var adv = parseInt(obj.attr("advertiserId"))
+	ids.push(id);
+	advs.push(adv);
+	dspPassOrUnPasshandler(obj,ids,advs,url,type)
+}
+
+function dspAuditOper(obj,url,type){
+	if(type == 'pass'){
+		var _param = {
+    		'dspId':$("#auditId").attr("dspId"),
+    		'advertiserId':$("#auditId").attr("advertiserId"),
+    		'checkStatus':0,
+    	};
+		$.post(url,_param,function(data){
+			if(data == "ok"){
+				window.location.href = $("#ctx").val()+"/back/main/dsp/aptitude-audit/list";
+			} else {
+				bootbox.alert("审核失败!");
+			}
+		})
+	} else if(type == 'unpass'){
+		 bootbox.prompt("请输入审核不通过的理由", function(result) {
+            if (result == '') {
+            	bootbox.alert("请输入审核不通过的理由");
+            } else {
+            	var _param = {
+            		'dspId':$("#auditId").attr("dspId").val(),
+            		'advertiserId':$("#auditId").attr("advertiserId").val(),
+            		'checkMemo':result,
+            		'checkStatus':2,
+            	};
+            	$.post(url,_param,function(data){
+            		if(data == "ok"){
+            			window.location.href = $("#ctx").val()+"/back/main/dsp/aptitude-audit/list";
+					} else {
+						bootbox.alert("审核失败!");
+					}
+				})
+            }
+        });
+	}
+}
+
+
+
+function dspPassOrUnpassOper(obj,url,type){
+	var checkboxs = $("table tbody .checkboxStyle_change");
+	var ids = [];
+	var advs = [];
+	if(checkboxs.length > 0){
+		bootbox.confirm("确定" +obj.text() + "吗?", function(ensure) {					
+			if (ensure) {	
+				checkboxs.each(function(){
+					var id = parseInt($(this).attr("id"));
+					var adv = parseInt($(this).attr("advertiserId"))
+					ids.push(id);
+					advs.push(adv);
+				});
+				dspPassOrUnPasshandler(obj,ids,advs,url,type);
+			}
+		});
+	}else{
+		bootbox.alert("请选择需要"+obj.text()+"的数据!");
+		return false;
+	}
+}
+
+function dspPassOrUnPasshandler(obj,ids,advs,url,type){
+	if(type == "pass"){
+		$.ajax({
+			async: false, 
+			traditional: true, 
+			type: "POST",
+			url: url,
+			data:{"id":ids,"advertiserId":advs},
+			success: function(data){
+				if(data == "ok"){
+					obj.addClass("btn-auditChange");
+					obj.removeAttr('disabled');
+					refreshData();
+				} else {
+					obj.removeAttr('disabled');
+					bootbox.alert("审核失败!");
+				}
+			}
+		});
+	}else if(type == "unpass"){
+		 bootbox.prompt("请输入审核不通过的理由", function(result) {
+			 if(result === null){
+	            obj.removeAttr('disabled');
+	         } else if (result == '') {
+	        	 obj.removeAttr('disabled');
+				 bootbox.alert("请输入审核不通过的理由");
+	         } else {
+	        	 $.ajax({
+	     			async: false, 
+	     			traditional: true, 
+	     			type: "POST",
+	     			url: url,
+	     			data:{"id":ids,"advertiserId":advs,"memo":result},
+	     			success: function(data){
+	     				if(data == "ok"){
+	            			obj.removeAttr('disabled');
+	            			obj.addClass("btn-auditChange");
+	            			refreshData();
+						} else {
+							obj.removeAttr('disabled');
+							bootbox.alert("审核失败!");
+						}
+	     			}
+	     		});
+	         }
+	     });
+	}
+	return false;
+}
+
+function exportExcel_aptitudeAudit(){
+	var searchValue = $("#searchValue").val();
+	if(searchValue == "请输入关键字"){
+		searchValue = "";
+	}
+	var param = "?checked="+$("#status").val()+"&searchValue="+searchValue;
+	$("#exportExcel").attr("href",$("#ctx").val()+"/back/main/dsp/aptitude-audit/exportDataReportExcel"+param);
+	return false;
+}