admin
2019-10-17 143160118ab3937ae9e340f61aafa764756856c8
Merge remote-tracking branch 'origin/div' into div
13个文件已修改
5个文件已添加
1451 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/admin/ExtractAdminController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/UserInfoCountMapper.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/bus/user/UserInfo.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/bus/user/UserInfoExtra.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/UserInfoCountMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/UserInfoMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/user/UserInfoExtraMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/count/UserInfoCountServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/count/UserInfoCountService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/RocketMQLocalTransactionChecker.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/RocketMQMessageListener.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/vo/user/UserInfoVO.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/rocket/consumer.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/rocket/producer.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/rocket/transactionProducer.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/spring.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 1136 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/ExtractAdminController.java
@@ -37,6 +37,7 @@
import com.yeshi.fanli.entity.bus.user.ExtractAuditRecord;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.fanli.exception.ExtractException;
import com.yeshi.fanli.exception.NotExistObjectException;
@@ -52,6 +53,7 @@
import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
import com.yeshi.fanli.service.inter.push.PushRecordService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
@@ -100,6 +102,10 @@
    @Resource
    private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService;
    @Resource
    private UserInfoExtraService userInfoExtraService;
    /**
     * 
@@ -554,7 +560,14 @@
                } else {
                    surplusTime = DateUtil.dateDiff(formattodayTime, formatTime);
                }
                String mark = "";
                UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(extract.getUserInfo().getId());
                if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getMark())) {
                    mark = "警惕!! " + userInfoExtra.getMark();
                }
                data.put("mark",mark);
                data.put("extract", extract);
                data.put("beforeMoney", beforeMoney);
                data.put("surplusTime", surplusTime);
@@ -618,6 +631,13 @@
                        surplusTime = DateUtil.dateDiff(formattodayTime, formatTime);
                    }
                    String mark = "";
                    UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(extract.getUserInfo().getId());
                    if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getMark())) {
                        mark = "警惕!! " + userInfoExtra.getMark();
                    }
                    data.put("mark",mark);
                    data.put("extract", extract);
                    data.put("beforeMoney", beforeMoney);
                    data.put("surplusTime", surplusTime);
fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java
@@ -26,6 +26,7 @@
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.bus.user.UserRank;
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
@@ -301,7 +302,7 @@
            UserInfo find = userInfoService.getUserById(uid);
            if (find == null) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("不存在该用户!"));
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户被封禁或不存在"));
                return;
            }
@@ -347,13 +348,81 @@
            }
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("解绑成功"));
        } catch (Exception e) {
            e.printStackTrace();
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
        }
    }
    /**
     * 修改用户备注
     * @param callback
     * @param uid
     * @param mark
     * @param out
     */
    @RequestMapping("addUserMark")
    public void addUserMark(String callback, Long uid, String mark, PrintWriter out) {
        try {
            if (uid == null || uid <= 0 || StringUtil.isNullOrEmpty(mark))
                return;
            UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
            if (userInfoExtra == null)
                return;
            UserInfoExtra updateExtra = new UserInfoExtra();
            updateExtra.setId(userInfoExtra.getId());
            updateExtra.setMark(mark);
            userInfoExtraService.saveUserInfoExtra(updateExtra);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 删除用户-改变其状态
     * @param callback
     * @param idArray
     * @param out
     */
    @RequestMapping(value = "deleteUser")
    public void delete(String callback, String idArray, HttpServletRequest request,  PrintWriter out) {
        try {
            AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
            if (admin == null) {
                out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆。")));
                return;
            }
            if (StringUtil.isNullOrEmpty(idArray)) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择操作的数据"));
                return;
            }
            Gson gson = new Gson();
            List<Long> list = gson.fromJson(idArray, new TypeToken<ArrayList<Long>>() {}.getType());
            if (list == null || list.size() == 0) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未检测到删除的数据"));
                return;
            }
            for (Long id: list) {
                UserInfo user = new UserInfo(id);
                user.setState(UserInfo.STATE_DELETE);
                user.setStateDesc(admin.getId()+" " + admin.getName()+ "后台手动删除");
                userInfoService.updateByPrimaryKeySelective(user);
            }
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("成功删除"));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("删除失败"));
            e.printStackTrace();
        }
    }
    /**
     * 封禁用户ID
     * 
@@ -1099,7 +1168,7 @@
     * @param out
     */
    @RequestMapping(value = "getGoldTop")
    public void getGoldTop(String callback, Integer pageIndex, Integer pageSize, Integer type,
    public void getGoldTop(String callback, Integer pageIndex, Integer pageSize, Integer type, String key,
            PrintWriter out) {
        if (type == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("type不能为空"));
@@ -1115,11 +1184,11 @@
        long count = 0;
        List<UserGoldCoinVO> list = null;
        if (type == 0) {
            count = userInfoCountService.countByHasGoldCoin();
            list = userInfoCountService.listByHasGoldCoin((pageIndex - 1) * pageSize, pageSize);
            count = userInfoCountService.countByHasGoldCoin(key);
            list = userInfoCountService.listByHasGoldCoin((pageIndex - 1) * pageSize, pageSize, key);
        } else if (type == 1 || type == 2) {
            count = userInfoCountService.countByUserGoldCoin(type);
            list = userInfoCountService.listByUserGoldCoin((pageIndex - 1) * pageSize, pageSize, type);
            count = userInfoCountService.countByUserGoldCoin(type, key);
            list = userInfoCountService.listByUserGoldCoin((pageIndex - 1) * pageSize, pageSize, type, key);
        }
        
        if(list == null)
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/UserInfoCountMapper.java
@@ -15,10 +15,10 @@
     * @param type
     * @return
     */
    List<UserGoldCoinVO> listByUserGoldCoin(@Param("start")long start, @Param("count")int count, @Param("type")int type);
    List<UserGoldCoinVO> listByUserGoldCoin(@Param("start")long start, @Param("count")int count, @Param("type")int type, @Param("key") String key);
    
    
    long countByUserGoldCoin(@Param("type")int type);
    long countByUserGoldCoin(@Param("type")int type, @Param("key") String key);
    
    
    /**
@@ -28,8 +28,8 @@
     * @param type
     * @return
     */
    List<UserGoldCoinVO> listByHasGoldCoin(@Param("start")long start, @Param("count")int count);
    List<UserGoldCoinVO> listByHasGoldCoin(@Param("start")long start, @Param("count")int count, @Param("key") String key);
    
    
    long countByHasGoldCoin();
    long countByHasGoldCoin(@Param("key") String key);
}
fanli/src/main/java/com/yeshi/fanli/entity/bus/user/UserInfo.java
@@ -188,6 +188,7 @@
        this.rankIcon = rankIcon;
    }
    // TODO
    public UserInfo() {
        openid = "";
        wxOpenId = "";
fanli/src/main/java/com/yeshi/fanli/entity/bus/user/UserInfoExtra.java
@@ -81,6 +81,10 @@
    @Column(name = "uie_close_time_extract")
    private  Date closeTimeExtract;
    
    // 用户标识
    @Column(name = "uie_mark")
    private  String mark;
    // 创建时间
    @Column(name = "uie_create_time")
    private Date createTime;
@@ -235,4 +239,12 @@
        this.closeTimeExtract = closeTimeExtract;
    }
    public String getMark() {
        return mark;
    }
    public void setMark(String mark) {
        this.mark = mark;
    }
}
fanli/src/main/java/com/yeshi/fanli/mapping/UserInfoCountMapper.xml
@@ -18,6 +18,7 @@
        WHERE 1=1 
              <if test="type == 1">AND d.`td_money`<![CDATA[>]]> 0</if>
              <if test="type == 2">AND d.`td_money`<![CDATA[<]]> 0</if>
              <if test="key != null and key !='' ">AND d.`td_uid`LIKE '%${key}%'</if>
        GROUP BY d.`td_uid`
        ORDER BY goldCoin <if test="type == 1">DESC</if>
        LIMIT #{start},#{count}
@@ -29,18 +30,21 @@
        WHERE 1=1 
              <if test="type == 1">AND d.`td_money`<![CDATA[>]]> 0</if>
              <if test="type == 2">AND d.`td_money`<![CDATA[<]]> 0</if>
              <if test="key != null and key !='' ">AND d.`td_uid` LIKE '%${key}%'</if>
    </select>
    
    <select id="listByHasGoldCoin" resultMap="UserGoldCoinMapVO">
        SELECT IFNULL(t.`uie_gold_coin`,0) AS goldCoin,u.`id`,u.`nick_name`,u.`portrait`
        FROM `yeshi_ec_user_info_extra` t
        LEFT JOIN `yeshi_ec_user` u ON t.`uie_uid` = u.`id`
        WHERE 1=1 <if test="key != null and key !='' ">AND t.`uie_uid`LIKE '%${key}%'</if>
        ORDER BY t.`uie_gold_coin` DESC
        LIMIT #{start},#{count}
    </select>
    <select id="countByHasGoldCoin" resultType="Long">
        SELECT IFNULL(COUNT(t.`uie_id`),0)FROM `yeshi_ec_user_info_extra` t
        WHERE 1=1 <if test="key != null and key !='' ">AND t.`uie_uid`LIKE '%${key}%'</if>
    </select>
    
</mapper>
fanli/src/main/java/com/yeshi/fanli/mapping/UserInfoMapper.xml
@@ -80,6 +80,7 @@
            jdbcType="VARCHAR" />
        <result column="uie_gold_coin" property="goldCoin" jdbcType="INTEGER" />
        <result column="uie_mark" property="mark" jdbcType="VARCHAR" />
    </resultMap>
    <resultMap id="ChartMap" type="com.yeshi.fanli.dto.ChartTDO">
@@ -700,11 +701,11 @@
        where u.state=0
    </select>
    
    <select id="getAutoExtractUserIds" resultType="java.lang.Long">
        SELECT u.`id` FROM `yeshi_ec_user_info_extra` t
    <select id="getAutoExtractUserIds" resultMap="BaseResultMap">
        SELECT u.* FROM `yeshi_ec_user_info_extra` t
        LEFT JOIN  `yeshi_ec_user` u ON u.`id` = t.`uie_uid`
        WHERE t.`uie_auto_extract` = 1 AND u.`state` = 0 AND u.`my_hongBao` <![CDATA[>=]]> #{money} 
        AND u.`wx_open_id` IS NOT NULL
        AND u.`wx_open_id` IS NOT NULL AND LENGTH(TRIM(u.`wx_open_id`)) <![CDATA[>]]> 0
        LIMIT #{start},#{count}
    </select>
fanli/src/main/java/com/yeshi/fanli/mapping/user/UserInfoExtraMapper.xml
@@ -30,7 +30,7 @@
        <result column="uie_auto_extract" property="autoExtract"
            jdbcType="BOOLEAN" />
        <result column="uie_close_time_extract" property="closeTimeExtract"    jdbcType="TIMESTAMP" />
        <result column="uie_mark" property="mark" jdbcType="VARCHAR" />
        <association property="userInfo" column="uie_uid"
            javaType="com.yeshi.fanli.entity.bus.user.UserInfo">
            <id column="uie_uid" property="id" jdbcType="BIGINT" />
@@ -71,7 +71,7 @@
            jdbcType="BOOLEAN" />
            
        <result column="uie_close_time_extract" property="closeTimeExtract"    jdbcType="TIMESTAMP" />
        <result column="uie_mark" property="mark" jdbcType="VARCHAR" />
        <association property="userInfo" column="uie_uid"
            resultMap="com.yeshi.fanli.dao.mybatis.UserInfoMapper.BaseResultMap" />
@@ -109,6 +109,7 @@
            jdbcType="BOOLEAN" />
        
        <result column="uie_close_time_extract" property="closeTimeExtract"    jdbcType="TIMESTAMP" />
        <result column="uie_mark" property="mark" jdbcType="VARCHAR" />
        
        <association property="userInfo" column="uie_uid"
            javaType="com.yeshi.fanli.entity.bus.user.UserInfo">
@@ -121,7 +122,7 @@
    <sql id="Base_Column_List">uie_id,uie_uid,uie_rank_id,uie_rank_source,uie_rank_order_num,uie_rank_update_time,uie_invite_code,uie_lottery_newbies,uie_coupon_news,uie_synch_navbar,uie_first_login_time,uie_sex,uie_weixin,uie_gold_coin,uie_create_time,uie_update_time,uie_auto_extract,uie_close_time_extract
    <sql id="Base_Column_List">uie_id,uie_uid,uie_rank_id,uie_rank_source,uie_rank_order_num,uie_rank_update_time,uie_invite_code,uie_lottery_newbies,uie_coupon_news,uie_synch_navbar,uie_first_login_time,uie_sex,uie_weixin,uie_gold_coin,uie_create_time,uie_update_time,uie_auto_extract,uie_close_time_extract,uie_mark
    </sql>
    <select id="selectByPrimaryKey" resultMap="BaseResultMap"
@@ -137,9 +138,9 @@
    <insert id="insert" parameterType="com.yeshi.fanli.entity.bus.user.UserInfoExtra"
        useGeneratedKeys="true" keyProperty="id">insert into
        yeshi_ec_user_info_extra
        (uie_id,uie_uid,uie_rank_id,uie_rank_source,uie_rank_order_num,uie_rank_update_time,uie_invite_code,uie_lottery_newbies,uie_coupon_news,uie_synch_navbar,uie_first_login_time,uie_sex,uie_weixin,uie_gold_coin,uie_create_time,uie_update_time,uie_auto_extract,uie_close_time_extract)
        (uie_id,uie_uid,uie_rank_id,uie_rank_source,uie_rank_order_num,uie_rank_update_time,uie_invite_code,uie_lottery_newbies,uie_coupon_news,uie_synch_navbar,uie_first_login_time,uie_sex,uie_weixin,uie_gold_coin,uie_create_time,uie_update_time,uie_auto_extract,uie_close_time_extract,uie_mark)
        values
        (#{id,jdbcType=BIGINT},#{userInfo.id,jdbcType=BIGINT},#{userRank.id,jdbcType=BIGINT},#{rankSource,jdbcType=INTEGER},#{rankOrderNum,jdbcType=INTEGER},#{rankUpdateTime,jdbcType=TIMESTAMP},#{inviteCode,jdbcType=VARCHAR},#{lotteryNewbies,jdbcType=INTEGER},#{couponNews,jdbcType=INTEGER},#{synchNavbar,jdbcType=VARCHAR},#{firstLoginTime,jdbcType=TIMESTAMP},#{sex,jdbcType=INTEGER},#{weiXin,jdbcType=VARCHAR},#{goldCoin,jdbcType=INTEGER},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP},#{autoExtract,jdbcType=BOOLEAN},#{closeTimeExtract,jdbcType=TIMESTAMP})
        (#{id,jdbcType=BIGINT},#{userInfo.id,jdbcType=BIGINT},#{userRank.id,jdbcType=BIGINT},#{rankSource,jdbcType=INTEGER},#{rankOrderNum,jdbcType=INTEGER},#{rankUpdateTime,jdbcType=TIMESTAMP},#{inviteCode,jdbcType=VARCHAR},#{lotteryNewbies,jdbcType=INTEGER},#{couponNews,jdbcType=INTEGER},#{synchNavbar,jdbcType=VARCHAR},#{firstLoginTime,jdbcType=TIMESTAMP},#{sex,jdbcType=INTEGER},#{weiXin,jdbcType=VARCHAR},#{goldCoin,jdbcType=INTEGER},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP},#{autoExtract,jdbcType=BOOLEAN},#{closeTimeExtract,jdbcType=TIMESTAMP},#{mark,jdbcType=VARCHAR})
    </insert>
    <insert id="insertSelective" parameterType="com.yeshi.fanli.entity.bus.user.UserInfoExtra"
@@ -164,6 +165,7 @@
            <if test="updateTime != null">uie_update_time,</if>
            <if test="autoExtract != null">uie_auto_extract,</if>
            <if test="closeTimeExtract != null">uie_close_time_extract,</if>
            <if test="mark != null">uie_mark,</if>
        </trim>
        values
        <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -185,6 +187,7 @@
            <if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if>
            <if test="autoExtract != null">#{autoExtract,jdbcType=BOOLEAN},</if>
            <if test="closeTimeExtract != null">#{closeTimeExtract,jdbcType=TIMESTAMP},</if>
            <if test="mark != null">#{mark,jdbcType=VARCHAR},</if>
        </trim>
    </insert>
    <update id="updateByPrimaryKey" parameterType="com.yeshi.fanli.entity.bus.user.UserInfoExtra">update
@@ -205,7 +208,8 @@
        #{createTime,jdbcType=TIMESTAMP},uie_update_time =
        #{updateTime,jdbcType=TIMESTAMP},uie_auto_extract =
        #{autoExtract,jdbcType=BOOLEAN},uie_close_time_extract =
        #{closeTimeExtract,jdbcType=TIMESTAMP}  where uie_id = #{id,jdbcType=BIGINT}
        #{closeTimeExtract,jdbcType=TIMESTAMP},uie_mark =
        #{mark,jdbcType=VARCHAR}  where uie_id = #{id,jdbcType=BIGINT}
    </update>
    <update id="updateByPrimaryKeySelective" parameterType="com.yeshi.fanli.entity.bus.user.UserInfoExtra">
        update yeshi_ec_user_info_extra
@@ -229,6 +233,7 @@
            <if test="updateTime != null">uie_update_time=#{updateTime,jdbcType=TIMESTAMP},</if>
            <if test="autoExtract != null">uie_auto_extract=#{autoExtract,jdbcType=BOOLEAN},</if>
            <if test="closeTimeExtract != null">uie_close_time_extract=#{closeTimeExtract,jdbcType=TIMESTAMP},</if>
            <if test="mark != null">uie_mark=#{mark,jdbcType=VARCHAR},</if>
        </set>
        where uie_id = #{id,jdbcType=BIGINT}
    </update>
@@ -254,6 +259,7 @@
            <if test="updateTime != null">uie_update_time=#{updateTime,jdbcType=TIMESTAMP},</if>
            <if test="autoExtract != null">uie_auto_extract=#{autoExtract,jdbcType=BOOLEAN},</if>
            <if test="closeTimeExtract != null">uie_close_time_extract=#{closeTimeExtract,jdbcType=TIMESTAMP},</if>
            <if test="mark != null">uie_mark=#{mark,jdbcType=VARCHAR},</if>
        </set>
        where uie_uid = #{userInfo.id,jdbcType=BIGINT}
    </update>
fanli/src/main/java/com/yeshi/fanli/service/impl/count/UserInfoCountServiceImpl.java
@@ -5,7 +5,6 @@
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
@@ -263,23 +262,23 @@
    }
    @Override
    public List<UserGoldCoinVO> listByUserGoldCoin(long start, int count, int type) {
        return userInfoCountMapper.listByUserGoldCoin(start, count, type);
    public List<UserGoldCoinVO> listByUserGoldCoin(long start, int count, int type, String key) {
        return userInfoCountMapper.listByUserGoldCoin(start, count, type, key);
    }
    @Override
    public long countByUserGoldCoin(int type) {
        return userInfoCountMapper.countByUserGoldCoin(type);
    public long countByUserGoldCoin(int type, String key) {
        return userInfoCountMapper.countByUserGoldCoin(type, key);
    }
    
    
    @Override
    public List<UserGoldCoinVO> listByHasGoldCoin(long start, int count) {
        return userInfoCountMapper.listByHasGoldCoin(start, count);
    public List<UserGoldCoinVO> listByHasGoldCoin(long start, int count, String key) {
        return userInfoCountMapper.listByHasGoldCoin(start, count, key);
    }
    @Override
    public long countByHasGoldCoin() {
        return userInfoCountMapper.countByHasGoldCoin();
    public long countByHasGoldCoin(String key) {
        return userInfoCountMapper.countByHasGoldCoin(key);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/count/UserInfoCountService.java
@@ -69,9 +69,9 @@
     * @param count
     * @return
     */
    public List<UserGoldCoinVO> listByUserGoldCoin(long start, int count, int type);
    public List<UserGoldCoinVO> listByUserGoldCoin(long start, int count, int type, String key);
    public long countByUserGoldCoin(int type);
    public long countByUserGoldCoin(int type, String key);
    /**
     * 统计剩余金币
@@ -79,8 +79,8 @@
     * @param count
     * @return
     */
    public List<UserGoldCoinVO> listByHasGoldCoin(long start, int count);
    public List<UserGoldCoinVO> listByHasGoldCoin(long start, int count, String key);
    public long countByHasGoldCoin();
    public long countByHasGoldCoin(String key);
    
}
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/RocketMQLocalTransactionChecker.java
New file
@@ -0,0 +1,20 @@
package com.yeshi.fanli.util.rocketmq;
import org.springframework.stereotype.Component;
import com.aliyun.openservices.ons.api.Message;
import com.aliyun.openservices.ons.api.transaction.LocalTransactionChecker;
import com.aliyun.openservices.ons.api.transaction.TransactionStatus;
@Component
public class RocketMQLocalTransactionChecker implements LocalTransactionChecker {
    public RocketMQLocalTransactionChecker() {
    }
    @Override
    public TransactionStatus check(Message msg) {
        // TODO Auto-generated method stub
        return null;
    }
}
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/RocketMQMessageListener.java
New file
@@ -0,0 +1,21 @@
package com.yeshi.fanli.util.rocketmq;
import org.springframework.stereotype.Component;
import com.aliyun.openservices.ons.api.Action;
import com.aliyun.openservices.ons.api.ConsumeContext;
import com.aliyun.openservices.ons.api.Message;
import com.aliyun.openservices.ons.api.MessageListener;
@Component
public class RocketMQMessageListener implements MessageListener {
    public RocketMQMessageListener() {
    }
    @Override
    public Action consume(Message message, ConsumeContext context) {
        return null;
    }
}
fanli/src/main/java/com/yeshi/fanli/vo/user/UserInfoVO.java
@@ -85,6 +85,8 @@
    
    // 剩余金币数量
    private int goldCoin;
    // 用户标识
    private  String mark;
    
    public String getRankId() {
@@ -350,5 +352,13 @@
    public void setGoldCoin(int goldCoin) {
        this.goldCoin = goldCoin;
    }
    public String getMark() {
        return mark;
    }
    public void setMark(String mark) {
        this.mark = mark;
    }
    
}
fanli/src/main/resource/rocket/consumer.xml
New file
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="msgListener" class="com.yeshi.fanli.util.rocketmq.RocketMQMessageListener"></bean> <!--Listener 配置 -->
    <!-- Group ID 订阅同一个 Topic,可以创建多个 ConsumerBean -->
    <bean id="consumer" class="com.aliyun.openservices.ons.api.bean.ConsumerBean"
        init-method="start" destroy-method="shutdown">
        <property name="properties"> <!--消费者配置信息 -->
            <props>
                <prop key="AccessKey">LTAI4FwmTxVCuzTaoZtDiV8z</prop>
                <prop key="SecretKey">ixWg90QbYFKP6ae5xpAo2P1qwIyll5</prop>
                <prop key="GROUP_ID">GID_DEMO</prop>
                <prop key="NAMESRV_ADDR">http://MQ_INST_1205444665315884_BbaMbxF4.mq-internet-access.mq-internet.aliyuncs.com:80
                </prop>
                <!--将消费者线程数固定为 50 个 <prop key="ConsumeThreadNums">50</prop> -->
            </props>
        </property>
        <property name="subscriptionTable">
            <map>
                <entry value-ref="msgListener">
                    <key>
                        <bean class="com.aliyun.openservices.ons.api.bean.Subscription">
                            <property name="topic" value="TopicTestMQ" />
                            <property name="expression" value="*" /><!--expression 即
                                Tag,可以设置成具体的 Tag,如 taga||tagb||tagc,也可设置成 *。 * 仅代表订阅所有 Tag,不支持通配 -->
                        </bean>
                    </key>
                </entry>
                <!--更多的订阅添加 entry 节点即可,如下所示 -->
                <entry value-ref="msgListener">
                    <key>
                        <bean class="com.aliyun.openservices.ons.api.bean.Subscription">
                            <property name="topic" value="TopicTestMQ-Other" /> <!--订阅另外一个 Topic -->
                            <property name="expression" value="taga||tagb" /> <!-- 订阅多个 Tag -->
                        </bean>
                    </key>
                </entry>
            </map>
        </property>
    </bean>
</beans>
fanli/src/main/resource/rocket/producer.xml
New file
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="producer" class="com.aliyun.openservices.ons.api.bean.ProducerBean"
        init-method="start" destroy-method="shutdown">
        <!-- Spring 接入方式支持 Java SDK 支持的所有配置项 -->
        <property name="properties"> <!--生产者配置信息 -->
            <props>
                <prop key="AccessKey">LTAI4FwmTxVCuzTaoZtDiV8z</prop>
                <prop key="SecretKey">ixWg90QbYFKP6ae5xpAo2P1qwIyll5</prop>
                <prop key="NAMESRV_ADDR">http://MQ_INST_1205444665315884_BbaMbxF4.mq-internet-access.mq-internet.aliyuncs.com:80
                </prop>
                <!--将消费者线程数固定为 50 个 <prop key="ConsumeThreadNums">50</prop> -->
            </props>
        </property>
    </bean>
</beans>
fanli/src/main/resource/rocket/transactionProducer.xml
New file
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- 事务消息生产 -->
    <bean id="localTransactionChecker" class="com.yeshi.fanli.util.rocketmq.RocketMQLocalTransactionChecker"></bean>
    <bean id="transactionProducer"
        class="com.aliyun.openservices.ons.api.bean.TransactionProducerBean"
        init-method="start" destroy-method="shutdown">
        <property name="properties"> <!--事务消息生产者配置信息 -->
            <props>
                <prop key="AccessKey">LTAI4FwmTxVCuzTaoZtDiV8z</prop>
                <prop key="SecretKey">ixWg90QbYFKP6ae5xpAo2P1qwIyll5</prop>
                <prop key="GROUP_ID">GID_DEMO</prop>
                <prop key="NAMESRV_ADDR">http://MQ_INST_1205444665315884_BbaMbxF4.mq-internet-access.mq-internet.aliyuncs.com:80
                </prop>
            </props>
        </property>
        <property name="localTransactionChecker" ref="localTransactionChecker"></property>
    </bean>
</beans>
fanli/src/main/resource/spring.xml
@@ -48,6 +48,10 @@
            </array>
        </property>
    </bean>
    <import resource="classpath:/rocket/consumer.xml"/>
    <import resource="classpath:/rocket/producer.xml"/>
    <import resource="classpath:/rocket/transactionProducer.xml"/>
    <!--异步定义推荐方式 <task:executor id="executor" pool-size="15" /> <task:scheduler 
        id="scheduler" pool-size="30" /> <task:annotation-driven executor="executor" 
pom.xml
@@ -1,566 +1,572 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.yeshi</groupId>
    <artifactId>FanLiMain</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>FanLiMain</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <org.hibernate.version>4.1.2</org.hibernate.version>
        <org.springframework-version>4.3.0.RELEASE</org.springframework-version>
        <mybatis.version>3.4.1</mybatis.version>
    </properties>
    <profiles>
        <profile>
            <id>default-tools.jar</id>
            <activation>
                <property>
                    <name>java.vendor</name>
                    <value>Sun Microsystems Inc.</value>
                </property>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>com.sun</groupId>
                    <artifactId>tools</artifactId>
                    <version>1.5.0</version>
                    <scope>system</scope>
                    <systemPath>${java.home}/lib/tools.jar</systemPath>
                </dependency>
            </dependencies>
        </profile>
    </profiles>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache-core</artifactId>
            <version>2.6.11</version>
        </dependency>
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache-web</artifactId>
            <version>2.0.4</version>
        </dependency>
        <!-- spring start -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version><!--$NO-MVN-MAN-VER$ -->
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${org.springframework-version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <!-- Spring AOP -->
        <!-- https://mvnrepository.com/artifact/aspectj/aspectjrt -->
        <dependency>
            <groupId>aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.5.3</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/aspectj/aspectjweaver -->
        <dependency>
            <groupId>aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.5.4</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/cglib/cglib-nodep -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib-nodep</artifactId>
            <version>3.2.4</version>
        </dependency>
        <!-- spring end -->
        <!-- freemarker开始 -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.23</version>
        </dependency>
        <!-- freemarker结束 -->
        <!-- JSP start -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>
        <!-- jsp end -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.14</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.21</version>
        </dependency>
        <!-- hibernate -->
        <!-- hibernate 4.3.0 start -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.1-api</artifactId>
            <version>1.0.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-ehcache</artifactId>
            <version>4.3.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.1.0.Alpha1</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate.common</groupId>
            <artifactId>hibernate-commons-annotations</artifactId>
            <version>4.0.4.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-c3p0</artifactId>
            <version>4.3.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-proxool</artifactId>
            <version>4.3.0.Final</version>
        </dependency>
        <!-- 为了让Hibernate使用代理模式,需要javassist -->
        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.18.1-GA</version>
        </dependency>
        <!-- hibernate 4.3.0 end -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.3.14</version>
        </dependency>
        <dependency>
            <groupId>antlr</groupId>
            <artifactId>antlr</artifactId>
            <version>2.7.7</version>
        </dependency>
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.1</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-pool</groupId>
            <artifactId>commons-pool</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>javax.transaction</groupId>
            <artifactId>jta</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging</artifactId>
            <version>3.1.3.GA</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.annotation</groupId>
            <artifactId>jboss-annotations-api_1.2_spec</artifactId>
            <version>1.0.0.Final</version>
        </dependency>
        <!-- 常用工具 -->
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.9.2</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.7</version>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.4.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.1</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.mail/mail -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.3.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.zxing/javase -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.3.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl -->
        <dependency>
            <groupId>net.sourceforge.jexcelapi</groupId>
            <artifactId>jxl</artifactId>
            <version>2.6.12</version>
        </dependency>
        <!-- druid连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.9</version>
        </dependency>
        <!-- mybatis核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <!-- mybatis/spring包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.3.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.github.jai-imageio/jai-imageio-core -->
        <dependency>
            <groupId>com.github.jai-imageio</groupId>
            <artifactId>jai-imageio-core</artifactId>
            <version>1.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.qcloud</groupId>
            <artifactId>cos_api</artifactId>
            <version>5.2.4</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.10</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.1.0</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis -->
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>1.0.2.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
        <!-- 腾讯云短信 -->
        <dependency>
            <groupId>com.github.qcloudsms</groupId>
            <artifactId>qcloudsms</artifactId>
            <version>1.0.2</version>
        </dependency>
        <!-- mongodb -->
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>2.13.0-rc0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb</artifactId>
            <version>1.7.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb-cross-store</artifactId>
            <version>1.7.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb-log4j</artifactId>
            <version>1.7.1.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->
        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest-core -->
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
            <version>1.1</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/jdom/jdom -->
        <dependency>
            <groupId>jdom</groupId>
            <artifactId>jdom</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.0.6</version> <!-- 注:如提示报错,先升级基础包版,无法解决可联系技术支持 -->
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
            <version>1.1.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>27.0.1-jre</version>
        </dependency>
        <!-- 图片压缩工具 -->
        <dependency>
            <groupId>net.coobird</groupId>
            <artifactId>thumbnailator</artifactId>
            <version>0.4.8</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>fanli</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <!-- 跳过单元测试 -->
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
    </build>
    <modules>
        <module>utils</module>
        <module>fanli</module>
    </modules>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.yeshi</groupId>
    <artifactId>FanLiMain</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>FanLiMain</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <org.hibernate.version>4.1.2</org.hibernate.version>
        <org.springframework-version>4.3.0.RELEASE</org.springframework-version>
        <mybatis.version>3.4.1</mybatis.version>
    </properties>
    <profiles>
        <profile>
            <id>default-tools.jar</id>
            <activation>
                <property>
                    <name>java.vendor</name>
                    <value>Sun Microsystems Inc.</value>
                </property>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>com.sun</groupId>
                    <artifactId>tools</artifactId>
                    <version>1.5.0</version>
                    <scope>system</scope>
                    <systemPath>${java.home}/lib/tools.jar</systemPath>
                </dependency>
            </dependencies>
        </profile>
    </profiles>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache-core</artifactId>
            <version>2.6.11</version>
        </dependency>
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache-web</artifactId>
            <version>2.0.4</version>
        </dependency>
        <!-- spring start -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version><!--$NO-MVN-MAN-VER$ -->
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${org.springframework-version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <!-- Spring AOP -->
        <!-- https://mvnrepository.com/artifact/aspectj/aspectjrt -->
        <dependency>
            <groupId>aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.5.3</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/aspectj/aspectjweaver -->
        <dependency>
            <groupId>aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.5.4</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/cglib/cglib-nodep -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib-nodep</artifactId>
            <version>3.2.4</version>
        </dependency>
        <!-- spring end -->
        <!-- freemarker开始 -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.23</version>
        </dependency>
        <!-- freemarker结束 -->
        <!-- JSP start -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>
        <!-- jsp end -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.14</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.21</version>
        </dependency>
        <!-- hibernate -->
        <!-- hibernate 4.3.0 start -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.1-api</artifactId>
            <version>1.0.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-ehcache</artifactId>
            <version>4.3.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.1.0.Alpha1</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate.common</groupId>
            <artifactId>hibernate-commons-annotations</artifactId>
            <version>4.0.4.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-c3p0</artifactId>
            <version>4.3.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-proxool</artifactId>
            <version>4.3.0.Final</version>
        </dependency>
        <!-- 为了让Hibernate使用代理模式,需要javassist -->
        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.18.1-GA</version>
        </dependency>
        <!-- hibernate 4.3.0 end -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.3.14</version>
        </dependency>
        <dependency>
            <groupId>antlr</groupId>
            <artifactId>antlr</artifactId>
            <version>2.7.7</version>
        </dependency>
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.1</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-pool</groupId>
            <artifactId>commons-pool</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>javax.transaction</groupId>
            <artifactId>jta</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging</artifactId>
            <version>3.1.3.GA</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.annotation</groupId>
            <artifactId>jboss-annotations-api_1.2_spec</artifactId>
            <version>1.0.0.Final</version>
        </dependency>
        <!-- 常用工具 -->
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.9.2</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.7</version>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.4.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.1</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.mail/mail -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.3.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.zxing/javase -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.3.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl -->
        <dependency>
            <groupId>net.sourceforge.jexcelapi</groupId>
            <artifactId>jxl</artifactId>
            <version>2.6.12</version>
        </dependency>
        <!-- druid连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.9</version>
        </dependency>
        <!-- mybatis核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <!-- mybatis/spring包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.3.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.github.jai-imageio/jai-imageio-core -->
        <dependency>
            <groupId>com.github.jai-imageio</groupId>
            <artifactId>jai-imageio-core</artifactId>
            <version>1.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.qcloud</groupId>
            <artifactId>cos_api</artifactId>
            <version>5.2.4</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.10</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.1.0</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis -->
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>1.0.2.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
        <!-- 腾讯云短信 -->
        <dependency>
            <groupId>com.github.qcloudsms</groupId>
            <artifactId>qcloudsms</artifactId>
            <version>1.0.2</version>
        </dependency>
        <!-- mongodb -->
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>2.13.0-rc0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb</artifactId>
            <version>1.7.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb-cross-store</artifactId>
            <version>1.7.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb-log4j</artifactId>
            <version>1.7.1.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->
        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest-core -->
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
            <version>1.1</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/jdom/jdom -->
        <dependency>
            <groupId>jdom</groupId>
            <artifactId>jdom</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.0.6</version> <!-- 注:如提示报错,先升级基础包版,无法解决可联系技术支持 -->
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
            <version>1.1.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>27.0.1-jre</version>
        </dependency>
        <!-- 图片压缩工具 -->
        <dependency>
            <groupId>net.coobird</groupId>
            <artifactId>thumbnailator</artifactId>
            <version>0.4.8</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun.openservices</groupId>
            <artifactId>ons-client</artifactId>
            <version>1.8.0.Final</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>fanli</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <!-- 跳过单元测试 -->
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
    </build>
    <modules>
        <module>utils</module>
        <module>fanli</module>
    </modules>
</project>