新增表情包功能

This commit is contained in:
WSJ 2023-07-03 18:17:08 +08:00
parent b994d0b962
commit 5347d4f56b
7 changed files with 248 additions and 0 deletions

10
docs/version/emojis.sql Normal file
View File

@ -0,0 +1,10 @@
CREATE TABLE `mc_emojis` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`user_id` bigint(20) NOT NULL COMMENT '用户表ID',
`expression_url` varchar(255) NOT NULL COMMENT '表情地址',
`create_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
`update_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '修改时间',
`del_flg` int(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除(0-正常,1-删除)',
PRIMARY KEY (`id`),
KEY `IDX_MC_EMOJIS_USER_ID` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='用户表情包';

View File

@ -0,0 +1,58 @@
package com.abin.mallchat.common.chat.domain.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* 用户表情包
*
* @author: WuShiJie
* @createTime: 2023/7/2 22:00
*/
@Data
@TableName(value = "mc_emojis")
public class McEmojis implements Serializable {
private static final long serialVersionUID = -7690290707154737263L;
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 用户表ID
*/
@TableField(value = "user_id")
private Long userId;
/**
* 表情地址
*/
@NotNull
@TableField(value = "expression_url")
private String expressionUrl;
/**
* 创建时间
*/
@TableField("create_time")
private Date createTime;
/**
* 修改时间
*/
@TableField("update_time")
private Date updateTime;
@TableField(value = "del_flg")
@TableLogic(value = "0",delval = "1")
private Integer delFlg;
}

View File

@ -0,0 +1,13 @@
package com.abin.mallchat.common.user.mapper;
import com.abin.mallchat.common.chat.domain.entity.McEmojis;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 用户表情包 Mapper
*
* @author: WuShiJie
* @createTime: 2023/7/3 14:24
*/
public interface EmojisMapper extends BaseMapper<McEmojis> {
}

View File

@ -0,0 +1,84 @@
package com.abin.mallchat.custom.user.controller;
import cn.hutool.core.util.StrUtil;
import com.abin.mallchat.common.chat.domain.entity.McEmojis;
import com.abin.mallchat.common.common.domain.vo.request.CursorPageBaseReq;
import com.abin.mallchat.common.common.domain.vo.response.ApiResult;
import com.abin.mallchat.common.common.domain.vo.response.CursorPageBaseResp;
import com.abin.mallchat.common.common.utils.RequestHolder;
import com.abin.mallchat.custom.user.service.EmojisService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
/**
* 用户表情包
*
* @author: WuShiJie
* @createTime: 2023/7/3 14:21
*/
@RestController
@RequestMapping("/capi/emojis")
@Api(tags = "用户表情包管理相关接口")
public class EmojisController {
/**
* 用户表情包 Service
*/
@Resource
private EmojisService emojisService;
/**
* 表情包列表
*
* @param request 游标翻页请求参数
* @return 表情包列表
* @author WuShiJie
* @createTime 2023/7/3 14:46
**/
@GetMapping("/getEmojisPage")
@ApiOperation("表情包列表")
public ApiResult<CursorPageBaseResp<McEmojis>> getEmojisPage(@Valid CursorPageBaseReq request) {
return ApiResult.success(emojisService.getEmojisPage(request, RequestHolder.get().getUid()));
}
/**
* 新增表情包
*
* @param emojis 用户表情包
* @return 表情包
* @author WuShiJie
* @createTime 2023/7/3 14:46
**/
@PostMapping("/insertEmojis")
@ApiOperation("表情包列表")
public ApiResult<McEmojis> insertEmojis(@Valid @RequestBody McEmojis emojis) {
emojis.setUserId(RequestHolder.get().getUid());
LambdaQueryWrapper<McEmojis> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(McEmojis::getUserId,emojis.getUserId());
queryWrapper.eq(McEmojis::getExpressionUrl,emojis.getExpressionUrl());
emojisService.saveOrUpdate(emojis, queryWrapper);
return ApiResult.success(emojis);
}
/**
* 删除表情包
*
* @param id 用户表情包ID
* @return 删除结果
* @author WuShiJie
* @createTime 2023/7/3 14:46
**/
@GetMapping("/deleteEmojis")
@ApiOperation("表情包列表")
public ApiResult<Void> deleteEmojis(@RequestParam("id") String id) {
emojisService.removeById(id);
return ApiResult.success();
}
}

View File

@ -0,0 +1,14 @@
package com.abin.mallchat.custom.user.domain.vo.request.user;
import com.abin.mallchat.common.common.domain.vo.request.CursorPageBaseReq;
import lombok.Data;
/**
* 描述此类的作用
*
* @author: WuShiJie
* @createTime: 2023/7/3 14:52
*/
@Data
public class EmojisPageReq extends CursorPageBaseReq {
}

View File

@ -0,0 +1,26 @@
package com.abin.mallchat.custom.user.service;
import com.abin.mallchat.common.chat.domain.entity.McEmojis;
import com.abin.mallchat.common.common.domain.vo.request.CursorPageBaseReq;
import com.abin.mallchat.common.common.domain.vo.response.CursorPageBaseResp;
import com.abin.mallchat.custom.chat.domain.vo.response.ChatRoomResp;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 用户表情包 Service
*
* @author: WuShiJie
* @createTime: 2023/7/3 14:22
*/
public interface EmojisService extends IService<McEmojis> {
/**
* 表情包列表
*
* @param request 游标翻页请求参数
* @return 表情包列表
* @author WuShiJie
* @createTime 2023/7/3 14:46
**/
CursorPageBaseResp<McEmojis> getEmojisPage(CursorPageBaseReq request, Long uid);
}

View File

@ -0,0 +1,43 @@
package com.abin.mallchat.custom.user.service.impl;
import com.abin.mallchat.common.chat.domain.entity.McEmojis;
import com.abin.mallchat.common.common.domain.vo.request.CursorPageBaseReq;
import com.abin.mallchat.common.common.domain.vo.response.CursorPageBaseResp;
import com.abin.mallchat.common.common.utils.CursorUtils;
import com.abin.mallchat.common.user.mapper.EmojisMapper;
import com.abin.mallchat.custom.chat.service.adapter.RoomAdapter;
import com.abin.mallchat.custom.user.service.EmojisService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 用户表情包 ServiceImpl
*
* @author: WuShiJie
* @createTime: 2023/7/3 14:23
*/
@Service
@Slf4j
public class EmojisServiceImpl extends ServiceImpl<EmojisMapper, McEmojis> implements EmojisService {
@Autowired
private CursorUtils cursorUtils;
/**
* 表情包列表
*
* @param request 游标翻页请求参数
* @return 表情包列表
* @author WuShiJie
* @createTime 2023/7/3 14:46
**/
@Override
public CursorPageBaseResp<McEmojis> getEmojisPage(CursorPageBaseReq request, Long uid) {
CursorPageBaseResp<McEmojis> cursorPageByMysql = cursorUtils.getCursorPageByMysql(this, request, wrapper -> {
wrapper.eq(McEmojis::getUserId, uid);
}, McEmojis::getId);
return cursorPageByMysql;
}
}