package com.sp2p.service; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang3.concurrent.ConcurrentUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.shove.Convert; import com.shove.base.BaseService; import com.shove.data.DataException; import com.shove.data.dao.MySQL; import com.shove.vo.PageBean; import com.sp2p.constants.IConstants; import com.sp2p.dao.OperationLogDao; import com.sp2p.dao.UserDao; import com.sp2p.dao.UserIntegralDao; import com.sp2p.dao.admin.UserManageDao; public class UserIntegralService extends BaseService { public static Log log = LogFactory.getLog(UserIntegralService.class); private UserIntegralDao userIntegralDao; private UserDao userDao ; private OperationLogDao operationLogDao; private UserManageDao userManageDao; public UserManageDao getUserManageDao() { return userManageDao; } public void setUserManageDao(UserManageDao userManageDao) { this.userManageDao = userManageDao; } public void setUserIntegralDao(UserIntegralDao userIntegralDao) { this.userIntegralDao = userIntegralDao; } public void queryUserIntegral(PageBean<Map<String, Object>> pageBean,Long userid, int type) throws SQLException, Exception { Connection conn = connectionManager.getConnection(); try { StringBuffer condition = new StringBuffer(); //condition.append(" 1 = 1"); condition.append(" AND userid = "+userid+" AND type = "+ type); dataPage(conn, pageBean, "t_userintegraldetail", "*", " ORDER BY id", condition.toString()); } catch (SQLException e) { log.error(e); e.printStackTrace(); throw e; } catch (DataException e) { log.error(e); e.printStackTrace(); throw e; } finally { conn.close(); } } /** * 添加用户积分明细记录 * * @param userid * @param intergraltype * @param remark * @param changetype * @param changerecore * @param time * @param type * @return * @throws SQLException */ /** * 登录添加积分处理 * @return * @throws SQLException */ /** * 用户登录日志表 */ public Long addUserLoginLog(Long id) throws SQLException { Long resultId = -1L; Connection conn = MySQL.getConnection(); try { resultId = userIntegralDao.addUserLoginLog(conn, id); conn.commit(); } catch (SQLException e) { log.error(e); conn.rollback(); e.printStackTrace(); throw e; }finally{ conn.close(); } return resultId; } //用户投标积分 public Long UpdateFinnceRating(Long id,int score,int prescore) throws SQLException, DataException { Long resultId = -1L; Connection conn = MySQL.getConnection(); String intergraltype = "投标"; String remark = "投标成功"; String changetype = "增加"; Integer type = IConstants.USER_INTERGRALTYPEVIP; try { resultId = userIntegralDao.UpdateUserRating(conn, id, score, prescore); if(resultId<=0){ conn.rollback(); return -1L; } Map<String,String> map = userIntegralDao.queryUserIntegral2(conn, id, 2, intergraltype); if(map==null){ resultId = userManageDao.addserintegraldetail(conn, id, score,intergraltype, type,remark, changetype); }else{ long changerecore = Convert.strToInt((String) map.get("changerecore"),1); long minId = Convert.strToInt(map.get("minId"), 1); resultId=userIntegralDao.updateUserIntegral(conn,changerecore,score,minId); } if(resultId<=0){ conn.rollback(); return -1L; } conn.commit(); } catch (SQLException e) { log.error(e); conn.rollback(); e.printStackTrace(); throw e; }finally{ conn.close(); } return resultId; } /** * 举报审核通过后积分添加 * @param id * @param score * @param prescore * @return * @throws SQLException * @throws DataException */ public Long UpdateJubaoRating(Long id,int score,int prescore) throws SQLException, DataException { Long resultId = -1L; Connection conn = MySQL.getConnection(); String intergraltype = "举报"; String remark = "举报属实"; String changetype = "增加"; Integer type = IConstants.USER_INTERGRALTYPEVIP; try { resultId = userIntegralDao.UpdateUserRating(conn, id, score, prescore); if(resultId<=0){ conn.rollback(); return -1L; } Map<String,String> map = userIntegralDao.queryUserIntegral2(conn, id, 2, intergraltype); if(map==null){ resultId = userManageDao.addserintegraldetail(conn, id, score,intergraltype, type,remark, changetype); }else{ long changerecore = Convert.strToInt((String) map.get("changerecore"),1); long minId = Convert.strToInt(map.get("minId"), 1); resultId=userIntegralDao.updateUserIntegral(conn,changerecore,score,minId); } if(resultId<=0){ conn.rollback(); return -1L; } conn.commit(); } catch (SQLException e) { log.error(e); conn.rollback(); e.printStackTrace(); throw e; }finally{ conn.close(); } return resultId; } public Long UpdateLoginRating(Long id,int score,int prescore,Integer loignCount) throws SQLException, DataException { Long resultId = -1L; Connection conn = MySQL.getConnection(); String intergraltype = "登录"; String remark = "登录积分"; String changetype = "增加"; Integer type = IConstants.USER_INTERGRALTYPEVIP; try { if(loignCount<=2){ resultId = userIntegralDao.UpdateUserRating(conn, id, score, prescore); if(resultId<=0){ conn.rollback(); return -1L; } Map<String,String> map = userIntegralDao.queryUserIntegral2(conn, id, 2, intergraltype); if(map==null){ resultId = userManageDao.addserintegraldetail(conn, id, score,intergraltype, type,remark, changetype); }else{ long changerecore = Convert.strToInt((String) map.get("changerecore"),1); long minId = Convert.strToInt(map.get("minId"), 1); resultId=userIntegralDao.updateUserIntegral(conn,changerecore,score,minId); } if(resultId<=0){ conn.rollback(); return -1L; } conn.commit(); } } catch (SQLException e) { log.error(e); conn.rollback(); e.printStackTrace(); throw e; } finally{ conn.close(); } return resultId; } public Map<String, String> queryUserLoginLong(Long id) throws SQLException { Map<String, String> map = null; Map<String, String> userMap = new HashMap<String, String>(); Connection conn = connectionManager.getConnection(); try { map = userIntegralDao.queryUserLoginLong(conn, id); userMap = userDao.queryUserById(conn, id); operationLogDao.addOperationLog(conn, "t_user",Convert.strToStr(userMap.get("username"),"") , IConstants.UPDATE, Convert.strToStr(userMap.get("lastIP"), ""), 0, "用户登陆", 1); } catch (SQLException e) { log.error(e); e.printStackTrace(); } catch (DataException e) { log.error(e); e.printStackTrace(); } finally { conn.close(); } return map; } public UserDao getUserDao() { return userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; } public UserIntegralDao getUserIntegralDao() { return userIntegralDao; } public OperationLogDao getOperationLogDao() { return operationLogDao; } public void setOperationLogDao(OperationLogDao operationLogDao) { this.operationLogDao = operationLogDao; } }