From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDetailServiceImpl.java | 510 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 271 insertions(+), 239 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDetailServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDetailServiceImpl.java index 4f10898..7a9e290 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDetailServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDetailServiceImpl.java @@ -1,239 +1,271 @@ -package com.yeshi.fanli.service.impl.money; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TreeMap; - -import javax.annotation.Resource; - -import org.springframework.stereotype.Service; - -import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper; -import com.yeshi.fanli.entity.money.UserMoneyDetail; -import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum; -import com.yeshi.fanli.exception.money.UserMoneyDetailException; -import com.yeshi.fanli.service.inter.money.UserMoneyDetailService; -import com.yeshi.fanli.util.Constant; -import com.yeshi.fanli.util.TimeUtil; -import com.yeshi.fanli.vo.money.UserMoneyDetailHistoryVO; -import com.yeshi.fanli.vo.money.UserMonthMoneyVO; - -@Service -public class UserMoneyDetailServiceImpl implements UserMoneyDetailService { - - @Resource - private UserMoneyDetailMapper userMoneyDetailMapper; - - @Override - public void addUserMoneyDetail(UserMoneyDetail detail) throws UserMoneyDetailException { - if (detail == null || detail.getMoney() == null || detail.getType() == null || detail.getUserInfo() == null) - throw new UserMoneyDetailException(1, "淇℃伅涓嶅畬鏁�"); - userMoneyDetailMapper.insertSelective(detail); - } - - @Override - public List<UserMoneyDetailHistoryVO> listUserMoneyDetailForClient(Long uid, Long userMoneyDetailId, Date maxTime) { - List<UserMoneyDetailHistoryVO> finalList = new ArrayList<>(); - List<UserMoneyDetail> list = null; - if (userMoneyDetailId == null) {// 棣栨璇锋眰 - if (maxTime == null)// 娌℃湁绛涢�夋椂闂� - { - list = userMoneyDetailMapper.selectByMaxCreateTime(uid, - new Date(System.currentTimeMillis() + 1000 * 60 * 60L), 20); - } else {// 绛涢�変簡鏃堕棿 - list = userMoneyDetailMapper.selectByMaxCreateTime(uid, maxTime, 20); - } - - if (list != null && list.size() > 0) { - Calendar calendar = Calendar.getInstance(); - calendar.setTimeInMillis(list.get(0).getCreateTime().getTime()); - UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO(); - vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1)); - finalList.add(vo); - } else { - if (maxTime != null) {// - Calendar calendar = Calendar.getInstance(); - calendar.setTimeInMillis(maxTime.getTime()); - UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO(); - vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1)); - vo.getMonth().setExpend("0"); - vo.getMonth().setIncome("0"); - finalList.add(vo); - } - } - - } else {// 浜屾璇锋眰 - - int size = 21; - List<UserMoneyDetail> tempList = userMoneyDetailMapper.selectByUidWithIndexId(uid, userMoneyDetailId, size); - Set<Date> dateSet = new HashSet<>();// 鐢ㄤ簬鍌ㄥ瓨鏄惁鍦ㄥ悓涓�鏃堕棿涓婇潰锛堢簿纭埌绉掞級 - if (tempList.size() > 0) { - for (UserMoneyDetail umd : tempList) { - dateSet.add(umd.getCreateTime()); - } - - List<UserMoneyDetail> tempList2 = new ArrayList<>(); - while (dateSet.size() == 1 && tempList2.size() != tempList.size() && size < 40) {// 鍙湁涓�涓椂闂寸偣鐨勬暟鎹� - tempList = tempList2; - size += 10; - tempList2 = userMoneyDetailMapper.selectByUidWithIndexId(uid, userMoneyDetailId, size); - dateSet.clear(); - for (UserMoneyDetail umd : tempList2) { - dateSet.add(umd.getCreateTime()); - } - } - if (tempList2.size() > 0) - tempList = tempList2; - } - - for (int i = 0; i < tempList.size(); i++) { - if (tempList.get(i).getId().longValue() == userMoneyDetailId) { - tempList.remove(i); - break; - } else { - tempList.remove(i); - i--; - } - } - list = tempList; - } - - if (list != null) { - // 閲嶆柊璁剧疆鏍囬 - for (UserMoneyDetail md : list) - resetTitle(md); - - if (userMoneyDetailId != null && list.size() > 0) { - UserMoneyDetail umd = userMoneyDetailMapper.selectByPrimaryKey(userMoneyDetailId); - if (!TimeUtil.getGernalTime(umd.getCreateTime().getTime(), "yyyy-MM") - .equalsIgnoreCase(TimeUtil.getGernalTime(list.get(0).getCreateTime().getTime(), "yyyy-MM"))) { - Calendar calendar = Calendar.getInstance(); - calendar.setTimeInMillis(list.get(0).getCreateTime().getTime()); - UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO(); - vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1)); - finalList.add(vo); - } - - } - for (int i = 0; i < list.size(); i++) { - if (i > 0 && !TimeUtil.getGernalTime(list.get(i - 1).getCreateTime().getTime(), "yyyy-MM") - .equalsIgnoreCase(TimeUtil.getGernalTime(list.get(i).getCreateTime().getTime(), "yyyy-MM"))) {// 鏈潯鏁版嵁涓庝笂鏉℃暟鎹笉鏄悓涓�鏈堝垯鎻掑叆鏈堜唤 - Calendar calendar = Calendar.getInstance(); - calendar.setTimeInMillis(list.get(i).getCreateTime().getTime()); - UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO(); - vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1)); - finalList.add(vo); - } - UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO(); - vo.setDetail(list.get(i)); - finalList.add(vo); - } - } - - // 缁熻鏈堣祫閲� - - Map<Integer, UserMoneyDetailHistoryVO> monthMap = new TreeMap<>(); - if (finalList.size() > 1) - for (int i = 0; i < finalList.size(); i++) { - if (finalList.get(i).getMonth() != null) - monthMap.put(i, finalList.get(i)); - } - - if (!monthMap.isEmpty()) { - List<String> dateFormat = new ArrayList<>(); - Iterator<Integer> keys = monthMap.keySet().iterator(); - while (keys.hasNext()) { - Integer key = keys.next(); - String date = ""; - date += monthMap.get(key).getMonth().getYear(); - date += "-"; - date += (monthMap.get(key).getMonth().getMonth() + "").length() < 2 - ? "0" + monthMap.get(key).getMonth().getMonth() : monthMap.get(key).getMonth().getMonth(); - dateFormat.add(date); - } - List<UserMonthMoneyVO> voList = userMoneyDetailMapper.selectMonthMoneyByUid(uid, dateFormat); - - int p = 0; - keys = monthMap.keySet().iterator(); - while (keys.hasNext()) { - Integer key = keys.next(); - // 鍘婚櫎鏀嚭璐熷彿 - finalList.get(key).getMonth().setExpend(voList.get(p).getExpend().replace("-", "")); - finalList.get(key).getMonth().setIncome(voList.get(p).getIncome()); - p++; - } - } - return finalList; - } - - private UserMoneyDetail resetTitle(UserMoneyDetail detail) { - UserMoneyDetailTypeEnum[] enums = new UserMoneyDetailTypeEnum[] { UserMoneyDetailTypeEnum.fanli, - UserMoneyDetailTypeEnum.fanliWeiQuan, UserMoneyDetailTypeEnum.invite, - UserMoneyDetailTypeEnum.inviteAndShare, UserMoneyDetailTypeEnum.inviteWeiQuan, - UserMoneyDetailTypeEnum.orderReward, UserMoneyDetailTypeEnum.repeatStatistic, - UserMoneyDetailTypeEnum.share, UserMoneyDetailTypeEnum.shareWeiQuan, UserMoneyDetailTypeEnum.weiQuan }; - boolean inType = false; - for (UserMoneyDetailTypeEnum e : enums) - if (detail.getType() == e) { - inType = true; - break; - } - if (inType) - detail.setTitle(detail.getTitle() + "銆�" + Constant.getSourceName(detail.getOrderType()) + "銆�"); - return detail; - } - - @Override - public long countUserMoneyDetailForClient(Long uid, Long userMoneyDetailId, Date maxTime) { - long monthCount = 0L; - long detailCount = 0L; - // 鏈�氳繃鏃堕棿绛涢�夛紝鏌ヨ鎵�鏈� - if (maxTime == null) { - detailCount = userMoneyDetailMapper.selectCountByUid(uid); - // 鐢ㄤ簬琛ㄧず褰撳墠鎵�鏈� - monthCount = userMoneyDetailMapper.selectMonthCountByUid(uid, - new Date(System.currentTimeMillis() + 1000 * 60 * 60L)); - } else {// 閫氳繃鏃堕棿绛涢�変簡鐨勶紝闇�瑕佹煡璇㈡墍鏈� - detailCount = userMoneyDetailMapper.selectCountByUidAndMaxCreateTime(uid, maxTime); - monthCount = userMoneyDetailMapper.selectMonthCountByUid(uid, maxTime); - } - - 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); - } - - @Override - public BigDecimal statisticUserTypeMoneyWithDate(Long uid, List<UserMoneyDetailTypeEnum> typeList, Date minDate, - Date maxDate) { - List<String> list = new ArrayList<>(); - if (typeList != null) - for (UserMoneyDetailTypeEnum type : typeList) { - list.add(type.name()); - } - BigDecimal money = userMoneyDetailMapper.getTotalMoneyByTypeAndUidWithDate(uid, list, minDate, maxDate); - return money == null ? new BigDecimal(0) : money; - } - - @Override - public UserMoneyDetail selectByTypeAndUidAndIdentifyCode(UserMoneyDetailTypeEnum type, Long uid, - Long sourceIdentifyId) { - return userMoneyDetailMapper.selectByTypeAndUidAndIdentifyCode(type, uid, sourceIdentifyId); - } - -} +package com.yeshi.fanli.service.impl.money; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper; +import com.yeshi.fanli.entity.money.UserMoneyDetail; +import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum; +import com.yeshi.fanli.exception.money.UserMoneyDetailException; +import com.yeshi.fanli.service.inter.money.UserMoneyDetailService; +import com.yeshi.fanli.util.Constant; +import org.yeshi.utils.TimeUtil; +import com.yeshi.fanli.vo.money.UserMoneyDetailHistoryVO; +import com.yeshi.fanli.vo.money.UserMonthMoneyVO; + +@Service +public class UserMoneyDetailServiceImpl implements UserMoneyDetailService { + + @Resource + private UserMoneyDetailMapper userMoneyDetailMapper; + + @Override + public void addUserMoneyDetail(UserMoneyDetail detail) throws UserMoneyDetailException { + if (detail == null || detail.getMoney() == null || detail.getType() == null || detail.getUserInfo() == null) + throw new UserMoneyDetailException(1, "淇℃伅涓嶅畬鏁�"); + userMoneyDetailMapper.insertSelective(detail); + } + + @Override + public List<UserMoneyDetailHistoryVO> listUserMoneyDetailForClient(Long uid, Long userMoneyDetailId, Integer type, + Date maxTime) { + List<UserMoneyDetailHistoryVO> finalList = new ArrayList<>(); + List<UserMoneyDetail> list = null; + if (userMoneyDetailId == null) {// 棣栨璇锋眰 + if (maxTime == null)// 娌℃湁绛涢�夋椂闂� + { + Date date = new Date(System.currentTimeMillis() + 1000 * 60 * 60L); + list = userMoneyDetailMapper.selectByMaxCreateTime(uid, date, 20, type); + System.out.println("maxTime == null"); + } else {// 绛涢�変簡鏃堕棿 + System.out.println("maxTime != null"); + list = userMoneyDetailMapper.selectByMaxCreateTime(uid, maxTime, 20, type); + } + + if (list != null && list.size() > 0) { + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(list.get(0).getCreateTime().getTime()); + UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO(); + vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1)); + finalList.add(vo); + } else { + if (maxTime != null) {// + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(maxTime.getTime()); + UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO(); + vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1)); + vo.getMonth().setExpend("0"); + vo.getMonth().setIncome("0"); + finalList.add(vo); + } + } + + } else {// 浜屾璇锋眰 + + int size = 21; + List<UserMoneyDetail> tempList = userMoneyDetailMapper.selectByUidWithIndexId(uid, userMoneyDetailId, size, + type); + Set<Date> dateSet = new HashSet<>();// 鐢ㄤ簬鍌ㄥ瓨鏄惁鍦ㄥ悓涓�鏃堕棿涓婇潰锛堢簿纭埌绉掞級 + if (tempList.size() > 0) { + for (UserMoneyDetail umd : tempList) { + dateSet.add(umd.getCreateTime()); + } + + List<UserMoneyDetail> tempList2 = new ArrayList<>(); + while (dateSet.size() == 1 && tempList2.size() != tempList.size() && size < 40) {// 鍙湁涓�涓椂闂寸偣鐨勬暟鎹� + tempList = tempList2; + size += 10; + tempList2 = userMoneyDetailMapper.selectByUidWithIndexId(uid, userMoneyDetailId, size, type); + dateSet.clear(); + for (UserMoneyDetail umd : tempList2) { + dateSet.add(umd.getCreateTime()); + } + } + if (tempList2.size() > 0) + tempList = tempList2; + } + + for (int i = 0; i < tempList.size(); i++) { + if (tempList.get(i).getId().longValue() == userMoneyDetailId) { + tempList.remove(i); + break; + } else { + tempList.remove(i); + i--; + } + } + list = tempList; + } + + if (list != null) { + // 閲嶆柊璁剧疆鏍囬 + for (UserMoneyDetail md : list) + resetTitle(md); + + if (userMoneyDetailId != null && list.size() > 0) { + UserMoneyDetail umd = userMoneyDetailMapper.selectByPrimaryKey(userMoneyDetailId); + if (!TimeUtil.getGernalTime(umd.getCreateTime().getTime(), "yyyy-MM") + .equalsIgnoreCase(TimeUtil.getGernalTime(list.get(0).getCreateTime().getTime(), "yyyy-MM"))) { + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(list.get(0).getCreateTime().getTime()); + UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO(); + vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1)); + finalList.add(vo); + } + + } + for (int i = 0; i < list.size(); i++) { + if (i > 0 && !TimeUtil.getGernalTime(list.get(i - 1).getCreateTime().getTime(), "yyyy-MM") + .equalsIgnoreCase(TimeUtil.getGernalTime(list.get(i).getCreateTime().getTime(), "yyyy-MM"))) {// 鏈潯鏁版嵁涓庝笂鏉℃暟鎹笉鏄悓涓�鏈堝垯鎻掑叆鏈堜唤 + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(list.get(i).getCreateTime().getTime()); + UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO(); + vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1)); + finalList.add(vo); + } + UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO(); + vo.setDetail(list.get(i)); + finalList.add(vo); + } + } + + // 缁熻鏈堣祫閲� + + Map<Integer, UserMoneyDetailHistoryVO> monthMap = new TreeMap<>(); + if (finalList.size() > 1) + for (int i = 0; i < finalList.size(); i++) { + if (finalList.get(i).getMonth() != null) + monthMap.put(i, finalList.get(i)); + } + + if (!monthMap.isEmpty()) { + List<String> dateFormat = new ArrayList<>(); + Iterator<Integer> keys = monthMap.keySet().iterator(); + while (keys.hasNext()) { + Integer key = keys.next(); + String date = ""; + date += monthMap.get(key).getMonth().getYear(); + date += "-"; + date += (monthMap.get(key).getMonth().getMonth() + "").length() < 2 + ? "0" + monthMap.get(key).getMonth().getMonth() : monthMap.get(key).getMonth().getMonth(); + dateFormat.add(date); + } + List<UserMonthMoneyVO> voList = userMoneyDetailMapper.selectMonthMoneyByUid(uid, dateFormat); + + int p = 0; + keys = monthMap.keySet().iterator(); + while (keys.hasNext()) { + Integer key = keys.next(); + // 鍘婚櫎鏀嚭璐熷彿 + finalList.get(key).getMonth().setExpend(voList.get(p).getExpend().replace("-", "")); + finalList.get(key).getMonth().setIncome(voList.get(p).getIncome()); + p++; + } + } + return finalList; + } + + private UserMoneyDetail resetTitle(UserMoneyDetail detail) { + UserMoneyDetailTypeEnum[] enums = new UserMoneyDetailTypeEnum[] { UserMoneyDetailTypeEnum.fanli, + UserMoneyDetailTypeEnum.fanliWeiQuan, UserMoneyDetailTypeEnum.invite, + UserMoneyDetailTypeEnum.inviteAndShare, UserMoneyDetailTypeEnum.inviteWeiQuan, + UserMoneyDetailTypeEnum.orderReward, UserMoneyDetailTypeEnum.repeatStatistic, + UserMoneyDetailTypeEnum.share, UserMoneyDetailTypeEnum.shareWeiQuan, UserMoneyDetailTypeEnum.weiQuan }; + boolean inType = false; + for (UserMoneyDetailTypeEnum e : enums) + if (detail.getType() == e) { + inType = true; + break; + } + if (inType) { + detail.setTitle(detail.getTitle() + "銆�" + Constant.getSourceName(detail.getOrderType()) + "銆�"); + } + return detail; + } + + @Override + public long countUserMoneyDetailForClient(Long uid, Long userMoneyDetailId, Integer type, Date maxTime) { + // TODO 澧炲姞type绛涢�� + long monthCount = 0L; + long detailCount = 0L; + // 鏈�氳繃鏃堕棿绛涢�夛紝鏌ヨ鎵�鏈� + if (maxTime == null) { + detailCount = userMoneyDetailMapper.selectCountByUid(uid, type); + // 鐢ㄤ簬琛ㄧず褰撳墠鎵�鏈� + monthCount = userMoneyDetailMapper.selectMonthCountByUid(uid, + new Date(System.currentTimeMillis() + 1000 * 60 * 60L), type); + } else {// 閫氳繃鏃堕棿绛涢�変簡鐨勶紝闇�瑕佹煡璇㈡墍鏈� + detailCount = userMoneyDetailMapper.selectCountByUidAndMaxCreateTime(uid, maxTime, type); + monthCount = userMoneyDetailMapper.selectMonthCountByUid(uid, maxTime, type); + } + + 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); + } + + @Override + public BigDecimal statisticUserTypeMoneyWithDate(Long uid, List<UserMoneyDetailTypeEnum> typeList, Date minDate, + Date maxDate) { + List<String> list = new ArrayList<>(); + if (typeList != null) + for (UserMoneyDetailTypeEnum type : typeList) { + list.add(type.name()); + } + BigDecimal money = userMoneyDetailMapper.getTotalMoneyByTypeAndUidWithDate(uid, list, minDate, maxDate, null); + return money == null ? new BigDecimal(0) : money; + } + + @Override + public BigDecimal statisticUserTypeMoneyWithDate(Long uid, List<UserMoneyDetailTypeEnum> typeList, Date minDate, + Date maxDate, Integer show) { + List<String> list = new ArrayList<>(); + if (typeList != null) + for (UserMoneyDetailTypeEnum type : typeList) { + list.add(type.name()); + } + BigDecimal money = userMoneyDetailMapper.getTotalMoneyByTypeAndUidWithDate(uid, list, minDate, maxDate, show); + return money == null ? new BigDecimal(0) : money; + } + + @Override + public UserMoneyDetail selectByTypeAndUidAndIdentifyCode(UserMoneyDetailTypeEnum type, Long uid, + Long sourceIdentifyId) { + return userMoneyDetailMapper.selectByTypeAndUidAndIdentifyCode(type, uid, sourceIdentifyId); + } + + @Override + public List<UserMoneyDetail> listQuery(int page, int pageSize, String key, Integer keyType) { + return userMoneyDetailMapper.listQuery((page - 1) * pageSize, pageSize, key, keyType); + } + + @Override + public long countQuery(String key, Integer keyType) { + Long count = userMoneyDetailMapper.countQuery(key, keyType); + if (count == null) { + count = 0L; + } + return count; + } + +} -- Gitblit v1.8.0