活动-用户相关功能
This commit is contained in:
parent
37b33c9b37
commit
3ff9e94bdb
@ -110,9 +110,10 @@ public class ActivityController {
|
||||
public JsonResult<?> getInfo(@PathVariable Long id) {
|
||||
Activity activity = activityService.getById(id);
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.select(ACTIVITY_USER.USER_ID)
|
||||
.where(ACTIVITY_USER.ACTIVITY_ID.eq(activity.getActivityId()));
|
||||
List<Long> list = activityUserMapper.selectListByQueryAs(queryWrapper,Long.class);
|
||||
.select(USER.ALL_COLUMNS)
|
||||
.where(ACTIVITY_USER.ACTIVITY_ID.eq(activity.getActivityId()))
|
||||
.leftJoin(USER).on(USER.USER_ID.eq(ACTIVITY_USER.USER_ID));
|
||||
List<User> list = activityUserMapper.selectListByQueryAs(queryWrapper,User.class);
|
||||
ActivityDto activityDto = new ActivityDto(activity, list);
|
||||
return JsonResult.success(activityDto);
|
||||
}
|
||||
|
||||
@ -132,7 +132,7 @@ public class UserController {
|
||||
*/
|
||||
@PostMapping("activity/registration")
|
||||
public JsonResult<?> registration(@RequestBody RegistrationVo registrationVo) {
|
||||
|
||||
userService.registration(registrationVo);
|
||||
return JsonResult.success();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.cdzy.activity.model.dto;
|
||||
|
||||
import com.cdzy.activity.model.Activity;
|
||||
import com.cdzy.activity.model.User;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@ -23,5 +24,5 @@ public class ActivityDto implements Serializable {
|
||||
|
||||
|
||||
private Activity activity;
|
||||
private List<Long> userIds;
|
||||
private List<User> userIds;
|
||||
}
|
||||
|
||||
@ -2,11 +2,17 @@ package com.cdzy.activity.model.vo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author attiya
|
||||
* @since 2025-09-22
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class RegistrationVo {
|
||||
|
||||
@NotBlank(message = "微信openId不能为空")
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.cdzy.activity.service;
|
||||
|
||||
import com.cdzy.activity.model.vo.RegistrationVo;
|
||||
import com.cdzy.activity.model.vo.UserVo;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
import com.cdzy.activity.model.User;
|
||||
@ -13,4 +14,6 @@ import com.cdzy.activity.model.User;
|
||||
public interface UserService extends IService<User> {
|
||||
|
||||
void saveUser(UserVo user);
|
||||
|
||||
void registration(RegistrationVo registrationVo);
|
||||
}
|
||||
|
||||
@ -1,5 +1,12 @@
|
||||
package com.cdzy.activity.service.impl;
|
||||
|
||||
import com.cdzy.activity.mapper.ActivityMapper;
|
||||
import com.cdzy.activity.mapper.ActivityUserMapper;
|
||||
import com.cdzy.activity.mapper.UserRegistrationActivityMapper;
|
||||
import com.cdzy.activity.model.Activity;
|
||||
import com.cdzy.activity.model.ActivityUser;
|
||||
import com.cdzy.activity.model.UserRegistrationActivity;
|
||||
import com.cdzy.activity.model.vo.RegistrationVo;
|
||||
import com.cdzy.activity.model.vo.UserVo;
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
@ -9,6 +16,12 @@ import com.cdzy.activity.service.UserService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static com.cdzy.activity.model.table.ActivityUserTableDef.ACTIVITY_USER;
|
||||
import static com.cdzy.activity.model.table.UserRegistrationActivityTableDef.USER_REGISTRATION_ACTIVITY;
|
||||
import static com.cdzy.activity.model.table.UserTableDef.USER;
|
||||
|
||||
/**
|
||||
* 服务层实现。
|
||||
*
|
||||
@ -21,6 +34,15 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
||||
@Resource
|
||||
private UserMapper userMapper;
|
||||
|
||||
@Resource
|
||||
private ActivityMapper activityMapper;
|
||||
|
||||
@Resource
|
||||
private ActivityUserMapper activityUserMapper;
|
||||
|
||||
@Resource
|
||||
private UserRegistrationActivityMapper userRegistrationActivityMapper;
|
||||
|
||||
@Override
|
||||
public void saveUser(UserVo user) {
|
||||
QueryWrapper queryWrapper = QueryWrapper
|
||||
@ -41,4 +63,49 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
||||
entity.setIsFilled(2);
|
||||
userMapper.update(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registration(RegistrationVo registrationVo) {
|
||||
Long activityId = registrationVo.getActivityId();
|
||||
String wxOpenId = registrationVo.getWxOpenId();
|
||||
Activity activity = activityMapper.selectOneById(activityId);
|
||||
if (activity == null) {
|
||||
throw new RuntimeException("该活动不存在");
|
||||
}
|
||||
if (activity.getRegistrationStartTime().isAfter(LocalDateTime.now())){
|
||||
throw new RuntimeException("该活动尚未开始报名");
|
||||
}
|
||||
if (activity.getRegistrationEndTime().isBefore(LocalDateTime.now())){
|
||||
throw new RuntimeException("该活动已结束报名");
|
||||
}
|
||||
if (activity.getLimitPeople() == 1){
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.where(USER_REGISTRATION_ACTIVITY.ACTIVITY_ID.eq(activityId));
|
||||
long count = userRegistrationActivityMapper.selectCountByQuery(queryWrapper);
|
||||
if (count >= activity.getMaxNum()){
|
||||
throw new RuntimeException("该活动报名人数已达上限");
|
||||
}
|
||||
}
|
||||
if (activity.getLimitRegister() == 1){
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.where(ACTIVITY_USER.ACTIVITY_ID.eq(activityId))
|
||||
.where(USER.WX_OPEN_ID.eq(wxOpenId))
|
||||
.leftJoin(USER).on(USER.USER_ID.eq(ACTIVITY_USER.USER_ID));
|
||||
ActivityUser selected = activityUserMapper.selectOneByQuery(queryWrapper);
|
||||
if (selected == 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("用户信息错误");
|
||||
}
|
||||
UserRegistrationActivity registrationActivity = UserRegistrationActivity.builder()
|
||||
.activityId(activityId)
|
||||
.userId(user.getUserId())
|
||||
.build();
|
||||
userRegistrationActivityMapper.insert(registrationActivity);
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user