diff --git a/docs/version/emojis.sql b/docs/version/emojis.sql new file mode 100644 index 0000000..ea238de --- /dev/null +++ b/docs/version/emojis.sql @@ -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='用户表情包'; \ No newline at end of file diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/McEmojis.java b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/McEmojis.java new file mode 100644 index 0000000..09d7ecf --- /dev/null +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/McEmojis.java @@ -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; + + +} diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/user/mapper/EmojisMapper.java b/mallchat-common/src/main/java/com/abin/mallchat/common/user/mapper/EmojisMapper.java new file mode 100644 index 0000000..67af9e6 --- /dev/null +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/user/mapper/EmojisMapper.java @@ -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 { +} diff --git a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/controller/EmojisController.java b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/controller/EmojisController.java new file mode 100644 index 0000000..2121797 --- /dev/null +++ b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/controller/EmojisController.java @@ -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> 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 insertEmojis(@Valid @RequestBody McEmojis emojis) { + emojis.setUserId(RequestHolder.get().getUid()); + LambdaQueryWrapper 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 deleteEmojis(@RequestParam("id") String id) { + emojisService.removeById(id); + return ApiResult.success(); + } +} diff --git a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/domain/vo/request/user/EmojisPageReq.java b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/domain/vo/request/user/EmojisPageReq.java new file mode 100644 index 0000000..9dfe00f --- /dev/null +++ b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/domain/vo/request/user/EmojisPageReq.java @@ -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 { +} diff --git a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/service/EmojisService.java b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/service/EmojisService.java new file mode 100644 index 0000000..89fb81f --- /dev/null +++ b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/service/EmojisService.java @@ -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 { + + /** + * 表情包列表 + * + * @param request 游标翻页请求参数 + * @return 表情包列表 + * @author WuShiJie + * @createTime 2023/7/3 14:46 + **/ + CursorPageBaseResp getEmojisPage(CursorPageBaseReq request, Long uid); +} diff --git a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/service/impl/EmojisServiceImpl.java b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/service/impl/EmojisServiceImpl.java new file mode 100644 index 0000000..26dbe09 --- /dev/null +++ b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/service/impl/EmojisServiceImpl.java @@ -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 implements EmojisService { + + @Autowired + private CursorUtils cursorUtils; + + /** + * 表情包列表 + * + * @param request 游标翻页请求参数 + * @return 表情包列表 + * @author WuShiJie + * @createTime 2023/7/3 14:46 + **/ + @Override + public CursorPageBaseResp getEmojisPage(CursorPageBaseReq request, Long uid) { + CursorPageBaseResp cursorPageByMysql = cursorUtils.getCursorPageByMysql(this, request, wrapper -> { + wrapper.eq(McEmojis::getUserId, uid); + }, McEmojis::getId); + return cursorPageByMysql; + } +}