18 changed files with 381 additions and 7 deletions
Split 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