diff --git a/dating-agency-mal-sdk/src/main/java/com/qniao/dam/application/request/UserAcquireNewMIRightBySdkDto.java b/dating-agency-mal-sdk/src/main/java/com/qniao/dam/application/request/UserAcquireNewMIRightBySdkDto.java
index 31a6a2f..30f502a 100644
--- a/dating-agency-mal-sdk/src/main/java/com/qniao/dam/application/request/UserAcquireNewMIRightBySdkDto.java
+++ b/dating-agency-mal-sdk/src/main/java/com/qniao/dam/application/request/UserAcquireNewMIRightBySdkDto.java
@@ -1,9 +1,11 @@
package com.qniao.dam.application.request;
+import lombok.AllArgsConstructor;
import lombok.Data;
+import lombok.NoArgsConstructor;
-import javax.validation.constraints.NotNull;
-
+@AllArgsConstructor
+@NoArgsConstructor
@Data
public class UserAcquireNewMIRightBySdkDto {
diff --git a/dating-agency-mall-server/pom.xml b/dating-agency-mall-server/pom.xml
index a24e455..fc62dcc 100644
--- a/dating-agency-mall-server/pom.xml
+++ b/dating-agency-mall-server/pom.xml
@@ -77,6 +77,11 @@
dating-agency-mall-event
0.0.1-SNAPSHOT
+
+ com.qniao
+ dating-agency-service-entity
+ 0.0.1-SNAPSHOT
+
diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/AcquireGiftRightTask.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/AcquireGiftRightTask.java
new file mode 100644
index 0000000..2c25714
--- /dev/null
+++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/AcquireGiftRightTask.java
@@ -0,0 +1,68 @@
+package com.qniao.dam.application.task;
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.qniao.dam.application.service.right.RightApplicationService;
+import com.qniao.dam.domain.aggregate.right.valueobj.RightAcquireRecord;
+import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao;
+import com.qniao.dam.infrastructure.persistent.dao.domain.RightAcquireRecordDao;
+import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Component
+@Slf4j
+public class AcquireGiftRightTask {
+
+ @Resource
+ private MarriageInformationDao marriageInformationDao;
+ @Resource
+ private RightApplicationService rightApplicationService;
+ @Resource
+ private RightAcquireRecordDao rightAcquireRecordDao;
+
+ /**
+ * 每月给资料赠送修改头像权益 人数多不能这么领取,用户自己领取就行
+ */
+ @Scheduled(cron = "0 * * * * *") // 每分钟的第0秒执行
+ public void handle() {
+ try {
+ log.error("赠送权益任务开始");
+ //一个月整前的资料赠送权益
+ LocalDate date = LocalDate.now().minusMonths(1);
+ LocalDateTime startTime = date.atTime(0, 0, 0);
+ LocalDateTime endTime = date.atTime(23, 59, 59);
+ int count = marriageInformationDao.selectCount(new LambdaQueryWrapper()
+ .ge(MarriageInformation::getCreateTime, startTime)
+ .le(MarriageInformation::getCreateTime, endTime));
+ if (count > 0) {
+ int num = 100;
+ for (int i = 0; i < count; i += num) {
+ List list = marriageInformationDao.selectList(new LambdaQueryWrapper()
+ .ge(MarriageInformation::getCreateTime, startTime)
+ .le(MarriageInformation::getCreateTime, endTime)
+ .last("limit " + i + "," + num));
+ if (CollUtil.isNotEmpty(list)) {
+ for (MarriageInformation marriageInformation : list) {
+ //判断资料是否领取过免费权益
+ if (rightAcquireRecordDao.selectCount(new LambdaQueryWrapper()
+ .ge(RightAcquireRecord::getCreateTime, startTime)
+ .le(RightAcquireRecord::getCreateTime, endTime)) == 0) {
+ rightApplicationService.acquireNewMIRight(marriageInformation.getUserId(), marriageInformation.getId());
+ }
+ }
+ }
+ }
+ log.error("赠送权益任务结束");
+ }
+ } catch (Exception e) {
+ log.error("赠送权益任务异常", e);
+ }
+ }
+}
diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/MarriageInformationDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/MarriageInformationDao.java
new file mode 100644
index 0000000..4bbcd77
--- /dev/null
+++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/MarriageInformationDao.java
@@ -0,0 +1,7 @@
+package com.qniao.dam.infrastructure.persistent.dao.domain;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation;
+
+public interface MarriageInformationDao extends BaseMapper {
+}
diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/server/MallServerApplication.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/server/MallServerApplication.java
index 4474192..1c5be8a 100644
--- a/dating-agency-mall-server/src/main/java/com/qniao/dam/server/MallServerApplication.java
+++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/server/MallServerApplication.java
@@ -6,12 +6,14 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication(scanBasePackages = {"com.qniao"})
@EnableEurekaClient
@MapperScan("com.qniao.**.dao.**")
@EnableFeignClients(basePackages = {"com.qniao"})
@EnableApolloConfig
+@EnableScheduling
public class MallServerApplication {
public static void main(String[] args) {