/**
* @Project: hehenian-biz-service Maven Webapp
* @Package com.hehenian.biz.dal.wygj.impl
* @Title: LotteryDaoImpl.java
* @Description: TODO
*
* @author: chenzhpmf
* @date 2015-5-13 下午3:09:49
* @Copyright: HEHENIAN Co.,Ltd. All rights reserved.
* @version V1.0
*/
package com.hehenian.biz.dal.wygj.impl;
import java.math.BigDecimal;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;
import com.hehenian.biz.common.wygj.dataobject.LotteryInfo;
import com.hehenian.biz.dal.wygj.ILotteryDao;
import com.hehenian.biz.service.dao.AbstractBaseDaoImpl;
public class LotteryDaoImpl extends AbstractBaseDaoImpl<LotteryInfo> implements ILotteryDao {
@Resource
private JdbcTemplate sp2pJdbcTemplate;
@Resource
private NamedParameterJdbcTemplate sp2pNameJdbcTemplate;
private static RowMapper<LotteryInfo> rowMapper = ParameterizedBeanPropertyRowMapper
.newInstance(LotteryInfo.class);
@Override
public int getLotteryNumber(Integer userId) {
int number = 0;
String sql = "select sum(a.trade_amount) as amount from td_fund_trade as a " +
" inner join td_product_rate as b on a.rate_id = b.product_rate_id " +
"where a.trade_time>20150515 and a.trade_time<20150531 and a.rate_id>=5 and a.rate_id<=15 and b.period>=6 and a.user_id="+userId;
try {
List<Double> amount = queryDouble(sp2pJdbcTemplate,sql);
if(CollectionUtils.isNotEmpty(amount)){
Double d = amount.get(0)/1000;
number = d.intValue();
}
} catch (SQLException e) {
e.printStackTrace();
}
return number;
}
@Override
public int addLotteryInfo(LotteryInfo info) {
String sql = "insert into m_lottery_info(userId,userName,prizeName,createTime)values(?,?,?,now())";
return sp2pJdbcTemplate.update(sql, info.getUserId(),info.getUserName(),info.getPrizeName());
}
@Override
public int countLotteryByUser(Integer userId){
String sql = "select count(id) from m_lottery_info where userId =?";
try {
return queryCount(sp2pJdbcTemplate, sql, new Integer[]{userId});
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
@Override
public List<LotteryInfo> queryTopLotteryList() {
String sql = "select * from m_lottery_info order by createTime desc limit 20";
try {
return queryList(sp2pJdbcTemplate, sql);
} catch (SQLException e) {
e.printStackTrace();
}
return new ArrayList<LotteryInfo>();
}
public int updateUserBalance(Integer userId,BigDecimal amount){
String sql = "UPDATE td_fund_user_account SET balance_amount = balance_amount + ?,total_recharge_amount = total_recharge_amount + ?,update_time=now() WHERE user_id = ?";
return sp2pJdbcTemplate.update(sql, amount,amount,userId);
}
public int insertFundAccountLog(Map<String,Object> params){
String sql = " insert into td_fund_account_log(log_type,trade_amount,user_id,user_account_id,remark,status,trade_time)" +
"values(?,?,?,?,?,?,now())";
return sp2pJdbcTemplate.update(sql,params.get("log_type"),params.get("trade_amount"),params.get("user_id"),params.get("user_account_id"),params.get("remark"),1);
}
public Map<String,Object> getFundUserAccountById(Integer userId){
String sql ="select user_account_id,user_id from td_fund_user_account where user_id=? limit 1";
return sp2pJdbcTemplate.queryForMap(sql, userId);
}
@Override
public RowMapper<LotteryInfo> getRowMapper() {
return rowMapper;
}
}