diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/bean/query/WeChatMessageHandlerConfigPageQuery.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/bean/query/WeChatMessageHandlerConfigPageQuery.java new file mode 100644 index 0000000000000000000000000000000000000000..fdeb050d6ea060cbde5a36d74f45ccb8602473ce --- /dev/null +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/bean/query/WeChatMessageHandlerConfigPageQuery.java @@ -0,0 +1,20 @@ +package pers.hll.aigc4chat.server.bean.query; + +import io.swagger.v3.oas.annotations.Parameter; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 消息处理器配置分页查询参数 + * + * @author hll + * @since 2024/05/12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class WeChatMessageHandlerConfigPageQuery extends PageQuery { + + private String remarkName; + + private String handlerName; +} diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/controller/wechat/MessageController.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/controller/wechat/MessageController.java index a99bb37b3be9f2412f73b8afa7fc5c6de45c1948..ff86f911609b6ce6efb317967f9949aa2c1cef2b 100644 --- a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/controller/wechat/MessageController.java +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/controller/wechat/MessageController.java @@ -44,7 +44,7 @@ public class MessageController { private final IWeChatApiService weChatApiService; @GetMapping("/page") - @Operation(summary = "分页", description = "分页查询,不传分页参数默认: {\"pageSize\" = 1 , \"pageNum\" = 10}\"") + @Operation(summary = "消息-查询-分页", description = "默认分页参数: {\"pageSize\" = 1 , \"pageNum\" = 10}\"") public R> pageMessage(WeChatMessagePageQuery query) { return R.data(weChatMessageService.pageMessage(query)); } @@ -78,7 +78,7 @@ public class MessageController { return R.success(filePath); } - @Operation(summary = "获得聊天记录") + @Operation(summary = "获得文字聊天记录") @GetMapping("/chat-history") public R> chatHistory( @RequestParam @Parameter(description = "用户名") String userName, diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/controller/wechat/UserController.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/controller/wechat/UserController.java index 6fb65de30762e2ce5e535eb1e17fbdb95581fc23..e5ca556394868350633c55125ea2490d4c64aa12 100644 --- a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/controller/wechat/UserController.java +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/controller/wechat/UserController.java @@ -34,31 +34,31 @@ public class UserController { private final IWeChatGroupMemberService weChatGroupMemberService; @GetMapping("/page/group") - @Operation(summary = "群分页", description = "分页查询,不传分页参数默认: {\"pageSize\" = 1 , \"pageNum\" = 10}\"") + @Operation(summary = "群-查询-分页", description = "默认分页参数: {\"pageSize\" = 1 , \"pageNum\" = 10}\"") public R> pageGroup(WeChatUserPageQuery query) { return R.data(weChatUserService.pageGroup(query)); } @GetMapping("/page/group/member") - @Operation(summary = "群成员分页", description = "分页查询,不传分页参数默认: {\"pageSize\" = 1 , \"pageNum\" = 10}\"") + @Operation(summary = "群成员-查询-分页", description = "默认分页参数: {\"pageSize\" = 1 , \"pageNum\" = 10}\"") public R> pageGroupMember(WeChatUserPageQuery query) { return R.data(weChatGroupMemberService.pageGroupMember(query)); } @GetMapping("/list/group/member") - @Operation(summary = "群成员列表") - public R> listGroupMember(String groupUserName) { + @Operation(summary = "群成员-查询-列表") + public R> listGroupMember(@Parameter(description = "群昵称") String groupUserName) { return R.data(weChatGroupMemberService.listGroupMember(groupUserName)); } @GetMapping("/page/friend") - @Operation(summary = "好友分页", description = "分页查询,不传分页参数默认: {\"pageSize\" = 1 , \"pageNum\" = 10}\"") + @Operation(summary = "好友-查询-分页", description = "默认分页参数: {\"pageSize\" = 1 , \"pageNum\" = 10}\"") public R> pageFriend(WeChatUserPageQuery query) { return R.data(weChatUserService.pageFriend(query)); } @GetMapping("/list/friend") - @Operation(summary = "好友列表") + @Operation(summary = "好友-查询-列表") public R> listFriend(@Parameter(description = "要查询的用户名,支持模糊查询") String name) { return R.data(weChatUserService.listByName(name)); } diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/controller/wechat/WechatMessageHandlerConfigController.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/controller/wechat/WechatMessageHandlerConfigController.java index e7e1d98c86ffbf40f11208f5708d9d52c2c65a90..c34ab8abe998125bfa0a1224a2907ed273d4ea48 100644 --- a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/controller/wechat/WechatMessageHandlerConfigController.java +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/controller/wechat/WechatMessageHandlerConfigController.java @@ -1,18 +1,22 @@ package pers.hll.aigc4chat.server.controller.wechat; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; -import org.springframework.util.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; import pers.hll.aigc4chat.base.exception.BizException; import pers.hll.aigc4chat.base.util.EasyCollUtil; import pers.hll.aigc4chat.server.base.R; +import pers.hll.aigc4chat.server.bean.query.WeChatMessageHandlerConfigPageQuery; import pers.hll.aigc4chat.server.entity.WeChatMessageHandlerConfig; import pers.hll.aigc4chat.server.entity.WeChatUser; import pers.hll.aigc4chat.server.service.IWeChatUserService; import pers.hll.aigc4chat.server.service.IWeChatMessageHandlerConfigService; +import pers.hll.aigc4chat.server.util.PageUtil; import java.util.List; @@ -34,43 +38,51 @@ public class WechatMessageHandlerConfigController { private final IWeChatUserService weChatUserService; + @GetMapping("/page") + @Operation(summary = "消息处理器-查询-分页", description = "默认分页参数: {\"pageSize\" = 1 , \"pageNum\" = 10}\"") + public R> page(WeChatMessageHandlerConfigPageQuery query) { + return R.data(weChatMessageHandlerConfigService.page(query)); + } + @GetMapping("/list/handler-name") - @Operation(summary = "处理器名称列表", description = "获得所有处理器的名称") + @Operation(summary = "处理器名称-列表", description = "获得所有处理器的名称") public R> listHandlerName() { return R.data(weChatMessageHandlerConfigService.listHandlerName()); } @PostMapping("/save-or-update") - @Operation(summary = "新增/更新消息处理器配置", description = "增加或更新某用户对应的消息处理器") + @Operation(summary = "新增/更新用户的消息处理器", description = "增加或更新某用户对应的消息处理器") public R saveOrUpdate( - @RequestParam @Parameter(description = "用户名(请保证用户的备注非空且唯一)") String userName, + @RequestParam @Parameter(description = "用户名(请保证用户的备注/非空且唯一)") String name, @RequestParam @Parameter(description = "处理器名称") String handlerName) { if (!weChatMessageHandlerConfigService.listHandlerName().contains(handlerName)) { throw BizException.of("未找到[{}]对应的消息处理器!", handlerName); } - List weChatUserList = weChatUserService.listByName(userName); - List sameRemarkNameList = EasyCollUtil.getFieldList(weChatUserList, WeChatUser::getRemarkName); - if (CollectionUtils.isEmpty(sameRemarkNameList)) { - throw BizException.of("用户[{}]的备注为空!", userName); - } - if (sameRemarkNameList.size() > 1) { - throw BizException.of("用户[{}]的备注不唯一[有{}个]!", userName, sameRemarkNameList.size()); - } - weChatMessageHandlerConfigService.saveOrUpdate( - new WeChatMessageHandlerConfig(sameRemarkNameList.get(0), handlerName)); + WeChatUser user = weChatUserService.getOneBydName(name); + weChatMessageHandlerConfigService.saveOrUpdate(WeChatMessageHandlerConfig + .builder() + .remarkName(user.getRemarkName()) + .nickName(user.getNickName()) + .handlerName(handlerName) + .build()); return R.success(); } @GetMapping("/get-handler-name") - @Operation(summary = "获取用户对应的处理器名称") + @Operation(summary = "查询用户的消息处理器") public R getHandlerName(@RequestParam @Parameter(description = "用户名称") String name) { - return R.data(weChatMessageHandlerConfigService.getHandlerName(weChatUserService.getUserNameByName(name))); + WeChatUser user = weChatUserService.getOneBydName(name); + return R.data(weChatMessageHandlerConfigService.getHandlerName(user.getRemarkName(), user.getNickName())); } @PostMapping("/delete") - @Operation(summary = "删除用户对应的处理器名称") - public R delete(@RequestParam @Parameter(description = "用户名称") String name) { - return R.data(weChatMessageHandlerConfigService.removeById(weChatUserService.getRemarkNameByName(name))); + @Operation(summary = "删除用户的消息处理器") + public R delete(@RequestParam @Parameter(description = "用户名称") String name) { + WeChatUser user = weChatUserService.getOneBydName(name); + weChatMessageHandlerConfigService.remove(new LambdaQueryWrapper() + .eq(WeChatMessageHandlerConfig::getRemarkName, user.getRemarkName()) + .eq(WeChatMessageHandlerConfig::getNickName, user.getNickName())); + return R.success(); } } diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/entity/WeChatMessageHandlerConfig.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/entity/WeChatMessageHandlerConfig.java index 0ec70b267dac17a1acde2bdd8df59c786c3d5fe4..5c8e7e9391b76d0445dd85751f8e9d68820d90a7 100644 --- a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/entity/WeChatMessageHandlerConfig.java +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/entity/WeChatMessageHandlerConfig.java @@ -1,5 +1,6 @@ package pers.hll.aigc4chat.server.entity; +import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -15,13 +16,18 @@ import io.swagger.v3.oas.annotations.media.Schema; * @since 2024-04-22 */ @Data +@Builder @AllArgsConstructor +@Schema(name = "微信消息处理器配置") @EqualsAndHashCode(callSuper = true) @TableName("wechat_message_handler_config") -@Schema(name = "微信消息处理器配置") public class WeChatMessageHandlerConfig extends BaseEntity { - @TableId + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + private String nickName; + private String remarkName; private String handlerName; diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/entity/WeChatUser.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/entity/WeChatUser.java index 4b7b8de23b7f4fb1de7025944f4bfaf7eb17cf1c..3370486f98200b761a5417a136df875c544332e5 100644 --- a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/entity/WeChatUser.java +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/entity/WeChatUser.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import pers.hll.aigc4chat.protocol.wechat.response.WebWxSyncResp; /** * 个人信息 @@ -25,6 +26,10 @@ public class WeChatUser extends BaseEntity { private String headImgUrl; + /** + * 备注 + *

当用户是群组时 变更备注后 收到的 {@link WebWxSyncResp#getModContactList()} 不会包含该字段数据 + */ private String remarkName; private String pyInitial; diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/handler/OllamaMessageHandler.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/handler/OllamaMessageHandler.java index 56291784e9caabd25d8f77aa99d15ee8b9e20e2d..a5ca47854f10a1f2d3d49d67d7a4fdb6c5bb2231 100644 --- a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/handler/OllamaMessageHandler.java +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/handler/OllamaMessageHandler.java @@ -53,6 +53,12 @@ public class OllamaMessageHandler implements MessageHandler { weChatApiService.sendTextMessage(chatRespBody.getMessage().getContent(), addMsg.getFromUserName()); } + /** + * 添加提示 (只给最后一条消息添加,防止对每个历史消息都回复。) + * + * @param messageList 消息列表 + * @return 添加提示后的消息列表 + */ private List addPrompt(List messageList) { if (!messageList.isEmpty()) { Message message = messageList.get(messageList.size() - 1); @@ -62,6 +68,13 @@ public class OllamaMessageHandler implements MessageHandler { return messageList; } + /** + * 将微信的历史消息转换为ollama的消息 + * + * @param weChatMessages 微信消息列表 + * @param userName 用户名 + * @return ollama消息列表 + */ private List converter(List weChatMessages, String userName) { Function messageFunction = x -> Message.builder() .content(x.getContent()) diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/AsyncLoginService.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/AsyncLoginService.java index 994d1b66a28f188a930bd050bab6522fcf2b0219..8e2e68f8390a6b62fe01203099fc8202dae21894 100644 --- a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/AsyncLoginService.java +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/AsyncLoginService.java @@ -209,8 +209,9 @@ public class AsyncLoginService { } // 不处理自己发的消息 if (!Objects.equals(addMsg.getFromUserName(), weChatUserService.selectMe().getUserName())) { - String remarkName = weChatUserService.getRemarkNameByName(addMsg.getFromUserName()); - String messageHandlerName = weChatMessageHandlerConfigService.getHandlerName(remarkName); + WeChatUser user = weChatUserService.getOneBydName(addMsg.getFromUserName()); + String messageHandlerName = + weChatMessageHandlerConfigService.getHandlerName(user.getRemarkName(), user.getNickName()); MessageHandler messageHandler = weChatMessageHandlerConfigService.getMessageHandler(messageHandlerName); messageHandler.handle(addMsg); } diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatGroupMemberService.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatGroupMemberService.java index b5471d5c069eeab85d29d364a064d24874ce373c..b87847542610198f6fd4edcfcdb08bc50765250f 100644 --- a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatGroupMemberService.java +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatGroupMemberService.java @@ -18,7 +18,6 @@ import java.util.List; */ public interface IWeChatGroupMemberService extends IService { - List listByGroupUserName(String groupUserName); IPage pageGroupMember(WeChatUserPageQuery query); diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatMessageHandlerConfigService.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatMessageHandlerConfigService.java index b7adec96aa6671a3a9384313cb7b3750a6f340f5..ba68cb12a9b89f52a4742267ba505faa7d987dd6 100644 --- a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatMessageHandlerConfigService.java +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatMessageHandlerConfigService.java @@ -1,5 +1,7 @@ package pers.hll.aigc4chat.server.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import pers.hll.aigc4chat.server.bean.query.WeChatMessageHandlerConfigPageQuery; import pers.hll.aigc4chat.server.entity.WeChatMessageHandlerConfig; import com.baomidou.mybatisplus.extension.service.IService; import pers.hll.aigc4chat.server.handler.MessageHandler; @@ -16,9 +18,11 @@ import java.util.List; */ public interface IWeChatMessageHandlerConfigService extends IService { - String getHandlerName(String userName); + String getHandlerName(String remarkName, String nickName); List listHandlerName(); MessageHandler getMessageHandler(String beanName); + + IPage page(WeChatMessageHandlerConfigPageQuery query); } diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatMessageService.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatMessageService.java index 78a51dc3b8495f7a283c046dcf266983a777a873..45a4ee879ee3ed513a3b41ef9e05bbb173250e8d 100644 --- a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatMessageService.java +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatMessageService.java @@ -19,6 +19,21 @@ public interface IWeChatMessageService extends IService { IPage pageMessage(WeChatMessagePageQuery query); + /** + * 获取和 {@code userName}的聊天记录 在调用大模型接口时使用 + *

注意: 微信的聊天记录和大模型要求的历史对话的格式有一定的区别 + * 大模型的对话记录要求如下: + *

    + *
  1. messages成员不能为空,1个成员表示单轮对话,多个成员表示多轮对话
  2. + *
  3. 最后一个message为当前请求的信息,前面的message为历史对话信息
  4. + *
  5. 必须为奇数个成员,成员中message的role必须依次为user、assistant
  6. + *
+ * 这里会将连续同一用户发送的消息合并为一条 + * + * @param userName 用户名 + * @param count 聊天记录条数 + * @return 聊天记录 + */ List listChatHistoryForModel(String userName, Integer count); /** diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatUserService.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatUserService.java index 55aa80bc4a7eac95e23919d5267fed483db0d015..69a82fcc2d1de4ee570997ebf29f07d9a00ab9b7 100644 --- a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatUserService.java +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/IWeChatUserService.java @@ -25,9 +25,13 @@ public interface IWeChatUserService extends IService { IPage pageFriend(WeChatUserPageQuery query); + /** + * 模糊查询 用户名|备注|昵称 与 {@code name} 相似的用户 + * + * @param name 名称 + * @return 用户列表 + */ List listByName(String name); - String getRemarkNameByName(String name); - - String getUserNameByName(String name); + WeChatUser getOneBydName(String name); } diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/impl/WeChatMessageHandlerConfigServiceImpl.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/impl/WeChatMessageHandlerConfigServiceImpl.java index 078ede1a2a161401e6dda8a9230add4750386558..27150b250c184a2998de85b1379cea61fcb67271 100644 --- a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/impl/WeChatMessageHandlerConfigServiceImpl.java +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/impl/WeChatMessageHandlerConfigServiceImpl.java @@ -1,22 +1,29 @@ package pers.hll.aigc4chat.server.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.RequiredArgsConstructor; -import org.apache.commons.lang3.StringUtils; import org.springframework.context.ApplicationContext; import pers.hll.aigc4chat.base.util.ConstantUtil; +import pers.hll.aigc4chat.server.bean.query.WeChatMessageHandlerConfigPageQuery; import pers.hll.aigc4chat.server.entity.WeChatMessageHandlerConfig; +import pers.hll.aigc4chat.server.entity.WeChatUser; import pers.hll.aigc4chat.server.handler.MessageHandler; import pers.hll.aigc4chat.server.handler.MessageHandlerName; import pers.hll.aigc4chat.server.mapper.WechatMessageHandlerConfigMapper; import pers.hll.aigc4chat.server.service.IWeChatMessageHandlerConfigService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import pers.hll.aigc4chat.server.service.IWeChatUserService; +import pers.hll.aigc4chat.server.util.PageUtil; import java.util.List; +import static org.apache.commons.lang3.StringUtils.*; + /** *

- * 服务实现类 + * 服务实现类 *

* * @author hll @@ -31,9 +38,10 @@ public class WeChatMessageHandlerConfigServiceImpl private final ApplicationContext applicationContext; @Override - public String getHandlerName(String remarkName) { + public String getHandlerName(String remarkName, String nickName) { return lambdaQuery() .eq(WeChatMessageHandlerConfig::getRemarkName, remarkName) + .eq(WeChatMessageHandlerConfig::getNickName, nickName) .oneOpt() .map(WeChatMessageHandlerConfig::getHandlerName) .orElse(null); @@ -46,9 +54,16 @@ public class WeChatMessageHandlerConfigServiceImpl @Override public MessageHandler getMessageHandler(String beanName) { - if (StringUtils.isEmpty(beanName)) { + if (isEmpty(beanName)) { return (MessageHandler) applicationContext.getBean(MessageHandlerName.DEFAULT_MESSAGE_HANDLER); } return (MessageHandler) applicationContext.getBean(beanName); } + + @Override + public IPage page(WeChatMessageHandlerConfigPageQuery q) { + return page(PageUtil.createPage(q), new LambdaQueryWrapper() + .eq(isNotEmpty(q.getRemarkName()), WeChatMessageHandlerConfig::getRemarkName, q.getRemarkName()) + .eq(isNotEmpty(q.getHandlerName()), WeChatMessageHandlerConfig::getHandlerName, q.getHandlerName())); + } } diff --git a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/impl/WeChatUserServiceImpl.java b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/impl/WeChatUserServiceImpl.java index b691798f62c30bcfa831556fc0e2dc4a25e2eab5..def848bbf4c18f4d65a16ec300cee64d135ba716 100644 --- a/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/impl/WeChatUserServiceImpl.java +++ b/aigc4chat-server/src/main/java/pers/hll/aigc4chat/server/service/impl/WeChatUserServiceImpl.java @@ -73,13 +73,8 @@ public class WeChatUserServiceImpl extends ServiceImpl checkOne(String name) { diff --git a/aigc4chat-server/src/main/resources/sql/schema.sql b/aigc4chat-server/src/main/resources/sql/schema.sql index e08ee898605d2f7afa7803bb7956c09fa3a7184d..4c9f6fe496ac7cb473a8294d628e8c4d1b7c1fae 100644 --- a/aigc4chat-server/src/main/resources/sql/schema.sql +++ b/aigc4chat-server/src/main/resources/sql/schema.sql @@ -154,8 +154,12 @@ CREATE TABLE IF NOT EXISTS wechat_message CREATE TABLE IF NOT EXISTS wechat_message_handler_config ( + -- id + id INTEGER PRIMARY KEY, -- 用户备注 - remark_name TEXT PRIMARY KEY, + remark_name TEXT, + -- 用户昵称 + nick_name TEXT, -- 消息处理函数 handler_name TEXT NOT NULL, -- 创建时间