Browse Source

广告主端财务管理的更新

Signed-off-by: you.chen <you.chen@cloudcross.com>
you.chen 9 years ago
parent
commit
7be162c5c3

+ 117 - 119
src/main/java/com/cloudcross/ssp/model/mapper/adv-balance.sql.xml

@@ -37,139 +37,137 @@
 	</select>
 		
 	<select id="selectByParams"  parameterType="map" resultType="com.cloudcross.ssp.model.AdvBalance">
-		select 
-		a.act_time as actTime,
-		<if test="type != 'charge'">
-		 b.name as advertiserName,
-		</if>
-		<if test="type == 'charge'">
-		 d.name as agentName,
-		</if>
-		a.num,a.charge,a.allocate,a.consume,a.balance
-		from t_adv_balance a,
-		<if test="type != 'charge'">
-		 t_advertiser b
-		</if>
-		<if test="type == 'charge'">
-		 t_adv_agent d
-		</if>
-        where 
-     <!--     a.account_id=#{accountId} -->
-        a.agent_id=#{agentId}
-        <if test="adverId !=null ">
-		and a.advertiser_id = #{adverId} 
-		</if>
-        <if test="type == 'charge'">
-		and a.agent_id=d.id 
-		</if>
-        <if test="startDate!=null and endDate!=null"> 
-            and a.act_time &gt;= #{startDate} and #{endDate} &gt;=a.act_time
-		</if> 
-	    <if test="advertiserId !=null ">
-		and a.advertiser_id = #{advertiserId} 
-		</if>	
-		<if test="type != 'charge'">
-		 and  b.id= a.advertiser_id
-		 </if>	
-		 <if test="type!=null and type == 'charge'">
-		 and a.charge > 0
-		 and a.advertiser_id=0
-		 </if>
-		 <if test="type!=null and type == 'consume'">
-		 and a.consume > 0 
-		 </if>
-		 <if test="type!=null and type == 'allocate'">
-		 and a.allocate > 0 
-		 </if>
+		select <include refid="base_column2" />
+		from t_adv_balance
+		<where>
+		date_format(act_time,'%Y-%c-%d') &gt;= #{startDate} and #{endDate} &gt;=date_format(act_time,'%Y-%c-%d')
+			<if test="agentId != null">
+			<if test="advertiserId == null">
+			and agent_id = #{agentId}
+			</if>
+			<if test="advertiserId != null">
+			and advertiser_id = #{advertiserId} and allocate > 0
+			</if>
+			</if>
+			<if test="agentId == null">
+			and agent_id = 0 and advertiser_id = #{advertiserId}
+			</if>
+			<if test="type == 'charge'">
+			 and charge > 0
+			</if>
+			<if test="type == 'allocate'">
+			 and allocate > 0
+			</if>
+			<if test="type == 'consume'">
+			 and consume > 0
+			</if>
+		</where>
 		order by  a.act_time  desc
 		limit #{pager.offset}, #{pager.limit}
 	</select>	
 	
+	<select id="selectByParams1"  parameterType="map" resultType="com.cloudcross.ssp.model.AdvBalance">
+		select <include refid="base_column2" />
+		from t_adv_balance
+		<where>
+		date_format(act_time,'%Y-%c-%d') &gt;= #{startDate} and #{endDate} &gt;=date_format(act_time,'%Y-%c-%d')
+			<if test="agentId != null">
+			<if test="advertiserId == null">
+			and agent_id = #{agentId}
+			</if>
+			<if test="advertiserId != null">
+			and advertiser_id = #{advertiserId} and allocate > 0
+			</if>
+			</if>
+			<if test="agentId == null">
+			and agent_id = 0 and advertiser_id = #{advertiserId}
+			</if>
+			<if test="type == 'charge'">
+			 and charge > 0
+			</if>
+			<if test="type == 'allocate'">
+			 and allocate > 0
+			</if>
+			<if test="type == 'consume'">
+			 and consume > 0
+			</if>
+		</where>
+		order by  a.act_time  desc
+	</select>	
+	
+	
     <select id="selectByParams2"  parameterType="map" resultType="com.cloudcross.ssp.model.AdvBalance">
 		select 
-		a.act_time as actTime,b.name as advertiserName,num,charge,allocate,consume,a.balance,d.name as agentName
-		from t_adv_balance a,t_advertiser b,t_account c,t_adv_agent d
-        where b.id= a.advertiser_id 
-        and a.account_id=c.id
-        and a.agent_id=b.agent_id=c.agent_id=d.id
-        and a.allocate != 0
-       <!--     a.account_id=#{accountId} -->
-        and a.agent_id=#{agentId}
-        <if test="adverId !=null ">
-		and a.advertiser_id = #{adverId} 
-		</if>
-        <if test="startDate!=null and endDate!=null"> 
-            and a.act_time &gt;= #{startDate} and #{endDate} &gt;=a.act_time
-		</if>  
-	    <if test="advertiserId !=null ">
-		and a.advertiser_id = #{advertiserId} 
-		</if>	
-		order by  a.id   desc
+		<include refid="base_column2" />
+		from t_adv_balance
+        <where>
+		date_format(act_time,'%Y-%c-%d') &gt;= #{startDate} and #{endDate} &gt;=date_format(act_time,'%Y-%c-%d')
+			<if test="advertiserId != null">
+			and advertiser_id = #{advertiserId} and allocate > 0
+			</if>
+			<if test="advertiserId == null">
+			and agent_id = #{agentId} and allocate > 0
+			</if>
+		</where>
+		order by  act_time desc
 		limit #{pager.offset}, #{pager.limit}
 	</select>
 	
+	 <select id="selectByParams3"  parameterType="map" resultType="com.cloudcross.ssp.model.AdvBalance">
+		select 
+		<include refid="base_column2" />
+		from t_adv_balance
+        <where>
+		date_format(act_time,'%Y-%c-%d') &gt;= #{startDate} and #{endDate} &gt;=date_format(act_time,'%Y-%c-%d')
+			<if test="advertiserId != null">
+			and advertiser_id = #{advertiserId} and allocate > 0
+			</if>
+			<if test="advertiserId == null">
+			and agent_id = #{agentId} and allocate > 0
+			</if>
+		</where>
+		order by  act_time desc
+	</select>
+	
 	
 	<select id="countByParams" parameterType="map" resultType="int">
-		select count(a.id)
-		from t_adv_balance a,
-		<if test="type != 'charge'">
-		 t_advertiser b
-		</if>
-		<if test="type == 'charge'">
-		 t_adv_agent d
-		</if>
-        where 
-      <!--     a.account_id=#{accountId} -->
-        a.agent_id=#{agentId}
-        <if test="adverId !=null ">
-		and a.advertiser_id = #{adverId} 
-		</if>
-        <if test="type == 'charge'">
-		and a.agent_id=d.id 
-		</if>
-        <if test="startDate!=null and endDate!=null"> 
-            and a.act_time &gt;= #{startDate} and #{endDate} &gt;=a.act_time
-		</if> 
-	    <if test="advertiserId !=null ">
-		and a.advertiser_id = #{advertiserId} 
-		</if>	
-		<if test="type != 'charge'">
-		 and  b.id= a.advertiser_id
-		 </if>	
-		 <if test="type!=null and type == 'charge'">
-		 and a.charge > 0
-		 and a.advertiser_id=0
-		 </if>
-		 <if test="type!=null and type == 'consume'">
-		 and a.consume > 0 
-		 </if>
-		 <if test="type!=null and type == 'allocate'">
-		 and a.allocate > 0 
-		 </if>
+		select count(id) from t_adv_balance
+		<where>
+		date_format(act_time,'%Y-%c-%d') &gt;= #{startDate} and #{endDate} &gt;=date_format(act_time,'%Y-%c-%d')
+			<if test="agentId != null">
+			<if test="advertiserId == null">
+			and agent_id = #{agentId}
+			</if>
+			<if test="advertiserId != null">
+			and advertiser_id = #{advertiserId} and allocate > 0
+			</if>
+			</if>
+			<if test="agentId == null">
+			and agent_id = 0 and advertiser_id = #{advertiserId}
+			</if>
+			<if test="type == 'charge'">
+			 and charge > 0
+			</if>
+			<if test="type == 'allocate'">
+			 and allocate > 0
+			</if>
+			<if test="type == 'consume'">
+			 and consume > 0
+			</if>
+		</where>
 	</select>
 	
 	<select id="countByParams2" parameterType="map" resultType="int">
-		select count(a.id)
-		from t_adv_balance a,t_advertiser b,t_account c,t_adv_agent d
-        where b.id= a.advertiser_id 
-        and a.account_id=c.id
-        and a.agent_id=b.agent_id=c.agent_id=d.id
-        and a.allocate != 0
-        <!--     a.account_id=#{accountId} -->
-        and a.agent_id=#{agentId}
-        <if test="adverId !=null ">
-		and a.advertiser_id = #{adverId} 
-		</if>
-		<if test="startDate!=null and endDate!=null"> 
-            and a.act_time &gt;= #{startDate} and #{endDate} &gt;=a.act_time
-		</if>  
-	
-      <!--  <if test="advertiserName!=null"> 
-            and b.name = #{advertiserName}
-	    </if>	 -->
-	    <if test="advertiserId !=null ">
-		and a.advertiser_id = #{advertiserId} 
-		</if>	
+		select count(id) from t_adv_balance
+		<where>
+		date_format(act_time,'%Y-%c-%d') &gt;= #{startDate} and #{endDate} &gt;=date_format(act_time,'%Y-%c-%d')
+			<if test="advertiserId != null">
+			and advertiser_id = #{advertiserId} and allocate > 0
+			</if>
+			<if test="advertiserId == null">
+			and agent_id = #{agentId} and allocate > 0
+			</if>
+		</where>
 	</select>
 	
 	<select id="selectById" parameterType="int" resultType="com.cloudcross.ssp.model.AdvBalance">

+ 3 - 1
src/main/java/com/cloudcross/ssp/service/IAdvBalanceService.java

@@ -39,8 +39,8 @@ public interface IAdvBalanceService extends IGenericService<AdvBalance> {
 	 int countByParams(Map<String, Object> paramMap);
 	 int countByParams2(Map<String, Object> paramMap);
 	 List<AdvBalance> findByParams(Map<String, Object> paramMap, Pager pager);
+	 List<AdvBalance> findByParams2(Map<String, Object> paramMap);
 	 List<AdvBalance> findByParams2(Map<String, Object> paramMap, Pager pager);
-	 
 	 public int countByParamsBack(Map<String, Object> paramMap);
 	 public List<AdvBalance> findByParamsBack(Map<String, Object> paramMap,Pager pager);
 	 
@@ -50,4 +50,6 @@ public interface IAdvBalanceService extends IGenericService<AdvBalance> {
 	  * @return
 	  */
 	 Double findAgentBalance(Long agentId);
+	 
+	 List<AdvBalance> findByParamsAdvertiser(Map<String, Object> paramMap);
 }

+ 14 - 17
src/main/java/com/cloudcross/ssp/service/impl/AdvBalanceService.java

@@ -22,9 +22,6 @@ public class AdvBalanceService implements IAdvBalanceService{
 	private GenericIBatisDao myBatisDao;	
 	@Override
 	public int countByParams(Map<String, Object> paramMap) {
-		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
-		paramMap.put("key", paramMap.get("searchKey"));
-		paramMap.put("value", searchValue);
 		return myBatisDao.get("advBalanceSqlMapper.countByParams", paramMap);
 	}
 	public boolean updateBalanceByAgentId(Long agentId, Float balance) {
@@ -41,9 +38,6 @@ public class AdvBalanceService implements IAdvBalanceService{
 	}
 	@Override
 	public int countByParams2(Map<String, Object> paramMap) {
-		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
-		paramMap.put("key", paramMap.get("searchKey"));
-		paramMap.put("value", searchValue);
 		return myBatisDao.get("advBalanceSqlMapper.countByParams2", paramMap);
 	}
 	
@@ -54,12 +48,9 @@ public class AdvBalanceService implements IAdvBalanceService{
 	
 	@Override
 	public List<AdvBalance> findByParams(Map<String, Object> paramMap, Pager pager) {
-		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
-		paramMap.put("key", paramMap.get("searchKey"));
-		paramMap.put("value", searchValue);
 		paramMap.put("pager", pager);
-		List<AdvBalance> advBalanceList = myBatisDao.getList("advBalanceSqlMapper.selectByParams", paramMap);
-		return advBalanceList;
+		return myBatisDao.getList("advBalanceSqlMapper.selectByParams", paramMap);
+		
 	}
 	/**
 	 * back
@@ -83,12 +74,8 @@ public class AdvBalanceService implements IAdvBalanceService{
 		return myBatisDao.getList("advBalanceSqlMapper.findByParams1Back", paramMap);
 	}
 	@Override
-	public List<AdvBalance> findByParams2(Map<String, Object> paramMap, Pager pager) {
-		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
-		paramMap.put("key", paramMap.get("searchKey"));
-		paramMap.put("value", searchValue);
-		paramMap.put("pager", pager);
-		return myBatisDao.getList("advBalanceSqlMapper.selectByParams2", paramMap);
+	public List<AdvBalance> findByParams2(Map<String, Object> paramMap) {
+		return myBatisDao.getList("advBalanceSqlMapper.selectByParams3", paramMap);
 	}
 	
 	
@@ -134,5 +121,15 @@ public class AdvBalanceService implements IAdvBalanceService{
 	public Double findAgentBalance(Long agentId) {
 		return myBatisDao.get("advBalanceSqlMapper.findAgentBalance", agentId);
 	}
+	@Override
+	public List<AdvBalance> findByParamsAdvertiser(Map<String, Object> paramMap) {
+		return myBatisDao.getList("advBalanceSqlMapper.selectByParams1", paramMap);
+	}
+	@Override
+	public List<AdvBalance> findByParams2(Map<String, Object> paramMap,
+			Pager pager) {
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("advBalanceSqlMapper.selectByParams2", paramMap);
+	}
 
 }

+ 144 - 217
src/main/java/com/cloudcross/ssp/web/advertiser/main/ad/AdvBalanceController.java

@@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import com.cloudcross.ssp.model.Account;
 import com.cloudcross.ssp.model.AdvBalance;
 import com.cloudcross.ssp.model.Finance;
+import com.cloudcross.ssp.service.IAdvAgentService;
 import com.cloudcross.ssp.service.IAdvBalanceService;
 import com.cloudcross.ssp.base.utils.freemarker.FreemarkerTemplateProcessor;
 import com.cloudcross.ssp.base.web.SimpleController;
@@ -33,62 +34,65 @@ public  class AdvBalanceController extends SimpleController {
 	protected IAdvBalanceService advBalanceService;
 	@Autowired
 	private FreemarkerTemplateProcessor templateProcessor;
+	@Autowired
+	private IAdvAgentService advAgentService;
 	
 	@RequestMapping
 	public String index(){
 		return redirect(page("list"));
 	}
+	
+	/**
+	 * 财务管理列表页
+	 * 前端需要传递三个参数,一个为广告主id(变量名为selectedAdvertiserId)如果传的是空值或者是-1或者空字符串则为全部
+	 * 一个为类型,变量名为type,最后一个为周期,变量名为dateRangePicker
+	 * 注:当如果是代理商账号登录的时候只能查询到分配记录和充值记录不能查询到消费记录
+	 * 如果是广告主账号登录只能看到分配记录和消费记录没有充值记录
+	 * @param model
+	 * @param paramMap
+	 * @param page
+	 * @return
+	 * @throws ParseException
+	 */
 	@RequestMapping("/list")
 	public String list(Model model,
 			@RequestParam HashMap<String, Object> paramMap,		
 			@RequestParam(defaultValue="1") int page
 			) throws ParseException{
+		Long advertiserId = null;
+		Long agentId = null;
+		String advertiserName = "全部广告主";
 		
-		//帐号权限
     	//获取当前登录的帐号
 		Account account = getLoginUser();
-		model.addAttribute("loginAccountName",account.getAccountName());
+		model.addAttribute("loginAccountName", account.getAccountName());
+		
 		/**
-		 * 判断登录用户是广告主还是广告主代理商,广告主则advertiserId和agentId都不为0
-		 * 广告主代理商则是agentId不为0,advertiserId等于0
+		 * 对登录的账号进行判断,如果代理商id和广告主id都不为0的话表示的是广告主账号
+		 * 如果代理商账号不为0,广告主账号为0的话表示的是代理商账号
 		 */
 		//下面判断是广告主
         if (0 != account.getAdvertiserId() && 0 != account.getAgentId()) {
         	paramMap.put("accountId",account.getId());
-        	paramMap.put("agentId", account.getAgentId());		
-			paramMap.put("adverId", account.getAdvertiserId());
-			
-			model.addAttribute("accountId",account.getId());
-			model.addAttribute("adverId", account.getAdvertiserId());
-			model.addAttribute("agentId", account.getAgentId());
+        	advertiserId = account.getAdvertiserId();
 		}
+        
 		//下面判断是代理商
 		if(0 != account.getAgentId() && 0 == account.getAdvertiserId()) {
 			paramMap.put("accountId",account.getId());
-			paramMap.put("agentId", account.getAgentId());
-					
-			model.addAttribute("accountId",account.getId());
-			model.addAttribute("agentId", account.getAgentId());
-			
-	
-
+			agentId = account.getAgentId();
+		}
+		
 		/**
-		 * 下面对下拉框中传进来的值进行判断,若是未操作,则为空值,前端设置时默认为全部(-1)
-		 * 下拉框传值Id需要同步
-		 * 只有代理商有该选项
+		 * 下面对传递进来的参数进行处理
 		 */
-		//广告主选择与否
-		Long advertiserId = null;
-		String advertiserName = "全部广告主";
 		if (null == paramMap.get("selectedAdvertiserId")
 					|| "".equals(paramMap.get("selectedAdvertiserId"))) {
-				advertiserId = null;
 				advertiserName = "全部广告主";
 			} else {
 				// 如果要查询的是所有广告主则让广告主id为空
 				if (-1 == Long.parseLong((String) paramMap
 						.get("selectedAdvertiserId"))) {
-					advertiserId = null;
 					advertiserName = "全部广告主";
 				} else {
 					advertiserId = Long.parseLong((String) paramMap
@@ -97,37 +101,20 @@ public  class AdvBalanceController extends SimpleController {
 				}
 			}
 		
-		paramMap.put("advertiserId", advertiserId);
-		paramMap.put("selectedAdvertiserName", advertiserName);
-		
-		}
-		
-		//日期,这里规定了前端传过来的值为dateRangePicker
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 		String startDate = null;
 		String endDate = null;
 		//判断日期是否为默认值昨天,日期格式为2015-09-09 to 2015-10-10,用 to 分割
-	  System.out.println("haoshuairrrrrrrrrrrr" + paramMap);
-	  System.out.println("haoshuai33333333333" + paramMap.get("dateRangePicker"));
-		
 		if (null == paramMap.get("dateRangePicker")
 				|| "".equals(paramMap.get("dateRangePicker"))) {
-			startDate = sdf.format(new Date((new Date())
+			startDate = endDate = sdf.format(new Date((new Date())
 					.getTime() - 24 * 60 * 60 * 1000));
-			endDate = sdf.format(new Date((new Date()).getTime()));
 		} else {
 			String[] choosedDate = ((String) paramMap
 					.get("dateRangePicker")).split("to");
 			startDate = choosedDate[0].trim();
 			endDate = choosedDate[1].trim();
 		} 
-		paramMap.put("startDate", startDate);
-		paramMap.put("endDate",endDate);
-
-		model.addAttribute("startDate", startDate);
-		model.addAttribute("endDate", endDate);
-		
-		System.out.println("pppppppppppp" + startDate + endDate);
 		
 		
 		/**
@@ -151,17 +138,24 @@ public  class AdvBalanceController extends SimpleController {
 			type = "charge";
 			typeName = "充值";
 		}
+		
+		paramMap.put("startDate", startDate);
+		paramMap.put("endDate",endDate);
+		paramMap.put("agentId", agentId);
+		paramMap.put("advertiserId", advertiserId);
+		paramMap.put("selectedAdvertiserName", advertiserName);
 	    paramMap.put("type", type);
 	    paramMap.put("typeName", typeName);
 		
 		int totalRow = advBalanceService.countByParams(paramMap);
-		System.out.println("feichang" + totalRow);
 		Pager pager = new Pager();
 		pager.setPage(page);
 		pager.setTotalRow(totalRow);					
 	    List<AdvBalance> advBalanceList = advBalanceService.findByParams(paramMap, pager);
 	    
-	    System.out.println("8888888888888888" + advBalanceList);
+	    if(null != agentId) {
+	    	model.addAttribute("agentName", advAgentService.findById(agentId).getName());
+	    }
 		model.addAllAttributes(paramMap);
 		model.addAttribute("pager", pager);
 		model.addAttribute("advBalanceList", advBalanceList);
@@ -169,17 +163,26 @@ public  class AdvBalanceController extends SimpleController {
 	}
 	
 	
-	
+	/**
+	 * 广告主分配记录页面
+	 * 前端需要传递两个参数,一个为广告主id(变量名为selectedAdvertiserId)如果传的是空值或者是-1或者空字符串则为全部
+	 * 另一个为周期,变量名为dateRangePicker
+	 * 注:如果选择的广告主表示全部广告主的话,则显示的是代理商的分配记录,否则是广告主的分配记录
+	 * @param model
+	 * @param paramMap
+	 * @param page
+	 * @return
+	 * @throws ParseException
+	 */
 	@RequestMapping("/distribution")
 	public String distribution(Model model,
 			@RequestParam HashMap<String, Object> paramMap,		
 			@RequestParam(defaultValue="1") int page
 			)throws ParseException{
-		
-		//帐号权限
+		Long agentId = null;
+		Long advertiserId = null;
     	//获取当前登录的帐号
 		Account account = getLoginUser();
-		System.out.println("account" + account + "haoshuai01010101010101");
 		model.addAttribute("loginAccountName",account.getAccountName());
 		/**
 		 * 判断登录用户是广告主还是广告主代理商,广告主则advertiserId和agentId都不为0
@@ -188,39 +191,27 @@ public  class AdvBalanceController extends SimpleController {
 		//下面判断是广告主
         if (0 != account.getAdvertiserId() && 0 != account.getAgentId()) {
         	paramMap.put("accountId",account.getId());
-        	paramMap.put("agentId", account.getAgentId());		
-			paramMap.put("adverId", account.getAdvertiserId());
-			
-			model.addAttribute("accountId",account.getId());
-			model.addAttribute("adverId", account.getAdvertiserId());
-			model.addAttribute("agentId", account.getAgentId());
+        	advertiserId = account.getAdvertiserId();
 		}
+        
 		//下面判断是代理商
 		if(0 != account.getAgentId() && 0 == account.getAdvertiserId()) {
 			paramMap.put("accountId",account.getId());
-			paramMap.put("agentId", account.getAgentId());
-					
-			model.addAttribute("accountId",account.getId());
-			model.addAttribute("agentId", account.getAgentId());
+			agentId = account.getAgentId();
+		}
 
 
 		/**
-		 * 下面对下拉框中传进来的值进行判断,若是未操作,则为空值,前端设置时默认为全部(-1)
-		 * 下拉框传值Id需要同步
-		 * 只有代理商有该选项
+		 * 下面对传进来的值进行处理
 		 */
-		//广告主选择与否
-		Long advertiserId = null;
 		String advertiserName = "全部广告主";
 		if (null == paramMap.get("selectedAdvertiserId")
 					|| "".equals(paramMap.get("selectedAdvertiserId"))) {
-				advertiserId = null;
 				advertiserName = "全部广告主";
 			} else {
 				// 如果要查询的是所有广告主则让广告主id为空
 				if (-1 == Long.parseLong((String) paramMap
 						.get("selectedAdvertiserId"))) {
-					advertiserId = null;
 					advertiserName = "全部广告主";
 				} else {
 					advertiserId = Long.parseLong((String) paramMap
@@ -228,12 +219,7 @@ public  class AdvBalanceController extends SimpleController {
 					advertiserName = (String) paramMap.get("selectedAdvertiserName");
 				}
 			}
-		
-		paramMap.put("advertiserId", advertiserId);
-		paramMap.put("selectedAdvertiserName", advertiserName);
-		
-		}
-		
+				
 		//日期
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 		String startDate = null;
@@ -241,31 +227,30 @@ public  class AdvBalanceController extends SimpleController {
 		//判断日期是否为默认值昨天,日期格式为2015-09-09 to 2015-10-10,用 to 分割
 		if (null == paramMap.get("dateRangePicker")
 				|| "".equals(paramMap.get("dateRangePicker"))) {
-			startDate = sdf.format(new Date((new Date())
+			startDate = endDate = sdf.format(new Date((new Date())
 					.getTime() - 24 * 60 * 60 * 1000));
-			endDate = sdf.format(new Date((new Date()).getTime()));
-			System.out.println("11111111111" + startDate + endDate);
 		} else {
 			String[] choosedDate = ((String) paramMap
 					.get("dateRangePicker")).split("to");
 			startDate = choosedDate[0].trim();
 			endDate = choosedDate[1].trim();
 		} 
+		
+		paramMap.put("agentId", agentId);
+		paramMap.put("advertiserId", advertiserId);
+		paramMap.put("selectedAdvertiserName", advertiserName);
 		paramMap.put("startDate", startDate);
 		paramMap.put("endDate",endDate);
-
-		model.addAttribute("startDate", startDate);
-		model.addAttribute("endDate", endDate);
-		
-		System.out.println("rrrrrrrrrrrrrrrrr" + startDate + endDate);
 		
 		int totalRow = advBalanceService.countByParams2(paramMap);
-		System.out.println("haoshuai" + totalRow);
 		Pager pager = new Pager();
 		pager.setPage(page);
 		pager.setTotalRow(totalRow);					
 	    List<AdvBalance> advBalanceList = advBalanceService.findByParams2(paramMap, pager);
-	    System.out.println("haoshuaiqq" + advBalanceList);
+	    
+	    if(null != agentId) {
+	    	model.addAttribute("agentName", advAgentService.findById(agentId).getName());
+	    }
 		model.addAllAttributes(paramMap);
 		model.addAttribute("pager", pager);
 		model.addAttribute("advBalanceList", advBalanceList);
@@ -273,137 +258,114 @@ public  class AdvBalanceController extends SimpleController {
         }
 	
 	
-	
-	
-	
-	//导出财务管理首页消费记录页面Excel用
-	
+	/**
+	 * 财务管理列表页导出excel
+	 * 前端需要传递三个参数,一个为广告主id(变量名为selectedAdvertiserId)如果传的是空值或者是-1或者空字符串则为全部
+	 * 一个为类型,变量名为type,最后一个为周期,变量名为dateRangePicker
+	 * 注:当如果是代理商账号登录的时候只能查询到分配记录和充值记录不能查询到消费记录
+	 * 如果是广告主账号登录只能看到分配记录和消费记录没有充值记录
+	 * @param model
+	 * @param request
+	 * @param response
+	 * @param paramMap
+	 */
 	@RequestMapping("/exportDataReportExcel")
 	public void exportDataReportExcel(Model model,HttpServletRequest request,
 			HttpServletResponse response,
-			@RequestParam(defaultValue="1") int page,
-			@RequestParam(required=false) String type,
 			@RequestParam Map<String, Object> paramMap) {
-			
-		/**
-		 * 参数和list里要一样
-		 */
-		System.out.println("qqai");
+					
+		Long advertiserId = null;
+		Long agentId = null;
+		String advertiserName = "全部广告主";
 		
-		//帐号权限
     	//获取当前登录的帐号
 		Account account = getLoginUser();
-		System.out.println("account" + account + "haoshuai000000000");
-		model.addAttribute("loginAccountName",account.getAccountName());
+		model.addAttribute("loginAccountName", account.getAccountName());
+		
 		/**
-		 * 判断登录用户是广告主还是广告主代理商,广告主则advertiserId和agentId都不为0
-		 * 广告主代理商则是agentId不为0,advertiserId等于0
+		 * 对登录的账号进行判断,如果代理商id和广告主id都不为0的话表示的是广告主账号
+		 * 如果代理商账号不为0,广告主账号为0的话表示的是代理商账号
 		 */
 		//下面判断是广告主
         if (0 != account.getAdvertiserId() && 0 != account.getAgentId()) {
         	paramMap.put("accountId",account.getId());
-        	paramMap.put("agentId", account.getAgentId());		
-			paramMap.put("adverId", account.getAdvertiserId());
-			
-			model.addAttribute("accountId",account.getId());
-			model.addAttribute("adverId", account.getAdvertiserId());
-			model.addAttribute("agentId", account.getAgentId());
+        	advertiserId = account.getAdvertiserId();
 		}
+        
 		//下面判断是代理商
 		if(0 != account.getAgentId() && 0 == account.getAdvertiserId()) {
 			paramMap.put("accountId",account.getId());
-			paramMap.put("agentId", account.getAgentId());
-					
-			model.addAttribute("accountId",account.getId());
-			model.addAttribute("agentId", account.getAgentId());
-			
-		System.out.println("accountId" + account.getId() + "111111111111");	
-		System.out.println("agentId" + account.getAgentId() + "22222222222");
-
+			agentId = account.getAgentId();
+		}
+		
 		/**
-		 * 下面对下拉框中传进来的值进行判断,若是未操作,则为空值,前端设置时默认为全部(-1)
-		 * 下拉框传值Id需要同步
-		 * 只有代理商有该选项
+		 * 下面对传递进来的参数进行处理
 		 */
-		//广告主选择与否
-		Long advertiserId = null;
 		if (null == paramMap.get("selectedAdvertiserId")
 					|| "".equals(paramMap.get("selectedAdvertiserId"))) {
-				advertiserId = null;
+				advertiserName = "全部广告主";
 			} else {
 				// 如果要查询的是所有广告主则让广告主id为空
 				if (-1 == Long.parseLong((String) paramMap
 						.get("selectedAdvertiserId"))) {
-					advertiserId = null;
+					advertiserName = "全部广告主";
 				} else {
 					advertiserId = Long.parseLong((String) paramMap
 							.get("selectedAdvertiserId"));
+					advertiserName = (String) paramMap.get("selectedAdvertiserName");
 				}
 			}
 		
-		paramMap.put("advertiserId", advertiserId);
-		model.addAttribute("advertiserId", advertiserId);
-		
-		}
-		
-		//日期,这里规定了前端传过来的值为dateRangePicker
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 		String startDate = null;
 		String endDate = null;
 		//判断日期是否为默认值昨天,日期格式为2015-09-09 to 2015-10-10,用 to 分割
-	  System.out.println("haoshuairrrrrrrrrrrr" + paramMap);
-	  System.out.println("haoshuai33333333333" + paramMap.get("dateRangePicker"));
-		
 		if (null == paramMap.get("dateRangePicker")
 				|| "".equals(paramMap.get("dateRangePicker"))) {
-			startDate = sdf.format(new Date((new Date())
+			startDate = endDate = sdf.format(new Date((new Date())
 					.getTime() - 24 * 60 * 60 * 1000));
-			endDate = sdf.format(new Date((new Date()).getTime()));
 		} else {
 			String[] choosedDate = ((String) paramMap
 					.get("dateRangePicker")).split("to");
 			startDate = choosedDate[0].trim();
 			endDate = choosedDate[1].trim();
 		} 
-		paramMap.put("startDate", startDate);
-		paramMap.put("endDate",endDate);
-
-		model.addAttribute("startDate", startDate);
-		model.addAttribute("endDate", endDate);
-		
-		System.out.println("pppppppppppp" + startDate + endDate);
 		
 		
 		/**
 		 * @author Hao
 		 * 选择操作类型,需要从前端传过来一个键值对“type”,默认为null
-		 * 其值与allocate,consume,charge比较确定是选择了哪一类
+		 * 其值与allocate,consume,chage比较确定是选择了哪一类
 		 */
+		String type = null;
+		String typeName = "请选择操作类型";
 		if(null==paramMap.get("type")
 				|| "".equals(paramMap.get("type")) || "0".equals(paramMap.get("type"))){
 			type = "0";
+			typeName = "请选择操作类型";
 		}else if("allocate".equals(paramMap.get("type"))){
 			type = "allocate";
+			typeName = "分配";
 		}else if("consume".equals(paramMap.get("type"))){
 			type = "consume";
+			typeName = "消费";
 		}else{   
 			type = "charge";
+			typeName = "充值";
 		}
-
+		
+		paramMap.put("startDate", startDate);
+		paramMap.put("endDate",endDate);
+		paramMap.put("agentId", agentId);
+		paramMap.put("advertiserId", advertiserId);
+		paramMap.put("selectedAdvertiserName", advertiserName);
 	    paramMap.put("type", type);
-		System.out.println("type:" + "252525252525hao" + type);
-		model.addAttribute("type", type);
-			
-		int totalRow = advBalanceService.countByParams(paramMap);
-		System.out.println("feichang" + totalRow);
-		Pager pager = new Pager();
-		pager.setPage(page);
-		pager.setTotalRow(totalRow);					
-	    List<AdvBalance> advBalanceList = advBalanceService.findByParams(paramMap, pager);
+	    paramMap.put("typeName", typeName);
+	    if(null != agentId) {
+	    	paramMap.put("agentName", advAgentService.findById(agentId).getName());
+	    }	
+	    List<AdvBalance> advBalanceList = advBalanceService.findByParamsAdvertiser(paramMap);
 	    
-	    System.out.println("8888888888888888" + advBalanceList);
-		model.addAllAttributes(paramMap);
-		model.addAttribute("pager", pager);
 		paramMap.put("dataList", advBalanceList);
 		response.reset();
 		// Content-Type:application/vnd.ms-excel;charset=utf8或者text/xml;charset=utf8
@@ -413,13 +375,10 @@ public  class AdvBalanceController extends SimpleController {
 		String fileName = "consumeReport" + df2.format(new Date());
 		response.setHeader("Content-Disposition", "attachment;filename="
 				+ fileName + ".xls");
-		// 需要对excel的列和行的总数进行指定
-		int column = 9;
+		// 需要对excel的列的总数进行指定
+		int column = 6;
 		paramMap.put("dataSize", advBalanceList.size());
 		paramMap.put("column", column);
-		paramMap.put("advertiserName", "广告主消费记录表");
-		paramMap.put("startDate", startDate);
-		paramMap.put("endDate", endDate);
 		String excelOrder = templateProcessor.processTemplate(
 				"excel/consumeReport.ftl", paramMap);
 		try {
@@ -435,24 +394,21 @@ public  class AdvBalanceController extends SimpleController {
 		
 	
 	
-	//导出资金管理分配记录(第三个)页面Excel用,注意这里的地址和前面的不一样,exportAllocateReportExcel
-	//这个在ftl文件中需要的是这个值
-	
+	/**
+	 * 广告主分配记录导出excel
+	 * @param model
+	 * @param request
+	 * @param response
+	 * @param paramMap
+	 */
 	@RequestMapping("/exportAllocateReportExcel")
-	public void exportDataReportExcel(Model model,HttpServletRequest request,
+	public void exportAllocateReportExcel(Model model,HttpServletRequest request,
 			HttpServletResponse response,
-			@RequestParam(defaultValue="1") int page,
 			@RequestParam Map<String, Object> paramMap) {
-			
-		/**
-		 * 参数和list里要一样
-		 */
-		System.out.println("yuyuyu");
-		
-		//帐号权限
+		Long agentId = null;
+		Long advertiserId = null;
     	//获取当前登录的帐号
 		Account account = getLoginUser();
-		System.out.println("account" + account + "haoshuai01010101010101");
 		model.addAttribute("loginAccountName",account.getAccountName());
 		/**
 		 * 判断登录用户是广告主还是广告主代理商,广告主则advertiserId和agentId都不为0
@@ -461,49 +417,34 @@ public  class AdvBalanceController extends SimpleController {
 		//下面判断是广告主
         if (0 != account.getAdvertiserId() && 0 != account.getAgentId()) {
         	paramMap.put("accountId",account.getId());
-        	paramMap.put("agentId", account.getAgentId());		
-			paramMap.put("adverId", account.getAdvertiserId());
-			
-			model.addAttribute("accountId",account.getId());
-			model.addAttribute("adverId", account.getAdvertiserId());
-			model.addAttribute("agentId", account.getAgentId());
+        	advertiserId = account.getAdvertiserId();
 		}
+        
 		//下面判断是代理商
 		if(0 != account.getAgentId() && 0 == account.getAdvertiserId()) {
 			paramMap.put("accountId",account.getId());
-			paramMap.put("agentId", account.getAgentId());
-					
-			model.addAttribute("accountId",account.getId());
-			model.addAttribute("agentId", account.getAgentId());
-
+			agentId = account.getAgentId();
+		}
 
 		/**
-		 * 下面对下拉框中传进来的值进行判断,若是未操作,则为空值,前端设置时默认为全部(-1)
-		 * 下拉框传值Id需要同步
-		 * 只有代理商有该选项
+		 * 下面对传进来的值进行处理
 		 */
-		//广告主选择与否
-		Long advertiserId = null;
+		String advertiserName = "全部广告主";
 		if (null == paramMap.get("selectedAdvertiserId")
 					|| "".equals(paramMap.get("selectedAdvertiserId"))) {
-				advertiserId = null;
+				advertiserName = "全部广告主";
 			} else {
 				// 如果要查询的是所有广告主则让广告主id为空
 				if (-1 == Long.parseLong((String) paramMap
 						.get("selectedAdvertiserId"))) {
-					advertiserId = null;
+					advertiserName = "全部广告主";
 				} else {
 					advertiserId = Long.parseLong((String) paramMap
 							.get("selectedAdvertiserId"));
+					advertiserName = (String) paramMap.get("selectedAdvertiserName");
 				}
 			}
-		
-		paramMap.put("advertiserId", advertiserId);
-		model.addAttribute("advertiserId", advertiserId);
-		
-		}
-			
-	
+				
 		//日期
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 		String startDate = null;
@@ -511,33 +452,22 @@ public  class AdvBalanceController extends SimpleController {
 		//判断日期是否为默认值昨天,日期格式为2015-09-09 to 2015-10-10,用 to 分割
 		if (null == paramMap.get("dateRangePicker")
 				|| "".equals(paramMap.get("dateRangePicker"))) {
-			startDate = sdf.format(new Date((new Date())
+			startDate = endDate = sdf.format(new Date((new Date())
 					.getTime() - 24 * 60 * 60 * 1000));
-			endDate = sdf.format(new Date((new Date()).getTime()));
-			System.out.println("11111111111" + startDate + endDate);
 		} else {
 			String[] choosedDate = ((String) paramMap
 					.get("dateRangePicker")).split("to");
 			startDate = choosedDate[0].trim();
 			endDate = choosedDate[1].trim();
 		} 
+		
+		paramMap.put("agentId", agentId);
+		paramMap.put("advertiserId", advertiserId);
+		paramMap.put("selectedAdvertiserName", advertiserName);
 		paramMap.put("startDate", startDate);
 		paramMap.put("endDate",endDate);
-
-		model.addAttribute("startDate", startDate);
-		model.addAttribute("endDate", endDate);
-		
-		System.out.println("rrrrrrrrrrrrrrrrr" + startDate + endDate);
-		
-		int totalRow = advBalanceService.countByParams2(paramMap);
-		System.out.println("haoshuai" + totalRow);
-		Pager pager = new Pager();
-		pager.setPage(page);
-		pager.setTotalRow(totalRow);					
-	    List<AdvBalance> advBalanceList2 = advBalanceService.findByParams2(paramMap, pager);
-	    System.out.println("haoshuaiqq" + advBalanceList2);
-		model.addAllAttributes(paramMap);
-		model.addAttribute("pager", pager);
+				
+	    List<AdvBalance> advBalanceList2 = advBalanceService.findByParams2(paramMap);
 		paramMap.put("dataList", advBalanceList2);
 		response.reset();
 		// Content-Type:application/vnd.ms-excel;charset=utf8或者text/xml;charset=utf8
@@ -548,12 +478,9 @@ public  class AdvBalanceController extends SimpleController {
 		response.setHeader("Content-Disposition", "attachment;filename="
 				+ fileName + ".xls");
 		// 需要对excel的列和行的总数进行指定
-		int column = 9;
+		int column = 5;
 		paramMap.put("dataSize", advBalanceList2.size());
 		paramMap.put("column", column);
-		paramMap.put("advertiserName", "资金分配记录表");
-		paramMap.put("startDate", startDate);
-		paramMap.put("endDate", endDate);
 		String excelOrder = templateProcessor.processTemplate(
 				"excel/allocateReport.ftl", paramMap);
 		try {

+ 0 - 1
src/main/java/com/cloudcross/ssp/web/back/main/ap/ApmacController.java

@@ -2,7 +2,6 @@ package com.cloudcross.ssp.web.back.main.ap;
 
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;

+ 4 - 5
src/main/resources/template/excel/allocateReport.ftl

@@ -51,16 +51,15 @@
    <Column ss:Index="5" ss:AutoFitWidth="0" ss:Width="74.25"/>
    <Column ss:Width="63"/>
    <Row>
-    <Cell ss:MergeAcross="9"><Data ss:Type="String">广告主Id:${advertiserId!} </Data></Cell>
+    <Cell ss:MergeAcross="9"><Data ss:Type="String">所选广告主:${selectedAdvertiserName!} </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">时间</Data></Cell>
+	    <Cell><Data ss:Type="String"><#if advertiserId??>广告主名称<#else>代理商名称</#if></Data></Cell>
 	    <Cell><Data ss:Type="String">分配金额</Data></Cell>
 	   	<Cell><Data ss:Type="String">消耗信用额度</Data></Cell>
 	    <Cell><Data ss:Type="String">可用信用额度</Data></Cell>
@@ -70,7 +69,7 @@
      <#list dataList as deliverAnalysis>   
 		   <Row>
 	    	<Cell><Data ss:Type="String">${deliverAnalysis.actTime?date!}</Data></Cell>
-	    	<Cell><Data ss:Type="String">${deliverAnalysis.advertiserName!}</Data></Cell>
+	    	<Cell><Data ss:Type="String"><#if advertiserId??>${selectedAdvertiserName!}<#else>${agentName!}</#if></Data></Cell>
 	   		<Cell><Data ss:Type="String">${deliverAnalysis.allocate!}</Data></Cell>
 	   		<Cell><Data ss:Type="String">${deliverAnalysis.allocate!}</Data></Cell>
 	   		<Cell><Data ss:Type="String">${deliverAnalysis.allocate!}</Data></Cell> 	   			   		   		

+ 10 - 12
src/main/resources/template/excel/consumeReport.ftl

@@ -51,30 +51,28 @@
    <Column ss:Index="5" ss:AutoFitWidth="0" ss:Width="74.25"/>
    <Column ss:Width="63"/>
    <Row>
-    <Cell ss:MergeAcross="9"><Data ss:Type="String">广告主Id:${advertiserId!} </Data></Cell>
+    <Cell ss:MergeAcross="9"><Data ss:Type="String">所选广告主:${selectedAdvertiserName!}  操作类型: ${typeName} </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">时间</Data></Cell>
+	    <Cell><Data ss:Type="String"><#if advertiserId??>广告主名称<#else>代理商名称</#if></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>   
+     <#list dataList as advBalance>   
 		   <Row>
-	    	<Cell><Data ss:Type="String">${deliverAnalysis.actTime?date!}</Data></Cell>
-	    	<Cell><Data ss:Type="String">${deliverAnalysis.advertiserName!}</Data></Cell>
-	   		<Cell><Data ss:Type="String">${deliverAnalysis.num!}</Data></Cell>
-	   		<Cell><Data ss:Type="String">${deliverAnalysis.type!}</Data></Cell>
-	   		<Cell><Data ss:Type="String">${deliverAnalysis.cash!}</Data></Cell>
-	   		<Cell><Data ss:Type="String">${deliverAnalysis.balance!}</Data></Cell> 	   			   		   		
+	    	<Cell><Data ss:Type="String">${advBalance.actTime?date!}</Data></Cell>
+	    	<Cell><Data ss:Type="String"><#if advertiserId??>${selectedAdvertiserName!}<#else>${agentName!}</#if></Data></Cell>
+	   		<Cell><Data ss:Type="String">${advBalance.num!}</Data></Cell>
+	   		<Cell><Data ss:Type="String"><#if (advBalance.charge gt 0)>充值</#if><#if (advBalance.allocate gt 0)>分配</#if><#if (advBalance.consume gt 0)>消费</#if></Data></Cell>
+	   		<Cell><Data ss:Type="String"><#if (advBalance.charge gt 0)>${advBalance.charge!}</#if><#if (advBalance.allocate gt 0)>${advBalance.allocate!}</#if><#if (advBalance.consume gt 0)>${advBalance.consume!}</#if></Data></Cell>
+	   		<Cell><Data ss:Type="String">${advBalance.balance!}</Data></Cell> 	   			   		   		
 		   </Row>
 	 </#list>
   </#if>