| | |
| | | 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;
|
| | |
| | | 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;
|
| | |
| | | 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;
|
| | |
| | | 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;
|
| | |
| | | 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")
|
| | |
| | | @Resource
|
| | | private OrderItemServcie orderItemServcie;
|
| | |
|
| | | @Resource
|
| | | private AccountDetailsService accountDetailsService;
|
| | |
|
| | | @Resource
|
| | | private AccountMessageService accountMessageService;
|
| | |
| | |
|
| | | @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";
|
| | |
| | | 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();
|
| | |
| | | }
|
| | | listGid.add(commonGoods.getGoodsId());
|
| | | }
|
| | | |
| | |
|
| | | try {
|
| | | // API网络接口验证是否在售
|
| | | listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
|
| | |
| | | } 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; // 在售
|
| | |
| | | }
|
| | | 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) {
|
| | |
| | |
|
| | | @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);
|
| | |
| | | }
|
| | |
|
| | | @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) {
|
| | |
| | | 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;
|
| | |
| | | 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;
|
| | |
|
| | |
| | |
|
| | | 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 {
|
| | |
| | | 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();
|
| | |
| | | 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)));
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | package com.yeshi.fanli.controller.h5;
|
| | |
|
| | | import java.io.PrintWriter;
|
| | | import java.util.ArrayList;
|
| | | import java.util.List;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
| | |
|
| | | 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;
|
| | |
| | |
|
| | | @Resource
|
| | | private StrategyPictureService strategtPictureService;
|
| | |
|
| | | @Resource
|
| | | private ConfigService configService;
|
| | |
|
| | | /**
|
| | | *
|
| | |
| | | }
|
| | |
|
| | | @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))));
|
| | | }
|
| | |
|
| | |
| | | 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; |
| | |
| | | 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); |
| | | |
| | | } |
| | |
| | | * @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检索数量 |
| | |
| | | * @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); |
| | | |
| | | } |
| | |
| | | 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;
|
| | |
| | | )) a ORDER BY a.createTime DESC limit #{start},#{count} |
| | | |
| | | </select> |
| | | |
| | | |
| | | <select id="selectCountByUidWithState" resultType="java.lang.Long" |
| | | parameterType="java.lang.Long"> |
| | | |
| | |
| | | d.type=1 |
| | | )) a ORDER BY |
| | | a.createTime DESC |
| | | |
| | | |
| | | </select> |
| | | |
| | | |
| | |
| | | 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> |
| | | |
| | |
| | | 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"> |
| | |
| | | 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> |
| | |
| | | <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" /> |
| | |
| | | </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') |
| | |
| | | </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> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | |
| | |
|
| | | @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) {
|
| | |
| | | @Override
|
| | | public String getH5Host() {
|
| | | String value = get("h5_url");
|
| | | String[] sts = value.split(",");
|
| | | value = sts[(int) (sts.length * Math.random())];
|
| | | return value.trim();
|
| | | }
|
| | |
|
| | |
| | | String value = get("home_weex_url");
|
| | | return value;
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public Config getConfig(long id) {
|
| | | return configDao.find(Config.class, id);
|
| | | }
|
| | | |
| | |
|
| | | }
|
| | |
| | | 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);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | |
|
| | | import com.yeshi.fanli.entity.money.UserMoneyDetail;
|
| | | import com.yeshi.fanli.vo.money.UserMoneyDetailHistoryVO;
|
| | |
|
| | | /**
|
| | |
| | | */
|
| | | 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);
|
| | |
|
| | | }
|
| | |
| | | package com.yeshi.fanli.util.factory;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.HashMap;
|
| | | import java.util.Map;
|
| | |
|
| | |
| | | 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, "奖金收入");
|
| | |
| | | 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);
|
| | |
| | |
|
| | | 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;
|
| | | }
|
| | |
|
| | | }
|
New file |
| | |
| | | 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;
|
| | | }
|
| | | }
|