From 6414d11724795daec088f622e517d5df59a53e83 Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期四, 23 四月 2020 01:54:53 +0800
Subject: [PATCH] 团队分红来源订单与用户映射相关服务实现

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java |  110 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 88 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..f06dcf4 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,155 @@
 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;
 
 @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.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);
+				}
+			}
 	}
 
+	@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), 4));
+					update.setUpdateTime(new Date());
+					update.setState(TeamDividentsSourceOrderUserMap.STATE_JS);
+					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), 4));
+					update.setUpdateTime(new Date());
+					teamDividentsSourceOrderUserMapMapper.updateByPrimaryKeySelective(update);
+				}
+			}
 	}
 
 }

--
Gitblit v1.8.0