linhw 2024-05-16 13:49:52 +08:00
parent 57ad54dc42
commit d209830640
6 changed files with 109 additions and 15 deletions

View File

@ -4,6 +4,7 @@ import com.mdd.common.core.basics.IBaseMapper;
import com.mdd.common.entity.AddressVo;
import com.mdd.common.entity.AppCircle;
import com.mdd.common.vo.AppCircleVo;
import com.mdd.common.vo.CircleDetailVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -20,5 +21,5 @@ public interface AppCircleMapper extends IBaseMapper<AppCircle> {
List<Integer> listFriendByUserId(@Param("ids") List<Integer> ids);
List<AddressVo> circleUserGroupUser(@Param("circleId") Long circleId);
CircleDetailVo selectOne(@Param("circleId") Integer circleId);
}

View File

@ -0,0 +1,69 @@
package com.mdd.common.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("圈子信息详情Vo")
public class CircleDetailVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "圈子名字")
private String name;
@ApiModelProperty(value = "圈子封面")
private String imgUrl;
@ApiModelProperty(value = "简介")
private String content;
@ApiModelProperty(value = "圈子类型1私密群2好友圈3位置圈")
private Integer type;
@ApiModelProperty(value = "圈子类型补充1固定位置2可变位置")
private Integer typeInfo;
@ApiModelProperty(value = "创建用户")
private Integer userId;
@ApiModelProperty(value = "是否开启sos通知1是2否")
private Integer isSos;
@ApiModelProperty(value = "sos消耗金额")
private Integer sosUse;
@ApiModelProperty(value = "圈子内容是否仅圈友可写入1是2否")
private Integer isWrite;
@ApiModelProperty(value = "圈子内容是否仅圈友可见1是2否")
private Integer isRead;
@ApiModelProperty(value = "加入是否需要审核")
private Integer isCheck;
@ApiModelProperty(value = "经度")
private String longitude;
@ApiModelProperty(value = "纬度")
private String latitude;
@ApiModelProperty(value = "用户数")
private Integer userNum;
@ApiModelProperty(value = "好友数")
private Integer friendNum;
@ApiModelProperty(value = "是否加入1是2否")
private Integer is_join;
}

View File

@ -68,6 +68,17 @@
order by count(c.id),count(l.id) desc
</select>
<select id="selectOne" resultType="com.mdd.common.vo.CircleDetailVo">
select
<include refid="circleColumns"/>,
count(u.id) as "userNum"
from la_app_circle a
left join la_app_circle_user u on a.id = u.user_id and u.is_delete = 0
where a.is_delete = 0
and a.id = #{circleId}
group by a.id
</select>
<select id="circleUserGroupUser" resultType="com.mdd.common.entity.AddressVo">
select
a.longitude as "longitude",

View File

@ -2,6 +2,7 @@ package com.mdd.front.controller;
import com.github.pagehelper.PageInfo;
import com.mdd.common.vo.AppCircleVo;
import com.mdd.common.vo.CircleDetailVo;
import com.mdd.front.aop.Log;
import com.mdd.front.service.IAppCircleService;
import com.mdd.front.validate.AppCircleCreateValidate;
@ -55,8 +56,8 @@ public class AppCircleController {
@GetMapping("/detail")
@ApiOperation(value="圈子信息详情")
public AjaxResult<AppCircleDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
AppCircleDetailVo detail = iAppCircleService.detail(id);
public AjaxResult<CircleDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
CircleDetailVo detail = iAppCircleService.detail(id);
return AjaxResult.success(detail);
}

View File

@ -3,6 +3,7 @@ package com.mdd.front.service;
import com.github.pagehelper.PageInfo;
import com.mdd.common.core.AjaxResult;
import com.mdd.common.vo.AppCircleVo;
import com.mdd.common.vo.CircleDetailVo;
import com.mdd.front.validate.common.PageValidate;
import com.mdd.front.validate.AppCircleCreateValidate;
import com.mdd.front.validate.AppCircleUpdateValidate;
@ -36,7 +37,7 @@ public interface IAppCircleService {
* @param id ID
* @return AppCircleDetailVo
*/
AppCircleDetailVo detail(Integer id);
CircleDetailVo detail(Integer id);
/**
*

View File

@ -13,6 +13,7 @@ import com.mdd.common.mapper.AppCircleAddressMapper;
import com.mdd.common.mapper.AppCircleUserMapper;
import com.mdd.common.mapper.AppFriendMapper;
import com.mdd.common.vo.AppCircleVo;
import com.mdd.common.vo.CircleDetailVo;
import com.mdd.front.validate.common.PageValidate;
import com.mdd.front.service.IAppCircleService;
import com.mdd.front.validate.AppCircleCreateValidate;
@ -25,6 +26,7 @@ import com.mdd.common.entity.AppCircle;
import com.mdd.common.mapper.AppCircleMapper;
import com.mdd.common.util.TimeUtils;
import com.mdd.front.vo.AppCircleListedVo;
import io.swagger.models.auth.In;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
@ -210,18 +212,27 @@ public class AppCircleServiceImpl implements IAppCircleService {
* @return AppCircle
*/
@Override
public AppCircleDetailVo detail(Integer id) {
AppCircle model = appCircleMapper.selectOne(
new QueryWrapper<AppCircle>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
public CircleDetailVo detail(Integer id) {
CircleDetailVo model = appCircleMapper.selectOne(id);
Assert.notNull(model, "数据不存在");
AppCircleDetailVo vo = new AppCircleDetailVo();
BeanUtils.copyProperties(model, vo);
return vo;
Integer userId = 1;
// 圈内
List<Integer> ids = appCircleUserMapper.selectList(new QueryWrapper<AppCircleUser>()
.eq("circle_id",id)).stream().map(x->x.getUserId()).collect(Collectors.toList());
model.setIs_join(ids.contains(userId) ? 1 : 2);
// 好友id
List<AppFriend> friends = appFriendMapper.selectList(new QueryWrapper<AppFriend>()
.eq("user_id",userId)
);
Integer friendNum = 0;
List<Integer> friendIds = friends.stream().map(x->x.getFriendId()).collect(Collectors.toList());
for (Integer friendId : friendIds) {
if (ids.contains(friendId)) {
friendNum = friendNum + 1;
}
}
model.setFriendNum(friendNum);
return model;
}
/**