16.4.15(官方管理后台,目前无法处理csv文件下载后是乱码的问题)

1、实现功能界面

 

 2、相关数据库表单

 

 

 3、ibatis_team_players.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
	<select id="selectTeamPlayers" resultClass="java.util.HashMap">
		<![CDATA[
			SELECT
				name,
				user_type,
				industry,
				phone,
				usga,
				years,
				clothes_size,
				glove_size,
				shoe_size
			FROM
				t_team_user
			WHERE
				team_id=#team_id#
				AND
				visit_state=1
		]]>
	</select>
	
</sqlMap>

 ibatis_team_list.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
	<select id="selectProvice" resultClass="java.util.HashMap">
		<![CDATA[
			SELECT
				pro_id,
				name
			FROM
				t_province				
		]]>
	</select>
	
	<select id="selectTeamInfoFromProvice" resultClass="java.util.HashMap" >
		<![CDATA[
			SELECT
				t_team.name,
				t_team_user.name AS team_leader,
				mobile,
				address,
				approve_state
			FROM
				t_team
			LEFT JOIN
				t_team_user
			ON
				t_team.team_id=t_team_user.team_id				
			WHERE
				pro_id=#pro_id#
				AND
				t_team_user.user_type=1	
				AND
				t_team.state<>9	
				AND
				t_team.approve_state<>0
		]]>
	</select>
	
	<update id="updateTeamVisitState" >
		<![CDATA[
			UPDATE
				t_team	
			SET
				approve_state=#approve_state#										
			WHERE
				team_id=#team_id#	
				AND
				state<>9	
				AND
				approve_state<>0		
		]]>
	</update>
</sqlMap>

4、TeamPlayersDao.java 

package com.enjoy.golf.dao;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

@Repository
public class TeamPlayersDao extends BaseDao{
	public List<Object> selectTeamPlayers(int team_id) throws SQLException{
		Map<String,Object> map = new HashMap<String, Object>();
		map.put("team_id", team_id);
		return this.getSqlMapClientTemplate().queryForList("selectTeamPlayers",map);
	}
}

 TeamListDao.java

package com.enjoy.golf.dao;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

@Repository
public class TeamListDao extends BaseDao{
	public List selectProvince() throws SQLException{
		return this.getSqlMapClient().queryForList("selectProvice");
	}
	
	public Map<String,Object> selectTeamInfoFromProvice(int pro_id){
		Map<String,Object> map = new HashMap<String, Object>();
		map.put("pro_id", pro_id);
		return (Map)this.getSqlMapClientTemplate().queryForObject("selectTeamInfoFromProvice",map);
		}
	
	public int updateTeamVisitState(int team_id,int approve_state){
		Map<String,Object> map = new HashMap<String, Object>();
		map.put("team_id", team_id);
		map.put("approve_state", approve_state);
		return this.getSqlMapClientTemplate().update("updateTeamVisitState",map);
	}
}

5、TeamPlayersService.java

package com.enjoy.golf.service;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.csvreader.CsvWriter;
import com.enjoy.golf.dao.TeamPlayersDao;

@Service
public class TeamPlayersService {

	@Resource
	TeamPlayersDao teamplayersDao;
	
	//下载球员列表
	public byte[] downloadTeamPlayers(int team_id) throws SQLException, IOException{
		ByteArrayOutputStream out = new ByteArrayOutputStream();
		StringBuilder sb = new StringBuilder();
		CsvWriter cw = new CsvWriter(out,',',Charset.forName("UTF-8"));
		String[] titles = new String[]{"队员名","角色","行业","电话","差点","球龄","衣服","手套","鞋子"};
		sb.append(Arrays.toString(titles));
		System.out.println(sb.toString());
		cw.writeRecord(titles);
		List<Object> list = teamplayersDao.selectTeamPlayers(team_id);
		Iterator<Object> it =  list.iterator();
		while(it.hasNext()){
			Object obj = it.next();
			String[] datas = new String[titles.length];
			Map<String,Object> map = (Map)obj;
			datas[0] = map.get("name") == null?"":map.get("name").toString();
			datas[1] = map.get("user_type") == null?"":map.get("user_type").toString();
			datas[2] = map.get("industry") == null?"":map.get("industry").toString();
			datas[3] = map.get("phone") == null?"":map.get("phone").toString();
			datas[4] = map.get("usga") == null?"":map.get("usga").toString();
			datas[5] = map.get("years") == null?"":map.get("years").toString();
			datas[6] = map.get("clothes_size") == null?"":map.get("clothes_size").toString();
			datas[7] = map.get("glove_size") == null?"":map.get("glove_size").toString();
			datas[8] = map.get("shoe_size") == null?"":map.get("shoe_size").toString();
			cw.writeRecord(datas);
			it.remove();
		}
        cw.flush();
		cw.close();
		return out.toByteArray();
	}
	
	//查询球员列表
	public List<Object> selectTeamPlayers(int team_id) throws SQLException{
		return (List<Object>) teamplayersDao.selectTeamPlayers(team_id);
	}
}

 TeamListService.java

package com.enjoy.golf.service;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.enjoy.golf.dao.TeamListDao;
import com.enjoy.golf.po.golf.response.BaseResponse;

@Service
public class TeamListService {
	@Resource
	TeamListDao teamlistDao;
	
	@Transactional(readOnly = false)
	//查询所有省份
	public List selectProvince() throws SQLException{
		return teamlistDao.selectProvince();
	}
	
	//查询所有省份下的球队信息
	public Map<String,Object> selectTeamInfoFromProvice(int pro_id){
		return teamlistDao.selectTeamInfoFromProvice(pro_id);
	}
	
	//修改球队验证状态
	public BaseResponse updateTeamVisitState(int team_id,int approve_state){
		return teamlistDao.updateTeamVisitState(team_id, approve_state)==1?
				new BaseResponse("0", "成功修改"):
				new BaseResponse("1","修改异常") ;
	}
}

6、TeamPlayersController.java

package com.enjoy.golf.controller;


import java.io.IOException;
import java.sql.SQLException;

import java.util.List;


import javax.annotation.Resource;

import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.enjoy.golf.service.TeamPlayersService;


@Controller
@RequestMapping("teamplayers")
public class TeamPlayersController {
		
		@Resource private TeamPlayersService teamplayersService;
		//查询球队球员列表
		@RequestMapping(value = "players",method = RequestMethod.POST)
		public  @ResponseBody List<Object> selectTeamPlayers(
				@RequestParam(defaultValue = "")int team_id) throws SQLException{
					return teamplayersService.selectTeamPlayers(team_id);
				}
		
		

		//下载球队球员列表输出为.csv文件
		@RequestMapping(value = "downloadplayers",method = RequestMethod.GET)
		public @ResponseBody ResponseEntity<byte[]> downloadTeamPlayers(
				@RequestParam(defaultValue = "")int team_id) throws SQLException, IOException{
			
			String filename = "队员列表";			
			HttpHeaders headers = new HttpHeaders(); 
			headers.setContentDispositionFormData("attachment", filename);
		    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); 
		    
		    
			return new ResponseEntity<byte[]>(teamplayersService.downloadTeamPlayers(team_id),
					headers,	HttpStatus.OK) ;
		}
	
}

 TeamListController.java

package com.enjoy.golf.controller;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.enjoy.golf.po.golf.response.BaseResponse;
import com.enjoy.golf.service.TeamListService;

@Controller
@RequestMapping("teamlist")
public class TeamListController {
	
	@Resource private TeamListService teamlistService;
	
	//查询所有省份
	@RequestMapping(value = "selectProvince",method = RequestMethod.POST)
	public  @ResponseBody List selectProvince() throws SQLException{
		return teamlistService.selectProvince();
	}
	
	//查询所有省份下的球队信息
	@RequestMapping(value = "selectTeamInfoFromProvice",method = RequestMethod.POST)
	public  @ResponseBody Map<String,Object> selectProvince(
			@RequestParam(defaultValue = "")int pro_id){
		return teamlistService.selectTeamInfoFromProvice(pro_id);
	}
	
	//修改球队验证状态
	@RequestMapping(value = "updateTeamVisitState",method = RequestMethod.POST)
	public  @ResponseBody BaseResponse updateTeamVisitState(
			@RequestParam(defaultValue = "")int team_id,
			@RequestParam(defaultValue = "")int approve_state
			){
		return teamlistService.updateTeamVisitState(team_id, approve_state);
	}
	
	@RequestMapping(value = "",method = RequestMethod.GET)
	public ModelAndView alter(HttpServletRequest request, @RequestHeader("User-Agent") String ua, String code,
			String state, String openfire, ModelAndView mav) {
		mav = new ModelAndView("");
		mav.addObject("openfire", request.getParameter("openfire"));
		return mav;
	}
}

猜你喜欢

转载自449534640.iteye.com/blog/2292369