From 4cb15e222cd7d099d533ccbeb7f9a8cd99bf180c Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 十二月 2018 16:35:18 +0800 Subject: [PATCH] 替换原来老的资金详情 --- fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java | 36 +++ fanli/src/main/java/com/yeshi/fanli/entity/money/UserMoneyDetail.java | 10 + fanli/src/main/java/com/yeshi/fanli/mapping/AccountDetailsMapper.xml | 4 fanli/src/main/java/com/yeshi/fanli/service/impl/config/ConfigServiceImpl.java | 45 ++-- fanli/src/main/java/com/yeshi/fanli/util/factory/AccountDetailsFactory.java | 108 +++++++-- fanli/src/main/java/com/yeshi/fanli/controller/h5/H5StrategyPictureController.java | 25 ++ fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoMapper.xml | 38 +++ fanli/src/main/java/com/yeshi/fanli/dao/mybatis/hongbao/HongBaoMapper.java | 13 + fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java | 70 ++++-- fanli/src/main/java/com/yeshi/fanli/mapping/money/UserMoneyDetailMapper.xml | 84 +++++++ fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserMoneyDetailService.java | 18 + fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserMoneyDetailServiceImpl.java | 10 + fanli/src/main/java/com/yeshi/fanli/vo/money/UserMoneyStatisticVO.java | 87 ++++++++ fanli/src/main/java/com/yeshi/fanli/dao/mybatis/money/UserMoneyDetailMapper.java | 15 + 14 files changed, 464 insertions(+), 99 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java index 0935fbe..5d17922 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java +++ b/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"; @@ -1518,17 +1521,15 @@ Constant.PAGE_SIZE); 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) { - + BigDecimal proportion = hongBaoManageService.getFanLiRate(); - + List<Long> listGid = new ArrayList<Long>(); for (CollectionGoodsV2 collectionGoodsV2 : collectionGoodsList) { CommonGoods commonGoods = collectionGoodsV2.getCommonGoods(); @@ -1537,7 +1538,7 @@ } listGid.add(commonGoods.getGoodsId()); } - + try { // API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭 listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid); @@ -1548,17 +1549,17 @@ } catch (Exception e) { e.printStackTrace(); } - + for (CollectionGoodsV2 collectionGoodsV2 : collectionGoodsList) { CommonGoods commonGoods = collectionGoodsV2.getCommonGoods(); if (commonGoods == null) { continue; } - - if (listTaoKeGoods != null && listTaoKeGoods.size() > 0 ) { - int state = 1; // 榛樿鍋滃敭 + + if (listTaoKeGoods != null && listTaoKeGoods.size() > 0) { + int state = 1; // 榛樿鍋滃敭 Long goodsId = commonGoods.getGoodsId(); - for (TaoBaoGoodsBrief taoKeGoods: listTaoKeGoods) { + for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) { Long auctionId = taoKeGoods.getAuctionId(); if (goodsId == auctionId || goodsId.equals(auctionId)) { state = 0; // 鍦ㄥ敭 @@ -1567,18 +1568,18 @@ } commonGoods.setState(state); } - + TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods); goodsBrief.setSalesCount(TaoBaoUtil.getSaleCount(goodsBrief.getBiz30day())); TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion.toString(), ""); taoBaoGoodsBriefExtra.setCreatetime(collectionGoodsV2.getCreateTime()); - + list.add(taoBaoGoodsBriefExtra); } - + } - + GsonBuilder builder = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() { @Override public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { @@ -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) { diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java index 14b3d61..6f42de3 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java +++ b/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))); + } + } diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5StrategyPictureController.java b/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5StrategyPictureController.java index 927aa11..3109545 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5StrategyPictureController.java +++ b/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)))); } diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/hongbao/HongBaoMapper.java b/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/hongbao/HongBaoMapper.java index 8179659..0b7ce24 100644 --- a/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/hongbao/HongBaoMapper.java +++ b/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); + } \ No newline at end of file diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/money/UserMoneyDetailMapper.java b/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/money/UserMoneyDetailMapper.java index 4e8a4c5..0ba91ce 100644 --- a/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/money/UserMoneyDetailMapper.java +++ b/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); /** * 鎸夋渶澶х殑鍒涘缓鏃堕棿鍜岀敤鎴稩D妫�绱㈡暟閲� @@ -64,5 +65,17 @@ * @return */ 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); } \ No newline at end of file diff --git a/fanli/src/main/java/com/yeshi/fanli/entity/money/UserMoneyDetail.java b/fanli/src/main/java/com/yeshi/fanli/entity/money/UserMoneyDetail.java index 67186b5..1e5d45c 100644 --- a/fanli/src/main/java/com/yeshi/fanli/entity/money/UserMoneyDetail.java +++ b/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; diff --git a/fanli/src/main/java/com/yeshi/fanli/mapping/AccountDetailsMapper.xml b/fanli/src/main/java/com/yeshi/fanli/mapping/AccountDetailsMapper.xml index 5be1751..2248bcf 100644 --- a/fanli/src/main/java/com/yeshi/fanli/mapping/AccountDetailsMapper.xml +++ b/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> diff --git a/fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoMapper.xml b/fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoMapper.xml index d3b8e96..9e22618 100644 --- a/fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoMapper.xml +++ b/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> @@ -438,12 +439,13 @@ COALESCE(count(id),0) FROM `yeshi_ec_hongbao` WHERE uid =#{uid} </select> - - + + <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> diff --git a/fanli/src/main/java/com/yeshi/fanli/mapping/money/UserMoneyDetailMapper.xml b/fanli/src/main/java/com/yeshi/fanli/mapping/money/UserMoneyDetailMapper.xml index 07aaa6c..d47d404 100644 --- a/fanli/src/main/java/com/yeshi/fanli/mapping/money/UserMoneyDetailMapper.xml +++ b/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" > - <trim prefix="(" suffix=")" > + <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> + + + + + + diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/config/ConfigServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/config/ConfigServiceImpl.java index 47776f8..fc00d36 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/config/ConfigServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/config/ConfigServiceImpl.java @@ -35,42 +35,41 @@ @Override public List<Config> listObjects(String key, int page) { - int start = (page-1) * Constant.PAGE_SIZE; - StringBuffer hqlBuf=new StringBuffer("from Config pr where 1=1 "); - - if(key !=null && !"".equals(key.trim())){ + int start = (page - 1) * Constant.PAGE_SIZE; + StringBuffer hqlBuf = new StringBuffer("from Config pr where 1=1 "); + + if (key != null && !"".equals(key.trim())) { hqlBuf.append(" and (pr.name like ? )"); } - + hqlBuf.append(" order by pr.id desc "); String hql = hqlBuf.toString(); - if(hql.contains("pr.name")){ - return configDao.list(hqlBuf.toString(), start, Constant.PAGE_SIZE, new Serializable[]{"%"+key+"%"}); + if (hql.contains("pr.name")) { + return configDao.list(hqlBuf.toString(), start, Constant.PAGE_SIZE, new Serializable[] { "%" + key + "%" }); } else { - return configDao.list(hqlBuf.toString(), start, Constant.PAGE_SIZE, new Serializable[]{}); + return configDao.list(hqlBuf.toString(), start, Constant.PAGE_SIZE, new Serializable[] {}); } - + } - + @Override public int getCount(String key, int page) { - - StringBuffer hqlBuf=new StringBuffer("select count(*) from Config pr where 1=1 "); - - if(key !=null && !"".equals(key.trim())){ + + StringBuffer hqlBuf = new StringBuffer("select count(*) from Config pr where 1=1 "); + + if (key != null && !"".equals(key.trim())) { hqlBuf.append(" and (pr.name like ? )"); } - + String hql = hqlBuf.toString(); - - if(hql.contains("pr.name")){ - return (int) configDao.getCount(hqlBuf.toString(),new Serializable[]{"%"+key+"%"}); + + if (hql.contains("pr.name")) { + return (int) configDao.getCount(hqlBuf.toString(), new Serializable[] { "%" + key + "%" }); } else { - return (int) configDao.getCount(hqlBuf.toString(), new Serializable[]{}); + return (int) configDao.getCount(hqlBuf.toString(), new Serializable[] {}); } } - @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(); } @@ -186,10 +187,10 @@ String value = get("home_weex_url"); return value; } - + @Override public Config getConfig(long id) { return configDao.find(Config.class, id); } - + } diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserMoneyDetailServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserMoneyDetailServiceImpl.java index deda80a..c139422 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserMoneyDetailServiceImpl.java +++ b/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); + } + } diff --git a/fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserMoneyDetailService.java b/fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserMoneyDetailService.java index c7d7035..c885181 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserMoneyDetailService.java +++ b/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); + } diff --git a/fanli/src/main/java/com/yeshi/fanli/util/factory/AccountDetailsFactory.java b/fanli/src/main/java/com/yeshi/fanli/util/factory/AccountDetailsFactory.java index 8abaea4..98e573b 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/factory/AccountDetailsFactory.java +++ b/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,56 +9,60 @@ 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 { - - private static final Map<Integer,String> map = new HashMap<Integer,String>(); + + private static final Map<Integer, String> map = new HashMap<Integer, String>(); /** * 鎻愮幇 */ - public static final int TIXIAN=1; + public static final int TIXIAN = 1; /** * 杩斿埄 */ - public static final int FANLI=2; + public static final int FANLI = 2; /** * 鍒嗛攢鎻愭垚 */ - public static final int TICHENG=3; + public static final int TICHENG = 3; /** * 閫�娆� */ - public static final int TUIKUAN=4; + public static final int TUIKUAN = 4; /** * 鏂颁汉绾㈠寘 */ - public static final int XINREN=5; + public static final int XINREN = 5; /** * 鍥炴锛堟彁鐜板け璐ユ椂锛� */ - public static final int HUIKUAN=6; + public static final int HUIKUAN = 6; /** * 鍏朵粬 */ - public static final int QITA=7; - + public static final int QITA = 7; + /** * 鍟嗗搧鍒嗛攢 */ - public static final int SHARE_GOODS=8; - - //鍟嗗搧鍒嗛攢缁存潈 - public static final int SHARE_GOODS_DRAWBACK=9; - + public static final int SHARE_GOODS = 8; + + // 鍟嗗搧鍒嗛攢缁存潈 + public static final int SHARE_GOODS_DRAWBACK = 9; + /** * */ - public static final int VALID_ALIPAY_ACCOUNT=10; - - - static{ + public static final int VALID_ALIPAY_ACCOUNT = 10; + + public static final int XINREN_DEDUCT = 11; + + static { map.put(TIXIAN, "鎻愮幇"); map.put(FANLI, "璁㈠崟杩斿埄"); map.put(TICHENG, "濂栭噾鏀跺叆"); @@ -68,9 +73,11 @@ map.put(SHARE_GOODS, "鎻愭垚鏀跺叆"); map.put(SHARE_GOODS_DRAWBACK, "鍞悗璁㈠崟鎵f"); map.put(VALID_ALIPAY_ACCOUNT, "鏀粯瀹濊处鍙烽獙璇佹墦娆�"); + map.put(XINREN_DEDUCT, "鏂颁汉绾㈠寘鎵i櫎"); } - - 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); @@ -85,15 +92,58 @@ public static AccountDetails create(HongBao hb, OrderItem orderItem) { int type = hb.getType(); - if(type==Constant.TAOBAO){ - return create("+"+hb.getMoney(), FANLI, orderItem, null, hb.getUserInfo()); - }else if(type == Constant.ONESALE || type==Constant.TAOBAO){ - return create("+"+hb.getMoney(), TICHENG, null, null, hb.getUserInfo()); - }else if(type==Constant.HB_NEWUSER){ - return create("+"+hb.getMoney(),XINREN,null,null,hb.getUserInfo()); + if (type == Constant.TAOBAO) { + return create("+" + hb.getMoney(), FANLI, orderItem, null, hb.getUserInfo()); + } else if (type == Constant.ONESALE || type == Constant.TAOBAO) { + return create("+" + hb.getMoney(), TICHENG, null, null, hb.getUserInfo()); + } else if (type == Constant.HB_NEWUSER) { + return create("+" + hb.getMoney(), XINREN, null, null, hb.getUserInfo()); } 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; + } + } diff --git a/fanli/src/main/java/com/yeshi/fanli/vo/money/UserMoneyStatisticVO.java b/fanli/src/main/java/com/yeshi/fanli/vo/money/UserMoneyStatisticVO.java new file mode 100644 index 0000000..b84ee76 --- /dev/null +++ b/fanli/src/main/java/com/yeshi/fanli/vo/money/UserMoneyStatisticVO.java @@ -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; + } +} -- Gitblit v1.8.0