admin
2018-12-25 4cb15e222cd7d099d533ccbeb7f9a8cd99bf180c
替换原来老的资金详情
13个文件已修改
1个文件已添加
431 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5StrategyPictureController.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/hongbao/HongBaoMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/money/UserMoneyDetailMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/money/UserMoneyDetail.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/AccountDetailsMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoMapper.xml 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/money/UserMoneyDetailMapper.xml 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/config/ConfigServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserMoneyDetailServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserMoneyDetailService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/factory/AccountDetailsFactory.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/vo/money/UserMoneyStatisticVO.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java
@@ -16,9 +16,6 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.beanutils.PropertyUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -57,6 +54,7 @@
import com.yeshi.fanli.entity.common.Config;
import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.entity.system.System;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
@@ -77,7 +75,6 @@
import com.yeshi.fanli.service.inter.order.LostOrderService;
import com.yeshi.fanli.service.inter.order.OrderItemServcie;
import com.yeshi.fanli.service.inter.order.OrderService;
import com.yeshi.fanli.service.inter.user.AccountDetailsService;
import com.yeshi.fanli.service.inter.user.AccountMessageService;
import com.yeshi.fanli.service.inter.user.BindingAccountService;
import com.yeshi.fanli.service.inter.user.ExtractRecordService;
@@ -88,6 +85,7 @@
import com.yeshi.fanli.service.inter.user.UserAccountService;
import com.yeshi.fanli.service.inter.user.UserActiveLogService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
import com.yeshi.fanli.service.inter.user.WxDownService;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
@@ -100,9 +98,13 @@
import com.yeshi.fanli.util.Utils;
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.util.email.MailSenderUtil;
import com.yeshi.fanli.util.factory.AccountDetailsFactory;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.util.wx.WXLoginUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("api/v1/customer")
@@ -150,8 +152,6 @@
    @Resource
    private OrderItemServcie orderItemServcie;
    @Resource
    private AccountDetailsService accountDetailsService;
    @Resource
    private AccountMessageService accountMessageService;
@@ -179,6 +179,9 @@
    @Resource
    private AdminUserService adminUserService;
    @Resource
    private UserMoneyDetailService userMoneyDetailService;
    private static final String PASSWORD_MAX_ERROR = "password_max_error";
    private static final String EXTRACT_MIN_MONEY = "extract_min_money";
@@ -1519,10 +1522,8 @@
        List<TaoBaoGoodsBriefExtra> list = new ArrayList<TaoBaoGoodsBriefExtra>();
        
        long count = collectionGoodsV2Service.getCollectionGoodsCount(uid);
        JSONObject data = new JSONObject();
        
        List<TaoBaoGoodsBrief> listTaoKeGoods = new ArrayList<TaoBaoGoodsBrief>();
        if (collectionGoodsList != null && collectionGoodsList.size() > 0) {
@@ -1640,8 +1641,11 @@
    @RequestMapping("findAccountDetailsList")
    public void findAccountDetailsList(AcceptData acceptData, long uid, int page, PrintWriter out) {
        List<AccountDetails> list = accountDetailsService.findAccountDetailsList(uid, page);
        int count = accountDetailsService.getCount(uid);
        List<UserMoneyDetail> detailList = userMoneyDetailService.listByUidWithState(uid, page, Constant.PAGE_SIZE);
        List<AccountDetails> list = new ArrayList<>();
        for (UserMoneyDetail detail : detailList)
            list.add(AccountDetailsFactory.create(detail));
        long count = userMoneyDetailService.countByUidWithState(uid);
        JSONObject data = new JSONObject();
        data.put("list", GsonUtil.toJsonExpose(list));
        data.put("count", count);
@@ -1649,9 +1653,21 @@
    }
    @RequestMapping("findAccountDetailsListV2")
    public void findAccountDetailsListNew(AcceptData acceptData, long uid, int page, PrintWriter out) {
        List<AccountDetails> list = accountDetailsService.findAccountDetailsListWithState(uid, page);
        long count = accountDetailsService.getCountWithState(uid);
    public void findAccountDetailsListNew(AcceptData acceptData, Long uid, int page, PrintWriter out) {
        if (uid == null) {
            out.print(JsonUtil.loadFalseResult(1, "UID为空"));
            return;
        }
        List<UserMoneyDetail> detailList = userMoneyDetailService.listByUidWithState(uid, page, Constant.PAGE_SIZE);
        List<AccountDetails> list = new ArrayList<>();
        for (UserMoneyDetail detail : detailList)
            list.add(AccountDetailsFactory.create(detail));
        long count = userMoneyDetailService.countByUidWithState(uid);
        JSONObject data = new JSONObject();
        JSONArray array = new JSONArray();
        for (AccountDetails ad : list) {
fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java
@@ -3,6 +3,7 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@@ -23,11 +24,14 @@
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.vo.money.UserMoneyDetailHistoryVO;
import com.yeshi.fanli.vo.money.UserMoneyStatisticVO;
import net.sf.json.JSONObject;
@@ -82,8 +86,7 @@
        List<UserMoneyDetailHistoryVO> list = userMoneyDetailService.listUserMoneyDetailForClient(uid, index, date);
        long count = userMoneyDetailService.countUserMoneyDetailForClient(uid, index, date);
        GsonBuilder gsonBuilder = JsonUtil.getConvertBigDecimalToStringBuilder(new GsonBuilder())
                .excludeFieldsWithoutExposeAnnotation();
        GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
        gsonBuilder.registerTypeAdapter(UserMoneyDetailTypeEnum.class, new TypeAdapter<UserMoneyDetailTypeEnum>() {
            @Override
            public UserMoneyDetailTypeEnum read(JsonReader arg0) throws IOException {
@@ -107,6 +110,15 @@
                    return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy.MM.dd HH:mm"));
                }
            }
        }).registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
            @Override
            public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
                if (value == null) {
                    return new JsonPrimitive("");
                } else {
                    return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value).toString());
                }
            }
        });
        Gson gson = gsonBuilder.create();
@@ -117,4 +129,24 @@
        out.print(JsonUtil.loadTrueResult(data));
    }
    @RequestMapping(value = "getUserMoneyStatistic")
    public void getUserMoneyStatistic(AcceptData acceptData, Long uid, PrintWriter out) {
        if (uid == null || uid == 0) {
            out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
            return;
        }
        UserMoneyStatisticVO vo = new UserMoneyStatisticVO();
        vo.setBalanceMoney(new BigDecimal("0.02"));
        vo.setLastMonthExtractMoney(new BigDecimal("0.03"));
        vo.setLastMonthRecievedMoney(new BigDecimal("0.04"));
        vo.setLatestThreeMonthRecievedMoney(new BigDecimal("0.05"));
        vo.setMonthExtractMoney(new BigDecimal("0.06"));
        vo.setMonthRecievedMoney(new BigDecimal("0.07"));
        vo.setTotalInviteMoney(new BigDecimal("0.08"));
        vo.setTotalRecievedMoney(new BigDecimal("0.09"));
        vo.setTotalShareMoney(new BigDecimal("0.10"));
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
        out.print(JsonUtil.loadTrueResult(gson.toJson(vo)));
    }
}
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5StrategyPictureController.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.controller.h5;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
@@ -11,7 +12,9 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.xcx.StrategyPicture;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.user.StrategyPictureService;
import com.yeshi.fanli.util.StringUtil;
import org.yeshi.utils.JsonUtil;
@@ -24,6 +27,9 @@
    @Resource
    private StrategyPictureService strategtPictureService;
    @Resource
    private ConfigService configService;
    /**
     * 
@@ -56,12 +62,23 @@
    }
    @RequestMapping(value = "getStrategyPictureList")
    public void strategyPicture(String callback, PrintWriter out) {
    public void strategyPicture(String callback, AcceptData acceptData, PrintWriter out) {
        List<StrategyPicture> list = strategtPictureService.getStrategyPictureListCache();
        Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
        if (StringUtil.isNullOrEmpty(callback))
            out.print(JsonUtil.loadTrueResult(gson.toJson(list)));
        else
        if (StringUtil.isNullOrEmpty(callback)) {
            List<StrategyPicture> newList = new ArrayList<StrategyPicture>();
            newList.addAll(list);
            if (acceptData != null && "ios".equalsIgnoreCase(acceptData.getPlatform())
                    && !StringUtil.isNullOrEmpty(acceptData.getVersion())
                    && configService.iosOnLining(Integer.parseInt(acceptData.getVersion())))
                for (int i = 0; i < newList.size(); i++) {
                    if (newList.get(i).getTitle().contains("赚钱")) {
                        newList.remove(i);
                        i--;
                    }
                }
            out.print(JsonUtil.loadTrueResult(gson.toJson(newList)));
        } else
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(gson.toJson(list))));
    }
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/hongbao/HongBaoMapper.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.dao.mybatis.hongbao;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.annotations.Param;
@@ -251,4 +252,16 @@
    List<HongBao> listShareAndInviteMoney(@Param("start") long start, @Param("count") int count,
            @Param("date") String date);
    /**
     * 统计用户红包数量
     * @param uid
     * @param type
     * @param state
     * @param minTime
     * @param maxTime
     * @return
     */
    long selectCountByTypeAndStateAndCreateTime(@Param("uid") Long uid, @Param("type") List<Integer> type,
            @Param("state") List<Integer> state, @Param("minTime") Date minTime, @Param("maxTime") Date maxTime);
}
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/money/UserMoneyDetailMapper.java
@@ -36,7 +36,8 @@
     * @param date
     * @return
     */
    List<UserMoneyDetail> selectByMaxCreateTime(@Param("uid") Long uid, @Param("date") Date date,@Param("count") int count);
    List<UserMoneyDetail> selectByMaxCreateTime(@Param("uid") Long uid, @Param("date") Date date,
            @Param("count") int count);
    /**
     * 按最大的创建时间和用户ID检索数量
@@ -65,4 +66,16 @@
     */
    List<UserMonthMoneyVO> selectMonthMoneyByUid(@Param("uid") Long uid, @Param("dateFormat") List<String> dateFormat);
    /**
     * 根据用户ID获取资金明细(老版)
     * @param uid
     * @param start
     * @param count
     * @return
     */
    List<UserMoneyDetail> selectByUidWithState(@Param("uid")Long uid,@Param("start") long start, @Param("count")int count);
    Long selectCountByUidWithState(@Param("uid")Long uid);
}
fanli/src/main/java/com/yeshi/fanli/entity/money/UserMoneyDetail.java
@@ -79,6 +79,16 @@
    private Date createTime;
    @Column(name = "umd_updatetime")
    private Date updateTime;
    private Integer state;//老版明细适用该字段
    public Integer getState() {
        return state;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    public Long getId() {
        return id;
fanli/src/main/java/com/yeshi/fanli/mapping/AccountDetailsMapper.xml
@@ -55,6 +55,8 @@
        )) a ORDER BY a.createTime DESC limit #{start},#{count}
    </select>
    <select id="selectCountByUidWithState" resultType="java.lang.Long"
        parameterType="java.lang.Long">
@@ -78,8 +80,6 @@
        d.type=1
        )) a ORDER BY
        a.createTime DESC
    </select>
fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoMapper.xml
@@ -238,7 +238,8 @@
        parameterType="java.lang.Long">
        SELECT
        count(*) FROM `yeshi_ec_hongbao` h
        WHERE h.`uid`=#{0} AND (h.`type`=20 OR h.`type`=21 OR h.`type`=22 OR
        WHERE
        h.`uid`=#{0} AND (h.`type`=20 OR h.`type`=21 OR h.`type`=22 OR
        h.`type`=6 OR h.`type`=7)
    </select>
@@ -443,7 +444,8 @@
    <select id="getCountByUidAndState" resultType="java.lang.Integer">
        SELECT
        COALESCE(count(id),0) FROM `yeshi_ec_hongbao`
        WHERE uid =#{uid} and state=#{state}
        WHERE uid =#{uid} and
        state=#{state}
    </select>
    <select id="getCountByUidOrder" resultType="java.lang.Long">
@@ -539,13 +541,37 @@
        SELECT IFNULL(SUM(h.`money`),0) as ShareAndInviteMoney,
        <include refid="Base_Column_List" />
        FROM `yeshi_ec_hongbao` h
        WHERE DATE_FORMAT(FROM_UNIXTIME(h.`createtime`/1000), '%Y-%m-%d' )= #{date}
        WHERE
        DATE_FORMAT(FROM_UNIXTIME(h.`createtime`/1000), '%Y-%m-%d' )= #{date}
        <![CDATA[AND h.state <>4]]>
        AND ( h.`type` =5 OR h.`type` =6 OR h.`type` =7 OR h.`type` =20 OR
        h.`type` =21 OR h.`type` =22 )
        GROUP BY h.`uid`
        ORDER BY SUM(h.`money`) DESC
        ORDER BY SUM(h.`money`)
        DESC
        LIMIT ${start},${count}
    </select>
    <select id="selectCountByTypeAndStateAndCreateTime" resultType="java.lang.Long">
        SELECT COUNT(h.`id`) FROM yeshi_ec_hongbao h WHERE uid=#{uid}
        <foreach  collection="type" item="itemType" open="and (" separator=" or "
            close=")">
            h.`type`=#{itemType}
        </foreach>
        <foreach collection="state" item="itemState" open="and (" separator=" or "
            close=")">
            h.`state`=#{itemState}
        </foreach>
        AND FROM_UNIXTIME( h.`createtime`/1000)>=#{minTime} AND FROM_UNIXTIME(
        h.`createtime`/1000)
        <![CDATA[
        <
        ]]>
        #{maxTime};
    </select>
</mapper>
fanli/src/main/java/com/yeshi/fanli/mapping/money/UserMoneyDetailMapper.xml
@@ -17,6 +17,8 @@
        <result column="umd_beizhu" property="beiZhu" jdbcType="VARCHAR" />
        <result column="umd_createtime" property="createTime" jdbcType="TIMESTAMP" />
        <result column="umd_updatetime" property="updateTime" jdbcType="TIMESTAMP" />
        <!-- 老版明细适用该字段  -->
        <result column="state" property="state" jdbcType="INTEGER" />
        <association property="userInfo" column="umd_uid"
            javaType="com.yeshi.fanli.entity.bus.user.UserInfo">
            <id column="umd_uid" property="id" jdbcType="BIGINT" />
@@ -91,19 +93,24 @@
    </select>
    <select id="selectMonthMoneyByUid" resultMap="UserMonthMoneyMap">
        <foreach collection="dateFormat" index="index" item="item"  separator="UNION ALL"  >
        <foreach collection="dateFormat" index="index" item="item"
            separator="UNION ALL">
            <trim prefix="(" suffix=")" >
                SELECT
                a.time as dateFormate , if(a.money is null,0,a.money) as income ,if(b.money is null,0,b.money) as expend
                a.time as dateFormate , if(a.money is null,0,a.money) as
                income ,if(b.money is null,0,b.money) as expend
                FROM
                (
                SELECT DATE_FORMAT(
                SELECT
                DATE_FORMAT(
                d.`umd_createtime`,'%Y-%m') AS
                `time`,SUM(d.`umd_money`) AS money
                `time`,SUM(d.`umd_money`)
                AS money
                FROM
                `yeshi_ec_user_money_detail`
                d
                WHERE d.`umd_uid`=#{uid} AND
                WHERE d.`umd_uid`=#{uid}
                AND
                d.`umd_money`>=0 AND DATE_FORMAT(
                d.`umd_createtime`,'%Y-%m')=#{item} GROUP BY DATE_FORMAT(
                d.`umd_createtime`,'%Y-%m')
@@ -127,6 +134,71 @@
    </select>
    <select id="selectByUidWithState" resultMap="BaseResultMap">
        SELECT a.* FROM
        ((SELECT d.*,-1 AS state FROM
        `yeshi_ec_user_money_detail` d
        WHERE
        d.`umd_uid`=#{uid} AND (d.`umd_type`!='extract' AND
        d.`umd_type`!='extractReject')
        )
        UNION ALL(
        SELECT d.*,-1 AS
        state
        FROM
        `yeshi_ec_user_money_detail` d LEFT JOIN
        `yeshi_ec_extract` e
        ON
        e.`id`=d.umd_source_identify_id WHERE d.`umd_uid`=#{uid} AND
        d.umd_type='extractReject'
        )
        UNION ALL(
        SELECT
        d.*,e.state FROM
        `yeshi_ec_user_money_detail` d LEFT JOIN
        `yeshi_ec_extract` e ON
        e.`id`=d.`umd_source_identify_id` WHERE d.`umd_uid`=#{uid} AND
        d.umd_type='extract'
        )) a ORDER BY a.umd_createtime DESC LIMIT
        #{start},#{count}
    </select>
    <select id="selectCountByUidWithState" resultType="java.lang.Long">
        SELECT
        count(*) FROM
        ((SELECT d.*,-1 AS state FROM
        `yeshi_ec_user_money_detail` d
        WHERE
        d.`umd_uid`=#{uid} AND
        (d.`umd_type`!='extract' AND d.`umd_type`!='extractReject')
        )
        UNION ALL(
        SELECT d.*,-1 AS
        state
        FROM `yeshi_ec_user_money_detail` d LEFT JOIN
        `yeshi_ec_extract` e
        ON
        e.`id`=d.umd_source_identify_id WHERE
        d.`umd_uid`=#{uid} AND
        d.umd_type='extractReject'
        )
        UNION ALL(
        SELECT
        d.*,e.state FROM `yeshi_ec_user_money_detail` d LEFT JOIN
        `yeshi_ec_extract` e ON e.`id`=d.`umd_source_identify_id` WHERE
        d.`umd_uid`=#{uid} AND
        d.umd_type='extract'
        )) a
    </select>
fanli/src/main/java/com/yeshi/fanli/service/impl/config/ConfigServiceImpl.java
@@ -70,7 +70,6 @@
        }
    }
    @CacheEvict(value = "config", allEntries = true)
    @Transactional
    public void update(List<Config> list) {
@@ -142,6 +141,8 @@
    @Override
    public String getH5Host() {
        String value = get("h5_url");
        String[] sts = value.split(",");
        value = sts[(int) (sts.length * Math.random())];
        return value.trim();
    }
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserMoneyDetailServiceImpl.java
@@ -161,4 +161,14 @@
        return monthCount + detailCount;
    }
    @Override
    public List<UserMoneyDetail> listByUidWithState(Long uid, int page, int pageSize) {
        return userMoneyDetailMapper.selectByUidWithState(uid, (page - 1) * pageSize, pageSize);
    }
    @Override
    public long countByUidWithState(Long uid) {
        return userMoneyDetailMapper.selectCountByUidWithState(uid);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserMoneyDetailService.java
@@ -3,6 +3,7 @@
import java.util.Date;
import java.util.List;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.vo.money.UserMoneyDetailHistoryVO;
/**
@@ -33,4 +34,21 @@
     */
    public long countUserMoneyDetailForClient(Long uid, Long userMoneyDetailId, Date maxTime);
    /**
     * 资金明细详情列表(老版本)
     * @param uid
     * @param page
     * @param pageSize
     * @return
     */
    public List<UserMoneyDetail> listByUidWithState(Long uid, int page, int pageSize);
    /**
     * 资金明细详情总数(老版本)
     * @param uid
     * @return
     */
    public long countByUidWithState(Long uid);
}
fanli/src/main/java/com/yeshi/fanli/util/factory/AccountDetailsFactory.java
@@ -1,5 +1,6 @@
package com.yeshi.fanli.util.factory;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
@@ -8,7 +9,10 @@
import com.yeshi.fanli.entity.bus.user.HongBao;
import com.yeshi.fanli.entity.bus.user.OrderItem;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.TimeUtil;
public class AccountDetailsFactory {
@@ -56,6 +60,7 @@
     */
    public static final int VALID_ALIPAY_ACCOUNT=10;
    
    public static final int XINREN_DEDUCT = 11;
    
    static{
        map.put(TIXIAN, "提现");
@@ -68,9 +73,11 @@
        map.put(SHARE_GOODS, "提成收入");
        map.put(SHARE_GOODS_DRAWBACK, "售后订单扣款");
        map.put(VALID_ALIPAY_ACCOUNT, "支付宝账号验证打款");
        map.put(XINREN_DEDUCT, "新人红包扣除");
    }
    
    public static AccountDetails create(String money,int type,OrderItem orderItem,Extract extract,UserInfo userInfo){
    public static AccountDetails create(String money, int type, OrderItem orderItem, Extract extract,
            UserInfo userInfo) {
        AccountDetails ad = new AccountDetails();
        ad.setCreateTime(TimeUtil.getWholeTime(System.currentTimeMillis()));
        ad.setExtract(extract);
@@ -95,5 +102,48 @@
        return null;
    }
    
    public static AccountDetails create(UserMoneyDetail userMoneyDetail) {
        AccountDetails accountDetails = new AccountDetails(userMoneyDetail.getId());
        accountDetails.setCreateTime(
                TimeUtil.getGernalTime(userMoneyDetail.getCreateTime().getTime(), "yyyy-MM-dd HH:mm:ss"));
        if (userMoneyDetail.getMoney().compareTo(new BigDecimal("0")) >= 0)
            accountDetails.setMoney("+" + MoneyBigDecimalUtil.getWithNoZera(userMoneyDetail.getMoney()));
        else
            accountDetails.setMoney( MoneyBigDecimalUtil.getWithNoZera(userMoneyDetail.getMoney()) + "");
        accountDetails.setState(userMoneyDetail.getState());
        String typeName = userMoneyDetail.getType().name();
        if (UserMoneyDetailTypeEnum.extract.name().equalsIgnoreCase(typeName))
            accountDetails.setType(TIXIAN);
        else if (UserMoneyDetailTypeEnum.extractReject.name().equalsIgnoreCase(typeName))
            accountDetails.setType(HUIKUAN);
        else if (UserMoneyDetailTypeEnum.extractVerify.name().equalsIgnoreCase(typeName))
            accountDetails.setType(VALID_ALIPAY_ACCOUNT);
        else if (UserMoneyDetailTypeEnum.fanli.name().equalsIgnoreCase(typeName))
            accountDetails.setType(AccountDetailsFactory.FANLI);
        else if (UserMoneyDetailTypeEnum.fanliWeiQuan.name().equalsIgnoreCase(typeName))
            accountDetails.setType(AccountDetailsFactory.TUIKUAN);
        else if (UserMoneyDetailTypeEnum.hongbao.name().equalsIgnoreCase(typeName))
            accountDetails.setType(AccountDetailsFactory.XINREN);
        else if (UserMoneyDetailTypeEnum.hongbaoDeduct.name().equalsIgnoreCase(typeName))
            accountDetails.setType(AccountDetailsFactory.XINREN_DEDUCT);
        else if (UserMoneyDetailTypeEnum.invite.name().equalsIgnoreCase(typeName))
            accountDetails.setType(AccountDetailsFactory.SHARE_GOODS);
        else if (UserMoneyDetailTypeEnum.inviteAndShare.name().equalsIgnoreCase(typeName))
            accountDetails.setType(AccountDetailsFactory.SHARE_GOODS);
        else if (UserMoneyDetailTypeEnum.inviteWeiQuan.name().equalsIgnoreCase(typeName))
            accountDetails.setType(AccountDetailsFactory.TUIKUAN);
        else if (UserMoneyDetailTypeEnum.share.name().equalsIgnoreCase(typeName))
            accountDetails.setType(AccountDetailsFactory.SHARE_GOODS);
        else if (UserMoneyDetailTypeEnum.shareWeiQuan.name().equalsIgnoreCase(typeName))
            accountDetails.setType(AccountDetailsFactory.TUIKUAN);
        else if (UserMoneyDetailTypeEnum.weiQuan.name().equalsIgnoreCase(typeName))
            accountDetails.setType(AccountDetailsFactory.TUIKUAN);
        else
            accountDetails.setType(AccountDetailsFactory.QITA);
        accountDetails.setTitle(map.get(accountDetails.getType()));
        accountDetails.setUserInfo(userMoneyDetail.getUserInfo());
        return accountDetails;
    }
    
}
fanli/src/main/java/com/yeshi/fanli/vo/money/UserMoneyStatisticVO.java
New file
@@ -0,0 +1,87 @@
package com.yeshi.fanli.vo.money;
import java.math.BigDecimal;
public class UserMoneyStatisticVO {
    private BigDecimal balanceMoney;// 账户余额
    private BigDecimal monthRecievedMoney;// 本月到账
    private BigDecimal monthExtractMoney;// 本月提现
    private BigDecimal lastMonthRecievedMoney;// 上月到账
    private BigDecimal lastMonthExtractMoney;// 上月提现
    private BigDecimal latestThreeMonthRecievedMoney;// 近三月到账
    private BigDecimal totalRecievedMoney;// 累计到账
    private BigDecimal totalShareMoney;// 累计分享奖金
    private BigDecimal totalInviteMoney;// 累计邀请奖金
    public BigDecimal getBalanceMoney() {
        return balanceMoney;
    }
    public void setBalanceMoney(BigDecimal balanceMoney) {
        this.balanceMoney = balanceMoney;
    }
    public BigDecimal getMonthRecievedMoney() {
        return monthRecievedMoney;
    }
    public void setMonthRecievedMoney(BigDecimal monthRecievedMoney) {
        this.monthRecievedMoney = monthRecievedMoney;
    }
    public BigDecimal getMonthExtractMoney() {
        return monthExtractMoney;
    }
    public void setMonthExtractMoney(BigDecimal monthExtractMoney) {
        this.monthExtractMoney = monthExtractMoney;
    }
    public BigDecimal getLastMonthRecievedMoney() {
        return lastMonthRecievedMoney;
    }
    public void setLastMonthRecievedMoney(BigDecimal lastMonthRecievedMoney) {
        this.lastMonthRecievedMoney = lastMonthRecievedMoney;
    }
    public BigDecimal getLastMonthExtractMoney() {
        return lastMonthExtractMoney;
    }
    public void setLastMonthExtractMoney(BigDecimal lastMonthExtractMoney) {
        this.lastMonthExtractMoney = lastMonthExtractMoney;
    }
    public BigDecimal getLatestThreeMonthRecievedMoney() {
        return latestThreeMonthRecievedMoney;
    }
    public void setLatestThreeMonthRecievedMoney(BigDecimal latestThreeMonthRecievedMoney) {
        this.latestThreeMonthRecievedMoney = latestThreeMonthRecievedMoney;
    }
    public BigDecimal getTotalRecievedMoney() {
        return totalRecievedMoney;
    }
    public void setTotalRecievedMoney(BigDecimal totalRecievedMoney) {
        this.totalRecievedMoney = totalRecievedMoney;
    }
    public BigDecimal getTotalShareMoney() {
        return totalShareMoney;
    }
    public void setTotalShareMoney(BigDecimal totalShareMoney) {
        this.totalShareMoney = totalShareMoney;
    }
    public BigDecimal getTotalInviteMoney() {
        return totalInviteMoney;
    }
    public void setTotalInviteMoney(BigDecimal totalInviteMoney) {
        this.totalInviteMoney = totalInviteMoney;
    }
}