GZMachinesWeb/.svn/pristine/15/1516d570ccefc8c3a64a950cbfc...

189 lines
4.8 KiB
Plaintext

package com.bonus.sys;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
public class BaseServiceImp<T> implements BaseService<T> {
protected Logger logger = Logger.getLogger(BaseServiceImp.class);
@Autowired
protected JdbcTemplate jdbcTemplate;
@Autowired
protected BaseDao<T> baseDao;
@Override
public void insert(T o) {
baseDao.insert(o);
}
@Override
public void delete(T o) {
baseDao.delete(o);
}
public AjaxRes getAjaxRes() {
return new AjaxRes();
}
@Override
public void deleteBatch(List<T> os) {
baseDao.deleteBatch(os);
}
@Override
public void update(T o) {
baseDao.update(o);
}
@Override
public List<T> find(T o) {
return baseDao.find(o);
}
@Override
public Page<T> findByPage(T o, Page<T> page) {
page.setResults(baseDao.findByPage(o, page));
return page;
}
@Override
public Page<T> fileViewFindByPage(T o, Page<T> page) {
page.setResults(baseDao.fileViewFindByPage(o, page));
return page;
}
public HashMap<String, Object> uploadFileSpring(HttpServletRequest request) {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
// 判断 request 是否有文件上传,即多部分请求
HashMap<String, Object> map = new HashMap<String, Object>();
List<MultipartFile> tmps = new ArrayList<MultipartFile>();
if (multipartResolver.isMultipart(request)) {
// 转换成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
Iterator<String> iter = multiRequest.getFileNames();
while (iter.hasNext()) {
MultipartFile file = multiRequest.getFile(iter.next());
tmps.add(file);
}
}
map.put("filePath", tmps);
return map;
}
public HashMap<String, Object> uploadFile(HttpServletRequest request) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
HashMap<String, Object> map = new HashMap<String, Object>();
try {
List<FileItem> tmps = new ArrayList<FileItem>();
List<FileItem> items = upload.parseRequest(request);
if (null != items) {
Iterator<FileItem> itr = items.iterator();
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next();
if (item.isFormField()) {
map.put(item.getFieldName(), item.getString("UTF-8"));
} else {
tmps.add(item);
}
}
}
map.put("filePath", tmps);
} catch (Exception e) {
logger.error("dowith request upload file failed!", e);
return null;
}
return map;
}
@Override
public Page<T> findByPageOne(T o, Page<T> page) {
page.setResults(baseDao.findByPage(o, page));
return page;
}
@Override
public Page<T> findByPageTwo(T o, Page<T> page) {
page.setResults(baseDao.findByPageTwo(o, page));
return page;
}
@Override
public Page<T> findByPageThree(T o, Page<T> page) {
page.setResults(baseDao.findByPageThree(o, page));
return page;
}
public List<Integer> getIntList(String ids) {
List<Integer> idList = new ArrayList<Integer>();
String[] arr = ids.split(",");
Integer size = arr.length;
for(int i=0;i<size;i++) {
idList.add(Integer.parseInt(arr[i]));
}
return idList;
}
public String genNextCode(String tableName,String condition,String codePart){
String code = null;
String nextCode = null;
String sql = " select `code` from "+ tableName +" where `code` like '"+condition+"%' order by `code` desc limit 1 ";
System.out.println(sql);
List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(sql);
if(queryForList!=null && queryForList.size()>0){
code = (String)queryForList.get(0).get("code");
String nums = "1";
try {
nums = code.substring(code.lastIndexOf("-")+1);
} catch (Exception e) {
nums = "1";
}
int num = Integer.parseInt(nums)+1;
if(num >= 1 && num <= 9){
nextCode = codePart +"-000"+num;
}else if(num >= 10 && num <= 99){
nextCode = codePart +"-00"+num;
}else if(num >= 100 && num <= 999){
nextCode = codePart +"-0"+num;
}else{
nextCode = codePart +"-"+num;
}
}else{
nextCode = codePart + "-0001";
}
return nextCode;
}
}