18 changed files with 381 additions and 7 deletions
Unified View
Diff Options
-
2dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/tasktemplate/entity/TaskTemplate.java
-
54dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/udtp/entity/UserDailyTaskProgress.java
-
15dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/udtp/event/UserDailyTaskProgressCommittedEvent.java
-
40dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/UserDailyTaskProgressUserCommandController.java
-
29dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/request/UserCreateUserDailyTaskProgressDto.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/request/UserDeleteUserDailyTaskProgressDto.java
-
32dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/request/UserEditUserDailyTaskProgressDto.java
-
27dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/utc/UserTaskCompleteEventHandler.java
-
26dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/udtp/UserDailyTaskProgressApplicationService.java
-
38dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/udtp/UserDailyTaskProgressAggregate.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/udtp/repository/UserDailyTaskProgressRepository.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/udtp/UserDailyTaskProgressDao.java
-
41dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/UserDailyTaskProgressRepositoryImpl.java
-
3dating-agency-mall-server/src/main/java/com/qniao/dam/query/tasktemplate/TaskTemplateQueryService.java
-
5dating-agency-mall-server/src/main/java/com/qniao/dam/query/tasktemplate/impl/TaskTemplateQueryServiceImpl.java
-
11dating-agency-mall-server/src/main/java/com/qniao/dam/query/udtp/UserDailyTaskProgressQueryService.java
-
27dating-agency-mall-server/src/main/java/com/qniao/dam/query/udtp/impl/UserDailyTaskProgressQueryServiceImpl.java
-
2dating-agency-mall-server/src/main/java/com/qniao/dam/query/utc/impl/UserTaskCompleteQueryServiceImpl.java
@ -0,0 +1,54 @@ |
|||||
|
package com.qniao.dam.domain.aggregate.udtp.entity; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.annotation.TableName; |
||||
|
import com.qniao.dam.domian.aggregate.tasktemplate.constant.SubTaskTypeEnum; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
import lombok.EqualsAndHashCode; |
||||
|
import com.qniao.domain.Entity; |
||||
|
|
||||
|
import java.time.LocalDate; |
||||
|
import java.time.LocalDateTime; |
||||
|
import java.util.Objects; |
||||
|
|
||||
|
/** |
||||
|
* 用户每日任务进度 |
||||
|
* |
||||
|
* @date 2026/02/26 |
||||
|
*/ |
||||
|
@Data |
||||
|
@EqualsAndHashCode(callSuper = true) |
||||
|
@TableName("da_user_daily_task_progress") |
||||
|
public class UserDailyTaskProgress extends Entity<UserDailyTaskProgress> { |
||||
|
|
||||
|
@ApiModelProperty("用户ID") |
||||
|
private Long userId; |
||||
|
|
||||
|
@ApiModelProperty("进度日期") |
||||
|
private LocalDate progressDate; |
||||
|
|
||||
|
@ApiModelProperty("子任务类型") |
||||
|
private SubTaskTypeEnum subTaskType; |
||||
|
|
||||
|
@ApiModelProperty("完成次数") |
||||
|
private Integer completeCount; |
||||
|
|
||||
|
public static UserDailyTaskProgress build(Long userId, |
||||
|
LocalDate progressDate, |
||||
|
SubTaskTypeEnum subTaskType, |
||||
|
Integer completeCount) { |
||||
|
UserDailyTaskProgress userDailyTaskProgress = new UserDailyTaskProgress(); |
||||
|
userDailyTaskProgress.setUserId(userId); |
||||
|
userDailyTaskProgress.setProgressDate(progressDate); |
||||
|
userDailyTaskProgress.setSubTaskType(subTaskType); |
||||
|
userDailyTaskProgress.setCompleteCount(completeCount); |
||||
|
return userDailyTaskProgress; |
||||
|
} |
||||
|
|
||||
|
public void commit(Integer commitCount) { |
||||
|
if (Objects.isNull(this.completeCount)) { |
||||
|
this.completeCount = 0; |
||||
|
} |
||||
|
this.completeCount += commitCount; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,15 @@ |
|||||
|
package com.qniao.dam.domian.aggregate.udtp.event; |
||||
|
|
||||
|
import com.qniao.domain.BaseDomainEvent; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.Data; |
||||
|
import lombok.NoArgsConstructor; |
||||
|
|
||||
|
@Data |
||||
|
@AllArgsConstructor |
||||
|
@NoArgsConstructor |
||||
|
public class UserDailyTaskProgressCommittedEvent extends BaseDomainEvent { |
||||
|
|
||||
|
private Long userId; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,40 @@ |
|||||
|
package com.qniao.dam.api.command.udtp.user; |
||||
|
|
||||
|
import com.qniao.dam.api.command.udtp.user.request.*; |
||||
|
import com.qniao.dam.application.service.udtp.UserDailyTaskProgressApplicationService; |
||||
|
import io.swagger.annotations.Api; |
||||
|
import io.swagger.annotations.ApiOperation; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
import javax.validation.Valid; |
||||
|
|
||||
|
@Api(tags = "用户每日任务进度") |
||||
|
@RestController |
||||
|
@RequestMapping("user") |
||||
|
public class UserDailyTaskProgressUserCommandController { |
||||
|
|
||||
|
@Resource |
||||
|
private UserDailyTaskProgressApplicationService userDailyTaskProgressApplicationService; |
||||
|
|
||||
|
@ApiOperation("用户创建用户每日任务进度") |
||||
|
@PostMapping("create/user-daily-task-progress") |
||||
|
public void userCreateUserDailyTaskProgress(@RequestBody @Valid UserCreateUserDailyTaskProgressDto dto, |
||||
|
@RequestParam("userId") Long userId) { |
||||
|
userDailyTaskProgressApplicationService.create(dto.trans2Domain()); |
||||
|
} |
||||
|
|
||||
|
@ApiOperation("用户编辑用户每日任务进度") |
||||
|
@PostMapping("edit/user-daily-task-progress") |
||||
|
public void userEditUserDailyTaskProgress(@RequestBody @Valid UserEditUserDailyTaskProgressDto dto, |
||||
|
@RequestParam("userId") Long userId) { |
||||
|
userDailyTaskProgressApplicationService.edit(dto.trans2Domain()); |
||||
|
} |
||||
|
|
||||
|
@ApiOperation("用户删除用户每日任务进度") |
||||
|
@PostMapping("delete/user-daily-task-progress") |
||||
|
public void userDeleteUserDailyTaskProgress(@RequestBody @Valid UserDeleteUserDailyTaskProgressDto dto, |
||||
|
@RequestParam("userId") Long userId) { |
||||
|
userDailyTaskProgressApplicationService.delete(dto.getId()); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,29 @@ |
|||||
|
package com.qniao.dam.api.command.udtp.user.request; |
||||
|
|
||||
|
import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; |
||||
|
import com.qniao.domain.Trans2DomainAssembler; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import com.qniao.framework.utils.TypeConvertUtils; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
@Data |
||||
|
public class UserCreateUserDailyTaskProgressDto implements Trans2DomainAssembler<UserDailyTaskProgress> { |
||||
|
|
||||
|
|
||||
|
@ApiModelProperty("用户ID") |
||||
|
private Long userId; |
||||
|
|
||||
|
@ApiModelProperty("进度日期") |
||||
|
private LocalDateTime progressDate; |
||||
|
|
||||
|
@ApiModelProperty("子任务类型") |
||||
|
private Byte subTaskType; |
||||
|
|
||||
|
@ApiModelProperty("完成次数") |
||||
|
private Integer completeCount; |
||||
|
|
||||
|
@Override |
||||
|
public UserDailyTaskProgress trans2Domain() { |
||||
|
return TypeConvertUtils.convert(this, UserDailyTaskProgress.class); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,12 @@ |
|||||
|
package com.qniao.dam.api.command.udtp.user.request; |
||||
|
|
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
@Data |
||||
|
public class UserDeleteUserDailyTaskProgressDto { |
||||
|
|
||||
|
@ApiModelProperty("唯一标识") |
||||
|
private Long id; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,32 @@ |
|||||
|
package com.qniao.dam.api.command.udtp.user.request; |
||||
|
|
||||
|
import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; |
||||
|
import com.qniao.domain.Trans2DomainAssembler; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import com.qniao.framework.utils.TypeConvertUtils; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
@Data |
||||
|
public class UserEditUserDailyTaskProgressDto implements Trans2DomainAssembler<UserDailyTaskProgress> { |
||||
|
|
||||
|
|
||||
|
@ApiModelProperty("唯一标识") |
||||
|
private Long id; |
||||
|
|
||||
|
@ApiModelProperty("用户ID") |
||||
|
private Long userId; |
||||
|
|
||||
|
@ApiModelProperty("进度日期") |
||||
|
private LocalDateTime progressDate; |
||||
|
|
||||
|
@ApiModelProperty("子任务类型") |
||||
|
private Byte subTaskType; |
||||
|
|
||||
|
@ApiModelProperty("完成次数") |
||||
|
private Integer completeCount; |
||||
|
|
||||
|
@Override |
||||
|
public UserDailyTaskProgress trans2Domain() { |
||||
|
return TypeConvertUtils.convert(this, UserDailyTaskProgress.class); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,26 @@ |
|||||
|
package com.qniao.dam.application.service.udtp; |
||||
|
|
||||
|
import com.qniao.dam.domain.aggregate.udtp.UserDailyTaskProgressAggregate; |
||||
|
import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
|
||||
|
@Service |
||||
|
public class UserDailyTaskProgressApplicationService { |
||||
|
|
||||
|
@Resource |
||||
|
private UserDailyTaskProgressAggregate userDailyTaskProgressAggregate; |
||||
|
|
||||
|
public void create(UserDailyTaskProgress userDailyTaskProgress) { |
||||
|
userDailyTaskProgressAggregate.create(userDailyTaskProgress); |
||||
|
} |
||||
|
|
||||
|
public void edit(UserDailyTaskProgress userDailyTaskProgress) { |
||||
|
userDailyTaskProgressAggregate.edit(userDailyTaskProgress); |
||||
|
} |
||||
|
|
||||
|
public void delete(Long id) { |
||||
|
userDailyTaskProgressAggregate.delete(id); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,38 @@ |
|||||
|
package com.qniao.dam.domain.aggregate.udtp; |
||||
|
|
||||
|
import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; |
||||
|
import com.qniao.dam.domain.aggregate.udtp.repository.UserDailyTaskProgressRepository; |
||||
|
import com.qniao.dam.domian.aggregate.udtp.event.UserDailyTaskProgressCommittedEvent; |
||||
|
import com.qniao.domain.BaseDomainEvent; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
|
||||
|
/** |
||||
|
* 用户每日任务进度 |
||||
|
* |
||||
|
* @date 2026/02/26 |
||||
|
*/ |
||||
|
@Service |
||||
|
public class UserDailyTaskProgressAggregate { |
||||
|
|
||||
|
@Resource |
||||
|
private UserDailyTaskProgressRepository repository; |
||||
|
|
||||
|
public void create(UserDailyTaskProgress entity) { |
||||
|
repository.save(entity); |
||||
|
} |
||||
|
|
||||
|
public void edit(UserDailyTaskProgress entity) { |
||||
|
repository.save(entity); |
||||
|
} |
||||
|
|
||||
|
public void delete(Long id) { |
||||
|
repository.delete(id); |
||||
|
} |
||||
|
|
||||
|
public BaseDomainEvent commit(UserDailyTaskProgress entity) { |
||||
|
repository.save(entity); |
||||
|
return new UserDailyTaskProgressCommittedEvent(entity.getUserId()); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,12 @@ |
|||||
|
package com.qniao.dam.domain.aggregate.udtp.repository; |
||||
|
|
||||
|
import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; |
||||
|
import com.qniao.domain.Repository; |
||||
|
|
||||
|
/** |
||||
|
* 用户每日任务进度 |
||||
|
* |
||||
|
* @date 2026/02/26 |
||||
|
*/ |
||||
|
public interface UserDailyTaskProgressRepository extends Repository<UserDailyTaskProgress, Long> { |
||||
|
} |
||||
@ -0,0 +1,12 @@ |
|||||
|
package com.qniao.dam.infrastructure.persistent.dao.udtp; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; |
||||
|
|
||||
|
/** |
||||
|
* 用户每日任务进度 |
||||
|
* |
||||
|
* @date 2026/02/26 |
||||
|
*/ |
||||
|
public interface UserDailyTaskProgressDao extends BaseMapper<UserDailyTaskProgress> { |
||||
|
} |
||||
@ -0,0 +1,41 @@ |
|||||
|
package com.qniao.dam.infrastructure.persistent.repository.impl; |
||||
|
|
||||
|
import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; |
||||
|
import com.qniao.dam.domain.aggregate.udtp.repository.UserDailyTaskProgressRepository; |
||||
|
import com.qniao.dam.infrastructure.persistent.dao.udtp.UserDailyTaskProgressDao; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
import java.util.Objects; |
||||
|
|
||||
|
/** |
||||
|
* 用户每日任务进度 |
||||
|
* |
||||
|
* @date 2026/02/26 |
||||
|
*/ |
||||
|
@Service |
||||
|
public class UserDailyTaskProgressRepositoryImpl implements UserDailyTaskProgressRepository { |
||||
|
|
||||
|
@Resource |
||||
|
private UserDailyTaskProgressDao dao; |
||||
|
|
||||
|
@Override |
||||
|
public UserDailyTaskProgress load(Long id) { |
||||
|
return dao.selectById(id); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Long save(UserDailyTaskProgress entity) { |
||||
|
if (Objects.isNull(entity) || Objects.isNull(dao.selectById(entity.getId()))) { |
||||
|
dao.insert(entity); |
||||
|
} else { |
||||
|
dao.updateById(entity); |
||||
|
} |
||||
|
return entity.getId(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void delete(Long id) { |
||||
|
dao.deleteById(id); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,11 @@ |
|||||
|
package com.qniao.dam.query.udtp; |
||||
|
|
||||
|
import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; |
||||
|
import com.qniao.dam.domian.aggregate.tasktemplate.constant.SubTaskTypeEnum; |
||||
|
|
||||
|
import java.time.LocalDate; |
||||
|
|
||||
|
public interface UserDailyTaskProgressQueryService { |
||||
|
|
||||
|
UserDailyTaskProgress queryBy(Long userId, LocalDate progressDate, SubTaskTypeEnum subTaskType); |
||||
|
} |
||||
@ -0,0 +1,27 @@ |
|||||
|
package com.qniao.dam.query.udtp.impl; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; |
||||
|
import com.qniao.dam.domian.aggregate.tasktemplate.constant.SubTaskTypeEnum; |
||||
|
import com.qniao.dam.infrastructure.persistent.dao.udtp.UserDailyTaskProgressDao; |
||||
|
import com.qniao.dam.query.udtp.UserDailyTaskProgressQueryService; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
import java.time.LocalDate; |
||||
|
|
||||
|
@Service |
||||
|
public class UserDailyTaskProgressQueryServiceImpl implements UserDailyTaskProgressQueryService { |
||||
|
|
||||
|
@Resource |
||||
|
private UserDailyTaskProgressDao userDailyTaskProgressDao; |
||||
|
|
||||
|
@Override |
||||
|
public UserDailyTaskProgress queryBy(Long userId, LocalDate progressDate, SubTaskTypeEnum subTaskType) { |
||||
|
return userDailyTaskProgressDao.selectOne(new LambdaQueryWrapper<UserDailyTaskProgress>() |
||||
|
.eq(UserDailyTaskProgress::getUserId, userId) |
||||
|
.eq(UserDailyTaskProgress::getProgressDate, progressDate) |
||||
|
.eq(UserDailyTaskProgress::getSubTaskType, subTaskType) |
||||
|
.last("limit 1")); |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save