fanli/src/main/java/com/yeshi/fanli/dao/mybatis/ExtractRecordMapper.java
@@ -7,6 +7,8 @@ public interface ExtractRecordMapper { int deleteByPrimaryKey(Long id); int deleteAll(); int insert(ExtractRecord record); fanli/src/main/java/com/yeshi/fanli/mapping/ExtractRecordMapper.xml
@@ -11,27 +11,50 @@ <!-- <association property="userInfo" column="uid" resultMap="com.yeshi.fanli.entity.dao.mybatis.UserInfoMapper.BaseResultMap"/> --> </resultMap> <sql id="Base_Column_List">id,uid,count,money,createTime</sql> <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long">select <include refid="Base_Column_List"/> from yeshi_ec_extract_record where id = #{id,jdbcType=BIGINT} <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long"> select <include refid="Base_Column_List" /> from yeshi_ec_extract_record where id = #{id,jdbcType=BIGINT} </select> <select id="selectByUid" resultMap="BaseResultMap" parameterType="java.lang.Long">select <include refid="Base_Column_List"/> from yeshi_ec_extract_record where uid = #{0} <select id="selectByUid" resultMap="BaseResultMap" parameterType="java.lang.Long"> select <include refid="Base_Column_List" /> from yeshi_ec_extract_record where uid = #{0} </select> <select id="selectByUidAndToday" resultMap="BaseResultMap" parameterType="java.lang.Long">select <include refid="Base_Column_List"/> from yeshi_ec_extract_record er where er.uid = #{0} <![CDATA[ <select id="selectByUidAndToday" resultMap="BaseResultMap" parameterType="java.lang.Long"> select <include refid="Base_Column_List" /> from yeshi_ec_extract_record er where er.uid = #{0} <![CDATA[ ANd FROM_UNIXTIME(er.createTime/1000) >= CURDATE() ]]> </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from yeshi_ec_extract_record where id = #{id,jdbcType=BIGINT}</delete> <insert id="insert" parameterType="com.yeshi.fanli.entity.bus.user.ExtractRecord" useGeneratedKeys="true" keyProperty="id">insert into yeshi_ec_extract_record (id,uid,count,money,createTime,id) values (#{id,jdbcType=BIGINT},#{userInfo.id,jdbcType=BIGINT},#{count,jdbcType=INTEGER},#{money,jdbcType=DECIMAL},#{createTime,jdbcType=BIGINT},#{id,jdbcType=BIGINT})</insert> <insert id="insertSelective" parameterType="com.yeshi.fanli.entity.bus.user.ExtractRecord" useGeneratedKeys="true" keyProperty="id">insert into yeshi_ec_extract_record <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from yeshi_ec_extract_record where id = #{id,jdbcType=BIGINT} </delete> <delete id="deleteAll">delete from yeshi_ec_extract_record </delete> <insert id="insert" parameterType="com.yeshi.fanli.entity.bus.user.ExtractRecord" useGeneratedKeys="true" keyProperty="id">insert into yeshi_ec_extract_record (id,uid,count,money,createTime,id) values (#{id,jdbcType=BIGINT},#{userInfo.id,jdbcType=BIGINT},#{count,jdbcType=INTEGER},#{money,jdbcType=DECIMAL},#{createTime,jdbcType=BIGINT},#{id,jdbcType=BIGINT}) </insert> <insert id="insertSelective" parameterType="com.yeshi.fanli.entity.bus.user.ExtractRecord" useGeneratedKeys="true" keyProperty="id"> insert into yeshi_ec_extract_record <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null">id,</if> <if test="userInfo != null">uid,</if> <if test="count != null">count,</if> <if test="money != null">money,</if> <if test="createTime != null">createTime,</if> </trim> values </trim> values <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null">#{id,jdbcType=BIGINT},</if> <if test="userInfo != null">#{userInfo.id,jdbcType=BIGINT},</if> @@ -40,13 +63,20 @@ <if test="createTime != null">#{createTime,jdbcType=BIGINT}</if> </trim> </insert> <update id="updateByPrimaryKey" parameterType="com.yeshi.fanli.entity.bus.user.ExtractRecord">update yeshi_ec_extract_record set uid = #{userInfo.id,jdbcType=BIGINT},count = #{count,jdbcType=INTEGER},money = #{money,jdbcType=DECIMAL} ,createTime =#{createTime,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}</update> <update id="updateByPrimaryKeySelective" parameterType="com.yeshi.fanli.entity.bus.user.ExtractRecord">update yeshi_ec_extract_record <update id="updateByPrimaryKey" parameterType="com.yeshi.fanli.entity.bus.user.ExtractRecord">update yeshi_ec_extract_record set uid = #{userInfo.id,jdbcType=BIGINT},count = #{count,jdbcType=INTEGER},money = #{money,jdbcType=DECIMAL} ,createTime =#{createTime,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT} </update> <update id="updateByPrimaryKeySelective" parameterType="com.yeshi.fanli.entity.bus.user.ExtractRecord"> update yeshi_ec_extract_record <set> <if test="userInfo != null">uid=#{userInfo.id,jdbcType=BIGINT},</if> <if test="count != null">count=#{count,jdbcType=INTEGER},</if> <if test="money != null">money=#{money,jdbcType=DECIMAL},</if> <if test="createTime !=null">createTime =#{createTime,jdbcType=BIGINT},</if> </set> where id = #{id,jdbcType=BIGINT} </set> where id = #{id,jdbcType=BIGINT} </update> </mapper> fanli/src/main/java/com/yeshi/fanli/service/impl/user/ExtractRecordServiceImpl.java
@@ -1,84 +1,32 @@ package com.yeshi.fanli.service.impl.user; import java.io.Serializable; import java.math.BigDecimal; import java.util.List; import javax.annotation.Resource; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.springframework.orm.hibernate4.HibernateCallback; import org.springframework.stereotype.Service; import com.yeshi.fanli.dao.user.ExtractRecordDao; import com.yeshi.fanli.entity.bus.user.Extract; import com.yeshi.fanli.dao.mybatis.ExtractRecordMapper; import com.yeshi.fanli.entity.bus.user.ExtractRecord; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.exception.AdminLimitException; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.user.ExtractRecordService; import com.yeshi.fanli.util.MoneyBigDecimalUtil; @Service public class ExtractRecordServiceImpl implements ExtractRecordService { @Resource private ExtractRecordDao extractRecordDao; private ExtractRecordMapper extractRecordMapper; @Resource private ConfigService configService; public void setExtractRecord(Extract extract) throws AdminLimitException { long uid = extract.getUserInfo().getId(); BigDecimal money = extract.getMoney(); List<ExtractRecord> extractRecordList = extractRecordDao.list("from ExtractRecord er where er.userInfo.id=? ", new Serializable[] { uid }); if (extractRecordList.size() == 0) { ExtractRecord er = new ExtractRecord(); er.setCount(1); er.setMoney(money); er.setUserInfo(new UserInfo(uid)); extractRecordDao.save(er); } else { ExtractRecord er = extractRecordList.get(0); int count = er.getCount(); String maxCount = configService.get("extract_count_day"); int maxCountInt = Integer.parseInt(maxCount); if (count >= maxCountInt) { throw new AdminLimitException("超出每日最大提现次数!"); } BigDecimal oldMoney = er.getMoney(); BigDecimal sumMoney = MoneyBigDecimalUtil.add(money, oldMoney); String maxMoney = configService.get("extract_money_day"); BigDecimal maxMoneyDou = new BigDecimal(maxMoney); if (maxMoneyDou.compareTo(sumMoney) == -1) { BigDecimal exceedMoney = MoneyBigDecimalUtil.sub(sumMoney, maxMoneyDou); throw new AdminLimitException("超出每日最大提现金额!超出金额为:" + exceedMoney + "元"); } er.setCount(count + 1); er.setMoney(sumMoney); extractRecordDao.update(er); } } // 定时删除ExtractRecord记录 public void deleteExtractRecord() { extractRecordDao.excute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Query query = session.createQuery("DELETE FROM ExtractRecord"); query.executeUpdate(); return null; } }); extractRecordMapper.deleteAll(); } @Override public ExtractRecord getExtractRecordByUid(Long uid) { List<ExtractRecord> extractRecordList = extractRecordDao .list("from ExtractRecord er where er.userInfo.id=" + uid); List<ExtractRecord> extractRecordList = extractRecordMapper.selectByUid(uid); if (extractRecordList == null || extractRecordList.size() == 0) return null; else fanli/src/main/java/com/yeshi/fanli/service/impl/user/ExtractServiceImpl.java
@@ -26,7 +26,6 @@ import com.yeshi.fanli.dao.mybatis.PayInfoMapper; import com.yeshi.fanli.dao.mybatis.UserInfoMapper; import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper; import com.yeshi.fanli.dao.user.ExtractRecordDao; import com.yeshi.fanli.dto.HongBao; import com.yeshi.fanli.entity.bus.user.AlipayTransferResultInfo; import com.yeshi.fanli.entity.bus.user.Extract; @@ -81,9 +80,6 @@ @Resource private UserInfoMapper userInfoMapper; @Resource private ExtractRecordDao extractRecordDao; @Resource private PayInfoMapper payInfoMapper; fanli/src/main/java/com/yeshi/fanli/service/inter/user/ExtractRecordService.java
@@ -1,13 +1,8 @@ package com.yeshi.fanli.service.inter.user; import com.yeshi.fanli.entity.bus.user.Extract; import com.yeshi.fanli.entity.bus.user.ExtractRecord; import com.yeshi.fanli.exception.AdminLimitException; public interface ExtractRecordService { void setExtractRecord(Extract extract) throws AdminLimitException; void deleteExtractRecord(); /**