Browse Source

修改会员统计信息

anderx 1 year ago
parent
commit
4eabd23d0f

+ 1 - 1
src/main/java/com/goafanti/common/mapper/TOrderPublicReleaseCountMapper.xml

@@ -127,7 +127,7 @@
             exceed_duration =  if(#{actualDuration,jdbcType=DOUBLE}-max_duration>0,#{actualDuration,jdbcType=DOUBLE}-max_duration,0),
             people_count =  #{peopleCount,jdbcType=INTEGER},
             frequency =  #{frequency,jdbcType=INTEGER}
-        where   order_no =  #{orderNo,jdbcType=VARCHAR}
+        where   order_no =  #{orderNo,jdbcType=VARCHAR} and sum_year= #{sumYear,jdbcType=VARCHAR}
     </update>
 
     <select id="selectByOrderNo"  resultMap="BaseResultMap">

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

@@ -31,6 +31,8 @@ import org.springframework.web.socket.TextMessage;
 
 import java.math.BigDecimal;
 import java.text.ParseException;
+import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
@@ -1836,19 +1838,14 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			actualDuration=actualDuration.add(BigDecimal.valueOf(in.getDuration()));
 			frequency++;
 		}
+		LocalDate startDate = LocalDate.now().withMonth(1).withDayOfMonth(1);
+		String sumYear= String.valueOf(startDate.getYear());
+		LocalDate endDate = startDate.withYear(startDate.getYear()+1);
 		for (PublicRelease e : list) {
-			//新增直接计算
-			if (in.getId()==null){
-				if (e.getDuration()!=null){
-					actualDuration=actualDuration.add(BigDecimal.valueOf(e.getDuration()));
-					if (!peopleList.contains(e.getAid())){
-						peopleList.add(e.getAid());
-					}
-					frequency++;
-				}
-			}else {
-				//修改当前数据要从修改后获取
-				if (!e.getId().equals(in.getId())){
+			LocalDate date = e.getReleaseStart().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+			if (date.isAfter(startDate)&&date.isBefore(endDate)){
+				//新增直接计算
+				if (in.getId()==null){
 					if (e.getDuration()!=null){
 						actualDuration=actualDuration.add(BigDecimal.valueOf(e.getDuration()));
 						if (!peopleList.contains(e.getAid())){
@@ -1857,17 +1854,26 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 						frequency++;
 					}
 				}else {
-					if (outPublicRelease != null && outPublicRelease.getDuration() != null) {
-						actualDuration = actualDuration.add(BigDecimal.valueOf(outPublicRelease.getDuration()));
-						if (!peopleList.contains(outPublicRelease.getAid())) {
-							peopleList.add(outPublicRelease.getAid());
+					//修改当前数据要从修改后获取
+					if (!e.getId().equals(in.getId())){
+						if (e.getDuration()!=null){
+							actualDuration=actualDuration.add(BigDecimal.valueOf(e.getDuration()));
+							if (!peopleList.contains(e.getAid())){
+								peopleList.add(e.getAid());
+							}
+							frequency++;
+						}
+					}else {
+						if (outPublicRelease != null && outPublicRelease.getDuration() != null) {
+							actualDuration = actualDuration.add(BigDecimal.valueOf(outPublicRelease.getDuration()));
+							if (!peopleList.contains(outPublicRelease.getAid())) {
+								peopleList.add(outPublicRelease.getAid());
+							}
+							frequency++;
 						}
-						frequency++;
 					}
 				}
 			}
-
-
 		}
 		Map map=new HashMap();
 		CheckOrderNoOut data= new CheckOrderNoOut();
@@ -1881,6 +1887,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			update.setFrequency(frequency);
 			update.setActualDuration(actualDuration.doubleValue());
 			update.setPeopleCount(peopleList.size());
+			update.setSumYear(sumYear);
 			tOrderPublicReleaseCountMapper.updateByOrderNo(update);
 		}
 		data.setTimesCount(frequency);