Browse Source

uniapp 群聊开发(未完成)

master
xsx 3 years ago
parent
commit
9e6e9084fe
  1. 4
      im-platform/src/main/java/com/bx/implatform/controller/GroupController.java
  2. 2
      im-platform/src/main/java/com/bx/implatform/service/IGroupService.java
  3. 2
      im-platform/src/main/java/com/bx/implatform/service/impl/GroupMemberServiceImpl.java
  4. 29
      im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java
  5. 3
      im-platform/src/main/java/com/bx/implatform/vo/GroupVO.java
  6. 12
      im-ui/src/view/Group.vue
  7. 6
      im-uniapp/common/request.js
  8. 2
      im-uniapp/pages.json
  9. 4
      im-uniapp/pages/group/group.vue

4
im-platform/src/main/java/com/bx/implatform/controller/GroupController.java

@ -28,8 +28,8 @@ public class GroupController {
@ApiOperation(value = "创建群聊",notes="创建群聊")
@PostMapping("/create")
public Result<GroupVO> createGroup(@NotEmpty(message = "群名不能为空") @RequestParam String groupName){
return ResultUtils.success(groupService.createGroup(groupName));
public Result<GroupVO> createGroup(@Valid @RequestBody GroupVO vo){
return ResultUtils.success(groupService.createGroup(vo));
}
@ApiOperation(value = "修改群聊信息",notes="修改群聊信息")

2
im-platform/src/main/java/com/bx/implatform/service/IGroupService.java

@ -12,7 +12,7 @@ import java.util.List;
public interface IGroupService extends IService<Group> {
GroupVO createGroup(String groupName);
GroupVO createGroup(GroupVO vo);
GroupVO modifyGroup(GroupVO vo);

2
im-platform/src/main/java/com/bx/implatform/service/impl/GroupMemberServiceImpl.java

@ -112,7 +112,7 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
/**
*根据群聊id删除移除成员
* 根据群聊id删除移除成员
*
* @param groupId 群聊id
* @return

29
im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java

@ -52,41 +52,42 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
@Autowired
private IFriendService friendsService;
/**
* 创建新群聊
*
* @param groupName 群聊名称
* @param vo 群聊信息
* @return 群聊信息
**/
@Transactional
@Override
public GroupVO createGroup(String groupName) {
public GroupVO createGroup(GroupVO vo) {
UserSession session = SessionContext.getSession();
User user = userService.getById(session.getUserId());
LambdaQueryWrapper<Group> wrapper = Wrappers.lambdaQuery();
wrapper.eq(Group::getName,vo.getName());
if(this.count(wrapper)>0){
throw new GlobalException("已经存在名为'"+vo.getName()+"'的群聊");
}
// 保存群组数据
Group group = new Group();
group.setName(groupName);
Group group = BeanUtils.copyProperties(vo,Group.class);
group.setOwnerId(user.getId());
group.setHeadImage(user.getHeadImage());
group.setHeadImageThumb(user.getHeadImageThumb());
this.save(group);
// 把群主加入群
GroupMember groupMember = new GroupMember();
groupMember.setGroupId(group.getId());
groupMember.setUserId(user.getId());
groupMember.setAliasName(user.getNickName());
groupMember.setRemark(groupName);
groupMember.setAliasName(StringUtils.isEmpty(vo.getAliasName())?session.getNickName():vo.getAliasName());
groupMember.setRemark(StringUtils.isEmpty(vo.getRemark())?group.getName():vo.getRemark());
groupMember.setHeadImage(user.getHeadImageThumb());
groupMemberService.save(groupMember);
GroupVO vo = BeanUtils.copyProperties(group, GroupVO.class);
vo.setAliasName(user.getNickName());
vo.setRemark(groupName);
vo.setId(group.getId());
vo.setAliasName(groupMember.getAliasName());
vo.setRemark(groupMember.getRemark());
log.info("创建群聊,群聊id:{},群聊名称:{}",group.getId(),group.getName());
return vo;
}
/**
* 修改群聊信息
*

3
im-platform/src/main/java/com/bx/implatform/vo/GroupVO.java

@ -12,7 +12,7 @@ import javax.validation.constraints.NotNull;
@ApiModel("群信息VO")
public class GroupVO {
@NotNull(message = "群id不可为空")
@ApiModelProperty(value = "群id")
private Long id;
@ -21,7 +21,6 @@ public class GroupVO {
@ApiModelProperty(value = "群名称")
private String name;
@NotNull(message = "群主id不可为空")
@ApiModelProperty(value = "群主id")
private Long ownerId;

12
im-ui/src/view/Group.vue

@ -118,9 +118,19 @@
inputPattern: /\S/,
inputErrorMessage: '请输入群聊名称'
}).then((o) => {
let userInfo = this.$store.state.userStore.userInfo;
let data= {
name: o.value,
remark: o.value,
aliasName: userInfo.name,
headImage: userInfo.headImage,
headImageThumb: userInfo.headImageThumb,
ownerId: userInfo.id
}
this.$http({
url: `/group/create?groupName=${o.value}`,
method: 'post'
method: 'post',
data: data
}).then((group) => {
this.$store.commit("addGroup", group);
})

6
im-uniapp/common/request.js

@ -46,7 +46,7 @@ const request = (options) => {
return request(options)
} else {
uni.showToast({
icon: "error",
icon: "none",
title: res.data.message,
duration: 1500
})
@ -54,6 +54,10 @@ const request = (options) => {
}
},
fail(error) {
uni.showToast({
title: "网络似乎有点不给力,请稍后重试",
duration: 1500
})
return reject(error)
}
});

2
im-uniapp/pages.json

@ -38,6 +38,8 @@
"path": "pages/friend/friend-add"
}, {
"path": "pages/group/group-info"
}, {
"path": "pages/group/group-edit"
}],
"globalStyle": {
"navigationBarTextStyle": "black",

4
im-uniapp/pages/group/group.vue

@ -28,7 +28,9 @@
methods: {
onFocusSearch() {},
onCreateNewGroup() {
uni.navigateTo({
url: "/pages/group/group-edit"
})
}
}

Loading…
Cancel
Save