Commit 6b651c2d by 裴大威

Merge branch 'guiq-fix-1022860' into 'master'

🐛 fix bug 1022860

See merge request rays/pcloud-book!678
parents 11fb5908 6b5ccae9
......@@ -14,6 +14,7 @@ import com.pcloud.book.group.vo.ListQrcodeByClassifyParamVO;
import com.pcloud.book.group.vo.UpdateGroupQrcodeRequestVO;
import com.pcloud.book.riddle.dto.GroupRiddleDTO;
import com.pcloud.common.page.PageBeanNew;
import com.sdk.wxgroup.GroupInfoVO;
import java.util.List;
import java.util.Map;
......@@ -217,4 +218,10 @@ public interface GroupQrcodeBiz {
* 根据类型获取当前群总人数
*/
Integer getUserCountByJoinGroupType(Integer joinGroupType);
/**
* 更新群人数
* @param groupInfoVO
*/
void updateGroupMember(GroupInfoVO groupInfoVO);
}
......@@ -58,6 +58,7 @@ import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import com.sdk.wxgroup.GroupInfoVO;
import com.sdk.wxgroup.WxGroupSDK;
import org.apache.commons.collections4.MapUtils;
......@@ -81,6 +82,7 @@ import java.util.Optional;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;
/**
* @author lily
......@@ -494,8 +496,12 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
}
// 新用户进群时系统消息群人数不准,所以从系统中取然后+1,更新群人数操作会在群消息地方处理
memberCount = groupQrcodeDTO.getUserNumber() + 1;
// 写入数据库
groupQrcodeDao.updateGroupCount(weixinGroupId, memberCount);
// 调用SDK获取群人数信息
WxGroupSDK.updateGroupMember(weixinGroupId, robotIdByGroupId, ip);
// 当群人数超过限制,或者群二维码更新状态为失败时更新群状态为满群
boolean overstaff = memberCount >= ((JoinGroupTypeEnum.GROUP_QRCODE.getCode().equals(groupQrcodeDTO.getJoinGroupType()) ? 100 : 500)) && QrcodeStatusEnum.ON_USE.value.equals(groupQrcodeDTO.getUseState());
boolean overstaff = memberCount >= ((JoinGroupTypeEnum.GROUP_QRCODE.getCode().equals(groupQrcodeDTO.getJoinGroupType()) ? 200 : 500)) && QrcodeStatusEnum.ON_USE.value.equals(groupQrcodeDTO.getUseState());
Integer updatState = Optional.ofNullable(weixinQrcodeBiz.getGroupVersion(Collections.singletonList(weixinGroupId))).map(x -> x.get(weixinGroupId)).map(BookWxQrcodeDTO::getUpdateState).orElse(-1);
if (overstaff || UpdateStatusEnum.FIAL.value.equals(updatState)) {
//将二维码修改为已满群状态
......@@ -851,7 +857,7 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
groupQrcode.setWeixinQrcodeId(oneQrcode.getId());
groupQrcode.setGroupSeq(maxSeq);
groupQrcode.setQrcodeHeadUrl(readerConsr.getNineHeadUrl());
groupQrcode.setUserNumber(oneQrcode.getUserNumber());
groupQrcode.setUserNumber(oneQrcode.getUserNumber() > 0 ? oneQrcode.getUserNumber() : 6);
groupQrcode.setGroupName(groupName);
groupQrcode.setClassifyId(classifyId);
this.insert(groupQrcode);
......@@ -880,4 +886,11 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
return groupQrcodeDao.getUserCountByJoinGroupType(joinGroupType);
}
@Override
public void updateGroupMember(GroupInfoVO groupInfoVO) {
if (groupInfoVO != null && !StringUtils.isEmpty(groupInfoVO.getGroupId()) && groupInfoVO.getCounts() > 0) {
groupQrcodeDao.updateUserNumber(groupInfoVO.getGroupId(), groupInfoVO.getCounts());
}
}
}
......@@ -8,6 +8,8 @@ import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException;
import com.sdk.wxgroup.GroupInfoVO;
import io.swagger.annotations.ApiParam;
import org.codehaus.jackson.JsonParseException;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -96,4 +98,9 @@ public interface GroupQrcodeFacade {
) throws PermissionException;
@ApiOperation("更新群人数")
@PostMapping("updateGroupMember")
ResponseDto<?> updateGroupMember(@RequestBody GroupInfoVO groupInfoVO);
}
......@@ -20,6 +20,7 @@ import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cookie.Cookie;
import com.sdk.wxgroup.GroupInfoVO;
import org.codehaus.jackson.JsonParseException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CookieValue;
......@@ -164,4 +165,12 @@ public class GroupQrcodeFacadeImpl implements GroupQrcodeFacade {
}
return new ResponseDto<>(groupQrcodeBiz.getUserCountByJoinGroupType(joinGroupType));
}
@ApiOperation("更新群人数")
@PostMapping("updateGroupMember")
@Override
public ResponseDto<?> updateGroupMember(@RequestBody GroupInfoVO groupInfoVO) {
groupQrcodeBiz.updateGroupMember(groupInfoVO);
return new ResponseDto<>();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment