Commit 75d127a8 75d127a833a2c784c89ed5b9c0da62ab03fdc1ba by xianghan

Merge remote-tracking branch 'remotes/origin/1.1.0-STABLE' into master-copy

# Conflicts:
#	member-service-api/pom.xml
#	member-service-impl/.gitignore
#	member-service-impl/src/main/java/com/topdraw/business/basicdata/member/relatedinfo/rest/MemberRelatedInfoController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/coupon/history/rest/CouponHistoryController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/coupon/rest/CouponController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/exp/detail/rest/ExpDetailController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/exp/history/rest/ExpHistoryController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/member/address/rest/MemberAddressController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/member/group/rest/MemberGroupController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/member/level/rest/MemberLevelController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/member/profile/rest/MemberProfileController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/member/rest/MemberController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/points/available/rest/PointsAvailableController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/points/detail/detailhistory/rest/PointsDetailHistoryController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/points/detail/rest/PointsDetailController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/points/rest/PointsController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/points/standingbook/rest/PointsStandingBookController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/rights/history/rest/RightsHistoryController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/rights/permanentrights/rest/PermanentRightsController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/task/progress/rest/TrTaskProgressController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/task/rest/TaskController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/task/template/rest/TaskTemplateController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/user/iptv/rest/UserTvController.java
#	member-service-impl/src/main/java/com/topdraw/business/module/user/weixin/rest/UserWeixinController.java
#	member-service-impl/src/main/java/com/topdraw/business/process/rest/CouponOperationController.java
#	member-service-impl/src/main/java/com/topdraw/business/process/rest/ExpOperationController.java
#	member-service-impl/src/main/java/com/topdraw/business/process/rest/PointsOperationController.java
#	member-service-impl/src/main/java/com/topdraw/business/process/rest/TaskOperationController.java
#	member-service-impl/src/main/resources/config/application-dev.yml
2 parents 9ba9a1c0 3e7c3d3f
Showing 323 changed files with 1115 additions and 411 deletions
......@@ -12,15 +12,21 @@
<artifactId>member-service-api</artifactId>
<properties>
<cronos.version>1.1.0</cronos.version>
</properties>
<dependencies>
<!--代码生成器-->
<!--系统-->
<dependency>
<groupId>com.topdraw</groupId>
<artifactId>cronos-system</artifactId>
<version>1.1.0</version>
<version>${cronos.version}</version>
</dependency>
<!--代码生成器-->
<dependency>
<groupId>com.topdraw</groupId>
<artifactId>cronos-generator</artifactId>
<version>${cronos.version}</version>
</dependency>
</dependencies>
......
......@@ -25,6 +25,8 @@ public class DataSyncMsg implements Serializable {
// 其他属性
private String extraData;
/** 模板参数 */
private TaskTemplateParam param;
/**
* 消息体
......@@ -38,15 +40,29 @@ public class DataSyncMsg implements Serializable {
private Integer event; // 具体事件 行为事件类型 1:登录;2:观影;3:参与活动;4:订购;10:跨屏绑定;11:积分转移;30:积分兑换商品;98:系统操作;99:其他
@NotNull
private Long memberId; // 会员id
private Long userId; // 账户id
@NotNull
private Integer deviceType; //设备类型 1:大屏;2:小屏(微信)3.小屏(xx)
@NotNull
private String appCode; //用户对应的应用code
private String memberCode;
private Long accountId; // 账号id
private Long orderId;
private Long activityId;
private Long mediaId;
private Long itemId;
private String param;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class TaskTemplateParam {
/** 类别 */
private String category;
/** 编码 */
private String code;
}
}
......
package com.topdraw.module.mq;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/2/3 22:46
* @version: :
* @modified By:
* @since : modified in 2022/2/3 22:46
*/
public enum DeviceType {
IPTV(),
weixin();
}
......@@ -2,4 +2,4 @@
/logs/
/member-service-impl.iml
/src/main/resources/rebel.xml
*.iml
\ No newline at end of file
/src/test/
\ No newline at end of file
......
package com.topdraw;
import com.topdraw.utils.SpringContextHolder;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
......@@ -12,7 +13,6 @@ import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.retry.annotation.EnableRetry;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.web.bind.annotation.CrossOrigin;
/**
* @author XiangHan
......@@ -20,10 +20,10 @@ import org.springframework.web.bind.annotation.CrossOrigin;
*/
@EnableJpaAuditing
@EnableAsync
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
@EnableTransactionManagement
@EnableRetry
@EnableCaching
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
public class MemberServiceApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
......@@ -39,4 +39,7 @@ public class MemberServiceApplication extends SpringBootServletInitializer {
public SpringContextHolder springContextHolder() {
return new SpringContextHolder();
}
}
......
package com.topdraw.business.module.common.domain;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.Transient;
import java.io.Serializable;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/2/10 10:12
* @version: :
* @modified By:
* @since : modified in 2022/2/10 10:12
*/
@Data
@Accessors(chain = true)
public class DefaultAsyncMqModule {
@Transient
private String memberCode;
}
package com.topdraw.business.basicdata.coupon.domain;
package com.topdraw.business.module.coupon.domain;
import lombok.Data;
import lombok.experimental.Accessors;
......
package com.topdraw.business.basicdata.coupon.history.domain;
package com.topdraw.business.module.coupon.history.domain;
import lombok.Data;
import lombok.experimental.Accessors;
......@@ -48,7 +48,7 @@ public class CouponHistory implements Serializable {
// 领取时间
@Column(name = "receive_time")
private Timestamp receiveTime;
private LocalDateTime receiveTime;
// 失效时间
@Column(name = "expire_time")
......@@ -60,7 +60,7 @@ public class CouponHistory implements Serializable {
// 使用时间
@Column(name = "use_time")
private Timestamp useTime;
private LocalDateTime useTime;
// 订单详情id
@Column(name = "order_detail_id")
......@@ -69,12 +69,12 @@ public class CouponHistory implements Serializable {
// 创建时间
@CreatedDate
@Column(name = "create_time")
private Timestamp createTime;
private LocalDateTime createTime;
// 更新时间
@LastModifiedDate
@Column(name = "update_time")
private Timestamp updateTime;
private LocalDateTime updateTime;
public void copy(CouponHistory source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
......
package com.topdraw.business.basicdata.coupon.history.repository;
package com.topdraw.business.module.coupon.history.repository;
import com.topdraw.business.basicdata.coupon.history.domain.CouponHistory;
import com.topdraw.business.module.coupon.history.domain.CouponHistory;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.sql.Timestamp;
import java.util.Optional;
import java.time.LocalDateTime;
/**
* @author XiangHan
......@@ -15,7 +15,7 @@ public interface CouponHistoryRepository extends JpaRepository<CouponHistory, Lo
Long countByUserId(Long userId);
Long countByUserIdAndExpireTimeBefore(Long userId, Timestamp now);
Long countByUserIdAndExpireTimeBefore(Long userId, LocalDateTime now);
Long countByUserIdAndExpireTimeBetween(Long userId, Timestamp now, Timestamp expireTime);
Long countByUserIdAndExpireTimeBetween(Long userId, LocalDateTime now, LocalDateTime expireTime);
}
......
package com.topdraw.business.basicdata.coupon.history.rest;
package com.topdraw.business.module.coupon.history.rest;
import com.topdraw.common.ResultInfo;
import com.topdraw.aop.log.Log;
import com.topdraw.business.basicdata.coupon.history.domain.CouponHistory;
import com.topdraw.business.basicdata.coupon.history.service.CouponHistoryService;
import com.topdraw.business.basicdata.coupon.history.service.dto.CouponHistoryQueryCriteria;
import com.topdraw.business.module.coupon.history.domain.CouponHistory;
import com.topdraw.business.module.coupon.history.service.CouponHistoryService;
import com.topdraw.business.module.coupon.history.service.dto.CouponHistoryQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
/**
* @author XiangHan
......@@ -39,7 +34,6 @@ public class CouponHistoryController {
return ResultInfo.success(CouponHistoryService.queryAll(criteria));
}
@Log
@PostMapping(value = "/create")
@ApiOperation("新增CouponHistory")
public ResultInfo create(@Validated @RequestBody CouponHistory resources) {
......@@ -47,7 +41,6 @@ public class CouponHistoryController {
return ResultInfo.success();
}
@Log
@PutMapping(value = "/update")
@ApiOperation("修改CouponHistory")
public ResultInfo update(@Validated @RequestBody CouponHistory resources) {
......@@ -56,7 +49,6 @@ public class CouponHistoryController {
}
@Log
@DeleteMapping(value = "/delete/{id}")
@ApiOperation("删除CouponHistory")
public ResultInfo delete(@PathVariable Long id) {
......
package com.topdraw.business.basicdata.coupon.history.service;
package com.topdraw.business.module.coupon.history.service;
import com.topdraw.business.basicdata.coupon.history.domain.CouponHistory;
import com.topdraw.business.basicdata.coupon.history.service.dto.CouponHistoryDTO;
import com.topdraw.business.basicdata.coupon.history.service.dto.CouponHistoryQueryCriteria;
import com.topdraw.business.module.coupon.history.domain.CouponHistory;
import com.topdraw.business.module.coupon.history.service.dto.CouponHistoryDTO;
import com.topdraw.business.module.coupon.history.service.dto.CouponHistoryQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.Map;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
/**
* @author XiangHan
......@@ -47,7 +46,7 @@ public interface CouponHistoryService {
Long countByUserId(Long userId);
Long countByUserIdAndExpireTimeBefore(Long userId, Timestamp now);
Long countByUserIdAndExpireTimeBefore(Long userId, LocalDateTime now);
Long countByUserIdAndExpireTimeBetween(Long userId, Timestamp now, Timestamp expireTime);
Long countByUserIdAndExpireTimeBetween(Long userId, LocalDateTime now, LocalDateTime expireTime);
}
......
package com.topdraw.business.basicdata.coupon.history.service.dto;
package com.topdraw.business.module.coupon.history.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.io.Serializable;
import java.time.LocalDateTime;
......@@ -29,7 +28,7 @@ public class CouponHistoryDTO implements Serializable {
private String userNickname;
// 领取时间
private Timestamp receiveTime;
private LocalDateTime receiveTime;
// 失效时间
private LocalDateTime expireTime;
......@@ -38,14 +37,14 @@ public class CouponHistoryDTO implements Serializable {
private Integer useStatus;
// 使用时间
private Timestamp useTime;
private LocalDateTime useTime;
// 订单详情id
private Long orderDetailId;
// 创建时间
private Timestamp createTime;
private LocalDateTime createTime;
// 更新时间
private Timestamp updateTime;
private LocalDateTime updateTime;
}
......
package com.topdraw.business.basicdata.coupon.history.service.dto;
package com.topdraw.business.module.coupon.history.service.dto;
import lombok.Data;
import com.topdraw.annotation.Query;
/**
* @author XiangHan
......
package com.topdraw.business.basicdata.coupon.history.service.impl;
package com.topdraw.business.module.coupon.history.service.impl;
import com.topdraw.aspect.AsyncMqSend;
import com.topdraw.business.basicdata.coupon.history.domain.CouponHistory;
import com.topdraw.business.module.coupon.history.domain.CouponHistory;
import com.topdraw.utils.ValidationUtil;
import com.topdraw.business.basicdata.coupon.history.repository.CouponHistoryRepository;
import com.topdraw.business.basicdata.coupon.history.service.CouponHistoryService;
import com.topdraw.business.basicdata.coupon.history.service.dto.CouponHistoryDTO;
import com.topdraw.business.basicdata.coupon.history.service.dto.CouponHistoryQueryCriteria;
import com.topdraw.business.basicdata.coupon.history.service.mapper.CouponHistoryMapper;
import com.topdraw.business.module.coupon.history.repository.CouponHistoryRepository;
import com.topdraw.business.module.coupon.history.service.CouponHistoryService;
import com.topdraw.business.module.coupon.history.service.dto.CouponHistoryDTO;
import com.topdraw.business.module.coupon.history.service.dto.CouponHistoryQueryCriteria;
import com.topdraw.business.module.coupon.history.service.mapper.CouponHistoryMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
......@@ -20,6 +20,7 @@ import com.topdraw.utils.PageUtil;
import com.topdraw.utils.QueryHelp;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
......@@ -87,12 +88,12 @@ public class CouponHistoryServiceImpl implements CouponHistoryService {
}
@Override
public Long countByUserIdAndExpireTimeBefore(Long userId, Timestamp now) {
public Long countByUserIdAndExpireTimeBefore(Long userId, LocalDateTime now) {
return this.CouponHistoryRepository.countByUserIdAndExpireTimeBefore(userId,now);
}
@Override
public Long countByUserIdAndExpireTimeBetween(Long userId, Timestamp now, Timestamp expireTime) {
public Long countByUserIdAndExpireTimeBetween(Long userId, LocalDateTime now, LocalDateTime expireTime) {
return this.CouponHistoryRepository.countByUserIdAndExpireTimeBetween(userId,now,expireTime);
}
......
package com.topdraw.business.basicdata.coupon.history.service.mapper;
package com.topdraw.business.module.coupon.history.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.basicdata.coupon.history.domain.CouponHistory;
import com.topdraw.business.basicdata.coupon.history.service.dto.CouponHistoryDTO;
import com.topdraw.business.module.coupon.history.domain.CouponHistory;
import com.topdraw.business.module.coupon.history.service.dto.CouponHistoryDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
......
package com.topdraw.business.basicdata.coupon.repository;
package com.topdraw.business.module.coupon.repository;
import com.topdraw.business.basicdata.coupon.domain.Coupon;
import com.topdraw.business.module.coupon.domain.Coupon;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
......
package com.topdraw.business.basicdata.coupon.rest;
package com.topdraw.business.module.coupon.rest;
import com.topdraw.common.ResultInfo;
import com.topdraw.aop.log.Log;
import com.topdraw.business.basicdata.coupon.domain.Coupon;
import com.topdraw.business.basicdata.coupon.service.CouponService;
import com.topdraw.business.basicdata.coupon.service.dto.CouponQueryCriteria;
import com.topdraw.business.module.coupon.domain.Coupon;
import com.topdraw.business.module.coupon.service.CouponService;
import com.topdraw.business.module.coupon.service.dto.CouponQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.validation.annotation.Validated;
......@@ -35,7 +34,6 @@ public class CouponController {
return ResultInfo.success(CouponService.queryAll(criteria));
}
@Log
@PostMapping(value = "/create")
@ApiOperation("新增Coupon")
public ResultInfo create(@Validated @RequestBody Coupon resources) {
......@@ -43,7 +41,6 @@ public class CouponController {
return ResultInfo.success();
}
@Log
@PutMapping(value = "/update")
@ApiOperation("修改Coupon")
public ResultInfo update(@Validated @RequestBody Coupon resources) {
......@@ -51,8 +48,6 @@ public class CouponController {
return ResultInfo.success();
}
@Log
@DeleteMapping(value = "/delete/{id}")
@ApiOperation("删除Coupon")
public ResultInfo delete(@PathVariable Long id) {
......
package com.topdraw.business.basicdata.coupon.service;
package com.topdraw.business.module.coupon.service;
import com.topdraw.business.basicdata.coupon.domain.Coupon;
import com.topdraw.business.basicdata.coupon.service.dto.CouponDTO;
import com.topdraw.business.basicdata.coupon.service.dto.CouponQueryCriteria;
import com.topdraw.business.module.coupon.domain.Coupon;
import com.topdraw.business.module.coupon.service.dto.CouponDTO;
import com.topdraw.business.module.coupon.service.dto.CouponQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.Map;
import java.util.List;
......
package com.topdraw.business.basicdata.coupon.service.dto;
package com.topdraw.business.module.coupon.service.dto;
import lombok.Data;
import java.sql.Timestamp;
......
package com.topdraw.business.basicdata.coupon.service.impl;
package com.topdraw.business.module.coupon.service.impl;
import com.topdraw.aspect.AsyncMqSend;
import com.topdraw.business.basicdata.coupon.domain.Coupon;
import com.topdraw.business.module.coupon.domain.Coupon;
import com.topdraw.util.RedissonUtil;
import com.topdraw.utils.ValidationUtil;
import com.topdraw.business.basicdata.coupon.repository.CouponRepository;
import com.topdraw.business.basicdata.coupon.service.CouponService;
import com.topdraw.business.basicdata.coupon.service.dto.CouponDTO;
import com.topdraw.business.basicdata.coupon.service.dto.CouponQueryCriteria;
import com.topdraw.business.basicdata.coupon.service.mapper.CouponMapper;
import com.topdraw.business.module.coupon.repository.CouponRepository;
import com.topdraw.business.module.coupon.service.CouponService;
import com.topdraw.business.module.coupon.service.dto.CouponDTO;
import com.topdraw.business.module.coupon.service.dto.CouponQueryCriteria;
import com.topdraw.business.module.coupon.service.mapper.CouponMapper;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
......
package com.topdraw.business.basicdata.coupon.service.mapper;
package com.topdraw.business.module.coupon.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.basicdata.coupon.domain.Coupon;
import com.topdraw.business.basicdata.coupon.service.dto.CouponDTO;
import com.topdraw.business.module.coupon.domain.Coupon;
import com.topdraw.business.module.coupon.service.dto.CouponDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
......
package com.topdraw.business.basicdata.exp.detail.domain;
package com.topdraw.business.module.exp.detail.domain;
import lombok.Data;
import lombok.experimental.Accessors;
......
package com.topdraw.business.basicdata.exp.detail.repository;
package com.topdraw.business.module.exp.detail.repository;
import com.topdraw.business.basicdata.exp.detail.domain.ExpDetail;
import com.topdraw.business.module.exp.detail.domain.ExpDetail;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
......
package com.topdraw.business.basicdata.exp.detail.rest;
package com.topdraw.business.module.exp.detail.rest;
import com.topdraw.common.ResultInfo;
import com.topdraw.aop.log.Log;
import com.topdraw.business.basicdata.exp.detail.domain.ExpDetail;
import com.topdraw.business.basicdata.exp.detail.service.ExpDetailService;
import com.topdraw.business.basicdata.exp.detail.service.dto.ExpDetailQueryCriteria;
import com.topdraw.business.module.exp.detail.domain.ExpDetail;
import com.topdraw.business.module.exp.detail.service.ExpDetailService;
import com.topdraw.business.module.exp.detail.service.dto.ExpDetailQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.validation.annotation.Validated;
......@@ -35,7 +34,6 @@ public class ExpDetailController {
return ResultInfo.success(ExpDetailService.queryAll(criteria));
}
@Log
@PostMapping(value = "/create")
@ApiOperation("新增ExpDetail")
public ResultInfo create(@Validated @RequestBody ExpDetail resources) {
......@@ -43,7 +41,6 @@ public class ExpDetailController {
return ResultInfo.success();
}
@Log
@PutMapping(value = "/update")
@ApiOperation("修改ExpDetail")
public ResultInfo update(@Validated @RequestBody ExpDetail resources) {
......@@ -51,8 +48,6 @@ public class ExpDetailController {
return ResultInfo.success();
}
@Log
@DeleteMapping(value = "/delete/{id}")
@ApiOperation("删除ExpDetail")
public ResultInfo delete(@PathVariable Long id) {
......
package com.topdraw.business.basicdata.exp.detail.service;
package com.topdraw.business.module.exp.detail.service;
import com.topdraw.business.basicdata.exp.detail.domain.ExpDetail;
import com.topdraw.business.basicdata.exp.detail.service.dto.ExpDetailDTO;
import com.topdraw.business.basicdata.exp.detail.service.dto.ExpDetailQueryCriteria;
import com.topdraw.business.module.exp.detail.domain.ExpDetail;
import com.topdraw.business.module.exp.detail.service.dto.ExpDetailDTO;
import com.topdraw.business.module.exp.detail.service.dto.ExpDetailQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.Map;
import java.util.List;
......
package com.topdraw.business.basicdata.exp.detail.service.dto;
package com.topdraw.business.module.exp.detail.service.dto;
import lombok.Data;
import java.sql.Timestamp;
......
package com.topdraw.business.basicdata.exp.detail.service.impl;
package com.topdraw.business.module.exp.detail.service.impl;
import com.topdraw.aspect.AsyncMqSend;
import com.topdraw.business.basicdata.exp.detail.domain.ExpDetail;
import com.topdraw.business.module.exp.detail.domain.ExpDetail;
import com.topdraw.utils.ValidationUtil;
import com.topdraw.business.basicdata.exp.detail.repository.ExpDetailRepository;
import com.topdraw.business.basicdata.exp.detail.service.ExpDetailService;
import com.topdraw.business.basicdata.exp.detail.service.dto.ExpDetailDTO;
import com.topdraw.business.basicdata.exp.detail.service.dto.ExpDetailQueryCriteria;
import com.topdraw.business.basicdata.exp.detail.service.mapper.ExpDetailMapper;
import com.topdraw.business.module.exp.detail.repository.ExpDetailRepository;
import com.topdraw.business.module.exp.detail.service.ExpDetailService;
import com.topdraw.business.module.exp.detail.service.dto.ExpDetailDTO;
import com.topdraw.business.module.exp.detail.service.dto.ExpDetailQueryCriteria;
import com.topdraw.business.module.exp.detail.service.mapper.ExpDetailMapper;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
......
package com.topdraw.business.basicdata.exp.detail.service.mapper;
package com.topdraw.business.module.exp.detail.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.basicdata.exp.detail.domain.ExpDetail;
import com.topdraw.business.basicdata.exp.detail.service.dto.ExpDetailDTO;
import com.topdraw.business.module.exp.detail.domain.ExpDetail;
import com.topdraw.business.module.exp.detail.service.dto.ExpDetailDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
......
package com.topdraw.business.basicdata.exp.history.domain;
package com.topdraw.business.module.exp.history.domain;
import lombok.Data;
import lombok.experimental.Accessors;
......
package com.topdraw.business.basicdata.exp.history.repository;
package com.topdraw.business.module.exp.history.repository;
import com.topdraw.business.basicdata.exp.history.domain.ExpHistory;
import com.topdraw.business.module.exp.history.domain.ExpHistory;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
......
package com.topdraw.business.basicdata.exp.history.rest;
package com.topdraw.business.module.exp.history.rest;
import com.topdraw.common.ResultInfo;
import com.topdraw.aop.log.Log;
import com.topdraw.business.basicdata.exp.history.domain.ExpHistory;
import com.topdraw.business.basicdata.exp.history.service.ExpHistoryService;
import com.topdraw.business.basicdata.exp.history.service.dto.ExpHistoryQueryCriteria;
import com.topdraw.business.module.exp.history.service.ExpHistoryService;
import com.topdraw.business.module.exp.history.service.dto.ExpHistoryQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
......
package com.topdraw.business.basicdata.exp.history.service;
package com.topdraw.business.module.exp.history.service;
import com.topdraw.business.basicdata.exp.history.domain.ExpHistory;
import com.topdraw.business.basicdata.exp.history.service.dto.ExpHistoryDTO;
import com.topdraw.business.basicdata.exp.history.service.dto.ExpHistoryQueryCriteria;
import com.topdraw.business.module.exp.history.domain.ExpHistory;
import com.topdraw.business.module.exp.history.service.dto.ExpHistoryDTO;
import com.topdraw.business.module.exp.history.service.dto.ExpHistoryQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.Map;
import java.util.List;
......
package com.topdraw.business.basicdata.exp.history.service.dto;
package com.topdraw.business.module.exp.history.service.dto;
import lombok.Data;
import java.sql.Timestamp;
......
package com.topdraw.business.basicdata.exp.history.service.impl;
package com.topdraw.business.module.exp.history.service.impl;
import com.topdraw.aspect.AsyncMqSend;
import com.topdraw.business.basicdata.exp.history.domain.ExpHistory;
import com.topdraw.business.module.exp.history.domain.ExpHistory;
import com.topdraw.utils.ValidationUtil;
import com.topdraw.business.basicdata.exp.history.repository.ExpHistoryRepository;
import com.topdraw.business.basicdata.exp.history.service.ExpHistoryService;
import com.topdraw.business.basicdata.exp.history.service.dto.ExpHistoryDTO;
import com.topdraw.business.basicdata.exp.history.service.dto.ExpHistoryQueryCriteria;
import com.topdraw.business.basicdata.exp.history.service.mapper.ExpHistoryMapper;
import com.topdraw.business.module.exp.history.repository.ExpHistoryRepository;
import com.topdraw.business.module.exp.history.service.ExpHistoryService;
import com.topdraw.business.module.exp.history.service.dto.ExpHistoryDTO;
import com.topdraw.business.module.exp.history.service.dto.ExpHistoryQueryCriteria;
import com.topdraw.business.module.exp.history.service.mapper.ExpHistoryMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
......
package com.topdraw.business.basicdata.exp.history.service.mapper;
package com.topdraw.business.module.exp.history.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.basicdata.exp.history.domain.ExpHistory;
import com.topdraw.business.basicdata.exp.history.service.dto.ExpHistoryDTO;
import com.topdraw.business.module.exp.history.domain.ExpHistory;
import com.topdraw.business.module.exp.history.service.dto.ExpHistoryDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
......
package com.topdraw.business.basicdata.member.address.domain;
package com.topdraw.business.module.member.address.domain;
import lombok.Data;
import lombok.experimental.Accessors;
......@@ -11,6 +11,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.sql.Timestamp;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author XiangHan
......@@ -90,12 +91,12 @@ public class MemberAddress implements Serializable {
// 创建时间
@CreatedDate
@Column(name = "create_time")
private Timestamp createTime;
private LocalDateTime createTime;
// 更新时间
@LastModifiedDate
@Column(name = "update_time")
private Timestamp updateTime;
private LocalDateTime updateTime;
public void copy(MemberAddress source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
......
package com.topdraw.business.basicdata.member.address.repository;
package com.topdraw.business.module.member.address.repository;
import com.topdraw.business.basicdata.member.address.domain.MemberAddress;
import com.topdraw.business.module.member.address.domain.MemberAddress;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
......
package com.topdraw.business.basicdata.member.address.rest;
package com.topdraw.business.module.member.address.rest;
import com.alibaba.fastjson.JSONObject;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.business.basicdata.member.service.MemberService;
import com.topdraw.business.basicdata.member.service.dto.MemberDTO;
import com.topdraw.business.basicdata.user.iptv.service.UserTvService;
import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvDTO;
import com.topdraw.business.module.member.service.MemberService;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.common.ResultInfo;
import com.topdraw.aop.log.Log;
import com.topdraw.business.basicdata.member.address.domain.MemberAddress;
import com.topdraw.business.basicdata.member.address.service.MemberAddressService;
import com.topdraw.business.basicdata.member.address.service.dto.MemberAddressQueryCriteria;
import com.topdraw.business.module.member.address.domain.MemberAddress;
import com.topdraw.business.module.member.address.service.MemberAddressService;
import com.topdraw.business.module.member.address.service.dto.MemberAddressQueryCriteria;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.util.Assert;
import org.springframework.util.Base64Utils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.Objects;
/**
......@@ -29,16 +23,15 @@ import java.util.Objects;
*/
@Api(tags = "MemberAddress管理")
@RestController
@RequestMapping("/api/MemberAddress")
@RequestMapping("/ucEngine/api/memberAddress")
@CrossOrigin
@Slf4j
public class MemberAddressController {
@Autowired
private MemberAddressService MemberAddressService;
@Autowired
private MemberService memberService;
@Autowired
private UserTvService userTvService;
@GetMapping(value = "/pageMemberAddress")
@ApiOperation("查询MemberAddress")
......@@ -52,50 +45,27 @@ public class MemberAddressController {
return ResultInfo.success(MemberAddressService.findById(id));
}
@Log
@PostMapping(value = "/create")
@ApiOperation("新增MemberAddress")
public ResultInfo create(@Validated @RequestBody MemberAddress resources) {
MemberAddressService.create(resources);
return ResultInfo.success();
}
@Log
@PostMapping(value = "/createByPlatformAccount")
@ApiOperation("通过大屏账户创建会员地址")
@AnonymousAccess
public ResultInfo createByPlatformAccount(@RequestBody String contentDecode) {
byte[] bytes = contentDecode.getBytes(StandardCharsets.UTF_8);
byte[] decode = Base64Utils.decode(bytes);
String content = new String(decode);
MemberAddress resources = JSONObject.parseObject(content,MemberAddress.class);
String platformAccount = resources.getPlatformAccount();
Assert.notNull(platformAccount,"platformAccount can't be null!");
public ResultInfo create(@Validated @RequestBody MemberAddress resources) {
log.info("MemberAddressController ==>> create ===>>[{}]",resources);
UserTvDTO userTvDTO = this.userTvService.findByPlatformAccount(platformAccount);
if (Objects.nonNull(userTvDTO) && Objects.nonNull(userTvDTO.getId())) {
Long memberId = userTvDTO.getMemberId();
Long memberId = resources.getMemberId();
MemberDTO memberDTO = this.memberService.findById(memberId);
String code = memberDTO.getCode();
resources.setMemberCode(code);
resources.setMemberId(memberId);
resources.setCity("");
resources.setStatus(1);
resources.setContactor("");
resources.setCountry("cn");
resources.setDistrict("");
resources.setType(1);
resources.setIsDefault(2);
resources.setProvince("");
this.create(resources);
}
MemberAddressService.create(resources);
return ResultInfo.success();
}
@Log
@PutMapping(value = "/update")
@ApiOperation("修改MemberAddress")
@AnonymousAccess
public ResultInfo update(@Validated @RequestBody MemberAddress resources) {
log.info("MemberAddressController ==>> update ===>>[{}]",resources);
Long memberId = resources.getMemberId();
Integer sequence = resources.getSequence();
Assert.notNull(memberId,"memberId can't be null");
......@@ -110,9 +80,9 @@ public class MemberAddressController {
return ResultInfo.success();
}
@Log
@DeleteMapping(value = "/delete/{id}")
@ApiOperation("删除MemberAddress")
@AnonymousAccess
public ResultInfo delete(@PathVariable Long id) {
MemberAddressService.delete(id);
return ResultInfo.success();
......
package com.topdraw.business.basicdata.member.address.service;
package com.topdraw.business.module.member.address.service;
import com.topdraw.business.basicdata.member.address.domain.MemberAddress;
import com.topdraw.business.basicdata.member.address.service.dto.MemberAddressDTO;
import com.topdraw.business.basicdata.member.address.service.dto.MemberAddressQueryCriteria;
import com.topdraw.business.module.member.address.domain.MemberAddress;
import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO;
import com.topdraw.business.module.member.address.service.dto.MemberAddressQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.Map;
import java.util.List;
......@@ -40,5 +40,4 @@ public interface MemberAddressService {
void update(MemberAddress resources);
void delete(Long id);
}
......
package com.topdraw.business.basicdata.member.address.service.dto;
package com.topdraw.business.module.member.address.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
......@@ -55,8 +56,8 @@ public class MemberAddressDTO implements Serializable {
private String zipCode;
// 创建时间
private Timestamp createTime;
private LocalDateTime createTime;
// 更新时间
private Timestamp updateTime;
private LocalDateTime updateTime;
}
......
package com.topdraw.business.basicdata.member.address.service.dto;
package com.topdraw.business.module.member.address.service.dto;
import com.topdraw.annotation.Query;
import lombok.Data;
......
package com.topdraw.business.basicdata.member.address.service.impl;
package com.topdraw.business.module.member.address.service.impl;
import com.topdraw.aspect.AsyncMqSend;
import com.topdraw.business.basicdata.member.address.domain.MemberAddress;
import com.topdraw.business.module.member.address.domain.MemberAddress;
import com.topdraw.business.module.member.service.MemberService;
import com.topdraw.utils.ValidationUtil;
import com.topdraw.business.basicdata.member.address.repository.MemberAddressRepository;
import com.topdraw.business.basicdata.member.address.service.MemberAddressService;
import com.topdraw.business.basicdata.member.address.service.dto.MemberAddressDTO;
import com.topdraw.business.basicdata.member.address.service.dto.MemberAddressQueryCriteria;
import com.topdraw.business.basicdata.member.address.service.mapper.MemberAddressMapper;
import com.topdraw.business.module.member.address.repository.MemberAddressRepository;
import com.topdraw.business.module.member.address.service.MemberAddressService;
import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO;
import com.topdraw.business.module.member.address.service.dto.MemberAddressQueryCriteria;
import com.topdraw.business.module.member.address.service.mapper.MemberAddressMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
......
package com.topdraw.business.basicdata.member.address.service.mapper;
package com.topdraw.business.module.member.address.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.basicdata.member.address.domain.MemberAddress;
import com.topdraw.business.basicdata.member.address.service.dto.MemberAddressDTO;
import com.topdraw.business.module.member.address.domain.MemberAddress;
import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
......
package com.topdraw.business.basicdata.member.domain;
package com.topdraw.business.module.member.domain;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.topdraw.business.basicdata.member.profile.domain.MemberProfile;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.CreatedDate;
......@@ -118,23 +116,23 @@ public class Member implements Serializable {
/** iptv账号绑定时间 */
@Column(name = "bind_iptv_time")
private Timestamp bindIptvTime;
private LocalDateTime bindIptvTime;
/** 创建时间 */
@CreatedDate
@Column(name = "create_time")
private Timestamp createTime;
private LocalDateTime createTime;
/** 更新时间 */
@LastModifiedDate
@Column(name = "update_time")
private Timestamp updateTime;
private LocalDateTime updateTime;
/** 是否在黑名单 1:是;0否 */
@Column(name = "black_status")
private Long blackStatus;
public void copy(Member source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(false));
}
}
......
package com.topdraw.business.module.member.domain;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.topdraw.util.IdWorker;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
import java.time.LocalDateTime;
/**
* @author XiangHan
* @date 2021-10-22
*/
public class MemberBuilder {
public static Member build(Integer type,String avatarUrl,String nickname,Integer vip){
Member member = new Member();
member.setType(type);
member.setBlackStatus(0L);
member.setGender(-1);
member.setVip(vip==null?0:vip);
member.setLevel(1);
member.setStatus(1);
member.setPoints(0L);
member.setDuePoints(0L);
member.setExp(0L);
member.setCouponAmount(0L);
member.setDueCouponAmount(0L);
member.setAvatarUrl(avatarUrl);
member.setCode(IdWorker.generator() + "");
member.setNickname(nickname);
return member;
}
}
package com.topdraw.business.module.member.domain;
public interface MemberConstant {
// vip等级
Integer vip[] = new Integer[]{0,1,2,3,4,5,6,7,8};
}
package com.topdraw.business.basicdata.member.group.domain;
package com.topdraw.business.module.member.group.domain;
import lombok.Data;
import lombok.experimental.Accessors;
......
package com.topdraw.business.basicdata.member.group.repository;
package com.topdraw.business.module.member.group.repository;
import com.topdraw.business.basicdata.member.group.domain.MemberGroup;
import com.topdraw.business.module.member.group.domain.MemberGroup;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.Optional;
/**
* @author XiangHan
* @date 2021-11-17
......
package com.topdraw.business.basicdata.member.group.rest;
package com.topdraw.business.module.member.group.rest;
import com.topdraw.common.ResultInfo;
import com.topdraw.aop.log.Log;
import com.topdraw.business.basicdata.member.group.domain.MemberGroup;
import com.topdraw.business.basicdata.member.group.service.MemberGroupService;
import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupQueryCriteria;
import com.topdraw.business.module.member.group.domain.MemberGroup;
import com.topdraw.business.module.member.group.service.MemberGroupService;
import com.topdraw.business.module.member.group.service.dto.MemberGroupQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
/**
* @author XiangHan
......@@ -39,7 +34,6 @@ public class MemberGroupController {
return ResultInfo.success(MemberGroupService.queryAll(criteria));
}
@Log
@PostMapping
@ApiOperation("新增MemberGroup")
public ResultInfo create(@Validated @RequestBody MemberGroup resources) {
......@@ -47,7 +41,6 @@ public class MemberGroupController {
return ResultInfo.success();
}
@Log
@PutMapping
@ApiOperation("修改MemberGroup")
public ResultInfo update(@Validated @RequestBody MemberGroup resources) {
......@@ -55,8 +48,6 @@ public class MemberGroupController {
return ResultInfo.success();
}
@Log
@DeleteMapping(value = "/{id}")
@ApiOperation("删除MemberGroup")
public ResultInfo delete(@PathVariable Long id) {
......
package com.topdraw.business.basicdata.member.group.service;
package com.topdraw.business.module.member.group.service;
import com.topdraw.business.basicdata.member.group.domain.MemberGroup;
import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupDTO;
import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupQueryCriteria;
import com.topdraw.business.module.member.group.domain.MemberGroup;
import com.topdraw.business.module.member.group.service.dto.MemberGroupDTO;
import com.topdraw.business.module.member.group.service.dto.MemberGroupQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.Map;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
/**
* @author XiangHan
......
package com.topdraw.business.basicdata.member.group.service.dto;
package com.topdraw.business.module.member.group.service.dto;
import lombok.Data;
import java.sql.Timestamp;
......
package com.topdraw.business.basicdata.member.group.service.dto;
package com.topdraw.business.module.member.group.service.dto;
import lombok.Data;
import com.topdraw.annotation.Query;
......
package com.topdraw.business.basicdata.member.group.service.impl;
package com.topdraw.business.module.member.group.service.impl;
import com.topdraw.business.basicdata.member.group.domain.MemberGroup;
import com.topdraw.business.module.member.group.domain.MemberGroup;
import com.topdraw.utils.ValidationUtil;
import com.topdraw.utils.FileUtil;
import com.topdraw.business.basicdata.member.group.repository.MemberGroupRepository;
import com.topdraw.business.basicdata.member.group.service.MemberGroupService;
import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupDTO;
import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupQueryCriteria;
import com.topdraw.business.basicdata.member.group.service.mapper.MemberGroupMapper;
import com.topdraw.business.module.member.group.repository.MemberGroupRepository;
import com.topdraw.business.module.member.group.service.MemberGroupService;
import com.topdraw.business.module.member.group.service.dto.MemberGroupDTO;
import com.topdraw.business.module.member.group.service.dto.MemberGroupQueryCriteria;
import com.topdraw.business.module.member.group.service.mapper.MemberGroupMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
......@@ -18,14 +17,9 @@ import org.springframework.data.domain.Pageable;
import org.springframework.util.Assert;
import com.topdraw.utils.PageUtil;
import com.topdraw.utils.QueryHelp;
import com.topdraw.utils.StringUtils;
import java.util.List;
import java.util.Map;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.LinkedHashMap;
/**
* @author XiangHan
......
package com.topdraw.business.basicdata.member.group.service.mapper;
package com.topdraw.business.module.member.group.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.basicdata.member.group.domain.MemberGroup;
import com.topdraw.business.basicdata.member.group.service.dto.MemberGroupDTO;
import com.topdraw.business.module.member.group.domain.MemberGroup;
import com.topdraw.business.module.member.group.service.dto.MemberGroupDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
......
package com.topdraw.business.basicdata.member.level.domain;
package com.topdraw.business.module.member.level.domain;
import lombok.Data;
import lombok.experimental.Accessors;
......
package com.topdraw.business.basicdata.member.level.repository;
package com.topdraw.business.module.member.level.repository;
import com.topdraw.business.basicdata.member.level.domain.MemberLevel;
import com.topdraw.business.module.member.level.domain.MemberLevel;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
......
package com.topdraw.business.basicdata.member.level.rest;
package com.topdraw.business.module.member.level.rest;
import com.topdraw.common.ResultInfo;
import com.topdraw.aop.log.Log;
import com.topdraw.business.basicdata.member.level.domain.MemberLevel;
import com.topdraw.business.basicdata.member.level.service.MemberLevelService;
import com.topdraw.business.basicdata.member.level.service.dto.MemberLevelQueryCriteria;
import com.topdraw.business.module.member.level.service.MemberLevelService;
import com.topdraw.business.module.member.level.service.dto.MemberLevelQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
......
package com.topdraw.business.basicdata.member.level.service;
package com.topdraw.business.module.member.level.service;
import com.topdraw.business.basicdata.member.level.domain.MemberLevel;
import com.topdraw.business.basicdata.member.level.service.dto.MemberLevelDTO;
import com.topdraw.business.basicdata.member.level.service.dto.MemberLevelQueryCriteria;
import com.topdraw.business.module.member.level.domain.MemberLevel;
import com.topdraw.business.module.member.level.service.dto.MemberLevelDTO;
import com.topdraw.business.module.member.level.service.dto.MemberLevelQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.Map;
import java.util.List;
......
package com.topdraw.business.basicdata.member.level.service.dto;
package com.topdraw.business.module.member.level.service.dto;
import lombok.Data;
import java.sql.Timestamp;
......
package com.topdraw.business.basicdata.member.level.service.impl;
package com.topdraw.business.module.member.level.service.impl;
import com.topdraw.aspect.AsyncMqSend;
import com.topdraw.business.basicdata.member.level.domain.MemberLevel;
import com.topdraw.business.module.member.level.domain.MemberLevel;
import com.topdraw.utils.ValidationUtil;
import com.topdraw.business.basicdata.member.level.repository.MemberLevelRepository;
import com.topdraw.business.basicdata.member.level.service.MemberLevelService;
import com.topdraw.business.basicdata.member.level.service.dto.MemberLevelDTO;
import com.topdraw.business.basicdata.member.level.service.dto.MemberLevelQueryCriteria;
import com.topdraw.business.basicdata.member.level.service.mapper.MemberLevelMapper;
import com.topdraw.business.module.member.level.repository.MemberLevelRepository;
import com.topdraw.business.module.member.level.service.MemberLevelService;
import com.topdraw.business.module.member.level.service.dto.MemberLevelDTO;
import com.topdraw.business.module.member.level.service.dto.MemberLevelQueryCriteria;
import com.topdraw.business.module.member.level.service.mapper.MemberLevelMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
......
package com.topdraw.business.basicdata.member.level.service.mapper;
package com.topdraw.business.module.member.level.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.basicdata.member.level.domain.MemberLevel;
import com.topdraw.business.basicdata.member.level.service.dto.MemberLevelDTO;
import com.topdraw.business.module.member.level.domain.MemberLevel;
import com.topdraw.business.module.member.level.service.dto.MemberLevelDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
......
package com.topdraw.business.basicdata.member.profile.domain;
package com.topdraw.business.module.member.profile.domain;
import com.topdraw.business.basicdata.member.profile.DoSaveMemberProfileGroup;
import com.topdraw.business.basicdata.member.profile.DoUpdateMemberProfileGroup;
import com.topdraw.business.module.member.profile.DoSaveMemberProfileGroup;
import com.topdraw.business.module.member.profile.DoUpdateMemberProfileGroup;
import lombok.Data;
import lombok.experimental.Accessors;
import cn.hutool.core.bean.BeanUtil;
......@@ -89,6 +89,10 @@ public class MemberProfile implements Serializable {
@Column(name = "district")
private String district;
//头像
@Transient
private String avatarUrl;
// 描述
@Column(name = "description")
private String description;
......
package com.topdraw.business.module.member.profile.domain;
import com.topdraw.utils.StringUtils;
import java.sql.Timestamp;
import java.util.Objects;
public class MemberProfileBuild {
public static MemberProfile build(Long memberId , String realname , Integer gender, Timestamp birthday){
MemberProfile memberProfile = build(memberId,realname,gender,"","","","","","",
"","","",birthday);
return memberProfile;
}
public static MemberProfile build(){
MemberProfile memberProfile = build(null,"",null,"","","","","","",
"","","",null);
return memberProfile;
}
public static MemberProfile build(Long memberId, String realName, Integer sex,
String contry, String district, String city, String idCard, String province,
String email, String description, String phone, String constellation,
Timestamp timestamp) {
if (memberId == null)
throw new NullPointerException("memberId is null");
MemberProfile memberProfile = new MemberProfile();
memberProfile.setMemberId(memberId);
memberProfile.setRealname(stringIsNull(realName));
memberProfile.setGender(sex == null ? 0 : sex);
memberProfile.setCountry(stringIsNull(contry));
memberProfile.setDistrict(stringIsNull(district));
memberProfile.setCity(stringIsNull(city));
memberProfile.setIdCard(stringIsNull(idCard));
memberProfile.setProvince(stringIsNull(province));
memberProfile.setEmail(stringIsNull(email));
memberProfile.setDescription(stringIsNull(description));
memberProfile.setPhone(stringIsNull(phone));
memberProfile.setConstellation(stringIsNull(constellation));
memberProfile.setBirthday(timestamp);
return memberProfile;
}
private static String stringIsNull(String s){
return StringUtils.isBlank(s)?"":s;
}
private static Object objectIsNull(Object s){
return Objects.nonNull(s)?null:s;
}
}
package com.topdraw.business.basicdata.member.profile.repository;
package com.topdraw.business.module.member.profile.repository;
import com.topdraw.business.basicdata.member.profile.domain.MemberProfile;
import com.topdraw.business.module.member.domain.Member;
import com.topdraw.business.module.member.profile.domain.MemberProfile;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
......@@ -13,4 +14,6 @@ import java.util.Optional;
public interface MemberProfileRepository extends JpaRepository<MemberProfile, Long>, JpaSpecificationExecutor<MemberProfile> {
Optional<MemberProfile> findByMemberId(Long memberId);
Optional<MemberProfile> findFirstByMemberId(Long memberId);
}
......
package com.topdraw.business.basicdata.member.profile.rest;
package com.topdraw.business.module.member.profile.rest;
import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileDTO;
import com.topdraw.business.basicdata.member.service.MemberService;
import com.topdraw.business.basicdata.member.service.dto.MemberDTO;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
import com.topdraw.business.module.member.service.MemberService;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.common.ResultInfo;
import com.topdraw.aop.log.Log;
import com.topdraw.business.basicdata.member.profile.domain.MemberProfile;
import com.topdraw.business.basicdata.member.profile.service.MemberProfileService;
import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileQueryCriteria;
import com.topdraw.business.module.member.profile.domain.MemberProfile;
import com.topdraw.business.module.member.profile.service.MemberProfileService;
import com.topdraw.util.Base64Util;
import com.topdraw.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.util.Assert;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -24,8 +24,9 @@ import java.util.Objects;
*/
@Api(tags = "MemberProfile管理")
@RestController
@RequestMapping("/api/MemberProfile")
@RequestMapping("/ucEngine/api/memberProfile")
@CrossOrigin
@Slf4j
public class MemberProfileController {
@Autowired
......@@ -45,18 +46,23 @@ public class MemberProfileController {
return ResultInfo.success(MemberProfileService.queryAll(criteria));
}*/
@Log
@PostMapping(value = "/create")
@ApiOperation("新增MemberProfile")
@AnonymousAccess
public ResultInfo create(@Validated @RequestBody MemberProfile resources) {
log.info("MemberProfileServiceImpl ==>> create ==>> resources ===>> [{}]",resources);
String realname = resources.getRealname();
MemberProfileService.create(resources);
return ResultInfo.success();
}
@Log
@PutMapping(value = "/update")
@ApiOperation("修改MemberProfile")
@AnonymousAccess
public ResultInfo update(@Validated @RequestBody MemberProfile resources) {
log.info("MemberProfileServiceImpl ==>> update ==>> resources ===>> [{}]",resources);
Long memberId = resources.getMemberId();
Assert.notNull(memberId,"memberId can't be null");
MemberDTO memberDTO = this.memberService.findById(memberId);
......@@ -77,8 +83,15 @@ public class MemberProfileController {
return ResultInfo.success();
}
@PutMapping
@ApiOperation("修改MemberProfile")
@AnonymousAccess
public ResultInfo updateMemberProfileAndMember(@Validated @RequestBody MemberProfile resources) {
log.info("MemberProfileServiceImpl ==>> update ==>> resources ===>> [{}]",resources);
this.MemberProfileService.updateMemberProfileAndMember(resources);
return ResultInfo.success();
}
@Log
@DeleteMapping(value = "/delete/{id}")
@ApiOperation("删除MemberProfile")
public ResultInfo delete(@PathVariable Long id) {
......
package com.topdraw.business.basicdata.member.profile.service;
package com.topdraw.business.module.member.profile.service;
import com.topdraw.business.basicdata.member.profile.domain.MemberProfile;
import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileDTO;
import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileQueryCriteria;
import com.topdraw.business.module.member.profile.domain.MemberProfile;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.Map;
import java.util.List;
......@@ -35,11 +35,15 @@ public interface MemberProfileService {
*/
MemberProfileDTO findById(Long id);
void create(MemberProfile resources);
MemberProfile create(MemberProfile resources);
MemberProfile createDefault(MemberProfile resources);
void update(MemberProfile resources);
void delete(Long id);
MemberProfileDTO findByMemberId(Long memberId);
void updateMemberProfileAndMember(MemberProfile resources);
}
......
package com.topdraw.business.basicdata.member.profile.service.dto;
package com.topdraw.business.module.member.profile.service.dto;
import lombok.Data;
import java.sql.Timestamp;
......@@ -21,21 +21,30 @@ public class MemberProfileDTO implements Serializable {
// 姓名
private String realname;
private String nickname;
// 性别 0:女; 1:男 -1:未知
private Integer gender;
// 生日
private Timestamp birthday;
// 生日字符串
private String birthdayStr;
// vip
private Integer vip;
// 星座
private String constellation;
// 身份证
private String idCard;
private Long vipExpireTime;
// 电话
private String phone;
// 身份证
private String idCard;
// 电子邮件
private String email;
......@@ -48,6 +57,9 @@ public class MemberProfileDTO implements Serializable {
// 城市
private String city;
// 头像
private String avatarUrl;
// 区县
private String district;
......
package com.topdraw.business.basicdata.member.profile.service.impl;
package com.topdraw.business.module.member.profile.service.impl;
import cn.hutool.core.date.DateUtil;
import com.topdraw.aspect.AsyncMqSend;
import com.topdraw.business.basicdata.member.profile.domain.MemberProfile;
import com.topdraw.business.basicdata.member.service.MemberService;
import com.topdraw.business.basicdata.member.service.dto.MemberDTO;
import com.topdraw.business.module.member.domain.Member;
import com.topdraw.business.module.member.profile.domain.MemberProfile;
import com.topdraw.business.module.member.profile.domain.MemberProfileBuild;
import com.topdraw.business.module.member.repository.MemberRepository;
import com.topdraw.business.module.member.service.MemberService;
import com.topdraw.utils.StringUtils;
import com.topdraw.utils.ValidationUtil;
import com.topdraw.business.basicdata.member.profile.repository.MemberProfileRepository;
import com.topdraw.business.basicdata.member.profile.service.MemberProfileService;
import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileDTO;
import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileQueryCriteria;
import com.topdraw.business.basicdata.member.profile.service.mapper.MemberProfileMapper;
import com.topdraw.business.module.member.profile.repository.MemberProfileRepository;
import com.topdraw.business.module.member.profile.service.MemberProfileService;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileQueryCriteria;
import com.topdraw.business.module.member.profile.service.mapper.MemberProfileMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
......@@ -21,6 +26,8 @@ import org.springframework.util.Assert;
import com.topdraw.utils.PageUtil;
import com.topdraw.utils.QueryHelp;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.List;
import java.util.Map;
import java.util.Optional;
......@@ -31,13 +38,19 @@ import java.util.Optional;
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
@Slf4j
public class MemberProfileServiceImpl implements MemberProfileService {
@Autowired
private MemberProfileRepository MemberProfileRepository;
@Autowired
private MemberRepository memberRepository;
@Autowired
private MemberProfileMapper MemberProfileMapper;
@Autowired
private MemberService memberService;
@Override
......@@ -61,17 +74,35 @@ public class MemberProfileServiceImpl implements MemberProfileService {
@Override
@Transactional(rollbackFor = Exception.class)
@AsyncMqSend()
public void create(MemberProfile resources) {
public MemberProfile create(MemberProfile resources) {
log.info("MemberProfileServiceImpl ==>> update ==>> resources ===>> [{}]",resources);
MemberProfileRepository.save(resources);
return resources;
}
@Override
public MemberProfile createDefault(MemberProfile resources) {
Long memberId = resources.getMemberId();
String realname = resources.getRealname();
Integer gender = resources.getGender();
MemberProfile memberProfile = MemberProfileBuild.build();
MemberProfile memberProfile1 = this.MemberProfileRepository.save(memberProfile);
return memberProfile1;
}
@Override
@Transactional(rollbackFor = Exception.class)
@AsyncMqSend()
public void update(MemberProfile resources) {
log.info("MemberProfileServiceImpl ==>> update ==>> resources ===>> [{}]",resources);
MemberProfile MemberProfile = MemberProfileRepository.findById(resources.getId()).orElseGet(MemberProfile::new);
ValidationUtil.isNull( MemberProfile.getId(),"MemberProfile","id",resources.getId());
MemberProfile.copy(resources);
log.info("MemberProfileServiceImpl ==>> update ==>> copy ===>> resources ===>> [{}]",resources);
MemberProfileRepository.save(MemberProfile);
}
......@@ -95,5 +126,37 @@ public class MemberProfileServiceImpl implements MemberProfileService {
return null;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateMemberProfileAndMember(MemberProfile resources) {
log.info("MemberProfileServiceImpl ==>> updateMemberProfileAndMember ==>> resources ===>> [{}]",resources);
String realname = resources.getRealname();
String nickNameStr = "";
if (StringUtils.isNotBlank(realname)) {
byte[] encode = Base64.getEncoder().encode(realname.getBytes(StandardCharsets.UTF_8));
nickNameStr = new String(encode);
resources.setRealname(nickNameStr);
}
if (StringUtils.isNotBlank(resources.getIdCard())) {
resources.setIdCard("000000000000000000");
}
this.MemberProfileRepository.save(resources);
//修改member相关信息
Long memberId = resources.getMemberId();
Member member = memberRepository.findById(memberId).orElseGet(Member::new);
ValidationUtil.isNull(member.getId(),"member","id", memberId);
member.setNickname(nickNameStr);
member.setGender(resources.getGender());
member.setBirthday(DateUtil.format(resources.getBirthday(), "yyyy-MM-dd"));
member.setAvatarUrl(resources.getAvatarUrl());
// memberRepository.save(member);
log.info("updateMemberProfileAndMember ==>> member ==>> [{}]",member);
memberService.update(member);
}
}
......
package com.topdraw.business.basicdata.member.profile.service.mapper;
package com.topdraw.business.module.member.profile.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.basicdata.member.profile.domain.MemberProfile;
import com.topdraw.business.basicdata.member.profile.service.dto.MemberProfileDTO;
import com.topdraw.business.module.member.profile.domain.MemberProfile;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
......
package com.topdraw.business.basicdata.member.relatedinfo.domain;
package com.topdraw.business.module.member.relatedinfo.domain;
import lombok.Data;
import lombok.experimental.Accessors;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
......@@ -28,6 +30,7 @@ public class MemberRelatedInfo implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
@NotNull(groups = {UpdateGroup.class})
private Long id;
// 会员id
......
package com.topdraw.business.module.member.relatedinfo.domain;
public interface UpdateGroup {
}
package com.topdraw.business.basicdata.member.relatedinfo.repository;
package com.topdraw.business.module.member.relatedinfo.repository;
import com.topdraw.business.basicdata.member.relatedinfo.domain.MemberRelatedInfo;
import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
......
package com.topdraw.business.module.member.relatedinfo.rest;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.business.module.member.relatedinfo.domain.UpdateGroup;
import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
import com.topdraw.business.module.member.service.MemberService;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.common.ResultInfo;
import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
import com.topdraw.business.module.member.relatedinfo.service.MemberRelatedInfoService;
import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria;
import com.topdraw.exception.BadRequestException;
import com.topdraw.util.Base64Util;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import java.util.Base64;
import java.util.Objects;
/**
* @author XiangHan
* @date 2021-10-22
*/
@Slf4j
@Api(tags = "MemberRelatedInfo管理")
@RestController
@RequestMapping("/ucEngine/api/memberRelatedInfo")
@CrossOrigin
public class MemberRelatedInfoController {
@Autowired
private MemberRelatedInfoService MemberRelatedInfoService;
@Autowired
private MemberService memberService;
@GetMapping(value = "/pageMemberRelatedInfos")
@ApiOperation("查询MemberRelatedInfo")
public ResultInfo pageMemberRelatedInfos(@Validated MemberRelatedInfoQueryCriteria criteria, Pageable pageable) {
return ResultInfo.successPage(MemberRelatedInfoService.queryAll(criteria,pageable));
}
@PostMapping(value = "/create")
@ApiOperation("新增MemberRelatedInfo")
@AnonymousAccess
public ResultInfo create(@Validated @RequestBody MemberRelatedInfo resources) {
String name = resources.getName();
if (StringUtils.hasText(name)) {
String nickNameEncode = Base64Util.encode(name);
resources.setName(nickNameEncode);
}
MemberRelatedInfoService.create(resources);
return ResultInfo.success();
}
@PutMapping(value = "/update")
@ApiOperation("修改MemberRelatedInfo")
@AnonymousAccess
public ResultInfo update(@Validated(value = {UpdateGroup.class}) @RequestBody MemberRelatedInfo resources) {
log.info("Param ===> resources ===> [{}]",resources);
String name = resources.getName();
if (StringUtils.hasText(name)) {
String nickNameEncode = Base64Util.encode(name);
resources.setName(nickNameEncode);
}
Long id = resources.getId();
MemberRelatedInfoDTO memberRelatedInfoDTO = this.MemberRelatedInfoService.findById(id);
if (memberRelatedInfoDTO.getId() != null) {
Long memberId = memberRelatedInfoDTO.getMemberId();
if (Objects.isNull(memberId)) {
log.info("id ==>> [{}]",id);
throw new BadRequestException("memberId is null! please check member info");
}
MemberDTO memberDTO = this.memberService.findById(memberId);
if (Objects.nonNull(memberDTO)) {
String code = memberDTO.getCode();
Assert.notNull(code,"code can't be null");
resources.setMemberCode(code);
MemberRelatedInfoService.update(resources);
}
}
return ResultInfo.success();
}
@GetMapping(value = "/findById/{id}")
@ApiOperation("查询指定MemberRelatedInfo")
public ResultInfo findById(@PathVariable("id") Long id) {
return ResultInfo.success(MemberRelatedInfoService.findById(id));
}
@DeleteMapping(value = "/delete/{id}")
@ApiOperation("删除MemberRelatedInfo")
@AnonymousAccess
public ResultInfo delete(@PathVariable Long id) {
MemberRelatedInfoService.delete(id);
return ResultInfo.success();
}
}
package com.topdraw.business.basicdata.member.relatedinfo.service;
package com.topdraw.business.module.member.relatedinfo.service;
import com.topdraw.business.basicdata.member.relatedinfo.domain.MemberRelatedInfo;
import com.topdraw.business.basicdata.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
import com.topdraw.business.basicdata.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria;
import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.Map;
import java.util.List;
......
package com.topdraw.business.basicdata.member.relatedinfo.service.dto;
package com.topdraw.business.module.member.relatedinfo.service.dto;
import lombok.Data;
import javax.persistence.Column;
import java.sql.Timestamp;
import java.io.Serializable;
import java.time.LocalDate;
......
package com.topdraw.business.basicdata.member.relatedinfo.service.dto;
package com.topdraw.business.module.member.relatedinfo.service.dto;
import com.topdraw.annotation.Query;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author XiangHan
* @date 2021-10-22
......
package com.topdraw.business.basicdata.member.relatedinfo.service.impl;
package com.topdraw.business.module.member.relatedinfo.service.impl;
import com.topdraw.aspect.AsyncMqSend;
import com.topdraw.business.basicdata.member.relatedinfo.domain.MemberRelatedInfo;
import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
import com.topdraw.utils.ValidationUtil;
import com.topdraw.business.basicdata.member.relatedinfo.repository.MemberRelatedInfoRepository;
import com.topdraw.business.basicdata.member.relatedinfo.service.MemberRelatedInfoService;
import com.topdraw.business.basicdata.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
import com.topdraw.business.basicdata.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria;
import com.topdraw.business.basicdata.member.relatedinfo.service.mapper.MemberRelatedInfoMapper;
import com.topdraw.business.module.member.relatedinfo.repository.MemberRelatedInfoRepository;
import com.topdraw.business.module.member.relatedinfo.service.MemberRelatedInfoService;
import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria;
import com.topdraw.business.module.member.relatedinfo.service.mapper.MemberRelatedInfoMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
......
package com.topdraw.business.basicdata.member.relatedinfo.service.mapper;
package com.topdraw.business.module.member.relatedinfo.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.basicdata.member.relatedinfo.domain.MemberRelatedInfo;
import com.topdraw.business.basicdata.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
......
package com.topdraw.business.basicdata.member.repository;
package com.topdraw.business.module.member.repository;
import com.topdraw.business.basicdata.member.domain.Member;
import com.topdraw.business.module.member.domain.Member;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
import java.util.Optional;
/**
......@@ -13,4 +14,6 @@ import java.util.Optional;
public interface MemberRepository extends JpaRepository<Member, Long>, JpaSpecificationExecutor<Member> {
Optional<Member> findFirstByCode(String code);
List<Member> findByUserIptvId(Long id);
}
......
package com.topdraw.business.basicdata.member.rest;
package com.topdraw.business.module.member.rest;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.aop.log.Log;
import com.topdraw.business.basicdata.member.domain.Member;
import com.topdraw.business.basicdata.member.service.MemberService;
import com.topdraw.business.basicdata.member.service.dto.MemberDTO;
import com.topdraw.business.basicdata.user.iptv.domain.UserTv;
import com.topdraw.business.process.service.UserTvOperationService;
import com.topdraw.business.module.member.domain.Member;
import com.topdraw.business.module.member.service.MemberService;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.business.module.user.iptv.domain.UserTv;
import com.topdraw.business.process.service.UserOperationService;
import com.topdraw.common.ResultInfo;
import com.topdraw.util.Base64Util;
import io.swagger.annotations.Api;
......@@ -27,7 +25,7 @@ import java.util.Objects;
*/
@Api(tags = "Member管理")
@RestController
@RequestMapping("/api/member")
@RequestMapping("/ucEngine/api/member")
@CrossOrigin
public class MemberController {
......@@ -35,9 +33,8 @@ public class MemberController {
private MemberService memberService;
@Autowired
private UserTvOperationService userTvOperationService;
private UserOperationService userTvOperationService;
@Log
@GetMapping(value = "/findById/{id}")
@ApiOperation("新增UserTv会员")
public ResultInfo findById(@PathVariable Long id) {
......@@ -45,10 +42,8 @@ public class MemberController {
return ResultInfo.success(memberDTO);
}
@Log
@PostMapping(value = "/createMemberByUserTv")
@ApiOperation("新增UserTv会员")
@AnonymousAccess
public ResultInfo createMemberByUserTv(@Validated @RequestBody UserTv resources) {
String platformAccount = resources.getPlatformAccount();
Assert.notNull(platformAccount, "The given platformAccount must not be null!");
......@@ -56,15 +51,14 @@ public class MemberController {
return ResultInfo.success(result);
}
@Log
@PostMapping(value = "/create")
@ApiOperation("新增Member")
@AnonymousAccess
public ResultInfo create(@Validated @RequestBody Member resources) {
Long id = memberService.create(resources);
return ResultInfo.success(id);
}
@Log
@PostMapping(value = "/doUpdateVip")
@ApiOperation("修改Member等级")
public ResultInfo doUpdateVip(@RequestBody Member member) {
......@@ -72,9 +66,9 @@ public class MemberController {
return ResultInfo.success();
}
@Log
@PutMapping(value = "/update")
@ApiOperation("修改Member")
@AnonymousAccess
public ResultInfo update(@Validated @RequestBody Member resources) {
Long memberId = resources.getId();
Assert.notNull(memberId,"memberId can't be null");
......@@ -83,10 +77,6 @@ public class MemberController {
String code = memberDTO.getCode();
Assert.notNull(code, "code can't be null");
resources.setCode(code);
String nickname = resources.getNickname();
if (!StringUtils.isEmpty(nickname)) {
resources.setNickname(Base64Util.encode(nickname));
}
memberService.update(resources);
}
return ResultInfo.success();
......
package com.topdraw.business.basicdata.member.service;
package com.topdraw.business.module.member.service;
import com.topdraw.business.basicdata.member.domain.Member;
import com.topdraw.business.basicdata.member.service.dto.MemberDTO;
import com.topdraw.business.basicdata.member.service.dto.MemberQueryCriteria;
import com.topdraw.business.basicdata.user.iptv.domain.UserTv;
import com.topdraw.aspect.AsyncMqSend;
import com.topdraw.business.module.member.domain.Member;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.business.module.member.service.dto.MemberQueryCriteria;
import org.springframework.data.domain.Pageable;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
......@@ -37,10 +39,28 @@ public interface MemberService {
*/
MemberDTO findById(Long id);
/**
*
* @param resources
* @return
*/
Long create(Member resources);
Member createAndReturnMember(Member resources);
/**
*
* @param resources
*/
void update(Member resources);
void unbind(Member resources);
/**
*
* @param id
*/
void delete(Long id);
/**
......@@ -50,5 +70,11 @@ public interface MemberService {
*/
MemberDTO getByCode(String code);
/**
*
* @param member
*/
void doUpdateMemberPoints(Member member);
List<MemberDTO> findByUserIptvId(Long id);
}
......
package com.topdraw.business.basicdata.member.service.dto;
package com.topdraw.business.module.member.service.dto;
import lombok.Data;
......@@ -14,6 +14,11 @@ import java.time.LocalDateTime;
@Data
public class MemberDTO implements Serializable {
private String platformAccount;
// iptv绑定的主会员 0:否 1:是
private Integer iptvMajor;
// vip过期时间
private LocalDateTime vipExpireTime;
......@@ -78,13 +83,13 @@ public class MemberDTO implements Serializable {
private Integer bindIptvPlatformType;
// iptv账号绑定时间
private Timestamp bindIptvTime;
private LocalDateTime bindIptvTime;
// 创建时间
private Timestamp createTime;
private LocalDateTime createTime;
// 更新时间
private Timestamp updateTime;
private LocalDateTime updateTime;
// 是否在黑名单 1:是;0否
private Long blackStatus;
......
package com.topdraw.business.basicdata.member.service.dto;
package com.topdraw.business.module.member.service.dto;
import com.topdraw.annotation.Query;
import lombok.Data;
......
package com.topdraw.business.basicdata.member.service.impl;
package com.topdraw.business.module.member.service.impl;
import com.topdraw.aspect.AsyncMqSend;
import com.topdraw.business.basicdata.member.domain.Member;
import com.topdraw.business.basicdata.member.repository.MemberRepository;
import com.topdraw.business.basicdata.member.service.MemberService;
import com.topdraw.business.basicdata.member.service.dto.MemberDTO;
import com.topdraw.business.basicdata.member.service.dto.MemberQueryCriteria;
import com.topdraw.business.basicdata.member.service.mapper.MemberMapper;
import com.topdraw.business.basicdata.user.iptv.domain.UserTv;
import com.topdraw.business.basicdata.user.iptv.service.UserTvService;
import com.topdraw.business.basicdata.user.iptv.service.dto.UserTvDTO;
import com.topdraw.common.ResultInfo;
import com.topdraw.config.LocalConstants;
import com.topdraw.mq.config.RabbitMqConfig;
import com.topdraw.business.module.member.domain.Member;
import com.topdraw.business.module.member.repository.MemberRepository;
import com.topdraw.business.module.member.service.MemberService;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.business.module.member.service.dto.MemberQueryCriteria;
import com.topdraw.business.module.member.service.mapper.MemberMapper;
import com.topdraw.util.IdWorker;
import com.topdraw.util.RedissonUtil;
import com.topdraw.util.TimestampUtil;
import com.topdraw.utils.PageUtil;
import com.topdraw.utils.QueryHelp;
import com.topdraw.utils.StringUtils;
......@@ -23,21 +16,15 @@ import com.topdraw.utils.ValidationUtil;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.util.Assert;
import java.nio.charset.StandardCharsets;
......@@ -65,7 +52,7 @@ public class MemberServiceImpl implements MemberService {
PlatformTransactionManager platformTransactionManager;
@Autowired
private com.topdraw.business.basicdata.user.iptv.service.UserTvService UserTvService;
private com.topdraw.business.module.user.iptv.service.UserTvService UserTvService;
@Override
public Map<String, Object> queryAll(MemberQueryCriteria criteria, Pageable pageable) {
......@@ -80,7 +67,6 @@ public class MemberServiceImpl implements MemberService {
}
@Override
// @Cacheable(value = "member::memberId",key = "#p0")
public MemberDTO findById(Long id) {
Member member = memberRepository.findById(id).orElseGet(Member::new);
ValidationUtil.isNull(member.getId(),"Member","id",id);
......@@ -92,12 +78,20 @@ public class MemberServiceImpl implements MemberService {
@Transactional(rollbackFor = Exception.class)
@AsyncMqSend
public Long create(Member resources) {
log.info("start=====>>>>>resources======>>>>接收到的数据 --->>>> " + resources);
Member member = this.checkMemberData(resources);
memberRepository.save(member);
return member.getId();
}
@Override
@Transactional(rollbackFor = Exception.class)
@AsyncMqSend
public Member createAndReturnMember(Member resources) {
Member member = this.checkMemberData(resources);
memberRepository.save(member);
return resources;
}
private Member checkMemberData(Member member) {
Long defaultValue = 0L;
String code = member.getCode();
......@@ -119,18 +113,16 @@ public class MemberServiceImpl implements MemberService {
member.setDueCouponAmount(defaultValue);
member.setBlackStatus(0L);
String nickname = member.getNickname();
if (StringUtils.isEmpty(nickname)) {
nickname = "未设置";
}
if (StringUtils.isNotEmpty(nickname)) {
String base64Nickname = new String(Base64.getEncoder().encode(nickname.getBytes(StandardCharsets.UTF_8)));
member.setNickname(base64Nickname);
}
return member;
}
@Override
@Transactional(rollbackFor = Exception.class)
@AsyncMqSend()
@CacheEvict(value = "member::memberId",key = "#p0.id")
public void update(Member resources) {
RLock rLock = this.redissonClient.getLock("member::update::id" + resources.getId().toString());
try {
......@@ -147,6 +139,25 @@ public class MemberServiceImpl implements MemberService {
}
}
@Override
@Transactional(rollbackFor = Exception.class)
@AsyncMqSend()
public void unbind(Member resources) {
RLock rLock = this.redissonClient.getLock("member::update::id" + resources.getId().toString());
try {
RedissonUtil.lock(rLock);
Member member = memberRepository.findById(resources.getId()).orElseGet(Member::new);
ValidationUtil.isNull(member.getId(), "Member", "id", resources.getId());
member.copy(resources);
this.save(member);
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
RedissonUtil.unlock(rLock);
}
}
private void save(Member member){
memberRepository.save(member);
}
......@@ -178,6 +189,7 @@ public class MemberServiceImpl implements MemberService {
}
@Override
@AsyncMqSend()
public void doUpdateMemberPoints(Member resources) {
RLock rLock = this.redissonClient.getLock("member::update::id" + resources.getId().toString());
try {
......@@ -194,5 +206,11 @@ public class MemberServiceImpl implements MemberService {
}
}
@Override
public List<MemberDTO> findByUserIptvId(Long id) {
List<Member> memberList = this.memberRepository.findByUserIptvId(id);
return memberMapper.toDto(memberList);
}
}
......
package com.topdraw.business.basicdata.member.service.mapper;
package com.topdraw.business.module.member.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.basicdata.member.domain.Member;
import com.topdraw.business.basicdata.member.service.dto.MemberDTO;
import com.topdraw.business.module.member.domain.Member;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
......
package com.topdraw.business.module.member.viphistory.domain;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
import java.time.LocalDateTime;
/**
* @author luerlong
* @date 2021-12-10
*/
@Entity
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="uc_member_vip_history")
public class MemberVipHistory implements Serializable {
// 主键
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
// 会员id
@Column(name = "member_id")
private Long memberId;
// 会员vip等级
@Column(name = "vip")
private Integer vip;
// 修改之前vip等级
@Column(name = "before_vip")
private Integer beforeVip;
// vip失效时间
@Column(name = "vip_expire_time")
private LocalDateTime vipExpireTime;
// 状态 1正常 0已过期
@Column(name = "status")
private Integer status;
// 创建时间
@CreatedDate
@Column(name = "create_time")
private Timestamp createTime;
// 修改时间
@LastModifiedDate
@Column(name = "update_time")
private Timestamp updateTime;
public void copy(MemberVipHistory source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}
package com.topdraw.business.module.member.viphistory.repository;
import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import java.time.LocalDateTime;
import java.util.Optional;
/**
* @author luerlong
* @date 2021-12-10
*/
public interface MemberVipHistoryRepository extends JpaRepository<MemberVipHistory, Long>, JpaSpecificationExecutor<MemberVipHistory> {
@Query(value = "SELECT * FROM uc_member_vip_history " +
" WHERE vip_expire_time >= ?2 AND member_id = ?1 order by create_time desc limit 1 ", nativeQuery = true)
Optional<MemberVipHistory> findByTime(Long memberId, LocalDateTime nowTime);
}
package com.topdraw.business.module.member.viphistory.rest;
import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService;
import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryQueryCriteria;
import com.topdraw.common.ResultInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* @author luerlong
* @date 2021-12-10
*/
@Api(tags = "MemberVipHistory管理")
@RestController
@RequestMapping("/api/memberVipHistory")
public class MemberVipHistoryController {
@Autowired
private MemberVipHistoryService memberVipHistoryService;
@GetMapping
@ApiOperation("查询MemberVipHistory")
public ResultInfo getMemberVipHistorys(MemberVipHistoryQueryCriteria criteria, Pageable pageable) {
return ResultInfo.successPage(memberVipHistoryService.queryAll(criteria,pageable));
}
@GetMapping(value = "/all")
@ApiOperation("查询所有MemberVipHistory")
public ResultInfo getMemberVipHistorys(MemberVipHistoryQueryCriteria criteria) {
return ResultInfo.success(memberVipHistoryService.queryAll(criteria));
}
@PostMapping
@ApiOperation("新增MemberVipHistory")
public ResultInfo create(@Validated @RequestBody MemberVipHistory resources) {
memberVipHistoryService.create(resources);
return ResultInfo.success();
}
@PutMapping
@ApiOperation("修改MemberVipHistory")
public ResultInfo update(@Validated @RequestBody MemberVipHistory resources) {
memberVipHistoryService.update(resources);
return ResultInfo.success();
}
@DeleteMapping(value = "/{id}")
@ApiOperation("删除MemberVipHistory")
public ResultInfo delete(@PathVariable Long id) {
memberVipHistoryService.delete(id);
return ResultInfo.success();
}
}
package com.topdraw.business.module.member.viphistory.service;
import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryDTO;
import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* @author luerlong
* @date 2021-12-10
*/
public interface MemberVipHistoryService {
/**
* 查询数据分页
* @param criteria 条件参数
* @param pageable 分页参数
* @return Map<String,Object>
*/
Map<String,Object> queryAll(MemberVipHistoryQueryCriteria criteria, Pageable pageable);
/**
* 查询所有数据不分页
* @param criteria 条件参数
* @return List<MemberVipHistoryDTO>
*/
List<MemberVipHistoryDTO> queryAll(MemberVipHistoryQueryCriteria criteria);
/**
* 根据ID查询
* @param id ID
* @return MemberVipHistoryDTO
*/
MemberVipHistoryDTO findById(Long id);
void create(MemberVipHistory resources);
void update(MemberVipHistory resources);
void delete(Long id);
MemberVipHistory findByTime(Long id, LocalDateTime nowTime);
}
package com.topdraw.business.module.member.viphistory.service.dto;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
import java.time.LocalDateTime;
/**
* @author luerlong
* @date 2021-12-10
*/
@Data
public class MemberVipHistoryDTO implements Serializable {
// 主键
private Long id;
// 会员id
private Long memberId;
// 会员vip等级
private Integer vip;
// 修改之前vip等级
private Integer beforeVip;
// vip失效时间
private LocalDateTime vipExpireTime;
// 状态 1正常 0已过期
private Integer status;
// 创建时间
private Timestamp createTime;
// 修改时间
private Timestamp updateTime;
}
package com.topdraw.business.module.member.viphistory.service.dto;
import lombok.Data;
/**
* @author luerlong
* @date 2021-12-10
*/
@Data
public class MemberVipHistoryQueryCriteria {
}
package com.topdraw.business.module.member.viphistory.service.impl;
import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
import com.topdraw.business.module.member.viphistory.repository.MemberVipHistoryRepository;
import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService;
import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryDTO;
import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryQueryCriteria;
import com.topdraw.business.module.member.viphistory.service.mapper.MemberVipHistoryMapper;
import com.topdraw.utils.PageUtil;
import com.topdraw.utils.QueryHelp;
import com.topdraw.utils.ValidationUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* @author luerlong
* @date 2021-12-10
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class MemberVipHistoryServiceImpl implements MemberVipHistoryService {
@Autowired
private MemberVipHistoryRepository memberVipHistoryRepository;
@Autowired
private MemberVipHistoryMapper memberVipHistoryMapper;
@Override
public Map<String, Object> queryAll(MemberVipHistoryQueryCriteria criteria, Pageable pageable) {
Page<MemberVipHistory> page = memberVipHistoryRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
return PageUtil.toPage(page.map(memberVipHistoryMapper::toDto));
}
@Override
public List<MemberVipHistoryDTO> queryAll(MemberVipHistoryQueryCriteria criteria) {
return memberVipHistoryMapper.toDto(memberVipHistoryRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
}
@Override
public MemberVipHistoryDTO findById(Long id) {
MemberVipHistory memberVipHistory = memberVipHistoryRepository.findById(id).orElseGet(MemberVipHistory::new);
ValidationUtil.isNull(memberVipHistory.getId(),"MemberVipHistory","id",id);
return memberVipHistoryMapper.toDto(memberVipHistory);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void create(MemberVipHistory resources) {
memberVipHistoryRepository.save(resources);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(MemberVipHistory resources) {
MemberVipHistory memberVipHistory = memberVipHistoryRepository.findById(resources.getId()).orElseGet(MemberVipHistory::new);
ValidationUtil.isNull( memberVipHistory.getId(),"MemberVipHistory","id",resources.getId());
memberVipHistory.copy(resources);
memberVipHistoryRepository.save(memberVipHistory);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long id) {
Assert.notNull(id, "The given id must not be null!");
MemberVipHistory memberVipHistory = memberVipHistoryRepository.findById(id).orElseThrow(
() -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", MemberVipHistory.class, id), 1));
memberVipHistoryRepository.delete(memberVipHistory);
}
@Override
public MemberVipHistory findByTime(Long memberId, LocalDateTime nowTime) {
MemberVipHistory memberVipHistory = this.memberVipHistoryRepository.findByTime(memberId, nowTime).orElseGet(MemberVipHistory::new);
return memberVipHistory;
}
}
package com.topdraw.business.module.member.viphistory.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author luerlong
* @date 2021-12-10
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface MemberVipHistoryMapper extends BaseMapper<MemberVipHistoryDTO, MemberVipHistory> {
}