Browse Source

Merge branch 'test'

anderx 2 years ago
parent
commit
550f21a828

+ 3 - 1
src/main/java/com/goafanti/common/dao/AdminUserCountMapper.java

@@ -3,6 +3,8 @@ package com.goafanti.common.dao;
 import com.goafanti.common.model.AdminUserCount;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 public interface AdminUserCountMapper {
     int deleteByPrimaryKey(Integer id);
 
@@ -21,7 +23,7 @@ public interface AdminUserCountMapper {
     int updateByaidAndDate(@Param("aid") String aid,@Param("startTime") String startTime,
                            @Param("endTime")String endTime,@Param("type")Integer type);
 
-    AdminUserCount selectByaidAndDate(@Param("aid") String aid,@Param("startTime") String startTime);
+    List<AdminUserCount> selectByaidAndDate(@Param("aid") String aid, @Param("startTime") String startTime);
 
     void updateUserCountResetting(String aid);
 }

+ 15 - 2
src/main/java/com/goafanti/common/utils/AsyncUtils.java

@@ -74,7 +74,7 @@ public class AsyncUtils {
 	private void pushAdminUserCount(List<AdminUserCount> list) {
 		for (AdminUserCount e : list) {
 			String startTime=DateUtils.formatDate(e.getDateTime(),AFTConstants.YYYYMMDD);
-			AdminUserCount selectAUC = adminUserCountMapper.selectByaidAndDate(e.getAid(), startTime);
+			AdminUserCount selectAUC = getAdminUserCount(e.getAid(),startTime);
 			if (selectAUC==null){
 				adminUserCountMapper.insertSelective(e);
 			}else {
@@ -91,6 +91,19 @@ public class AsyncUtils {
 		}
 	}
 
+	private AdminUserCount getAdminUserCount(String aid, String startTime) {
+		List<AdminUserCount> selectList = adminUserCountMapper.selectByaidAndDate(aid, startTime);
+		AdminUserCount selectAUC=null;
+		if (selectList.size()==1){
+			selectAUC=selectList.get(0);
+		}else if (selectList.size()>1){
+			for (int i=1;i<selectList.size();i++){
+				adminUserCountMapper.deleteByPrimaryKey(selectList.get(i).getId());
+			}
+		}
+		return selectAUC;
+	}
+
 
     public void patentSend(EmailBo bo) throws UnsupportedEncodingException, MessagingException {
 		SendEmailUtil.getInstance().patentSend(bo);
@@ -664,7 +677,7 @@ public class AsyncUtils {
 	public void updateAdminUserOrderCount(List<AdminUserCount> tramsferList) {
 		for (AdminUserCount e : tramsferList) {
 			String startTime=DateUtils.formatDate(e.getDateTime(),AFTConstants.YYYYMMDD);
-			AdminUserCount selectAUC = adminUserCountMapper.selectByaidAndDate(e.getAid(), startTime);
+			AdminUserCount selectAUC = getAdminUserCount(e.getAid(),startTime);
 			if (selectAUC==null){
 				adminUserCountMapper.insertSelective(e);
 			}else {

+ 3 - 0
src/main/java/com/goafanti/customer/service/CustomerService.java

@@ -4,6 +4,7 @@ import com.goafanti.common.bo.Result;
 import com.goafanti.common.bo.userDaysBo;
 import com.goafanti.common.error.BusinessException;
 import com.goafanti.common.model.Admin;
+import com.goafanti.common.model.AdminUserCount;
 import com.goafanti.common.model.OrganizationContactBook;
 import com.goafanti.common.model.User;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -581,4 +582,6 @@ public interface CustomerService {
 	void updateAdminUserCount(String aid,Date transferTime);
 
 	void updateAdminUserCountByAid(String aid);
+
+	AdminUserCount getAdminUserCount(String aid, String startTime);
 }

+ 24 - 3
src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java

@@ -465,7 +465,7 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 	public void updateAdminUserCount(String aid ,Date transferTime) {
 		String startTime=DateUtils.formatDate(transferTime,AFTConstants.YYYYMMDD);
 		String endTime=startTime+" 23:59:59";
-		AdminUserCount adminUserCount = adminUserCountMapper.selectByaidAndDate(aid, startTime);
+		AdminUserCount adminUserCount=getAdminUserCount(aid,endTime);
 		if (adminUserCount==null){
 			AdminUserCount selectAUC=userMapper.selectByaidAndDate(aid,startTime,endTime);
 			if(selectAUC!=null) adminUserCountMapper.insertSelective(selectAUC);
@@ -494,7 +494,8 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		List<AdminUserCount> list = userMapper.selectListByaidAndDate(aid);
 			for (AdminUserCount e : list) {
 				String startTime=DateUtils.formatDate(e.getDateTime(),AFTConstants.YYYYMMDD);
-				AdminUserCount selectAUC = adminUserCountMapper.selectByaidAndDate(e.getAid(), startTime);
+				AdminUserCount selectAUC = getAdminUserCount(aid, startTime);
+
 				if (selectAUC==null){
 					adminUserCountMapper.insertSelective(e);
 				}else {
@@ -511,6 +512,26 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 			}
 	}
 
+	/**
+	 * 用于处理异常多产生数据,删除多余数据修改原本数据
+	 * @param aid
+	 * @param startTime
+	 * @return
+	 */
+	@Override
+	public AdminUserCount getAdminUserCount(String aid, String startTime) {
+		List<AdminUserCount> selectList = adminUserCountMapper.selectByaidAndDate(aid, startTime);
+		AdminUserCount selectAUC=null;
+		if (selectList.size()==1){
+			selectAUC=selectList.get(0);
+		}else if (selectList.size()>1){
+			for (int i=1;i<selectList.size();i++){
+				adminUserCountMapper.deleteByPrimaryKey(selectList.get(i).getId());
+			}
+		}
+		return selectAUC;
+	}
+
 	private void checkUserName(InputAddCustomer in) {
 		if (userMapper.checkUser("", in.getName(), "", in.getType(), null, null).size() > 0)
 			throw new BusinessException(new Error(ErrorConstants.CUSTOMER_ALREADY_EXIST, in.getName(), ""));
@@ -929,7 +950,7 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		{
 			String startTime= DateUtils.formatDate(transferTime,AFTConstants.YYYYMMDD);
 			String endTime=startTime+" 23:59:59";
-			AdminUserCount adminUserCount = adminUserCountMapper.selectByaidAndDate(aid, startTime);
+			AdminUserCount adminUserCount = getAdminUserCount(aid,startTime);
 			int count = userFollowMapper.selectByaidAndDate(aid, startTime, endTime);
 			if (adminUserCount==null){
 				AdminUserCount selectAUC=userMapper.selectByaidAndDate(aid,startTime,endTime);

+ 4 - 1
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -23,6 +23,7 @@ import com.goafanti.core.mybatis.JDBCIdGenerator;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.customer.bo.LockingReleaseBo;
+import com.goafanti.customer.service.CustomerService;
 import com.goafanti.order.bo.*;
 import com.goafanti.order.enums.*;
 import com.goafanti.order.service.OrderNewService;
@@ -123,6 +124,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	@Autowired
 	private DepartmentService departmentService;
 	@Autowired
+	private CustomerService	customerService;
+	@Autowired
 	private TOrderPaymentMapper tOrderPaymentMapper;
 	@Autowired
 	private TOrderHighTechMapper tOrderHighTechMapper;
@@ -620,7 +623,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	public void updateAdminUserCountOrder(String aid,Date transferTime) {
 		String startTime= DateUtils.formatDate(transferTime,AFTConstants.YYYYMMDD);
 		String endTime=startTime+" 23:59:59";
-		AdminUserCount adminUserCount = adminUserCountMapper.selectByaidAndDate(aid, startTime);
+		AdminUserCount adminUserCount = customerService.getAdminUserCount(aid,startTime);
 		Integer orderCount = tOrderNewMapper.selectAidAndDate(aid, startTime, endTime);
 		if (adminUserCount==null){
 			AdminUserCount selectAUC=userMapper.selectByaidAndDate(aid,startTime,endTime);

+ 1 - 1
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java

@@ -672,7 +672,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 	private void updateAdminUserCountPublicRelease(String aid, Date transferTime) {
 		String startTime= DateUtils.formatDate(transferTime,AFTConstants.YYYYMMDD);
 		String endTime=startTime+" 23:59:59";
-		AdminUserCount adminUserCount = adminUserCountMapper.selectByaidAndDate(aid, startTime);
+		AdminUserCount adminUserCount = customerService.getAdminUserCount(aid,startTime);
 		Integer count = publicReleaseMapper.selectByaidAndDate(aid, startTime, endTime);
 		if (count==null){
             count=0;