From 81ed1db0295005d9a8f5674807e064c5a1da0c08 Mon Sep 17 00:00:00 2001 From: liulianbuqu <2958637020@qq.com> Date: Sat, 31 May 2025 18:41:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95=E5=90=8E?= =?UTF-8?q?=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DebateHistoryController.java | 58 +++++++++++++ .../newdemo/mapper/DebateHistoryMapper.java | 78 +++++++++++++----- .../newdemo/service/DebateHistoryService.java | 9 ++ .../impl/DebateHistoryServiceImpl.java | 31 +++++++ .../com/learning/newdemo/util/JwtUtil.java | 27 ++++++ .../learning/newdemo/NewDemoApplication.class | Bin 845 -> 845 bytes .../com/learning/newdemo/common/Result.class | Bin 4745 -> 4444 bytes .../learning/newdemo/config/CorsConfig.class | Bin 1439 -> 1439 bytes .../config/GlobalExceptionHandler.class | Bin 1980 -> 1909 bytes .../newdemo/config/RestTemplateConfig.class | Bin 675 -> 675 bytes .../newdemo/controller/WxAIController.class | Bin 4839 -> 4768 bytes .../controller/WxLoginController.class | Bin 3805 -> 3734 bytes .../com/learning/newdemo/entity/WxUser.class | Bin 7020 -> 6548 bytes .../newdemo/mapper/WxUserMapper.class | Bin 478 -> 478 bytes .../newdemo/service/WxArgumentService.class | Bin 276 -> 276 bytes .../newdemo/service/WxDebateService.class | Bin 277 -> 277 bytes .../newdemo/service/WxReviewService.class | Bin 241 -> 241 bytes .../newdemo/service/WxUserService.class | Bin 418 -> 418 bytes .../service/impl/WxArgumentServiceImpl.class | Bin 5599 -> 5480 bytes .../service/impl/WxDebateServiceImpl.class | Bin 6142 -> 6061 bytes .../service/impl/WxReviewServiceImpl.class | Bin 5452 -> 5329 bytes .../service/impl/WxUserServiceImpl.class | Bin 4659 -> 4577 bytes .../com/learning/newdemo/util/JwtUtil.class | Bin 4084 -> 4651 bytes database/database.sql | 22 ++++- qodana.yaml | 31 +++++++ 25 files changed, 232 insertions(+), 24 deletions(-) create mode 100644 Debate_backend/src/main/java/com/learning/newdemo/controller/DebateHistoryController.java create mode 100644 Debate_backend/src/main/java/com/learning/newdemo/service/DebateHistoryService.java create mode 100644 Debate_backend/src/main/java/com/learning/newdemo/service/impl/DebateHistoryServiceImpl.java create mode 100644 qodana.yaml diff --git a/Debate_backend/src/main/java/com/learning/newdemo/controller/DebateHistoryController.java b/Debate_backend/src/main/java/com/learning/newdemo/controller/DebateHistoryController.java new file mode 100644 index 0000000..136aec7 --- /dev/null +++ b/Debate_backend/src/main/java/com/learning/newdemo/controller/DebateHistoryController.java @@ -0,0 +1,58 @@ +package com.learning.newdemo.controller; + +import com.learning.newdemo.common.Result; +import com.learning.newdemo.entity.DebateHistory; +import com.learning.newdemo.service.DebateHistoryService; +import com.learning.newdemo.util.JwtUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 辩论历史记录控制器 + * 处理与辩论历史记录相关的HTTP请求 + */ +@RestController // 标识为RESTful控制器 +@RequestMapping("/api/debate-history") // 基础请求路径 +@RequiredArgsConstructor // Lombok注解,自动生成构造函数注入依赖 +public class DebateHistoryController { + + // 依赖注入 + private final DebateHistoryService historyService; + private final JwtUtil jwtUtil; + + /** + * 保存辩论历史记录接口 + * @param history 前端传来的辩论历史数据(自动反序列化为对象) + * @param token 认证令牌(从请求头获取) + * @return 统一响应结果 + */ + @PostMapping // 处理POST请求 + public Result saveHistory(@RequestBody DebateHistory history, + @RequestHeader("Authorization") String token) { + // 从JWT令牌中解析用户ID + Integer userId = jwtUtil.getUserIdFromToken(token); + // 设置记录关联的用户ID + if (userId == null) { + return Result.error(401, "无效的认证令牌"); + } + history.setUserId(userId); + // 调用服务层保存记录 + historyService.saveDebateHistory(history); + // 返回成功响应 + return Result.success(); + } + + /** + * 获取用户辩论历史记录接口 + * @param token 认证令牌(从请求头获取) + * @return 包含历史记录列表的统一响应结果 + */ + @GetMapping // 处理GET请求 + public Result> getHistories(@RequestHeader("Authorization") String token) { + Integer userId = jwtUtil.getUserIdFromToken(token); + // 调用服务层获取记录并包装返回 + return Result.success(historyService.getHistoriesByUser(userId)); + } +} diff --git a/Debate_backend/src/main/java/com/learning/newdemo/mapper/DebateHistoryMapper.java b/Debate_backend/src/main/java/com/learning/newdemo/mapper/DebateHistoryMapper.java index f78b5bb..a569998 100644 --- a/Debate_backend/src/main/java/com/learning/newdemo/mapper/DebateHistoryMapper.java +++ b/Debate_backend/src/main/java/com/learning/newdemo/mapper/DebateHistoryMapper.java @@ -1,59 +1,95 @@ package com.learning.newdemo.mapper; import com.learning.newdemo.entity.DebateHistory; -import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.*; import java.util.List; +/** + * 辩论历史记录数据访问层接口 + * 定义所有与辩论历史记录表相关的数据库操作 + */ public interface DebateHistoryMapper { + /** - * 插入辩论记录 - * @param debateHistory 辩论记录 - * @return 影响行数 + * 插入新的辩论记录 + * @param debateHistory 包含辩论详细信息的实体对象 + * @return 插入操作影响的行数(通常为1) */ + @Insert("INSERT INTO debate_history(user_id, argument_id, topic, position, total_rounds, debate_content, review_result) " + + "VALUES(#{userId}, #{argumentId}, #{topic}, #{position}, #{totalRounds}, #{debateContent}, #{reviewResult})") + @Options(useGeneratedKeys = true, keyProperty = "id") // 获取自增主键 int insert(DebateHistory debateHistory); /** - * 根据用户ID查询辩论记录 - * @param userId 用户ID - * @return 辩论记录列表 + * 根据用户ID查询所有辩论记录(按时间倒序) + * @param userId 用户唯一标识 + * @return 该用户的所有辩论记录列表 */ + @Select("SELECT * FROM debate_history WHERE user_id = #{userId} ORDER BY create_time DESC") List selectByUserId(@Param("userId") Integer userId); /** - * 根据用户ID查询最新的i条辩论记录 + * 获取用户最新的指定数量的辩论记录 * @param userId 用户ID - * @param limit 记录条数 - * @return 最新的i条辩论记录 + * @param limit 要获取的记录数量 + * @return 最新的辩论记录列表 */ + @Select("SELECT * FROM debate_history WHERE user_id = #{userId} ORDER BY create_time DESC LIMIT #{limit}") List selectLatestByUserId(@Param("userId") Integer userId, @Param("limit") Integer limit); /** - * 根据立论记录ID查询辩论记录 + * 根据关联的立论记录ID查询辩论记录 * @param argumentId 立论记录ID - * @return 辩论记录列表 + * @return 相关联的辩论记录列表 */ + @Select("SELECT * FROM debate_history WHERE argument_id = #{argumentId} ORDER BY create_time DESC") List selectByArgumentId(@Param("argumentId") Integer argumentId); /** - * 根据主键查询辩论记录 - * @param id 主键ID - * @return 辩论记录 + * 根据主键ID查询单条辩论记录 + * @param id 记录主键ID + * @return 对应的辩论记录实体 */ + @Select("SELECT * FROM debate_history WHERE id = #{id}") DebateHistory selectByPrimaryKey(@Param("id") Integer id); /** - * 更新复盘分析内容 - * @param id 辩论记录ID - * @param reviewResult 复盘分析内容 - * @return 影响行数 + * 更新辩论记录的复盘分析内容 + * @param id 要更新的记录ID + * @param reviewResult 新的复盘内容 + * @return 更新操作影响的行数 */ + @Update("UPDATE debate_history SET review_result = #{reviewResult} WHERE id = #{id}") int updateReviewResult(@Param("id") Integer id, @Param("reviewResult") String reviewResult); /** - * 查询辩论记录及其关联的立论内容 + * 查询辩论记录及其关联的立论内容(联合查询) * @param id 辩论记录ID - * @return 包含立论内容的辩论记录 + * @return 包含完整立论内容的辩论记录实体 */ + @Select("SELECT dh.*, ah.topic AS argument_topic, ah.argument_content " + + "FROM debate_history dh LEFT JOIN argument_history ah ON dh.argument_id = ah.id " + + "WHERE dh.id = #{id}") DebateHistory selectWithArgument(@Param("id") Integer id); + + /** + * 清理用户超出限制的历史记录(保留最新的10条) + * @param userId 用户ID + * @return 被删除的记录数量 + */ + @Delete("DELETE FROM debate_history WHERE user_id = #{userId} AND id NOT IN " + + "(SELECT id FROM (SELECT id FROM debate_history WHERE user_id = #{userId} " + + "ORDER BY create_time DESC LIMIT 10) t)") + int cleanOverflowHistories(@Param("userId") Integer userId); + + /** + * 根据辩论主题关键词搜索记录(新增方法) + * @param userId 用户ID + * @param keyword 搜索关键词 + * @return 匹配的记录列表 + */ + @Select("SELECT * FROM debate_history WHERE user_id = #{userId} AND topic LIKE CONCAT('%',#{keyword},'%') " + + "ORDER BY create_time DESC") + List searchByKeyword(@Param("userId") Integer userId, @Param("keyword") String keyword); } diff --git a/Debate_backend/src/main/java/com/learning/newdemo/service/DebateHistoryService.java b/Debate_backend/src/main/java/com/learning/newdemo/service/DebateHistoryService.java new file mode 100644 index 0000000..1e72157 --- /dev/null +++ b/Debate_backend/src/main/java/com/learning/newdemo/service/DebateHistoryService.java @@ -0,0 +1,9 @@ +package com.learning.newdemo.service; + +import com.learning.newdemo.entity.DebateHistory; +import java.util.List; + +public interface DebateHistoryService { + void saveDebateHistory(DebateHistory history); + List getHistoriesByUser(Integer userId); +} diff --git a/Debate_backend/src/main/java/com/learning/newdemo/service/impl/DebateHistoryServiceImpl.java b/Debate_backend/src/main/java/com/learning/newdemo/service/impl/DebateHistoryServiceImpl.java new file mode 100644 index 0000000..2ad2633 --- /dev/null +++ b/Debate_backend/src/main/java/com/learning/newdemo/service/impl/DebateHistoryServiceImpl.java @@ -0,0 +1,31 @@ +// DebateHistoryServiceImpl.java +package com.learning.newdemo.service.impl; + +import com.learning.newdemo.entity.DebateHistory; +import com.learning.newdemo.mapper.DebateHistoryMapper; +import com.learning.newdemo.service.DebateHistoryService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@RequiredArgsConstructor +@Transactional +public class DebateHistoryServiceImpl implements DebateHistoryService { + + private final DebateHistoryMapper historyMapper; + + @Override + public void saveDebateHistory(DebateHistory history) { + historyMapper.insert(history); + // 清理超出10条的旧记录 + historyMapper.cleanOverflowHistories(history.getUserId()); + } + + @Override + public List getHistoriesByUser(Integer userId) { + return historyMapper.selectLatestByUserId(userId, 10); + } +} diff --git a/Debate_backend/src/main/java/com/learning/newdemo/util/JwtUtil.java b/Debate_backend/src/main/java/com/learning/newdemo/util/JwtUtil.java index a745f68..2efbcaf 100644 --- a/Debate_backend/src/main/java/com/learning/newdemo/util/JwtUtil.java +++ b/Debate_backend/src/main/java/com/learning/newdemo/util/JwtUtil.java @@ -109,4 +109,31 @@ public class JwtUtil { byte[] keyBytes = Decoders.BASE64.decode(secret); return Keys.hmacShaKeyFor(keyBytes); } + /** + * 解析Token并返回Claims对象 + * @param token JWT令牌 + * @return 包含负载信息的Claims对象 + */ + public Claims parseToken(String token) { + // 去除可能的"Bearer "前缀 + if (token != null && token.startsWith("Bearer ")) { + token = token.substring(7); + } + return getClaimsFromToken(token); + } + + /** + * 从token中获取用户ID + * @param token JWT令牌 + * @return 用户ID + */ + public Integer getUserIdFromToken(String token) { + try { + Claims claims = parseToken(token); + return claims.get("userId", Integer.class); + } catch (Exception e) { + return null; + } + } + } \ No newline at end of file diff --git a/Debate_backend/target/classes/com/learning/newdemo/NewDemoApplication.class b/Debate_backend/target/classes/com/learning/newdemo/NewDemoApplication.class index 388ed9db239c0246fd20868a4385d5829c74abe7..f79830e1d09340a98cbf6b87c1f911b2ce37ba94 100644 GIT binary patch delta 204 zcmX@hc9u>2)W2Q(7#J9A85Fn}m>8JZ8CZB2SQ*$RS}6h9920r9c)1w37`WLPcz76i z8Tcl?*PX1$n8)IrpOQK;w`y|_BNt;mJ5VPGFflNK^a4qKAWt7iGXiN=t?dkq8^O{7 zKoTU)z`)5M2qbwR3K)bKgu!AW45C0oK$^|KhA}X32(fGJVBic#=m$9yq>~-!9Ecf{ HMVT!CLL(J& delta 214 zcmYL>F%E)25Jms6EDH;$AZTkWx3M!8Qh5k3psn^c_BLk21-yc>&{%i?6B18koQ1+E z{?E*x_nV*z()aiI0#IS1;Mt`S3cejrGlIX`Z?+l&Q38pe&gl?qWEd*s1Y9h`ds4Rd0PgAIhh9r R>p!nKain6V>!?ey_yM?x7PtTa diff --git a/Debate_backend/target/classes/com/learning/newdemo/common/Result.class b/Debate_backend/target/classes/com/learning/newdemo/common/Result.class index 17902a329b5d1fe0c0faeef0ed5d8170006a91e7..6b3c970b9f19955e98b36b250b3d20a150504c7d 100644 GIT binary patch literal 4444 zcmb7I-*X#R75=WYE6L8fQQX*x+@wv6+sKw&HEDp>vXdruOx)T@h+UJoK(m$?Td}Nl zwX2krABB`cVTKuIcmal)zLA$a(3#flv;zY#h2igj{slZz!gu!W%4=IGipJ93d(XMw z`F-wP|KqHq^c(q>j&nP7G!;3<& zEcDKLB=Oa-@eo0fa77n0Sv~c`Mcg0aK@-xGW85~rwKKu1A|M{oifA-F={`HG@ z1*+e|Asp6Fb5z-0C4XOB>v_LHQ_C8Az`|oVqOqrJ-`>R=Sr};fxP>QhOu=*-4Y#52 ze10b8j0m>(8=jQdJf)zPWR|xuj1d}L32aw0vRJe*il?dfMr32} zUR{Lo84D+Iin~_=>*8FYapJYp7QT$HC}b*j{laTayY>J-ED7^-7M{nLLRZym1&fgk zXyX=hjFC;RMzJDgMs~em;T+C0Fr>5sb1*-=SM6>LV#>k=Q7GkzHl6@{&B8^@XlNa( zox5A+4B{mVv!X?2&GyzLWqO(Wmn>Yy6@^0^_PR6a)+@IEjjB&_-Sh3b&*UDegSLnPOyLROpE$FWR-H zV^Tx;DEf82x>~pWW`lc^3kzk1r|6~*YK&3V^|61pT6ZorH(G!h z9pR2shcncoch;@gwMCn@(XJ3U)d+jUP-hzU?*zHM83A=-VWdfR&hgjWl`D3`-f(>S zRblD@22%HjLEh2d9;T!f<{zLz%H96NMUHZXIJaD+;yj+Y;)hPis6j8<^_80A z4b8gldULZJQ#?$N*vgKL3oMs5?61W5+q9?ewj@%fkl3KCI(}khQX5uVDRMmM!svo_&To&UF2LM|0`TMN{W0;^%2w`IZ*f} ze^bG7KHT)JU`q@V~_x`n>N$QE)1flCH( z0|W$0$lw`XWKQBBH5$OPye^!^w@K;OfN~OZmO&1$;s#Z)chIi4Xv?HkI5QQuAk=b& zT0Q|M)bbP|#k9-;_3x37a8#5@#B3`Ef-TJ>cLmZz$k7($cLK;`A>?fWBuUGKhR+p~ zG`u)Kvx@~#A&$Stfp)!)WOvM36Kj-$mK1K`$}(4YWy9DW zxc4!1Zx`I79m4Ud(+2LuZn(o8!ts981}>Io+SsEV!tu65*Y5P)`zUQkQNs;(1gFcZ zO8t0K4`FBdluAjBJoW*G+Q&qvekzQKRGyTvPJNx7LX+r74lv=9D<0EJG4=)9I9ZfnVCAcU_MVSPyt)9#{>Ql~<6ciZk1k-Nl|Cvlxt zhK@T)aXLyjxyakIwoMiJOjE}@g^@qNH0~Atip1|=Chrygg2Y^rt?b!g%E4EQ{JtwR zPRg8=qsiGzoShvrM*oI=Ipb3txC?7E$Hq7r?VTPo$ud2b%9+BG`V_r)(UUWCsffvt zx-eorN>}Ygtz9ca?qEG==zZ8gjg_2Wkxg-Yif)|ZxXzKm>OKyaBNMB9gWKdN6>Fz= z!kp3=uMwj`*@M`Z&in_Dq>-?!&(WX8ApbJza~#&gu9h>`=}bf3iL?{(5?v~>GsSzm z>s#BQGd=1)(sgRoDxQQ<9|{9j3-W_6Dr91nsuPqTZS`8VJZ?-J$(Gk7B)>%_d-*QR ztbHR|E8mzPkbsv55?}Y^4W0bm2%fbm4?(;M@0usF) zP?NEFz|aRXVu*N*ol5~QZnZk)RVpLLLcjP*vQ|99@ASu*19tbi_&L!Zn!Ig_tVky^ i!a8~#-{mZU+jxV|4CQ=}-yh>G&g5A734V%qkozBtZ*6)2 literal 4745 zcmbVP?ROMc8UNkv%bJ&~t3csYj1~sUH6h?O)(WYyCZQXJ3*mVM|~#_dd@v&-?Sc zH~;+KhkpSuieDtqp>U|+mj;WDUG`jWdC+rSUvf(RAc-a48@%XLs>L7yLm_q3zGV*< zZ3>-Vyy+B3jVtU4sjfemcgn6^bljpFLBS~aOH`t!$S9F&FLT#3-EbfulcOR^;C197R>ux{q6U9w)T!iLmG!WTO)G&(rC0*tB%Ey<+d(n9AF0 zwREfYcaLwTK)kAZEB>?ps-QjF$+U@QQ?Km z)T60lf6qO@w@1`i8=FqIQg1AF9nqlgV$}=Wk~8Jqaw{&o{gmhVfgKQ7nB|`7qF-9{ zR|j8mJg002&eCuvyX%Y$T{jyrSaB(pSgv&>bxw)E%NBNG7u%1Vdi(9+gl|C^kv?xB zh22_@?!Jwpb2%A28&kt4{_MRo-AFg9)cSvsR zJ43d{&@Ro>o1<;?=g5G-Tz5XO3#&8sT7*H#6}z&cp)UsCLJ351^TNfcnMuagFl`>z zmXd+5Teu5Vyq>_V4JVCeS@=3`Gx@jV)Hr`bfV`?_%; z4v(LL9b9$;dZ-T~mSZTh(4uFzYHQINQhH}fG{RK6@B{oXfj5b7jaGHNTmGsusN>dAp0NvoU%oBj|489i z%^8cNwZgNuw^Vd0ho^miwYoOk@sOOs;~@p%r+sumfBHoD>6?`8Apfa9LA~+;o}A7a>-c7Z_Zgbf z7wO8ExNGow>%5cXy}+GG0OqTc$H{Qr%aPE_<5VdjCU>j<4BW@)<`{=V!f$|{gd@;KL0vI)MWs;9V?pv{3lV)7mr zI{mt;T}=_2c!`!!x5Q6KIZ28VjDLvgbC0T;hsHxx&o*-S*}Uf2Q!m%WZ4;A!R1>^< z(!}PRPctIv-uOV@`wCn#t_y{?;uhJV}4lf^yy~xy?Sz;JJ1UO1Eue zaA#>0Y^<`_!Do4`^*5gig;CC>Md)dE1{RU?2UiPn0Gdbehm2k_&t2sXJ36Gnr++3|~ zuFZ0HZOAzGckDY9x+A_q=r|dRKG?tb^b2QlzqKMyLx?; zoNKcp!a^le*}F&_TZb3Y3qyu5(niEdO8Lk-(7G%qw9Tk2F$a zjbX(I*85QA%4kC2D^Up~@ebmjvR#>Nr3mZlQ>G%?bja>;7$J*Q2)VJQeJIcivnEiJ zF*cGYMx~XOsCT^NSSA_ zmI8@_2cUt*Mp#0k`hVi-9>=Bsz?xq;U{bl-$w(DK^q z7tO>4MkVqXQ+cD#&VZh4e7iNM# z zOzqUN)736!`l#&HdZ=DC2FDG&;=Go(5mh!L K-24~a0v-WOZcqpS delta 517 zcmZ8exlY4C6r8mkoMQvT;l6LM9Wa4#hMNWGXeBR4@fhLY-w1k(r&Ng)DXlFAnVO+ehJ#B))q_|CDO-b_{rsO))3^POGUhN2X zQn9Vz^my0Lo7>_*y%KX;;evGNRR9G{?oL&w&LL!k5vz>o!}mB&RgQrq5>)vQfiOuO zLp5qhr1qDUB9ubcBrgqSD=-RW)NR;CeF=@W_K4OJx@}Xo{ojW}71%@>-pm*yb_t^u v=2J_Om>qqd{I7-XUV3q<{WS++yaTWSyd1v7-&LZ#yC6rOI diff --git a/Debate_backend/target/classes/com/learning/newdemo/config/GlobalExceptionHandler.class b/Debate_backend/target/classes/com/learning/newdemo/config/GlobalExceptionHandler.class index da8a936fa30369709e9b263244779b678672e0eb..d8e9c0a004309be5b91f4c9186fe014d6ed1c104 100644 GIT binary patch delta 796 zcmZva%TE(g6vn^XnPH~wl+xBxs1GbqpsiXTMby?RkCGT^eCxsmj%BPgrIVD239BZq zjS=s{rE%fX1SG*KL=uFh`$z~& z4Gwz{$B>L+6(dM6MD`Dx)=H*PUs`TuWCn54nA7!%1v|G=BA17#6odTT1DashNoF);g`5FXUJn#{6 z(3koQzkp!4iO32)Izpa?T@j(-J+@l6)3K`t1aJmtN%b7HNQ@F7V|S0@Je|E%K1R5l$@N{5kVSIDAxW*{SQCwQ7<+b%So+&oLVGMB8lOLi<;npp r`Ts0e>06HPSsEh+Yq^6;6NAY$$d<3H%~v0BOwgSRleVzs_7w0B+PH$V delta 819 zcmZvYO-~b16o%hBGwqb=KxwPAP!&O_6sjX13etk|B_Yc9MY{}I3tCRIob zJ=~N-t80Qp*sTepDHI=*p*+kWcf@8GlrcMFX{d!yMIC2SlS@ZE{5&G{X*FO7>Tto$ zXQY_lophWUWQ27zK;uuO6`qtoaK9X81N^xw&ZA1I$Ai-h`tJJH?$)cF?Wa4HiWf0- zspuqjyOcE+^Y{C5M#|1+t&)y7&a8g!XT}Q_b$6pzrD?laJ7L7p$7fg~#K0_aUbD&% z?92_bWEQNlRa)dFWsd()?(%O+bKE;RGCn&!ar4f^t=k?9G5GdAt?aEm`~GrcA3?(< zjHtNG(8O01G36-6_*d4(XI=I(ZG+ZLZ(>+dl_H@YQiaYMXcT!Vijj)1CcrAt*AaL_ zfrKM;3Ik}9N1Z>S9POxTGf2g&tMeT~|66>^jz{0mKqFxYcLc|%`EjS(2{e;7Qm2#j z(sBCo4LX;kMdNw%mvcKAt zyf{yV87@$=i%}p*`Y~`oa`6z7!9OGkhvaINBq&Id`y^c(7(Rrhg$%>3f58L~Sc24k S@Lv`Q*dJ)Q6H3Md z3C9}qHR4UY)vyGeoSm?W4MeE1#_s@9)cGPb(Bu+XCmQeti1J56q{a R#UZJ0yKu*87vFCNya2bE6!riB delta 243 zcmYj}O%B0u5J%rs|5{Zat&duY9Zg8=t(?LdYe#T~#>U>xid7R52XF>wa0D@}1~bY0 zGBYplU=F5ve_d|CjGlufjFZQ>F74m6iqWqanJeN)0w@Ystx`J(5&eu)M==sSx|vyCYt7AaIb`ml=ew) U7C+ap@h5W&nMEhZx?f!cZ&mCSHvj+t diff --git a/Debate_backend/target/classes/com/learning/newdemo/controller/WxAIController.class b/Debate_backend/target/classes/com/learning/newdemo/controller/WxAIController.class index f2d6c406965ef734b1f64a34c16e2f23e32a0154..b136fa9f96d5e39fae6743722df94effbc8bbf05 100644 GIT binary patch literal 4768 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 diff --git a/Debate_backend/target/classes/com/learning/newdemo/controller/WxLoginController.class b/Debate_backend/target/classes/com/learning/newdemo/controller/WxLoginController.class index bf1946ceb4b7930e37070f10c7380859a6d38a54..b1f61a2ab41e736e39c1c889129c9740796d5d4c 100644 GIT binary patch delta 1445 zcmYjR+fy556#t!MH@n$g5(w8&E~RJ-gqT9HmxOW=P^1au0w;az%Wn(523^^JdsPLLNRke+;DbKsqjjbTfFcYC`ScBNoI%U7jmcUPKQ-g ziC(GRQv<((S_4~9N7$AxtrovIba6o%(i_mIV5@;9PM37$zvwN|aUbqiu-(88w1_{Y zpiYoenM5*8*e*z|6al%M+C;D19BL<&-NiI)W@i|eh5(!@LR^;1%*E3di4Fsu*d_Av zfLenG4eZ7q@rOLbqU;kZuBs6?8W1tijr|Oqe~jRZW)>5nZ0cCoY$%#ZB;tz^6}_Ba zzy9^jA3y)=;?aU_u^p#k6>7Q z>1x?GV&DK;2-WlETznvto;Gu1$=nQk*_@fqWmUuo?u}2r+E_Wa@#z^2H8^OseoTCZYG%}?26_~J18RdIKslC z)YW*ScNJr`A_R&PDx)IrD%Uu2Etreud{zu9!|vjGM0z4(QVEOSmF7#w9YZAkQEu^2 z)b8n&y)|OWy;kOR;k1S`ctgRP7QwefleR;|w2yfd=fvMyCA}?VeJ8yucI$2Qo-p;` zas%%r_^Y*qw>@415Dv5NVmrZBV#{00=d&Dz*b-a0?F#4{b{v@G)4B#P;B$N$#RqsE zQydX*k;x6XnEK&l4~PeR${O5`W&8whto>(b?Uzw@5pG{)0oAK*-=V&J4b2XW27lpX ztChTl!1xse!;)X}JrG>OPAA6vQUP77qu(Oz>)}+N6T!l-- zGkjmgwpf|u%Hpe8el^GbHb}Qot-veaMg^Py;J5w{8Wd>D9D)?anBs>rac^LrKL^tG z96a13!{5RLD2wA*-MzI0=@OC*M%OQqPdj;Y>=8Vh+3_77>nB!e}ghZtM|Js$EVB7?O< z-hdtoY4HYz&4)%~$#7IV5E~08!u=7gITq8CYBH?H5(XrqNBi|*Z>tv5;%ZVGAV}J& z@xuu%-mS&Q!a7}3Cei^bwkXKQ2Cj>HZ6YZM$M|Pr{q;qgpOwj| zpsGQt>Vz8}301_)6h4{^N4y>Ch=LvPPMxUkss5iO-N|@37IMIcM-|lKF$O7|@JC0I zr%kR$Wz;d`-n)Er@%H0KACr5HyR|=GZgdh#9~s>h&?== z`7;>yDzL-hL^E0>JkEb*9!eKsKhL(f*%N%9rNrCDkhw;(O--C6q7JlTi;Q*#F{ux0 zF+)&?f=(Rd)0P%_H=a^(2;Kay#lK6&VLFt>JJ%Mz`FMrnt+R`%loLJZmGBHnefW$G zibweeR`0exJSX88&iPQ?hfSObp7FTFT7tb$! zG-;SRZqPi*pT(ob14BctgVL{7-usxf#ScUg-F+Al-&Z8E=u=^(Op& z>k5cq-0bpp{Mj1SOVMe2<0TBa2ZXA9cw0SBF#0ot9%ZX z7JLg|N7WB-RL!F1GLhbyQn72M@@q6z&0(Jfot_^l>Q7PdCR%%M;6S~QC%B&U%pqV! zPo9uM*G%VE$Z zKsF8kkd0OeOoE&4L7y?{LyR_xjJ|AGs?$~ZpQR(KmOf9JWlQ6xrHWx`!U!giG*A5s zu`#-)#!X(jO)r&9Hsu;k;nWN@Lf1@(;n53ZDtSa^=aNY;t(e5%gR`{WK=Jbw Vd((WsjSCbrdix^8_b`pTe*snvN6Y{K diff --git a/Debate_backend/target/classes/com/learning/newdemo/entity/WxUser.class b/Debate_backend/target/classes/com/learning/newdemo/entity/WxUser.class index 2727c4765f48a7a11d61cd9236c706acaae20c7f..ee772e0406667b2fb9ef3ec5bd5a812ef23c66c0 100644 GIT binary patch literal 6548 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 diff --git a/Debate_backend/target/classes/com/learning/newdemo/mapper/WxUserMapper.class b/Debate_backend/target/classes/com/learning/newdemo/mapper/WxUserMapper.class index a9b60944cd73fee03759147f7fb1b52e8cb6dff1..fae010a420de90b9d8be99c0c5878ffeedf71da5 100644 GIT binary patch delta 113 zcmcb|e2;m;94P_c)RK(+lz_yd#N5=9)S_ZW2Dbcy)V$1;iL)Xm^D%aKure}mFfcH1 u0x=IG10w?$5OWtZaIi2k@G$TKIqX0gpdvm72A~i>nh;Q404UGIAP4}qkq}w{ delta 112 zcmcb|e2;m;oQXTaB=ZYW^Dz{1GD!@vs^hYIn5h4|5gfbs%BEldo80K^^;c>n+a diff --git a/Debate_backend/target/classes/com/learning/newdemo/service/WxArgumentService.class b/Debate_backend/target/classes/com/learning/newdemo/service/WxArgumentService.class index 27113b1648ecb2150fee504103eacb3220fa744f..d8eabf7e66e93041be9c0011a42a3da6d6bb46d9 100644 GIT binary patch delta 69 zcmbQjG=*uxd?f+j)RK(+lz_yd#N5=9)S_ZW2G)}Ng3M$_2Dajo#JuFxi3hDE*cliY TIGGqYKok%&GH?M&CI)T*)x-~t delta 69 zcmbQjG=*uxd?nVB{DRD6Mh3RxlEl2^R7M5?-_(+f{FH#iqQu?1`I&#n>}4i%as0Dj6BLON&#Bd{c{y6Vp>C9?1}3n1O6v6SFsU|`^6VqgbS96-#-zy&0k G7`Or3attT{ diff --git a/Debate_backend/target/classes/com/learning/newdemo/service/WxReviewService.class b/Debate_backend/target/classes/com/learning/newdemo/service/WxReviewService.class index cee83936da73dfe085332747b6d24343669c7879..dccd6e590c3255d06eb046bcd569ab96ae9368f1 100644 GIT binary patch delta 42 vcmey!_>pl!=fugv9PG*Yc_pcNB@>reim)>k5E delta 58 zcmey!_>pl!r!;$VeqKpxUI`_Cc< LffGnFF>nC@F<=f( diff --git a/Debate_backend/target/classes/com/learning/newdemo/service/WxUserService.class b/Debate_backend/target/classes/com/learning/newdemo/service/WxUserService.class index 76766647eeb6f7bbd497f55a2798f28ce523ace3..ab1450cfabb38f48f524aa5977eb311ee5425509 100644 GIT binary patch delta 93 zcmZ3)yoh;1vxIASeoE@ZM$w6LPg`*?Ffgz(GO#l+urM-kGH@|4GC+m6!9qL?ya*va OpkhV_ejv%jAOHXWWe5NO diff --git a/Debate_backend/target/classes/com/learning/newdemo/service/impl/WxArgumentServiceImpl.class b/Debate_backend/target/classes/com/learning/newdemo/service/impl/WxArgumentServiceImpl.class index 784723a42bdc36638da5e3409cabd9353a247110..32f48a17f449ba06a06fa95ceda47356627a7724 100644 GIT binary patch delta 2446 zcmZWqYj{-E6;0p~<5hy`Q5G=!RNd_k~)()oeT)mwKs8BZYGlg($n z8w89wbJs^;Az~sb5rZ6!caKip7&eg*Xj9Kbni`io>1~c%iXsjpf-7K~sFA3}l>#&9 zP#?L&*_KVO8!0+!ZMesZW17T=P_G^jFPT1FAb#_(H&}49_ouyVA+Pspl4wSYY8J_A z9kf+q2Cn8&N{**4SgoqXj4iM*Q(_ic1WdP(bNWU~dgUC6x!M-Z6!M;v_h^pNoRsK5 zO7)rxn=EunT%&y~z3$GEa4HqYu6Jin?%W|E}FJY(d(@R*4L@ zk)DD(&{@iD@7mG1vM?~HD9)>S0mxsi%qah|F3fUJU5#kh~hqc!o*IA5!^43Wc}5u zRCJnJ5j~lB0J}{*C{e~I1!n8gRL${(S`=$-H1Uu?&HvuPZ96kgQP-n|ht=j-qqPN} zk@zegQF~(7wpjSQ0O{CEt~XiuqCjBNrYK5yOkxyYR>gSVvVFv6Sa@7xluuBNTG+2u z20chMZs94dx)z?M8nN)KR=p^`f#*zoQ{r3rwt6twpbiDQ_*@Thg55>AyyO1t%aE*k69vw>O-s=ESGoiS>|e%IL~+4WC&y zUmRv?t)5KI??Eb*7`&n?jJKos3;t^2Z@M(6)Nq0sOdQ~Yen+5ITsXD&>?5P+_CI{? z`A6SBIC=JoBf`Qzj&H8oAcAKFW~!;gGm@8hv)tepc*EPhfgBjKY^-Msbi=fM_tNpXnzrn+neiyC-89tC*kzhZw;m4RYcFEx7$1&U;t`Co6*J+f-R_UdmN}a%`4Tv$`062hy*u$%9BCg}_5lFHX zb)X6<)U)Dd@Q(BO54*dzseGE~TA~*A;V1YhY0F>{USrCF*o9X73_mC3iX^^{Um%P_ zjQ0k9>C=1oGL?t%D?iC33%}+pfHRD%3BMTQ&C4-_b|7&3=YrjQ)my_hvtR z8~E)<4L14@xs^|O4mOjKeq9vhOI6Wv`6?ZF%fE^~BpEgTTOMywx9~e2U-;G6>Ql{= z+t$nY`f>E@;uHS9+681gh~HBN@CUzDXzL%T|A`|(>z}Frz0Mc!;yoIpG`x><_$TWB E1CMh4NdN!< literal 5599 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 N2&E)#T2cZ?0u2?#$#4@UOzxfD zxj_Pjv_BdxuQlxNFX+p+LLO@rkuf+jr~J*+SgDjkQ`sP zKt8Ki$Q_~TR)H%wk2rp2*k0%C$>cNrS$nPHxPHpdxK3WcTAy`?``z6wH`hujq$#&2zJM&uCt@81rN%Tp2OauH)N|uWb9maZ^_gTk^Ii&>$;}DmfH3 zV*f&%SNMcG9DpY$uiVM+L;X;^a#C?{Jk79!~A;b$8oN zUPg_@vGSZ}=jm?Gxbq}U^DNqOJip!Pdc!HdcQj`UEao)pXY+v`lFeb*Z`aSc|=tiId`L!ixs23-zDnzYik z!g8`X(pqI8h;|ce(5jrSHxYp;k3{-qI?x!@aP#=Zrf3)1!`OgL8a4{l%h$|mxj}?W zOneZVccItB7HpOMVs%5GK-t<6f0yfJ_7!qPEqtqqGDHn@VY`VB<0JA-an+c> zM@>{BsvP=Fyh}L<>@;D6aW(9GI+e4#@~)#C22EU1bj_HkF7|etxDquA9X7GB*mF%R zD)w$OQD5}Sn^=MdV<(L5#`c!O7)1?i7gr z?Zng@C+~Xwf_(GoNB19y;1E8c;p5E8|7G9AVcadB47G}T<)zS4{T|$}_z*&Z1LI>pJH$~ZS3ilYs@-1T@tSS^kt>m<9iur(7?lZRKp_z ziSh9S!|)hBD=SNVi7HEU(jQDi7hSCccKRv&L-C zb6I?GSyx&mF9i+xpk^-C@J)frw_k@F_NMKes(1lyrhw%?A}`73%*ShWoELzOr&$f# zbvz>w*uLGsF-f{@v(Y{w{wynEaq+rr zi#0Q~f{bwqDllKAJ^Nt>wUpYRwp5l=2UJqhR?dEeI!39;6Aq}foC{PDV3y7W<`H0a z&H~(jX03MmXrG?YV`|S;w;{O z8mmrn5a2hf7%~-{YYP_8aSg5`rlxgL2dIts6xPNQPod+jd9vQJ#?%xQ7&_nvI;)>i zh`hj!?3eIKrxLgc>xwIiV+>m|LDq3Mp2W9EWgmC@_85&pE>edRnBX}Nvjk7# z6pQj9mfdNbq2p6rNQJ2AH96}wMX$5OSh)YfQH}SU3D^@f2GsX~txADAxrK^wGVwf0 zt#cCzYudUniSJm?T4O&@`g!X|O8waSiBdncUZ$GhgkXWUg@vp1vfV=7w(=~uU;&T6 z1ly3H?d=pw&R#c(R}0rw=VLImw~qEI$07WjZ2-UEYK_I@{Ur^*qNq3M50pRR5=ZJo L_Zt3!zoPoT{d3t5 diff --git a/Debate_backend/target/classes/com/learning/newdemo/service/impl/WxUserServiceImpl.class b/Debate_backend/target/classes/com/learning/newdemo/service/impl/WxUserServiceImpl.class index 426cea44064a5c3bb61be8efd5dfeabbbe1927c1..c83f16f67552484059f0d9ef7c528a324512767f 100644 GIT binary patch delta 2213 zcmZWq`BPI@6#j0u_jq{`2&e>vvMCS{sG_Y1#T^$E>sqx{V|d0OBrypBbxF0GOV#4l zy0unotyQTC+7NMVZME8&{@Uq}ohjC7r!)NnI<@D%L`EyaJNLbF&OP@#-#O>za^bH9 zGamfge-l70epFz9QG!W@85V|=X4ghnMT^Vlsc2l&thvJsmKv|m8-9hsSX{Cs2{Mu- zC@QQ_yKLjTe$LJox*;l(p^|e*a|gAsor0&Tup^Dfj2=aJ3{^1 zd)Tvm;O2$jZk>F%_w>NNQ;QcgROfEmVnr54NXS-^gBJ*qKj^6lwXCgbu4wRkJX(;i zG>w&I-Ty;3yb}@e*EA@iHdxU(EUYEi-c`Ql|cZ=JPfQbFGS3 zP{)wu(Zcbw`37TY&SXrHFjd7gOn(+$XDF<-@*S4^@%4hEIt8;ZTf!U_4VcT2rq{sh zub5A1h=7`_l|c%KuNEJ}P@ZZ@PhVoE%GKLp#C#FtRfciJ{7*TL7fNZ_3JS4M#Ud=G zjo#4o)D>DnrR4f++o3&ujA5^GBud8?iEBRijk@#J$!i6>5WT><$ zXo4nTtqKq7_+L`tJO-Ob^Jzg>SX<;@ulXc+pWxPeXL^TQ3xvIXpN#bk_BgY@AGtPg z0W+pERCqwsNnm>b(+Bu>nE8ht;H55k{MYjVju)lA)NNV8z23 zhJ>^h>dq;hjd~R%P}nLL8~j+IY;Z1v5PycSw#vyz#a*ERqVru48#B5 zpEF$Uus_(zdks|<3HvF(u9WPq&B;lQ1#P~tw^dux)sx2UY?&jYa8tYHUgrvzx6+8Y z0)g`Q^lahxS*_VL)!(G?zYQh4%vjG4$=qym3r%s-X5OxNhB26e{`L?9o5dj4xLfow z<@2pgsmT_^6kJ8WglnQXuJh~GA~VC`;s#!B8_DhJ2BVCde3#lh;x=_aTd<{?$@rE* z32LE$-xt!v_jf$SmdWn%Qk&CspCO0#=0vFT8~pzDZ2{y_%NW4W1q(98aMREm#JxZ| zPVZJ)572WkgpbHT_rvpsLu8;*Ckz%^59?8=^`6twxPwLX&`%uAuVW z+1UryqsKW)Qka2s93v?pkOMx(C$usgM;#%c&Fl_LkVqGEUV%i9t+XF0z}#M>+cV0p zBGU-c=0?iwg~l5&L@{dK=qSo=qp;c}e8xCTx>G_KLshleVYXLCQB!T{#iX)+%mAX8 zN$&}te$0EKahUtjsDC&tcVTr{qF8VQsUq+ahxsaAGlE@ml6nGGEF~PPgopc*j;@)| zwFo<90^;u+)=@@h_0l`hh zx+c@xr^J>4CD=w@C+VIUL&NeJ=}Z)FHBRAk;&CCCQbd(FJ`WpC;|m=_EWt0ai8DIq zUlI!9K9UG`mcpGQRRxTX36CT}mQbkwkJjZll7Q_omB0`;f=QIudD=vce1;Y#E~|L) zC~5i?BV83y<1f96kO6bc?qSq5bS&$`n{&%bqu4~YEI)Cz)c`@^px-6hXv9%|E2SVJ zdL%auQ<@ z7s_c;1ZpSMB?AgBp@#qzJXMX#!AvT3{7lE63A2?lu(L_*F>Q~t9O-z5=58{`=p7ue zJVGY^lI(H}yDuYM3>niQ#)r&KATE>6fGdM@`Zaw=>B%G;%_VN=@|G^Y(d8X{Pj-cD L(p~(32XOocn03(_ delta 2274 zcmZWqS#(oX6x}z;%S&Efp@cD=sFW5uMxjmxq@c{j%2-D>m1|c6P|$dc}!}iZ?p{LAz#O2`K_L%nYa#94 zvq0d|vA*HsTZYaY{pIXi!`luGZGUIY%9^VDj>mnt6|;0y5zYUiWnwnw$jxGAk-%IN zlR(txU4#0nR3Z`!8@L?{blf5H92HD#Ar{FRN1JyEmg!h3Fip-grcqvlIkH034r7B{=PC-+8>mLJi6~kG z^o^ltn^n7BplG@*GV|m)mtN;*DQvA)6AvRntw?e~OKYm#uI{}aqy#2h+SWI;efLQ0 zL+>8H)N|+xxEoDu!W@>&N+jY5gH>ub@hCcEK&#CZc-+JUOf=Am%{rcxN3^MvOl(nU zXN1!nTpe$=Vjes#|I#LUZpE|8;d3&_T~0PVem^g}KvRQk($#92Au+pmvyx^;XfkjG_SC#hExk2klqvNKs(ej41!QjN*Amp$d?Y;bm{cH=sOYai!P z{6;5{$pd!Z{}22;AoA%09>g?0Z|)|nQv%l;MGGK~RbA)C@1niX?ae_p@nNA5`! z9OuS?LXOHa;75@y0e5^p(q=)<>QpP~!}R}}jH5{>?9i!!5|mO?pbX{o%uB_Oa1jUK zR7npi_+4K*h#A206DaWCR5pNHoS^i!GJm!66F7S@|IYGWEIx@jb=(o>9ll1tjVbY{da|*|W>WZLNaYB(g51?qTv?`Nybf zotrTW+xP_TXVpwR+ydLag|$cA|(^$ANFGPQcahH*6M{~}iodVLx%;bjtP z20G}^%icra-gQ9Xc~!5QhEDcQRc1k_qFMfktE>4}+Sv%UMKKQJ174*3jsw zgV*4Bm`X16ade>HegjnB4RAlmuQZE?=P3Bp9zVCoFYWOHzNUiu0l0{7@jU|n01g1z As{jB1 diff --git a/Debate_backend/target/classes/com/learning/newdemo/util/JwtUtil.class b/Debate_backend/target/classes/com/learning/newdemo/util/JwtUtil.class index b6c742c240f38986a721c496c5bc55824db1b8c0..18d189afca5092c7557d72cb6caa0625d8959d45 100644 GIT binary patch literal 4651 zcma)A30oW26+KS^2E^DV7`$LR#Ta8&t4*+-2FD5D4UE7EiyJ%JAO;u^8g*u5Owu%6 zvNY+w$K98-=^o;y7~(We(>6)deeaLy*Y>n-=5d+xdSz2WWuy!8be8_>7tK1j-IuY0Enz5N&Q5(@-vOlUkJZtW^A@ z;Z7%vObi;L<*4LpJ7cD;iArq1Mh%;ERN*Fp4f!2hO;edHE#KBWu-;u);Yds2Pz;+< zqoG#E7Hk#RowVoTDbsM$7ICM|`3ZB*jw^iq^WG?N62X+2HXXw=N9tyU3J zSJ=(4=g?A@bhBMY9d-y*PnlkC%CP3#=xKkd>Of+CxNE0X+ITfAO=Gk_N+;o4?@FUfz5etk6lQb8PBrQ62m?n z&1g}Kc*ibeERw<*M%WxspeQ*?s=73^32e;gP7cPp3Ab*SAbfDdUF%qFghXbu4coF3sKmTIuE#{_YZ%cniZSY- z&wYB`As4W^DsX~q||0wAXaDpGumNhL~cPs?^_36wPV zw~R^s&FV;Dj_wuhQeQV0CqB?0IkAz^@LnAb7=2wKCtgmf71W1Myg)~|i2S~E?XAj7 zR>yhF3slldpX+ALiEj3f{b4(PF%~O_Fx&+l4@*N*uKC7Lf%oB24e!_S7(O7-upW&p z8NAnY7t#nBTIV?%`txI|X(Y zK+Lb}l5+i&j!)w=+`;N+M`7O$Ni}d?iO=El8or?8i}I)_5KrDD?Mx^T8ZHV%&h^Cb zWqd`$S9N?1UuSz*k2>6Qh0iCLLqWoVT6X_&CopH$F)@+0H`T$Zd$L zp3=pdP{$k@Z+v8C-rMhI|51kE|IRlrj+OLMR_ucVR@xlQ&W)SSh(Q=qD|XUIjTw$5 ze+Ppl-n2zrdj_t14I+#+_lkg%A_*YPNp;(iDDoEo*^qcnuSKztSw(VS?b5>`vJ2@C zZZJn^uqt7C)Aj_GA$64u-M6+C6qnyNX+n^l+K|88m4|bs>K;bw)sey& z0^&AWu9B5%b|w$geZ{03GP-&rA>vS^s=KoPvYdH8nvg$vz~mF^4-_^A-dk4N5^EyY z83p>ny_;}vkjJ8FET1(OdKNsB0+E!Cs@e%rdcBZ?vLcJIVLR(2&Eu97q8?nV_e*UE zv=*%im#H*ukNSxBvenvYGwpR@H)}h>myZblu@gezCH|`9^Jn}lxwy;;p6G=W%c$TW z-&6R#!aZ?51)rs@mmywMCST^aoCa!fh2Ofr0I%TZ{6*>FRa%#uGl=pZu11dJ2;-1~cZ4%#bbl4U=8kH9B)kaMMDPaQRN(7!;Op>~0>6#3 z{<`1Lx{k=GhQ@y*qOo@e;NRkez}xsOmr53&r6~!%L4i-Sub@d_u;U6^$th{ zxN#X%gUgsLo zc9l;5#7_i&=7(=*oRV=S_)BKK_7a|EXrElcXJw&0JJ7a_FGENg*#7oRg*>>V`~vzb{ucOsjI&X$*(!bffKBMf)i12z#VEsiVKE{6s^MQd za?-0-@_n2ce}bb=GOVX^5-Xz+eG%2t{A!(S&821Q+Bz92sFS}FNd*5;9a*-~e**sl D$%?7z literal 4084 zcma)9`Fj)B6+Lgfj4cls#8MWMfHfo3oAtDglV8F3#f{bY(Nf}FHdu(Y&9gQ$< znxsfq>k5(r$zDGYPfxVZ?j&B#NNxNiE<*fn7aedRbU8f|_Kk9lj$x>08PJ3p- zT5!GjqRWOG@7G&IvRE zX4F+swg>iAE3RogX*;%mN}#T*ds3i&$jwoqyP{a7<-A#% zO`F9S_9EVd1B}HjT8^D-!AEgO$3bpXHKw6~cHGZEi)H5Ok?5X5CR33u!;vV8a3}_W z2Ml}!9Sk>gqTq0cRMftrfW~azvk zZE4G&b#oU@sV3j@xNCgI^2Zf1!=77El*<^77)at{!Ss*i-NfpYV>#}<|ij5%y zXK+>t-B%96nv8da0#On;!wN|0I47{Rs#7@_!!Y9VW5mD{7^SeMtZCOH`W;chsrB7g zV;I9l9ph`Yp?Xt@#=w)fB%rH?F+R-;$SVGVQYv1*l)^1Ei>X*|Q8MNwqz8RrRWQD9%l&&_1kTP*r+ zGNU>x=Sb@(VCuLoaPY(Y8<;|t&`N=4_EzQmc*q^wW!ba+#iVq54`}7imVs%^P-Igw zP=N#gFHB;!F|T8e&Hn?j8pxx-%q#waLK<0MwRYE(*=9E-?&9K;I*L?9jcEfO=uRiS zgKm!8?p)JeEoJ;wfgc+-}fmnf!wV&F~uRG_IueO#d@fy-e4>x%1M z{M9VLXq-Pc@C*Esx#Z2F$UD(SC5Ngaqr8N%dFCX2)J^r46AZL%Lc=z;wox;Fi{I<` zoxuK$wDJ2HE6ZDv$Da2G{E^*wa3FK`;eLV5E~~~VDdt-S8qnB++jvLEpKFM#YH#2# z@{DZEsl9Y83uxB{V_3x<9q+Q^Y{V61n#kV6U#W%Jf|+*wb!{-Hz#1Ku z`J1;E2N!*deIk}|%U;$Rw&e}a2rs-xsCi2*@pfUkKCdjvA!f#PEXPmb5TmZ+ zty<$BL+3Z0-&*)=;(v1qF;1|+H&1M#CDVphes1HMB%gxMhQuQrqcX2%Z78=Jyy7!g}BF@cDgphVKB=Anvh=&NNpTQlYzvBwpDUQ-x1=>EO6tpZnyU?Hmvx-@H#D7IL*OY+2t1Afno0)Wps@tru7Ia| zS1~9s)^`WPSErM`5Xi?>!nfNcatE1LQzRoQ3d7^%OQ2cGd=obh?!%dZqf00WmigO|V zY5Am(7ZdN``6awyF5`=1EBF!v{i+5g>vau%tN1oykciuOV--KH!=v?k>sRqJ_9eOs z-=PxId@TQ0-iwBV-^6MmjI+D6`l~~U)!Y(Gii59;iFB(1c;4PK9 z(;R&nzh>-fr9$wuPtZP8T&IeUmp~3l#ii*$<8#+-{DxuuX%%nFLRlK^S;2}#tf_*P m4Fo7~iK9?SZOeubG=XiT>3uBIrG~$$HFs49l5OMf!2bXfxB7Je diff --git a/database/database.sql b/database/database.sql index 350ac16..fa536e2 100644 --- a/database/database.sql +++ b/database/database.sql @@ -1,6 +1,6 @@ -create database if not exists wx_miniapp default charset utf8mb4; +create database if not exists wx_miniApp default charset utf8mb4; -use wx_miniapp; +use wx_miniApp; CREATE TABLE IF NOT EXISTS `wx_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', @@ -16,4 +16,20 @@ CREATE TABLE IF NOT EXISTS `wx_user` ( `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_openid` (`openid`) COMMENT 'openid唯一索引' -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='微信用户表'; \ No newline at end of file +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='微信用户表'; + + +-- 在现有database.sql文件末尾添加(不要删除原有内容) +CREATE TABLE IF NOT EXISTS `debate_history` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL COMMENT '关联用户ID', + `topic` varchar(255) NOT NULL COMMENT '辩题', + `stance` enum('正方','反方') NOT NULL COMMENT '持方', + `content` text COMMENT '辩论内容JSON', + `review` text COMMENT 'AI复盘内容', + `rounds` smallint(6) DEFAULT 0 COMMENT '辩论轮数', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_user_time` (`user_id`, `create_time`), + CONSTRAINT `fk_user_history` FOREIGN KEY (`user_id`) REFERENCES `wx_user` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='辩论历史记录表'; diff --git a/qodana.yaml b/qodana.yaml new file mode 100644 index 0000000..cee4e3d --- /dev/null +++ b/qodana.yaml @@ -0,0 +1,31 @@ +#-------------------------------------------------------------------------------# +# Qodana analysis is configured by qodana.yaml file # +# https://www.jetbrains.com/help/qodana/qodana-yaml.html # +#-------------------------------------------------------------------------------# +version: "1.0" + +#Specify inspection profile for code analysis +profile: + name: qodana.starter + +#Enable inspections +#include: +# - name: + +#Disable inspections +#exclude: +# - name: +# paths: +# - + +projectJDK: 17 #(Applied in CI/CD pipeline) + +#Execute shell command before Qodana execution (Applied in CI/CD pipeline) +#bootstrap: sh ./prepare-qodana.sh + +#Install IDE plugins before Qodana execution (Applied in CI/CD pipeline) +#plugins: +# - id: #(plugin id can be found at https://plugins.jetbrains.com) + +#Specify Qodana linter for analysis (Applied in CI/CD pipeline) +linter: jetbrains/qodana-jvm-community:latest