Browse Source

发起公出修改BUG修复

anderx 2 years ago
parent
commit
8a7b2e482b

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

@@ -362,7 +362,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		//先删除,再修改个,再新增,有利于减少计算
 		deletePRD(split,prList);
 		publicReleaseDetailsMapper.updateDistrictByPrid(in);
-		List<User> users = addPRD(split, prList, use);
+		List<User> users = addPRD(split, prList, use,in);
 
 
 		return users;
@@ -389,10 +389,15 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 	 * @param prdList 修改前客户集
 	 * @param use 原订单信息
 	 */
-	private List<User>  addPRD(List<String> split, List<OutPublicReleaseDetails> prdList, PublicRelease use) {
+	private List<User>  addPRD(List<String> split, List<OutPublicReleaseDetails> prdList, PublicRelease use, InputPublicRelease in) {
 		List<PublicReleaseDetails> addPrdList=new ArrayList<>();
 		List<User> users=new ArrayList<>();
 		Integer publicType = use.getPublicType();
+		//计算平均
+		Integer userCount=split.size();
+		Integer index=0;
+		Double duration= in.getDuration();
+ 		double d = durationSum(duration,userCount );
 		for (String s : split) {
 			User u=userMapper.selectByPrimaryKey(s);
 			users.add(u);
@@ -406,8 +411,10 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 				if (longitude==null)longitude=prd.getLongitude();
 				if (s.equals(prd.getUid())){
 					flag=false;
+
 				}
 			}
+			//计算下
 			if (flag){
 				PublicReleaseDetails prd=new PublicReleaseDetails();
 				if (u!=null&&u.getShareType()==2){
@@ -428,10 +435,42 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 				prd.setLongitude(longitude);
 				prd.setClockIn(0);
 				addPrdList.add(prd);
+				//设置时长
+				if (index<userCount){
+					if (in.getDuration()==0){
+						prd.setDuration(in.getDuration());
+					} else {
+						prd.setDuration(d);
+						duration=duration-d;
+					}
+				}else {
+					prd.setDuration(duration);
+				}
+					index++;
 				if (!use.getAid().equals(u.getAid())){
 					addPublicExamine(use.getId(), u.getAid());
 					if (publicType==1)publicType=1;
 				}
+			}else {
+				InputPublicRelease inp=new InputPublicRelease();
+				inp.setId(in.getId());
+				inp.setUid(s);
+				PublicReleaseDetails publicReleaseDetails = publicReleaseDetailsMapper.selectBypridAndUid(inp);
+				PublicReleaseDetails newprd =new PublicReleaseDetails();
+				newprd.setId(publicReleaseDetails.getId());
+				//设置时长
+				if (index<userCount){
+					if (in.getDuration()==0){
+						newprd.setDuration(in.getDuration());
+					} else {
+						newprd.setDuration(d);
+						duration=duration-d;
+					}
+				}else {
+					newprd.setDuration(duration);
+				}
+				publicReleaseDetailsMapper.updateByPrimaryKeySelective(newprd);
+				index++;
 			}
 		}
 		StringBuffer str=new StringBuffer();