소스 검색

初始化

wujiefeng 10 달 전
부모
커밋
8627125b9c
19개의 변경된 파일415개의 추가작업 그리고 31개의 파일을 삭제
  1. 8 1
      RewardClient/src/main/java/com/zhongshu/reward/client/model/param/WalletReceiptsParam.java
  2. 20 0
      RewardClient/src/main/java/com/zhongshu/reward/client/service/InviteRecordFeignService.java
  3. 12 0
      RewardClient/src/main/java/com/zhongshu/reward/client/type/UserType.java
  4. 20 0
      RewardServer/src/main/java/com/zhongshu/reward/server/core/controller/manager/InviteRecordManagerController.groovy
  5. 14 0
      RewardServer/src/main/java/com/zhongshu/reward/server/core/dao/Impl/InviteRecordDaoImpl.java
  6. 2 2
      RewardServer/src/main/java/com/zhongshu/reward/server/core/dao/InviteReceiptsRoleDao.java
  7. 19 0
      RewardServer/src/main/java/com/zhongshu/reward/server/core/dao/InviteRecordDao.java
  8. 11 0
      RewardServer/src/main/java/com/zhongshu/reward/server/core/dao/VipUserRecordDao.java
  9. 11 0
      RewardServer/src/main/java/com/zhongshu/reward/server/core/dao/extend/InviteRecordDaoExtend.java
  10. 1 1
      RewardServer/src/main/java/com/zhongshu/reward/server/core/domain/InviteReceiptsRuler.java
  11. 44 0
      RewardServer/src/main/java/com/zhongshu/reward/server/core/domain/InviteRecord.java
  12. 57 0
      RewardServer/src/main/java/com/zhongshu/reward/server/core/domain/VipUserRecord.java
  13. 11 0
      RewardServer/src/main/java/com/zhongshu/reward/server/core/domain/WalletReceipts.java
  14. 55 0
      RewardServer/src/main/java/com/zhongshu/reward/server/core/service/Impl/InviteRecordFeignServiceImpl.java
  15. 19 11
      RewardServer/src/main/java/com/zhongshu/reward/server/core/service/InviteReceiptsRulerService.java
  16. 50 12
      RewardServer/src/main/java/com/zhongshu/reward/server/core/service/WalletReceiptsService.java
  17. 21 0
      RewardServer/src/main/java/com/zhongshu/reward/server/core/stream/VipUserStream.java
  18. 39 3
      RewardServer/src/main/java/com/zhongshu/reward/server/core/util/DateUtils.java
  19. 1 1
      RewardServer/target/classes/application-dev.yml

+ 8 - 1
RewardClient/src/main/java/com/zhongshu/reward/client/model/param/WalletReceiptsParam.java

@@ -14,7 +14,12 @@ import java.math.BigDecimal;
 public class WalletReceiptsParam {
 
     /**
-     * 钱包
+     * 邀请人userId
+     */
+    private String inviteId;
+
+    /**
+     * 购买会员用户id
      */
     private String userId;
 
@@ -37,4 +42,6 @@ public class WalletReceiptsParam {
      * 外部订单号
      */
     private String outTradeNo;
+
+
 }

+ 20 - 0
RewardClient/src/main/java/com/zhongshu/reward/client/service/InviteRecordFeignService.java

@@ -0,0 +1,20 @@
+package com.zhongshu.reward.client.service;
+
+import com.zhongshu.reward.client.type.UserType;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author wjf
+ * @date 2024/8/9
+ */
+@FeignClient(name = "rewardserver/manager/inviteRecord")
+public interface InviteRecordFeignService {
+
+
+    @ApiOperation("邀请")
+    @RequestMapping(value = "goodsDetail", method = RequestMethod.POST, consumes = {MediaType.APPLICATION_JSON_VALUE})
+    void invite(@RequestParam("phone") String phone, @RequestParam("userId") String userId, @RequestParam("inviteUserId") String inviteUserId, @RequestParam("userType")UserType userType);
+}

+ 12 - 0
RewardClient/src/main/java/com/zhongshu/reward/client/type/UserType.java

@@ -0,0 +1,12 @@
+package com.zhongshu.reward.client.type;
+
+/**
+ * @author wjf
+ * @date 2024/8/9
+ */
+public enum UserType {
+
+    NEW,
+
+    OLD
+}

+ 20 - 0
RewardServer/src/main/java/com/zhongshu/reward/server/core/controller/manager/InviteRecordManagerController.groovy

@@ -0,0 +1,20 @@
+package com.zhongshu.reward.server.core.controller.manager
+
+import com.github.microservice.auth.client.service.EnterpriseService
+import com.zhongshu.reward.client.service.InviteRecordFeignService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author wjf
+ * @date 2024/8/9
+ */
+@RestController
+@RequestMapping("/manager/inviteRecord")
+ class InviteRecordManagerController {
+
+    @Autowired
+    @Delegate(methodAnnotations = true, parameterAnnotations = true, includeTypes = InviteRecordFeignService.class, interfaces = false)
+    private InviteRecordFeignService inviteRecordFeignService
+}

+ 14 - 0
RewardServer/src/main/java/com/zhongshu/reward/server/core/dao/Impl/InviteRecordDaoImpl.java

@@ -0,0 +1,14 @@
+package com.zhongshu.reward.server.core.dao.Impl;
+
+import com.zhongshu.reward.server.core.dao.extend.InviteRecordDaoExtend;
+import com.zhongshu.reward.server.core.domain.InviteRecord;
+import org.springframework.data.mongodb.core.query.Criteria;
+
+/**
+ * @author wjf
+ * @date 2024/8/9
+ */
+public class InviteRecordDaoImpl implements InviteRecordDaoExtend {
+
+
+}

+ 2 - 2
RewardServer/src/main/java/com/zhongshu/reward/server/core/dao/InviteReceiptsRoleDao.java

@@ -1,13 +1,13 @@
 package com.zhongshu.reward.server.core.dao;
 
 import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
-import com.zhongshu.reward.server.core.domain.InviteReceiptsRole;
+import com.zhongshu.reward.server.core.domain.InviteReceiptsRuler;
 
 /**
  * @author wjf
  * @date 2024/8/7
  */
-public interface InviteReceiptsRoleDao extends MongoDao<InviteReceiptsRole> {
+public interface InviteReceiptsRoleDao extends MongoDao<InviteReceiptsRuler> {
 
     boolean existsBySetMealIdAndDisable(String setMealId, boolean disable);
 

+ 19 - 0
RewardServer/src/main/java/com/zhongshu/reward/server/core/dao/InviteRecordDao.java

@@ -0,0 +1,19 @@
+package com.zhongshu.reward.server.core.dao;
+
+import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
+import com.zhongshu.reward.server.core.dao.extend.InviteRecordDaoExtend;
+import com.zhongshu.reward.server.core.domain.InviteRecord;
+
+/**
+ * @author wjf
+ * @date 2024/8/9
+ */
+public interface InviteRecordDao extends MongoDao<InviteRecord>, InviteRecordDaoExtend {
+
+    InviteRecord findByUserIdAndInviteUserIdAndDisable(String userId, String inviteUserId, boolean disable);
+
+    boolean existsByUserId(String userId);
+
+    InviteRecord findTopByUserIdOrderByCreateTime(String userId);
+
+}

+ 11 - 0
RewardServer/src/main/java/com/zhongshu/reward/server/core/dao/VipUserRecordDao.java

@@ -0,0 +1,11 @@
+package com.zhongshu.reward.server.core.dao;
+
+import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
+import com.zhongshu.reward.server.core.domain.VipUserRecord;
+
+/**
+ * @author wjf
+ * @date 2024/8/8
+ */
+public interface VipUserRecordDao extends MongoDao<VipUserRecord> {
+}

+ 11 - 0
RewardServer/src/main/java/com/zhongshu/reward/server/core/dao/extend/InviteRecordDaoExtend.java

@@ -0,0 +1,11 @@
+package com.zhongshu.reward.server.core.dao.extend;
+
+import com.zhongshu.reward.server.core.domain.InviteRecord;
+
+/**
+ * @author wjf
+ * @date 2024/8/9
+ */
+public interface InviteRecordDaoExtend {
+
+}

+ 1 - 1
RewardServer/src/main/java/com/zhongshu/reward/server/core/domain/InviteReceiptsRole.java → RewardServer/src/main/java/com/zhongshu/reward/server/core/domain/InviteReceiptsRuler.java

@@ -20,7 +20,7 @@ import java.math.BigDecimal;
 @Document
 @AllArgsConstructor
 @NoArgsConstructor
-public class InviteReceiptsRole extends SuperEntity {
+public class InviteReceiptsRuler extends SuperEntity {
 
     @ApiModelProperty("规则名称")
     private String roleName;

+ 44 - 0
RewardServer/src/main/java/com/zhongshu/reward/server/core/domain/InviteRecord.java

@@ -0,0 +1,44 @@
+package com.zhongshu.reward.server.core.domain;
+
+import com.github.microservice.components.data.mongo.mongo.domain.SuperEntity;
+import com.zhongshu.reward.client.type.UserType;
+import com.zhongshu.vip.client.model.param.VipUserParam;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+/**
+ * @author wjf
+ * @date 2024/8/9
+ */
+@Data
+@Builder
+@Document
+@AllArgsConstructor
+@NoArgsConstructor
+public class InviteRecord extends SuperEntity {
+
+    /**
+     * 被邀请人id
+     */
+    private String userId;
+
+    /**
+     * 被邀请用户手机号
+     */
+    private String phone;
+
+    /**
+     * 邀请用户id
+     */
+    private String inviteUserId;
+
+    /**
+     * 用户类型
+     */
+    private UserType userType;
+
+}

+ 57 - 0
RewardServer/src/main/java/com/zhongshu/reward/server/core/domain/VipUserRecord.java

@@ -0,0 +1,57 @@
+package com.zhongshu.reward.server.core.domain;
+
+import com.github.microservice.components.data.mongo.mongo.domain.SuperEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+/**
+ * @author wjf
+ * @date 2024/8/8
+ */
+@Data
+@Builder
+@Document
+@AllArgsConstructor
+@NoArgsConstructor
+public class VipUserRecord extends SuperEntity {
+
+    @ApiModelProperty(value = "操作类型:1 订阅、 -1 退订 4:激活 5:暂停", required = true)
+    private Integer suc;
+
+    @ApiModelProperty(value = "和校园唯一识别码", required = true)
+    private String operBatch;
+
+    @ApiModelProperty(value = "用户id", required = true)
+    private String cpId;
+
+    @ApiModelProperty("会员等级")
+    private String planningId;
+
+    @ApiModelProperty("套餐名称")
+    private String planningName;
+
+    @ApiModelProperty("订购时间")
+    private Long operateTime;
+
+    @ApiModelProperty("渠道类型")
+    private String channelType;
+
+    @ApiModelProperty("渠道编码")
+    private String channelCode;
+
+    @ApiModelProperty("扩展参数")
+    private String extension;
+
+    @ApiModelProperty("电话")
+    private String phone;
+
+    @ApiModelProperty("套餐")
+    private String saleModalId;
+
+    @ApiModelProperty("5,6,7,8,9折扣")
+    private Integer discount;
+}

+ 11 - 0
RewardServer/src/main/java/com/zhongshu/reward/server/core/domain/WalletReceipts.java

@@ -30,6 +30,11 @@ public class WalletReceipts extends SuperEntity {
     @DBRef(lazy = true)
     private Wallet wallet;
 
+    /**
+     * 被邀请人id
+     */
+    private String userId;
+
     /**
      * 预计到账时间
      */
@@ -59,4 +64,10 @@ public class WalletReceipts extends SuperEntity {
      * 外部订单号
      */
     private String outTradeNo;
+
+    /**
+     * 产生入账的订阅消息
+     */
+    @DBRef(lazy = true)
+    private VipUserRecord vipUserRecord;
 }

+ 55 - 0
RewardServer/src/main/java/com/zhongshu/reward/server/core/service/Impl/InviteRecordFeignServiceImpl.java

@@ -0,0 +1,55 @@
+package com.zhongshu.reward.server.core.service.Impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson2.JSONObject;
+import com.zhongshu.reward.client.service.InviteRecordFeignService;
+import com.zhongshu.reward.client.type.UserType;
+import com.zhongshu.reward.server.core.dao.InviteRecordDao;
+import com.zhongshu.reward.server.core.domain.InviteRecord;
+import com.zhongshu.vip.client.model.VipUserModel;
+import com.zhongshu.vip.client.service.VipUserService;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author wjf
+ * @date 2024/8/9
+ */
+@Service
+@Slf4j
+public class InviteRecordFeignServiceImpl implements InviteRecordFeignService {
+
+    @Autowired
+    InviteRecordDao inviteRecordDao;
+
+    @Autowired
+    VipUserService vipUserService;
+
+
+    /**
+     * 生成邀请记录
+     * @param userId
+     * @param inviteUserId
+     * @param userType
+     */
+    public void invite(String phone, String userId, String inviteUserId, UserType userType){
+        //查询有无邀请记录
+        if (inviteRecordDao.existsByUserId(userId)){
+           log.info("已被其他用户邀请");
+        }else {
+            InviteRecord inviteRecord = new InviteRecord();
+            inviteRecord.setUserId(userId);
+            inviteRecord.setInviteUserId(inviteUserId);
+            inviteRecord.setUserType(userType);
+            inviteRecord.setPhone(phone);
+            inviteRecordDao.save(inviteRecord);
+        }
+    }
+
+
+}

+ 19 - 11
RewardServer/src/main/java/com/zhongshu/reward/server/core/service/InviteReceiptsRoleService.java → RewardServer/src/main/java/com/zhongshu/reward/server/core/service/InviteReceiptsRulerService.java

@@ -3,25 +3,33 @@ package com.zhongshu.reward.server.core.service;
 import com.zhongshu.reward.client.model.InviteReceiptsRoleModel;
 import com.zhongshu.reward.client.ret.ResultContent;
 import com.zhongshu.reward.server.core.dao.InviteReceiptsRoleDao;
-import com.zhongshu.reward.server.core.domain.InviteReceiptsRole;
+import com.zhongshu.reward.server.core.dao.VipUserRecordDao;
+import com.zhongshu.reward.server.core.domain.InviteReceiptsRuler;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.awt.print.Pageable;
-
 /**
+ * 邀请返利
  * @author wjf
  * @date 2024/8/7
  */
 @Service
-public class InviteReceiptsRoleService {
+public class InviteReceiptsRulerService {
 
     @Autowired
     InviteReceiptsRoleDao inviteReceiptsRoleDao;
 
+    @Autowired
+    VipUserRecordDao vipUserRecordDao;
+
+    @Autowired
+    WalletReceiptsService walletReceiptsService;
+
+
+
     /**
      * 添加推广规则
      * @param inviteReceiptsRoleModel
@@ -32,7 +40,7 @@ public class InviteReceiptsRoleService {
 //        if (existsBySetMeal){
 //            return ResultContent.buildFail("该套餐存在推广规则");
 //        }
-//        InviteReceiptsRole inviteReceiptsRole = new InviteReceiptsRole();
+//        InviteReceiptsRuler inviteReceiptsRole = new InviteReceiptsRuler();
 //        BeanUtils.copyProperties(inviteReceiptsRoleModel, inviteReceiptsRole);
 //        return ResultContent.buildContent(toModel(inviteReceiptsRoleDao.save(inviteReceiptsRole)));
 //    }
@@ -47,18 +55,18 @@ public class InviteReceiptsRoleService {
             return ResultContent.buildContent("找不到要修改的推广规则");
         }
 
-        InviteReceiptsRole inviteReceiptsRole = new InviteReceiptsRole();
-        BeanUtils.copyProperties(inviteReceiptsRoleModel, inviteReceiptsRole);
-        return ResultContent.buildContent(toModel(inviteReceiptsRoleDao.save(inviteReceiptsRole)));
+        InviteReceiptsRuler inviteReceiptsRuler = new InviteReceiptsRuler();
+        BeanUtils.copyProperties(inviteReceiptsRoleModel, inviteReceiptsRuler);
+        return ResultContent.buildContent(toModel(inviteReceiptsRoleDao.save(inviteReceiptsRuler)));
     }
 
 
 
 
-    InviteReceiptsRoleModel toModel(InviteReceiptsRole inviteReceiptsRole){
+    InviteReceiptsRoleModel toModel(InviteReceiptsRuler inviteReceiptsRuler){
         InviteReceiptsRoleModel model = new InviteReceiptsRoleModel();
-        if (ObjectUtils.isNotEmpty(inviteReceiptsRole)){
-            BeanUtils.copyProperties(inviteReceiptsRole, model);
+        if (ObjectUtils.isNotEmpty(inviteReceiptsRuler)){
+            BeanUtils.copyProperties(inviteReceiptsRuler, model);
         }
         return model;
     }

+ 50 - 12
RewardServer/src/main/java/com/zhongshu/reward/server/core/service/WalletReceiptsService.java

@@ -2,13 +2,18 @@ package com.zhongshu.reward.server.core.service;
 
 import com.github.microservice.core.util.result.content.ResultContent;
 import com.github.microservice.core.util.result.content.ResultState;
-import com.zhongshu.reward.client.model.param.WalletReceiptsParam;
 import com.zhongshu.reward.client.model.wallet.WalletReceiptsModel;
 import com.zhongshu.reward.client.type.ReceiptsStatus;
+import com.zhongshu.reward.client.type.ReceiptsType;
+import com.zhongshu.reward.server.core.dao.VipUserRecordDao;
 import com.zhongshu.reward.server.core.dao.WalletDao;
 import com.zhongshu.reward.server.core.dao.WalletReceiptsDao;
+import com.zhongshu.reward.server.core.domain.VipUserRecord;
 import com.zhongshu.reward.server.core.domain.Wallet;
 import com.zhongshu.reward.server.core.domain.WalletReceipts;
+import com.zhongshu.reward.server.core.util.DateUtils;
+import com.zhongshu.vip.client.model.param.VipUserParam;
+import com.zswl.cloud.bdb.client.vo.PromotionLogVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.BeanUtils;
@@ -16,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -37,25 +43,57 @@ public class WalletReceiptsService {
     @Autowired
     WalletReceiptsDao walletReceiptsDao;
 
+    @Autowired
+    VipUserRecordDao vipUserRecordDao;
+
+    @Autowired
+    PromotionLogFeignService promotionLogFeignService;
+
     /**
      * 邀请返利入账
-     * @param param
+     * @param
      * @return
      */
     @Transactional
-    public Object receipts(WalletReceiptsParam param){
+    public void receipts(VipUserParam vipUserParam){
 
-        Wallet wallet = walletService.getWalletByUserId(param.getUserId());
+        VipUserRecord vipUserRecord = new VipUserRecord();
+        BeanUtils.copyProperties(vipUserParam, vipUserRecord, "createTime");
+        vipUserRecord.setOperateTime(DateUtils.timeToLong(vipUserParam.getCreateTime(), DateUtils.FORMAT_LONG));
+        VipUserRecord save = vipUserRecordDao.save(vipUserRecord);
+        //查询邀请关系
+        PromotionLogVo promotionLog = promotionLogFeignService.getPromotionLog(vipUserParam.getCpId());
+        if (Objects.isNull(promotionLog)){
+            return;
+        }
+        if(promotionLog.getUserType().equals(2)){//是否老用户
+            return;
+        }
 
-        WalletReceipts walletReceipts = new WalletReceipts();
-        BeanUtils.copyProperties(param, walletReceipts);
-        walletReceipts.setWallet(wallet);
-        if (walletReceipts.getReceiptsType()==null){
-            walletReceipts.setStatus(ReceiptsStatus.WAIT);
+        //todo 校验对应套餐返利规则
+        BigDecimal total = BigDecimal.ZERO;
+
+        if (vipUserRecord.getSuc().equals(1) || vipUserRecord.getSuc().equals(4)){
+            //订阅入账
+            WalletReceipts walletReceipts = new WalletReceipts();
+            //获取邀请人userid
+            String inviteId = promotionLog.getResourceId();
+            Wallet wallet = walletService.getWalletByUserId(inviteId);
+            walletReceipts.setWallet(wallet);
+            walletReceipts.setUserId(vipUserParam.getCpId());
+            walletReceipts.setReceiptsType(ReceiptsType.COMMISSION);
+            walletReceipts.setOutTradeNo(vipUserParam.getPlanningId());
+            walletReceipts.setTotal(total);
+            walletReceipts.setEstimatedTime(DateUtils.nextMonthDayStartTime(25));
+            walletReceipts.setVipUserRecord(save);
+            //邀请人钱包
+            if (walletReceipts.getReceiptsType()==null){
+                walletReceipts.setStatus(ReceiptsStatus.WAIT);
+            }
+            wallet.setWaitAmount(wallet.getWaitAmount().add(total));
+            walletDao.save(wallet);
+            walletReceiptsDao.save(walletReceipts);
         }
-        wallet.setWaitAmount(wallet.getWaitAmount().add(param.getTotal()));
-        walletDao.save(wallet);
-        return ResultContent.buildContent(toModel(walletReceiptsDao.save(walletReceipts)));
     }
 
     /**

+ 21 - 0
RewardServer/src/main/java/com/zhongshu/reward/server/core/stream/VipUserStream.java

@@ -0,0 +1,21 @@
+package com.zhongshu.reward.server.core.stream;
+
+import com.github.microservice.app.stream.StreamConsumer;
+import com.zhongshu.reward.server.core.service.InviteReceiptsRulerService;
+import com.zhongshu.vip.client.model.param.VipUserParam;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Log4j2
+@Component("vipUserStreamConsumer")
+public class VipUserStream extends StreamConsumer<VipUserParam> {
+
+    @Autowired
+    InviteReceiptsRulerService inviteReceiptsRulerService;
+
+    @Override
+    public void accept(VipUserParam vipUserParam) {
+        log.info("收到会员套餐消息:{}",vipUserParam);
+    }
+}

+ 39 - 3
RewardServer/src/main/java/com/zhongshu/reward/server/core/util/DateUtils.java

@@ -3,6 +3,8 @@ package com.zhongshu.reward.server.core.util;
 import cn.hutool.log.Log;
 import lombok.extern.slf4j.Slf4j;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.ZoneId;
@@ -16,6 +18,19 @@ import java.util.Date;
 @Slf4j
 public class DateUtils {
 
+    public final static String FORMAT_LONG = "yyyy-MM-dd HH:mm:ss";
+    public static Long timeToLong(String time, String format) {
+        if (!org.springframework.util.StringUtils.hasText(time)) {
+            return null;
+        }
+        try {
+            return new SimpleDateFormat(format).parse(time).getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
 
     /**
      * 获得本天的开始时间
@@ -43,6 +58,23 @@ public class DateUtils {
         return beginTime;
     }
 
+    /**
+     * 次月指定日开始时间
+     *
+     * @return
+     */
+    public static Long nextMonthDayStartTime(Integer day) {
+        Calendar c = Calendar.getInstance();
+        c.add(Calendar.MONTH, 1);
+        c.set(Calendar.DATE, day);
+
+        c.set(Calendar.HOUR_OF_DAY, 0);
+        c.set(Calendar.MINUTE, 0);
+        c.set(Calendar.SECOND, 0);
+
+        return c.getTimeInMillis();
+    }
+
     /**
      * 本月指定日的开始时间
      *
@@ -148,9 +180,13 @@ public class DateUtils {
 
     public static void main(String[] args) {
         Calendar c = Calendar.getInstance();
+        c.add(Calendar.MONTH, 1);
+        c.set(Calendar.DATE, 1);
 
-        c.set(Calendar.HOUR_OF_DAY, 21);
-        c.set(Calendar.MINUTE, 50);
-        c.set(Calendar.SECOND, 59);
+        c.set(Calendar.HOUR_OF_DAY, 0);
+        c.set(Calendar.MINUTE, 0);
+        c.set(Calendar.SECOND, 0);
+
+        ;
     }
 }

+ 1 - 1
RewardServer/target/classes/application-dev.yml

@@ -10,7 +10,7 @@ spring:
     database: 6
 
 swagger:
-  packageName: "com.zhongshu.payment.core.controller"
+  packageName: "com.zhongshu.reward.core.controller"
   title: RewardServer
   description: 返利中心
   version: "1.0"