linhw 2024-05-14 15:39:03 +08:00
parent 195c669cfc
commit 0a244db7d7
12 changed files with 721 additions and 3 deletions

View File

@ -0,0 +1,72 @@
package com.mdd.common.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("圈子信息实体")
public class AppCircle implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
@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 userInfo;
@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 = "是否删除: [0=否, 1=是]")
private Integer isDelete;
@ApiModelProperty(value = "创建时间")
private Long createTime;
@ApiModelProperty(value = "更新时间")
private Long updateTime;
@ApiModelProperty(value = "删除时间")
private Long deleteTime;
}

View File

@ -0,0 +1,13 @@
package com.mdd.common.mapper;
import com.mdd.common.core.basics.IBaseMapper;
import com.mdd.common.entity.AppCircle;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @author LikeAdmin
*/
@Mapper
public interface AppCircleMapper extends IBaseMapper<AppCircle> {
}

View File

@ -0,0 +1,69 @@
package com.mdd.front.controller;
import com.mdd.front.aop.Log;
import com.mdd.front.service.IAppCircleService;
import com.mdd.front.validate.AppCircleCreateValidate;
import com.mdd.front.validate.AppCircleUpdateValidate;
import com.mdd.front.validate.AppCircleSearchValidate;
import com.mdd.front.validate.common.IdValidate;
import com.mdd.front.validate.common.PageValidate;
import com.mdd.front.vo.AppCircleListedVo;
import com.mdd.front.vo.AppCircleDetailVo;
import com.mdd.common.core.AjaxResult;
import com.mdd.common.core.PageResult;
import com.mdd.common.validator.annotation.IDMust;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("api/circle")
@Api(tags = "圈子信息管理")
public class AppCircleController {
@Resource
IAppCircleService iAppCircleService;
@GetMapping("/list")
@ApiOperation(value="圈子信息列表")
public AjaxResult<PageResult<AppCircleListedVo>> list(@Validated PageValidate pageValidate,
@Validated AppCircleSearchValidate searchValidate) {
PageResult<AppCircleListedVo> list = iAppCircleService.list(pageValidate, searchValidate);
return AjaxResult.success(list);
}
@GetMapping("/detail")
@ApiOperation(value="圈子信息详情")
public AjaxResult<AppCircleDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
AppCircleDetailVo detail = iAppCircleService.detail(id);
return AjaxResult.success(detail);
}
@Log(title = "圈子信息新增")
@PostMapping("/add")
@ApiOperation(value="圈子信息新增")
public AjaxResult<Object> add(@Validated @RequestBody AppCircleCreateValidate createValidate) {
iAppCircleService.add(createValidate);
return AjaxResult.success();
}
@Log(title = "圈子信息编辑")
@PostMapping("/edit")
@ApiOperation(value="圈子信息编辑")
public AjaxResult<Object> edit(@Validated @RequestBody AppCircleUpdateValidate updateValidate) {
iAppCircleService.edit(updateValidate);
return AjaxResult.success();
}
@Log(title = "圈子信息删除")
@PostMapping("/del")
@ApiOperation(value="圈子信息删除")
public AjaxResult<Object> del(@Validated @RequestBody IdValidate idValidate) {
iAppCircleService.del(idValidate.getId());
return AjaxResult.success();
}
}

View File

@ -0,0 +1,60 @@
package com.mdd.front.service;
import com.mdd.front.validate.common.PageValidate;
import com.mdd.front.validate.AppCircleCreateValidate;
import com.mdd.front.validate.AppCircleUpdateValidate;
import com.mdd.front.validate.AppCircleSearchValidate;
import com.mdd.front.vo.AppCircleListedVo;
import com.mdd.front.vo.AppCircleDetailVo;
import com.mdd.common.core.PageResult;
/**
*
* @author LikeAdmin
*/
public interface IAppCircleService {
/**
*
*
* @author LikeAdmin
* @param pageValidate
* @param searchValidate
* @return PageResult<AppCircleListedVo>
*/
PageResult<AppCircleListedVo> list(PageValidate pageValidate, AppCircleSearchValidate searchValidate);
/**
*
*
* @author LikeAdmin
* @param id ID
* @return AppCircleDetailVo
*/
AppCircleDetailVo detail(Integer id);
/**
*
*
* @author LikeAdmin
* @param createValidate
*/
void add(AppCircleCreateValidate createValidate);
/**
*
*
* @author LikeAdmin
* @param updateValidate
*/
void edit(AppCircleUpdateValidate updateValidate);
/**
*
*
* @author LikeAdmin
* @param id ID
*/
void del(Integer id);
}

View File

@ -0,0 +1,189 @@
package com.mdd.front.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.yulichang.query.MPJQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mdd.front.validate.common.PageValidate;
import com.mdd.front.service.IAppCircleService;
import com.mdd.front.validate.AppCircleCreateValidate;
import com.mdd.front.validate.AppCircleUpdateValidate;
import com.mdd.front.validate.AppCircleSearchValidate;
import com.mdd.front.vo.AppCircleListedVo;
import com.mdd.front.vo.AppCircleDetailVo;
import com.mdd.common.config.GlobalConfig;
import com.mdd.common.core.PageResult;
import com.mdd.common.entity.AppCircle;
import com.mdd.common.mapper.AppCircleMapper;
import com.mdd.common.util.ListUtils;
import com.mdd.common.util.TimeUtils;
import com.mdd.common.util.UrlUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.util.*;
/**
*
* @author LikeAdmin
*/
@Service
public class AppCircleServiceImpl implements IAppCircleService {
@Resource
AppCircleMapper appCircleMapper;
/**
*
*
* @author LikeAdmin
* @param pageValidate
* @param searchValidate
* @return PageResult<AppCircleListedVo>
*/
@Override
public PageResult<AppCircleListedVo> list(PageValidate pageValidate, AppCircleSearchValidate searchValidate) {
Integer page = pageValidate.getPageNo();
Integer limit = pageValidate.getPageSize();
QueryWrapper<AppCircle> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_delete", 0);
queryWrapper.orderByDesc("id");
appCircleMapper.setSearch(queryWrapper, searchValidate, new String[]{
"like:name:str",
"=:imgUrl@img_url:str",
"=:content:str",
"=:type:int",
"=:typeInfo@type_info:int",
"=:userInfo@user_info:int",
"=:isSos@is_sos:int",
"=:sosUse@sos_use:int",
"=:isWrite@is_write:int",
"=:isRead@is_read:int",
"=:isCheck@is_check:int",
"=:longitude:str",
"=:latitude:str",
});
IPage<AppCircle> iPage = appCircleMapper.selectPage(new Page<>(page, limit), queryWrapper);
List<AppCircleListedVo> list = new LinkedList<>();
for(AppCircle item : iPage.getRecords()) {
AppCircleListedVo vo = new AppCircleListedVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime()));
vo.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime()));
list.add(vo);
}
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
}
/**
*
*
* @author LikeAdmin
* @param id
* @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"));
Assert.notNull(model, "数据不存在");
AppCircleDetailVo vo = new AppCircleDetailVo();
BeanUtils.copyProperties(model, vo);
return vo;
}
/**
*
*
* @author LikeAdmin
* @param createValidate
*/
@Override
public void add(AppCircleCreateValidate createValidate) {
AppCircle model = new AppCircle();
model.setName(createValidate.getName());
model.setImgUrl(createValidate.getImgUrl());
model.setContent(createValidate.getContent());
model.setType(createValidate.getType());
model.setTypeInfo(createValidate.getTypeInfo());
model.setUserInfo(createValidate.getUserInfo());
model.setIsSos(createValidate.getIsSos());
model.setSosUse(createValidate.getSosUse());
model.setIsWrite(createValidate.getIsWrite());
model.setIsRead(createValidate.getIsRead());
model.setIsCheck(createValidate.getIsCheck());
model.setLongitude(createValidate.getLongitude());
model.setLatitude(createValidate.getLatitude());
model.setCreateTime(System.currentTimeMillis() / 1000);
model.setUpdateTime(System.currentTimeMillis() / 1000);
appCircleMapper.insert(model);
}
/**
*
*
* @author LikeAdmin
* @param updateValidate
*/
@Override
public void edit(AppCircleUpdateValidate updateValidate) {
AppCircle model = appCircleMapper.selectOne(
new QueryWrapper<AppCircle>()
.eq("id", updateValidate.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setId(updateValidate.getId());
model.setName(updateValidate.getName());
model.setImgUrl(updateValidate.getImgUrl());
model.setContent(updateValidate.getContent());
model.setType(updateValidate.getType());
model.setTypeInfo(updateValidate.getTypeInfo());
model.setUserInfo(updateValidate.getUserInfo());
model.setIsSos(updateValidate.getIsSos());
model.setSosUse(updateValidate.getSosUse());
model.setIsWrite(updateValidate.getIsWrite());
model.setIsRead(updateValidate.getIsRead());
model.setIsCheck(updateValidate.getIsCheck());
model.setLongitude(updateValidate.getLongitude());
model.setLatitude(updateValidate.getLatitude());
model.setUpdateTime(System.currentTimeMillis() / 1000);
appCircleMapper.updateById(model);
}
/**
*
*
* @author LikeAdmin
* @param id ID
*/
@Override
public void del(Integer id) {
AppCircle model = appCircleMapper.selectOne(
new QueryWrapper<AppCircle>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
appCircleMapper.updateById(model);
}
}

View File

@ -0,0 +1,67 @@
package com.mdd.front.validate;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import javax.validation.constraints.*;
@Data
@ApiModel("圈子信息创建参数")
public class AppCircleCreateValidate implements Serializable {
private static final long serialVersionUID = 1L;
@NotNull(message = "name参数缺失")
@ApiModelProperty(value = "圈子名字")
private String name;
@NotNull(message = "imgUrl参数缺失")
@ApiModelProperty(value = "圈子封面")
private String imgUrl;
@NotNull(message = "content参数缺失")
@ApiModelProperty(value = "简介")
private String content;
@NotNull(message = "type参数缺失")
@ApiModelProperty(value = "圈子类型1私密群2好友圈3位置圈")
private Integer type;
@NotNull(message = "typeInfo参数缺失")
@ApiModelProperty(value = "圈子类型补充1固定位置2可变位置")
private Integer typeInfo;
@NotNull(message = "userInfo参数缺失")
@ApiModelProperty(value = "创建用户")
private Integer userInfo;
@NotNull(message = "isSos参数缺失")
@ApiModelProperty(value = "是否开启sos通知1是2否")
private Integer isSos;
@NotNull(message = "sosUse参数缺失")
@ApiModelProperty(value = "sos消耗金额")
private Integer sosUse;
@NotNull(message = "isWrite参数缺失")
@ApiModelProperty(value = "圈子内容是否仅圈友可写入1是2否")
private Integer isWrite;
@NotNull(message = "isRead参数缺失")
@ApiModelProperty(value = "圈子内容是否仅圈友可见1是2否")
private Integer isRead;
@NotNull(message = "isCheck参数缺失")
@ApiModelProperty(value = "加入是否需要审核")
private Integer isCheck;
@NotNull(message = "longitude参数缺失")
@ApiModelProperty(value = "经度")
private String longitude;
@NotNull(message = "latitude参数缺失")
@ApiModelProperty(value = "纬度")
private String latitude;
}

View File

@ -0,0 +1,53 @@
package com.mdd.front.validate;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("圈子信息搜素参数")
public class AppCircleSearchValidate implements Serializable {
private static final long serialVersionUID = 1L;
@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 userInfo;
@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;
}

View File

@ -0,0 +1,76 @@
package com.mdd.front.validate;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import javax.validation.constraints.*;
import com.mdd.common.validator.annotation.IDMust;
/**
*
* @author LikeAdmin
*/
@Data
@ApiModel("圈子信息更新参数")
public class AppCircleUpdateValidate implements Serializable {
private static final long serialVersionUID = 1L;
@IDMust(message = "id参数必传且需大于0")
@ApiModelProperty(value = "主键")
private Integer id;
@NotNull(message = "name参数缺失")
@ApiModelProperty(value = "圈子名字")
private String name;
@NotNull(message = "imgUrl参数缺失")
@ApiModelProperty(value = "圈子封面")
private String imgUrl;
@NotNull(message = "content参数缺失")
@ApiModelProperty(value = "简介")
private String content;
@NotNull(message = "type参数缺失")
@ApiModelProperty(value = "圈子类型1私密群2好友圈3位置圈")
private Integer type;
@NotNull(message = "typeInfo参数缺失")
@ApiModelProperty(value = "圈子类型补充1固定位置2可变位置")
private Integer typeInfo;
@NotNull(message = "userInfo参数缺失")
@ApiModelProperty(value = "创建用户")
private Integer userInfo;
@NotNull(message = "isSos参数缺失")
@ApiModelProperty(value = "是否开启sos通知1是2否")
private Integer isSos;
@NotNull(message = "sosUse参数缺失")
@ApiModelProperty(value = "sos消耗金额")
private Integer sosUse;
@NotNull(message = "isWrite参数缺失")
@ApiModelProperty(value = "圈子内容是否仅圈友可写入1是2否")
private Integer isWrite;
@NotNull(message = "isRead参数缺失")
@ApiModelProperty(value = "圈子内容是否仅圈友可见1是2否")
private Integer isRead;
@NotNull(message = "isCheck参数缺失")
@ApiModelProperty(value = "加入是否需要审核")
private Integer isCheck;
@NotNull(message = "longitude参数缺失")
@ApiModelProperty(value = "经度")
private String longitude;
@NotNull(message = "latitude参数缺失")
@ApiModelProperty(value = "纬度")
private String latitude;
}

View File

@ -0,0 +1,58 @@
package com.mdd.front.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("圈子信息详情Vo")
public class AppCircleDetailVo 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 userInfo;
@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;
}

View File

@ -0,0 +1,61 @@
package com.mdd.front.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("圈子信息列表Vo")
public class AppCircleListedVo 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 = "圈子类型1私密群2好友圈3位置圈")
private Integer type;
@ApiModelProperty(value = "圈子类型补充1固定位置2可变位置")
private Integer typeInfo;
@ApiModelProperty(value = "创建用户")
private Integer userInfo;
@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 String createTime;
@ApiModelProperty(value = "更新时间")
private String updateTime;
}

View File

@ -5,12 +5,12 @@ import com.alibaba.fastjson2.JSONArray;
#end
import ${packageName}.front.aop.Log;
import ${packageName}.front.service.I${EntityName}Service;
import ${packageName}.front.validate.commons.IdValidate;
import ${packageName}.front.validate.common.IdValidate;
import ${packageName}.front.validate.${EntityName}CreateValidate;
import ${packageName}.front.validate.${EntityName}UpdateValidate;
import ${packageName}.front.validate.${EntityName}SearchValidate;
#if($table.genTpl.equals("crud"))
import ${packageName}.front.validate.commons.PageValidate;
import ${packageName}.front.validate.common.PageValidate;
import ${packageName}.front.vo.${EntityName}ListedVo;
#end
import ${packageName}.front.vo.${EntityName}DetailVo;

View File

@ -4,7 +4,7 @@ package ${packageName}.front.service;
import com.alibaba.fastjson2.JSONArray;
#end
#if($table.genTpl.equals("crud"))
import ${packageName}.front.validate.commons.PageValidate;
import ${packageName}.front.validate.common.PageValidate;
#end
import ${packageName}.front.validate.${EntityName}CreateValidate;
import ${packageName}.front.validate.${EntityName}UpdateValidate;