From 94c21e13d3d58af01613c4ab087a93055b45b3b9 Mon Sep 17 00:00:00 2001 From: attiya <2413103649@qq.com> Date: Tue, 23 Sep 2025 15:05:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=BB=E5=8A=A8-=E7=94=A8=E6=88=B7=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/controller/UserController.java | 109 +++++++++++++++--- .../mapper/UserCollectActivityMapper.java | 14 +++ .../activity/model/UserCollectActivity.java | 39 +++++++ .../activity/service/ActivityService.java | 9 ++ .../cdzy/activity/service/UserService.java | 2 + .../service/impl/ActivityServiceImpl.java | 82 +++++++++++-- .../service/impl/UserServiceImpl.java | 24 ++++ .../ActivityRegistrationApplicationTests.java | 4 +- .../component/GlobalExceptionHandler.class | Bin 6793 -> 6793 bytes .../activity/controller/UserController.class | Bin 7873 -> 10557 bytes .../activity/service/ActivityService.class | Bin 529 -> 1411 bytes .../cdzy/activity/service/UserService.class | Bin 593 -> 621 bytes .../service/impl/ActivityServiceImpl.class | Bin 10061 -> 14576 bytes .../service/impl/UserServiceImpl.class | Bin 8944 -> 9411 bytes .../table/UserCollectActivityTableDef.java | 46 ++++++++ ...ActivityRegistrationApplicationTests.class | Bin 4011 -> 3982 bytes 16 files changed, 302 insertions(+), 27 deletions(-) create mode 100644 src/main/java/com/cdzy/activity/mapper/UserCollectActivityMapper.java create mode 100644 src/main/java/com/cdzy/activity/model/UserCollectActivity.java create mode 100644 target/generated-sources/annotations/com/cdzy/activity/model/table/UserCollectActivityTableDef.java diff --git a/src/main/java/com/cdzy/activity/controller/UserController.java b/src/main/java/com/cdzy/activity/controller/UserController.java index 9bec8a1..abae6c8 100644 --- a/src/main/java/com/cdzy/activity/controller/UserController.java +++ b/src/main/java/com/cdzy/activity/controller/UserController.java @@ -1,14 +1,12 @@ package com.cdzy.activity.controller; import com.alibaba.fastjson2.JSONObject; -import com.cdzy.activity.model.Activity; -import com.cdzy.activity.model.JsonResult; -import com.cdzy.activity.model.PageParam; -import com.cdzy.activity.model.User; +import com.cdzy.activity.model.*; import com.cdzy.activity.model.dto.ActivityInfo; import com.cdzy.activity.model.vo.RegistrationVo; import com.cdzy.activity.model.vo.UserVo; import com.cdzy.activity.service.ActivityService; +import com.cdzy.activity.service.BulletinService; import com.cdzy.activity.service.UserService; import com.cdzy.activity.uitls.VerifyUtil; import com.mybatisflex.core.paginate.Page; @@ -22,9 +20,10 @@ import org.springframework.web.bind.annotation.*; import java.util.Objects; import static com.cdzy.activity.model.table.ActivityTableDef.ACTIVITY; +import static com.cdzy.activity.model.table.BulletinTableDef.BULLETIN; /** - * 微信用户控制层。 + * 微信用户控制层。 * * @author attiya * @since 2025-09-17 @@ -42,14 +41,17 @@ public class UserController { @Resource private ActivityService activityService; + @Resource + private BulletinService bulletinService; + /** - * 用户微信无感登录。 + * 用户微信无感登录。 * * @param code 微信登录返回的code * @return 登陆结果 */ @RequestMapping("login") - public JsonResult silentLogin(@RequestParam(name ="js_code") String code) { + public JsonResult silentLogin(@RequestParam(name = "js_code") String code) { JSONObject result = verifyUtil.wechatAuthority(code); if (result == null) { return JsonResult.failed("微信登录失败"); @@ -59,7 +61,7 @@ public class UserController { } String openid = result.getString("openid"); QueryWrapper queryWrapper = QueryWrapper.create() - .eq(User::getWxOpenId, openid); + .eq(User::getWxOpenId, openid); User user = userService.getOne(queryWrapper); if (user == null) { user = new User(); @@ -70,7 +72,7 @@ public class UserController { } /** - * 用户详情填写。 + * 用户详情填写。 * * @param user 用户信息 * @return 登陆结果 @@ -82,13 +84,13 @@ public class UserController { } /** - * 用户详情。 + * 用户详情。 * * @param openId 微信登陆openId * @return 登陆结果 */ @GetMapping("info") - public JsonResult info(@RequestParam("openId")String openId) { + public JsonResult info(@RequestParam("openId") String openId) { QueryWrapper queryWrapper = QueryWrapper.create() .eq(User::getWxOpenId, openId); User user = userService.getOne(queryWrapper); @@ -96,7 +98,7 @@ public class UserController { } /** - * 用户查询活动分页数据。 + * 用户查询活动分页数据。 * * @param activityName 活动名称 * @param activityType 活动类型 @@ -112,7 +114,7 @@ public class UserController { } /** - * 用户查询活动详细信息。 + * 用户查询活动详细信息。 * * @param activityId 活动ID * @return 登陆结果 @@ -124,7 +126,7 @@ public class UserController { } /** - * 用户报名活动。 + * 用户报名活动。 * * @param registrationVo 活动报名信息 * @return 登陆结果 @@ -136,14 +138,87 @@ public class UserController { } /** - * 分页查询用户已报名活动。 + * 用户取消报名活动。 + * + * @param registrationVo 活动报名信息 + * @return 登陆结果 + */ + @PostMapping("activity/cancel") + public JsonResult cancel(@RequestBody RegistrationVo registrationVo) { + userService.cancel(registrationVo); + return JsonResult.success(); + } + + /** + * 分页查询用户已报名活动。 * * @param pageParam 分页参数 * @return 登陆结果 */ @GetMapping("activity/registered") - public JsonResult registered(PageParam pageParam, String activityName, Integer activityType,@NotNull(message = "OpenId不能为空") String wxOpenId) { - Page page = activityService.registered(pageParam,activityName,activityType,wxOpenId); + public JsonResult registered(PageParam pageParam, String activityName, Integer activityType, @NotNull(message = "OpenId不能为空") String wxOpenId) { + Page page = activityService.registered(pageParam, activityName, activityType, wxOpenId); return JsonResult.success(page); } + + /** + * 校验用户是否收藏活动 + * @param registrationVo 活动信息 + * @return 结构 + */ + @PostMapping("activity/collected") + public JsonResult collected(@RequestBody RegistrationVo registrationVo) { + boolean collected = activityService.collected(registrationVo); + return JsonResult.success(collected); + } + + /** + * 用户收藏活动 + * @param registrationVo 活动信息 + * @return 结构 + */ + @PostMapping("activity/collect") + public JsonResult collect(@RequestBody RegistrationVo registrationVo) { + activityService.collect(registrationVo); + return JsonResult.success(); + } + + /** + * 用户取消收藏活动 + * @param registrationVo 活动信息 + * @return 结构 + */ + @PostMapping("activity/collectRemove") + public JsonResult collectRemove(@RequestBody RegistrationVo registrationVo) { + activityService.collectRemove(registrationVo); + return JsonResult.success(); + } + + /** + * 分析查询用户收藏活动 + * @param pageParam 分页信息 + * @return 结构 + */ + @GetMapping("activity/collectPage") + public JsonResult collectPage(PageParam pageParam,String wxOpenId) { + Page page = activityService.collectPage(pageParam,wxOpenId); + return JsonResult.success(page); + } + + + /** + * 公告分页查询 + * @param pageParam 分页参数 + * @param bulletinTitle 公告标题 + * @return 分页结果 + */ + @GetMapping("bulletin/page") + public JsonResult page(PageParam pageParam, String bulletinTitle) { + QueryWrapper queryWrapper = QueryWrapper.create() + .where(BULLETIN.BULLETIN_TITLE.like(bulletinTitle, StringUtil.hasText(bulletinTitle))); + Page page = bulletinService.page(pageParam.getPage(), queryWrapper); + return JsonResult.success(page); + } + + } diff --git a/src/main/java/com/cdzy/activity/mapper/UserCollectActivityMapper.java b/src/main/java/com/cdzy/activity/mapper/UserCollectActivityMapper.java new file mode 100644 index 0000000..d8da9e2 --- /dev/null +++ b/src/main/java/com/cdzy/activity/mapper/UserCollectActivityMapper.java @@ -0,0 +1,14 @@ +package com.cdzy.activity.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.cdzy.activity.model.UserCollectActivity; + +/** + * 映射层。 + * + * @author attiya + * @since 2025-09-23 + */ +public interface UserCollectActivityMapper extends BaseMapper { + +} diff --git a/src/main/java/com/cdzy/activity/model/UserCollectActivity.java b/src/main/java/com/cdzy/activity/model/UserCollectActivity.java new file mode 100644 index 0000000..5c2ecb3 --- /dev/null +++ b/src/main/java/com/cdzy/activity/model/UserCollectActivity.java @@ -0,0 +1,39 @@ +package com.cdzy.activity.model; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; + +import java.io.Serial; + +import com.mybatisflex.core.keygen.KeyGenerators; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 实体类。 + * + * @author attiya + * @since 2025-09-23 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("user_collect_activity") +public class UserCollectActivity implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Generator, value = KeyGenerators.snowFlakeId) + private Long collectId; + + private Long activityId; + + private Long userId; + +} diff --git a/src/main/java/com/cdzy/activity/service/ActivityService.java b/src/main/java/com/cdzy/activity/service/ActivityService.java index c248c93..1fc4051 100644 --- a/src/main/java/com/cdzy/activity/service/ActivityService.java +++ b/src/main/java/com/cdzy/activity/service/ActivityService.java @@ -2,6 +2,7 @@ package com.cdzy.activity.service; import com.cdzy.activity.model.PageParam; import com.cdzy.activity.model.vo.ActivityVo; +import com.cdzy.activity.model.vo.RegistrationVo; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; import com.cdzy.activity.model.Activity; @@ -23,4 +24,12 @@ public interface ActivityService extends IService { void checkStatus(); Page registered(PageParam pageParam, String activityName, Integer activityType,String wxOpenId); + + void collectRemove(RegistrationVo registrationVo); + + void collect(RegistrationVo registrationVo); + + Page collectPage(PageParam pageParam,String wxOpenId); + + boolean collected(RegistrationVo registrationVo); } diff --git a/src/main/java/com/cdzy/activity/service/UserService.java b/src/main/java/com/cdzy/activity/service/UserService.java index 5f25880..152211a 100644 --- a/src/main/java/com/cdzy/activity/service/UserService.java +++ b/src/main/java/com/cdzy/activity/service/UserService.java @@ -19,4 +19,6 @@ public interface UserService extends IService { void registration(RegistrationVo registrationVo); ActivityInfo activityInfo(Long activityId); + + void cancel(RegistrationVo registrationVo); } diff --git a/src/main/java/com/cdzy/activity/service/impl/ActivityServiceImpl.java b/src/main/java/com/cdzy/activity/service/impl/ActivityServiceImpl.java index a84dd18..8847a1a 100644 --- a/src/main/java/com/cdzy/activity/service/impl/ActivityServiceImpl.java +++ b/src/main/java/com/cdzy/activity/service/impl/ActivityServiceImpl.java @@ -6,10 +6,11 @@ import com.cdzy.activity.component.ImageConfig; import com.cdzy.activity.enums.ActivityStatus; import com.cdzy.activity.mapper.ActivityMapper; import com.cdzy.activity.mapper.ActivityUserMapper; -import com.cdzy.activity.model.Activity; -import com.cdzy.activity.model.ActivityUser; -import com.cdzy.activity.model.PageParam; +import com.cdzy.activity.mapper.UserCollectActivityMapper; +import com.cdzy.activity.mapper.UserMapper; +import com.cdzy.activity.model.*; import com.cdzy.activity.model.vo.ActivityVo; +import com.cdzy.activity.model.vo.RegistrationVo; import com.cdzy.activity.service.ActivityService; import com.cdzy.activity.uitls.FileUtils; import com.mybatisflex.core.paginate.Page; @@ -28,7 +29,8 @@ import java.util.List; import java.util.Objects; import static com.cdzy.activity.model.table.ActivityTableDef.ACTIVITY; -import static com.cdzy.activity.model.table.ActivityUserTableDef.ACTIVITY_USER; +import static com.cdzy.activity.model.table.UserCollectActivityTableDef.USER_COLLECT_ACTIVITY; +import static com.cdzy.activity.model.table.UserRegistrationActivityTableDef.USER_REGISTRATION_ACTIVITY; import static com.cdzy.activity.model.table.UserTableDef.USER; /** @@ -46,6 +48,13 @@ public class ActivityServiceImpl extends ServiceImpl i @Resource private ActivityUserMapper activityUserMapper; + @Resource + private UserCollectActivityMapper collectActivityMapper; + + + @Resource + private UserMapper userMapper; + @Resource private ImageConfig imageConfig; @@ -172,13 +181,72 @@ public class ActivityServiceImpl extends ServiceImpl i } @Override - public Page registered(PageParam pageParam, String activityName, Integer activityType,String wxOpenId) { + public Page registered(PageParam pageParam, String activityName, Integer activityType, String wxOpenId) { QueryWrapper queryWrapper = QueryWrapper.create() .where(ACTIVITY.ACTIVITY_NAME.like(activityName, StringUtil.hasText(activityName))) .where(ACTIVITY.ACTIVITY_TYPE.eq(activityType, Objects.nonNull(activityType))) .where(USER.WX_OPEN_ID.eq(wxOpenId)) - .leftJoin(ACTIVITY_USER).on(ACTIVITY_USER.ACTIVITY_ID.eq(ACTIVITY.ACTIVITY_ID)) - .leftJoin(USER).on(USER.USER_ID.eq(ACTIVITY_USER.USER_ID)); + .leftJoin(USER_REGISTRATION_ACTIVITY).on(USER_REGISTRATION_ACTIVITY.ACTIVITY_ID.eq(ACTIVITY.ACTIVITY_ID)) + .leftJoin(USER).on(USER.USER_ID.eq(USER_REGISTRATION_ACTIVITY.USER_ID)); return activityMapper.paginate(pageParam.getPage(), queryWrapper); } + + @Override + public void collectRemove(RegistrationVo registrationVo) { + QueryWrapper queryWrapper = QueryWrapper.create() + .where(USER_COLLECT_ACTIVITY.ACTIVITY_ID.eq(registrationVo.getActivityId())) + .where(USER.WX_OPEN_ID.eq(registrationVo.getWxOpenId())) + .leftJoin(USER).on(USER.USER_ID.eq(USER_COLLECT_ACTIVITY.USER_ID)); + collectActivityMapper.deleteByQuery(queryWrapper); + } + + @Override + public void collect(RegistrationVo registrationVo) { + QueryWrapper queryWrapper = QueryWrapper.create() + .where(USER_COLLECT_ACTIVITY.ACTIVITY_ID.eq(registrationVo.getActivityId())) + .where(USER.WX_OPEN_ID.eq(registrationVo.getWxOpenId())) + .leftJoin(USER).on(USER.USER_ID.eq(USER_COLLECT_ACTIVITY.USER_ID)); + UserCollectActivity collectActivity = collectActivityMapper.selectOneByQuery(queryWrapper); + if (collectActivity != null) { + throw new RuntimeException("请勿重复收藏"); + } + + queryWrapper.clear(); + queryWrapper.where(ACTIVITY.ACTIVITY_ID.eq(registrationVo.getActivityId())); + Activity activity = activityMapper.selectOneByQuery(queryWrapper); + if (activity == null) { + throw new RuntimeException("活动信息错误"); + } + + queryWrapper.clear(); + queryWrapper.where(USER.WX_OPEN_ID.eq(registrationVo.getWxOpenId())); + User user = userMapper.selectOneByQuery(queryWrapper); + if (user == null) { + throw new RuntimeException("用户信息错误"); + } + UserCollectActivity userCollectActivity = new UserCollectActivity(); + userCollectActivity.setActivityId(registrationVo.getActivityId()); + userCollectActivity.setUserId(user.getUserId()); + collectActivityMapper.insert(userCollectActivity); + } + + @Override + public Page collectPage(PageParam pageParam,String wxOpenId) { + QueryWrapper queryWrapper = QueryWrapper.create() + .select(ACTIVITY.ALL_COLUMNS) + .where(USER.WX_OPEN_ID.eq(wxOpenId)) + .leftJoin(USER_COLLECT_ACTIVITY).on(ACTIVITY.ACTIVITY_ID.eq(USER_COLLECT_ACTIVITY.ACTIVITY_ID)) + .leftJoin(USER).on(USER.USER_ID.eq(USER_COLLECT_ACTIVITY.USER_ID)); + return activityMapper.paginate(pageParam.getPage(), queryWrapper); + } + + @Override + public boolean collected(RegistrationVo registrationVo) { + QueryWrapper queryWrapper = QueryWrapper.create() + .where(USER_COLLECT_ACTIVITY.ACTIVITY_ID.eq(registrationVo.getActivityId())) + .where(USER.WX_OPEN_ID.eq(registrationVo.getWxOpenId())) + .leftJoin(USER).on(USER.USER_ID.eq(USER_COLLECT_ACTIVITY.USER_ID)); + UserCollectActivity collectActivity = collectActivityMapper.selectOneByQuery(queryWrapper); + return collectActivity==null?Boolean.FALSE:Boolean.TRUE; + } } diff --git a/src/main/java/com/cdzy/activity/service/impl/UserServiceImpl.java b/src/main/java/com/cdzy/activity/service/impl/UserServiceImpl.java index 10a1806..2889e05 100644 --- a/src/main/java/com/cdzy/activity/service/impl/UserServiceImpl.java +++ b/src/main/java/com/cdzy/activity/service/impl/UserServiceImpl.java @@ -138,4 +138,28 @@ public class UserServiceImpl extends ServiceImpl implements Us } return activityInfo; } + + @Override + public void cancel(RegistrationVo registrationVo) { + Long activityId = registrationVo.getActivityId(); + String wxOpenId = registrationVo.getWxOpenId(); + Activity activity = activityMapper.selectOneById(activityId); + if (activity == null) { + throw new RuntimeException("该活动不存在"); + } + QueryWrapper queryWrapper = QueryWrapper.create() + .where(USER.WX_OPEN_ID.eq(wxOpenId)); + User user = userMapper.selectOneByQuery(queryWrapper); + if (user == null) { + throw new RuntimeException("用户信息错误"); + } + queryWrapper.clear(); + queryWrapper.where(USER_REGISTRATION_ACTIVITY.USER_ID.eq(user.getUserId())) + .where(USER_REGISTRATION_ACTIVITY.ACTIVITY_ID.eq(activityId)); + UserRegistrationActivity userRegistrationActivity = userRegistrationActivityMapper.selectOneByQuery(queryWrapper); + if (userRegistrationActivity == null) { + throw new RuntimeException("用户当前未报名"); + } + userRegistrationActivityMapper.delete(userRegistrationActivity); + } } diff --git a/src/test/java/com/cdzy/activity/ActivityRegistrationApplicationTests.java b/src/test/java/com/cdzy/activity/ActivityRegistrationApplicationTests.java index f77f726..0f7072e 100644 --- a/src/test/java/com/cdzy/activity/ActivityRegistrationApplicationTests.java +++ b/src/test/java/com/cdzy/activity/ActivityRegistrationApplicationTests.java @@ -1,7 +1,5 @@ package com.cdzy.activity; -import cn.hutool.core.lang.generator.SnowflakeGenerator; -import com.cdzy.activity.model.Staff; import com.cdzy.activity.service.StaffService; import com.mybatisflex.codegen.Generator; import com.mybatisflex.codegen.config.GlobalConfig; @@ -21,7 +19,7 @@ class ActivityRegistrationApplicationTests { private static final String mapperPath="D:/ActivityRegistration/resources/mapper"; private static final String packageName ="com.cdzy.activity"; private static final String[] tables= new String[]{ - "user_registration_activity","activity_user" + "user_collect_activity" }; @Test diff --git a/target/classes/com/cdzy/activity/component/GlobalExceptionHandler.class b/target/classes/com/cdzy/activity/component/GlobalExceptionHandler.class index 66e6cd948e799bb10449473bee7f6f5ff3494e63..21722184eadc738a777056dcb7c0cbd048f6602e 100644 GIT binary patch delta 143 zcmeA)?KItxF2X1?IYT6dRgr;*L22?yk$z5fAWMTmi9vI6qG&s-Ap<{y(d4&4mL-s7 z1!O5to+FmV>ImdHO-__lo~$LF!s-F!d4lD(iKns#Fz_)1PF9eZ!5IM*k7ST!h?;y* eVm506ke3M5)5%&3WYvLn3rR&VN>9#~k^=z7Vj|4| delta 143 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 Mm4|z9zx4FrCm2PdX#fBK delta 59 zcmZqXp2)&=>ff$?3=9mm45Ayk#2L9bgEQ0f5=%;pQYXu?Ok`x9yn)3@h=GYg5U7TU LL5M*ZOp5>j>nse7 diff --git a/target/classes/com/cdzy/activity/service/UserService.class b/target/classes/com/cdzy/activity/service/UserService.class index 97f218789c97f6f8556deba1ea3be7d9ab1b2d57..57cd78c30f60b622ae1920f801baac2c7aef2d6a 100644 GIT binary patch delta 75 zcmcb}@|K0`)W2Q(7#J9A8N@bnWiYa{B`4-3r{+v9V4TXxGMSCZQk8{~L6Cumfsug| WsEn17ffq7W)W2Q(7#J9A8ALa7WiU>zW}M8(Jei-#Qiy?xK@cdx#2~~V45mc@Q4R@g diff --git a/target/classes/com/cdzy/activity/service/impl/ActivityServiceImpl.class b/target/classes/com/cdzy/activity/service/impl/ActivityServiceImpl.class index 4aaf27607356081cc813fa6d62601cd33b8b5af8..bd3dec948d29dda010131d20362af329b3e4096a 100644 GIT binary patch delta 5380 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 delta 1800 zcma)-dr;I>6vw~c-#&iqvI)y7L9!`}5DyDdl60UfwbUFfZJKdVbX^fy7X$$xs4Qt> zz7V{H?^nKiC`zt|<|E9^QZX%4%k1S$Q`7Ws&SahafsRxEG`oB6@0@$ix#ynGJ-_{< z{M<(w&oC$H(0#0|ZOl2k{YMh}Scg87yLX3x%EY?{?MEkuny_o@TX;J2=N&Z4# zW!QO^gR|A9gmiJ9>)Paj9x_dvq>lip~`+t?mPw#&=X{&w(2Ewlw$jQQb%m z+HGTsi%PwfRWk}(@>9Apil^=TglBYq>OeZrs+vdIGAKtiGn0(qc|r@%?Sx4*QC5Co z=Otd&`K5zj@rnwho^Y}z%ED`QoIqPNzaa*wM9)L2-5jANqz$(42O?SBOnp!tPm9v{ zlWI@v6XbH3pkV_xf~*%5R+(4ItlAYPdwQD#f}A#i^<3>#&X zpfV? z>j<|?!WoO)Eo*yZEeqzqkgM};oxZ=Z77;og)@3vlIKavai9zEL)fGeIAq&$$`0JN+(SJJ(zxWz;tq~ z0ZzM1t26K}for%5EvrFm2&{Kd7RJ&EtQodWV0U$DKvq)U{|!kPg~Bbx2Gx-DYe&lr zM~om^B9NB~(`AUmawK7eT$Osc)=`Ohzrj4c?(?70n(M z-=}wCw4FzIG@P=;x-9qJBy&@Gh~r0Sc^M&2QWtZ&nu|i5s(#5y2u_RGg5k1S>SB3_ z6>E_v!b}(E7($i^)h^CAgd`DyE-o;HSP>SwSZ4^fR(1oLk8tr=7ndC3vg5L+>Av?- zulwFdP5hAZPhZPZN*a>%YEua_;Uo>h7uT#o-%^r?1}a?GD2{*Xw*1jYLSbr{2@z zaWb15HEzP)!Wa=%<7p{uI8eXc z)3R@Wb#ZNDwMny0=XOCaV8f!93D(gH|EhhdI zox9X+BRwRWujwpPzZ+}0S4BlASy>MNR?9Y{0xRp_i#<0T_;Vs&d1K?%kFhRqErJn*1SEodN6Ze9ST8XM zN6_|AZ4vh#s?Fic|J8&8c8jS&m@*}!M0@%iIBin1QT`?fa3^!W1l@<=0X9iS9%Qq? z8dPgs9~+g!y>*v~N*Ap_yB}q)T6joyM&bZlc~~^ZqmoD11{>cMWEi-FwHh26Qu&?~ z>|~1s@+jXo`De!6*C-8&6DGW7gX0KCD;~4R?C3-cKcH8X{)Pm9?GLPAJC8{XJQolm zs}6RG5IcKm=W!9@Dgrqgg( z+Sfo^Mw-Shjd`joF*e$-zr)hs!!wpY3yB>fKR0Q8)xZ8U1!SSg5~s2!}46{-9FDP zqusDQFj_)^EV1K+z*%{wnsX7mP&>v%be<8#TA>xf%I8!*cOzNG0WUZ$=&iX zeyI0riBTB_x6JZ+^;c4y_eIAjiUeG2aK|i52azMm%LZSyk}OGf8{A_hDU!Ty@J%aO zDal&~tE?n+UM3V%3#=CR-=5>XJJQByxbHnB{pUFiu%G8djrkNJ_8@o(aWYH{Gwx%D zjOu`tgLs}7tT_1K^$*FGPox$pM;#X26^`>7uk%yhkg7}e1c@(`2<1)Q;uK>30q3S0 A00000 delta 1114 zcmZWoSx{705Itvx;lcROao*GjvW|#YKq)T7gal{e4&uJWEjY-8MPvpXP!kOV_YIe; zxbKN;X(dG!rqt51{L4qaqCZx-edwoF{wxLU_kd`{pWA)T>)U<0Z@>G+uO~bI>b`jg zKoPJ0;aux>Ia$CjG>+5xCA@@BjY{&Vr*3b2A-~r6jm{$V-klX!$bimoIYH$anL`UW zN#|soB?eZ8qQ$EtwKGD|s&K{h>beRu-&CE`)EZ+5OVs%IM0MRTe5DL%oI$v1f=$7Z zwZXc|k+aHcLMx+Y{4AZb)pH{!wt(|=&R1?v9v3RVCs&B?bS_pAk5}AfI+v^6o(!%~ z*F4!QR}Vayv1J&cG1SrR3D~(^`4ihZ9wxT2|6wPO@TkUPI*;>&Y8ZSkVc`G=Pdkwf z!^N{IklYY+k;qcdlGB_+OT*z+jS-EP)#KzbWfh2l4e7`L`Gd?VR&1qM8`fd{XWR?C z{EWMSKmW%$Ksc;SRVtF=&93grE9Vf_$f?VBz`<3l6-%yW9c-*p*HZSgTKQ9_E-<5V zL>bW18)bT7M&zao5!SOo6sDn^YZ!%{jS|@p>_VP~I1Sls62d`-#gJ>c&dlHODD?uR zKx_KNX0yO%B%leytYi*sLK4^WN0I#m>Al=54B$`PARKt8Pl$LM`Lo#~_tC*-5#r=7 zw(u9&CC3J~auZ_c!j_&a%s`_^k0O>K4S~F3JyU2mfhSV)2otd|43_gvF$mX99wED%I)M=R|Th(Nhc-cXIks6bYDVaE=A?1EaOGX8W9P?x@_n*T?QG*-kz?*c|0Rg&LW)e2{fsx5X}*=v vHty#E%c}pD{h;}_!nvf?c8NR5Q#`|SJkMW+b;})_O#U~-^8zpN3X(nmCj!uj diff --git a/target/generated-sources/annotations/com/cdzy/activity/model/table/UserCollectActivityTableDef.java b/target/generated-sources/annotations/com/cdzy/activity/model/table/UserCollectActivityTableDef.java new file mode 100644 index 0000000..5b9f97d --- /dev/null +++ b/target/generated-sources/annotations/com/cdzy/activity/model/table/UserCollectActivityTableDef.java @@ -0,0 +1,46 @@ +package com.cdzy.activity.model.table; + +import com.mybatisflex.core.query.QueryColumn; +import com.mybatisflex.core.table.TableDef; + +// Auto generate by mybatis-flex, do not modify it. +public class UserCollectActivityTableDef extends TableDef { + + /** + * 实体类。 + + @author attiya + @since 2025-09-23 + */ + public static final UserCollectActivityTableDef USER_COLLECT_ACTIVITY = new UserCollectActivityTableDef(); + + public final QueryColumn USER_ID = new QueryColumn(this, "user_id"); + + public final QueryColumn COLLECT_ID = new QueryColumn(this, "collect_id"); + + public final QueryColumn ACTIVITY_ID = new QueryColumn(this, "activity_id"); + + /** + * 所有字段。 + */ + public final QueryColumn ALL_COLUMNS = new QueryColumn(this, "*"); + + /** + * 默认字段,不包含逻辑删除或者 large 等字段。 + */ + public final QueryColumn[] DEFAULT_COLUMNS = new QueryColumn[]{USER_ID, COLLECT_ID, ACTIVITY_ID}; + + public UserCollectActivityTableDef() { + super("", "user_collect_activity"); + } + + private UserCollectActivityTableDef(String schema, String name, String alisa) { + super(schema, name, alisa); + } + + public UserCollectActivityTableDef as(String alias) { + String key = getNameWithSchema() + "." + alias; + return getCache(key, k -> new UserCollectActivityTableDef("", "user_collect_activity", alias)); + } + +} diff --git a/target/test-classes/com/cdzy/activity/ActivityRegistrationApplicationTests.class b/target/test-classes/com/cdzy/activity/ActivityRegistrationApplicationTests.class index 9ee3961ad37de132f9aa439315bdcfa9f812caf2..b47c5c92c6f0ec01293283b8ebb2911aebdd60b6 100644 GIT binary patch delta 520 zcmYjNOH0FG5S*kBV{I!4Rw`=hp%#lM^(ra|o;_3#qEIBQP^bts3i=1UDH0!5Q{V6U zsu2W1e}KP5@GerEq%rlf`|a+`?0!>{*JR&E<@FuFAfC&aw9rG1q{GO$gW`+RMDn+=?9(_}=AP#0cxXe|4Vqezn#r4dEf3s6L_vW>5SD zLfN7f8BIZ;5eJO^DgcK#Vg(#?Dni#L{E1l;8-j&?}FTVh(8d8Z?rkTxnvu-vR8fjhlQfn6NrtP2gTuL?6n0Xbm1B|6qUKE zgj=rZ=1F(B=kh;yOg#|~=qFCs3V}K5d4pq7Q!m5`Fzx7#TPgy(2^+r>REhrzCet;% s;^3!jyo5)~IMdgtbt4dPzhQmS)wGc`uxk1%pyqE2S5!TJat<|sUzEaEr~m)} delta 529 zcmYk2OG^TA6vfYs8k39$5(ZZ2rlb~v?Ij4>xM^W6q(IChW>JDpLAw?~)S{^A{m|+C zu$Ngag8BfhgT6%{AR;=Bca*drC!3aF%LKlN`77T1`8$>pyrioc;x9zu2OZYsS1be9CiGM8C$!ZS9MoCug`IE61W4#c5jTYT zx#|{oT+_qD?(x9owV$Z)M3m4+UtXJcO_BHQ8tT$n_p$?wS-fF`BCr}Z{o`(x{x5e- zsryrwf7J9#c&z>xY1JD6kK+xiahqo?7Pot}SQ(2Yb_LYGvyFSotciHCu6+jn0bgrj ADgXcg