package com.sp2p.service.admin;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Map;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.shove.base.BaseService;
import com.shove.data.DataException;
import com.shove.data.dao.MySQL;
import com.shove.vo.PageBean;
import com.sp2p.dao.ScoreDao;
public class ScoreService extends BaseService {
public static Log log =LogFactory.getLog(ScoreService.class);
private ScoreDao scoreDao;
public ScoreDao getScoreDao() {
return scoreDao;
}
public void setScoreDao(ScoreDao scoreDao) {
this.scoreDao = scoreDao;
}
public void queryScorePage(PageBean<Map<String,Object>> pageBean, String attitude, int levels, String username,String id)throws Exception{
Connection conn=MySQL.getConnection();
StringBuffer sb = new StringBuffer("");
if (StringUtils.isNotBlank(username)) {
sb.append(" and username like '%"
+ StringEscapeUtils.escapeSql(username.trim())
+ "%' ");
}
if (levels>0) {
sb.append(" AND levels = " + levels+"");
}
if (StringUtils.isNotBlank(attitude)) {
sb.append(" and attitude like '%"
+ StringEscapeUtils.escapeSql(attitude.trim())
+ "%' ");
}
if (StringUtils.isNotBlank(id)) {
sb.append(" and id in (%"
+ StringEscapeUtils.escapeSql(id.trim())
+ "%) ");
}
try {
dataPage(conn, pageBean, "v_t_score_list", "*", "", sb.toString());
} catch (Exception e) {
log.error(e);
e.printStackTrace();
throw e;
}finally{
conn.close();
}
}
public void queryScoreById(PageBean<Map<String,Object>> pageBean ,Long id )throws SQLException,DataException{
Connection conn=MySQL.getConnection();
try {
dataPage(conn, pageBean, "v_t_score_list", "*", "", " and userId = " + id);
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
throw e;
}catch(DataException e){
log.error(e);
e.printStackTrace();
throw e;
}finally{
conn.close();
}
}
public void addScore(long userId ,int total,int questionScore,int degree,int degreeScore,int internet,int intnetScore,
int predilection,int prediScore)throws Exception{
Connection conn=MySQL.getConnection();
try {
int sum= total+degree+internet+predilection;
int sumTotal=questionScore+degreeScore+intnetScore+prediScore;
scoreDao.addScore(userId, total, questionScore, degree, degreeScore, internet, intnetScore,
predilection, prediScore,
conn, degree/degreeScore*100/33+1, sum/sumTotal*100/25+1);
conn.commit();
} catch (Exception e) {
conn.rollback();
log.error(e);
e.printStackTrace();
throw e;
}finally{
conn.close();
}
}
}