Commit 5ed9739c 5ed9739cee9d6cda32aaa67a8335cf4a37f51c14 by xianghan@topdraw.cn

V1.1.0-future-UserCenter接口转移

1 parent 9cc43dc0
Showing 278 changed files with 4572 additions and 1100 deletions
...@@ -12,15 +12,21 @@ ...@@ -12,15 +12,21 @@
12 <artifactId>member-service-api</artifactId> 12 <artifactId>member-service-api</artifactId>
13 13
14 <properties> 14 <properties>
15 15 <cronos.version>1.1.0</cronos.version>
16 </properties> 16 </properties>
17 17
18 <dependencies> 18 <dependencies>
19 <!--系统-->
20 <dependency>
21 <groupId>com.topdraw</groupId>
22 <artifactId>cronos-system</artifactId>
23 <version>${cronos.version}</version>
24 </dependency>
19 <!--代码生成器--> 25 <!--代码生成器-->
20 <dependency> 26 <dependency>
21 <groupId>com.topdraw</groupId> 27 <groupId>com.topdraw</groupId>
22 <artifactId>code-generator</artifactId> 28 <artifactId>cronos-generator</artifactId>
23 <version>3.1.0</version> 29 <version>${cronos.version}</version>
24 </dependency> 30 </dependency>
25 </dependencies> 31 </dependencies>
26 32
......
...@@ -25,6 +25,8 @@ public class DataSyncMsg implements Serializable { ...@@ -25,6 +25,8 @@ public class DataSyncMsg implements Serializable {
25 // 其他属性 25 // 其他属性
26 private String extraData; 26 private String extraData;
27 27
28 /** 模板参数 */
29 private TaskTemplateParam param;
28 30
29 /** 31 /**
30 * 消息体 32 * 消息体
...@@ -47,6 +49,18 @@ public class DataSyncMsg implements Serializable { ...@@ -47,6 +49,18 @@ public class DataSyncMsg implements Serializable {
47 private Long activityId; 49 private Long activityId;
48 private Long mediaId; 50 private Long mediaId;
49 private Long itemId; 51 private Long itemId;
52
53
54 }
55
56 @Data
57 @AllArgsConstructor
58 @NoArgsConstructor
59 public static class TaskTemplateParam {
60 /** 类别 */
61 private String category;
62 /** 编码 */
63 private String code;
50 } 64 }
51 65
52 } 66 }
......
1 package com.topdraw.business.basicdata.coupon.domain; 1 package com.topdraw.business.module.coupon.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.coupon.history.domain; 1 package com.topdraw.business.module.coupon.history.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.coupon.history.repository; 1 package com.topdraw.business.module.coupon.history.repository;
2 2
3 import com.topdraw.business.basicdata.coupon.history.domain.CouponHistory; 3 import com.topdraw.business.module.coupon.history.domain.CouponHistory;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
7 import java.sql.Timestamp; 7 import java.sql.Timestamp;
8 import java.util.Optional;
9 8
10 /** 9 /**
11 * @author XiangHan 10 * @author XiangHan
......
1 package com.topdraw.business.basicdata.coupon.history.rest; 1 package com.topdraw.business.module.coupon.history.rest;
2 2
3 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log; 4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.coupon.history.domain.CouponHistory; 5 import com.topdraw.business.module.coupon.history.domain.CouponHistory;
6 import com.topdraw.business.basicdata.coupon.history.service.CouponHistoryService; 6 import com.topdraw.business.module.coupon.history.service.CouponHistoryService;
7 import com.topdraw.business.basicdata.coupon.history.service.dto.CouponHistoryQueryCriteria; 7 import com.topdraw.business.module.coupon.history.service.dto.CouponHistoryQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable; 9 import org.springframework.data.domain.Pageable;
10 import org.springframework.http.HttpStatus;
11 import org.springframework.http.ResponseEntity;
12 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
13 import org.springframework.web.bind.annotation.*; 11 import org.springframework.web.bind.annotation.*;
14 import io.swagger.annotations.*; 12 import io.swagger.annotations.*;
15 import java.io.IOException;
16 import javax.servlet.http.HttpServletResponse;
17 13
18 /** 14 /**
19 * @author XiangHan 15 * @author XiangHan
......
1 package com.topdraw.business.basicdata.coupon.history.service; 1 package com.topdraw.business.module.coupon.history.service;
2 2
3 import com.topdraw.business.basicdata.coupon.history.domain.CouponHistory; 3 import com.topdraw.business.module.coupon.history.domain.CouponHistory;
4 import com.topdraw.business.basicdata.coupon.history.service.dto.CouponHistoryDTO; 4 import com.topdraw.business.module.coupon.history.service.dto.CouponHistoryDTO;
5 import com.topdraw.business.basicdata.coupon.history.service.dto.CouponHistoryQueryCriteria; 5 import com.topdraw.business.module.coupon.history.service.dto.CouponHistoryQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 7
8 import java.sql.Timestamp; 8 import java.sql.Timestamp;
9 import java.util.Map; 9 import java.util.Map;
10 import java.util.List; 10 import java.util.List;
11 import java.io.IOException;
12 import javax.servlet.http.HttpServletResponse;
13 11
14 /** 12 /**
15 * @author XiangHan 13 * @author XiangHan
......
1 package com.topdraw.business.basicdata.coupon.history.service.dto; 1 package com.topdraw.business.module.coupon.history.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.coupon.history.service.dto; 1 package com.topdraw.business.module.coupon.history.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import com.topdraw.annotation.Query;
5 4
6 /** 5 /**
7 * @author XiangHan 6 * @author XiangHan
......
1 package com.topdraw.business.basicdata.coupon.history.service.impl; 1 package com.topdraw.business.module.coupon.history.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.coupon.history.domain.CouponHistory; 4 import com.topdraw.business.module.coupon.history.domain.CouponHistory;
5 import com.topdraw.utils.ValidationUtil; 5 import com.topdraw.utils.ValidationUtil;
6 import com.topdraw.business.basicdata.coupon.history.repository.CouponHistoryRepository; 6 import com.topdraw.business.module.coupon.history.repository.CouponHistoryRepository;
7 import com.topdraw.business.basicdata.coupon.history.service.CouponHistoryService; 7 import com.topdraw.business.module.coupon.history.service.CouponHistoryService;
8 import com.topdraw.business.basicdata.coupon.history.service.dto.CouponHistoryDTO; 8 import com.topdraw.business.module.coupon.history.service.dto.CouponHistoryDTO;
9 import com.topdraw.business.basicdata.coupon.history.service.dto.CouponHistoryQueryCriteria; 9 import com.topdraw.business.module.coupon.history.service.dto.CouponHistoryQueryCriteria;
10 import com.topdraw.business.basicdata.coupon.history.service.mapper.CouponHistoryMapper; 10 import com.topdraw.business.module.coupon.history.service.mapper.CouponHistoryMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation; 13 import org.springframework.transaction.annotation.Propagation;
......
1 package com.topdraw.business.basicdata.coupon.history.service.mapper; 1 package com.topdraw.business.module.coupon.history.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.coupon.history.domain.CouponHistory; 4 import com.topdraw.business.module.coupon.history.domain.CouponHistory;
5 import com.topdraw.business.basicdata.coupon.history.service.dto.CouponHistoryDTO; 5 import com.topdraw.business.module.coupon.history.service.dto.CouponHistoryDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.coupon.repository; 1 package com.topdraw.business.module.coupon.repository;
2 2
3 import com.topdraw.business.basicdata.coupon.domain.Coupon; 3 import com.topdraw.business.module.coupon.domain.Coupon;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
......
1 package com.topdraw.business.basicdata.coupon.rest; 1 package com.topdraw.business.module.coupon.rest;
2 2
3 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log; 4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.coupon.domain.Coupon; 5 import com.topdraw.business.module.coupon.domain.Coupon;
6 import com.topdraw.business.basicdata.coupon.service.CouponService; 6 import com.topdraw.business.module.coupon.service.CouponService;
7 import com.topdraw.business.basicdata.coupon.service.dto.CouponQueryCriteria; 7 import com.topdraw.business.module.coupon.service.dto.CouponQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable; 9 import org.springframework.data.domain.Pageable;
10 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
......
1 package com.topdraw.business.basicdata.coupon.service; 1 package com.topdraw.business.module.coupon.service;
2 2
3 import com.topdraw.business.basicdata.coupon.domain.Coupon; 3 import com.topdraw.business.module.coupon.domain.Coupon;
4 import com.topdraw.business.basicdata.coupon.service.dto.CouponDTO; 4 import com.topdraw.business.module.coupon.service.dto.CouponDTO;
5 import com.topdraw.business.basicdata.coupon.service.dto.CouponQueryCriteria; 5 import com.topdraw.business.module.coupon.service.dto.CouponQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
......
1 package com.topdraw.business.basicdata.coupon.service.dto; 1 package com.topdraw.business.module.coupon.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.coupon.service.dto; 1 package com.topdraw.business.module.coupon.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
......
1 package com.topdraw.business.basicdata.coupon.service.impl; 1 package com.topdraw.business.module.coupon.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.coupon.domain.Coupon; 4 import com.topdraw.business.module.coupon.domain.Coupon;
5 import com.topdraw.util.RedissonUtil; 5 import com.topdraw.util.RedissonUtil;
6 import com.topdraw.utils.ValidationUtil; 6 import com.topdraw.utils.ValidationUtil;
7 import com.topdraw.business.basicdata.coupon.repository.CouponRepository; 7 import com.topdraw.business.module.coupon.repository.CouponRepository;
8 import com.topdraw.business.basicdata.coupon.service.CouponService; 8 import com.topdraw.business.module.coupon.service.CouponService;
9 import com.topdraw.business.basicdata.coupon.service.dto.CouponDTO; 9 import com.topdraw.business.module.coupon.service.dto.CouponDTO;
10 import com.topdraw.business.basicdata.coupon.service.dto.CouponQueryCriteria; 10 import com.topdraw.business.module.coupon.service.dto.CouponQueryCriteria;
11 import com.topdraw.business.basicdata.coupon.service.mapper.CouponMapper; 11 import com.topdraw.business.module.coupon.service.mapper.CouponMapper;
12 import org.redisson.api.RLock; 12 import org.redisson.api.RLock;
13 import org.redisson.api.RedissonClient; 13 import org.redisson.api.RedissonClient;
14 import org.springframework.beans.factory.annotation.Autowired; 14 import org.springframework.beans.factory.annotation.Autowired;
......
1 package com.topdraw.business.basicdata.coupon.service.mapper; 1 package com.topdraw.business.module.coupon.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.coupon.domain.Coupon; 4 import com.topdraw.business.module.coupon.domain.Coupon;
5 import com.topdraw.business.basicdata.coupon.service.dto.CouponDTO; 5 import com.topdraw.business.module.coupon.service.dto.CouponDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.exp.detail.domain; 1 package com.topdraw.business.module.exp.detail.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.exp.detail.repository; 1 package com.topdraw.business.module.exp.detail.repository;
2 2
3 import com.topdraw.business.basicdata.exp.detail.domain.ExpDetail; 3 import com.topdraw.business.module.exp.detail.domain.ExpDetail;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
......
1 package com.topdraw.business.basicdata.exp.detail.rest; 1 package com.topdraw.business.module.exp.detail.rest;
2 2
3 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log; 4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.exp.detail.domain.ExpDetail; 5 import com.topdraw.business.module.exp.detail.domain.ExpDetail;
6 import com.topdraw.business.basicdata.exp.detail.service.ExpDetailService; 6 import com.topdraw.business.module.exp.detail.service.ExpDetailService;
7 import com.topdraw.business.basicdata.exp.detail.service.dto.ExpDetailQueryCriteria; 7 import com.topdraw.business.module.exp.detail.service.dto.ExpDetailQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable; 9 import org.springframework.data.domain.Pageable;
10 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
......
1 package com.topdraw.business.basicdata.exp.detail.service; 1 package com.topdraw.business.module.exp.detail.service;
2 2
3 import com.topdraw.business.basicdata.exp.detail.domain.ExpDetail; 3 import com.topdraw.business.module.exp.detail.domain.ExpDetail;
4 import com.topdraw.business.basicdata.exp.detail.service.dto.ExpDetailDTO; 4 import com.topdraw.business.module.exp.detail.service.dto.ExpDetailDTO;
5 import com.topdraw.business.basicdata.exp.detail.service.dto.ExpDetailQueryCriteria; 5 import com.topdraw.business.module.exp.detail.service.dto.ExpDetailQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
......
1 package com.topdraw.business.basicdata.exp.detail.service.dto; 1 package com.topdraw.business.module.exp.detail.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.exp.detail.service.dto; 1 package com.topdraw.business.module.exp.detail.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
......
1 package com.topdraw.business.basicdata.exp.detail.service.impl; 1 package com.topdraw.business.module.exp.detail.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.exp.detail.domain.ExpDetail; 4 import com.topdraw.business.module.exp.detail.domain.ExpDetail;
5 import com.topdraw.utils.ValidationUtil; 5 import com.topdraw.utils.ValidationUtil;
6 import com.topdraw.business.basicdata.exp.detail.repository.ExpDetailRepository; 6 import com.topdraw.business.module.exp.detail.repository.ExpDetailRepository;
7 import com.topdraw.business.basicdata.exp.detail.service.ExpDetailService; 7 import com.topdraw.business.module.exp.detail.service.ExpDetailService;
8 import com.topdraw.business.basicdata.exp.detail.service.dto.ExpDetailDTO; 8 import com.topdraw.business.module.exp.detail.service.dto.ExpDetailDTO;
9 import com.topdraw.business.basicdata.exp.detail.service.dto.ExpDetailQueryCriteria; 9 import com.topdraw.business.module.exp.detail.service.dto.ExpDetailQueryCriteria;
10 import com.topdraw.business.basicdata.exp.detail.service.mapper.ExpDetailMapper; 10 import com.topdraw.business.module.exp.detail.service.mapper.ExpDetailMapper;
11 import org.redisson.api.RLock; 11 import org.redisson.api.RLock;
12 import org.redisson.api.RedissonClient; 12 import org.redisson.api.RedissonClient;
13 import org.springframework.beans.factory.annotation.Autowired; 13 import org.springframework.beans.factory.annotation.Autowired;
......
1 package com.topdraw.business.basicdata.exp.detail.service.mapper; 1 package com.topdraw.business.module.exp.detail.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.exp.detail.domain.ExpDetail; 4 import com.topdraw.business.module.exp.detail.domain.ExpDetail;
5 import com.topdraw.business.basicdata.exp.detail.service.dto.ExpDetailDTO; 5 import com.topdraw.business.module.exp.detail.service.dto.ExpDetailDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.exp.history.domain; 1 package com.topdraw.business.module.exp.history.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.exp.history.repository; 1 package com.topdraw.business.module.exp.history.repository;
2 2
3 import com.topdraw.business.basicdata.exp.history.domain.ExpHistory; 3 import com.topdraw.business.module.exp.history.domain.ExpHistory;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
......
1 package com.topdraw.business.basicdata.exp.history.rest; 1 package com.topdraw.business.module.exp.history.rest;
2 2
3 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log; 4 import com.topdraw.business.module.exp.history.service.ExpHistoryService;
5 import com.topdraw.business.basicdata.exp.history.domain.ExpHistory; 5 import com.topdraw.business.module.exp.history.service.dto.ExpHistoryQueryCriteria;
6 import com.topdraw.business.basicdata.exp.history.service.ExpHistoryService;
7 import com.topdraw.business.basicdata.exp.history.service.dto.ExpHistoryQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable; 7 import org.springframework.data.domain.Pageable;
10 import org.springframework.validation.annotation.Validated;
11 import org.springframework.web.bind.annotation.*; 8 import org.springframework.web.bind.annotation.*;
12 import io.swagger.annotations.*; 9 import io.swagger.annotations.*;
13 10
......
1 package com.topdraw.business.basicdata.exp.history.service; 1 package com.topdraw.business.module.exp.history.service;
2 2
3 import com.topdraw.business.basicdata.exp.history.domain.ExpHistory; 3 import com.topdraw.business.module.exp.history.domain.ExpHistory;
4 import com.topdraw.business.basicdata.exp.history.service.dto.ExpHistoryDTO; 4 import com.topdraw.business.module.exp.history.service.dto.ExpHistoryDTO;
5 import com.topdraw.business.basicdata.exp.history.service.dto.ExpHistoryQueryCriteria; 5 import com.topdraw.business.module.exp.history.service.dto.ExpHistoryQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
......
1 package com.topdraw.business.basicdata.exp.history.service.dto; 1 package com.topdraw.business.module.exp.history.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.exp.history.service.dto; 1 package com.topdraw.business.module.exp.history.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
......
1 package com.topdraw.business.basicdata.exp.history.service.impl; 1 package com.topdraw.business.module.exp.history.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.exp.history.domain.ExpHistory; 4 import com.topdraw.business.module.exp.history.domain.ExpHistory;
5 import com.topdraw.utils.ValidationUtil; 5 import com.topdraw.utils.ValidationUtil;
6 import com.topdraw.business.basicdata.exp.history.repository.ExpHistoryRepository; 6 import com.topdraw.business.module.exp.history.repository.ExpHistoryRepository;
7 import com.topdraw.business.basicdata.exp.history.service.ExpHistoryService; 7 import com.topdraw.business.module.exp.history.service.ExpHistoryService;
8 import com.topdraw.business.basicdata.exp.history.service.dto.ExpHistoryDTO; 8 import com.topdraw.business.module.exp.history.service.dto.ExpHistoryDTO;
9 import com.topdraw.business.basicdata.exp.history.service.dto.ExpHistoryQueryCriteria; 9 import com.topdraw.business.module.exp.history.service.dto.ExpHistoryQueryCriteria;
10 import com.topdraw.business.basicdata.exp.history.service.mapper.ExpHistoryMapper; 10 import com.topdraw.business.module.exp.history.service.mapper.ExpHistoryMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation; 13 import org.springframework.transaction.annotation.Propagation;
......
1 package com.topdraw.business.basicdata.exp.history.service.mapper; 1 package com.topdraw.business.module.exp.history.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.exp.history.domain.ExpHistory; 4 import com.topdraw.business.module.exp.history.domain.ExpHistory;
5 import com.topdraw.business.basicdata.exp.history.service.dto.ExpHistoryDTO; 5 import com.topdraw.business.module.exp.history.service.dto.ExpHistoryDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.member.address.domain; 1 package com.topdraw.business.module.member.address.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.member.address.repository; 1 package com.topdraw.business.module.member.address.repository;
2 2
3 import com.topdraw.business.basicdata.member.address.domain.MemberAddress; 3 import com.topdraw.business.module.member.address.domain.MemberAddress;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
......
1 package com.topdraw.business.basicdata.member.address.rest; 1 package com.topdraw.business.module.member.address.rest;
2 2
3 import com.topdraw.business.basicdata.member.service.MemberService; 3 import com.topdraw.business.module.member.service.MemberService;
4 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 4 import com.topdraw.business.module.member.service.dto.MemberDTO;
5 import com.topdraw.common.ResultInfo; 5 import com.topdraw.common.ResultInfo;
6 import com.topdraw.annotation.Log; 6 import com.topdraw.annotation.Log;
7 import com.topdraw.business.basicdata.member.address.domain.MemberAddress; 7 import com.topdraw.business.module.member.address.domain.MemberAddress;
8 import com.topdraw.business.basicdata.member.address.service.MemberAddressService; 8 import com.topdraw.business.module.member.address.service.MemberAddressService;
9 import com.topdraw.business.basicdata.member.address.service.dto.MemberAddressQueryCriteria; 9 import com.topdraw.business.module.member.address.service.dto.MemberAddressQueryCriteria;
10 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.data.domain.Pageable; 11 import org.springframework.data.domain.Pageable;
12 import org.springframework.util.Assert; 12 import org.springframework.util.Assert;
......
1 package com.topdraw.business.basicdata.member.address.service; 1 package com.topdraw.business.module.member.address.service;
2 2
3 import com.topdraw.business.basicdata.member.address.domain.MemberAddress; 3 import com.topdraw.business.module.member.address.domain.MemberAddress;
4 import com.topdraw.business.basicdata.member.address.service.dto.MemberAddressDTO; 4 import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO;
5 import com.topdraw.business.basicdata.member.address.service.dto.MemberAddressQueryCriteria; 5 import com.topdraw.business.module.member.address.service.dto.MemberAddressQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
......
1 package com.topdraw.business.basicdata.member.address.service.dto; 1 package com.topdraw.business.module.member.address.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.member.address.service.dto; 1 package com.topdraw.business.module.member.address.service.dto;
2 2
3 import com.topdraw.annotation.Query; 3 import com.topdraw.annotation.Query;
4 import lombok.Data; 4 import lombok.Data;
......
1 package com.topdraw.business.basicdata.member.address.service.impl; 1 package com.topdraw.business.module.member.address.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.member.address.domain.MemberAddress; 4 import com.topdraw.business.module.member.address.domain.MemberAddress;
5 import com.topdraw.utils.ValidationUtil; 5 import com.topdraw.utils.ValidationUtil;
6 import com.topdraw.business.basicdata.member.address.repository.MemberAddressRepository; 6 import com.topdraw.business.module.member.address.repository.MemberAddressRepository;
7 import com.topdraw.business.basicdata.member.address.service.MemberAddressService; 7 import com.topdraw.business.module.member.address.service.MemberAddressService;
8 import com.topdraw.business.basicdata.member.address.service.dto.MemberAddressDTO; 8 import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO;
9 import com.topdraw.business.basicdata.member.address.service.dto.MemberAddressQueryCriteria; 9 import com.topdraw.business.module.member.address.service.dto.MemberAddressQueryCriteria;
10 import com.topdraw.business.basicdata.member.address.service.mapper.MemberAddressMapper; 10 import com.topdraw.business.module.member.address.service.mapper.MemberAddressMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation; 13 import org.springframework.transaction.annotation.Propagation;
......
1 package com.topdraw.business.basicdata.member.address.service.mapper; 1 package com.topdraw.business.module.member.address.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.member.address.domain.MemberAddress; 4 import com.topdraw.business.module.member.address.domain.MemberAddress;
5 import com.topdraw.business.basicdata.member.address.service.dto.MemberAddressDTO; 5 import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.member.domain; 1 package com.topdraw.business.module.member.domain;
2 2
3 import cn.hutool.core.bean.BeanUtil; 3 import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.bean.copier.CopyOptions; 4 import cn.hutool.core.bean.copier.CopyOptions;
5 import com.topdraw.business.basicdata.member.profile.domain.MemberProfile;
6 import io.swagger.annotations.ApiModelProperty;
7 import lombok.Data; 5 import lombok.Data;
8 import lombok.experimental.Accessors; 6 import lombok.experimental.Accessors;
9 import org.springframework.data.annotation.CreatedDate; 7 import org.springframework.data.annotation.CreatedDate;
...@@ -135,6 +133,6 @@ public class Member implements Serializable { ...@@ -135,6 +133,6 @@ public class Member implements Serializable {
135 private Long blackStatus; 133 private Long blackStatus;
136 134
137 public void copy(Member source){ 135 public void copy(Member source){
138 BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); 136 BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(false));
139 } 137 }
140 } 138 }
......
1 package com.topdraw.business.module.member.domain;
2
3 import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.bean.copier.CopyOptions;
5 import com.topdraw.util.IdWorker;
6 import lombok.Data;
7 import lombok.experimental.Accessors;
8 import org.springframework.data.annotation.CreatedDate;
9 import org.springframework.data.annotation.LastModifiedDate;
10 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
11
12 import javax.persistence.*;
13 import java.io.Serializable;
14 import java.sql.Timestamp;
15 import java.time.LocalDateTime;
16
17 /**
18 * @author XiangHan
19 * @date 2021-10-22
20 */
21 public class MemberBuilder {
22
23 public static Member build(Integer type,String avatarUrl,String nickname,Integer vip){
24 Member member = new Member();
25 member.setType(type);
26 member.setBlackStatus(0L);
27 member.setGender(-1);
28 member.setVip(vip==null?0:vip);
29 member.setLevel(1);
30 member.setStatus(1);
31 member.setPoints(0L);
32 member.setDuePoints(0L);
33 member.setExp(0L);
34 member.setCouponAmount(0L);
35 member.setDueCouponAmount(0L);
36 member.setAvatarUrl(avatarUrl);
37 member.setCode(IdWorker.generator() + "");
38 member.setNickname(nickname);
39 return member;
40 }
41 }
1 package com.topdraw.business.module.member.domain;
2
3 public interface MemberConstant {
4
5 // vip等级
6 Integer vip[] = new Integer[]{0,1,2,3,4,5,6,7,8};
7
8 }
1 package com.topdraw.business.basicdata.member.group.domain; 1 package com.topdraw.business.module.member.group.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.member.group.repository; 1 package com.topdraw.business.module.member.group.repository;
2 2
3 import com.topdraw.business.basicdata.member.group.domain.MemberGroup; 3 import com.topdraw.business.module.member.group.domain.MemberGroup;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
7 import java.util.Optional;
8
9 /** 7 /**
10 * @author XiangHan 8 * @author XiangHan
11 * @date 2021-11-17 9 * @date 2021-11-17
......
1 package com.topdraw.business.basicdata.member.group.rest; 1 package com.topdraw.business.module.member.group.rest;
2 2
3 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log; 4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.member.group.domain.MemberGroup; 5 import com.topdraw.business.module.member.group.domain.MemberGroup;
6 import com.topdraw.business.basicdata.member.group.service.MemberGroupService; 6 import com.topdraw.business.module.member.group.service.MemberGroupService;
7 import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupQueryCriteria; 7 import com.topdraw.business.module.member.group.service.dto.MemberGroupQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable; 9 import org.springframework.data.domain.Pageable;
10 import org.springframework.http.HttpStatus;
11 import org.springframework.http.ResponseEntity;
12 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
13 import org.springframework.web.bind.annotation.*; 11 import org.springframework.web.bind.annotation.*;
14 import io.swagger.annotations.*; 12 import io.swagger.annotations.*;
15 import java.io.IOException;
16 import javax.servlet.http.HttpServletResponse;
17 13
18 /** 14 /**
19 * @author XiangHan 15 * @author XiangHan
......
1 package com.topdraw.business.basicdata.member.group.service; 1 package com.topdraw.business.module.member.group.service;
2 2
3 import com.topdraw.business.basicdata.member.group.domain.MemberGroup; 3 import com.topdraw.business.module.member.group.domain.MemberGroup;
4 import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupDTO; 4 import com.topdraw.business.module.member.group.service.dto.MemberGroupDTO;
5 import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupQueryCriteria; 5 import com.topdraw.business.module.member.group.service.dto.MemberGroupQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
9 import java.io.IOException;
10 import javax.servlet.http.HttpServletResponse;
11 9
12 /** 10 /**
13 * @author XiangHan 11 * @author XiangHan
......
1 package com.topdraw.business.basicdata.member.group.service.dto; 1 package com.topdraw.business.module.member.group.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.member.group.service.dto; 1 package com.topdraw.business.module.member.group.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import com.topdraw.annotation.Query; 4 import com.topdraw.annotation.Query;
......
1 package com.topdraw.business.basicdata.member.group.service.impl; 1 package com.topdraw.business.module.member.group.service.impl;
2 2
3 import com.topdraw.business.basicdata.member.group.domain.MemberGroup; 3 import com.topdraw.business.module.member.group.domain.MemberGroup;
4 import com.topdraw.utils.ValidationUtil; 4 import com.topdraw.utils.ValidationUtil;
5 import com.topdraw.utils.FileUtil; 5 import com.topdraw.business.module.member.group.repository.MemberGroupRepository;
6 import com.topdraw.business.basicdata.member.group.repository.MemberGroupRepository; 6 import com.topdraw.business.module.member.group.service.MemberGroupService;
7 import com.topdraw.business.basicdata.member.group.service.MemberGroupService; 7 import com.topdraw.business.module.member.group.service.dto.MemberGroupDTO;
8 import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupDTO; 8 import com.topdraw.business.module.member.group.service.dto.MemberGroupQueryCriteria;
9 import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupQueryCriteria; 9 import com.topdraw.business.module.member.group.service.mapper.MemberGroupMapper;
10 import com.topdraw.business.basicdata.member.group.service.mapper.MemberGroupMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation; 12 import org.springframework.transaction.annotation.Propagation;
...@@ -18,14 +17,9 @@ import org.springframework.data.domain.Pageable; ...@@ -18,14 +17,9 @@ import org.springframework.data.domain.Pageable;
18 import org.springframework.util.Assert; 17 import org.springframework.util.Assert;
19 import com.topdraw.utils.PageUtil; 18 import com.topdraw.utils.PageUtil;
20 import com.topdraw.utils.QueryHelp; 19 import com.topdraw.utils.QueryHelp;
21 import com.topdraw.utils.StringUtils;
22 20
23 import java.util.List; 21 import java.util.List;
24 import java.util.Map; 22 import java.util.Map;
25 import java.io.IOException;
26 import javax.servlet.http.HttpServletResponse;
27 import java.util.ArrayList;
28 import java.util.LinkedHashMap;
29 23
30 /** 24 /**
31 * @author XiangHan 25 * @author XiangHan
......
1 package com.topdraw.business.basicdata.member.group.service.mapper; 1 package com.topdraw.business.module.member.group.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.member.group.domain.MemberGroup; 4 import com.topdraw.business.module.member.group.domain.MemberGroup;
5 import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupDTO; 5 import com.topdraw.business.module.member.group.service.dto.MemberGroupDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.member.level.domain; 1 package com.topdraw.business.module.member.level.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.member.level.repository; 1 package com.topdraw.business.module.member.level.repository;
2 2
3 import com.topdraw.business.basicdata.member.level.domain.MemberLevel; 3 import com.topdraw.business.module.member.level.domain.MemberLevel;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
......
1 package com.topdraw.business.basicdata.member.level.rest; 1 package com.topdraw.business.module.member.level.rest;
2 2
3 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log; 4 import com.topdraw.business.module.member.level.service.MemberLevelService;
5 import com.topdraw.business.basicdata.member.level.domain.MemberLevel; 5 import com.topdraw.business.module.member.level.service.dto.MemberLevelQueryCriteria;
6 import com.topdraw.business.basicdata.member.level.service.MemberLevelService;
7 import com.topdraw.business.basicdata.member.level.service.dto.MemberLevelQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable; 7 import org.springframework.data.domain.Pageable;
10 import org.springframework.validation.annotation.Validated;
11 import org.springframework.web.bind.annotation.*; 8 import org.springframework.web.bind.annotation.*;
12 import io.swagger.annotations.*; 9 import io.swagger.annotations.*;
13 10
......
1 package com.topdraw.business.basicdata.member.level.service; 1 package com.topdraw.business.module.member.level.service;
2 2
3 import com.topdraw.business.basicdata.member.level.domain.MemberLevel; 3 import com.topdraw.business.module.member.level.domain.MemberLevel;
4 import com.topdraw.business.basicdata.member.level.service.dto.MemberLevelDTO; 4 import com.topdraw.business.module.member.level.service.dto.MemberLevelDTO;
5 import com.topdraw.business.basicdata.member.level.service.dto.MemberLevelQueryCriteria; 5 import com.topdraw.business.module.member.level.service.dto.MemberLevelQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
......
1 package com.topdraw.business.basicdata.member.level.service.dto; 1 package com.topdraw.business.module.member.level.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.member.level.service.dto; 1 package com.topdraw.business.module.member.level.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
......
1 package com.topdraw.business.basicdata.member.level.service.impl; 1 package com.topdraw.business.module.member.level.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.member.level.domain.MemberLevel; 4 import com.topdraw.business.module.member.level.domain.MemberLevel;
5 import com.topdraw.utils.ValidationUtil; 5 import com.topdraw.utils.ValidationUtil;
6 import com.topdraw.business.basicdata.member.level.repository.MemberLevelRepository; 6 import com.topdraw.business.module.member.level.repository.MemberLevelRepository;
7 import com.topdraw.business.basicdata.member.level.service.MemberLevelService; 7 import com.topdraw.business.module.member.level.service.MemberLevelService;
8 import com.topdraw.business.basicdata.member.level.service.dto.MemberLevelDTO; 8 import com.topdraw.business.module.member.level.service.dto.MemberLevelDTO;
9 import com.topdraw.business.basicdata.member.level.service.dto.MemberLevelQueryCriteria; 9 import com.topdraw.business.module.member.level.service.dto.MemberLevelQueryCriteria;
10 import com.topdraw.business.basicdata.member.level.service.mapper.MemberLevelMapper; 10 import com.topdraw.business.module.member.level.service.mapper.MemberLevelMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.cache.annotation.Cacheable;
13 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
14 import org.springframework.transaction.annotation.Propagation; 13 import org.springframework.transaction.annotation.Propagation;
15 import org.springframework.transaction.annotation.Transactional; 14 import org.springframework.transaction.annotation.Transactional;
......
1 package com.topdraw.business.basicdata.member.level.service.mapper; 1 package com.topdraw.business.module.member.level.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.member.level.domain.MemberLevel; 4 import com.topdraw.business.module.member.level.domain.MemberLevel;
5 import com.topdraw.business.basicdata.member.level.service.dto.MemberLevelDTO; 5 import com.topdraw.business.module.member.level.service.dto.MemberLevelDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.member.profile; 1 package com.topdraw.business.module.member.profile;
2 2
3 public interface DoSaveMemberProfileGroup { 3 public interface DoSaveMemberProfileGroup {
4 } 4 }
......
1 package com.topdraw.business.basicdata.member.profile; 1 package com.topdraw.business.module.member.profile;
2 2
3 public interface DoUpdateMemberProfileGroup { 3 public interface DoUpdateMemberProfileGroup {
4 } 4 }
......
1 package com.topdraw.business.basicdata.member.profile.domain; 1 package com.topdraw.business.module.member.profile.domain;
2 2
3 import com.topdraw.business.basicdata.member.profile.DoSaveMemberProfileGroup; 3 import com.topdraw.business.module.member.profile.DoSaveMemberProfileGroup;
4 import com.topdraw.business.basicdata.member.profile.DoUpdateMemberProfileGroup; 4 import com.topdraw.business.module.member.profile.DoUpdateMemberProfileGroup;
5 import lombok.Data; 5 import lombok.Data;
6 import lombok.experimental.Accessors; 6 import lombok.experimental.Accessors;
7 import cn.hutool.core.bean.BeanUtil; 7 import cn.hutool.core.bean.BeanUtil;
......
1 package com.topdraw.business.basicdata.member.profile.repository; 1 package com.topdraw.business.module.member.profile.repository;
2 2
3 import com.topdraw.business.basicdata.member.profile.domain.MemberProfile; 3 import com.topdraw.business.module.member.profile.domain.MemberProfile;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
......
1 package com.topdraw.business.basicdata.member.profile.rest; 1 package com.topdraw.business.module.member.profile.rest;
2 2
3 import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileDTO; 3 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
4 import com.topdraw.business.basicdata.member.service.MemberService; 4 import com.topdraw.business.module.member.service.MemberService;
5 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 5 import com.topdraw.business.module.member.service.dto.MemberDTO;
6 import com.topdraw.common.ResultInfo; 6 import com.topdraw.common.ResultInfo;
7 import com.topdraw.annotation.Log; 7 import com.topdraw.annotation.Log;
8 import com.topdraw.business.basicdata.member.profile.domain.MemberProfile; 8 import com.topdraw.business.module.member.profile.domain.MemberProfile;
9 import com.topdraw.business.basicdata.member.profile.service.MemberProfileService; 9 import com.topdraw.business.module.member.profile.service.MemberProfileService;
10 import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileQueryCriteria;
11 import com.topdraw.utils.StringUtils; 10 import com.topdraw.utils.StringUtils;
12 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
13 import org.springframework.data.domain.Pageable;
14 import org.springframework.util.Assert; 12 import org.springframework.util.Assert;
15 import org.springframework.validation.annotation.Validated; 13 import org.springframework.validation.annotation.Validated;
16 import org.springframework.web.bind.annotation.*; 14 import org.springframework.web.bind.annotation.*;
......
1 package com.topdraw.business.basicdata.member.profile.service; 1 package com.topdraw.business.module.member.profile.service;
2 2
3 import com.topdraw.business.basicdata.member.profile.domain.MemberProfile; 3 import com.topdraw.business.module.member.profile.domain.MemberProfile;
4 import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileDTO; 4 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
5 import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileQueryCriteria; 5 import com.topdraw.business.module.member.profile.service.dto.MemberProfileQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
...@@ -35,7 +35,7 @@ public interface MemberProfileService { ...@@ -35,7 +35,7 @@ public interface MemberProfileService {
35 */ 35 */
36 MemberProfileDTO findById(Long id); 36 MemberProfileDTO findById(Long id);
37 37
38 void create(MemberProfile resources); 38 MemberProfile create(MemberProfile resources);
39 39
40 void update(MemberProfile resources); 40 void update(MemberProfile resources);
41 41
......
1 package com.topdraw.business.basicdata.member.profile.service.dto; 1 package com.topdraw.business.module.member.profile.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
...@@ -21,21 +21,30 @@ public class MemberProfileDTO implements Serializable { ...@@ -21,21 +21,30 @@ public class MemberProfileDTO implements Serializable {
21 // 姓名 21 // 姓名
22 private String realname; 22 private String realname;
23 23
24 private String nickname;
25
24 // 性别 0:女; 1:男 -1:未知 26 // 性别 0:女; 1:男 -1:未知
25 private Integer gender; 27 private Integer gender;
26 28
27 // 生日 29 // 生日
28 private Timestamp birthday; 30 private Timestamp birthday;
29 31
32 // 生日字符串
33 private String birthdayStr;
34
35 // vip
36 private Integer vip;
37
30 // 星座 38 // 星座
31 private String constellation; 39 private String constellation;
32 40
33 // 身份证 41 private Long vipExpireTime;
34 private String idCard;
35 42
36 // 电话
37 private String phone; 43 private String phone;
38 44
45 // 身份证
46 private String idCard;
47
39 // 电子邮件 48 // 电子邮件
40 private String email; 49 private String email;
41 50
...@@ -48,6 +57,9 @@ public class MemberProfileDTO implements Serializable { ...@@ -48,6 +57,9 @@ public class MemberProfileDTO implements Serializable {
48 // 城市 57 // 城市
49 private String city; 58 private String city;
50 59
60 // 头像
61 private String avatarUrl;
62
51 // 区县 63 // 区县
52 private String district; 64 private String district;
53 65
......
1 package com.topdraw.business.basicdata.member.profile.service.dto; 1 package com.topdraw.business.module.member.profile.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
......
1 package com.topdraw.business.basicdata.member.profile.service.impl; 1 package com.topdraw.business.module.member.profile.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.member.profile.domain.MemberProfile; 4 import com.topdraw.business.module.member.profile.domain.MemberProfile;
5 import com.topdraw.business.basicdata.member.service.MemberService;
6 import com.topdraw.business.basicdata.member.service.dto.MemberDTO;
7 import com.topdraw.utils.ValidationUtil; 5 import com.topdraw.utils.ValidationUtil;
8 import com.topdraw.business.basicdata.member.profile.repository.MemberProfileRepository; 6 import com.topdraw.business.module.member.profile.repository.MemberProfileRepository;
9 import com.topdraw.business.basicdata.member.profile.service.MemberProfileService; 7 import com.topdraw.business.module.member.profile.service.MemberProfileService;
10 import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileDTO; 8 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
11 import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileQueryCriteria; 9 import com.topdraw.business.module.member.profile.service.dto.MemberProfileQueryCriteria;
12 import com.topdraw.business.basicdata.member.profile.service.mapper.MemberProfileMapper; 10 import com.topdraw.business.module.member.profile.service.mapper.MemberProfileMapper;
13 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
15 import org.springframework.transaction.annotation.Propagation; 13 import org.springframework.transaction.annotation.Propagation;
...@@ -61,8 +59,9 @@ public class MemberProfileServiceImpl implements MemberProfileService { ...@@ -61,8 +59,9 @@ public class MemberProfileServiceImpl implements MemberProfileService {
61 @Override 59 @Override
62 @Transactional(rollbackFor = Exception.class) 60 @Transactional(rollbackFor = Exception.class)
63 @AsyncMqSend() 61 @AsyncMqSend()
64 public void create(MemberProfile resources) { 62 public MemberProfile create(MemberProfile resources) {
65 MemberProfileRepository.save(resources); 63 MemberProfileRepository.save(resources);
64 return resources;
66 } 65 }
67 66
68 @Override 67 @Override
......
1 package com.topdraw.business.basicdata.member.profile.service.mapper; 1 package com.topdraw.business.module.member.profile.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.member.profile.domain.MemberProfile; 4 import com.topdraw.business.module.member.profile.domain.MemberProfile;
5 import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileDTO; 5 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.member.relatedinfo.domain; 1 package com.topdraw.business.module.member.relatedinfo.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.member.relatedinfo.repository; 1 package com.topdraw.business.module.member.relatedinfo.repository;
2 2
3 import com.topdraw.business.basicdata.member.relatedinfo.domain.MemberRelatedInfo; 3 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
......
1 package com.topdraw.business.basicdata.member.relatedinfo.rest; 1 package com.topdraw.business.module.member.relatedinfo.rest;
2 2
3 import com.topdraw.business.basicdata.member.service.MemberService; 3 import com.topdraw.business.module.member.service.MemberService;
4 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 4 import com.topdraw.business.module.member.service.dto.MemberDTO;
5 import com.topdraw.common.ResultInfo; 5 import com.topdraw.common.ResultInfo;
6 import com.topdraw.annotation.Log; 6 import com.topdraw.annotation.Log;
7 import com.topdraw.business.basicdata.member.relatedinfo.domain.MemberRelatedInfo; 7 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
8 import com.topdraw.business.basicdata.member.relatedinfo.service.MemberRelatedInfoService; 8 import com.topdraw.business.module.member.relatedinfo.service.MemberRelatedInfoService;
9 import com.topdraw.business.basicdata.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria; 9 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria;
10 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.data.domain.PageRequest;
12 import org.springframework.data.domain.Pageable; 11 import org.springframework.data.domain.Pageable;
13 import org.springframework.util.Assert; 12 import org.springframework.util.Assert;
14 import org.springframework.validation.annotation.Validated; 13 import org.springframework.validation.annotation.Validated;
......
1 package com.topdraw.business.basicdata.member.relatedinfo.service; 1 package com.topdraw.business.module.member.relatedinfo.service;
2 2
3 import com.topdraw.business.basicdata.member.relatedinfo.domain.MemberRelatedInfo; 3 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
4 import com.topdraw.business.basicdata.member.relatedinfo.service.dto.MemberRelatedInfoDTO; 4 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
5 import com.topdraw.business.basicdata.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria; 5 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
......
1 package com.topdraw.business.basicdata.member.relatedinfo.service.dto; 1 package com.topdraw.business.module.member.relatedinfo.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
5 import javax.persistence.Column;
6 import java.sql.Timestamp; 5 import java.sql.Timestamp;
7 import java.io.Serializable; 6 import java.io.Serializable;
8 import java.time.LocalDate; 7 import java.time.LocalDate;
......
1 package com.topdraw.business.basicdata.member.relatedinfo.service.dto; 1 package com.topdraw.business.module.member.relatedinfo.service.dto;
2 2
3 import com.topdraw.annotation.Query; 3 import com.topdraw.annotation.Query;
4 import lombok.Data; 4 import lombok.Data;
5 5
6 import javax.validation.constraints.NotNull;
7
8 /** 6 /**
9 * @author XiangHan 7 * @author XiangHan
10 * @date 2021-10-22 8 * @date 2021-10-22
......
1 package com.topdraw.business.basicdata.member.relatedinfo.service.impl; 1 package com.topdraw.business.module.member.relatedinfo.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.member.relatedinfo.domain.MemberRelatedInfo; 4 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
5 import com.topdraw.utils.ValidationUtil; 5 import com.topdraw.utils.ValidationUtil;
6 import com.topdraw.business.basicdata.member.relatedinfo.repository.MemberRelatedInfoRepository; 6 import com.topdraw.business.module.member.relatedinfo.repository.MemberRelatedInfoRepository;
7 import com.topdraw.business.basicdata.member.relatedinfo.service.MemberRelatedInfoService; 7 import com.topdraw.business.module.member.relatedinfo.service.MemberRelatedInfoService;
8 import com.topdraw.business.basicdata.member.relatedinfo.service.dto.MemberRelatedInfoDTO; 8 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
9 import com.topdraw.business.basicdata.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria; 9 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria;
10 import com.topdraw.business.basicdata.member.relatedinfo.service.mapper.MemberRelatedInfoMapper; 10 import com.topdraw.business.module.member.relatedinfo.service.mapper.MemberRelatedInfoMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation; 13 import org.springframework.transaction.annotation.Propagation;
......
1 package com.topdraw.business.basicdata.member.relatedinfo.service.mapper; 1 package com.topdraw.business.module.member.relatedinfo.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.member.relatedinfo.domain.MemberRelatedInfo; 4 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
5 import com.topdraw.business.basicdata.member.relatedinfo.service.dto.MemberRelatedInfoDTO; 5 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.member.repository; 1 package com.topdraw.business.module.member.repository;
2 2
3 import com.topdraw.business.basicdata.member.domain.Member; 3 import com.topdraw.business.module.member.domain.Member;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
......
1 package com.topdraw.business.basicdata.member.rest; 1 package com.topdraw.business.module.member.rest;
2 2
3 import com.topdraw.annotation.Log; 3 import com.topdraw.annotation.Log;
4 import com.topdraw.business.basicdata.member.domain.Member; 4 import com.topdraw.business.module.member.domain.Member;
5 import com.topdraw.business.basicdata.member.service.MemberService; 5 import com.topdraw.business.module.member.service.MemberService;
6 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 6 import com.topdraw.business.module.member.service.dto.MemberDTO;
7 import com.topdraw.business.basicdata.user.iptv.domain.UserTv; 7 import com.topdraw.business.module.user.iptv.domain.UserTv;
8 import com.topdraw.business.process.service.UserTvOperationService; 8 import com.topdraw.business.process.service.UserOperationService;
9 import com.topdraw.common.ResultInfo; 9 import com.topdraw.common.ResultInfo;
10 import com.topdraw.util.Base64Util; 10 import com.topdraw.util.Base64Util;
11 import io.swagger.annotations.Api; 11 import io.swagger.annotations.Api;
...@@ -33,7 +33,7 @@ public class MemberController { ...@@ -33,7 +33,7 @@ public class MemberController {
33 private MemberService memberService; 33 private MemberService memberService;
34 34
35 @Autowired 35 @Autowired
36 private UserTvOperationService userTvOperationService; 36 private UserOperationService userTvOperationService;
37 37
38 @Log 38 @Log
39 @GetMapping(value = "/findById/{id}") 39 @GetMapping(value = "/findById/{id}")
......
1 package com.topdraw.business.basicdata.member.service; 1 package com.topdraw.business.module.member.service;
2 2
3 import com.topdraw.business.basicdata.member.domain.Member; 3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 4 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
5 import com.topdraw.business.basicdata.member.service.dto.MemberQueryCriteria; 5 import com.topdraw.business.module.member.service.dto.MemberDTO;
6 import com.topdraw.business.basicdata.user.iptv.domain.UserTv; 6 import com.topdraw.business.module.member.service.dto.MemberQueryCriteria;
7 import org.springframework.data.domain.Pageable; 7 import org.springframework.data.domain.Pageable;
8 8
9 import java.util.List; 9 import java.util.List;
...@@ -37,10 +37,23 @@ public interface MemberService { ...@@ -37,10 +37,23 @@ public interface MemberService {
37 */ 37 */
38 MemberDTO findById(Long id); 38 MemberDTO findById(Long id);
39 39
40 /**
41 *
42 * @param resources
43 * @return
44 */
40 Long create(Member resources); 45 Long create(Member resources);
41 46
47 /**
48 *
49 * @param resources
50 */
42 void update(Member resources); 51 void update(Member resources);
43 52
53 /**
54 *
55 * @param id
56 */
44 void delete(Long id); 57 void delete(Long id);
45 58
46 /** 59 /**
...@@ -50,5 +63,9 @@ public interface MemberService { ...@@ -50,5 +63,9 @@ public interface MemberService {
50 */ 63 */
51 MemberDTO getByCode(String code); 64 MemberDTO getByCode(String code);
52 65
66 /**
67 *
68 * @param member
69 */
53 void doUpdateMemberPoints(Member member); 70 void doUpdateMemberPoints(Member member);
54 } 71 }
......
1 package com.topdraw.business.basicdata.member.service.dto; 1 package com.topdraw.business.module.member.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
......
1 package com.topdraw.business.basicdata.member.service.dto; 1 package com.topdraw.business.module.member.service.dto;
2 2
3 import com.topdraw.annotation.Query; 3 import com.topdraw.annotation.Query;
4 import lombok.Data; 4 import lombok.Data;
......
1 package com.topdraw.business.basicdata.member.service.impl; 1 package com.topdraw.business.module.member.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.member.domain.Member; 4 import com.topdraw.business.module.member.domain.Member;
5 import com.topdraw.business.basicdata.member.repository.MemberRepository; 5 import com.topdraw.business.module.member.repository.MemberRepository;
6 import com.topdraw.business.basicdata.member.service.MemberService; 6 import com.topdraw.business.module.member.service.MemberService;
7 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 7 import com.topdraw.business.module.member.service.dto.MemberDTO;
8 import com.topdraw.business.basicdata.member.service.dto.MemberQueryCriteria; 8 import com.topdraw.business.module.member.service.dto.MemberQueryCriteria;
9 import com.topdraw.business.basicdata.member.service.mapper.MemberMapper; 9 import com.topdraw.business.module.member.service.mapper.MemberMapper;
10 import com.topdraw.business.basicdata.user.iptv.domain.UserTv;
11 import com.topdraw.business.basicdata.user.iptv.service.UserTvService;
12 import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvDTO;
13 import com.topdraw.common.ResultInfo;
14 import com.topdraw.config.LocalConstants;
15 import com.topdraw.mq.config.RabbitMqConfig;
16 import com.topdraw.util.IdWorker; 10 import com.topdraw.util.IdWorker;
17 import com.topdraw.util.RedissonUtil; 11 import com.topdraw.util.RedissonUtil;
18 import com.topdraw.util.TimestampUtil;
19 import com.topdraw.utils.PageUtil; 12 import com.topdraw.utils.PageUtil;
20 import com.topdraw.utils.QueryHelp; 13 import com.topdraw.utils.QueryHelp;
21 import com.topdraw.utils.StringUtils; 14 import com.topdraw.utils.StringUtils;
...@@ -23,21 +16,15 @@ import com.topdraw.utils.ValidationUtil; ...@@ -23,21 +16,15 @@ import com.topdraw.utils.ValidationUtil;
23 import lombok.extern.slf4j.Slf4j; 16 import lombok.extern.slf4j.Slf4j;
24 import org.redisson.api.RLock; 17 import org.redisson.api.RLock;
25 import org.redisson.api.RedissonClient; 18 import org.redisson.api.RedissonClient;
26 import org.springframework.beans.BeanUtils;
27 import org.springframework.beans.factory.annotation.Autowired; 19 import org.springframework.beans.factory.annotation.Autowired;
28 import org.springframework.cache.annotation.CacheConfig;
29 import org.springframework.cache.annotation.CacheEvict; 20 import org.springframework.cache.annotation.CacheEvict;
30 import org.springframework.cache.annotation.Cacheable;
31 import org.springframework.dao.EmptyResultDataAccessException; 21 import org.springframework.dao.EmptyResultDataAccessException;
32 import org.springframework.data.domain.Page; 22 import org.springframework.data.domain.Page;
33 import org.springframework.data.domain.Pageable; 23 import org.springframework.data.domain.Pageable;
34 import org.springframework.stereotype.Service; 24 import org.springframework.stereotype.Service;
35 import org.springframework.transaction.PlatformTransactionManager; 25 import org.springframework.transaction.PlatformTransactionManager;
36 import org.springframework.transaction.TransactionDefinition;
37 import org.springframework.transaction.TransactionStatus;
38 import org.springframework.transaction.annotation.Propagation; 26 import org.springframework.transaction.annotation.Propagation;
39 import org.springframework.transaction.annotation.Transactional; 27 import org.springframework.transaction.annotation.Transactional;
40 import org.springframework.transaction.support.DefaultTransactionDefinition;
41 import org.springframework.util.Assert; 28 import org.springframework.util.Assert;
42 29
43 import java.nio.charset.StandardCharsets; 30 import java.nio.charset.StandardCharsets;
...@@ -65,7 +52,7 @@ public class MemberServiceImpl implements MemberService { ...@@ -65,7 +52,7 @@ public class MemberServiceImpl implements MemberService {
65 PlatformTransactionManager platformTransactionManager; 52 PlatformTransactionManager platformTransactionManager;
66 53
67 @Autowired 54 @Autowired
68 private com.topdraw.business.basicdata.user.iptv.service.UserTvService UserTvService; 55 private com.topdraw.business.module.user.iptv.service.UserTvService UserTvService;
69 56
70 @Override 57 @Override
71 public Map<String, Object> queryAll(MemberQueryCriteria criteria, Pageable pageable) { 58 public Map<String, Object> queryAll(MemberQueryCriteria criteria, Pageable pageable) {
...@@ -80,7 +67,6 @@ public class MemberServiceImpl implements MemberService { ...@@ -80,7 +67,6 @@ public class MemberServiceImpl implements MemberService {
80 } 67 }
81 68
82 @Override 69 @Override
83 // @Cacheable(value = "member::memberId",key = "#p0")
84 public MemberDTO findById(Long id) { 70 public MemberDTO findById(Long id) {
85 Member member = memberRepository.findById(id).orElseGet(Member::new); 71 Member member = memberRepository.findById(id).orElseGet(Member::new);
86 ValidationUtil.isNull(member.getId(),"Member","id",id); 72 ValidationUtil.isNull(member.getId(),"Member","id",id);
...@@ -130,7 +116,6 @@ public class MemberServiceImpl implements MemberService { ...@@ -130,7 +116,6 @@ public class MemberServiceImpl implements MemberService {
130 @Override 116 @Override
131 @Transactional(rollbackFor = Exception.class) 117 @Transactional(rollbackFor = Exception.class)
132 @AsyncMqSend() 118 @AsyncMqSend()
133 @CacheEvict(value = "member::memberId",key = "#p0.id")
134 public void update(Member resources) { 119 public void update(Member resources) {
135 RLock rLock = this.redissonClient.getLock("member::update::id" + resources.getId().toString()); 120 RLock rLock = this.redissonClient.getLock("member::update::id" + resources.getId().toString());
136 try { 121 try {
......
1 package com.topdraw.business.basicdata.member.service.mapper; 1 package com.topdraw.business.module.member.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.member.domain.Member; 4 import com.topdraw.business.module.member.domain.Member;
5 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 5 import com.topdraw.business.module.member.service.dto.MemberDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.module.member.viphistory.domain;
2
3 import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.bean.copier.CopyOptions;
5 import lombok.Data;
6 import lombok.experimental.Accessors;
7 import org.springframework.data.annotation.CreatedDate;
8 import org.springframework.data.annotation.LastModifiedDate;
9 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
10
11 import javax.persistence.*;
12 import java.io.Serializable;
13 import java.sql.Timestamp;
14 import java.time.LocalDateTime;
15
16 /**
17 * @author luerlong
18 * @date 2021-12-10
19 */
20 @Entity
21 @Data
22 @EntityListeners(AuditingEntityListener.class)
23 @Accessors(chain = true)
24 @Table(name="uc_member_vip_history")
25 public class MemberVipHistory implements Serializable {
26
27 // 主键
28 @Id
29 @GeneratedValue(strategy = GenerationType.IDENTITY)
30 @Column(name = "id")
31 private Long id;
32
33 // 会员id
34 @Column(name = "member_id")
35 private Long memberId;
36
37 // 会员vip等级
38 @Column(name = "vip")
39 private Integer vip;
40
41 // 修改之前vip等级
42 @Column(name = "before_vip")
43 private Integer beforeVip;
44
45 // vip失效时间
46 @Column(name = "vip_expire_time")
47 private LocalDateTime vipExpireTime;
48
49 // 状态 1正常 0已过期
50 @Column(name = "status")
51 private Integer status;
52
53 // 创建时间
54 @CreatedDate
55 @Column(name = "create_time")
56 private Timestamp createTime;
57
58 // 修改时间
59 @LastModifiedDate
60 @Column(name = "update_time")
61 private Timestamp updateTime;
62
63 public void copy(MemberVipHistory source){
64 BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
65 }
66 }
1 package com.topdraw.business.module.member.viphistory.repository;
2
3 import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 import org.springframework.data.jpa.repository.Query;
7
8 import java.time.LocalDateTime;
9 import java.util.Optional;
10
11 /**
12 * @author luerlong
13 * @date 2021-12-10
14 */
15 public interface MemberVipHistoryRepository extends JpaRepository<MemberVipHistory, Long>, JpaSpecificationExecutor<MemberVipHistory> {
16
17 @Query(value = "SELECT * FROM uc_member_vip_history " +
18 " WHERE vip_expire_time >= ?2 AND member_id = ?1 order by create_time desc limit 1 ", nativeQuery = true)
19 Optional<MemberVipHistory> findByTime(Long memberId, LocalDateTime nowTime);
20 }
1 package com.topdraw.business.module.member.viphistory.rest;
2
3 import com.topdraw.annotation.Log;
4 import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
5 import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService;
6 import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryQueryCriteria;
7 import com.topdraw.common.ResultInfo;
8 import io.swagger.annotations.Api;
9 import io.swagger.annotations.ApiOperation;
10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.data.domain.Pageable;
12 import org.springframework.validation.annotation.Validated;
13 import org.springframework.web.bind.annotation.*;
14
15 /**
16 * @author luerlong
17 * @date 2021-12-10
18 */
19 @Api(tags = "MemberVipHistory管理")
20 @RestController
21 @RequestMapping("/api/memberVipHistory")
22 public class MemberVipHistoryController {
23
24 @Autowired
25 private MemberVipHistoryService memberVipHistoryService;
26
27 @GetMapping
28 @ApiOperation("查询MemberVipHistory")
29 public ResultInfo getMemberVipHistorys(MemberVipHistoryQueryCriteria criteria, Pageable pageable) {
30 return ResultInfo.successPage(memberVipHistoryService.queryAll(criteria,pageable));
31 }
32
33 @GetMapping(value = "/all")
34 @ApiOperation("查询所有MemberVipHistory")
35 public ResultInfo getMemberVipHistorys(MemberVipHistoryQueryCriteria criteria) {
36 return ResultInfo.success(memberVipHistoryService.queryAll(criteria));
37 }
38
39 @Log
40 @PostMapping
41 @ApiOperation("新增MemberVipHistory")
42 public ResultInfo create(@Validated @RequestBody MemberVipHistory resources) {
43 memberVipHistoryService.create(resources);
44 return ResultInfo.success();
45 }
46
47 @Log
48 @PutMapping
49 @ApiOperation("修改MemberVipHistory")
50 public ResultInfo update(@Validated @RequestBody MemberVipHistory resources) {
51 memberVipHistoryService.update(resources);
52 return ResultInfo.success();
53 }
54
55
56 @Log
57 @DeleteMapping(value = "/{id}")
58 @ApiOperation("删除MemberVipHistory")
59 public ResultInfo delete(@PathVariable Long id) {
60 memberVipHistoryService.delete(id);
61 return ResultInfo.success();
62 }
63
64 }
1 package com.topdraw.business.module.member.viphistory.service;
2
3 import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
4 import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryDTO;
5 import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryQueryCriteria;
6 import org.springframework.data.domain.Pageable;
7
8 import java.time.LocalDateTime;
9 import java.util.List;
10 import java.util.Map;
11 import java.util.Optional;
12
13 /**
14 * @author luerlong
15 * @date 2021-12-10
16 */
17 public interface MemberVipHistoryService {
18
19 /**
20 * 查询数据分页
21 * @param criteria 条件参数
22 * @param pageable 分页参数
23 * @return Map<String,Object>
24 */
25 Map<String,Object> queryAll(MemberVipHistoryQueryCriteria criteria, Pageable pageable);
26
27 /**
28 * 查询所有数据不分页
29 * @param criteria 条件参数
30 * @return List<MemberVipHistoryDTO>
31 */
32 List<MemberVipHistoryDTO> queryAll(MemberVipHistoryQueryCriteria criteria);
33
34 /**
35 * 根据ID查询
36 * @param id ID
37 * @return MemberVipHistoryDTO
38 */
39 MemberVipHistoryDTO findById(Long id);
40
41 void create(MemberVipHistory resources);
42
43 void update(MemberVipHistory resources);
44
45 void delete(Long id);
46
47 MemberVipHistory findByTime(Long id, LocalDateTime nowTime);
48 }
1 package com.topdraw.business.module.member.viphistory.service.dto;
2
3 import lombok.Data;
4
5 import java.io.Serializable;
6 import java.sql.Timestamp;
7 import java.time.LocalDateTime;
8
9
10 /**
11 * @author luerlong
12 * @date 2021-12-10
13 */
14 @Data
15 public class MemberVipHistoryDTO implements Serializable {
16
17 // 主键
18 private Long id;
19
20 // 会员id
21 private Long memberId;
22
23 // 会员vip等级
24 private Integer vip;
25
26 // 修改之前vip等级
27 private Integer beforeVip;
28
29 // vip失效时间
30 private LocalDateTime vipExpireTime;
31
32 // 状态 1正常 0已过期
33 private Integer status;
34
35 // 创建时间
36 private Timestamp createTime;
37
38 // 修改时间
39 private Timestamp updateTime;
40 }
1 package com.topdraw.business.module.member.viphistory.service.dto;
2
3 import lombok.Data;
4
5 /**
6 * @author luerlong
7 * @date 2021-12-10
8 */
9 @Data
10 public class MemberVipHistoryQueryCriteria {
11 }
1 package com.topdraw.business.module.member.viphistory.service.impl;
2
3
4 import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
5 import com.topdraw.business.module.member.viphistory.repository.MemberVipHistoryRepository;
6 import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService;
7 import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryDTO;
8 import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryQueryCriteria;
9 import com.topdraw.business.module.member.viphistory.service.mapper.MemberVipHistoryMapper;
10 import com.topdraw.utils.PageUtil;
11 import com.topdraw.utils.QueryHelp;
12 import com.topdraw.utils.ValidationUtil;
13 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.dao.EmptyResultDataAccessException;
15 import org.springframework.data.domain.Page;
16 import org.springframework.data.domain.Pageable;
17 import org.springframework.stereotype.Service;
18 import org.springframework.transaction.annotation.Propagation;
19 import org.springframework.transaction.annotation.Transactional;
20 import org.springframework.util.Assert;
21
22 import java.time.LocalDateTime;
23 import java.util.List;
24 import java.util.Map;
25 import java.util.Optional;
26
27 /**
28 * @author luerlong
29 * @date 2021-12-10
30 */
31 @Service
32 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
33 public class MemberVipHistoryServiceImpl implements MemberVipHistoryService {
34
35 @Autowired
36 private MemberVipHistoryRepository memberVipHistoryRepository;
37
38 @Autowired
39 private MemberVipHistoryMapper memberVipHistoryMapper;
40
41 @Override
42 public Map<String, Object> queryAll(MemberVipHistoryQueryCriteria criteria, Pageable pageable) {
43 Page<MemberVipHistory> page = memberVipHistoryRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
44 return PageUtil.toPage(page.map(memberVipHistoryMapper::toDto));
45 }
46
47 @Override
48 public List<MemberVipHistoryDTO> queryAll(MemberVipHistoryQueryCriteria criteria) {
49 return memberVipHistoryMapper.toDto(memberVipHistoryRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
50 }
51
52 @Override
53 public MemberVipHistoryDTO findById(Long id) {
54 MemberVipHistory memberVipHistory = memberVipHistoryRepository.findById(id).orElseGet(MemberVipHistory::new);
55 ValidationUtil.isNull(memberVipHistory.getId(),"MemberVipHistory","id",id);
56 return memberVipHistoryMapper.toDto(memberVipHistory);
57 }
58
59 @Override
60 @Transactional(rollbackFor = Exception.class)
61 public void create(MemberVipHistory resources) {
62 memberVipHistoryRepository.save(resources);
63 }
64
65 @Override
66 @Transactional(rollbackFor = Exception.class)
67 public void update(MemberVipHistory resources) {
68 MemberVipHistory memberVipHistory = memberVipHistoryRepository.findById(resources.getId()).orElseGet(MemberVipHistory::new);
69 ValidationUtil.isNull( memberVipHistory.getId(),"MemberVipHistory","id",resources.getId());
70 memberVipHistory.copy(resources);
71 memberVipHistoryRepository.save(memberVipHistory);
72 }
73
74 @Override
75 @Transactional(rollbackFor = Exception.class)
76 public void delete(Long id) {
77 Assert.notNull(id, "The given id must not be null!");
78 MemberVipHistory memberVipHistory = memberVipHistoryRepository.findById(id).orElseThrow(
79 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", MemberVipHistory.class, id), 1));
80 memberVipHistoryRepository.delete(memberVipHistory);
81 }
82
83 @Override
84 public MemberVipHistory findByTime(Long memberId, LocalDateTime nowTime) {
85 MemberVipHistory memberVipHistory = this.memberVipHistoryRepository.findByTime(memberId, nowTime).orElseGet(MemberVipHistory::new);
86 return memberVipHistory;
87 }
88
89
90 }
1 package com.topdraw.business.module.member.viphistory.service.mapper;
2
3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
5 import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryDTO;
6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy;
8
9 /**
10 * @author luerlong
11 * @date 2021-12-10
12 */
13 @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
14 public interface MemberVipHistoryMapper extends BaseMapper<MemberVipHistoryDTO, MemberVipHistory> {
15
16 }
1 package com.topdraw.business.basicdata.points.available.domain; 1 package com.topdraw.business.module.points.available.domain;
2 2
3 import com.fasterxml.jackson.annotation.JsonFormat;
4 import lombok.Data; 3 import lombok.Data;
5 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
6 import cn.hutool.core.bean.BeanUtil; 5 import cn.hutool.core.bean.BeanUtil;
...@@ -11,7 +10,6 @@ import org.springframework.data.annotation.LastModifiedDate; ...@@ -11,7 +10,6 @@ import org.springframework.data.annotation.LastModifiedDate;
11 import org.springframework.data.jpa.domain.support.AuditingEntityListener; 10 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
12 import java.sql.Timestamp; 11 import java.sql.Timestamp;
13 import java.time.LocalDateTime; 12 import java.time.LocalDateTime;
14 import java.util.UUID;
15 13
16 import java.io.Serializable; 14 import java.io.Serializable;
17 15
......
1 package com.topdraw.business.basicdata.points.available.repository; 1 package com.topdraw.business.module.points.available.repository;
2 2
3 import com.topdraw.business.basicdata.points.available.domain.PointsAvailable; 3 import com.topdraw.business.module.points.available.domain.PointsAvailable;
4 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableDTO; 4 import com.topdraw.business.module.points.available.service.dto.PointsAvailableDTO;
5 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableQueryCriteria; 5 import com.topdraw.business.module.points.available.service.dto.PointsAvailableQueryCriteria;
6 import org.springframework.data.jpa.repository.JpaRepository; 6 import org.springframework.data.jpa.repository.JpaRepository;
7 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 7 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
8 import org.springframework.data.jpa.repository.Modifying; 8 import org.springframework.data.jpa.repository.Modifying;
......
1 package com.topdraw.business.basicdata.points.available.rest; 1 package com.topdraw.business.module.points.available.rest;
2
3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.points.available.domain.PointsAvailable;
6 import com.topdraw.business.basicdata.points.available.service.PointsAvailableService;
7 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable;
10 import org.springframework.http.HttpStatus;
11 import org.springframework.http.ResponseEntity;
12 import org.springframework.validation.annotation.Validated;
13 import org.springframework.web.bind.annotation.*;
14 import io.swagger.annotations.*;
15 import java.io.IOException;
16 import javax.servlet.http.HttpServletResponse;
17 2
18 /** 3 /**
19 * @author XiangHan 4 * @author XiangHan
......
1 package com.topdraw.business.basicdata.points.available.service; 1 package com.topdraw.business.module.points.available.service;
2 2
3 import com.topdraw.business.basicdata.points.available.domain.PointsAvailable; 3 import com.topdraw.business.module.points.available.domain.PointsAvailable;
4 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableDTO; 4 import com.topdraw.business.module.points.available.service.dto.PointsAvailableDTO;
5 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableQueryCriteria; 5 import com.topdraw.business.module.points.available.service.dto.PointsAvailableQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 7
8 import java.time.LocalDateTime; 8 import java.time.LocalDateTime;
9 import java.util.Date;
10 import java.util.Map; 9 import java.util.Map;
11 import java.util.List; 10 import java.util.List;
12 11
......
1 package com.topdraw.business.basicdata.points.available.service.dto; 1 package com.topdraw.business.module.points.available.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.points.available.service.dto; 1 package com.topdraw.business.module.points.available.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import com.topdraw.annotation.Query; 4 import com.topdraw.annotation.Query;
......
1 package com.topdraw.business.basicdata.points.available.service.dto; 1 package com.topdraw.business.module.points.available.service.dto;
2 2
3 public enum PointsAvailableQueryType { 3 public enum PointsAvailableQueryType {
4 4
......
1 package com.topdraw.business.basicdata.points.available.service.impl; 1 package com.topdraw.business.module.points.available.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.points.available.domain.PointsAvailable; 4 import com.topdraw.business.module.points.available.domain.PointsAvailable;
5 import com.topdraw.util.RedissonUtil; 5 import com.topdraw.util.RedissonUtil;
6 import com.topdraw.utils.ValidationUtil; 6 import com.topdraw.utils.ValidationUtil;
7 import com.topdraw.business.basicdata.points.available.repository.PointsAvailableRepository; 7 import com.topdraw.business.module.points.available.repository.PointsAvailableRepository;
8 import com.topdraw.business.basicdata.points.available.service.PointsAvailableService; 8 import com.topdraw.business.module.points.available.service.PointsAvailableService;
9 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableDTO; 9 import com.topdraw.business.module.points.available.service.dto.PointsAvailableDTO;
10 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableQueryCriteria; 10 import com.topdraw.business.module.points.available.service.dto.PointsAvailableQueryCriteria;
11 import com.topdraw.business.basicdata.points.available.service.mapper.PointsAvailableMapper; 11 import com.topdraw.business.module.points.available.service.mapper.PointsAvailableMapper;
12 import org.redisson.api.RLock; 12 import org.redisson.api.RLock;
13 import org.redisson.api.RedissonClient; 13 import org.redisson.api.RedissonClient;
14 import org.springframework.beans.factory.annotation.Autowired; 14 import org.springframework.beans.factory.annotation.Autowired;
...@@ -23,11 +23,8 @@ import com.topdraw.utils.PageUtil; ...@@ -23,11 +23,8 @@ import com.topdraw.utils.PageUtil;
23 import com.topdraw.utils.QueryHelp; 23 import com.topdraw.utils.QueryHelp;
24 import com.topdraw.utils.StringUtils; 24 import com.topdraw.utils.StringUtils;
25 25
26 import java.sql.Timestamp;
27 import java.time.LocalDateTime; 26 import java.time.LocalDateTime;
28 import java.util.*; 27 import java.util.*;
29 import java.io.IOException;
30 import javax.servlet.http.HttpServletResponse;
31 28
32 /** 29 /**
33 * @author XiangHan 30 * @author XiangHan
......
1 package com.topdraw.business.basicdata.points.available.service.mapper; 1 package com.topdraw.business.module.points.available.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.points.available.domain.PointsAvailable; 4 import com.topdraw.business.module.points.available.domain.PointsAvailable;
5 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableDTO; 5 import com.topdraw.business.module.points.available.service.dto.PointsAvailableDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.points.detail.detailhistory.domain; 1 package com.topdraw.business.module.points.detail.detailhistory.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.points.detail.detailhistory.repository; 1 package com.topdraw.business.module.points.detail.detailhistory.repository;
2 2
3 import com.topdraw.business.basicdata.points.detail.detailhistory.domain.PointsDetailHistory; 3 import com.topdraw.business.module.points.detail.detailhistory.domain.PointsDetailHistory;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
......
1 package com.topdraw.business.basicdata.points.detail.detailhistory.rest; 1 package com.topdraw.business.module.points.detail.detailhistory.rest;
2 2
3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.points.detail.detailhistory.domain.PointsDetailHistory;
6 import com.topdraw.business.basicdata.points.detail.detailhistory.service.PointsDetailHistoryService;
7 import com.topdraw.business.basicdata.points.detail.detailhistory.service.dto.PointsDetailHistoryQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable;
10 import org.springframework.validation.annotation.Validated;
11 import org.springframework.web.bind.annotation.*;
12 import io.swagger.annotations.*; 3 import io.swagger.annotations.*;
13 4
14 /** 5 /**
......
1 package com.topdraw.business.basicdata.points.detail.detailhistory.service; 1 package com.topdraw.business.module.points.detail.detailhistory.service;
2 2
3 import com.topdraw.business.basicdata.points.detail.detailhistory.domain.PointsDetailHistory; 3 import com.topdraw.business.module.points.detail.detailhistory.domain.PointsDetailHistory;
4 import com.topdraw.business.basicdata.points.detail.detailhistory.service.dto.PointsDetailHistoryDTO; 4 import com.topdraw.business.module.points.detail.detailhistory.service.dto.PointsDetailHistoryDTO;
5 import com.topdraw.business.basicdata.points.detail.detailhistory.service.dto.PointsDetailHistoryQueryCriteria; 5 import com.topdraw.business.module.points.detail.detailhistory.service.dto.PointsDetailHistoryQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
......
1 package com.topdraw.business.basicdata.points.detail.detailhistory.service.dto; 1 package com.topdraw.business.module.points.detail.detailhistory.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.points.detail.detailhistory.service.dto; 1 package com.topdraw.business.module.points.detail.detailhistory.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
......
1 package com.topdraw.business.basicdata.points.detail.detailhistory.service.impl; 1 package com.topdraw.business.module.points.detail.detailhistory.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.points.detail.detailhistory.domain.PointsDetailHistory; 4 import com.topdraw.business.module.points.detail.detailhistory.domain.PointsDetailHistory;
5 import com.topdraw.utils.ValidationUtil; 5 import com.topdraw.utils.ValidationUtil;
6 import com.topdraw.business.basicdata.points.detail.detailhistory.repository.PointsDetailHistoryRepository; 6 import com.topdraw.business.module.points.detail.detailhistory.repository.PointsDetailHistoryRepository;
7 import com.topdraw.business.basicdata.points.detail.detailhistory.service.PointsDetailHistoryService; 7 import com.topdraw.business.module.points.detail.detailhistory.service.PointsDetailHistoryService;
8 import com.topdraw.business.basicdata.points.detail.detailhistory.service.dto.PointsDetailHistoryDTO; 8 import com.topdraw.business.module.points.detail.detailhistory.service.dto.PointsDetailHistoryDTO;
9 import com.topdraw.business.basicdata.points.detail.detailhistory.service.dto.PointsDetailHistoryQueryCriteria; 9 import com.topdraw.business.module.points.detail.detailhistory.service.dto.PointsDetailHistoryQueryCriteria;
10 import com.topdraw.business.basicdata.points.detail.detailhistory.service.mapper.PointsDetailHistoryMapper; 10 import com.topdraw.business.module.points.detail.detailhistory.service.mapper.PointsDetailHistoryMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation; 13 import org.springframework.transaction.annotation.Propagation;
......
1 package com.topdraw.business.basicdata.points.detail.detailhistory.service.mapper; 1 package com.topdraw.business.module.points.detail.detailhistory.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.points.detail.detailhistory.domain.PointsDetailHistory; 4 import com.topdraw.business.module.points.detail.detailhistory.domain.PointsDetailHistory;
5 import com.topdraw.business.basicdata.points.detail.detailhistory.service.dto.PointsDetailHistoryDTO; 5 import com.topdraw.business.module.points.detail.detailhistory.service.dto.PointsDetailHistoryDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.points.detail.domain; 1 package com.topdraw.business.module.points.detail.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.points.detail.repository; 1 package com.topdraw.business.module.points.detail.repository;
2 2
3 import com.topdraw.business.basicdata.points.detail.domain.PointsDetail; 3 import com.topdraw.business.module.points.detail.domain.PointsDetail;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
7 import java.util.Date;
8 import java.util.List; 7 import java.util.List;
9 import java.util.Optional; 8 import java.util.Optional;
10 9
......
1 package com.topdraw.business.basicdata.points.detail.rest; 1 package com.topdraw.business.module.points.detail.rest;
2 2
3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.points.detail.domain.PointsDetail;
6 import com.topdraw.business.basicdata.points.detail.service.PointsDetailService;
7 import com.topdraw.business.basicdata.points.detail.service.dto.PointsDetailQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable;
10 import org.springframework.validation.annotation.Validated;
11 import org.springframework.web.bind.annotation.*;
12 import io.swagger.annotations.*; 3 import io.swagger.annotations.*;
13 4
14 /** 5 /**
......
1 package com.topdraw.business.basicdata.points.detail.service; 1 package com.topdraw.business.module.points.detail.service;
2 2
3 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableDTO; 3 import com.topdraw.business.module.points.detail.domain.PointsDetail;
4 import com.topdraw.business.basicdata.points.detail.domain.PointsDetail; 4 import com.topdraw.business.module.points.detail.service.dto.PointsDetailDTO;
5 import com.topdraw.business.basicdata.points.detail.service.dto.PointsDetailDTO; 5 import com.topdraw.business.module.points.detail.service.dto.PointsDetailQueryCriteria;
6 import com.topdraw.business.basicdata.points.detail.service.dto.PointsDetailQueryCriteria;
7 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
8 7
9 import java.util.Date;
10 import java.util.Map; 8 import java.util.Map;
11 import java.util.List; 9 import java.util.List;
12 10
......
1 package com.topdraw.business.basicdata.points.detail.service.dto; 1 package com.topdraw.business.module.points.detail.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.points.detail.service.dto; 1 package com.topdraw.business.module.points.detail.service.dto;
2 2
3 import com.topdraw.annotation.Query; 3 import com.topdraw.annotation.Query;
4 import lombok.Data; 4 import lombok.Data;
......
1 package com.topdraw.business.basicdata.points.detail.service.impl; 1 package com.topdraw.business.module.points.detail.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.points.detail.domain.PointsDetail; 4 import com.topdraw.business.module.points.detail.domain.PointsDetail;
5 import com.topdraw.utils.ValidationUtil; 5 import com.topdraw.utils.ValidationUtil;
6 import com.topdraw.business.basicdata.points.detail.repository.PointsDetailRepository; 6 import com.topdraw.business.module.points.detail.repository.PointsDetailRepository;
7 import com.topdraw.business.basicdata.points.detail.service.PointsDetailService; 7 import com.topdraw.business.module.points.detail.service.PointsDetailService;
8 import com.topdraw.business.basicdata.points.detail.service.dto.PointsDetailDTO; 8 import com.topdraw.business.module.points.detail.service.dto.PointsDetailDTO;
9 import com.topdraw.business.basicdata.points.detail.service.dto.PointsDetailQueryCriteria; 9 import com.topdraw.business.module.points.detail.service.dto.PointsDetailQueryCriteria;
10 import com.topdraw.business.basicdata.points.detail.service.mapper.PointsDetailMapper; 10 import com.topdraw.business.module.points.detail.service.mapper.PointsDetailMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation; 13 import org.springframework.transaction.annotation.Propagation;
...@@ -20,7 +20,6 @@ import com.topdraw.utils.PageUtil; ...@@ -20,7 +20,6 @@ import com.topdraw.utils.PageUtil;
20 import com.topdraw.utils.QueryHelp; 20 import com.topdraw.utils.QueryHelp;
21 import com.topdraw.utils.StringUtils; 21 import com.topdraw.utils.StringUtils;
22 22
23 import java.util.Date;
24 import java.util.List; 23 import java.util.List;
25 import java.util.Map; 24 import java.util.Map;
26 import java.util.Objects; 25 import java.util.Objects;
......
1 package com.topdraw.business.basicdata.points.detail.service.mapper; 1 package com.topdraw.business.module.points.detail.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.points.detail.domain.PointsDetail; 4 import com.topdraw.business.module.points.detail.domain.PointsDetail;
5 import com.topdraw.business.basicdata.points.detail.service.dto.PointsDetailDTO; 5 import com.topdraw.business.module.points.detail.service.dto.PointsDetailDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.points.domain; 1 package com.topdraw.business.module.points.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.points.repository; 1 package com.topdraw.business.module.points.repository;
2 2
3 import com.topdraw.business.basicdata.points.domain.Points; 3 import com.topdraw.business.module.points.domain.Points;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
......
1 package com.topdraw.business.basicdata.points.rest; 1 package com.topdraw.business.module.points.rest;
2 2
3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.points.domain.Points;
6 import com.topdraw.business.basicdata.points.service.PointsService;
7 import com.topdraw.business.basicdata.points.service.dto.PointsQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable;
10 import org.springframework.validation.annotation.Validated;
11 import org.springframework.web.bind.annotation.*;
12 import io.swagger.annotations.*; 3 import io.swagger.annotations.*;
13 4
14 /** 5 /**
......
1 package com.topdraw.business.basicdata.points.service; 1 package com.topdraw.business.module.points.service;
2 2
3 import com.topdraw.business.basicdata.points.domain.Points; 3 import com.topdraw.business.module.points.domain.Points;
4 import com.topdraw.business.basicdata.points.service.dto.PointsDTO; 4 import com.topdraw.business.module.points.service.dto.PointsDTO;
5 import com.topdraw.business.basicdata.points.service.dto.PointsQueryCriteria; 5 import com.topdraw.business.module.points.service.dto.PointsQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
......
1 package com.topdraw.business.basicdata.points.service.dto; 1 package com.topdraw.business.module.points.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.points.service.dto; 1 package com.topdraw.business.module.points.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
......
1 package com.topdraw.business.basicdata.points.service.impl; 1 package com.topdraw.business.module.points.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.points.domain.Points; 4 import com.topdraw.business.module.points.domain.Points;
5 import com.topdraw.util.RedissonUtil; 5 import com.topdraw.util.RedissonUtil;
6 import com.topdraw.utils.ValidationUtil; 6 import com.topdraw.utils.ValidationUtil;
7 import com.topdraw.business.basicdata.points.repository.PointsRepository; 7 import com.topdraw.business.module.points.repository.PointsRepository;
8 import com.topdraw.business.basicdata.points.service.PointsService; 8 import com.topdraw.business.module.points.service.PointsService;
9 import com.topdraw.business.basicdata.points.service.dto.PointsDTO; 9 import com.topdraw.business.module.points.service.dto.PointsDTO;
10 import com.topdraw.business.basicdata.points.service.dto.PointsQueryCriteria; 10 import com.topdraw.business.module.points.service.dto.PointsQueryCriteria;
11 import com.topdraw.business.basicdata.points.service.mapper.PointsMapper; 11 import com.topdraw.business.module.points.service.mapper.PointsMapper;
12 import org.redisson.api.RLock; 12 import org.redisson.api.RLock;
13 import org.redisson.api.RedissonClient; 13 import org.redisson.api.RedissonClient;
14 import org.springframework.beans.factory.annotation.Autowired; 14 import org.springframework.beans.factory.annotation.Autowired;
......
1 package com.topdraw.business.basicdata.points.service.mapper; 1 package com.topdraw.business.module.points.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.points.domain.Points; 4 import com.topdraw.business.module.points.domain.Points;
5 import com.topdraw.business.basicdata.points.service.dto.PointsDTO; 5 import com.topdraw.business.module.points.service.dto.PointsDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.points.standingbook.domain; 1 package com.topdraw.business.module.points.standingbook.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.points.standingbook.repository; 1 package com.topdraw.business.module.points.standingbook.repository;
2 2
3 import com.topdraw.business.basicdata.points.standingbook.domain.PointsStandingBook; 3 import com.topdraw.business.module.points.standingbook.domain.PointsStandingBook;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
7 import java.util.Optional;
8
9 /** 7 /**
10 * @author XiangHan 8 * @author XiangHan
11 * @date 2021-10-29 9 * @date 2021-10-29
......
1 package com.topdraw.business.basicdata.points.standingbook.rest; 1 package com.topdraw.business.module.points.standingbook.rest;
2 2
3 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log; 4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.points.standingbook.domain.PointsStandingBook; 5 import com.topdraw.business.module.points.standingbook.domain.PointsStandingBook;
6 import com.topdraw.business.basicdata.points.standingbook.service.PointsStandingBookService; 6 import com.topdraw.business.module.points.standingbook.service.PointsStandingBookService;
7 import com.topdraw.business.basicdata.points.standingbook.service.dto.PointsStandingBookQueryCriteria; 7 import com.topdraw.business.module.points.standingbook.service.dto.PointsStandingBookQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable; 9 import org.springframework.data.domain.Pageable;
10 import org.springframework.http.HttpStatus;
11 import org.springframework.http.ResponseEntity;
12 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
13 import org.springframework.web.bind.annotation.*; 11 import org.springframework.web.bind.annotation.*;
14 import io.swagger.annotations.*; 12 import io.swagger.annotations.*;
15 import java.io.IOException;
16 import javax.servlet.http.HttpServletResponse;
17 13
18 /** 14 /**
19 * @author XiangHan 15 * @author XiangHan
......
1 package com.topdraw.business.basicdata.points.standingbook.service; 1 package com.topdraw.business.module.points.standingbook.service;
2 2
3 import com.topdraw.business.basicdata.points.standingbook.domain.PointsStandingBook; 3 import com.topdraw.business.module.points.standingbook.domain.PointsStandingBook;
4 import com.topdraw.business.basicdata.points.standingbook.service.dto.PointsStandingBookDTO; 4 import com.topdraw.business.module.points.standingbook.service.dto.PointsStandingBookDTO;
5 import com.topdraw.business.basicdata.points.standingbook.service.dto.PointsStandingBookQueryCriteria; 5 import com.topdraw.business.module.points.standingbook.service.dto.PointsStandingBookQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
9 import java.io.IOException;
10 import javax.servlet.http.HttpServletResponse;
11 9
12 /** 10 /**
13 * @author XiangHan 11 * @author XiangHan
......
1 package com.topdraw.business.basicdata.points.standingbook.service.dto; 1 package com.topdraw.business.module.points.standingbook.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.points.standingbook.service.dto; 1 package com.topdraw.business.module.points.standingbook.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import com.topdraw.annotation.Query;
5 4
6 /** 5 /**
7 * @author XiangHan 6 * @author XiangHan
......
1 package com.topdraw.business.basicdata.points.standingbook.service.impl; 1 package com.topdraw.business.module.points.standingbook.service.impl;
2 2
3 import com.topdraw.business.basicdata.points.standingbook.domain.PointsStandingBook; 3 import com.topdraw.business.module.points.standingbook.domain.PointsStandingBook;
4 import com.topdraw.utils.ValidationUtil; 4 import com.topdraw.utils.ValidationUtil;
5 import com.topdraw.utils.FileUtil; 5 import com.topdraw.business.module.points.standingbook.repository.PointsStandingBookRepository;
6 import com.topdraw.business.basicdata.points.standingbook.repository.PointsStandingBookRepository; 6 import com.topdraw.business.module.points.standingbook.service.PointsStandingBookService;
7 import com.topdraw.business.basicdata.points.standingbook.service.PointsStandingBookService; 7 import com.topdraw.business.module.points.standingbook.service.dto.PointsStandingBookDTO;
8 import com.topdraw.business.basicdata.points.standingbook.service.dto.PointsStandingBookDTO; 8 import com.topdraw.business.module.points.standingbook.service.dto.PointsStandingBookQueryCriteria;
9 import com.topdraw.business.basicdata.points.standingbook.service.dto.PointsStandingBookQueryCriteria; 9 import com.topdraw.business.module.points.standingbook.service.mapper.PointsStandingBookMapper;
10 import com.topdraw.business.basicdata.points.standingbook.service.mapper.PointsStandingBookMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation; 12 import org.springframework.transaction.annotation.Propagation;
...@@ -18,14 +17,9 @@ import org.springframework.data.domain.Pageable; ...@@ -18,14 +17,9 @@ import org.springframework.data.domain.Pageable;
18 import org.springframework.util.Assert; 17 import org.springframework.util.Assert;
19 import com.topdraw.utils.PageUtil; 18 import com.topdraw.utils.PageUtil;
20 import com.topdraw.utils.QueryHelp; 19 import com.topdraw.utils.QueryHelp;
21 import com.topdraw.utils.StringUtils;
22 20
23 import java.util.List; 21 import java.util.List;
24 import java.util.Map; 22 import java.util.Map;
25 import java.io.IOException;
26 import javax.servlet.http.HttpServletResponse;
27 import java.util.ArrayList;
28 import java.util.LinkedHashMap;
29 23
30 /** 24 /**
31 * @author XiangHan 25 * @author XiangHan
......
1 package com.topdraw.business.basicdata.points.standingbook.service.mapper; 1 package com.topdraw.business.module.points.standingbook.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.points.standingbook.domain.PointsStandingBook; 4 import com.topdraw.business.module.points.standingbook.domain.PointsStandingBook;
5 import com.topdraw.business.basicdata.points.standingbook.service.dto.PointsStandingBookDTO; 5 import com.topdraw.business.module.points.standingbook.service.dto.PointsStandingBookDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.rights.constant; 1 package com.topdraw.business.module.rights.constant;
2 2
3 public class RightsType { 3 public class RightsType {
4 4
......
1 package com.topdraw.business.basicdata.rights.domain; 1 package com.topdraw.business.module.rights.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.rights.history.domain; 1 package com.topdraw.business.module.rights.history.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.rights.history.repository; 1 package com.topdraw.business.module.rights.history.repository;
2 2
3 import com.topdraw.business.basicdata.rights.history.domain.RightsHistory; 3 import com.topdraw.business.module.rights.history.domain.RightsHistory;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
......
1 package com.topdraw.business.basicdata.rights.history.rest; 1 package com.topdraw.business.module.rights.history.rest;
2 2
3 import com.topdraw.business.basicdata.rights.history.service.dto.RightsHistoryQueryType;
4 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
5 import com.topdraw.annotation.Log; 4 import com.topdraw.business.module.rights.history.service.RightsHistoryService;
6 import com.topdraw.business.basicdata.rights.history.domain.RightsHistory; 5 import com.topdraw.business.module.rights.history.service.dto.RightsHistoryQueryCriteria;
7 import com.topdraw.business.basicdata.rights.history.service.RightsHistoryService;
8 import com.topdraw.business.basicdata.rights.history.service.dto.RightsHistoryQueryCriteria;
9 import com.topdraw.util.TimestampUtil; 6 import com.topdraw.util.TimestampUtil;
10 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.data.domain.Pageable; 8 import org.springframework.data.domain.Pageable;
12 import org.springframework.validation.annotation.Validated;
13 import org.springframework.web.bind.annotation.*; 9 import org.springframework.web.bind.annotation.*;
14 import io.swagger.annotations.*; 10 import io.swagger.annotations.*;
15 11
......
1 package com.topdraw.business.basicdata.rights.history.service; 1 package com.topdraw.business.module.rights.history.service;
2 2
3 import com.topdraw.business.basicdata.rights.history.domain.RightsHistory; 3 import com.topdraw.business.module.rights.history.domain.RightsHistory;
4 import com.topdraw.business.basicdata.rights.history.service.dto.RightsHistoryDTO; 4 import com.topdraw.business.module.rights.history.service.dto.RightsHistoryDTO;
5 import com.topdraw.business.basicdata.rights.history.service.dto.RightsHistoryQueryCriteria; 5 import com.topdraw.business.module.rights.history.service.dto.RightsHistoryQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
......
1 package com.topdraw.business.basicdata.rights.history.service.dto; 1 package com.topdraw.business.module.rights.history.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
5 import javax.persistence.Column;
6 import java.sql.Timestamp; 5 import java.sql.Timestamp;
7 import java.io.Serializable; 6 import java.io.Serializable;
8 import java.time.LocalDateTime; 7 import java.time.LocalDateTime;
......
1 package com.topdraw.business.basicdata.rights.history.service.dto; 1 package com.topdraw.business.module.rights.history.service.dto;
2 2
3 import com.topdraw.annotation.Query; 3 import com.topdraw.annotation.Query;
4 import lombok.Data; 4 import lombok.Data;
......
1 package com.topdraw.business.basicdata.rights.history.service.dto; 1 package com.topdraw.business.module.rights.history.service.dto;
2 2
3 public enum RightsHistoryQueryType { 3 public enum RightsHistoryQueryType {
4 4
......
1 package com.topdraw.business.basicdata.rights.history.service.impl; 1 package com.topdraw.business.module.rights.history.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.rights.history.domain.RightsHistory; 4 import com.topdraw.business.module.rights.history.domain.RightsHistory;
5 import com.topdraw.utils.ValidationUtil; 5 import com.topdraw.utils.ValidationUtil;
6 import com.topdraw.business.basicdata.rights.history.repository.RightsHistoryRepository; 6 import com.topdraw.business.module.rights.history.repository.RightsHistoryRepository;
7 import com.topdraw.business.basicdata.rights.history.service.RightsHistoryService; 7 import com.topdraw.business.module.rights.history.service.RightsHistoryService;
8 import com.topdraw.business.basicdata.rights.history.service.dto.RightsHistoryDTO; 8 import com.topdraw.business.module.rights.history.service.dto.RightsHistoryDTO;
9 import com.topdraw.business.basicdata.rights.history.service.dto.RightsHistoryQueryCriteria; 9 import com.topdraw.business.module.rights.history.service.dto.RightsHistoryQueryCriteria;
10 import com.topdraw.business.basicdata.rights.history.service.mapper.RightsHistoryMapper; 10 import com.topdraw.business.module.rights.history.service.mapper.RightsHistoryMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation; 13 import org.springframework.transaction.annotation.Propagation;
......
1 package com.topdraw.business.basicdata.rights.history.service.mapper; 1 package com.topdraw.business.module.rights.history.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.rights.history.domain.RightsHistory; 4 import com.topdraw.business.module.rights.history.domain.RightsHistory;
5 import com.topdraw.business.basicdata.rights.history.service.dto.RightsHistoryDTO; 5 import com.topdraw.business.module.rights.history.service.dto.RightsHistoryDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.rights.permanentrights.domain; 1 package com.topdraw.business.module.rights.permanentrights.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.rights.permanentrights.repository; 1 package com.topdraw.business.module.rights.permanentrights.repository;
2 2
3 import com.topdraw.business.basicdata.rights.permanentrights.domain.PermanentRights; 3 import com.topdraw.business.module.rights.permanentrights.domain.PermanentRights;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
......
1 package com.topdraw.business.basicdata.rights.permanentrights.rest; 1 package com.topdraw.business.module.rights.permanentrights.rest;
2 2
3 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log; 4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.rights.permanentrights.domain.PermanentRights; 5 import com.topdraw.business.module.rights.permanentrights.domain.PermanentRights;
6 import com.topdraw.business.basicdata.rights.permanentrights.service.PermanentRightsService; 6 import com.topdraw.business.module.rights.permanentrights.service.PermanentRightsService;
7 import com.topdraw.business.basicdata.rights.permanentrights.service.dto.PermanentRightsQueryCriteria; 7 import com.topdraw.business.module.rights.permanentrights.service.dto.PermanentRightsQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable; 9 import org.springframework.data.domain.Pageable;
10 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
......
1 package com.topdraw.business.basicdata.rights.permanentrights.service; 1 package com.topdraw.business.module.rights.permanentrights.service;
2 2
3 import com.topdraw.business.basicdata.rights.permanentrights.domain.PermanentRights; 3 import com.topdraw.business.module.rights.permanentrights.domain.PermanentRights;
4 import com.topdraw.business.basicdata.rights.permanentrights.service.dto.PermanentRightsDTO; 4 import com.topdraw.business.module.rights.permanentrights.service.dto.PermanentRightsDTO;
5 import com.topdraw.business.basicdata.rights.permanentrights.service.dto.PermanentRightsQueryCriteria; 5 import com.topdraw.business.module.rights.permanentrights.service.dto.PermanentRightsQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
......
1 package com.topdraw.business.basicdata.rights.permanentrights.service.dto; 1 package com.topdraw.business.module.rights.permanentrights.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.rights.permanentrights.service.dto; 1 package com.topdraw.business.module.rights.permanentrights.service.dto;
2 2
3 import com.topdraw.annotation.Query; 3 import com.topdraw.annotation.Query;
4 import lombok.Data; 4 import lombok.Data;
......
1 package com.topdraw.business.basicdata.rights.permanentrights.service.impl; 1 package com.topdraw.business.module.rights.permanentrights.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.business.module.rights.permanentrights.domain.PermanentRights;
4 import com.topdraw.business.basicdata.rights.permanentrights.domain.PermanentRights;
5 import com.topdraw.utils.ValidationUtil; 4 import com.topdraw.utils.ValidationUtil;
6 import com.topdraw.business.basicdata.rights.permanentrights.repository.PermanentRightsRepository; 5 import com.topdraw.business.module.rights.permanentrights.repository.PermanentRightsRepository;
7 import com.topdraw.business.basicdata.rights.permanentrights.service.PermanentRightsService; 6 import com.topdraw.business.module.rights.permanentrights.service.PermanentRightsService;
8 import com.topdraw.business.basicdata.rights.permanentrights.service.dto.PermanentRightsDTO; 7 import com.topdraw.business.module.rights.permanentrights.service.dto.PermanentRightsDTO;
9 import com.topdraw.business.basicdata.rights.permanentrights.service.dto.PermanentRightsQueryCriteria; 8 import com.topdraw.business.module.rights.permanentrights.service.dto.PermanentRightsQueryCriteria;
10 import com.topdraw.business.basicdata.rights.permanentrights.service.mapper.PermanentRightsMapper; 9 import com.topdraw.business.module.rights.permanentrights.service.mapper.PermanentRightsMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation; 12 import org.springframework.transaction.annotation.Propagation;
......
1 package com.topdraw.business.basicdata.rights.permanentrights.service.mapper; 1 package com.topdraw.business.module.rights.permanentrights.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.rights.permanentrights.domain.PermanentRights; 4 import com.topdraw.business.module.rights.permanentrights.domain.PermanentRights;
5 import com.topdraw.business.basicdata.rights.permanentrights.service.dto.PermanentRightsDTO; 5 import com.topdraw.business.module.rights.permanentrights.service.dto.PermanentRightsDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.rights.repository; 1 package com.topdraw.business.module.rights.repository;
2 2
3 import com.topdraw.business.basicdata.rights.domain.Rights; 3 import com.topdraw.business.module.rights.domain.Rights;
4 import com.topdraw.business.basicdata.rights.service.dto.RightsDTO;
5 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
6 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
7 import org.springframework.data.jpa.repository.Query; 6 import org.springframework.data.jpa.repository.Query;
......
1 package com.topdraw.business.basicdata.rights.rest; 1 package com.topdraw.business.module.rights.rest;
2 2
3 import com.topdraw.business.basicdata.rights.service.RightsService; 3 import com.topdraw.business.module.rights.service.RightsService;
4 import com.topdraw.business.basicdata.rights.service.dto.RightsQueryCriteria;
5 import com.topdraw.common.ResultInfo; 4 import com.topdraw.common.ResultInfo;
6 import io.swagger.annotations.Api; 5 import io.swagger.annotations.Api;
7 import io.swagger.annotations.ApiOperation; 6 import io.swagger.annotations.ApiOperation;
8 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable;
10 import org.springframework.web.bind.annotation.GetMapping; 8 import org.springframework.web.bind.annotation.GetMapping;
11 import org.springframework.web.bind.annotation.PathVariable; 9 import org.springframework.web.bind.annotation.PathVariable;
12 import org.springframework.web.bind.annotation.RequestMapping; 10 import org.springframework.web.bind.annotation.RequestMapping;
......
1 package com.topdraw.business.basicdata.rights.service; 1 package com.topdraw.business.module.rights.service;
2 2
3 import com.topdraw.business.basicdata.rights.domain.Rights; 3 import com.topdraw.business.module.rights.domain.Rights;
4 import com.topdraw.business.basicdata.rights.service.dto.RightsDTO; 4 import com.topdraw.business.module.rights.service.dto.RightsDTO;
5 import com.topdraw.business.basicdata.rights.service.dto.RightsQueryCriteria; 5 import com.topdraw.business.module.rights.service.dto.RightsQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
......
1 package com.topdraw.business.basicdata.rights.service.dto; 1 package com.topdraw.business.module.rights.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.rights.service.dto; 1 package com.topdraw.business.module.rights.service.dto;
2 2
3 import com.topdraw.annotation.Query; 3 import com.topdraw.annotation.Query;
4 import lombok.Data; 4 import lombok.Data;
......
1 package com.topdraw.business.basicdata.rights.service.dto; 1 package com.topdraw.business.module.rights.service.dto;
2 2
3 public enum RightsQueryType { 3 public enum RightsQueryType {
4 4
......
1 package com.topdraw.business.basicdata.rights.service.impl; 1 package com.topdraw.business.module.rights.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.rights.domain.Rights; 4 import com.topdraw.business.module.rights.domain.Rights;
5 import com.topdraw.utils.ValidationUtil; 5 import com.topdraw.utils.ValidationUtil;
6 import com.topdraw.business.basicdata.rights.repository.RightsRepository; 6 import com.topdraw.business.module.rights.repository.RightsRepository;
7 import com.topdraw.business.basicdata.rights.service.RightsService; 7 import com.topdraw.business.module.rights.service.RightsService;
8 import com.topdraw.business.basicdata.rights.service.dto.RightsDTO; 8 import com.topdraw.business.module.rights.service.dto.RightsDTO;
9 import com.topdraw.business.basicdata.rights.service.dto.RightsQueryCriteria; 9 import com.topdraw.business.module.rights.service.dto.RightsQueryCriteria;
10 import com.topdraw.business.basicdata.rights.service.mapper.RightsMapper; 10 import com.topdraw.business.module.rights.service.mapper.RightsMapper;
11 import org.redisson.api.RLock; 11 import org.redisson.api.RLock;
12 import org.redisson.api.RedissonClient; 12 import org.redisson.api.RedissonClient;
13 import org.springframework.beans.factory.annotation.Autowired; 13 import org.springframework.beans.factory.annotation.Autowired;
......
1 package com.topdraw.business.basicdata.rights.service.mapper; 1 package com.topdraw.business.module.rights.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.rights.domain.Rights; 4 import com.topdraw.business.module.rights.domain.Rights;
5 import com.topdraw.business.basicdata.rights.service.dto.RightsDTO; 5 import com.topdraw.business.module.rights.service.dto.RightsDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.module.task.attribute.domain;
2
3 import lombok.Data;
4 import lombok.experimental.Accessors;
5 import cn.hutool.core.bean.BeanUtil;
6 import cn.hutool.core.bean.copier.CopyOptions;
7 import javax.persistence.*;
8 import org.springframework.data.annotation.CreatedDate;
9 import org.springframework.data.annotation.LastModifiedDate;
10 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
11
12 import java.io.Serializable;
13
14 /**
15 * @author XiangHan
16 * @date 2022-01-13
17 */
18 @Entity
19 @Data
20 @EntityListeners(AuditingEntityListener.class)
21 @Accessors(chain = true)
22 @Table(name="tr_task_attr")
23 public class TaskAttr implements Serializable {
24
25 @Id
26 @GeneratedValue(strategy = GenerationType.IDENTITY)
27 @Column(name = "id")
28 private Long id;
29
30 // 任务id(关联task主键)
31 @Column(name = "task_id")
32 private Long taskId;
33
34 // 任务属性字符串
35 @Column(name = "attr_str")
36 private String attrStr;
37
38 public void copy(TaskAttr source){
39 BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
40 }
41 }
1 package com.topdraw.business.module.task.attribute.repository;
2
3 import com.topdraw.business.module.task.attribute.domain.TaskAttr;
4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6
7 import java.util.Optional;
8
9 /**
10 * @author XiangHan
11 * @date 2022-01-13
12 */
13 public interface TaskAttrRepository extends JpaRepository<TaskAttr, Long>, JpaSpecificationExecutor<TaskAttr> {
14
15 Optional<TaskAttr> findByTaskId(Long taskId);
16 }
1 package com.topdraw.business.module.task.attribute.rest;
2
3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.module.task.attribute.domain.TaskAttr;
6 import com.topdraw.business.module.task.attribute.service.TaskAttrService;
7 import com.topdraw.business.module.task.attribute.service.dto.TaskAttrQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable;
10 import org.springframework.http.HttpStatus;
11 import org.springframework.http.ResponseEntity;
12 import org.springframework.validation.annotation.Validated;
13 import org.springframework.web.bind.annotation.*;
14 import io.swagger.annotations.*;
15 import java.io.IOException;
16 import javax.servlet.http.HttpServletResponse;
17
18 /**
19 * @author XiangHan
20 * @date 2022-01-13
21 */
22 @Api(tags = "TaskAttr管理")
23 @RestController
24 @RequestMapping("/api/TaskAttr")
25 public class TaskAttrController {
26
27 @Autowired
28 private TaskAttrService TaskAttrService;
29
30 @GetMapping
31 @ApiOperation("查询TaskAttr")
32 public ResultInfo getTaskAttrs(TaskAttrQueryCriteria criteria, Pageable pageable) {
33 return ResultInfo.successPage(TaskAttrService.queryAll(criteria,pageable));
34 }
35
36 @GetMapping(value = "/all")
37 @ApiOperation("查询所有TaskAttr")
38 public ResultInfo getTaskAttrs(TaskAttrQueryCriteria criteria) {
39 return ResultInfo.success(TaskAttrService.queryAll(criteria));
40 }
41
42 @Log
43 @PostMapping
44 @ApiOperation("新增TaskAttr")
45 public ResultInfo create(@Validated @RequestBody TaskAttr resources) {
46 TaskAttrService.create(resources);
47 return ResultInfo.success();
48 }
49
50 @Log
51 @PutMapping
52 @ApiOperation("修改TaskAttr")
53 public ResultInfo update(@Validated @RequestBody TaskAttr resources) {
54 TaskAttrService.update(resources);
55 return ResultInfo.success();
56 }
57
58
59 @Log
60 @DeleteMapping(value = "/{id}")
61 @ApiOperation("删除TaskAttr")
62 public ResultInfo delete(@PathVariable Long id) {
63 TaskAttrService.delete(id);
64 return ResultInfo.success();
65 }
66
67 }
1 package com.topdraw.business.module.task.attribute.service;
2
3 import com.topdraw.business.module.task.attribute.domain.TaskAttr;
4 import com.topdraw.business.module.task.attribute.service.dto.TaskAttrDTO;
5 import com.topdraw.business.module.task.attribute.service.dto.TaskAttrQueryCriteria;
6 import org.springframework.data.domain.Pageable;
7 import java.util.Map;
8 import java.util.List;
9 import java.io.IOException;
10 import javax.servlet.http.HttpServletResponse;
11
12 /**
13 * @author XiangHan
14 * @date 2022-01-13
15 */
16 public interface TaskAttrService {
17
18 /**
19 * 查询数据分页
20 * @param criteria 条件参数
21 * @param pageable 分页参数
22 * @return Map<String,Object>
23 */
24 Map<String,Object> queryAll(TaskAttrQueryCriteria criteria, Pageable pageable);
25
26 /**
27 * 查询所有数据不分页
28 * @param criteria 条件参数
29 * @return List<TaskAttrDTO>
30 */
31 List<TaskAttrDTO> queryAll(TaskAttrQueryCriteria criteria);
32
33 /**
34 * 根据ID查询
35 * @param id ID
36 * @return TaskAttrDTO
37 */
38 TaskAttrDTO findById(Long id);
39
40 void create(TaskAttr resources);
41
42 void update(TaskAttr resources);
43
44 void delete(Long id);
45
46 TaskAttrDTO findByTaskId(Long taskId);
47 }
1 package com.topdraw.business.module.task.attribute.service.dto;
2
3 import lombok.Data;
4 import java.io.Serializable;
5
6
7 /**
8 * @author XiangHan
9 * @date 2022-01-13
10 */
11 @Data
12 public class TaskAttrDTO implements Serializable {
13
14 private Long id;
15
16 // 任务id(关联task主键)
17 private Long taskId;
18
19 // 任务属性字符串
20 private String attrStr;
21 }
1 package com.topdraw.business.module.task.attribute.service.dto;
2
3 import lombok.Data;
4 import com.topdraw.annotation.Query;
5
6 /**
7 * @author XiangHan
8 * @date 2022-01-13
9 */
10 @Data
11 public class TaskAttrQueryCriteria{
12 }
1 package com.topdraw.business.module.task.attribute.service.impl;
2
3 import com.topdraw.business.module.task.attribute.domain.TaskAttr;
4 import com.topdraw.utils.ValidationUtil;
5 import com.topdraw.utils.FileUtil;
6 import com.topdraw.business.module.task.attribute.repository.TaskAttrRepository;
7 import com.topdraw.business.module.task.attribute.service.TaskAttrService;
8 import com.topdraw.business.module.task.attribute.service.dto.TaskAttrDTO;
9 import com.topdraw.business.module.task.attribute.service.dto.TaskAttrQueryCriteria;
10 import com.topdraw.business.module.task.attribute.service.mapper.TaskAttrMapper;
11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation;
14 import org.springframework.transaction.annotation.Transactional;
15 import org.springframework.dao.EmptyResultDataAccessException;
16 import org.springframework.data.domain.Page;
17 import org.springframework.data.domain.Pageable;
18 import org.springframework.util.Assert;
19 import com.topdraw.utils.PageUtil;
20 import com.topdraw.utils.QueryHelp;
21 import com.topdraw.utils.StringUtils;
22
23 import java.util.List;
24 import java.util.Map;
25 import java.io.IOException;
26 import javax.servlet.http.HttpServletResponse;
27 import java.util.ArrayList;
28 import java.util.LinkedHashMap;
29
30 /**
31 * @author XiangHan
32 * @date 2022-01-13
33 */
34 @Service
35 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
36 public class TaskAttrServiceImpl implements TaskAttrService {
37
38 @Autowired
39 private TaskAttrRepository TaskAttrRepository;
40
41 @Autowired
42 private TaskAttrMapper TaskAttrMapper;
43
44 @Override
45 public Map<String, Object> queryAll(TaskAttrQueryCriteria criteria, Pageable pageable) {
46 Page<TaskAttr> page = TaskAttrRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
47 return PageUtil.toPage(page.map(TaskAttrMapper::toDto));
48 }
49
50 @Override
51 public List<TaskAttrDTO> queryAll(TaskAttrQueryCriteria criteria) {
52 return TaskAttrMapper.toDto(TaskAttrRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
53 }
54
55 @Override
56 public TaskAttrDTO findById(Long id) {
57 TaskAttr TaskAttr = TaskAttrRepository.findById(id).orElseGet(TaskAttr::new);
58 ValidationUtil.isNull(TaskAttr.getId(),"TaskAttr","id",id);
59 return TaskAttrMapper.toDto(TaskAttr);
60 }
61
62 @Override
63 @Transactional(rollbackFor = Exception.class)
64 public void create(TaskAttr resources) {
65 TaskAttrRepository.save(resources);
66 }
67
68 @Override
69 @Transactional(rollbackFor = Exception.class)
70 public void update(TaskAttr resources) {
71 TaskAttr TaskAttr = TaskAttrRepository.findById(resources.getId()).orElseGet(TaskAttr::new);
72 ValidationUtil.isNull( TaskAttr.getId(),"TaskAttr","id",resources.getId());
73 TaskAttr.copy(resources);
74 TaskAttrRepository.save(TaskAttr);
75 }
76
77 @Override
78 @Transactional(rollbackFor = Exception.class)
79 public void delete(Long id) {
80 Assert.notNull(id, "The given id must not be null!");
81 TaskAttr TaskAttr = TaskAttrRepository.findById(id).orElseThrow(
82 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", TaskAttr.class, id), 1));
83 TaskAttrRepository.delete(TaskAttr);
84 }
85
86 @Override
87 public TaskAttrDTO findByTaskId(Long taskId) {
88 TaskAttr TaskAttr = TaskAttrRepository.findByTaskId(taskId).orElseGet(TaskAttr::new);
89 return TaskAttrMapper.toDto(TaskAttr);
90 }
91
92
93 }
1 package com.topdraw.business.module.task.attribute.service.mapper;
2
3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.module.task.attribute.domain.TaskAttr;
5 import com.topdraw.business.module.task.attribute.service.dto.TaskAttrDTO;
6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy;
8
9 /**
10 * @author XiangHan
11 * @date 2022-01-13
12 */
13 @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
14 public interface TaskAttrMapper extends BaseMapper<TaskAttrDTO, TaskAttr> {
15
16 }
1 package com.topdraw.business.basicdata.task.domain; 1 package com.topdraw.business.module.task.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.task.progress.domain; 1 package com.topdraw.business.module.task.progress.domain;
2 2
3 import lombok.AllArgsConstructor; 3 import lombok.AllArgsConstructor;
4 import lombok.Data; 4 import lombok.Data;
......
1 package com.topdraw.business.basicdata.task.progress.repository; 1 package com.topdraw.business.module.task.progress.repository;
2 2
3 import com.topdraw.business.basicdata.task.progress.domain.TrTaskProgress; 3 import com.topdraw.business.module.task.progress.domain.TrTaskProgress;
4 import com.topdraw.business.basicdata.task.progress.service.dto.TrTaskProgressDTO;
5 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
6 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
7 import org.springframework.data.jpa.repository.Query; 6 import org.springframework.data.jpa.repository.Query;
8 7
9 import java.util.List; 8 import java.util.List;
10 import java.util.Optional;
11 9
12 /** 10 /**
13 * @author XiangHan 11 * @author XiangHan
......
1 package com.topdraw.business.basicdata.task.progress.rest; 1 package com.topdraw.business.module.task.progress.rest;
2 2
3 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log; 4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.task.progress.domain.TrTaskProgress; 5 import com.topdraw.business.module.task.progress.domain.TrTaskProgress;
6 import com.topdraw.business.basicdata.task.progress.service.TrTaskProgressService; 6 import com.topdraw.business.module.task.progress.service.TrTaskProgressService;
7 import com.topdraw.business.basicdata.task.progress.service.dto.TrTaskProgressQueryCriteria; 7 import com.topdraw.business.module.task.progress.service.dto.TrTaskProgressQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable; 9 import org.springframework.data.domain.Pageable;
10 import org.springframework.http.HttpStatus;
11 import org.springframework.http.ResponseEntity;
12 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
13 import org.springframework.web.bind.annotation.*; 11 import org.springframework.web.bind.annotation.*;
14 import io.swagger.annotations.*; 12 import io.swagger.annotations.*;
15 import java.io.IOException;
16 import javax.servlet.http.HttpServletResponse;
17 13
18 /** 14 /**
19 * @author XiangHan 15 * @author XiangHan
......
1 package com.topdraw.business.basicdata.task.progress.service; 1 package com.topdraw.business.module.task.progress.service;
2 2
3 import com.topdraw.business.basicdata.task.progress.domain.TrTaskProgress; 3 import com.topdraw.business.module.task.progress.domain.TrTaskProgress;
4 import com.topdraw.business.basicdata.task.progress.service.dto.TrTaskProgressDTO; 4 import com.topdraw.business.module.task.progress.service.dto.TrTaskProgressDTO;
5 import com.topdraw.business.basicdata.task.progress.service.dto.TrTaskProgressQueryCriteria; 5 import com.topdraw.business.module.task.progress.service.dto.TrTaskProgressQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
9 import java.io.IOException;
10 import javax.servlet.http.HttpServletResponse;
11 9
12 /** 10 /**
13 * @author XiangHan 11 * @author XiangHan
......
1 package com.topdraw.business.basicdata.task.progress.service.dto; 1 package com.topdraw.business.module.task.progress.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.task.progress.service.dto; 1 package com.topdraw.business.module.task.progress.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import com.topdraw.annotation.Query; 4 import com.topdraw.annotation.Query;
5 5
6 import java.sql.Timestamp;
7
8 /** 6 /**
9 * @author XiangHan 7 * @author XiangHan
10 * @date 2021-11-02 8 * @date 2021-11-02
......
1 package com.topdraw.business.basicdata.task.progress.service.impl; 1 package com.topdraw.business.module.task.progress.service.impl;
2 2
3 import com.topdraw.business.basicdata.task.progress.domain.TrTaskProgress; 3 import com.topdraw.business.module.task.progress.domain.TrTaskProgress;
4 import com.topdraw.utils.ValidationUtil; 4 import com.topdraw.utils.ValidationUtil;
5 import com.topdraw.utils.FileUtil; 5 import com.topdraw.business.module.task.progress.repository.TrTaskProgressRepository;
6 import com.topdraw.business.basicdata.task.progress.repository.TrTaskProgressRepository; 6 import com.topdraw.business.module.task.progress.service.TrTaskProgressService;
7 import com.topdraw.business.basicdata.task.progress.service.TrTaskProgressService; 7 import com.topdraw.business.module.task.progress.service.dto.TrTaskProgressDTO;
8 import com.topdraw.business.basicdata.task.progress.service.dto.TrTaskProgressDTO; 8 import com.topdraw.business.module.task.progress.service.dto.TrTaskProgressQueryCriteria;
9 import com.topdraw.business.basicdata.task.progress.service.dto.TrTaskProgressQueryCriteria; 9 import com.topdraw.business.module.task.progress.service.mapper.TrTaskProgressMapper;
10 import com.topdraw.business.basicdata.task.progress.service.mapper.TrTaskProgressMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation; 12 import org.springframework.transaction.annotation.Propagation;
...@@ -18,14 +17,9 @@ import org.springframework.data.domain.Pageable; ...@@ -18,14 +17,9 @@ import org.springframework.data.domain.Pageable;
18 import org.springframework.util.Assert; 17 import org.springframework.util.Assert;
19 import com.topdraw.utils.PageUtil; 18 import com.topdraw.utils.PageUtil;
20 import com.topdraw.utils.QueryHelp; 19 import com.topdraw.utils.QueryHelp;
21 import com.topdraw.utils.StringUtils;
22 20
23 import java.util.List; 21 import java.util.List;
24 import java.util.Map; 22 import java.util.Map;
25 import java.io.IOException;
26 import javax.servlet.http.HttpServletResponse;
27 import java.util.ArrayList;
28 import java.util.LinkedHashMap;
29 23
30 /** 24 /**
31 * @author XiangHan 25 * @author XiangHan
......
1 package com.topdraw.business.basicdata.task.progress.service.mapper; 1 package com.topdraw.business.module.task.progress.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.task.progress.domain.TrTaskProgress; 4 import com.topdraw.business.module.task.progress.domain.TrTaskProgress;
5 import com.topdraw.business.basicdata.task.progress.service.dto.TrTaskProgressDTO; 5 import com.topdraw.business.module.task.progress.service.dto.TrTaskProgressDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.task.repository; 1 package com.topdraw.business.module.task.repository;
2 2
3 import com.topdraw.business.basicdata.task.domain.Task; 3 import com.topdraw.business.module.task.domain.Task;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
......
1 package com.topdraw.business.basicdata.task.rest; 1 package com.topdraw.business.module.task.rest;
2 2
3 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log; 4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.task.domain.Task; 5 import com.topdraw.business.module.task.domain.Task;
6 import com.topdraw.business.basicdata.task.service.TaskService; 6 import com.topdraw.business.module.task.service.TaskService;
7 import com.topdraw.business.basicdata.task.service.dto.TaskQueryCriteria; 7 import com.topdraw.business.module.task.service.dto.TaskQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable; 9 import org.springframework.data.domain.Pageable;
10 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
......
1 package com.topdraw.business.basicdata.task.service; 1 package com.topdraw.business.module.task.service;
2 2
3 import com.topdraw.business.basicdata.task.domain.Task; 3 import com.topdraw.business.module.task.domain.Task;
4 import com.topdraw.business.basicdata.task.service.dto.TaskDTO; 4 import com.topdraw.business.module.task.service.dto.TaskDTO;
5 import com.topdraw.business.basicdata.task.service.dto.TaskQueryCriteria; 5 import com.topdraw.business.module.task.service.dto.TaskQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
......
1 package com.topdraw.business.basicdata.task.service.dto; 1 package com.topdraw.business.module.task.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
5 import javax.persistence.Column;
6 import java.sql.Timestamp; 5 import java.sql.Timestamp;
7 import java.io.Serializable; 6 import java.io.Serializable;
8 import java.time.LocalDateTime; 7 import java.time.LocalDateTime;
......
1 package com.topdraw.business.basicdata.task.service.dto; 1 package com.topdraw.business.module.task.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
......
1 package com.topdraw.business.basicdata.task.service.impl; 1 package com.topdraw.business.module.task.service.impl;
2 2
3 import com.topdraw.business.basicdata.task.domain.Task; 3 import com.topdraw.business.module.task.domain.Task;
4 import com.topdraw.utils.StringUtils;
5 import com.topdraw.utils.ValidationUtil; 4 import com.topdraw.utils.ValidationUtil;
6 import com.topdraw.business.basicdata.task.repository.TaskRepository; 5 import com.topdraw.business.module.task.repository.TaskRepository;
7 import com.topdraw.business.basicdata.task.service.TaskService; 6 import com.topdraw.business.module.task.service.TaskService;
8 import com.topdraw.business.basicdata.task.service.dto.TaskDTO; 7 import com.topdraw.business.module.task.service.dto.TaskDTO;
9 import com.topdraw.business.basicdata.task.service.dto.TaskQueryCriteria; 8 import com.topdraw.business.module.task.service.dto.TaskQueryCriteria;
10 import com.topdraw.business.basicdata.task.service.mapper.TaskMapper; 9 import com.topdraw.business.module.task.service.mapper.TaskMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.cache.annotation.Cacheable;
13 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
14 import org.springframework.transaction.annotation.Propagation; 12 import org.springframework.transaction.annotation.Propagation;
15 import org.springframework.transaction.annotation.Transactional; 13 import org.springframework.transaction.annotation.Transactional;
......
1 package com.topdraw.business.basicdata.task.service.mapper; 1 package com.topdraw.business.module.task.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.task.domain.Task; 4 import com.topdraw.business.module.task.domain.Task;
5 import com.topdraw.business.basicdata.task.service.dto.TaskDTO; 5 import com.topdraw.business.module.task.service.dto.TaskDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.task.template.domain; 1 package com.topdraw.business.module.task.template.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.task.template.repository; 1 package com.topdraw.business.module.task.template.repository;
2 2
3 import com.topdraw.business.basicdata.task.template.domain.TaskTemplate; 3 import com.topdraw.business.module.task.template.domain.TaskTemplate;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
7 import java.util.List;
7 import java.util.Optional; 8 import java.util.Optional;
8 9
9 /** 10 /**
...@@ -16,5 +17,5 @@ public interface TaskTemplateRepository extends JpaRepository<TaskTemplate, Long ...@@ -16,5 +17,5 @@ public interface TaskTemplateRepository extends JpaRepository<TaskTemplate, Long
16 17
17 TaskTemplate findByEvent(String event); 18 TaskTemplate findByEvent(String event);
18 19
19 TaskTemplate findByType(Integer event); 20 List<TaskTemplate> findByType(Integer event);
20 } 21 }
......
1 package com.topdraw.business.basicdata.task.template.rest; 1 package com.topdraw.business.module.task.template.rest;
2 2
3 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log; 4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.task.template.domain.TaskTemplate; 5 import com.topdraw.business.module.task.template.domain.TaskTemplate;
6 import com.topdraw.business.basicdata.task.template.service.TaskTemplateService; 6 import com.topdraw.business.module.task.template.service.TaskTemplateService;
7 import com.topdraw.business.basicdata.task.template.service.dto.TaskTemplateQueryCriteria; 7 import com.topdraw.business.module.task.template.service.dto.TaskTemplateQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable; 9 import org.springframework.data.domain.Pageable;
10 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
......
1 package com.topdraw.business.basicdata.task.template.service; 1 package com.topdraw.business.module.task.template.service;
2 2
3 import com.topdraw.business.basicdata.task.template.domain.TaskTemplate; 3 import com.topdraw.business.module.task.template.domain.TaskTemplate;
4 import com.topdraw.business.basicdata.task.template.service.dto.TaskTemplateDTO; 4 import com.topdraw.business.module.task.template.service.dto.TaskTemplateDTO;
5 import com.topdraw.business.basicdata.task.template.service.dto.TaskTemplateQueryCriteria; 5 import com.topdraw.business.module.task.template.service.dto.TaskTemplateQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
...@@ -50,5 +50,5 @@ public interface TaskTemplateService { ...@@ -50,5 +50,5 @@ public interface TaskTemplateService {
50 50
51 TaskTemplate findByEvent(String event); 51 TaskTemplate findByEvent(String event);
52 52
53 TaskTemplate findByType(Integer event); 53 List<TaskTemplate> findByType(Integer event);
54 } 54 }
......
1 package com.topdraw.business.basicdata.task.template.service.dto; 1 package com.topdraw.business.module.task.template.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
......
1 package com.topdraw.business.basicdata.task.template.service.dto; 1 package com.topdraw.business.module.task.template.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
......
1 package com.topdraw.business.basicdata.task.template.service.impl; 1 package com.topdraw.business.module.task.template.service.impl;
2 2
3 import com.topdraw.business.basicdata.task.template.domain.TaskTemplate; 3 import com.topdraw.business.module.task.template.domain.TaskTemplate;
4 import com.topdraw.utils.ValidationUtil; 4 import com.topdraw.utils.ValidationUtil;
5 import com.topdraw.business.basicdata.task.template.repository.TaskTemplateRepository; 5 import com.topdraw.business.module.task.template.repository.TaskTemplateRepository;
6 import com.topdraw.business.basicdata.task.template.service.TaskTemplateService; 6 import com.topdraw.business.module.task.template.service.TaskTemplateService;
7 import com.topdraw.business.basicdata.task.template.service.dto.TaskTemplateDTO; 7 import com.topdraw.business.module.task.template.service.dto.TaskTemplateDTO;
8 import com.topdraw.business.basicdata.task.template.service.dto.TaskTemplateQueryCriteria; 8 import com.topdraw.business.module.task.template.service.dto.TaskTemplateQueryCriteria;
9 import com.topdraw.business.basicdata.task.template.service.mapper.TaskTemplateMapper; 9 import com.topdraw.business.module.task.template.service.mapper.TaskTemplateMapper;
10 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.cache.annotation.Cacheable;
12 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation; 12 import org.springframework.transaction.annotation.Propagation;
14 import org.springframework.transaction.annotation.Transactional; 13 import org.springframework.transaction.annotation.Transactional;
...@@ -95,7 +94,7 @@ public class TaskTemplateServiceImpl implements TaskTemplateService { ...@@ -95,7 +94,7 @@ public class TaskTemplateServiceImpl implements TaskTemplateService {
95 94
96 // @Cacheable(cacheNames = "uc-admin_taskTemplate" , key = "#event") 95 // @Cacheable(cacheNames = "uc-admin_taskTemplate" , key = "#event")
97 @Override 96 @Override
98 public TaskTemplate findByType(Integer event) { 97 public List<TaskTemplate> findByType(Integer event) {
99 return Objects.nonNull(event) ? this.TaskTemplateRepository.findByType(event) : null; 98 return Objects.nonNull(event) ? this.TaskTemplateRepository.findByType(event) : null;
100 } 99 }
101 } 100 }
......
1 package com.topdraw.business.basicdata.task.template.service.mapper; 1 package com.topdraw.business.module.task.template.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.task.template.domain.TaskTemplate; 4 import com.topdraw.business.module.task.template.domain.TaskTemplate;
5 import com.topdraw.business.basicdata.task.template.service.dto.TaskTemplateDTO; 5 import com.topdraw.business.module.task.template.service.dto.TaskTemplateDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.module.user.iptv.domain;
2
3 import java.util.Arrays;
4 import java.util.List;
5
6 public interface UserConstant {
7
8 // 电信
9 List<String> platform_lt = Arrays.asList("SC.CTCC","SC.CTC","CTC.ChongQing","ChongQing.CTC","CQ.CTC","CQ.CTCC");
10 // 移动
11 List<String> platform_yd = Arrays.asList("SC.CMCC","CMCC.SC","ChongQing.CMCC","CMCC.ChongQing");
12 // 联通
13 List<String> platform_dx = Arrays.asList("SC.CUCC","");
14
15 }
1 package com.topdraw.business.basicdata.user.iptv.domain; 1 package com.topdraw.business.module.user.iptv.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
...@@ -23,6 +23,10 @@ import java.io.Serializable; ...@@ -23,6 +23,10 @@ import java.io.Serializable;
23 @Table(name="uc_user_tv") 23 @Table(name="uc_user_tv")
24 public class UserTv implements Serializable { 24 public class UserTv implements Serializable {
25 25
26 /** 绑定的小屏账户会员编码 */
27 @Column(name = "priority_member_code")
28 private String priorityMemberCode;
29
26 @Transient 30 @Transient
27 private String memberCode; 31 private String memberCode;
28 32
...@@ -119,6 +123,6 @@ public class UserTv implements Serializable { ...@@ -119,6 +123,6 @@ public class UserTv implements Serializable {
119 private Long memberId; 123 private Long memberId;
120 124
121 public void copy(UserTv source){ 125 public void copy(UserTv source){
122 BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); 126 BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(false));
123 } 127 }
124 } 128 }
......
1 package com.topdraw.business.basicdata.user.iptv.repository; 1 package com.topdraw.business.module.user.iptv.repository;
2 2
3 import com.topdraw.business.basicdata.user.iptv.domain.UserTv; 3 import com.topdraw.business.module.user.iptv.domain.UserTv;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
...@@ -13,4 +13,6 @@ import java.util.Optional; ...@@ -13,4 +13,6 @@ import java.util.Optional;
13 public interface UserTvRepository extends JpaRepository<UserTv, Long>, JpaSpecificationExecutor<UserTv> { 13 public interface UserTvRepository extends JpaRepository<UserTv, Long>, JpaSpecificationExecutor<UserTv> {
14 14
15 Optional<UserTv> findByPlatformAccount(String platformAccount); 15 Optional<UserTv> findByPlatformAccount(String platformAccount);
16
17 Optional<UserTv> findByPriorityMemberCode(String memberCode);
16 } 18 }
......
1 package com.topdraw.business.basicdata.user.iptv.rest; 1 package com.topdraw.business.module.user.iptv.rest;
2 2
3 import com.topdraw.business.basicdata.member.domain.Member;
4 import com.topdraw.business.basicdata.member.service.MemberService;
5 import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvDTO;
6 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
7 import com.topdraw.annotation.Log; 4 import com.topdraw.annotation.Log;
8 import com.topdraw.business.basicdata.user.iptv.domain.UserTv; 5 import com.topdraw.business.module.user.iptv.domain.UserTv;
9 import com.topdraw.business.basicdata.user.iptv.service.UserTvService; 6 import com.topdraw.business.module.user.iptv.service.UserTvService;
10 import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvQueryCriteria; 7 import com.topdraw.business.module.user.iptv.service.dto.UserTvQueryCriteria;
11 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.data.domain.Pageable; 9 import org.springframework.data.domain.Pageable;
13 import org.springframework.http.HttpStatus;
14 import org.springframework.http.ResponseEntity;
15 import org.springframework.util.Assert;
16 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
17 import org.springframework.web.bind.annotation.*; 11 import org.springframework.web.bind.annotation.*;
18 import io.swagger.annotations.*; 12 import io.swagger.annotations.*;
19 import java.io.IOException;
20 import java.util.Objects;
21 import javax.servlet.http.HttpServletResponse;
22 13
23 /** 14 /**
24 * @author XiangHan 15 * @author XiangHan
......
1 package com.topdraw.business.basicdata.user.iptv.service; 1 package com.topdraw.business.module.user.iptv.service;
2 2
3 import com.topdraw.business.basicdata.user.iptv.domain.UserTv; 3 import com.topdraw.business.module.user.iptv.domain.UserTv;
4 import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvDTO; 4 import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO;
5 import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvQueryCriteria; 5 import com.topdraw.business.module.user.iptv.service.dto.UserTvQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
9 import java.io.IOException;
10 import javax.servlet.http.HttpServletResponse;
11 9
12 /** 10 /**
13 * @author XiangHan 11 * @author XiangHan
...@@ -45,5 +43,5 @@ public interface UserTvService { ...@@ -45,5 +43,5 @@ public interface UserTvService {
45 43
46 UserTvDTO findByPlatformAccount(String platformAccount); 44 UserTvDTO findByPlatformAccount(String platformAccount);
47 45
48 46 UserTvDTO findByPriorityMemberCode(String memberCode);
49 } 47 }
......
1 package com.topdraw.business.basicdata.user.iptv.service.dto; 1 package com.topdraw.business.module.user.iptv.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import java.sql.Timestamp; 4 import java.sql.Timestamp;
...@@ -12,6 +12,9 @@ import java.io.Serializable; ...@@ -12,6 +12,9 @@ import java.io.Serializable;
12 @Data 12 @Data
13 public class UserTvDTO implements Serializable { 13 public class UserTvDTO implements Serializable {
14 14
15 /** 绑定的小屏账户会员编码 */
16 private String priorityMemberCode;
17
15 // ID 18 // ID
16 private Long id; 19 private Long id;
17 20
......
1 package com.topdraw.business.basicdata.user.iptv.service.dto; 1 package com.topdraw.business.module.user.iptv.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import com.topdraw.annotation.Query;
5 4
6 /** 5 /**
7 * @author XiangHan 6 * @author XiangHan
......
1 package com.topdraw.business.basicdata.user.iptv.service.impl; 1 package com.topdraw.business.module.user.iptv.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import com.topdraw.aspect.AsyncMqSend;
4 import com.topdraw.business.basicdata.member.domain.Member; 4 import com.topdraw.business.module.member.service.MemberService;
5 import com.topdraw.business.basicdata.member.service.MemberService; 5 import com.topdraw.business.module.member.service.dto.MemberDTO;
6 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 6 import com.topdraw.business.module.user.iptv.domain.UserTv;
7 import com.topdraw.business.basicdata.user.iptv.domain.UserTv;
8 import com.topdraw.config.LocalConstants;
9 import com.topdraw.util.IdWorker;
10 import com.topdraw.util.RedissonUtil;
11 import com.topdraw.util.TimestampUtil;
12 import com.topdraw.utils.StringUtils;
13 import com.topdraw.utils.ValidationUtil; 7 import com.topdraw.utils.ValidationUtil;
14 import com.topdraw.business.basicdata.user.iptv.repository.UserTvRepository; 8 import com.topdraw.business.module.user.iptv.repository.UserTvRepository;
15 import com.topdraw.business.basicdata.user.iptv.service.UserTvService; 9 import com.topdraw.business.module.user.iptv.service.UserTvService;
16 import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvDTO; 10 import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO;
17 import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvQueryCriteria; 11 import com.topdraw.business.module.user.iptv.service.dto.UserTvQueryCriteria;
18 import com.topdraw.business.basicdata.user.iptv.service.mapper.UserTvMapper; 12 import com.topdraw.business.module.user.iptv.service.mapper.UserTvMapper;
19 import org.redisson.api.RLock;
20 import org.redisson.api.RedissonClient;
21 import org.springframework.beans.BeanUtils;
22 import org.springframework.beans.factory.annotation.Autowired; 13 import org.springframework.beans.factory.annotation.Autowired;
23 import org.springframework.stereotype.Service; 14 import org.springframework.stereotype.Service;
24 import org.springframework.transaction.annotation.Propagation; 15 import org.springframework.transaction.annotation.Propagation;
...@@ -114,5 +105,15 @@ public class UserTvServiceImpl implements UserTvService { ...@@ -114,5 +105,15 @@ public class UserTvServiceImpl implements UserTvService {
114 return null; 105 return null;
115 } 106 }
116 107
108 @Override
109 public UserTvDTO findByPriorityMemberCode(String memberCode) {
110 Optional<UserTv> userTv = UserTvRepository.findByPriorityMemberCode(memberCode);
111 if (userTv.isPresent()) {
112 ValidationUtil.isNull( userTv.get().getId(),"UserTv","id",userTv.get().getId());
113 return UserTvMapper.toDto(userTv.get());
114 }
115 return null;
116 }
117
117 118
118 } 119 }
......
1 package com.topdraw.business.basicdata.user.iptv.service.mapper; 1 package com.topdraw.business.module.user.iptv.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.user.iptv.domain.UserTv; 4 import com.topdraw.business.module.user.iptv.domain.UserTv;
5 import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvDTO; 5 import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
1 package com.topdraw.business.basicdata.user.weixin.domain; 1 package com.topdraw.business.module.user.weixin.domain;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
......
1 package com.topdraw.business.basicdata.user.weixin.repository; 1 package com.topdraw.business.module.user.weixin.repository;
2 2
3 import com.topdraw.business.basicdata.user.weixin.domain.UserWeixin; 3 import com.topdraw.business.module.user.weixin.domain.UserWeixin;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 6
...@@ -12,4 +12,13 @@ import java.util.Optional; ...@@ -12,4 +12,13 @@ import java.util.Optional;
12 */ 12 */
13 public interface UserWeixinRepository extends JpaRepository<UserWeixin, Long>, JpaSpecificationExecutor<UserWeixin> { 13 public interface UserWeixinRepository extends JpaRepository<UserWeixin, Long>, JpaSpecificationExecutor<UserWeixin> {
14 14
15 Optional<UserWeixin> findFirstByMemberIdAndAppid(Long memberId, String appid);
16
17 Optional<UserWeixin> findFirstByUnionidAndAppidAndOpenid(String unionId, String appId, String openId);
18
19 Optional<UserWeixin> findFirstByAppidAndOpenid(String appId, String openId);
20
21 Optional<UserWeixin> findFirstByUnionid(String unionid);
22
23 Optional<UserWeixin> findFirstByUnionidAndAppid(String unionid, String appId);
15 } 24 }
......
1 package com.topdraw.business.basicdata.user.weixin.rest; 1 package com.topdraw.business.module.user.weixin.rest;
2 2
3 import com.topdraw.common.ResultInfo; 3 import com.topdraw.common.ResultInfo;
4 import com.topdraw.annotation.Log; 4 import com.topdraw.annotation.Log;
5 import com.topdraw.business.basicdata.user.weixin.domain.UserWeixin; 5 import com.topdraw.business.module.user.weixin.domain.UserWeixin;
6 import com.topdraw.business.basicdata.user.weixin.service.UserWeixinService; 6 import com.topdraw.business.module.user.weixin.service.UserWeixinService;
7 import com.topdraw.business.basicdata.user.weixin.service.dto.UserWeixinQueryCriteria; 7 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinQueryCriteria;
8 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.data.domain.Pageable; 9 import org.springframework.data.domain.Pageable;
10 import org.springframework.http.HttpStatus;
11 import org.springframework.http.ResponseEntity;
12 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
13 import org.springframework.web.bind.annotation.*; 11 import org.springframework.web.bind.annotation.*;
14 import io.swagger.annotations.*; 12 import io.swagger.annotations.*;
15 import java.io.IOException;
16 import javax.servlet.http.HttpServletResponse;
17 13
18 /** 14 /**
19 * @author XiangHan 15 * @author XiangHan
......
1 package com.topdraw.business.basicdata.user.weixin.service; 1 package com.topdraw.business.module.user.weixin.service;
2 2
3 import com.topdraw.business.basicdata.user.weixin.domain.UserWeixin; 3 import com.topdraw.business.module.user.weixin.domain.UserWeixin;
4 import com.topdraw.business.basicdata.user.weixin.service.dto.UserWeixinDTO; 4 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO;
5 import com.topdraw.business.basicdata.user.weixin.service.dto.UserWeixinQueryCriteria; 5 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinQueryCriteria;
6 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
7 import java.util.Map; 7 import java.util.Map;
8 import java.util.List; 8 import java.util.List;
9 import java.io.IOException; 9 import java.util.Optional;
10 import javax.servlet.http.HttpServletResponse;
11 10
12 /** 11 /**
13 * @author XiangHan 12 * @author XiangHan
...@@ -37,10 +36,19 @@ public interface UserWeixinService { ...@@ -37,10 +36,19 @@ public interface UserWeixinService {
37 */ 36 */
38 UserWeixinDTO findById(Long id); 37 UserWeixinDTO findById(Long id);
39 38
40 void create(UserWeixin resources); 39 UserWeixin create(UserWeixin resources);
41 40
42 void update(UserWeixin resources); 41 void update(UserWeixin resources);
43 42
44 void delete(Long id); 43 void delete(Long id);
45 44
45 UserWeixinDTO findFirstByMemberIdAndAppid(Long memberId, String appid);
46
47 UserWeixinDTO findFirstByUnionIdAndAppIdAndOpenId(String unionId, String appId, String openId);
48
49 UserWeixinDTO findFirstByAppIdAndOpenId(String appId, String openId);
50
51 UserWeixinDTO findFirstByUnionId(String unionid);
52
53 UserWeixinDTO findFirstByUnionidAndAppid(String unionid, String appId);
46 } 54 }
......
1 package com.topdraw.business.basicdata.user.weixin.service.dto; 1 package com.topdraw.business.module.user.weixin.service.dto;
2 2
3 import lombok.AllArgsConstructor;
4 import lombok.Builder;
3 import lombok.Data; 5 import lombok.Data;
6 import lombok.NoArgsConstructor;
7
4 import java.sql.Timestamp; 8 import java.sql.Timestamp;
5 import java.io.Serializable; 9 import java.io.Serializable;
6 10
......
1 package com.topdraw.business.basicdata.user.weixin.service.dto; 1 package com.topdraw.business.module.user.weixin.service.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import com.topdraw.annotation.Query;
5 4
6 /** 5 /**
7 * @author XiangHan 6 * @author XiangHan
...@@ -9,4 +8,7 @@ import com.topdraw.annotation.Query; ...@@ -9,4 +8,7 @@ import com.topdraw.annotation.Query;
9 */ 8 */
10 @Data 9 @Data
11 public class UserWeixinQueryCriteria{ 10 public class UserWeixinQueryCriteria{
11
12
13
12 } 14 }
......
1 package com.topdraw.business.basicdata.user.weixin.service.impl; 1 package com.topdraw.business.module.user.weixin.service.impl;
2 2
3 import com.topdraw.business.basicdata.user.weixin.domain.UserWeixin; 3 import com.topdraw.business.module.user.weixin.domain.UserWeixin;
4 import com.topdraw.utils.ValidationUtil; 4 import com.topdraw.utils.ValidationUtil;
5 import com.topdraw.utils.FileUtil; 5 import com.topdraw.business.module.user.weixin.repository.UserWeixinRepository;
6 import com.topdraw.business.basicdata.user.weixin.repository.UserWeixinRepository; 6 import com.topdraw.business.module.user.weixin.service.UserWeixinService;
7 import com.topdraw.business.basicdata.user.weixin.service.UserWeixinService; 7 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO;
8 import com.topdraw.business.basicdata.user.weixin.service.dto.UserWeixinDTO; 8 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinQueryCriteria;
9 import com.topdraw.business.basicdata.user.weixin.service.dto.UserWeixinQueryCriteria; 9 import com.topdraw.business.module.user.weixin.service.mapper.UserWeixinMapper;
10 import com.topdraw.business.basicdata.user.weixin.service.mapper.UserWeixinMapper;
11 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation; 12 import org.springframework.transaction.annotation.Propagation;
...@@ -18,14 +17,9 @@ import org.springframework.data.domain.Pageable; ...@@ -18,14 +17,9 @@ import org.springframework.data.domain.Pageable;
18 import org.springframework.util.Assert; 17 import org.springframework.util.Assert;
19 import com.topdraw.utils.PageUtil; 18 import com.topdraw.utils.PageUtil;
20 import com.topdraw.utils.QueryHelp; 19 import com.topdraw.utils.QueryHelp;
21 import com.topdraw.utils.StringUtils;
22 20
23 import java.util.List; 21 import java.util.List;
24 import java.util.Map; 22 import java.util.Map;
25 import java.io.IOException;
26 import javax.servlet.http.HttpServletResponse;
27 import java.util.ArrayList;
28 import java.util.LinkedHashMap;
29 23
30 /** 24 /**
31 * @author XiangHan 25 * @author XiangHan
...@@ -61,8 +55,9 @@ public class UserWeixinServiceImpl implements UserWeixinService { ...@@ -61,8 +55,9 @@ public class UserWeixinServiceImpl implements UserWeixinService {
61 55
62 @Override 56 @Override
63 @Transactional(rollbackFor = Exception.class) 57 @Transactional(rollbackFor = Exception.class)
64 public void create(UserWeixin resources) { 58 public UserWeixin create(UserWeixin resources) {
65 UserWeixinRepository.save(resources); 59 UserWeixinRepository.save(resources);
60 return resources;
66 } 61 }
67 62
68 @Override 63 @Override
...@@ -83,5 +78,36 @@ public class UserWeixinServiceImpl implements UserWeixinService { ...@@ -83,5 +78,36 @@ public class UserWeixinServiceImpl implements UserWeixinService {
83 UserWeixinRepository.delete(UserWeixin); 78 UserWeixinRepository.delete(UserWeixin);
84 } 79 }
85 80
81 @Override
82 public UserWeixinDTO findFirstByMemberIdAndAppid(Long memberId, String appid) {
83 UserWeixin userWeixin = this.UserWeixinRepository.findFirstByMemberIdAndAppid(memberId, appid).orElseGet(UserWeixin::new);
84 ValidationUtil.isNull(userWeixin.getId(),"UserWeixin","id",memberId);
85 return UserWeixinMapper.toDto(userWeixin);
86 }
87
88 @Override
89 public UserWeixinDTO findFirstByUnionIdAndAppIdAndOpenId(String unionId, String appId, String openId) {
90 UserWeixin userWeixin = this.UserWeixinRepository.findFirstByUnionidAndAppidAndOpenid(unionId, appId,openId).orElseGet(UserWeixin::new);
91 return UserWeixinMapper.toDto(userWeixin);
92 }
93
94 @Override
95 public UserWeixinDTO findFirstByAppIdAndOpenId(String appId, String openId) {
96 UserWeixin userWeixin = this.UserWeixinRepository.findFirstByAppidAndOpenid(appId,openId).orElseGet(UserWeixin::new);
97 return UserWeixinMapper.toDto(userWeixin);
98 }
99
100 @Override
101 public UserWeixinDTO findFirstByUnionId(String unionid) {
102 UserWeixin userWeixin = this.UserWeixinRepository.findFirstByUnionid(unionid).orElseGet(UserWeixin::new);
103 return UserWeixinMapper.toDto(userWeixin);
104 }
105
106 @Override
107 public UserWeixinDTO findFirstByUnionidAndAppid(String unionid, String appId) {
108 UserWeixin userWeixin = this.UserWeixinRepository.findFirstByUnionidAndAppid(unionid,appId).orElseGet(UserWeixin::new);
109 return UserWeixinMapper.toDto(userWeixin);
110 }
111
86 112
87 } 113 }
......
1 package com.topdraw.business.basicdata.user.weixin.service.mapper; 1 package com.topdraw.business.module.user.weixin.service.mapper;
2 2
3 import com.topdraw.base.BaseMapper; 3 import com.topdraw.base.BaseMapper;
4 import com.topdraw.business.basicdata.user.weixin.domain.UserWeixin; 4 import com.topdraw.business.module.user.weixin.domain.UserWeixin;
5 import com.topdraw.business.basicdata.user.weixin.service.dto.UserWeixinDTO; 5 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.ReportingPolicy; 7 import org.mapstruct.ReportingPolicy;
8 8
......
...@@ -5,6 +5,8 @@ import lombok.Data; ...@@ -5,6 +5,8 @@ import lombok.Data;
5 import lombok.NoArgsConstructor; 5 import lombok.NoArgsConstructor;
6 6
7 import javax.persistence.Transient; 7 import javax.persistence.Transient;
8 import javax.validation.constraints.NotNull;
9 import java.sql.Timestamp;
8 10
9 @Data 11 @Data
10 @AllArgsConstructor 12 @AllArgsConstructor
...@@ -13,6 +15,7 @@ public class TempIptvUser { ...@@ -13,6 +15,7 @@ public class TempIptvUser {
13 15
14 // 账户 16 // 账户
15 @Transient 17 @Transient
18 @NotNull(message = "platformAccount can't be null",groups = UnbindGroup.class)
16 private String platformAccount; 19 private String platformAccount;
17 20
18 // 分数 21 // 分数
...@@ -20,5 +23,72 @@ public class TempIptvUser { ...@@ -20,5 +23,72 @@ public class TempIptvUser {
20 private Long points; 23 private Long points;
21 24
22 25
26 // ID
27 private Long id;
28
29 // 人ID
30 private Long personId;
31
32 // 运营商平台
33 private String platform;
34
35 // 手机号
36 private String cellphone;
37
38 // 用户名
39 private String username;
40
41 // 密码 MD5
42 private String password;
43
44 // 昵称 Base64
45 private String nickname;
46
47 // 头像
48 private String image;
49
50 // 登录天数(总天数)
51 private Integer loginDays;
52
53 // 连续登录天数
54 private Integer continueDays;
55
56 // 活跃时间
57 private Timestamp activeTime;
58
59 // 分组 分组ID用逗号分隔
60 private String groups;
61
62 // 标签 标签用逗号分隔
63 private String tags;
64
65 // 登录类型 1-运营商隐式登录 2-手机验证登录 3-微信登录 4-QQ登录 5-微博登录 6-苹果登录
66 private Integer loginType;
67
68 // 状态 0-下线 1-上线
69 private Integer status;
70
71 // 描述
72 private String description;
73
74 // 创建者
75 private String createBy;
76
77 // 创建时间
78 private Timestamp createTime;
79
80 // 更新者
81 private String updateBy;
82
83 // 更新时间
84 private Timestamp updateTime;
85
86 // 会员id
87 private Long memberId;
88
89 // 会员编码
90 @NotNull(message = "memberCode can't be null",groups = UnbindGroup.class)
91 private String memberCode;
92
23 93
24 } 94 }
......
1 package com.topdraw.business.process.domian;
2
3 public interface UnbindGroup {
4 }
1 package com.topdraw.business.process.domian.result;
2
3 public interface TaskTemplateType {
4
5 int TYPE_1 = 1;
6 int TYPE_2 = 2;
7 int TYPE_3 = 3;
8 int TYPE_4 = 4;
9
10 }
1 package com.topdraw.business.process.domian.weixin;
2
3
4 import lombok.Data;
5
6 /**
7 * 微信账户信息
8 * @author XiangHan
9 * @date 2021-01-18
10 */
11 @Data
12 public class BuyVipBean extends WeiXinUserBean {
13
14 private Integer vip;
15 }
1 package com.topdraw.business.process.domian.weixin;
2
3
4 import com.alibaba.fastjson.JSONObject;
5 import lombok.Data;
6
7 @Data
8 public class SubscribeBean extends WeiXinUserBean {
9
10 private JSONObject userInfoJson;
11
12 private JSONObject iptvUserInfo;
13
14 private String msgType;
15
16 private String event;
17
18 private String eventKey;
19
20 }
1 package com.topdraw.business.process.domian.weixin;
2
3 import lombok.AllArgsConstructor;
4 import lombok.Data;
5 import lombok.NoArgsConstructor;
6
7 import javax.validation.constraints.NotNull;
8
9 @Data
10 @AllArgsConstructor
11 @NoArgsConstructor
12 public class SubscribeBeanEvent {
13
14 @NotNull(message = "【content】 not be null !!!")
15 private String content;
16
17 }
1 package com.topdraw.business.process.domian.weixin;
2
3
4 import lombok.Data;
5
6 /**
7 * 微信账户信息
8 * @author XiangHan
9 * @date 2021-01-18
10 */
11 @Data
12 public class WeiXinUserBean {
13
14 private Long id;
15
16 private String unionId;
17
18 /** */
19 private String openId;
20
21 /** */
22 private String appId;
23
24 /** 加密后的appId,参数 */
25 private String wxAppid;
26
27 /** 加密后的code,参数 */
28 private String wxCode;
29
30 /** */
31 private String userInfo;
32
33 /** 会员id */
34 private Long memberId;
35
36 /** 加密信息 */
37 private String encryptedData;
38
39 /** 解析用户电话号码时使用,参数 */
40 private String iv;
41
42 /** 资源id */
43 private String sourceId;
44
45 /** 资源类型 */
46 private String sourceType;
47
48 /** 资源描述,用来表示从哪个地方链接进来的 */
49 private String sourceDesc;
50
51 /** 资源实例 */
52 private String sourceEntity;
53
54 /** 推荐者id */
55 private Long sourceUser;
56 }
1 package com.topdraw.business.process.rest;
2
3 import com.topdraw.annotation.Log;
4 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
5 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinQueryCriteria;
6 import com.topdraw.business.process.domian.weixin.BuyVipBean;
7 import com.topdraw.business.process.domian.weixin.WeiXinUserBean;
8 import com.topdraw.business.process.service.MemberOperationService;
9 import com.topdraw.common.IResultInfo;
10 import com.topdraw.common.ResultInfo;
11 import io.swagger.annotations.Api;
12 import io.swagger.annotations.ApiOperation;
13 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.web.bind.annotation.*;
15
16 @Api("会员处理")
17 @RestController
18 @RequestMapping(value = "/ucEngine/api/memberOperation")
19 public class MemberOperationController {
20
21 @Autowired
22 private MemberOperationService memberOperationService;
23
24 @Log("获取会员加密信息并且检查vip状态")
25 @GetMapping("/getMemberProfileAndCheckVip/{memberId}/{appid}")
26 @ApiOperation("获取会员加密信息并且检查vip状态")
27 public IResultInfo getMemberProfileAndCheckVip(@PathVariable Long memberId, @PathVariable String appid) {
28 MemberProfileDTO memberProfileDTO = this.memberOperationService.getMemberProfileAndCheckVip(memberId, appid);
29 return ResultInfo.success(memberProfileDTO);
30 }
31
32 @Log("购买vip")
33 @PutMapping("/buyVip")
34 @ApiOperation("购买vip")
35 public ResultInfo buyVip(@RequestBody BuyVipBean buyVipBean) {
36 memberOperationService.buyVip(buyVipBean);
37 return ResultInfo.success();
38 }
39 }
40
41
1 package com.topdraw.business.process.rest; 1 package com.topdraw.business.process.rest;
2 2
3 import com.topdraw.annotation.Log; 3 import com.topdraw.annotation.Log;
4 import com.topdraw.business.basicdata.member.domain.Member; 4 import com.topdraw.business.module.member.service.MemberService;
5 import com.topdraw.business.basicdata.member.service.MemberService; 5 import com.topdraw.business.module.member.service.dto.MemberDTO;
6 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 6 import com.topdraw.business.module.points.available.service.PointsAvailableService;
7 import com.topdraw.business.basicdata.points.available.service.PointsAvailableService; 7 import com.topdraw.business.module.points.available.service.dto.PointsAvailableQueryCriteria;
8 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableQueryCriteria; 8 import com.topdraw.business.module.points.available.service.dto.PointsAvailableQueryType;
9 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableQueryType; 9 import com.topdraw.business.module.points.detail.service.PointsDetailService;
10 import com.topdraw.business.basicdata.points.detail.service.PointsDetailService; 10 import com.topdraw.business.module.points.detail.service.dto.PointsDetailQueryCriteria;
11 import com.topdraw.business.basicdata.points.detail.service.dto.PointsDetailQueryCriteria; 11 import com.topdraw.business.module.user.iptv.service.UserTvService;
12 import com.topdraw.business.basicdata.user.iptv.domain.UserTv; 12 import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO;
13 import com.topdraw.business.basicdata.user.iptv.service.UserTvService; 13 import com.topdraw.business.module.user.weixin.service.UserWeixinService;
14 import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvDTO; 14 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO;
15 import com.topdraw.business.basicdata.user.weixin.service.UserWeixinService;
16 import com.topdraw.business.basicdata.user.weixin.service.dto.UserWeixinDTO;
17 import com.topdraw.business.process.domian.TempIptvUser; 15 import com.topdraw.business.process.domian.TempIptvUser;
18 import com.topdraw.business.process.domian.TempPoints; 16 import com.topdraw.business.process.domian.TempPoints;
19 import com.topdraw.business.process.domian.result.CustomPointsResult; 17 import com.topdraw.business.process.domian.result.CustomPointsResult;
20 import com.topdraw.business.process.service.PointsOperationService; 18 import com.topdraw.business.process.service.PointsOperationService;
21 import com.topdraw.business.process.service.UserTvOperationService;
22 import com.topdraw.common.ResultCode;
23 import com.topdraw.common.ResultInfo; 19 import com.topdraw.common.ResultInfo;
24 import com.topdraw.config.LocalConstants; 20 import com.topdraw.config.LocalConstants;
25 import com.topdraw.util.TimestampUtil; 21 import com.topdraw.util.TimestampUtil;
26 import io.swagger.annotations.Api; 22 import io.swagger.annotations.Api;
27 import io.swagger.annotations.ApiOperation; 23 import io.swagger.annotations.ApiOperation;
28 import lombok.Data;
29 import org.redisson.api.RedissonClient;
30 import org.slf4j.Logger; 24 import org.slf4j.Logger;
31 import org.slf4j.LoggerFactory; 25 import org.slf4j.LoggerFactory;
32 import org.springframework.beans.factory.annotation.Autowired; 26 import org.springframework.beans.factory.annotation.Autowired;
33 import org.springframework.data.domain.Pageable; 27 import org.springframework.data.domain.Pageable;
34 import org.springframework.util.Assert; 28 import org.springframework.util.Assert;
35 import org.springframework.util.CollectionUtils;
36 import org.springframework.validation.annotation.Validated; 29 import org.springframework.validation.annotation.Validated;
37 import org.springframework.web.bind.annotation.*; 30 import org.springframework.web.bind.annotation.*;
38 31
39 import java.util.Arrays; 32 import java.util.Arrays;
40 import java.util.List;
41 import java.util.Objects; 33 import java.util.Objects;
42 34
43 /** 35 /**
......
1 package com.topdraw.business.process.rest; 1 package com.topdraw.business.process.rest;
2 2
3 import com.topdraw.business.basicdata.rights.history.domain.RightsHistory; 3 import com.topdraw.business.module.rights.history.domain.RightsHistory;
4 import com.topdraw.business.basicdata.rights.history.service.RightsHistoryService; 4 import com.topdraw.business.module.rights.history.service.RightsHistoryService;
5 import com.topdraw.business.basicdata.rights.history.service.dto.RightsHistoryQueryCriteria; 5 import com.topdraw.business.module.rights.history.service.dto.RightsHistoryQueryCriteria;
6 import com.topdraw.business.basicdata.rights.history.service.dto.RightsHistoryQueryType; 6 import com.topdraw.business.module.rights.history.service.dto.RightsHistoryQueryType;
7 import com.topdraw.business.process.service.RightsOperationService; 7 import com.topdraw.business.process.service.RightsOperationService;
8 import com.topdraw.common.ResultInfo; 8 import com.topdraw.common.ResultInfo;
9 import com.topdraw.util.TimestampUtil; 9 import com.topdraw.util.TimestampUtil;
......
...@@ -43,6 +43,7 @@ public class TaskOperationController { ...@@ -43,6 +43,7 @@ public class TaskOperationController {
43 @Log 43 @Log
44 @PostMapping(value = "/createPoint4ChongQing") 44 @PostMapping(value = "/createPoint4ChongQing")
45 @ApiOperation("针对重庆大屏20211220号的积分兑换活动专门定制的接口") 45 @ApiOperation("针对重庆大屏20211220号的积分兑换活动专门定制的接口")
46 @Deprecated
46 public ResultInfo createPoint4ChongQing(@RequestBody TempIptvUser tempIptvUser){ 47 public ResultInfo createPoint4ChongQing(@RequestBody TempIptvUser tempIptvUser){
47 String platformAccount = tempIptvUser.getPlatformAccount(); 48 String platformAccount = tempIptvUser.getPlatformAccount();
48 Long points = tempIptvUser.getPoints(); 49 Long points = tempIptvUser.getPoints();
......
1 package com.topdraw.business.process.rest;
2
3 import com.alibaba.druid.support.json.JSONUtils;
4 import com.alibaba.fastjson.JSON;
5 import com.alibaba.fastjson.JSONObject;
6 import com.topdraw.annotation.AnonymousAccess;
7 import com.topdraw.annotation.Log;
8 import com.topdraw.business.module.member.profile.domain.MemberProfile;
9 import com.topdraw.business.module.user.iptv.domain.UserTv;
10 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO;
11 import com.topdraw.business.process.domian.TempIptvUser;
12 import com.topdraw.business.process.domian.UnbindGroup;
13 import com.topdraw.business.process.domian.weixin.SubscribeBean;
14 import com.topdraw.business.process.domian.weixin.SubscribeBeanEvent;
15 import com.topdraw.business.process.domian.weixin.WeiXinUserBean;
16 import com.topdraw.business.process.service.UserOperationService;
17 import com.topdraw.common.ResultInfo;
18 import com.topdraw.module.mq.DataSyncMsg;
19 import com.topdraw.util.JSONUtil;
20 import io.swagger.annotations.Api;
21 import io.swagger.annotations.ApiOperation;
22 import lombok.extern.slf4j.Slf4j;
23 import org.springframework.beans.BeanUtils;
24 import org.springframework.beans.factory.annotation.Autowired;
25 import org.springframework.validation.annotation.Validated;
26 import org.springframework.web.bind.annotation.*;
27
28 @Api("账户处理")
29 @RestController
30 @RequestMapping(value = "/ucEngine/api/userOperation")
31 @Slf4j
32 public class UserOperationController {
33
34 @Autowired
35 private UserOperationService userTvOperationService;
36
37 @Log("带参二维码")
38 @PostMapping(value = "/sendQrCodeMessage")
39 @ApiOperation("带参二维码")
40 @AnonymousAccess
41 public ResultInfo sendQrCodeMessage(@RequestBody String content) {
42 log.info("resources :[{}]",content);
43 boolean result = true;
44 return ResultInfo.success(result);
45 }
46
47 @Log("删除全部收藏")
48 @PostMapping(value = "/deleteAllCollection")
49 @ApiOperation("删除全部收藏")
50 @AnonymousAccess
51 public ResultInfo deleteAllCollection(@RequestBody String content) {
52 log.info("resources :[{}]",content);
53 boolean result = true;
54 return ResultInfo.success(result);
55 }
56
57 @Log("删除收藏")
58 @PostMapping(value = "/deleteCollection")
59 @ApiOperation("删除收藏")
60 @AnonymousAccess
61 public ResultInfo deleteCollection(@RequestBody String content) {
62 log.info("resources :[{}]",content);
63 boolean result = true;
64 return ResultInfo.success(result);
65 }
66
67 @Log("添加收藏")
68 @PostMapping(value = "/addCollection")
69 @ApiOperation("添加收藏")
70 @AnonymousAccess
71 public ResultInfo addCollection(@RequestBody String content) {
72 log.info("resources :[{}]",content);
73 boolean result = true;
74 return ResultInfo.success(result);
75 }
76
77 @Log("新增大屏账户同时创建会员信息")
78 @PostMapping(value = "/createUserAndCreateMember")
79 @ApiOperation("新增大屏账户同时创建会员信息")
80 public ResultInfo createUserAndCreateMember(@Validated @RequestBody TempIptvUser resources) {
81 UserTv userTv = new UserTv();
82 BeanUtils.copyProperties(resources,userTv);
83 this.userTvOperationService.createMemberByUserTv(userTv);
84 return ResultInfo.success();
85 }
86
87 @Log("大屏用户解绑")
88 @PutMapping(value = "/unbind")
89 @ApiOperation("大屏用户解绑")
90 public ResultInfo unbind(@Validated(value = {UnbindGroup.class}) @RequestBody TempIptvUser resources) {
91 UserTv userTv = new UserTv();
92 BeanUtils.copyProperties(resources,userTv);
93 this.userTvOperationService.unbind(userTv);
94 return ResultInfo.success();
95 }
96
97 @Log("大屏更换主账号")
98 @PutMapping(value = "/changeMainAccount")
99 @ApiOperation("大屏更换主账号")
100 public ResultInfo changeMainAccount(@Validated(value = {UnbindGroup.class}) @RequestBody TempIptvUser resources) {
101 UserTv userTv = new UserTv();
102 BeanUtils.copyProperties(resources,userTv);
103 this.userTvOperationService.changeMainAccount(userTv);
104 return ResultInfo.success("update success");
105 }
106
107 @Log("微信小程序登录")
108 @PostMapping("/appletLogin")
109 @ApiOperation("微信小程序登录")
110 public ResultInfo appletLogin(@Validated @RequestBody WeiXinUserBean resources) {
111 UserWeixinDTO result = this.userTvOperationService.appletLogin(resources);
112 return ResultInfo.success(result);
113 }
114
115 @Log("微信公众号关注")
116 @PostMapping("/subscribe")
117 @ApiOperation("微信公众号关注")
118 @AnonymousAccess
119 public ResultInfo subscribe(@Validated @RequestBody SubscribeBeanEvent data) {
120 String content = data.getContent();
121 SubscribeBean subscribeBean = JSONUtil.parseMsg2Object(content, SubscribeBean.class);
122 boolean result = this.userTvOperationService.subscribe(subscribeBean);
123 return ResultInfo.success(result);
124 }
125
126 @Log("微信公众号取关")
127 @PostMapping("/unsubscribe")
128 @ApiOperation("微信公众号取关")
129 @AnonymousAccess
130 public ResultInfo unsubscribe(@Validated @RequestBody SubscribeBeanEvent data) {
131 String content = data.getContent();
132 SubscribeBean subscribeBean = JSONUtil.parseMsg2Object(content, SubscribeBean.class);
133 boolean result = this.userTvOperationService.unsubscribe(subscribeBean);
134 return ResultInfo.success(result);
135 }
136
137 /**
138 * @param data
139 * @description 通过大屏关注的订阅号,因为订阅号不支持带参二维码,
140 * 所以需要先跳到H5(带大屏参数),
141 * 再做服务号授权(订阅号只能按钮触发获取信息),
142 * 再将服务号信息和大屏参数缓存下来(该接口的功能)
143 * 然后跳转到订阅号关注页
144 * 关注后回调处理时,根据unionid进行相关逻辑
145 * @author Hongyan Wang
146 * @date 2021/8/24 4:54 下午
147 */
148 @PostMapping(value = "/saveUserInfo")
149 @ApiOperation("保存大屏侧信息")
150 public ResultInfo saveUserInfo(@RequestBody String data) {
151 String s = this.userTvOperationService.saveUserInfo(data);
152 return ResultInfo.success(s);
153 }
154
155 @Log("保存用户手机号信息")
156 @PostMapping(value = "/saveUserWeixinPhone")
157 @ApiOperation("保存用户手机号信息")
158 public ResultInfo saveUserWeixinPhone(@RequestBody WeiXinUserBean resources) {
159 log.info("resources :[{}]",resources);
160 MemberProfile s = this.userTvOperationService.saveUserWeixinPhone(resources);
161 return ResultInfo.success(s);
162 }
163
164
165
166 }
167
168
1 package com.topdraw.business.process.service; 1 package com.topdraw.business.process.service;
2 2
3 import com.topdraw.business.basicdata.coupon.domain.Coupon;
4 import com.topdraw.business.process.domian.TempCoupon; 3 import com.topdraw.business.process.domian.TempCoupon;
5 import com.topdraw.business.process.domian.TempRights;
6 4
7 import java.util.List; 5 import java.util.List;
8 6
......
1 package com.topdraw.business.process.service; 1 package com.topdraw.business.process.service;
2 2
3 import com.topdraw.business.basicdata.member.domain.Member; 3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 4 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
5 import com.topdraw.business.module.member.service.dto.MemberDTO;
6 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinQueryCriteria;
7 import com.topdraw.business.process.domian.weixin.BuyVipBean;
8 import com.topdraw.business.process.domian.weixin.WeiXinUserBean;
5 9
6 public interface MemberOperationService { 10 public interface MemberOperationService {
7 11
...@@ -16,4 +20,9 @@ public interface MemberOperationService { ...@@ -16,4 +20,9 @@ public interface MemberOperationService {
16 void doUpdateMemberPoints(Member member); 20 void doUpdateMemberPoints(Member member);
17 21
18 void doUpdateMemberCoupon(Member member); 22 void doUpdateMemberCoupon(Member member);
23
24 MemberProfileDTO getMemberProfileAndCheckVip(Long memberId, String appid);
25
26 MemberDTO buyVip(BuyVipBean buyVipBean);
27
19 } 28 }
......
1 package com.topdraw.business.process.service; 1 package com.topdraw.business.process.service;
2 2
3 import com.topdraw.business.basicdata.points.domain.Points;
4 import com.topdraw.business.basicdata.task.domain.Task;
5 import com.topdraw.business.process.domian.TempPoints; 3 import com.topdraw.business.process.domian.TempPoints;
6 import com.topdraw.business.process.domian.result.CustomPointsResult; 4 import com.topdraw.business.process.domian.result.CustomPointsResult;
7 5
8 import java.util.List; 6 import java.util.List;
9 import java.util.Map;
10 7
11 /** 8 /**
12 * @description 积分操作接口 9 * @description 积分操作接口
......
1 package com.topdraw.business.process.service; 1 package com.topdraw.business.process.service;
2 2
3 import com.topdraw.business.basicdata.rights.history.domain.RightsHistory; 3 import com.topdraw.business.module.rights.history.domain.RightsHistory;
4 import com.topdraw.business.process.domian.RightType; 4 import com.topdraw.business.process.domian.RightType;
5 5
6 import java.util.List; 6 import java.util.List;
......
1 package com.topdraw.business.process.service;
2
3 public interface TaskDealService {
4
5 }
1 package com.topdraw.business.process.service;
2
3 import com.topdraw.business.module.member.profile.domain.MemberProfile;
4 import com.topdraw.business.module.user.iptv.domain.UserTv;
5 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO;
6 import com.topdraw.business.process.domian.weixin.BuyVipBean;
7 import com.topdraw.business.process.domian.weixin.SubscribeBean;
8 import com.topdraw.business.process.domian.weixin.WeiXinUserBean;
9
10 public interface UserOperationService {
11
12 boolean createMemberByUserTv(UserTv resources);
13
14 void unbind(UserTv userTv);
15
16 void changeMainAccount(UserTv userTv);
17
18 UserWeixinDTO appletLogin(WeiXinUserBean resources);
19
20 boolean subscribe(SubscribeBean resources);
21
22 boolean unsubscribe(SubscribeBean resources);
23
24 String saveUserInfo(String data);
25
26 MemberProfile saveUserWeixinPhone(WeiXinUserBean resources);
27 }
1 package com.topdraw.business.process.service;
2
3 import com.topdraw.business.basicdata.user.iptv.domain.UserTv;
4
5 public interface UserTvOperationService {
6
7 boolean createMemberByUserTv(UserTv resources);
8
9 }
1 package com.topdraw.business.process.service.builder;
2
3 import com.topdraw.business.process.domian.TempCoupon;
4
5 public class TempCouponBuilder {
6
7
8
9 public TempCoupon build(){
10 TempCoupon tempCoupon = new TempCoupon();
11
12 return tempCoupon;
13 }
14
15 }
1 package com.topdraw.business.process.service.impl; 1 package com.topdraw.business.process.service.impl;
2 2
3 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 3 import com.topdraw.business.module.member.service.dto.MemberDTO;
4 import com.topdraw.business.basicdata.task.domain.Task; 4 import com.topdraw.business.module.task.domain.Task;
5 import com.topdraw.util.TimestampUtil;
6 import org.springframework.util.CollectionUtils;
7 5
8 import java.util.List; 6 import java.util.List;
9 import java.util.stream.Collectors;
10 7
11 @FunctionalInterface 8 @FunctionalInterface
12 public interface CompareTaskCondition { 9 public interface CompareTaskCondition {
......
1 package com.topdraw.business.process.service.impl; 1 package com.topdraw.business.process.service.impl;
2 2
3 import com.topdraw.business.basicdata.coupon.history.domain.CouponHistory; 3 import com.topdraw.business.module.coupon.history.domain.CouponHistory;
4 import com.topdraw.business.basicdata.coupon.history.service.CouponHistoryService; 4 import com.topdraw.business.module.coupon.history.service.CouponHistoryService;
5 import com.topdraw.business.basicdata.coupon.service.CouponService; 5 import com.topdraw.business.module.coupon.service.CouponService;
6 import com.topdraw.business.basicdata.member.domain.Member; 6 import com.topdraw.business.module.member.domain.Member;
7 import com.topdraw.business.process.service.CouponOperationService; 7 import com.topdraw.business.process.service.CouponOperationService;
8 import com.topdraw.business.process.service.MemberOperationService; 8 import com.topdraw.business.process.service.MemberOperationService;
9 import com.topdraw.business.process.domian.TempCoupon; 9 import com.topdraw.business.process.domian.TempCoupon;
...@@ -19,15 +19,10 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -19,15 +19,10 @@ import org.springframework.beans.factory.annotation.Autowired;
19 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; 19 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
20 import org.springframework.stereotype.Service; 20 import org.springframework.stereotype.Service;
21 21
22 import javax.annotation.Resource;
23 import java.sql.Timestamp; 22 import java.sql.Timestamp;
24 import java.time.LocalDateTime; 23 import java.time.LocalDateTime;
25 import java.util.HashMap;
26 import java.util.List; 24 import java.util.List;
27 import java.util.Map;
28 import java.util.Objects; 25 import java.util.Objects;
29 import java.util.concurrent.ConcurrentHashMap;
30 import java.util.concurrent.locks.ReentrantLock;
31 26
32 27
33 @Service 28 @Service
......
1 package com.topdraw.business.process.service.impl; 1 package com.topdraw.business.process.service.impl;
2 2
3 import com.topdraw.business.basicdata.exp.detail.domain.ExpDetail; 3 import com.topdraw.business.module.exp.detail.domain.ExpDetail;
4 import com.topdraw.business.basicdata.exp.detail.service.ExpDetailService; 4 import com.topdraw.business.module.exp.detail.service.ExpDetailService;
5 import com.topdraw.business.basicdata.member.domain.Member; 5 import com.topdraw.business.module.member.domain.Member;
6 import com.topdraw.business.basicdata.member.level.service.MemberLevelService; 6 import com.topdraw.business.module.member.level.service.MemberLevelService;
7 import com.topdraw.business.basicdata.member.level.service.dto.MemberLevelDTO; 7 import com.topdraw.business.module.member.level.service.dto.MemberLevelDTO;
8 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 8 import com.topdraw.business.module.member.service.dto.MemberDTO;
9 import com.topdraw.business.process.service.ExpOperationService; 9 import com.topdraw.business.process.service.ExpOperationService;
10 import com.topdraw.business.process.service.MemberOperationService; 10 import com.topdraw.business.process.service.MemberOperationService;
11 import com.topdraw.business.process.domian.TempExp; 11 import com.topdraw.business.process.domian.TempExp;
...@@ -23,7 +23,6 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; ...@@ -23,7 +23,6 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
23 import org.springframework.stereotype.Service; 23 import org.springframework.stereotype.Service;
24 import org.springframework.util.CollectionUtils; 24 import org.springframework.util.CollectionUtils;
25 25
26 import javax.annotation.Resource;
27 import java.util.List; 26 import java.util.List;
28 import java.util.Objects; 27 import java.util.Objects;
29 28
......
1 package com.topdraw.business.process.service.impl; 1 package com.topdraw.business.process.service.impl;
2 2
3 import com.topdraw.aspect.AsyncMqSend; 3 import cn.hutool.core.util.ObjectUtil;
4 import com.topdraw.business.basicdata.member.domain.Member; 4 import com.topdraw.business.module.member.domain.Member;
5 import com.topdraw.business.basicdata.member.service.MemberService; 5 import com.topdraw.business.module.member.profile.service.MemberProfileService;
6 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 6 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
7 import com.topdraw.business.module.member.profile.service.dto.MemberProfileQueryCriteria;
8 import com.topdraw.business.module.member.service.MemberService;
9 import com.topdraw.business.module.member.service.dto.MemberDTO;
10 import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
11 import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService;
12 import com.topdraw.business.module.user.weixin.domain.UserWeixin;
13 import com.topdraw.business.module.user.weixin.service.UserWeixinService;
14 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO;
15 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinQueryCriteria;
16 import com.topdraw.business.process.domian.weixin.BuyVipBean;
17 import com.topdraw.business.process.domian.weixin.WeiXinUserBean;
7 import com.topdraw.business.process.service.MemberOperationService; 18 import com.topdraw.business.process.service.MemberOperationService;
8 import org.redisson.Redisson; 19 import com.topdraw.exception.EntityNotFoundException;
9 import org.redisson.api.RedissonClient; 20 import com.topdraw.util.LocalDateTimeUtil;
21 import com.topdraw.util.TimestampUtil;
22 import com.topdraw.utils.StringUtils;
23 import com.topdraw.utils.ValidationUtil;
24 import org.springframework.beans.BeanUtils;
10 import org.springframework.beans.factory.annotation.Autowired; 25 import org.springframework.beans.factory.annotation.Autowired;
26 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
11 import org.springframework.stereotype.Service; 27 import org.springframework.stereotype.Service;
12 import org.springframework.util.Assert; 28 import org.springframework.util.Assert;
13 29
30 import java.nio.charset.StandardCharsets;
31 import java.time.LocalDateTime;
32 import java.time.ZoneOffset;
33 import java.util.Base64;
14 import java.util.Objects; 34 import java.util.Objects;
35 import java.util.Optional;
36
37 import static org.bouncycastle.asn1.x500.style.RFC4519Style.member;
15 38
16 @Service 39 @Service
17 public class MemberOperationServiceImpl implements MemberOperationService { 40 public class MemberOperationServiceImpl implements MemberOperationService {
18 41
19 @Autowired 42 @Autowired
20 MemberService memberService; 43 private MemberService memberService;
44 @Autowired
45 private MemberProfileService memberProfileService;
46 @Autowired
47 private MemberVipHistoryService memberVipHistoryService;
48 @Autowired
49 private UserWeixinService userWeixinService;
50 @Autowired
51 private ThreadPoolTaskExecutor threadPoolTaskExecutor;
52
53 @Override
54 public MemberDTO buyVip(BuyVipBean criteria) {
55
56 // 查询微信账户
57 UserWeixinDTO userWeixin = this.findWeiXinById(criteria.getId());
58
59
60 Long memberId = userWeixin.getMemberId();
61
62 MemberDTO memberDTO = this.findById(memberId);
63
64 Integer vip = memberDTO.getVip();
65
66 MemberVipHistory memberVipHistory = new MemberVipHistory();
67 memberVipHistory.setMemberId(memberId).setVip(criteria.getVip()).setBeforeVip(vip);
68 if (ObjectUtil.equal(criteria.getVip(),vip)) {
69 memberVipHistory.setStatus(1);
70 }
71
72
73 LocalDateTime vipExpireTime = memberDTO.getVipExpireTime();
74 LocalDateTime now = LocalDateTime.now();
75 //判断之前有没有买过,没买过,失效时间为一年后;
76 if (ObjectUtil.isNull(vipExpireTime)) {
77 LocalDateTime localDateTime = now.plusYears(1L);
78 memberDTO.setVipExpireTime(localDateTime);
79 } else {
80 //购买过 判断当前时间有没有过vip过期时间,没有过,失效时间加一年; 过了,当前时间加一年
81 //区分是当前vip续费 还是买新的vip
82 if (ObjectUtil.equal(criteria.getVip(), memberDTO.getVip())) {
83 if (now.isBefore(vipExpireTime)) {
84 LocalDateTime localDateTime = vipExpireTime.plusYears(1L);
85 memberDTO.setVipExpireTime(localDateTime);
86 } else {
87 LocalDateTime localDateTime = now.plusYears(1L);
88 memberDTO.setVipExpireTime(localDateTime);
89 }
90 } else {
91 LocalDateTime localDateTime = now.plusYears(1L);
92 memberDTO.setVipExpireTime(localDateTime);
93 }
94 }
95 memberDTO.setVip(criteria.getVip());
96
97 Member member = new Member();
98 BeanUtils.copyProperties(memberDTO,member);
99 Long memberId0 = this.memberService.create(member);
100
101 memberVipHistory.setVipExpireTime(member.getVipExpireTime());
102 memberVipHistoryService.create(memberVipHistory);
103
104 memberService.update(member);
105 return memberDTO;
106 }
107
108 private UserWeixinDTO findWeiXinById(Long id) {
109 UserWeixinDTO userWeixinDTO = this.userWeixinService.findById(id);
110 if (Objects.isNull(userWeixinDTO)) {
111 throw new EntityNotFoundException(UserWeixin.class, "id", userWeixinDTO.getId().toString());
112 }
113
114 return userWeixinDTO;
115 }
21 116
22 @Override 117 @Override
23 public void doUpdateMemberInfo(Member member) { 118 public void doUpdateMemberInfo(Member member) {
...@@ -50,4 +145,139 @@ public class MemberOperationServiceImpl implements MemberOperationService { ...@@ -50,4 +145,139 @@ public class MemberOperationServiceImpl implements MemberOperationService {
50 public void doUpdateMemberCoupon(Member member) { 145 public void doUpdateMemberCoupon(Member member) {
51 this.doUpdateMemberInfo(member); 146 this.doUpdateMemberInfo(member);
52 } 147 }
148
149 @Override
150 public MemberProfileDTO getMemberProfileAndCheckVip(Long memberId, String appid) {
151
152 // 会员加密信息
153 MemberProfileDTO memberProfileDTO_0 = this.findMemberProfileByMemberId(memberId);
154
155 // 会员信息
156 MemberDTO memberDTO = this.findById(memberId);
157
158 // 初始化会员加密信息
159 MemberProfileDTO memberProfileDTO_1 = this.configMemberProfile(memberProfileDTO_0,memberDTO,appid);
160
161 return memberProfileDTO_1;
162 }
163
164 /**
165 * 配置会员信息
166 * @param memberProfileDTO_0
167 * @param memberDTO
168 * @return
169 */
170 private MemberProfileDTO configMemberProfile(MemberProfileDTO memberProfileDTO_0, MemberDTO memberDTO, String appid) {
171 MemberProfileDTO memberProfileDTO = new MemberProfileDTO();
172 BeanUtils.copyProperties(memberProfileDTO_0,memberProfileDTO);
173
174 // 真实姓名
175 String realname = memberProfileDTO.getRealname();
176 if (StringUtils.isNotBlank(realname)) {
177 realname = new String(Base64.getDecoder().decode(realname.getBytes(StandardCharsets.UTF_8)));
178 }
179
180 // 昵称
181 String nickname = memberDTO.getNickname();
182 if (StringUtils.isNotBlank(nickname)) {
183 nickname = new String(Base64.getDecoder().decode(nickname.getBytes(StandardCharsets.UTF_8)));
184 }
185
186 // vip
187 Integer vip = memberDTO.getVip();
188 // 过期时间
189 LocalDateTime vipExpireTime = memberDTO.getVipExpireTime();
190
191 Long timeLong = 0L;
192 if (ObjectUtil.isNotNull(vipExpireTime)) {
193
194 // 检查vip
195 MemberDTO memberDTO1 = this.checkVipStatus(memberDTO,vipExpireTime,appid);
196
197 // 更新会员信息
198 this.threadPoolTaskExecutor.execute(()->{
199 Member member = new Member();
200 BeanUtils.copyProperties(memberDTO1,member);
201 this.memberService.update(member);
202 });
203
204 vip = memberDTO1.getVip();
205 LocalDateTime vipExpireTime1 = memberDTO1.getVipExpireTime();
206 if (Objects.nonNull(vipExpireTime1)) {
207 timeLong = vipExpireTime1.toInstant(ZoneOffset.of("+8")).toEpochMilli();
208 }
209 }
210
211 // 过期时间
212 memberProfileDTO.setVipExpireTime(timeLong);
213 // 真实姓名
214 memberProfileDTO.setRealname(realname);
215 // 头像
216 memberProfileDTO.setAvatarUrl(memberDTO.getAvatarUrl());
217 // 生日
218 memberProfileDTO.setBirthdayStr(memberDTO.getBirthday());
219 // 性别
220 memberProfileDTO.setGender(memberDTO.getGender());
221 // 昵称
222 memberProfileDTO.setNickname(nickname);
223 // 会员id
224 memberProfileDTO.setMemberId(memberDTO.getId());
225 // vip
226 memberProfileDTO.setVip(vip);
227
228 return memberProfileDTO;
229 }
230
231 /**
232 * 检查vip是否过期
233 * 1.当前vip如果过期则查看是否有vip历史变动
234 * 2.如果vip变动历史有记录则获取vip变动记录
235 * 3.如果vip没有记录则查看是否关注了公众号
236 * @param vipExpireTime
237 * @return
238 */
239 private MemberDTO checkVipStatus(MemberDTO memberDTO,LocalDateTime vipExpireTime, String appid) {
240
241 Long memberId = memberDTO.getId();
242 LocalDateTime nowTime = LocalDateTime.now();
243
244 //vip过期,回退上个vip状态 同时修改member表vip
245 if (nowTime.compareTo(vipExpireTime) >= 0 ) {
246
247 Integer vip = 0;
248 LocalDateTime vipExpireTime1 = memberDTO.getVipExpireTime();
249
250 //查询小于失效时间的那条记录 查不到 取微信表里 关注状态
251 MemberVipHistory memberVipHistory = this.memberVipHistoryService.findByTime(memberId, nowTime);
252
253 if (ObjectUtil.isNull(memberVipHistory.getId())) {
254
255 UserWeixinDTO userWeixin = this.userWeixinService.findFirstByMemberIdAndAppid(memberId, appid);
256 // 微信公众号关注的状态 0:未关注 1:关注
257 Integer status = userWeixin.getStatus();
258
259 if (status != 1) vip = 0; else vip = 1;
260 vipExpireTime1 = null;
261
262 } else {
263
264 vip = memberVipHistory.getVip();
265 vipExpireTime1 = memberVipHistory.getVipExpireTime();
266 }
267
268 memberDTO.setVipExpireTime(vipExpireTime1);
269 memberDTO.setVip(vip);
270 }
271
272 return memberDTO;
273 }
274
275 /**
276 * 查询会员加密信息
277 * @param memberId
278 * @return
279 */
280 private MemberProfileDTO findMemberProfileByMemberId(Long memberId) {
281 return this.memberProfileService.findByMemberId(memberId);
282 }
53 } 283 }
......
...@@ -2,18 +2,16 @@ package com.topdraw.business.process.service.impl; ...@@ -2,18 +2,16 @@ package com.topdraw.business.process.service.impl;
2 2
3 3
4 import com.topdraw.aspect.AsyncMqSend; 4 import com.topdraw.aspect.AsyncMqSend;
5 import com.topdraw.business.basicdata.member.domain.Member; 5 import com.topdraw.business.module.member.domain.Member;
6 import com.topdraw.business.basicdata.member.service.MemberService; 6 import com.topdraw.business.module.member.service.MemberService;
7 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 7 import com.topdraw.business.module.member.service.dto.MemberDTO;
8 import com.topdraw.business.basicdata.points.available.domain.PointsAvailable; 8 import com.topdraw.business.module.points.available.domain.PointsAvailable;
9 import com.topdraw.business.basicdata.points.available.service.PointsAvailableService; 9 import com.topdraw.business.module.points.available.service.PointsAvailableService;
10 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableDTO; 10 import com.topdraw.business.module.points.available.service.dto.PointsAvailableDTO;
11 import com.topdraw.business.basicdata.points.detail.detailhistory.service.PointsDetailHistoryService; 11 import com.topdraw.business.module.points.detail.detailhistory.service.PointsDetailHistoryService;
12 import com.topdraw.business.basicdata.points.detail.domain.PointsDetail; 12 import com.topdraw.business.module.points.detail.domain.PointsDetail;
13 import com.topdraw.business.basicdata.points.detail.service.PointsDetailService; 13 import com.topdraw.business.module.points.detail.service.PointsDetailService;
14 import com.topdraw.business.basicdata.points.service.PointsService; 14 import com.topdraw.business.module.points.service.PointsService;
15 import com.topdraw.business.basicdata.user.iptv.service.UserTvService;
16 import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvDTO;
17 import com.topdraw.business.process.domian.result.CustomPointsResult; 15 import com.topdraw.business.process.domian.result.CustomPointsResult;
18 import com.topdraw.business.process.service.MemberOperationService; 16 import com.topdraw.business.process.service.MemberOperationService;
19 import com.topdraw.business.process.service.PointsOperationService; 17 import com.topdraw.business.process.service.PointsOperationService;
...@@ -22,7 +20,6 @@ import com.topdraw.util.IdWorker; ...@@ -22,7 +20,6 @@ import com.topdraw.util.IdWorker;
22 import com.topdraw.util.RedissonUtil; 20 import com.topdraw.util.RedissonUtil;
23 import com.topdraw.util.TimestampUtil; 21 import com.topdraw.util.TimestampUtil;
24 import com.topdraw.utils.StringUtils; 22 import com.topdraw.utils.StringUtils;
25 import lombok.Data;
26 import lombok.extern.slf4j.Slf4j; 23 import lombok.extern.slf4j.Slf4j;
27 import org.redisson.api.RLock; 24 import org.redisson.api.RLock;
28 import org.redisson.api.RedissonClient; 25 import org.redisson.api.RedissonClient;
...@@ -30,20 +27,15 @@ import org.slf4j.Logger; ...@@ -30,20 +27,15 @@ import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory; 27 import org.slf4j.LoggerFactory;
31 import org.springframework.beans.BeanUtils; 28 import org.springframework.beans.BeanUtils;
32 import org.springframework.beans.factory.annotation.Autowired; 29 import org.springframework.beans.factory.annotation.Autowired;
33 import org.springframework.data.redis.core.StringRedisTemplate;
34 import org.springframework.data.redis.core.ValueOperations;
35 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; 30 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
36 import org.springframework.stereotype.Service; 31 import org.springframework.stereotype.Service;
37 import org.springframework.transaction.annotation.Propagation; 32 import org.springframework.transaction.annotation.Propagation;
38 import org.springframework.transaction.annotation.Transactional; 33 import org.springframework.transaction.annotation.Transactional;
39 import org.springframework.util.CollectionUtils; 34 import org.springframework.util.CollectionUtils;
40 35
41 import javax.annotation.Resource;
42 import java.sql.Timestamp; 36 import java.sql.Timestamp;
43 import java.time.LocalDate;
44 import java.time.LocalDateTime; 37 import java.time.LocalDateTime;
45 import java.util.*; 38 import java.util.*;
46 import java.util.concurrent.TimeUnit;
47 import java.util.stream.Collectors; 39 import java.util.stream.Collectors;
48 40
49 /** 41 /**
......
1 package com.topdraw.business.process.service.impl; 1 package com.topdraw.business.process.service.impl;
2 2
3 import com.topdraw.business.basicdata.coupon.service.CouponService; 3 import com.topdraw.business.module.coupon.service.CouponService;
4 import com.topdraw.business.basicdata.coupon.service.dto.CouponDTO; 4 import com.topdraw.business.module.coupon.service.dto.CouponDTO;
5 import com.topdraw.business.basicdata.rights.history.domain.RightsHistory; 5 import com.topdraw.business.module.rights.history.domain.RightsHistory;
6 import com.topdraw.business.basicdata.rights.history.service.RightsHistoryService; 6 import com.topdraw.business.module.rights.history.service.RightsHistoryService;
7 import com.topdraw.business.basicdata.rights.service.RightsService; 7 import com.topdraw.business.module.rights.service.RightsService;
8 import com.topdraw.business.basicdata.rights.service.dto.RightsDTO; 8 import com.topdraw.business.module.rights.service.dto.RightsDTO;
9 import com.topdraw.business.process.service.CouponOperationService; 9 import com.topdraw.business.process.service.CouponOperationService;
10 import com.topdraw.business.process.service.ExpOperationService; 10 import com.topdraw.business.process.service.ExpOperationService;
11 import com.topdraw.business.process.service.PointsOperationService; 11 import com.topdraw.business.process.service.PointsOperationService;
...@@ -16,7 +16,6 @@ import lombok.extern.slf4j.Slf4j; ...@@ -16,7 +16,6 @@ import lombok.extern.slf4j.Slf4j;
16 import org.slf4j.Logger; 16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory; 17 import org.slf4j.LoggerFactory;
18 import org.springframework.beans.factory.annotation.Autowired; 18 import org.springframework.beans.factory.annotation.Autowired;
19 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
20 import org.springframework.stereotype.Service; 19 import org.springframework.stereotype.Service;
21 import org.springframework.util.CollectionUtils; 20 import org.springframework.util.CollectionUtils;
22 import org.springframework.util.StringUtils; 21 import org.springframework.util.StringUtils;
......
1 package com.topdraw.business.process.service.impl; 1 package com.topdraw.business.process.service.impl;
2 2
3 import com.alibaba.fastjson.JSONObject; 3 import com.alibaba.fastjson.JSONObject;
4 import com.topdraw.business.basicdata.coupon.service.CouponService; 4 import com.topdraw.business.module.coupon.service.CouponService;
5 import com.topdraw.business.basicdata.coupon.service.dto.CouponDTO; 5 import com.topdraw.business.module.coupon.service.dto.CouponDTO;
6 import com.topdraw.business.basicdata.member.group.service.MemberGroupService; 6 import com.topdraw.business.module.member.group.service.MemberGroupService;
7 import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupDTO; 7 import com.topdraw.business.module.member.group.service.dto.MemberGroupDTO;
8 import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupQueryCriteria; 8 import com.topdraw.business.module.member.group.service.dto.MemberGroupQueryCriteria;
9 import com.topdraw.business.basicdata.rights.permanentrights.service.PermanentRightsService; 9 import com.topdraw.business.module.rights.permanentrights.service.PermanentRightsService;
10 import com.topdraw.business.basicdata.rights.permanentrights.service.dto.PermanentRightsDTO; 10 import com.topdraw.business.module.rights.permanentrights.service.dto.PermanentRightsDTO;
11 import com.topdraw.business.basicdata.rights.service.RightsService; 11 import com.topdraw.business.module.rights.service.RightsService;
12 import com.topdraw.business.basicdata.rights.service.dto.RightsDTO; 12 import com.topdraw.business.module.rights.service.dto.RightsDTO;
13 import com.topdraw.business.basicdata.task.progress.domain.TrTaskProgress; 13 import com.topdraw.business.module.task.attribute.service.TaskAttrService;
14 import com.topdraw.business.basicdata.task.progress.service.TrTaskProgressService; 14 import com.topdraw.business.module.task.attribute.service.dto.TaskAttrDTO;
15 import com.topdraw.business.basicdata.task.progress.service.dto.TrTaskProgressDTO; 15 import com.topdraw.business.module.task.progress.domain.TrTaskProgress;
16 import com.topdraw.business.basicdata.task.progress.service.dto.TrTaskProgressQueryCriteria; 16 import com.topdraw.business.module.task.progress.service.TrTaskProgressService;
17 import com.topdraw.business.basicdata.user.iptv.domain.UserTv; 17 import com.topdraw.business.module.task.progress.service.dto.TrTaskProgressDTO;
18 import com.topdraw.business.basicdata.user.iptv.service.UserTvService; 18 import com.topdraw.business.module.task.progress.service.dto.TrTaskProgressQueryCriteria;
19 import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvDTO; 19 import com.topdraw.business.module.user.iptv.domain.UserTv;
20 import com.topdraw.business.module.user.iptv.service.UserTvService;
21 import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO;
22 import com.topdraw.business.process.domian.result.TaskTemplateType;
20 import com.topdraw.business.process.service.PointsOperationService; 23 import com.topdraw.business.process.service.PointsOperationService;
21 import com.topdraw.business.process.service.RightsOperationService; 24 import com.topdraw.business.process.service.RightsOperationService;
22 import com.topdraw.business.process.service.TaskOperationService; 25 import com.topdraw.business.process.service.TaskOperationService;
23 import com.topdraw.business.basicdata.member.service.MemberService; 26 import com.topdraw.business.module.member.service.MemberService;
24 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 27 import com.topdraw.business.module.member.service.dto.MemberDTO;
25 import com.topdraw.business.basicdata.task.domain.Task; 28 import com.topdraw.business.module.task.domain.Task;
26 import com.topdraw.business.basicdata.task.service.TaskService; 29 import com.topdraw.business.module.task.service.TaskService;
27 import com.topdraw.business.basicdata.task.template.domain.TaskTemplate; 30 import com.topdraw.business.module.task.template.domain.TaskTemplate;
28 import com.topdraw.business.basicdata.task.template.service.TaskTemplateService; 31 import com.topdraw.business.module.task.template.service.TaskTemplateService;
29 import com.topdraw.business.process.domian.*; 32 import com.topdraw.business.process.domian.*;
30 import com.topdraw.business.process.service.UserTvOperationService; 33 import com.topdraw.business.process.service.UserOperationService;
31 import com.topdraw.common.ResultInfo; 34 import com.topdraw.common.ResultInfo;
32 import com.topdraw.module.mq.DataSyncMsg; 35 import com.topdraw.module.mq.DataSyncMsg;
33 import com.topdraw.util.*; 36 import com.topdraw.util.*;
...@@ -76,6 +79,8 @@ public class TaskOperationServiceImpl implements TaskOperationService { ...@@ -76,6 +79,8 @@ public class TaskOperationServiceImpl implements TaskOperationService {
76 CouponService couponService; 79 CouponService couponService;
77 @Autowired 80 @Autowired
78 MemberGroupService memberGroupService; 81 MemberGroupService memberGroupService;
82 @Autowired
83 TaskAttrService taskAttrService;
79 84
80 85
81 private static final Integer TASK_FINISH_STATUS = 1; 86 private static final Integer TASK_FINISH_STATUS = 1;
...@@ -91,8 +96,6 @@ public class TaskOperationServiceImpl implements TaskOperationService { ...@@ -91,8 +96,6 @@ public class TaskOperationServiceImpl implements TaskOperationService {
91 Integer event = msgData.getEvent(); 96 Integer event = msgData.getEvent();
92 Long memberId = msgData.getMemberId(); 97 Long memberId = msgData.getMemberId();
93 98
94 long l = System.currentTimeMillis();
95
96 // 检查当前会员的黑名单状态 99 // 检查当前会员的黑名单状态
97 boolean b = this.validatedMemberBlackStatus(memberId); 100 boolean b = this.validatedMemberBlackStatus(memberId);
98 if (!b) { 101 if (!b) {
...@@ -100,9 +103,9 @@ public class TaskOperationServiceImpl implements TaskOperationService { ...@@ -100,9 +103,9 @@ public class TaskOperationServiceImpl implements TaskOperationService {
100 } 103 }
101 104
102 // 1.通过任务标识获取任务模板,通过模板参数获取具体的模板 105 // 1.通过任务标识获取任务模板,通过模板参数获取具体的模板
103 TaskTemplate taskTemplate = this.getTaskTemplate(event); 106 TaskTemplate taskTemplate = this.getTaskTemplate(event,dataSyncMsg);
104 // 2.通过任务模板获取对应的任务列表 107 // 2.通过任务模板获取对应的任务列表
105 List<Task> taskList = this.loadListTaskByTaskTemplate(taskTemplate); 108 List<Task> taskList = this.loadListTaskByTaskTemplate(taskTemplate,dataSyncMsg);
106 // 4.判断当前用户是否满足任务完成条件 109 // 4.判断当前用户是否满足任务完成条件
107 boolean checkResult = this.checkTaskCompletion(memberId,taskList); 110 boolean checkResult = this.checkTaskCompletion(memberId,taskList);
108 if (checkResult) { 111 if (checkResult) {
...@@ -114,11 +117,8 @@ public class TaskOperationServiceImpl implements TaskOperationService { ...@@ -114,11 +117,8 @@ public class TaskOperationServiceImpl implements TaskOperationService {
114 117
115 } 118 }
116 119
117 long r = System.currentTimeMillis();
118 log.info("总耗时======>>>>>" + (r-l));
119 return ResultInfo.success(); 120 return ResultInfo.success();
120 121
121
122 } 122 }
123 123
124 /** 124 /**
...@@ -763,17 +763,77 @@ public class TaskOperationServiceImpl implements TaskOperationService { ...@@ -763,17 +763,77 @@ public class TaskOperationServiceImpl implements TaskOperationService {
763 * @param taskTemplate 任务模板 763 * @param taskTemplate 任务模板
764 * @return List<task> 任务列表 764 * @return List<task> 任务列表
765 */ 765 */
766 private List<Task> loadListTaskByTaskTemplate(TaskTemplate taskTemplate,Map<String,Object> paramMap) { 766 private List<Task> loadListTaskByTaskTemplate(TaskTemplate taskTemplate,DataSyncMsg dataSyncMsg) {
767 767
768 if (Objects.nonNull(taskTemplate)) { 768 if (Objects.nonNull(taskTemplate)) {
769
769 Long taskTemplateId = taskTemplate.getId(); 770 Long taskTemplateId = taskTemplate.getId();
770 return this.taskService.findByTemplateId(taskTemplateId); 771
772 List<Task> taskList = this.taskService.findByTemplateId(taskTemplateId);
773
774 Integer type = taskTemplate.getType();
775 switch (type) {
776 // 订购
777 case TaskTemplateType.TYPE_4:
778 taskList = this.pickUpTask(taskList,dataSyncMsg);
779 break;
780
781 default:
782 break;
783 }
784
785 return taskList;
786
771 } 787 }
772 788
773 return null; 789 return null;
774 } 790 }
775 791
776 /** 792 /**
793 * 通过参数确定具体任务
794 * @param taskList
795 * @param dataSyncMsg
796 * @return
797 */
798 private List<Task> pickUpTask(List<Task> taskList,DataSyncMsg dataSyncMsg) {
799
800 List<Task> taskList1 = new ArrayList<>();
801
802 DataSyncMsg.TaskTemplateParam param = dataSyncMsg.getParam();
803
804 if (Objects.nonNull(param)) {
805
806 String code = param.getCode();
807 for (Task task : taskList) {
808 Long taskId = task.getId();
809 TaskAttrDTO taskAttrDTO = this.findTaskAttrByTaskId(taskId);
810 String attrStr = taskAttrDTO.getAttrStr();
811 if (StringUtils.hasText(attrStr)) {
812 DataSyncMsg.TaskTemplateParam taskTemplateParam = JSONObject.parseObject(attrStr, DataSyncMsg.TaskTemplateParam.class);
813 if (Objects.nonNull(taskTemplateParam)) {
814 String code1 = taskTemplateParam.getCode();
815 if (StringUtils.hasText(code1) && code.equalsIgnoreCase(code1)) {
816 taskList1.add(task);
817 }
818 }
819
820 }
821 }
822
823 } else {
824 return taskList;
825 }
826
827 return taskList1;
828
829 }
830
831 private TaskAttrDTO findTaskAttrByTaskId(Long taskId) {
832 return this.taskAttrService.findByTaskId(taskId);
833 }
834
835
836 /**
777 * 获取任务模板对应的任务列表 837 * 获取任务模板对应的任务列表
778 * 838 *
779 * @param taskTemplate 任务模板 839 * @param taskTemplate 任务模板
...@@ -794,12 +854,54 @@ public class TaskOperationServiceImpl implements TaskOperationService { ...@@ -794,12 +854,54 @@ public class TaskOperationServiceImpl implements TaskOperationService {
794 * @param event 任务 854 * @param event 任务
795 * @return TaskTemplate 任务模板 855 * @return TaskTemplate 任务模板
796 */ 856 */
797 private TaskTemplate getTaskTemplate(Integer event) { 857 private TaskTemplate getTaskTemplate(Integer event,DataSyncMsg msgData) {
798 return this.taskTemplateService.findByType(event); 858 DataSyncMsg.TaskTemplateParam taskTemplateParam = msgData.getParam();
859
860 if (Objects.nonNull(taskTemplateParam)) {
861
862 return this.findByTypeAndParam(event,taskTemplateParam);
863
864 } else {
865
866 List<TaskTemplate> taskTemplateList = this.taskTemplateService.findByType(event);
867
868 if (!CollectionUtils.isEmpty(taskTemplateList)) {
869
870 return taskTemplateList.get(0);
871
872 } else {
873
874 return null;
875
799 } 876 }
800 877
878 }
879 }
801 880
881 private TaskTemplate findByTypeAndParam(Integer event, DataSyncMsg.TaskTemplateParam taskTemplateParam) {
882 String category = taskTemplateParam.getCategory();
802 883
884 List<TaskTemplate> taskTemplateList = this.taskTemplateService.findByType(event);
885 if (!CollectionUtils.isEmpty(taskTemplateList)) {
886
887 for (TaskTemplate taskTemplate : taskTemplateList) {
888
889 String params = taskTemplate.getParams();
890 if(!StringUtils.isEmpty(params)) {
891
892 DataSyncMsg.TaskTemplateParam taskTemplateParam1 = JSONObject.parseObject(params,DataSyncMsg.TaskTemplateParam.class);
893 String category1 = taskTemplateParam1.getCategory();
894 if (!StringUtils.isEmpty(category1) && category1.equalsIgnoreCase(category))
895 return taskTemplate;
896
897 }
898
899 }
900
901 }
902
903 return null;
904 }
803 905
804 906
805 //////////////////////////////////////////////////////////////////////////////////////////////////////////// 907 ////////////////////////////////////////////////////////////////////////////////////////////////////////////
...@@ -811,7 +913,7 @@ public class TaskOperationServiceImpl implements TaskOperationService { ...@@ -811,7 +913,7 @@ public class TaskOperationServiceImpl implements TaskOperationService {
811 @Autowired 913 @Autowired
812 private PointsOperationService pointsOperationService; 914 private PointsOperationService pointsOperationService;
813 @Autowired 915 @Autowired
814 private UserTvOperationService userTvOperationService; 916 private UserOperationService userTvOperationService;
815 917
816 private UserTv checkUserTv(String platformAccount){ 918 private UserTv checkUserTv(String platformAccount){
817 UserTv userTv = new UserTv(); 919 UserTv userTv = new UserTv();
...@@ -825,6 +927,7 @@ public class TaskOperationServiceImpl implements TaskOperationService { ...@@ -825,6 +927,7 @@ public class TaskOperationServiceImpl implements TaskOperationService {
825 } 927 }
826 928
827 @Override 929 @Override
930 @Deprecated
828 public boolean createPoint2ChongQing(String platformAccount, Long points) { 931 public boolean createPoint2ChongQing(String platformAccount, Long points) {
829 932
830 boolean result = this.verificationActivity(platformAccount); 933 boolean result = this.verificationActivity(platformAccount);
...@@ -847,7 +950,7 @@ public class TaskOperationServiceImpl implements TaskOperationService { ...@@ -847,7 +950,7 @@ public class TaskOperationServiceImpl implements TaskOperationService {
847 tempPoints.setMemberId(memberId); 950 tempPoints.setMemberId(memberId);
848 tempPoints.setMemberCode(code); 951 tempPoints.setMemberCode(code);
849 tempPoints.setPoints(points); 952 tempPoints.setPoints(points);
850 tempPoints.setDescription("重庆重数大屏积分兑换活动,时间:202112"); 953 // tempPoints.setDescription("重庆重数大屏积分兑换活动,时间:202112");
851 tempPoints.setDeviceType(1); 954 tempPoints.setDeviceType(1);
852 tempPoints.setEvtType(3); 955 tempPoints.setEvtType(3);
853 tempPoints.setPointsType(0); 956 tempPoints.setPointsType(0);
......
1 package com.topdraw.business.process.service.impl;
2
3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.ObjectUtil;
5 import cn.hutool.core.util.StrUtil;
6 import cn.hutool.http.HttpUtil;
7 import com.alibaba.druid.util.HttpClientUtils;
8 import com.alibaba.fastjson.JSONObject;
9 import com.topdraw.business.module.member.domain.Member;
10 import com.topdraw.business.module.member.domain.MemberBuilder;
11 import com.topdraw.business.module.member.domain.MemberConstant;
12 import com.topdraw.business.module.member.profile.domain.MemberProfile;
13 import com.topdraw.business.module.member.profile.service.MemberProfileService;
14 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
15 import com.topdraw.business.module.member.service.MemberService;
16 import com.topdraw.business.module.member.service.dto.MemberDTO;
17 import com.topdraw.business.module.member.service.dto.MemberQueryCriteria;
18 import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
19 import com.topdraw.business.module.user.iptv.domain.UserConstant;
20 import com.topdraw.business.module.user.iptv.domain.UserTv;
21 import com.topdraw.business.module.user.iptv.service.UserTvService;
22 import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO;
23 import com.topdraw.business.module.user.weixin.domain.UserWeixin;
24 import com.topdraw.business.module.user.weixin.service.UserWeixinService;
25 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO;
26 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinQueryCriteria;
27 import com.topdraw.business.process.domian.weixin.BuyVipBean;
28 import com.topdraw.business.process.domian.weixin.SubscribeBean;
29 import com.topdraw.business.process.domian.weixin.WeiXinUserBean;
30 import com.topdraw.business.process.service.UserOperationService;
31 import com.topdraw.config.LocalConstants;
32 import com.topdraw.config.RedisKeyUtil;
33 import com.topdraw.exception.BadRequestException;
34 import com.topdraw.exception.EntityNotFoundException;
35 import com.topdraw.security.AESUtil;
36 import com.topdraw.util.IdWorker;
37 import com.topdraw.util.TimestampUtil;
38 import com.topdraw.utils.RedisUtils;
39 import com.topdraw.utils.StringUtils;
40 import com.topdraw.weixin.beans.DefaultWeiXinBeanDefinition;
41 import com.topdraw.weixin.beans.WeiXinBeanDefinition;
42 import com.topdraw.weixin.beans.config.WeiXinAppListConfig;
43 import com.topdraw.weixin.util.WeChatConstants;
44 import com.topdraw.weixin.util.WeiXinRequestUtil;
45 import lombok.extern.slf4j.Slf4j;
46 import org.redisson.api.RedissonClient;
47 import org.springframework.beans.BeanUtils;
48 import org.springframework.beans.factory.annotation.Autowired;
49 import org.springframework.beans.factory.annotation.Value;
50 import org.springframework.http.HttpMethod;
51 import org.springframework.http.ResponseEntity;
52 import org.springframework.stereotype.Service;
53 import org.springframework.transaction.annotation.Propagation;
54 import org.springframework.transaction.annotation.Transactional;
55 import org.springframework.util.Assert;
56 import org.springframework.web.client.RestTemplate;
57
58 import javax.annotation.Resource;
59 import java.io.IOException;
60 import java.time.LocalDateTime;
61 import java.util.List;
62 import java.util.Map;
63 import java.util.Objects;
64 import java.util.Optional;
65
66 @Service
67 @Slf4j
68 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
69 public class UserOperationServiceImpl implements UserOperationService {
70
71 @Autowired
72 private RedissonClient redissonClient;
73 @Autowired
74 private MemberService memberService;
75 @Autowired
76 private UserTvService userTvService;
77 @Autowired
78 private UserWeixinService userWeixinService;
79 @Autowired
80 private RedisUtils redisUtils;
81 @Autowired
82 private WeiXinRequestUtil weixinRequestUtil;
83 @Autowired
84 private WeiXinAppListConfig weiXinAppListConfig;
85 @Autowired
86 private MemberProfileService memberProfileService;
87
88 /** 取消关注 */
89 private static final Integer UNSUBSCRIBE_STATUS = 0;
90 private static final Integer SUBSCRIBE_STATUS = 1;
91 private static final String SUBSCRIBE = "subscribe";
92 private static final String UNSUBSCRIBE = "unsubscribe";
93 private static final Integer[] PLATFORM_LIST = new Integer[]{0,1,2,3};
94
95 @Value("${uc.service.platform:}")
96 private String platform;
97
98 @Value("${key:}")
99 private String key;
100
101 @Value("${uc.app.subAppId:wx05f35931270014be}")
102 private String subAppId;
103
104 @Value("${uc.app.h5AppId:wxca962918dfeed88c}")
105 private String h5AppId;
106
107 @Value("${uc.app.appletAppid:wxc57d42de3d351cec}")
108 private String appletAppid;
109
110 @Value("${file.upload:upload}")
111 private String filePath;
112
113
114
115 /**
116 * 微信公众号关注
117 * @description 大小屏绑定,大屏账户保存小屏会员编码
118 * @param resources
119 * @return
120 */
121 @Override
122 public boolean subscribe(SubscribeBean resources) {
123 String unionId = resources.getUnionId();
124 String appId = resources.getAppId();
125 String openId = resources.getOpenId();
126
127 DefaultWeiXinBeanDefinition weiXinBeanDefinition = this.parseAppletInfo(resources);
128
129 if (Objects.nonNull(weiXinBeanDefinition.getOpenId())) {
130 throw new RuntimeException("微信信息解析失败!");
131 }
132
133 UserWeixinDTO userWeixinDTO = this.findUserWeiXinByOpenIdAndAppId(appId, openId);
134
135 if (Objects.isNull(userWeixinDTO.getId())) {
136
137 // 创建会员和账户
138 this.doCreateUserWeiXinAndMember(weiXinBeanDefinition,userWeixinDTO);
139
140 } else {
141
142 // 修改会员和会员信息
143 this.doUpdateUserWeiXinAndMember(userWeixinDTO,appId,openId);
144
145 }
146
147 // 小屏会员
148 MemberDTO memberDTO_0 = this.findMemberByAppIdAndOpenId(appId,openId);
149
150 // 从redis中获取大屏信息
151 UserTvDTO userTvDTO = this.findUserTvFromRedis(unionId);
152
153 // 携带了大屏信息
154 if (Objects.nonNull(userTvDTO) && StringUtils.isNotEmpty(memberDTO_0.getCode())) {
155 // 绑定主账号会员
156 this.bondPriorityMember(userTvDTO,memberDTO_0);
157
158 // 小屏会员绑定大屏账户id
159 MemberDTO memberDTO_1 = this.bindIptvId(memberDTO_0,userTvDTO);
160
161 // 修改会员
162 this.doUpdateMemberByMemberDTO(memberDTO_1);
163 }
164
165 return true;
166
167 }
168
169 /**
170 *
171 * @param userWeixinDTO
172 * @param appId
173 * @param openId
174 */
175 private void doUpdateUserWeiXinAndMember(UserWeixinDTO userWeixinDTO,String appId,String openId) {
176 // 修改微信账户关注状态
177 this.doUpdateUserWeiXinStatus(userWeixinDTO,SUBSCRIBE_STATUS);
178
179 // 小屏会员
180 MemberDTO memberDTO_0 = this.findMemberByAppIdAndOpenId(appId,openId);
181
182 this.doUpdateMemberVip(memberDTO_0,1);
183 }
184
185 /**
186 * 创建会员和账户
187 * @param weiXinBeanDefinition
188 * @param userWeixinDTO
189 */
190 private void doCreateUserWeiXinAndMember(DefaultWeiXinBeanDefinition weiXinBeanDefinition,UserWeixinDTO userWeixinDTO) {
191
192 // 创建小屏
193 UserWeixin userWeixin = this.generateUserWeiXin(weiXinBeanDefinition,SUBSCRIBE_STATUS);
194 if (Objects.isNull(userWeixin.getId())) {
195 throw new BadRequestException("创建小屏账户失败");
196 }
197
198 // 保存会员
199 Long memberId = this.doCreateMember(userWeixin,1);
200
201 if (Objects.isNull(memberId)) {
202 throw new BadRequestException("会员创建保存失败");
203 }
204
205 // 保存或者修改,微信账户信息
206 this.doCreateUserWeiXin(userWeixin,memberId);
207
208 }
209
210 /**
211 * 获取小屏会员
212 * @param appId
213 * @param openId
214 * @return
215 */
216 private MemberDTO findMemberByAppIdAndOpenId(String appId, String openId) {
217 UserWeixinDTO userWeixinDTO = this.findUserWeiXinByOpenIdAndAppId(appId, openId);
218 if (Objects.nonNull(userWeixinDTO)) {
219 Long memberId = userWeixinDTO.getMemberId();
220 return this.findMemberById(memberId);
221 }
222 return null;
223 }
224
225 /**
226 * 从redis中获取大屏信息
227 * @param unionId
228 * @return
229 */
230 private UserTvDTO findUserTvFromRedis(String unionId) {
231
232 // 解析大屏信息
233 JSONObject iptvUserInfo = this.parseUserTvContent(unionId);
234
235 if (Objects.nonNull(iptvUserInfo)) {
236
237 String platformAccount = iptvUserInfo.getString("platformAccount");
238
239 UserTvDTO userTvDTO = this.findByPlatformAccount(platformAccount);
240
241 if (Objects.nonNull(userTvDTO.getId()))
242 userTvDTO.setPlatformAccount(platformAccount);
243
244 return userTvDTO;
245 }
246
247 return null;
248 }
249
250 /**
251 * 解析大屏用户
252 * @param unionId
253 * @return
254 */
255 private JSONObject parseUserTvContent(String unionId) {
256 // 缓存的信息,使用unionid即可
257 String content = (String) this.redisUtils.get(RedisKeyUtil.genSeSuSubscribeKey(unionId));
258 // 之后删除缓存信息
259 redisUtils.del(RedisKeyUtil.genSeSuSubscribeKey(unionId));
260
261 JSONObject iptvUserInfo = com.alibaba.fastjson.JSONObject.parseObject(content);
262 return iptvUserInfo;
263 }
264
265 /**
266 * 绑定iptvId字段并修改会员vip字段
267 * @param memberDTO
268 * @param userTvDTO
269 */
270 private MemberDTO bindIptvIdAndUpdateVip(MemberDTO memberDTO, UserTvDTO userTvDTO) {
271 Integer vip = memberDTO.getVip();
272
273 if (Objects.nonNull(vip) && vip == 0) {
274 memberDTO.setVip(1);
275 return this.bindIptvId(memberDTO,userTvDTO);
276
277 }
278 return memberDTO;
279 }
280
281 /**
282 * 微信公众号取消关注
283 * @param resources
284 * @return
285 */
286 @Override
287 public boolean unsubscribe(SubscribeBean resources) {
288
289 String appId = resources.getAppId();
290 String openId = resources.getOpenId();
291
292 // 修改关注状态 0:未关注
293 UserWeixinDTO userWeixinDTO = this.doUpdateUserWeiXinStatus(appId, openId, UNSUBSCRIBE_STATUS);
294
295 // 会员
296 MemberDTO memberDTO = this.findMemberByUserWeixinDTO(userWeixinDTO);
297
298 // 修改会员vip,如果没有购买会员则取消团粉
299 this.doUpdateMemberVip(memberDTO,0);
300
301 return true;
302 }
303
304 /**
305 * 更新大屏信息,同时判断是否已经关注,如果关注了则不跳转H5页面
306 * @param data
307 * @return
308 */
309 @Override
310 public String saveUserInfo(String data) {
311 Assert.notNull(data, "用户数据不可为空");
312 JSONObject json = JSONObject.parseObject(data);
313 String unionid = json.getString("unionid");
314 Assert.state(StrUtil.isNotBlank(unionid), "unionid不可为空");
315 String result = "";
316 // 订阅号appid
317 String appId = json.getString("dyAppid");
318 try {
319
320 // 过期时间300S
321 this.redisUtils.set(RedisKeyUtil.genSeSuSubscribeKey(unionid), data, 300);
322
323 // 若未传dyAppId。不走下面的流程
324 if (StrUtil.isNotBlank(appId))
325 result = this.checkWeiXinUserAndSubscribeStatus(appId,unionid);
326 } catch (Exception e) {
327 log.error(" saveUserInfo get an error || data: {} || msg: {} ", data, e.getMessage());
328 }
329
330 return result;
331 }
332
333
334
335 /**
336 * 检查微信账户和关注状态
337 * @param appId
338 * @param unionid
339 * @return
340 */
341 private String checkWeiXinUserAndSubscribeStatus(String appId, String unionid) {
342
343 UserWeixinDTO userWeixinDTO = this.findUserWeiXinByUnionIdAndAppId(unionid,appId);
344
345 if (Objects.isNull(userWeixinDTO.getId())) {
346 return UNSUBSCRIBE;
347 }
348
349 Integer status = userWeixinDTO.getStatus();
350 if (status == UNSUBSCRIBE_STATUS) {
351 return UNSUBSCRIBE;
352 }
353
354 return SUBSCRIBE;
355 }
356
357 private UserWeixinDTO findUserWeiXinByUnionIdAndAppId(String unionid, String appId) {
358 return this.userWeixinService.findFirstByUnionidAndAppid(unionid,appId);
359 }
360
361 /**
362 * 修改会员vip状态
363 */
364 private void doUpdateMemberVip(MemberDTO memberDTO,Integer vip1) {
365
366 Integer vip = memberDTO.getVip();
367 // 未购买付费会员
368 if (vip <= 1) {
369
370 memberDTO.setVip(vip1);
371
372 Member member = new Member();
373 BeanUtils.copyProperties(memberDTO,member);
374 this.memberService.update(member);
375 }
376 }
377
378 /**
379 * 获取小屏会员
380 * @param userWeixinDTO
381 * @return
382 */
383 private MemberDTO findMemberByUserWeixinDTO(UserWeixinDTO userWeixinDTO) {
384 Long memberId = userWeixinDTO.getMemberId();
385 if (Objects.nonNull(memberId)) {
386 MemberDTO memberDTO = this.findMemberById(memberId);
387 return memberDTO;
388 }
389 return null;
390 }
391
392 /**
393 * 修改微信公众号关注状态
394 * @param status 0:取消关注 1:关注
395 */
396 private UserWeixinDTO doUpdateUserWeiXinStatus(String appId, String openId, Integer status) {
397
398 UserWeixinDTO userWeixinDTO = this.userWeixinService.findFirstByAppIdAndOpenId(appId, openId);
399
400 if (Objects.nonNull(userWeixinDTO.getId())) {
401
402 userWeixinDTO.setStatus(status);
403
404 UserWeixin userWeixin = new UserWeixin();
405 BeanUtils.copyProperties(userWeixinDTO,userWeixin);
406
407 this.userWeixinService.update(userWeixin);
408
409 }
410
411 return userWeixinDTO;
412
413 }
414
415 /**
416 * 修改微信公众号关注状态
417 * @param status 0:取消关注 1:关注
418 */
419 private UserWeixinDTO doUpdateUserWeiXinStatus(UserWeixinDTO userWeixinDTO, Integer status) {
420
421 userWeixinDTO.setStatus(status);
422
423 UserWeixin userWeixin = new UserWeixin();
424 BeanUtils.copyProperties(userWeixinDTO,userWeixin);
425
426 this.userWeixinService.update(userWeixin);
427
428
429 return userWeixinDTO;
430
431 }
432
433 /**
434 * 通过openId和appId获取微信信息
435 * @param appId
436 * @param openId
437 * @return
438 */
439 private UserWeixinDTO findUserWeiXinByOpenIdAndAppId(String appId, String openId) {
440 UserWeixinDTO userWeixinDTO = this.userWeixinService.findFirstByAppIdAndOpenId(appId,openId);
441 return userWeixinDTO;
442 }
443
444 /**
445 * 获取会员
446 * @param memberId
447 * @return
448 */
449 private MemberDTO findMemberById(Long memberId) {
450 MemberDTO memberDTO = this.memberService.findById(memberId);
451 return memberDTO;
452 }
453
454 /**
455 * 小程序登录
456 * @param resources
457 * @return
458 */
459 @Override
460 @Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false, rollbackFor = Exception.class)
461 public UserWeixinDTO appletLogin(WeiXinUserBean resources) {
462
463 // 解析
464 DefaultWeiXinBeanDefinition weiXinBeanDefinition = this.parseAppletInfo(resources);
465
466 if (Objects.isNull(weiXinBeanDefinition.getAppId())) {
467 throw new RuntimeException("微信信息解析失败!");
468 }
469
470 // 链接微信服务器获取用户信息,创建UserWeixin
471 UserWeixin userWeixin = this.generateUserWeiXin(weiXinBeanDefinition,UNSUBSCRIBE_STATUS);
472
473 // 保存会员
474 Long memberId = this.doCreateMember(userWeixin,0);
475
476 // 保存或者修改,微信账户信息
477 UserWeixinDTO userWeixinDTO = this.doCreateUserWeiXin(userWeixin, memberId);
478
479 return userWeixinDTO;
480 }
481
482 /**
483 * 创建会员
484 * @description 同一用户只有一个会员,通过unionId查询任意账户是否关联了会员,如果关联了就不用再创建
485 * @param userWeixin
486 * @param vip
487 * @return
488 */
489 private Long doCreateMember(UserWeixin userWeixin,Integer vip) {
490
491 Long memberId = null;
492
493 if(Objects.nonNull(userWeixin)) {
494
495 String unionid = userWeixin.getUnionid();
496
497 // 新创建的小屏账户
498 if(Objects.nonNull(unionid)) {
499
500 // 查询第一个账户是否关联了会员
501 UserWeixinDTO userWeixinDTO = this.userWeixinService.findFirstByUnionId(unionid);
502
503 // 无账号,没有绑定会员
504 if (Objects.isNull(userWeixinDTO.getId()) || Objects.isNull(userWeixinDTO.getMemberId())) {
505 // 默认会员
506 Member member = MemberBuilder.build(LocalConstants.DEVICE_MOBILE,userWeixin.getHeadimgurl(),
507 userWeixin.getNickname(),vip);
508
509 memberId = this.memberService.create(member);
510
511 }
512
513 // 如果绑定了会员
514 if (Objects.nonNull(userWeixinDTO.getMemberId())) {
515 memberId = userWeixinDTO.getMemberId();
516 }
517
518 }
519
520 }
521
522 return memberId;
523 }
524
525 /**
526 * 保存微信账户信息
527 * @param userWeixin
528 * @param memberId
529 */
530 private UserWeixinDTO doCreateUserWeiXin(UserWeixin userWeixin,Long memberId) {
531 UserWeixinDTO userWeixinDTO = new UserWeixinDTO();
532 if(Objects.isNull(userWeixin.getId()) && Objects.nonNull(memberId)) {
533 userWeixin.setMemberId(memberId);
534 userWeixin.setStatus(1);
535 userWeixin.setSyncStatus(0);
536 userWeixin.setCreateBy("system");
537 userWeixin.setUpdateBy("system");
538 userWeixin.setAuthTime(TimestampUtil.now());
539 userWeixin = this.userWeixinService.create(userWeixin);
540 }
541
542 BeanUtils.copyProperties(userWeixin,userWeixinDTO);
543 return userWeixinDTO;
544 }
545
546 /**
547 * 链接微信服务器,创建或者修改UserWeiXinDTO
548 * @param weiXinBeanDefinition
549 * @return
550 */
551 private UserWeixin generateUserWeiXin(WeiXinBeanDefinition weiXinBeanDefinition,Integer status) {
552
553 String appId = weiXinBeanDefinition.getAppId();
554 String openId = weiXinBeanDefinition.getOpenId();
555 String unionId = weiXinBeanDefinition.getUnionId();
556 String nickname = weiXinBeanDefinition.getNickname();
557 String headImgUrl = weiXinBeanDefinition.getHeadImgUrl();
558
559 // 微信
560 UserWeixinDTO weixinDTO = this.userWeixinService.findFirstByAppIdAndOpenId(appId,openId);
561
562 if (Objects.isNull(weixinDTO.getId())) {
563
564 UserWeixin userWeixin = new UserWeixin()
565 .setAppid(appId)
566 .setOpenid(openId)
567 .setUnionid(unionId)
568 .setNickname(nickname)
569 .setHeadimgurl(headImgUrl)
570 .setStatus(status)
571 .setAuthTime(TimestampUtil.now());
572
573 return userWeixin;
574
575 }
576
577 UserWeixin userWeixin = new UserWeixin();
578 BeanUtils.copyProperties(weixinDTO,userWeixin);
579
580 return userWeixin;
581
582 }
583
584 /**
585 * 解析小程序
586 * @param resources
587 * @return
588 */
589 private DefaultWeiXinBeanDefinition parseAppletInfo(WeiXinUserBean resources) {
590 return this.parse(resources);
591 }
592
593 /**
594 * 解析微信信息
595 * @param resources
596 * @return
597 */
598 private DefaultWeiXinBeanDefinition parse(WeiXinUserBean resources) {
599 Map<String, String> weixinInfoMap = null;
600 String appId = resources.getWxAppid();
601 String code = resources.getWxCode();
602 String encryptedData = resources.getEncryptedData();
603 String iv = resources.getIv();
604 String userInfo = null;
605
606 if (StringUtils.isNotBlank(appId)) {
607 String decrypt = AESUtil.decrypt(appId, this.key);
608 if (decrypt != null) {
609 appId = decrypt.substring(16);
610 }
611 weixinInfoMap = this.getWeixinInfoByAppid(appId);
612 }
613
614 if (StringUtils.isNotBlank(code)) {
615 String decrypt = AESUtil.decrypt(code, this.key);
616 if (decrypt != null) {
617 code = decrypt.substring(16);
618 }
619 }
620
621 /*if (StringUtils.isNotBlank(resources.getEncryptedData())) {
622 String decrypt = AESUtil.decrypt(resources.getEncryptedData(), key);
623 if (decrypt != null) {
624 encryptedData = decrypt.substring(16);
625 }
626 }*/
627
628 /*if (StringUtils.isNotBlank(resources.getIv())) {
629 String decrypt = AESUtil.decrypt(iv, key);
630 if (decrypt != null) {
631 iv = decrypt.substring(16);
632 }
633 }*/
634
635 String appId_ = weixinInfoMap.get("appid");
636 String secret = weixinInfoMap.get("secret");
637
638 // 链接微信服务器
639 String url = WeChatConstants.CODE2SESSION.replace("APPID", appId_)
640 .replace("SECRET", secret).replace("JSCODE", code);
641 String entityBody = HttpUtil.get(url);
642 log.info("entityBody [{}]",entityBody);
643
644 JSONObject jsonObject = JSONObject.parseObject(entityBody);
645
646 String errCode = jsonObject.getString("errcode");
647
648 if (StringUtils.isNotEmpty(errCode)) {
649 String nameStr = jsonObject.getString("errmsg");
650 throw new BadRequestException(nameStr);
651 }
652
653 String openId = jsonObject.getString("openid");
654 String unionId = jsonObject.getString("unionid");
655 String sessionKey = jsonObject.getString("session_key");
656
657 JSONObject userInfoWxJo = null;
658
659 if (StringUtils.isNotBlank(encryptedData) && StringUtils.isNotBlank(iv) && StringUtils.isNotBlank(sessionKey)) {
660
661 String userInfoWeixin = AESUtil.decryptJsUserInfo(encryptedData, iv, sessionKey);
662 log.info("userInfoWeixin [{}]",userInfoWeixin);
663
664 if (StringUtils.isNotEmpty(userInfoWeixin))
665 userInfoWxJo = JSONObject.parseObject(userInfoWeixin);
666
667 }
668
669 if (StringUtils.isNotBlank(userInfo)) {
670
671 JSONObject userInfoJo = JSONObject.parseObject(userInfo);
672 if (Objects.nonNull(userInfoJo)) {
673 encryptedData = userInfoJo.getString("encryptedData");
674 iv = userInfoJo.getString("iv");
675 String sessionkey = jsonObject.getString("session_key");
676 String userInfoWeixin = AESUtil.decryptJsUserInfo(encryptedData, iv, sessionkey);
677 log.info("userInfo:" + userInfo);
678 userInfoWxJo = JSONObject.parseObject(userInfoWeixin);
679 }
680 }
681
682 DefaultWeiXinBeanDefinition weiXinBeanDefinition =
683 new DefaultWeiXinBeanDefinition(appId,code,unionId,openId,userInfoWxJo);
684
685 return weiXinBeanDefinition;
686 }
687
688 /**
689 *
690 * @param appid
691 * @return
692 */
693 private Map<String, String> getWeixinInfoByAppid(String appid) {
694 if (StringUtils.isBlank(appid)) {
695 throw new RuntimeException("wxAppid can not be null");
696 }
697 List<Map<String, String>> list = this.weiXinAppListConfig.getList();
698 Optional<Map<String, String>> weixinInfoOptional = list.stream().filter(o -> o.get("appid").equals(appid)).findFirst();
699 if (!weixinInfoOptional.isPresent()) {
700 throw new RuntimeException("wxAppid error, appid is : " + appid);
701 }
702 return weixinInfoOptional.get();
703 }
704
705 /**
706 * 大屏更换主账号
707 * @param resources
708 */
709 @Override
710 public void changeMainAccount(UserTv resources) {
711 // 会员编码
712 String memberCode = resources.getMemberCode();
713
714 // 大屏账户
715 UserTvDTO userTvDTO = this.findByUserTv(resources);
716
717 // 会员
718 MemberDTO memberDTO = this.findMemberByMemberCode(memberCode);
719
720 // 设置主会员
721 this.bondPriorityMember(userTvDTO, memberDTO);
722
723 }
724
725 /**
726 * 设置主会员
727 * @description 检查大屏账户有没有绑定小屏会员,如果没有绑定就将当前会员的code保存到大屏账户中
728 * @param userTvDTO
729 * @param memberDTO
730 */
731 private void bondPriorityMember(UserTvDTO userTvDTO, MemberDTO memberDTO) {
732
733 // 绑定的小屏编码
734 String priorityMemberCode = userTvDTO.getPriorityMemberCode();
735
736 if (StringUtils.isNotEmpty(priorityMemberCode)) {
737 return;
738 }
739
740 String memberCode = memberDTO.getCode();
741
742 // 绑定了小屏,结束
743 if (StringUtils.isEmpty(priorityMemberCode) && StringUtils.isNotEmpty(memberCode)) {
744 userTvDTO.setPriorityMemberCode(memberCode);
745 }
746
747 UserTv userTv = new UserTv();
748 BeanUtils.copyProperties(userTvDTO,userTv);
749 this.userTvService.update(userTv);
750
751 }
752
753 /**
754 * 通过账户获取大屏账户
755 * @param platformAccount
756 * @return
757 */
758 private UserTvDTO findByPlatformAccount(String platformAccount) {
759 return this.userTvService.findByPlatformAccount(platformAccount);
760 }
761
762 /**
763 * 通过编码获取会员
764 * @param memberCode
765 * @return
766 */
767 private MemberDTO findMemberByMemberCode(String memberCode) {
768 return this.memberService.getByCode(memberCode);
769 }
770
771 /**
772 * 大屏解绑
773 * @param resources
774 */
775 @Override
776 public void unbind(UserTv resources) {
777 // 大屏账户
778 UserTvDTO userTvDTO = this.findByUserTv(resources);
779
780 Long id = userTvDTO.getId();
781 String memberCode = resources.getMemberCode();
782
783 // 大屏会员
784 List<MemberDTO> memberDTOS = this.findMemberByCodeAndUserIptvId(id,memberCode);
785
786 // 解绑(置空大屏信息)
787 this.resetIptvColumn(memberDTOS);
788
789 // 置空主账号
790 this.resetMainAccount(memberCode);
791 }
792
793 /**
794 * 置空主账号
795 * @param memberCode
796 */
797 private void resetMainAccount(String memberCode) {
798 UserTvDTO userTvDTO = this.userTvService.findByPriorityMemberCode(memberCode);
799 if (Objects.nonNull(userTvDTO)) {
800 userTvDTO.setPriorityMemberCode(null);
801
802 UserTv userTv = new UserTv();
803 BeanUtils.copyProperties(userTvDTO,userTv);
804
805 this.userTvService.update(userTv);
806 }
807 }
808
809 /**
810 * 解绑(置空大屏信息)
811 * @param memberDTOS
812 */
813 private void resetIptvColumn(List<MemberDTO> memberDTOS) {
814 // 若无关系,不做处理
815 if (CollUtil.isEmpty(memberDTOS))
816 return;
817
818 Member member = new Member();
819 memberDTOS.get(0).setBindIptvTime(null);
820 memberDTOS.get(0).setUserIptvId(null);
821 memberDTOS.get(0).setBindIptvPlatformType(null);
822 BeanUtils.copyProperties(memberDTOS.get(0), member);
823 this.memberService.update(member);
824 }
825
826 /**
827 *
828 * @param tvUserId 大屏ic
829 * @param memberCode 会员编码
830 * @return
831 */
832 private List<MemberDTO> findMemberByCodeAndUserIptvId(Long tvUserId,String memberCode) {
833 MemberQueryCriteria memberQueryCriteria = new MemberQueryCriteria();
834 memberQueryCriteria.setCode(memberCode);
835 memberQueryCriteria.setUserIptvId(tvUserId);
836 List<MemberDTO> memberDTOS = memberService.queryAll(memberQueryCriteria);
837 return memberDTOS;
838 }
839
840 /**
841 * 通过大屏账户id查询大屏信息
842 * @param userTvId
843 * @return
844 */
845 private UserTvDTO findByUserTvId(Long userTvId) {
846 UserTvDTO userTvDTO = this.userTvService.findById(userTvId);
847 return userTvDTO;
848 }
849
850 /**
851 * 通过大屏账户查询大屏信息
852 * @param resources
853 * @return
854 */
855 private UserTvDTO findByUserTv(UserTv resources) {
856 String platformAccount = resources.getPlatformAccount();
857 UserTvDTO userTvDTO = this.userTvService.findByPlatformAccount(platformAccount);
858 return userTvDTO;
859 }
860
861 /**
862 * 创建大屏会员
863 * @param resources
864 * @return
865 */
866 @Override
867 @Transactional
868 public boolean createMemberByUserTv(UserTv resources) {
869 String platformAccount = resources.getPlatformAccount();
870 UserTvDTO userTvDTO = this.userTvService.findByPlatformAccount(platformAccount);
871 if (Objects.isNull(userTvDTO)) {
872 Member member = new Member();
873 // 大屏
874 member.setType(LocalConstants.MEMBER_PLATFORM_TYPE_VIS);
875 String code = member.getCode();
876 member.setCode(StringUtils.isEmpty(code)?String.valueOf(IdWorker.generator()):code);
877 member.setNickname(platformAccount);
878 member.setType(1);
879 Long memberId = this.memberService.create(member);
880
881 if (Objects.nonNull(memberId)) {
882 UserTv userTv = new UserTv();
883 BeanUtils.copyProperties(resources,userTv);
884 userTv.setPlatformAccount(platformAccount);
885 userTv.setMemberCode(member.getCode());
886
887 this.userTvService.create(userTv);
888
889 }
890
891 } else {
892 return false;
893 }
894
895 return true;
896 }
897
898 /**
899 * 绑定会员中的userIptvId字段
900 * @param resources
901 */
902 private MemberDTO bindIptvId(MemberDTO resources,UserTvDTO userTvDTO) {
903 String platform = userTvDTO.getPlatform();
904 // 绑定IPTV平台 0:未知;1:电信;2:移动;3:联通
905 Integer bindIptvPlatformType = 0;
906
907 // 联通
908 if (UserConstant.platform_lt.contains(platform)) {
909 bindIptvPlatformType = PLATFORM_LIST[3];
910 }
911
912 // 移动
913 if (UserConstant.platform_yd.contains(platform)) {
914 bindIptvPlatformType = PLATFORM_LIST[2];
915 }
916
917 // 电信
918 if (UserConstant.platform_dx.contains(platform)) {
919 bindIptvPlatformType = PLATFORM_LIST[1];
920 }
921
922 return this.bindIptvId(resources,userTvDTO.getId(),bindIptvPlatformType);
923 }
924
925 /**
926 * 绑定会员中的userIptvId字段
927 * @param userIptvId
928 * @param bindIptvPlatformType
929 */
930 private MemberDTO bindIptvId(MemberDTO memberDTO,Long userIptvId,Integer bindIptvPlatformType) {
931
932 //MemberDTO memberDTO = this.memberService.getByCode(resources.getCode());
933 if (memberDTO != null) {
934 memberDTO.setUserIptvId(userIptvId);
935 memberDTO.setBindIptvTime(TimestampUtil.now());
936 memberDTO.setBindIptvPlatformType(bindIptvPlatformType);
937 }
938
939 return memberDTO;
940 }
941
942 /**
943 * 修改会员
944 * @param memberDTO
945 */
946 private void doUpdateMemberByMemberDTO(MemberDTO memberDTO){
947 Member member = new Member();
948 BeanUtils.copyProperties(memberDTO,member);
949 this.doUpdateMember(member);
950 }
951
952 /**
953 * 修改会员
954 * @param member
955 */
956 private void doUpdateMember(Member member){
957 this.memberService.update(member);
958 }
959
960 /**
961 * 解析微信信息
962 * @param resources
963 * @return
964 */
965 @Override
966 public MemberProfile saveUserWeixinPhone(WeiXinUserBean resources) {
967 DefaultWeiXinBeanDefinition weiXinBeanDefinition = this.parseAppletInfo(resources);
968
969 if (Objects.nonNull(weiXinBeanDefinition.getOpenId())) {
970 throw new RuntimeException("微信信息解析失败!");
971 }
972
973 // 保存、修改会员加密信息
974 return this.doSaveOrUpdateMemberProfile(weiXinBeanDefinition,resources);
975 }
976
977 /**
978 * 保存、修改会员加密信息
979 * @param resources
980 * @return
981 */
982 private MemberProfile doSaveOrUpdateMemberProfile(DefaultWeiXinBeanDefinition resources,WeiXinUserBean weiXinUserBean) {
983
984 // 会员
985 MemberDTO memberDTO = this.findMemberById(weiXinUserBean.getMemberId());
986
987 if (Objects.nonNull(memberDTO)) {
988
989 Long memberId = memberDTO.getId();
990
991 // 会员加密信息
992 MemberProfileDTO memberProfileDTO = this.findMemberProfileByMemberId(memberId);
993
994 MemberProfile memberProfile = new MemberProfile();
995 if (Objects.nonNull(memberProfileDTO)) {
996 BeanUtils.copyProperties(memberProfileDTO , memberProfile);
997 }
998
999 memberProfile.setMemberId(memberId);
1000 memberProfile.setPhone(resources.getPhoneNumber());
1001
1002 // 保存、更新会员加密信息
1003 MemberProfile memberProfile1 = this.saveMemberProfile(memberProfile);
1004
1005 return memberProfile1;
1006
1007 }
1008
1009 return null;
1010
1011 }
1012
1013 private MemberProfileDTO findMemberProfileByMemberId(Long memberId) {
1014 MemberProfileDTO memberProfileDTO = this.memberProfileService.findByMemberId(memberId);
1015 return memberProfileDTO;
1016 }
1017
1018 private MemberProfile saveMemberProfile(MemberProfile memberProfile) {
1019 return this.memberProfileService.create(memberProfile);
1020 }
1021
1022
1023
1024
1025
1026 }
1 package com.topdraw.business.process.service.impl;
2
3 import com.topdraw.business.basicdata.member.domain.Member;
4 import com.topdraw.business.basicdata.member.service.MemberService;
5 import com.topdraw.business.basicdata.member.service.dto.MemberDTO;
6 import com.topdraw.business.basicdata.user.iptv.domain.UserTv;
7 import com.topdraw.business.basicdata.user.iptv.repository.UserTvRepository;
8 import com.topdraw.business.basicdata.user.iptv.service.UserTvService;
9 import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvDTO;
10 import com.topdraw.business.basicdata.user.iptv.service.mapper.UserTvMapper;
11 import com.topdraw.business.process.service.UserTvOperationService;
12 import com.topdraw.config.LocalConstants;
13 import com.topdraw.util.Base64Util;
14 import com.topdraw.util.IdWorker;
15 import com.topdraw.util.RedissonUtil;
16 import com.topdraw.util.TimestampUtil;
17 import com.topdraw.utils.StringUtils;
18 import lombok.extern.slf4j.Slf4j;
19 import org.redisson.api.RLock;
20 import org.redisson.api.RedissonClient;
21 import org.springframework.beans.BeanUtils;
22 import org.springframework.beans.factory.annotation.Autowired;
23 import org.springframework.stereotype.Service;
24 import org.springframework.transaction.annotation.Transactional;
25
26 import java.util.Objects;
27
28 @Service
29 @Slf4j
30 public class UserTvOperationServiceImpl implements UserTvOperationService {
31
32 @Autowired
33 private RedissonClient redissonClient;
34
35 @Autowired
36 private MemberService memberService;
37
38 @Autowired
39 private UserTvService userTvService;
40
41
42 @Override
43 @Transactional
44 public boolean createMemberByUserTv(UserTv resources) {
45 String platformAccount = resources.getPlatformAccount();
46 UserTvDTO userTvDTO = this.userTvService.findByPlatformAccount(platformAccount);
47 if (Objects.isNull(userTvDTO)) {
48 Member member = new Member();
49 // 大屏
50 member.setType(LocalConstants.MEMBER_PLATFORM_TYPE_VIS);
51 String code = member.getCode();
52 member.setCode(StringUtils.isEmpty(code)?String.valueOf(IdWorker.generator()):code);
53 String platformAccount1 = resources.getPlatformAccount();
54 member.setNickname(Base64Util.encode(platformAccount1));
55 member.setBindIptvPlatformType(1);
56 member.setType(1);
57 Long memberId = this.memberService.create(member);
58
59 if (Objects.nonNull(memberId)) {
60 UserTv userTv = new UserTv();
61 BeanUtils.copyProperties(resources,userTv);
62 userTv.setPlatformAccount(platformAccount);
63 userTv.setMemberCode(member.getCode());
64 Long userIptvId = this.userTvService.create(userTv);
65
66 if (Objects.nonNull(userIptvId)) {
67 member.setId(memberId);
68 member.setUserIptvId(userIptvId);
69 member.setBindIptvTime(TimestampUtil.now());
70 member.setPlatformAccount(platformAccount);
71 this.bindIptvId(member);
72 }
73 }
74
75 } else {
76 return false;
77 }
78
79 return true;
80 }
81
82 private void bindIptvId(Member resources) {
83 RLock rLock = this.redissonClient.getLock("Member::update::code" + resources.getCode());
84 try {
85 RedissonUtil.lock(rLock);
86 MemberDTO member = this.memberService.getByCode(resources.getCode());
87 if (member!=null) {
88 this.memberService.update(resources);
89 }
90 } catch (Exception e) {
91 e.printStackTrace();
92 throw e;
93 } finally {
94 RedissonUtil.unlock(rLock);
95 }
96 }
97
98 }
1 package com.topdraw.config;
2
3 import cn.hutool.core.util.StrUtil;
4
5 public class RedisKeyUtil {
6
7
8 /**
9 * @return java.lang.String
10 * @description 订阅号大屏扫码关注
11 * @author Hongyan Wang
12 * @date 2021/8/24 1:36 下午
13 */
14 public static String genSeSuSubscribeKey(String unionid) {
15 return StrUtil.format("BMSubscribe_unionid_{}", unionid);
16 }
17
18 }
...@@ -19,7 +19,7 @@ public class MessageProducer { ...@@ -19,7 +19,7 @@ public class MessageProducer {
19 private AmqpTemplate amqpTemplate; 19 private AmqpTemplate amqpTemplate;
20 20
21 21
22 @Value("${service.platform}") 22 @Value("${uc.service.platform}")
23 private String platformType; 23 private String platformType;
24 24
25 public void sendMessage(String msg,String exchangeName){ 25 public void sendMessage(String msg,String exchangeName){
......
1 package com.topdraw.resttemplate; 1 package com.topdraw.resttemplate;
2 2
3 import com.alibaba.fastjson.JSONObject; 3 import com.alibaba.fastjson.JSONObject;
4 import com.topdraw.business.basicdata.member.address.domain.MemberAddress; 4 import com.topdraw.business.module.member.address.domain.MemberAddress;
5 import com.topdraw.business.basicdata.member.domain.Member; 5 import com.topdraw.business.module.member.domain.Member;
6 import com.topdraw.business.basicdata.member.relatedinfo.domain.MemberRelatedInfo; 6 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
7 import lombok.extern.slf4j.Slf4j; 7 import lombok.extern.slf4j.Slf4j;
8 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.core.env.Environment; 9 import org.springframework.core.env.Environment;
...@@ -17,7 +17,7 @@ import java.util.Map; ...@@ -17,7 +17,7 @@ import java.util.Map;
17 17
18 @Slf4j 18 @Slf4j
19 @Component 19 @Component
20 public class ApiUtil { 20 public class RestTemplateClient {
21 21
22 private static RestTemplate restTemplate; 22 private static RestTemplate restTemplate;
23 23
......
1 package com.topdraw.schedule; 1 package com.topdraw.schedule;
2 2
3 import com.topdraw.business.basicdata.points.available.service.PointsAvailableService;
4 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableDTO;
5 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableQueryCriteria;
6 import com.topdraw.business.basicdata.points.standingbook.domain.PointsStandingBook;
7 import com.topdraw.business.basicdata.points.standingbook.service.PointsStandingBookService;
8 import com.topdraw.business.process.service.PointsOperationService; 3 import com.topdraw.business.process.service.PointsOperationService;
9 import com.topdraw.util.DateUtil;
10 import lombok.extern.slf4j.Slf4j;
11 import org.aspectj.lang.annotation.After;
12 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.beans.factory.annotation.Autowired;
13 import org.springframework.scheduling.annotation.EnableScheduling;
14 import org.springframework.scheduling.annotation.Scheduled;
15 import org.springframework.stereotype.Component;
16 import org.springframework.util.CollectionUtils;
17
18 import java.sql.Timestamp;
19 import java.time.LocalDate;
20 import java.util.List;
21 5
22 /** 6 /**
23 * 积分台账 7 * 积分台账
......
1 package com.topdraw.security;
2
3 import com.alibaba.fastjson.JSONObject;
4 import com.topdraw.utils.StringUtils;
5 import lombok.extern.slf4j.Slf4j;
6 import org.bouncycastle.jce.provider.BouncyCastleProvider;
7
8 import javax.crypto.Cipher;
9 import javax.crypto.SecretKey;
10 import javax.crypto.spec.IvParameterSpec;
11 import javax.crypto.spec.SecretKeySpec;
12 import java.security.AlgorithmParameters;
13 import java.security.Key;
14 import java.security.Security;
15 import java.security.spec.AlgorithmParameterSpec;
16 import java.util.Arrays;
17
18 @Slf4j
19 public class AESUtil {
20
21 public static String encrypt(String data, String key) {
22 String strResult = null;
23 try {
24 SecretKey secretKey = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
25 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
26 AlgorithmParameterSpec aps = new IvParameterSpec("0123456789ABCDEF".getBytes("UTF-8"));
27 cipher.init(Cipher.ENCRYPT_MODE, secretKey, aps);
28 byte[] result = cipher.doFinal(data.getBytes("UTF-8"));
29 StringBuilder sb_hex = new StringBuilder();
30 for (byte b : result) {
31 sb_hex.append(String.format("%02x", b));
32 }
33 strResult = sb_hex.toString();
34 } catch (Exception e) {
35
36 }
37 return strResult;
38 }
39
40 public static String decrypt(String encryptedData, String key) {
41 String strResult = null;
42 try {
43 int len = encryptedData.length() / 2;
44 byte[] data = new byte[len];
45 for (int i = 0; i < len; i++) {
46 String str = encryptedData.substring(i * 2, i * 2 + 2);
47 data[i] = Integer.valueOf(str, 16).byteValue();
48 }
49 SecretKey secretKey = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
50 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
51 AlgorithmParameterSpec aps = new IvParameterSpec("0123456789ABCDEF".getBytes("UTF-8"));
52 cipher.init(Cipher.DECRYPT_MODE, secretKey, aps);
53 byte[] result = cipher.doFinal(data);
54 strResult = new String(result, "UTF-8");
55 } catch (Exception e) {
56
57 }
58 return strResult;
59 }
60
61 private static final String AES ="AES";
62 private static final String AES_CBC_PKCS7 ="AES/CBC/PKCS7Padding";
63 public static String decryptJsUserInfo(String encryptedData,String iv,String sessionKey) {
64 try {
65 byte[] data = java.util.Base64.getDecoder().decode(encryptedData);
66 byte[] aseKey = java.util.Base64.getDecoder().decode(sessionKey);
67 byte[] ivData = java.util.Base64.getDecoder().decode(iv);
68 Security.addProvider(new BouncyCastleProvider());
69 Cipher cipher = Cipher.getInstance(AES_CBC_PKCS7);
70
71 Key sKeySpec = new SecretKeySpec(aseKey, AES);
72 AlgorithmParameterSpec aps = new IvParameterSpec(ivData);
73 cipher.init(Cipher.DECRYPT_MODE, sKeySpec, aps);// 初始化
74 byte[] result = cipher.doFinal(data);
75 return new String(result);
76 } catch (Exception e) {
77 log.error("decryptJsUserInfo:"+ e);
78 return null;
79 }
80 }
81
82 public static JSONObject decryptJsUserPhone(String encryptedData, String iv, String key) {
83 byte[] dataByte = java.util.Base64.getDecoder().decode(encryptedData);
84 // 加密秘钥
85 byte[] keyByte = java.util.Base64.getDecoder().decode(key);
86 // 偏移量
87 byte[] ivByte = java.util.Base64.getDecoder().decode(iv);
88 try {
89 // 如果密钥不足16位,那么就补足. 这个if 中的内容很重要
90 int base = 16;
91 if (keyByte.length % base != 0) {
92 int groups = keyByte.length / base + (keyByte.length % base != 0 ? 1 : 0);
93 byte[] temp = new byte[groups * base];
94 Arrays.fill(temp, (byte) 0);
95 System.arraycopy(keyByte, 0, temp, 0, keyByte.length);
96 keyByte = temp;
97 }
98 // 初始化
99 Security.addProvider(new BouncyCastleProvider());
100 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding","BC");
101 SecretKeySpec spec = new SecretKeySpec(keyByte, "AES");
102 AlgorithmParameters parameters = AlgorithmParameters.getInstance("AES");
103 parameters.init(new IvParameterSpec(ivByte));
104 cipher.init(Cipher.DECRYPT_MODE, spec, parameters);// 初始化
105 byte[] resultByte = cipher.doFinal(dataByte);
106 if (null != resultByte && resultByte.length > 0) {
107 String result = new String(resultByte, "UTF-8");
108 return JSONObject.parseObject(result);
109 }
110 } catch (Exception e) {
111 e.printStackTrace();
112 }
113 return null;
114 }
115 }
1 package com.topdraw.weixin.applet;
2
3 import cn.hutool.http.HttpUtil;
4 import com.alibaba.fastjson.JSONObject;
5 import com.topdraw.business.process.domian.weixin.WeiXinUserBean;
6 import com.topdraw.security.AESUtil;
7 import com.topdraw.utils.StringUtils;
8 import com.topdraw.weixin.beans.DefaultWeiXinBeanDefinition;
9 import com.topdraw.weixin.beans.WeiXinUserParser;
10 import com.topdraw.weixin.beans.config.WeiXinAppListConfig;
11 import com.topdraw.weixin.util.WeChatConstants;
12 import com.topdraw.weixin.util.WeiXinRequestUtil;
13 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.beans.factory.annotation.Value;
15 import org.springframework.http.HttpMethod;
16 import org.springframework.http.ResponseEntity;
17 import org.springframework.stereotype.Component;
18 import org.springframework.web.client.RestTemplate;
19
20 import java.util.List;
21 import java.util.Map;
22 import java.util.Optional;
23
24 @Component
25 public class WeiXinAppletUserParser implements WeiXinUserParser {
26
27 @Autowired
28 private WeiXinAppListConfig weiXinAppListConfig;
29
30 @Autowired
31 private WeiXinRequestUtil weixinRequestUtil;
32
33 @Value("${uc.service.platform:}")
34 private String platform;
35
36 @Value("${key:}")
37 private String key;
38
39 @Value("${uc.app.subAppId:wx05f35931270014be}")
40 private String subAppId;
41
42 @Value("${uc.app.h5AppId:wxca962918dfeed88c}")
43 private String h5AppId;
44
45 @Value("${uc.app.appletAppid:wxc57d42de3d351cec}")
46 private String appletAppid;
47
48 @Value("${file.upload:upload}")
49 private String filePath;
50
51 @Override
52 public DefaultWeiXinBeanDefinition parse(WeiXinUserBean resources) {
53 String key = this.key;
54 Map<String, String> weixinInfoMap = null;
55 String appId = resources.getWxAppid();
56 String code = resources.getWxCode();
57 String userInfo = null;
58
59 if (StringUtils.isNotBlank(appId)) {
60
61 String decrypt = AESUtil.decrypt(appId, key);
62
63 if (decrypt != null) {
64 appId = decrypt.substring(16);
65 }
66
67 weixinInfoMap = getWeixinInfoByAppid(appId);
68 }
69
70 if (StringUtils.isNotBlank(code)) {
71 String decrypt = AESUtil.decrypt(code, key);
72 if (decrypt != null) {
73 code = decrypt.substring(16);
74 }
75 }
76
77 if (StringUtils.isNotBlank(userInfo)) {
78 String decrypt = AESUtil.decrypt(userInfo, key);
79 if (decrypt != null) {
80 userInfo = decrypt.substring(16);
81 }
82 }
83
84 return this.generateWeiXinBeanDefinition(code,userInfo,weixinInfoMap);
85 }
86
87 /**
88 *
89 * @param code
90 * @param userInfo
91 * @param weixinInfoMap
92 * @return
93 */
94 private DefaultWeiXinBeanDefinition generateWeiXinBeanDefinition(String code, String userInfo, Map<String, String> weixinInfoMap) {
95 String appId = weixinInfoMap.get("appid");
96 String secret = weixinInfoMap.get("secret");
97 JSONObject userInfoWxJo = null;
98
99 // 链接微信服务器
100 /*ResponseEntity<String> responseEntity1 = null;*//*restTemplate.exchange(WeChatConstants.CODE2SESSION.replace("APPID", appId)
101 .replace("SECRET", secret).replace("JSCODE", code),
102 HttpMethod.GET, null, String.class);*//*
103
104 String entityBody1 = responseEntity1.getBody();*/
105
106 String url = WeChatConstants.CODE2SESSION.replace("APPID", appId)
107 .replace("SECRET", secret).replace("JSCODE", code);
108 String entityBody = HttpUtil.get(url);
109
110 JSONObject jsonObject = JSONObject.parseObject(entityBody);
111
112 String openId = jsonObject.getString("openid");
113 String unionId = jsonObject.getString("unionid");
114
115 if (StringUtils.isEmpty(unionId)) {
116 try {
117 userInfoWxJo = this.weixinRequestUtil.getUserInfo(weixinInfoMap, openId,code);
118 } catch (Exception e) {
119 e.printStackTrace();
120 }
121 }
122
123 if (StringUtils.isNotBlank(userInfo)) {
124
125 JSONObject userInfoJo = JSONObject.parseObject(userInfo);
126 String encryptedData = userInfoJo.getString("encryptedData");
127 String iv = userInfoJo.getString("iv");
128 String key = jsonObject.getString("session_key");
129 String userInfoWeixin = AESUtil.decryptJsUserInfo(encryptedData, iv, key);
130 if (StringUtils.isNotEmpty(userInfoWeixin))
131 userInfoWxJo = JSONObject.parseObject(userInfoWeixin);
132 }
133
134 DefaultWeiXinBeanDefinition weiXinBeanDefinition =
135 new DefaultWeiXinBeanDefinition(appId,code,unionId,openId,userInfoWxJo);
136 return weiXinBeanDefinition;
137 }
138
139 /**
140 *
141 * @param appid
142 * @return
143 */
144 private Map<String, String> getWeixinInfoByAppid(String appid) {
145 if (StringUtils.isBlank(appid)) {
146 throw new RuntimeException("wxAppid can not be null");
147 }
148 List<Map<String, String>> list = this.weiXinAppListConfig.getList();
149 Optional<Map<String, String>> weixinInfoOptional = list.stream().filter(o -> o.get("appid").equals(appid)).findFirst();
150 if (!weixinInfoOptional.isPresent()) {
151 throw new RuntimeException("wxAppid error, appid is : " + appid);
152 }
153 return weixinInfoOptional.get();
154 }
155
156 }
1 package com.topdraw.weixin.beans;
2
3 import lombok.Data;
4
5 @Data
6 public class ActionInfo {
7 private Scene scene;
8 }
1 package com.topdraw.weixin.beans;
2
3 import cn.hutool.core.date.DateUtil;
4 import cn.hutool.http.HttpUtil;
5 import com.alibaba.fastjson.JSONObject;
6 import com.topdraw.exception.BadRequestException;
7 import com.topdraw.utils.StringUtils;
8 import lombok.Data;
9 import org.springframework.beans.factory.annotation.Value;
10 import org.springframework.stereotype.Component;
11
12 import java.io.File;
13 import java.nio.charset.StandardCharsets;
14 import java.util.Base64;
15 import java.util.Date;
16 import java.util.UUID;
17
18 @Data
19 @Component
20 public class DefaultWeiXinBeanDefinition implements WeiXinBeanDefinition {
21
22 //
23 private String appid;
24
25 private String openId;
26
27 private String code;
28
29 private String token;
30
31 private String secret;
32
33 private String unionId;
34
35 private String nickname;
36
37 private String headImgUrl;
38
39 private JSONObject userInfo;
40
41 private String phoneNumber;
42
43 @Value("${file.upload:upload}")
44 private String filePath;
45
46 public DefaultWeiXinBeanDefinition() {
47 }
48
49 public DefaultWeiXinBeanDefinition(String appId, String code,String unionId,String openId, JSONObject userInfoWxJo) {
50
51 this.userInfo = userInfoWxJo;
52 if (userInfo != null) {
53
54 if (StringUtils.isNotBlank(userInfoWxJo.getString("unionId"))) {
55 unionId = userInfoWxJo.getString("unionId");
56 }
57
58 if (StringUtils.isNotBlank(userInfoWxJo.getString("openId"))) {
59 openId = userInfoWxJo.getString("openId");
60 }
61
62 headImgUrl = userInfoWxJo.getString("avatarUrl");
63
64 if (StringUtils.isNotBlank(userInfoWxJo.getString("nickName"))) {
65 nickname = Base64.getEncoder().encodeToString(userInfoWxJo.getString("nickName").getBytes(StandardCharsets.UTF_8));
66 }
67
68 String phoneNumber = userInfoWxJo.getString("phoneNumber");
69 if (StringUtils.isBlank(phoneNumber)) {
70 throw new BadRequestException("phoneNumber is null...");
71 }
72
73 this.phoneNumber = phoneNumber;
74
75 if (StringUtils.isNotBlank(headImgUrl)) {
76
77 new Thread(() -> {
78 String s = UUID.randomUUID().toString();
79 File file = new File(System.getProperty("user.dir") + "/" + filePath + "/icon/" + DateUtil.format(new Date(), "yyyy-MM-dd"));
80 if (!file.exists()) {
81 file.mkdirs();
82 }
83
84 HttpUtil.downloadFile(headImgUrl, new File(System.getProperty("user.dir") + "/" + filePath + "/icon/" + DateUtil.format(new Date(), "yyyy-MM-dd") + "/" + s + ".jpg"));
85
86 headImgUrl = filePath + "/icon/" + DateUtil.format(new Date(), "yyyy-MM-dd") + "/" + s + ".jpg";
87 }).start();
88
89 }
90
91 }
92
93 this.unionId = unionId;
94 this.openId = openId;
95 this.appid = appId;
96 this.code = code;
97 }
98
99 @Override
100 public String getAppId() {
101 return this.appid;
102 }
103
104 @Override
105 public String getCode() {
106 return this.code;
107 }
108
109 @Override
110 public String getToken() {
111 return this.token;
112 }
113
114 @Override
115 public String getSecret() {
116 return this.secret;
117 }
118
119 @Override
120 public String getOpenId() {
121 return this.openId;
122 }
123
124 @Override
125 public String getUnionId() {
126 return this.unionId;
127 }
128
129 @Override
130 public String getNickname() {
131 return this.nickname;
132 }
133
134 @Override
135 public String getHeadImgUrl() {
136 return this.headImgUrl;
137 }
138
139 @Override
140 public JSONObject getUserInfo() {
141 return this.userInfo;
142 }
143 }
1 package com.topdraw.weixin.beans;
2
3 import com.alibaba.fastjson.annotation.JSONField;
4 import lombok.Data;
5
6 @Data
7 public class QrCode {
8
9 @JSONField(name = "action_name")
10 private String actionName;
11
12 @JSONField(name = "expire_seconds")
13 private Integer expireSeconds;
14
15 @JSONField(name = "action_info")
16 private ActionInfo actionInfo;
17
18
19
20 }
1 package com.topdraw.weixin.beans;
2
3 import com.alibaba.fastjson.annotation.JSONField;
4 import lombok.Data;
5
6 @Data
7 public class Scene {
8 @JSONField(name = "scene_id")
9 private Long sceneId;
10
11 @JSONField(name = "scene_str")
12 private String sceneStr;
13 }
1 package com.topdraw.weixin.beans;
2
3
4 import lombok.AllArgsConstructor;
5 import lombok.Data;
6 import lombok.NoArgsConstructor;
7
8 @Data
9 @NoArgsConstructor
10 @AllArgsConstructor
11 public class WeiXinBean {
12
13 //
14 private String appid;
15
16 private String openId;
17
18 private String code;
19
20 private String token;
21
22 private String secret;
23
24 private String unionId;
25
26 private String nickname;
27
28 private String headImgUrl;
29
30 }
1 package com.topdraw.weixin.beans;
2
3 import com.alibaba.fastjson.JSONObject;
4
5 public interface WeiXinBeanDefinition {
6
7 String getAppId();
8
9 String getCode();
10
11 String getToken();
12
13 String getSecret();
14
15 String getOpenId();
16
17 String getUnionId();
18
19 String getNickname();
20
21 String getHeadImgUrl();
22
23 JSONObject getUserInfo();
24 }
1 package com.topdraw.weixin.beans;
2
3 import com.alibaba.fastjson.annotation.JSONField;
4 import lombok.Data;
5
6 import java.util.Map;
7
8 @Data
9 public class WeiXinNotice {
10
11 @JSONField(serialize=false)
12 private String appid;
13
14 @JSONField(serialize=false)
15 private Long userId;
16
17 //目标用户
18 @JSONField(name = "touser")
19 private String toUser;
20
21 // 模板code
22 @JSONField(serialize=false)
23 private String code;
24
25 // 模板id
26 @JSONField(name = "template_id")
27 private String templateId;
28
29 // 点击通知跳转页面
30 private String page;
31
32 // 小程序版本
33 @JSONField(name = "miniprogram_state")
34 private String miniprogramState;
35
36 // 填充数据
37 private Map<String, Object> data;
38 }
1 package com.topdraw.weixin.beans;
2
3 import com.topdraw.business.process.domian.weixin.WeiXinUserBean;
4
5 public interface WeiXinUserParser {
6
7 DefaultWeiXinBeanDefinition parse(WeiXinUserBean appletUserLoginInfo);
8
9 }
1 package com.topdraw.weixin.beans.config;
2
3 import lombok.Data;
4 import org.springframework.beans.factory.annotation.Value;
5 import org.springframework.boot.context.properties.ConfigurationProperties;
6 import org.springframework.context.annotation.Configuration;
7 import org.springframework.stereotype.Component;
8
9 import java.util.List;
10 import java.util.Map;
11
12 @Data
13 @Configuration
14 @ConfigurationProperties(prefix = "weixin")
15 public class WeiXinAppListConfig {
16
17 private List<Map<String, String>> list;
18
19 /*@Value("${uc.service.platform:}")
20 private String platform;
21
22 @Value("${key:}")
23 private String key;
24
25 @Value("${uc.app.subAppId:wx05f35931270014be}")
26 private String subAppId;
27
28 @Value("${uc.app.h5AppId:wxca962918dfeed88c}")
29 private String h5AppId;
30
31 @Value("${uc.app.appletAppid:wxc57d42de3d351cec}")
32 private String appletAppid;
33
34 @Value("${file.upload:upload}")
35 private String filePath;*/
36
37 }
38
39
1 package com.topdraw.weixin.util;
2
3 public class WeChatConstants {
4
5 public static String HTTPS_AUTHORIZE_WITH_SNSAPI_USERINFO = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
6
7 public static final String HTTPS_TOKEN = "https://api.weixin.qq.com/cgi-bin/token";
8
9 public static final String HTTPS_TICKET_GETTICKET = "https://api.weixin.qq.com/cgi-bin/ticket/getticket";
10
11 public static final String HTTPS_SNS_OAUTH2_ACCESS_TOKEN = "https://api.weixin.qq.com/sns/oauth2/access_token";
12
13 public static final String HTTPS_SNS_USERINFO = "https://api.weixin.qq.com/sns/userinfo";
14
15 public static final String CODE2SESSION = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code";
16
17 /**
18 * 把媒体文件上传到微信服务器。目前仅支持图片。用于发送客服消息或被动回复用户消息。
19 */
20 public static String UPLOAD_URL = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type=image";
21
22 /**
23 * 获取客服消息内的临时素材。即下载临时的多媒体文件。
24 */
25 public static String GET_MEDIA = "https://api.weixin.qq.com/cgi-bin/media/get?access_token={0}&media_id={1}";
26
27 /**
28 * 用于向微信服务端申请二维码的url
29 */
30 public static String URL_QR_CODE = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={0}";
31
32 /**
33 * 用于聊天时向用户发送消息的url
34 */
35 public static String CUSTOM_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={0}";
36
37 /**
38 * 发送小程序订阅消息
39 */
40 public static final String SUBSCRIBE_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token={0}";
41
42 /**
43 * 生成带参数二维码
44 */
45 public static final String QR_CODE_URL = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}";
46
47 /**
48 * 获取用户基本信息
49 */
50 public static final String GET_USER_INFO = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang=zh_CN";
51
52
53 // 批量获取关注者列表
54 public static final String GET_USER_LIST = "https://api.weixin.qq.com/cgi-bin/user/get?access_token={0}&next_openid={1}";
55
56 /**
57 * 成功
58 */
59 public static String SUCCESS = "SUCCESS";
60
61 /**
62 * 微信系统错误
63 */
64 public static String SYSTEMERROR = "SYSTEMERROR";
65
66 /**
67 * 失败 (注意:微信有的接口返回的失败用FAIL字符串表示,有的接口用FAILED表示)
68 */
69 public static String FAIL = "FAIL";
70
71 /**
72 * 微信企业付款到个人失败 (注意:微信有的接口返回的失败用FAIL字符串表示,有的接口用FAILED表示)
73 */
74 public static String FAILED = "FAILED";
75
76 public static String ACCESS_TOKEN = "access_token";
77
78 public static String ERR_CODE = "errcode";
79
80 /**
81 * 微信请求时,返回ACCESS_TOKEN错误码
82 */
83 public static final String ACCESS_TOKEN_INVALID_CODE = "40001";
84
85
86 /**
87 * 文本消息
88 */
89 public static String MSG_TYPE_TEXT = "text";
90
91 public static String MSG_TYPE_MINIPROGRAMPAGE = "miniprogrampage";
92
93 public static String MSG_TYPE_LINK = "link";
94
95 public static String MSG_TYPE_IMAGE = "image";
96
97 /**
98 * 事件消息
99 */
100 public static String MSG_TYPE_EVENT = "event";
101
102
103 /**
104 * 二维码类型,临时的整型参数值
105 */
106 public static String QR_SCENE = "QR_SCENE";
107
108 /**
109 * 二维码类型,临时的字符串参数值
110 */
111 public static String QR_STR_SCENE = "QR_STR_SCENE";
112
113 /**
114 * 二维码类型,永久的整型参数值
115 */
116 public static String QR_LIMIT_SCENE = "QR_LIMIT_SCENE";
117
118 /**
119 * 二维码类型,永久的字符串参数值
120 */
121 public static String QR_LIMIT_STR_SCENE = "QR_LIMIT_STR_SCENE";
122
123
124 /******** 事件推送事件类型BEGIN********/
125
126 /**
127 * 取消订阅
128 */
129 public static final String EVENT_UNSUBSCRIBE = "unsubscribe";
130
131
132 /**
133 * 订阅
134 */
135 public static final String EVENT_SUBSCRIBE = "subscribe";
136
137 /**
138 * 扫描带参数二维码事件,用户已关注时的事件推送
139 */
140 public static final String EVENT_SCAN = "SCAN";
141
142 /**
143 * 上报地理位置事件
144 */
145 public static final String EVENT_LOCATION = "LOCATION";
146
147 /**
148 * 自定义菜单事件
149 */
150 public static final String EVENT_CLICK = "CLICK";
151
152 /******** 事件推送事件类型END********/
153
154
155 /**
156 * 微信ACCESS_TOKEN缓存KEY
157 */
158 public static final String TOKEN_KEY = "GLOBAL_WX_ACCESS_TOKEN_";
159
160
161 /**
162 * 微信临时素材缓存KEY
163 */
164 public static final String WEIXIN_MEDIA_KEY = "WEIXIN_MEDIA_KEY_";
165
166 // 微信应用类型 小程序 服务号 订阅号
167 // 小程序
168 public static final String WX_APPLET = "applet";
169 // 服务号
170 public static final String WX_SERVICE = "service";
171 // 订阅号
172 public static final String WX_SUBSCRIPTION = "subscription";
173
174
175 }
1 package com.topdraw.weixin.util;
2
3 import cn.hutool.core.util.StrUtil;
4 import cn.hutool.http.HttpRequest;
5 import cn.hutool.http.HttpResponse;
6 import com.alibaba.fastjson.JSON;
7 import com.alibaba.fastjson.JSONObject;
8 import com.topdraw.utils.RedisUtils;
9 import com.topdraw.utils.StringUtils;
10 import com.topdraw.weixin.beans.QrCode;
11 import com.topdraw.weixin.beans.WeiXinNotice;
12 import lombok.extern.slf4j.Slf4j;
13 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.retry.annotation.Backoff;
15 import org.springframework.retry.annotation.Retryable;
16 import org.springframework.stereotype.Component;
17
18 import java.io.File;
19 import java.io.IOException;
20 import java.net.URLEncoder;
21 import java.text.MessageFormat;
22 import java.util.HashMap;
23 import java.util.Map;
24 import java.util.concurrent.TimeUnit;
25
26 @Component
27 @Slf4j
28 public class WeiXinRequestUtil {
29
30 @Autowired
31 private RedisUtils redisUtils;
32
33 /**
34 *
35 * */
36 private static String doGet(String url, Map<String, String> param) {
37 String result = null;
38 try {
39 String queryString = "";
40 if (null != param) {
41 for (Map.Entry<String, String> entry : param.entrySet()) {
42 queryString += entry.getKey() + "=" + URLEncoder.encode("" + entry.getValue(), "UTF-8") + "&";
43 }
44 if (queryString.length() > 0) {
45 queryString = queryString.substring(0, queryString.length() - 1);
46 }
47 }
48 log.info("weixin request: " + url + "?" + queryString);
49 HttpResponse response = HttpRequest.get(url + "?" + queryString).execute();
50 if (response.isOk()) {
51 result = response.body();
52 log.info("weixin response: " + result);
53 }
54 } catch (Exception e) {
55 e.printStackTrace();
56 }
57 return result;
58 }
59
60 private String wx_token(String appid, String secret) {
61 Map<String, String> param = new HashMap<>();
62 param.put("grant_type", "client_credential");
63 param.put("appid", appid);
64 param.put("secret", secret);
65 return this.doGet(WeChatConstants.HTTPS_TOKEN, param);
66 }
67
68 @Retryable(value = Exception.class, maxAttempts = 2, backoff = @Backoff(delay = 0L, multiplier = 0.0))
69 public String wx_ticket_getticket(String appid, String secret) {
70 String token = getToken(appid, secret,null);
71 Map<String, String> param = new HashMap<>();
72 param.put("access_token", token);
73 param.put("type", "jsapi");
74 return doGet(WeChatConstants.HTTPS_TICKET_GETTICKET, param);
75 }
76
77 public String wx_sns_oauth2_access_token(String appid, String secret, String code) {
78 Map<String, String> param = new HashMap<>();
79 param.put("appid", appid);
80 param.put("secret", secret);
81 param.put("code", code);
82 param.put("grant_type", "authorization_code");
83 return doGet(WeChatConstants.HTTPS_SNS_OAUTH2_ACCESS_TOKEN, param);
84 }
85
86
87 public String wx_sns_userinfo(String oauth2_access_token, String openid) {
88 Map<String, String> param = new HashMap<>();
89 param.put("access_token", oauth2_access_token);
90 param.put("openid", openid);
91 param.put("lang", "zh_CN");
92 return doGet(WeChatConstants.HTTPS_SNS_USERINFO, param);
93 }
94
95 public String wx_get_userinfo(String oauth2_access_token, String openid) {
96 Map<String, String> param = new HashMap<>();
97 param.put("access_token", oauth2_access_token);
98 param.put("openid", openid);
99 param.put("lang", "zh_CN");
100 return doGet(WeChatConstants.GET_USER_INFO, param);
101 }
102
103
104 public String getToken(String appid, String secret,String code) {
105 String token = (String) redisUtils.get(WeChatConstants.TOKEN_KEY + appid);
106 if (StringUtils.isNotBlank(token)) {
107 return token;
108 }
109 token = this.getTokenNoRedis(appid, secret,code);
110 return token;
111 }
112
113 public String getToken(String appid, String secret) {
114 String token = (String) redisUtils.get(WeChatConstants.TOKEN_KEY + appid);
115 if (StringUtils.isNotBlank(token)) {
116 return token;
117 }
118 token = this.getTokenNoRedis(appid, secret,null);
119 return token;
120 }
121
122 public String getTokenNoRedis(String appid, String secret,String code) {
123 String token = null;
124 String response = this.wx_token(appid, secret);
125 // String response = this.wx_sns_oauth2_access_token(appid, secret,code);
126 try {
127 JSONObject joToken = JSON.parseObject(response);
128 if (null != joToken && null != joToken.getString("access_token")) {
129 token = joToken.getString("access_token");
130 Integer expiresIn = joToken.getInteger("expires_in");
131 redisUtils.set(WeChatConstants.TOKEN_KEY + appid, token, expiresIn, TimeUnit.SECONDS);
132 }
133 } catch (Exception e) {
134 e.printStackTrace();
135 }
136 return token;
137 }
138
139 public String getTokenNoRedis(String appid, String secret) {
140 String token = null;
141 // String response = this.wx_token(appid, secret);
142 String response = this.wx_sns_oauth2_access_token(appid, secret,null);
143 try {
144 JSONObject joToken = JSON.parseObject(response);
145 if (null != joToken && null != joToken.getString("access_token")) {
146 token = joToken.getString("access_token");
147 Integer expiresIn = joToken.getInteger("expires_in");
148 redisUtils.set(WeChatConstants.TOKEN_KEY + appid, token, expiresIn, TimeUnit.SECONDS);
149 }
150 } catch (Exception e) {
151 e.printStackTrace();
152 }
153 return token;
154 }
155
156 /**
157 * 发送订阅消息,access_token错误时,重新获取进行重试
158 *
159 * @param weixinInfo 微信参数
160 * @param request 订阅消息内容
161 */
162 @Retryable(value = Exception.class, maxAttempts = 2, backoff = @Backoff(delay = 0L, multiplier = 0.0))
163 public void sendNotice(Map<String, String> weixinInfo, WeiXinNotice request) {
164 String accessToken = getToken(weixinInfo.get("appid"), weixinInfo.get("secret"));
165 String url = MessageFormat.format(WeChatConstants.SUBSCRIBE_SEND_URL, accessToken);
166 log.info("send notice request : " + JSONObject.toJSONString(request));
167 HttpResponse response = HttpRequest.post(url).body(JSONObject.toJSONString(request), "application/json;charset=utf-8").execute();
168 if (!response.isOk()) {
169 log.error("send notice error || {}", response);
170 throw new RuntimeException("send notice error");
171 }
172 JSONObject jsonObject = JSONObject.parseObject(response.body());
173 Integer errCode = jsonObject.getInteger(WeChatConstants.ERR_CODE);
174 if (errCode != null && errCode != 0) {
175 if (WeChatConstants.ACCESS_TOKEN_INVALID_CODE.equals(errCode.toString())) {
176 getTokenNoRedis(weixinInfo.get("appid"), weixinInfo.get("secret"));
177 }
178
179 // 返回errCode时,也输出返回的结果信息
180 log.error("send notice error || {}", response.body());
181 throw new RuntimeException("send notice error");
182 }
183 log.info("send notice response : " + response.body());
184 }
185
186
187 /**
188 * 微信小程序客服发送消息,access_token错误时,重新获取进行重试
189 *
190 * @param weixinInfo 微信参数
191 * @param body 消息内容
192 */
193 @Retryable(value = Exception.class, maxAttempts = 2, backoff = @Backoff(delay = 0L, multiplier = 0.0))
194 public void sendMessage(Map<String, String> weixinInfo, String body) {
195 String accessToken = getToken(weixinInfo.get("appid"), weixinInfo.get("secret"));
196 String url = MessageFormat.format(WeChatConstants.CUSTOM_SEND_URL, accessToken);
197 HttpResponse response = HttpRequest.post(url).body(body, "application/json;charset=utf-8").execute();
198 if (!response.isOk()) {
199 log.error("send message error || {}", response);
200 throw new RuntimeException("send message error");
201 }
202 log.info("send message response || {}", response.body());
203 JSONObject jsonObject = JSONObject.parseObject(response.body());
204 Integer errCode = jsonObject.getInteger(WeChatConstants.ERR_CODE);
205 if (errCode != null && errCode != 0) {
206 if (WeChatConstants.ACCESS_TOKEN_INVALID_CODE.equals(errCode.toString())) {
207 getTokenNoRedis(weixinInfo.get("appid"), weixinInfo.get("secret"));
208 }
209 throw new RuntimeException("send message error");
210 }
211 }
212
213 /**
214 * 上传临时素材返回mediaId,access_token错误时,重新获取进行重试
215 *
216 * @param weixinInfo 微信参数
217 * @param imagePath 素材路径
218 */
219 @Retryable(value = Exception.class, maxAttempts = 2, backoff = @Backoff(delay = 0L, multiplier = 0.0))
220 public String getMediaId(Map<String, String> weixinInfo, String imagePath) throws IOException {
221 String accessToken = getToken(weixinInfo.get("appid"), weixinInfo.get("secret"));
222 String mediaId = (String) redisUtils.get(WeChatConstants.WEIXIN_MEDIA_KEY + weixinInfo.get("appid"));
223 if (StringUtils.isNotBlank(mediaId)) {
224 return mediaId;
225 }
226 String url = MessageFormat.format(WeChatConstants.UPLOAD_URL, accessToken);
227 HttpResponse response = HttpRequest.post(url).form("file", new File(imagePath)).execute();
228 if (!response.isOk()) {
229 log.error("upload image error || {}", response);
230 throw new RuntimeException("upload image error");
231 }
232 log.info("upload image response || {}", response.body());
233 JSONObject jsonObject = JSONObject.parseObject(response.body());
234 Integer errCode = jsonObject.getInteger(WeChatConstants.ERR_CODE);
235 if (errCode != null && errCode != 0) {
236 if (WeChatConstants.ACCESS_TOKEN_INVALID_CODE.equals(errCode.toString())) {
237 getTokenNoRedis(weixinInfo.get("appid"), weixinInfo.get("secret"));
238 }
239 throw new RuntimeException("upload image error");
240 }
241 mediaId = jsonObject.getString("media_id");
242 redisUtils.set(WeChatConstants.WEIXIN_MEDIA_KEY + weixinInfo.get("appid"), mediaId, 60, TimeUnit.HOURS);
243 return mediaId;
244 }
245
246 /**
247 * 公众号获取带参数二维码,access_token错误时,重新获取进行重试
248 *
249 * @param weixinInfo 微信参数
250 * @param qrCode 二维码信息
251 */
252 @Retryable(value = Exception.class, maxAttempts = 2, backoff = @Backoff(delay = 0L, multiplier = 0.0))
253 public JSONObject getQrCode(Map<String, String> weixinInfo, QrCode qrCode) throws IOException {
254 String accessToken = getToken(weixinInfo.get("appid"), weixinInfo.get("secret"));
255 String url = MessageFormat.format(WeChatConstants.QR_CODE_URL, accessToken);
256 HttpResponse response = HttpRequest.post(url).body(JSONObject.toJSONString(qrCode), "application/json;charset=utf-8").execute();
257 if (!response.isOk()) {
258 log.error("get qrCode error || {}", response);
259 throw new RuntimeException("get qrCode error");
260 }
261 log.info("get qrCode response || {}", response.body());
262 JSONObject jsonObject = JSONObject.parseObject(response.body());
263 Integer errCode = jsonObject.getInteger(WeChatConstants.ERR_CODE);
264 if (errCode != null && errCode != 0) {
265 if (WeChatConstants.ACCESS_TOKEN_INVALID_CODE.equals(errCode.toString())) {
266 getTokenNoRedis(weixinInfo.get("appid"), weixinInfo.get("secret"));
267 }
268 throw new RuntimeException("get qrCode error");
269 }
270 return jsonObject;
271 }
272
273 /**
274 * 公众号获取用户信息,access_token错误时,重新获取进行重试
275 *
276 * @param weixinInfo 微信参数
277 * @param openid 用户openid
278 */
279 @Retryable(value = Exception.class, maxAttempts = 2, backoff = @Backoff(delay = 0L, multiplier = 0.0))
280 public JSONObject getUserInfo(Map<String, String> weixinInfo, String openid,String code) throws IOException {
281 String accessToken = this.getToken(weixinInfo.get("appid"), weixinInfo.get("secret"),code);
282 String url = MessageFormat.format(WeChatConstants.GET_USER_INFO, accessToken, openid);
283 // String url = MessageFormat.format(WeChatConstants.HTTPS_SNS_USERINFO, accessToken, openid);
284 // String url = MessageFormat.format(WeChatConstants.HTTPS_AUTHORIZE_WITH_SNSAPI_USERINFO, accessToken, openid);
285 HttpResponse response = HttpRequest.get(url).execute();
286 if (!response.isOk()) {
287 log.error("get userInfo error || {}", response);
288 throw new RuntimeException("get userInfo error");
289 }
290 log.info("get userInfo response || {}", response.body());
291 JSONObject jsonObject = JSONObject.parseObject(response.body());
292 Integer errCode = jsonObject.getInteger(WeChatConstants.ERR_CODE);
293 if (errCode != null && errCode != 0) {
294 if (WeChatConstants.ACCESS_TOKEN_INVALID_CODE.equals(errCode.toString())) {
295 this.getTokenNoRedis(weixinInfo.get("appid"), weixinInfo.get("secret"));
296 }
297 throw new RuntimeException("get userInfo error");
298 }
299 return jsonObject;
300 }
301
302 /**
303 * @param weixinInfo
304 * @param nextOpenId
305 * @return com.alibaba.fastjson.JSONObject
306 * @description 公众号批量获取关注者列表,不传nextOpenId默认从头开始拉取,引用重试机制
307 * @author Hongyan Wang
308 * @date 2021/9/2 9:42 上午
309 */
310 @Retryable(value = Exception.class, maxAttempts = 2, backoff = @Backoff(delay = 0L, multiplier = 0.0))
311 public JSONObject getUserList(Map<String, String> weixinInfo, String nextOpenId) {
312 String accessToken = getToken(weixinInfo.get("appid"), weixinInfo.get("secret"));
313 // 不传next_openid,默认从头开始拉取
314 if (StrUtil.isBlank(nextOpenId))
315 nextOpenId = "";
316 String url = MessageFormat.format(WeChatConstants.GET_USER_LIST, accessToken, nextOpenId);
317 HttpResponse response = HttpRequest.get(url).execute();
318 if (!response.isOk()) {
319 log.error("get userList error || {}", response);
320 throw new RuntimeException("get userList error");
321 }
322 log.info("get userList response || {}", response.body());
323 //返回Json样例
324 // {
325 // "total":2,
326 // "count":2,
327 // "data":{
328 // "openid":["OPENID1","OPENID2"]},
329 // "next_openid":"NEXT_OPENID"
330 //}
331 JSONObject jsonObject = JSONObject.parseObject(response.body());
332 Integer errCode = jsonObject.getInteger(WeChatConstants.ERR_CODE);
333 if (errCode != null && errCode != 0) {
334 if (WeChatConstants.ACCESS_TOKEN_INVALID_CODE.equals(errCode.toString())) {
335 getTokenNoRedis(weixinInfo.get("appid"), weixinInfo.get("secret"));
336 }
337 throw new RuntimeException("get userList error");
338 }
339 return jsonObject;
340 }
341
342 }
...@@ -6,14 +6,6 @@ spring: ...@@ -6,14 +6,6 @@ spring:
6 username: root 6 username: root
7 password: Tjlh@2017 7 password: Tjlh@2017
8 8
9
10 # url: jdbc:log4jdbc:mysql://47.100.212.170:3306/ucs?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
11 # username: root
12 # password: Tjlh@2021
13
14 # url: jdbc:log4jdbc:mysql://122.112.214.149:3306/tj_user?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
15 # username: root
16 # password: root
17 driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy 9 driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
18 #Druid 10 #Druid
19 type: com.alibaba.druid.pool.DruidDataSource 11 type: com.alibaba.druid.pool.DruidDataSource
...@@ -62,20 +54,8 @@ spring: ...@@ -62,20 +54,8 @@ spring:
62 # host: 139.196.4.234 54 # host: 139.196.4.234
63 port: 6379 55 port: 6379
64 password: redis123 56 password: redis123
65 # password:
66 #连接超时时间 57 #连接超时时间
67 timeout: 5000 58 timeout: 5000
68 # rabbitmq:
69 # host: 47.100.212.170 # rabbitmq的连接地址
70 ## host: 122.112.214.149 # rabbitmq的连接地址
71 # #host: 139.196.192.242 # rabbitmq的连接地址
72 # port: 5672 # rabbitmq的连接端口号
73 # #virtual-host: /member_center # rabbitmq的虚拟host
74 # #username: member_center # rabbitmq的用户名
75 # #password: Tjlh@2021 # rabbitmq的密码
76 # virtual-host: test # rabbitmq的虚拟host
77 # username: omo_test # rabbitmq的用户名
78 # password: omo_test # rabbitmq的密码
79 rabbitmq: 59 rabbitmq:
80 host: 139.196.145.150 # rabbitmq的连接地址 60 host: 139.196.145.150 # rabbitmq的连接地址
81 port: 5672 # rabbitmq的连接端口号 61 port: 5672 # rabbitmq的连接端口号
...@@ -107,3 +87,54 @@ generator: ...@@ -107,3 +87,54 @@ generator:
107 swagger: 87 swagger:
108 enabled: true 88 enabled: true
109 89
90 file:
91 path: system/file
92 avatar: system/avatar
93 upload: upload
94 # 文件大小 /M
95 maxSize: 100
96 avatarMaxSize: 5
97
98 key: 529ec7fe7bb54c38
99
100 uc:
101 service:
102 platform: service
103 type: mobile
104 app:
105 subAppId: wx5d88c7fe99f89f32
106 #服务号:品运营讨论探究创造团
107 h5AppId: wx37ea49702cdc693b
108 #熊猫小程序:熊猫少儿创造团
109 appletAppid: wxfaa765183a332521
110 weixin:
111 list:
112 - appid: wxfaa765183a332521
113 secret: b5c1c39cb95b45b599a02fd68b5fcf17
114 token:
115 encodingAesKey:
116 imagePath:
117 content: 长按识别二维码,加入微信群。
118 miniprogramState: formal
119 # 点击模板卡片后的默认跳转页面
120 page: pages/index/main
121 # 生成带参数二维码的有效期
122 qrCodeExpireSeconds: 86400
123 env: dev
124 # 订阅号
125 - appid: wx5d88c7fe99f89f32
126 secret: b213afe99a469d4be576f330dad643b8
127 token: topdraw
128 encodingAesKey: g3mYB6yx2ZiebxwKcI1H2iw3LlYNBHb7PqsVYFHUQzi
129 # 应用类型 小程序 服务号 订阅号, 当前基于订阅号有特殊逻辑
130 appType: subscription
131 imagePath: /topdraw/app/user_center_service_te/upload/customer/weChat.png
132 content: 长按识别二维码,关注订阅号。
133 miniprogramState: formal
134 # 点击模板卡片后的默认跳转页面
135 page: pages/index/main
136 # 生成带参数二维码的有效期
137 qrCodeExpireSeconds: 300
138 env: dev
139
140
......
1 package com.topdraw; 1 package com.topdraw;
2 2
3 3
4 import com.alibaba.fastjson.JSONObject;
5 import com.topdraw.module.mq.DataSyncMsg;
4 import org.junit.runner.RunWith; 6 import org.junit.runner.RunWith;
5 import org.slf4j.Logger; 7 import org.slf4j.Logger;
6 import org.slf4j.LoggerFactory; 8 import org.slf4j.LoggerFactory;
...@@ -21,16 +23,8 @@ public class BaseTest { ...@@ -21,16 +23,8 @@ public class BaseTest {
21 } 23 }
22 24
23 public static void main(String[] args) { 25 public static void main(String[] args) {
24 String a = "<p>gfdsgf <video controls=\"controls\" width=\"300\" height=\"150\">\n" + 26 String param = "{\"category\":\"common_member\"}";
25 "<source src=\"dddd\" /></video></p>"; 27 DataSyncMsg.TaskTemplateParam taskTemplateParam = JSONObject.parseObject(param, DataSyncMsg.TaskTemplateParam.class);
26 28 System.out.println(taskTemplateParam);
27 String c = "<p>测试正文<br /><br /><video controls=\"controls\" width=\"360\" height=\"180\">\n" +
28 "<source src=\"test\" /></video></p>";
29
30
31
32 String b = "{{nas-base-url.cms-upload}}/upload/commonFile/theme_activity/2021-12-15/aebd8dbb-87bb-4523-921f-4354c3298fdd.mp4";
33 String s = replaceUrl(c, b);
34 System.out.println(s);
35 } 29 }
36 } 30 }
......
...@@ -39,16 +39,16 @@ public class GeneratorCode extends BaseTest { ...@@ -39,16 +39,16 @@ public class GeneratorCode extends BaseTest {
39 @Rollback(value = false) 39 @Rollback(value = false)
40 @Transactional(rollbackFor = Exception.class) 40 @Transactional(rollbackFor = Exception.class)
41 public void generator() { 41 public void generator() {
42 var dbName = "uc_user_weixin"; 42 var dbName = "tr_task_attr";
43 // 表名称,支持多表 43 // 表名称,支持多表
44 var tableNames = Arrays.asList(dbName); 44 var tableNames = Arrays.asList(dbName);
45 String[] s = dbName.split("_"); 45 String[] s = dbName.split("_");
46 46
47 var pre = s[0]; 47 var pre = s[0];
48 var target1 = s[s.length-1]; 48 var target1 = s[s.length-1];
49 var preRoute = "com.topdraw.business.basicdata.user."; 49 var preRoute = "com.topdraw.business.module.task.";
50 StringBuilder builder = new StringBuilder(preRoute); 50 StringBuilder builder = new StringBuilder(preRoute);
51 builder.append("weixin"); 51 builder.append("attribute");
52 // builder.append(target); 52 // builder.append(target);
53 53
54 tableNames.forEach(tableName -> { 54 tableNames.forEach(tableName -> {
......
1 package com.topdraw.test.business.basicdata.member; 1 package com.topdraw.test.business.basicdata.member;
2 2
3 import com.topdraw.business.basicdata.member.rest.MemberController; 3 import com.topdraw.business.module.member.rest.MemberController;
4 import com.topdraw.business.basicdata.member.service.MemberService; 4 import com.topdraw.business.module.member.service.MemberService;
5 import com.topdraw.business.basicdata.member.service.dto.MemberDTO;
6 import com.topdraw.BaseTest; 5 import com.topdraw.BaseTest;
7 import com.topdraw.common.ResultInfo; 6 import com.topdraw.common.ResultInfo;
8 import org.junit.Test; 7 import org.junit.Test;
......
...@@ -2,10 +2,8 @@ package com.topdraw.test.business.basicdata.member.profile; ...@@ -2,10 +2,8 @@ package com.topdraw.test.business.basicdata.member.profile;
2 2
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
4 import com.topdraw.BaseTest; 4 import com.topdraw.BaseTest;
5 import com.topdraw.business.basicdata.member.profile.domain.MemberProfile; 5 import com.topdraw.business.module.member.profile.domain.MemberProfile;
6 import com.topdraw.business.basicdata.member.profile.service.MemberProfileService; 6 import com.topdraw.business.module.member.profile.service.MemberProfileService;
7 import com.topdraw.business.basicdata.member.service.MemberService;
8 import com.topdraw.business.basicdata.member.service.dto.MemberDTO;
9 import com.topdraw.util.TimestampUtil; 7 import com.topdraw.util.TimestampUtil;
10 import org.junit.Test; 8 import org.junit.Test;
11 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
......
1 package com.topdraw.test.business.basicdata.member.rest; 1 package com.topdraw.test.business.basicdata.member.rest;
2 2
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
4 import com.topdraw.business.basicdata.member.address.domain.MemberAddress; 4 import com.topdraw.business.module.member.address.domain.MemberAddress;
5 import com.topdraw.business.basicdata.member.address.rest.MemberAddressController; 5 import com.topdraw.business.module.member.address.rest.MemberAddressController;
6 import com.topdraw.business.basicdata.member.address.service.dto.MemberAddressQueryCriteria; 6 import com.topdraw.business.module.member.address.service.dto.MemberAddressQueryCriteria;
7 import com.topdraw.common.ResultInfo; 7 import com.topdraw.common.ResultInfo;
8 import com.topdraw.BaseTest; 8 import com.topdraw.BaseTest;
9 import org.junit.Test; 9 import org.junit.Test;
......
1 package com.topdraw.test.business.basicdata.member.rest; 1 package com.topdraw.test.business.basicdata.member.rest;
2 2
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
4 import com.topdraw.business.basicdata.member.domain.Member; 4 import com.topdraw.business.module.member.domain.Member;
5 import com.topdraw.business.basicdata.member.rest.MemberController; 5 import com.topdraw.business.module.member.rest.MemberController;
6 import com.topdraw.business.basicdata.member.service.dto.MemberQueryCriteria;
7 import com.topdraw.common.ResultInfo; 6 import com.topdraw.common.ResultInfo;
8 import com.topdraw.BaseTest; 7 import com.topdraw.BaseTest;
9 import com.topdraw.util.IdWorker; 8 import com.topdraw.util.IdWorker;
10 import com.topdraw.util.TimestampUtil; 9 import com.topdraw.util.TimestampUtil;
11 import org.junit.Test; 10 import org.junit.Test;
12 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
13 import org.springframework.data.domain.PageRequest;
14 import org.springframework.data.domain.Pageable;
15 12
16 public class MemberControllerTest extends BaseTest { 13 public class MemberControllerTest extends BaseTest {
17 14
......
...@@ -2,9 +2,8 @@ package com.topdraw.test.business.basicdata.member.rest; ...@@ -2,9 +2,8 @@ package com.topdraw.test.business.basicdata.member.rest;
2 2
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
4 import com.topdraw.BaseTest; 4 import com.topdraw.BaseTest;
5 import com.topdraw.business.basicdata.member.profile.domain.MemberProfile; 5 import com.topdraw.business.module.member.profile.domain.MemberProfile;
6 import com.topdraw.business.basicdata.member.profile.rest.MemberProfileController; 6 import com.topdraw.business.module.member.profile.rest.MemberProfileController;
7 import com.topdraw.business.basicdata.member.profile.service.MemberProfileService;
8 import com.topdraw.util.TimestampUtil; 7 import com.topdraw.util.TimestampUtil;
9 import org.junit.Test; 8 import org.junit.Test;
10 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
......
1 package com.topdraw.test.business.basicdata.member.rest; 1 package com.topdraw.test.business.basicdata.member.rest;
2 2
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
4 import com.topdraw.business.basicdata.member.relatedinfo.domain.MemberRelatedInfo; 4 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
5 import com.topdraw.business.basicdata.member.relatedinfo.rest.MemberRelatedInfoController; 5 import com.topdraw.business.module.member.relatedinfo.rest.MemberRelatedInfoController;
6 import com.topdraw.business.basicdata.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria; 6 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria;
7 import com.topdraw.common.ResultInfo; 7 import com.topdraw.common.ResultInfo;
8 import com.topdraw.BaseTest; 8 import com.topdraw.BaseTest;
9 import org.junit.Test; 9 import org.junit.Test;
......
1 package com.topdraw.test.business.basicdata.points; 1 package com.topdraw.test.business.basicdata.points;
2 2
3 import com.topdraw.business.basicdata.points.available.domain.PointsAvailable; 3 import com.topdraw.business.module.points.available.domain.PointsAvailable;
4 import com.topdraw.business.basicdata.points.available.service.PointsAvailableService; 4 import com.topdraw.business.module.points.available.service.PointsAvailableService;
5 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableDTO; 5 import com.topdraw.business.module.points.available.service.dto.PointsAvailableDTO;
6 import com.topdraw.business.process.domian.TempPoints; 6 import com.topdraw.business.process.domian.TempPoints;
7 import com.topdraw.BaseTest; 7 import com.topdraw.BaseTest;
8 import com.topdraw.util.DateUtil;
9 import com.topdraw.util.IdWorker; 8 import com.topdraw.util.IdWorker;
10 import com.topdraw.util.TimestampUtil;
11 import org.junit.Test; 9 import org.junit.Test;
12 import org.springframework.beans.BeanUtils; 10 import org.springframework.beans.BeanUtils;
13 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
......
1 package com.topdraw.test.business.basicdata.points; 1 package com.topdraw.test.business.basicdata.points;
2 2
3 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 3 import com.topdraw.business.module.member.service.dto.MemberDTO;
4 import com.topdraw.business.basicdata.points.detail.domain.PointsDetail; 4 import com.topdraw.business.module.points.detail.domain.PointsDetail;
5 import com.topdraw.business.basicdata.points.detail.service.PointsDetailService; 5 import com.topdraw.business.module.points.detail.service.PointsDetailService;
6 import com.topdraw.business.process.service.MemberOperationService; 6 import com.topdraw.business.process.service.MemberOperationService;
7 import com.topdraw.business.process.domian.TempPoints; 7 import com.topdraw.business.process.domian.TempPoints;
8 import com.topdraw.BaseTest; 8 import com.topdraw.BaseTest;
9 import com.topdraw.util.IdWorker; 9 import com.topdraw.util.IdWorker;
10 import com.topdraw.util.TimestampUtil;
11 import org.junit.Test; 10 import org.junit.Test;
12 import org.springframework.beans.BeanUtils; 11 import org.springframework.beans.BeanUtils;
13 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.beans.factory.annotation.Autowired;
......
1 package com.topdraw.test.business.basicdata.rights; 1 package com.topdraw.test.business.basicdata.rights;
2 2
3 import com.topdraw.BaseTest; 3 import com.topdraw.BaseTest;
4 import com.topdraw.business.basicdata.member.service.dto.MemberDTO; 4 import com.topdraw.business.module.member.service.dto.MemberDTO;
5 import com.topdraw.business.basicdata.points.detail.domain.PointsDetail; 5 import com.topdraw.business.module.points.detail.domain.PointsDetail;
6 import com.topdraw.business.basicdata.points.detail.service.PointsDetailService; 6 import com.topdraw.business.module.points.detail.service.PointsDetailService;
7 import com.topdraw.business.process.domian.TempPoints; 7 import com.topdraw.business.process.domian.TempPoints;
8 import com.topdraw.business.process.service.MemberOperationService; 8 import com.topdraw.business.process.service.MemberOperationService;
9 import com.topdraw.util.IdWorker; 9 import com.topdraw.util.IdWorker;
10 import com.topdraw.util.TimestampUtil;
11 import org.junit.Test; 10 import org.junit.Test;
12 import org.springframework.beans.BeanUtils; 11 import org.springframework.beans.BeanUtils;
13 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.beans.factory.annotation.Autowired;
......
1 package com.topdraw.test.business.basicdata.rights.history; 1 package com.topdraw.test.business.basicdata.rights.history;
2 2
3 import com.topdraw.BaseTest; 3 import com.topdraw.BaseTest;
4 import com.topdraw.business.basicdata.member.service.dto.MemberQueryCriteria; 4 import com.topdraw.business.module.rights.history.rest.RightsHistoryController;
5 import com.topdraw.business.basicdata.rights.history.rest.RightsHistoryController; 5 import com.topdraw.business.module.rights.history.service.dto.RightsHistoryQueryCriteria;
6 import com.topdraw.business.basicdata.rights.history.service.dto.RightsHistoryQueryCriteria;
7 import com.topdraw.business.basicdata.rights.rest.RightsController;
8 import com.topdraw.common.ResultInfo; 6 import com.topdraw.common.ResultInfo;
9 import org.junit.Test; 7 import org.junit.Test;
10 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
......
1 package com.topdraw.test.business.basicdata.rights.permanentrights; 1 package com.topdraw.test.business.basicdata.rights.permanentrights;
2 2
3 import com.topdraw.BaseTest; 3 import com.topdraw.BaseTest;
4 import com.topdraw.business.basicdata.rights.permanentrights.rest.PermanentRightsController; 4 import com.topdraw.business.module.rights.permanentrights.rest.PermanentRightsController;
5 import com.topdraw.business.basicdata.rights.permanentrights.service.dto.PermanentRightsQueryCriteria; 5 import com.topdraw.business.module.rights.permanentrights.service.dto.PermanentRightsQueryCriteria;
6 import com.topdraw.business.basicdata.rights.rest.RightsController;
7 import com.topdraw.common.ResultInfo; 6 import com.topdraw.common.ResultInfo;
8 import org.junit.Test; 7 import org.junit.Test;
9 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
......
1 package com.topdraw.test.business.basicdata.rights.rest; 1 package com.topdraw.test.business.basicdata.rights.rest;
2 2
3 import com.topdraw.BaseTest; 3 import com.topdraw.BaseTest;
4 import com.topdraw.business.basicdata.rights.rest.RightsController; 4 import com.topdraw.business.module.rights.rest.RightsController;
5 import com.topdraw.common.ResultInfo; 5 import com.topdraw.common.ResultInfo;
6 import org.junit.Test; 6 import org.junit.Test;
7 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.beans.factory.annotation.Autowired;
......
1 package com.topdraw.test.business.basicdata.task; 1 package com.topdraw.test.business.basicdata.task;
2 2
3 import com.topdraw.business.basicdata.task.template.domain.TaskTemplate; 3 import com.topdraw.business.module.task.template.domain.TaskTemplate;
4 import com.topdraw.business.basicdata.task.template.service.TaskTemplateService; 4 import com.topdraw.business.module.task.template.service.TaskTemplateService;
5 import com.topdraw.BaseTest; 5 import com.topdraw.BaseTest;
6 import org.junit.Test; 6 import org.junit.Test;
7 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.beans.factory.annotation.Autowired;
......
1 package com.topdraw.test.business.process.rest; 1 package com.topdraw.test.business.process.rest;
2 2
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
4 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableQueryCriteria;
5 import com.topdraw.business.basicdata.points.available.service.dto.PointsAvailableQueryType;
6 import com.topdraw.business.basicdata.points.detail.rest.PointsDetailController;
7 import com.topdraw.BaseTest; 4 import com.topdraw.BaseTest;
8 import com.topdraw.business.basicdata.points.detail.service.dto.PointsDetailQueryCriteria;
9 import com.topdraw.business.process.domian.TempPoints; 5 import com.topdraw.business.process.domian.TempPoints;
10 import com.topdraw.business.process.rest.PointsOperationController; 6 import com.topdraw.business.process.rest.PointsOperationController;
11 import com.topdraw.common.ResultInfo; 7 import com.topdraw.common.ResultInfo;
12 import org.junit.Test; 8 import org.junit.Test;
13 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.data.domain.PageRequest;
15 import org.springframework.data.domain.Pageable;
16 10
17 import java.sql.Timestamp;
18 import java.time.LocalDateTime; 11 import java.time.LocalDateTime;
19 12
20 public class PointsOperationControllerTest extends BaseTest { 13 public class PointsOperationControllerTest extends BaseTest {
......
...@@ -2,10 +2,9 @@ package com.topdraw.test.business.process.rest; ...@@ -2,10 +2,9 @@ package com.topdraw.test.business.process.rest;
2 2
3 3
4 import com.topdraw.BaseTest; 4 import com.topdraw.BaseTest;
5 import com.topdraw.business.basicdata.rights.history.domain.RightsHistory; 5 import com.topdraw.business.module.rights.history.domain.RightsHistory;
6 import com.topdraw.business.process.rest.RightsOperationController; 6 import com.topdraw.business.process.rest.RightsOperationController;
7 import com.topdraw.common.ResultInfo; 7 import com.topdraw.common.ResultInfo;
8 import com.topdraw.util.TimestampUtil;
9 import org.junit.Test; 8 import org.junit.Test;
10 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
11 10
......
1 package com.topdraw.test.business.process.rest; 1 package com.topdraw.test.business.process.rest;
2 2
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
4 import com.topdraw.business.basicdata.points.service.dto.PointsQueryCriteria;
5 import com.topdraw.business.process.rest.TaskOperationController; 4 import com.topdraw.business.process.rest.TaskOperationController;
6 import com.topdraw.business.process.rest.TaskOperationQueryCriteria; 5 import com.topdraw.business.process.rest.TaskOperationQueryCriteria;
7 import com.topdraw.module.mq.DataSyncMsg; 6 import com.topdraw.module.mq.DataSyncMsg;
8 import com.topdraw.module.mq.EntityType;
9 import com.topdraw.module.mq.EventType; 7 import com.topdraw.module.mq.EventType;
10 import com.topdraw.BaseTest; 8 import com.topdraw.BaseTest;
11 import com.topdraw.utils.StringUtils;
12 import org.junit.Test; 9 import org.junit.Test;
13 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; 11 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
15 12
16 import javax.annotation.Resource;
17 import java.util.List;
18 import java.util.concurrent.ArrayBlockingQueue;
19 import java.util.concurrent.FutureTask; 13 import java.util.concurrent.FutureTask;
20 import java.util.concurrent.ThreadPoolExecutor;
21 import java.util.concurrent.TimeUnit;
22 14
23 public class TaskOperationControllerTest extends BaseTest { 15 public class TaskOperationControllerTest extends BaseTest {
24 16
......
1 package com.topdraw.test.business.process.service; 1 package com.topdraw.test.business.process.service;
2 2
3 import com.alibaba.fastjson.JSONObject; 3 import com.alibaba.fastjson.JSONObject;
4 import com.topdraw.business.basicdata.member.domain.Member; 4 import com.topdraw.business.module.member.domain.Member;
5 import com.topdraw.business.process.service.MemberOperationService; 5 import com.topdraw.business.process.service.MemberOperationService;
6 import com.topdraw.BaseTest; 6 import com.topdraw.BaseTest;
7 import com.topdraw.util.IdWorker; 7 import com.topdraw.util.IdWorker;
......
1 package com.topdraw.test.business.process.service;
2
3 import com.alibaba.fastjson.JSON;
4 import com.topdraw.BaseTest;
5 import com.topdraw.business.process.domian.weixin.WeiXinUserBean;
6 import com.topdraw.business.process.service.UserOperationService;
7 import com.topdraw.module.mq.DataSyncMsg;
8 import com.topdraw.module.mq.EventType;
9 import org.junit.Test;
10 import org.springframework.beans.factory.annotation.Autowired;
11
12 public class UserOperationServiceTest extends BaseTest {
13
14 @Autowired
15 UserOperationService taskOperationService;
16
17 @Test
18 public void appletLogin() {
19 /* Long memberId = 3L;
20 DataSyncMsg dataSyncMsg = new DataSyncMsg();
21 // dataSyncMsg.setEntityType(EntityType.MEMBER);
22 dataSyncMsg.setEventType(EventType.LOGIN.name());
23 DataSyncMsg.MsgData msgData = new DataSyncMsg.MsgData();
24 msgData.setEvent(1);
25 msgData.setRemarks("remark");
26 msgData.setMemberId(memberId);
27 msgData.setDeviceType(2);
28
29 msgData.setAppCode("WEI_XIN_GOLD_PANDA");
30 dataSyncMsg.setMsg(msgData);
31
32 String s = JSON.toJSONString(dataSyncMsg);*/
33
34 WeiXinUserBean weiXinUserBean = new WeiXinUserBean();
35 weiXinUserBean.setWxAppid("1");
36 weiXinUserBean.setWxCode("1");
37 weiXinUserBean.setSourceType("1");
38 weiXinUserBean.setSourceId("1");
39 weiXinUserBean.setIv("1");
40 weiXinUserBean.setEncryptedData("1");
41 weiXinUserBean.setSourceEntity("1");
42 weiXinUserBean.setSourceDesc("1");
43 weiXinUserBean.setSourceUser(1L);
44 weiXinUserBean.setUserInfo("1");
45 this.taskOperationService.appletLogin(weiXinUserBean);
46 }
47
48 }