From 28cf328a098334b51a3e9d2d56f983fb8c862211 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 23 五月 2020 09:54:38 +0800
Subject: [PATCH] 足迹、收藏订单兼容新需求

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java |  145 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 123 insertions(+), 22 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java
index 7657bfe..c0dbb40 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java
@@ -1,89 +1,190 @@
 package com.yeshi.fanli.service.impl.order.dividents;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
-import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
 
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.yeshi.fanli.dao.mybatis.order.dividents.TeamDividentsSourceOrderUserMapMapper;
 import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrderUserMap;
 import com.yeshi.fanli.exception.ParamsException;
 import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderUserMapService;
+import com.yeshi.fanli.util.MoneyBigDecimalUtil;
+import com.yeshi.fanli.vo.order.TeamDividentsVO;
 
 @Service
 public class TeamDividentsSourceOrderUserMapServiceImpl implements TeamDividentsSourceOrderUserMapService {
 
+	@Resource
+	private TeamDividentsSourceOrderUserMapMapper teamDividentsSourceOrderUserMapMapper;
+
 	@Override
 	public TeamDividentsSourceOrderUserMap selectByPrimaryKeyForUpdate(Long id) {
-		// TODO Auto-generated method stub
-		return null;
+		return teamDividentsSourceOrderUserMapMapper.selectByPrimaryKeyForUpdate(id);
 	}
 
+	@Transactional
 	@Override
 	public void send(Long id) {
-		// TODO Auto-generated method stub
-
+		TeamDividentsSourceOrderUserMap map = teamDividentsSourceOrderUserMapMapper.selectByPrimaryKeyForUpdate(id);
+		if (map == null)
+			return;
+		if (map.getState() == TeamDividentsSourceOrderUserMap.STATE_JS) {
+			TeamDividentsSourceOrderUserMap update = new TeamDividentsSourceOrderUserMap();
+			update.setId(id);
+			update.setState(TeamDividentsSourceOrderUserMap.STATE_YILINGQU);
+			update.setSendTime(new Date());
+			update.setUpdateTime(new Date());
+			teamDividentsSourceOrderUserMapMapper.updateByPrimaryKeySelective(update);
+		}
 	}
 
 	@Override
 	public void addDividentsSourceOrderUserMap(TeamDividentsSourceOrderUserMap map) throws ParamsException {
-		// TODO Auto-generated method stub
+		if (map == null || map.getMoney() == null || map.getRate() == null || map.getSourceOrder() == null
+				|| map.getSourceUid() == null || map.getTargetUid() == null || map.getType() == null) {
+			throw new ParamsException(1, "鍙傛暟涓嶅畬鏁�");
+		}
 
+		List<Integer> typeList = new ArrayList<Integer>();
+		typeList.add(map.getType());
+		long count = teamDividentsSourceOrderUserMapMapper.count(map.getSourceOrder().getId(), null, map.getTargetUid(),
+				null, null, typeList);
+		if (count > 0)
+			return;
+
+		if (map.getCreateTime() == null)
+			map.setCreateTime(new Date());
+
+		teamDividentsSourceOrderUserMapMapper.insertSelective(map);
 	}
 
 	@Override
 	public List<TeamDividentsSourceOrderUserMap> listCanSend(Long sourceUid, Date maxPreSendTime, int page,
 			int pageSize) {
-		// TODO Auto-generated method stub
-		return null;
+
+		List<Integer> stateList = new ArrayList<Integer>();
+		stateList.add(TeamDividentsSourceOrderUserMap.STATE_JS);
+		return teamDividentsSourceOrderUserMapMapper.list(null, sourceUid, null, maxPreSendTime, stateList, null,
+				(page - 1) * pageSize, pageSize);
 	}
 
 	@Override
 	public long countCanSend(Long sourceUid, Date maxPreSendTime) {
-		// TODO Auto-generated method stub
-		return 0;
+		List<Integer> stateList = new ArrayList<Integer>();
+		stateList.add(TeamDividentsSourceOrderUserMap.STATE_JS);
+		return teamDividentsSourceOrderUserMapMapper.count(null, sourceUid, null, maxPreSendTime, stateList, null);
 	}
 
 	@Override
 	public long countBySourceOrderId(Long sourceOrderId) {
-		// TODO Auto-generated method stub
-		return 0;
+		return teamDividentsSourceOrderUserMapMapper.count(sourceOrderId, null, null, null, null, null);
 	}
 
 	@Override
 	public List<TeamDividentsSourceOrderUserMap> listBySourceOrderId(Long sourceOrderId) {
-		// TODO Auto-generated method stub
-		return null;
+		return teamDividentsSourceOrderUserMapMapper.list(sourceOrderId, null, null, null, null, null, 0, 10000);
 	}
 
 	@Override
 	public List<Long> listCanSendSourceUidByPreSendTime(Date preSendTime, int page, int count) {
-		// TODO Auto-generated method stub
-		return null;
+		return teamDividentsSourceOrderUserMapMapper.listCanSendSourceUidByPreSendTime(preSendTime, (page - 1) * count,
+				count);
 	}
 
 	@Override
 	public Long countCanSendSourceUidByPreSendTime(Date preSendTime) {
-		// TODO Auto-generated method stub
-		return null;
+		return teamDividentsSourceOrderUserMapMapper.countCanSendSourceUidByPreSendTime(preSendTime);
 	}
 
+	@Transactional
 	@Override
 	public void invalidBySourceOrderId(Long sourceOrderId) {
-		// TODO Auto-generated method stub
+		List<TeamDividentsSourceOrderUserMap> mapList = listBySourceOrderId(sourceOrderId);
+		if (mapList != null)
+			for (TeamDividentsSourceOrderUserMap map : mapList) {
+				if (map.getState() == TeamDividentsSourceOrderUserMap.STATE_FK
+						|| map.getState() == TeamDividentsSourceOrderUserMap.STATE_JS) {
 
+					TeamDividentsSourceOrderUserMap update = new TeamDividentsSourceOrderUserMap();
+					update.setId(map.getId());
+					update.setUpdateTime(new Date());
+					update.setState(TeamDividentsSourceOrderUserMap.STATE_SX);
+					teamDividentsSourceOrderUserMapMapper.updateByPrimaryKeySelective(update);
+				}
+			}
 	}
 
+	@Override
+	public void invalidOrderBySourceUid(Long sourceUid, String beiZhu) {
+		List<Integer> stateList = new ArrayList<>();
+		stateList.add(TeamDividentsSourceOrderUserMap.STATE_FK);
+		stateList.add(TeamDividentsSourceOrderUserMap.STATE_JS);
+		teamDividentsSourceOrderUserMapMapper.invalidOrderBySourceUid(sourceUid, beiZhu, stateList);
+	}
+
+	@Transactional
 	@Override
 	public void orderSettle(Long sourceOrderId, Date preSendTime, BigDecimal income) {
-		// TODO Auto-generated method stub
+		List<TeamDividentsSourceOrderUserMap> mapList = listBySourceOrderId(sourceOrderId);
+		if (mapList != null)
+			for (TeamDividentsSourceOrderUserMap map : mapList) {
+				if (map.getState() == TeamDividentsSourceOrderUserMap.STATE_FK) {
 
+					TeamDividentsSourceOrderUserMap update = new TeamDividentsSourceOrderUserMap();
+					update.setId(map.getId());
+					update.setMoney(MoneyBigDecimalUtil.div(income.multiply(map.getRate()), new BigDecimal(100), 3));
+					update.setUpdateTime(new Date());
+					update.setState(TeamDividentsSourceOrderUserMap.STATE_JS);
+					update.setPreSendTime(preSendTime);
+					teamDividentsSourceOrderUserMapMapper.updateByPrimaryKeySelective(update);
+				}
+			}
 	}
 
+	@Transactional
 	@Override
 	public void updateMoney(Long sourceOrderId, BigDecimal income) {
-		// TODO Auto-generated method stub
-
+		List<TeamDividentsSourceOrderUserMap> mapList = listBySourceOrderId(sourceOrderId);
+		if (mapList != null)
+			for (TeamDividentsSourceOrderUserMap map : mapList) {
+				if (map.getState() == TeamDividentsSourceOrderUserMap.STATE_FK) {
+					TeamDividentsSourceOrderUserMap update = new TeamDividentsSourceOrderUserMap();
+					update.setId(map.getId());
+					update.setMoney(MoneyBigDecimalUtil.div(income.multiply(map.getRate()), new BigDecimal(100), 3));
+					update.setUpdateTime(new Date());
+					teamDividentsSourceOrderUserMapMapper.updateByPrimaryKeySelective(update);
+				}
+			}
 	}
 
+	
+	@Override
+	public List<TeamDividentsSourceOrderUserMap> listBySourceOrderIdAndTargetUid(Long sourceOrderId, Long targetUid) {
+		return teamDividentsSourceOrderUserMapMapper.list(sourceOrderId, null, targetUid, null, null, null, 0, 10000);
+	}
+	
+	@Override
+	public List<TeamDividentsVO> listByDateAndTargetUid(long start, int count, Long targetUid,Date minTime,Date maxTime, String key) {
+		return teamDividentsSourceOrderUserMapMapper.listByDateAndTargetUid(start, count, targetUid, minTime, maxTime, key);
+	}
+	
+	@Override
+	public long countByDateAndTargetUid(Long targetUid,Date minTime,Date maxTime, String key) {
+		Long count = teamDividentsSourceOrderUserMapMapper.countByDateAndTargetUid(targetUid, minTime, maxTime, key);
+		if (count == null) 
+			count = 0L;
+		return count;
+	}
+	
+	@Override
+	public TeamDividentsVO sumByDateAndTargetUid(Long targetUid,Date minTime,Date maxTime, String key) {
+		return teamDividentsSourceOrderUserMapMapper.sumByDateAndTargetUid(targetUid, minTime, maxTime, key);
+	}
+	
 }

--
Gitblit v1.8.0