23 changed files with 420 additions and 36 deletions
Split View
Diff Options
-
45dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/entity/PointAccount.java
-
47dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/valueobj/PointAccountRecord.java
-
31dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/PointAccountUserQueryController.java
-
24dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/response/PointAccountVo.java
-
18dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/PointRewardConfigUserQueryController.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/request/UserPagePointRewardConfigByOperatorQueryParams.java
-
10dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/request/UserPagePointRewardConfigQueryParams.java
-
2dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/response/UserPagePointRewardConfigVo.java
-
26dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/par/PointAccountRecordApplicationService.java
-
26dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/pointaccount/PointAccountApplicationService.java
-
31dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/PointAccountAggregate.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/repository/PointAccountRepository.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/par/PointAccountRecordDao.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/pointaccount/PointAccountDao.java
-
8dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/prc/PointRewardConfigDao.java
-
51dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/PointAccountRepositoryImpl.java
-
5dating-agency-mall-server/src/main/java/com/qniao/dam/query/par/PointAccountRecordQueryService.java
-
9dating-agency-mall-server/src/main/java/com/qniao/dam/query/par/impl/PointAccountRecordQueryServiceImpl.java
-
8dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/PointAccountQueryService.java
-
30dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/impl/PointAccountQueryServiceImpl.java
-
6dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/PointRewardConfigQueryService.java
-
10dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/impl/PointRewardConfigQueryServiceImpl.java
-
26dating-agency-mall-server/src/main/resources/mapper/prc/PointRewardConfigMapper.xml
@ -0,0 +1,45 @@ |
|||
package com.qniao.dam.domain.aggregate.pointaccount.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.qniao.dam.domain.aggregate.pointaccount.valueobj.PointAccountRecord; |
|||
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import com.qniao.domain.Entity; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 积分账号 |
|||
* |
|||
* @date 2024/12/23 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_point_account") |
|||
public class PointAccount extends Entity<PointAccount> { |
|||
|
|||
@ApiModelProperty("用户唯一标识") |
|||
private Long userId; |
|||
|
|||
@ApiModelProperty("组织唯一标识") |
|||
private Long orgId; |
|||
|
|||
@ApiModelProperty("身份类型(个人、组织)") |
|||
private IdentityTypeEnum identityType; |
|||
|
|||
@ApiModelProperty("积分") |
|||
private Integer points; |
|||
|
|||
private transient List<PointAccountRecord> recordList; |
|||
|
|||
public static PointAccount initUser(Long userId) { |
|||
PointAccount pointAccount = new PointAccount(); |
|||
pointAccount.setUserId(userId); |
|||
pointAccount.setIdentityType(IdentityTypeEnum.INDIVIDUAL); |
|||
pointAccount.setPoints(0); |
|||
return pointAccount; |
|||
} |
|||
} |
|||
@ -0,0 +1,47 @@ |
|||
package com.qniao.dam.domain.aggregate.pointaccount.valueobj; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.qniao.domain.ValueObject; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
/** |
|||
* 积分账户记录 |
|||
* |
|||
* @date 2024/12/23 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_point_account_record") |
|||
public class PointAccountRecord extends ValueObject<PointAccountRecord> { |
|||
|
|||
@ApiModelProperty("积分账号标识") |
|||
private Long pointAccountId; |
|||
|
|||
@ApiModelProperty("积分类型") |
|||
private Integer pointType; |
|||
|
|||
@ApiModelProperty("内容") |
|||
private String content; |
|||
|
|||
@ApiModelProperty("积分") |
|||
private Integer points; |
|||
|
|||
@ApiModelProperty("是否收入") |
|||
private Boolean isIncome; |
|||
|
|||
@ApiModelProperty("原始积分") |
|||
private Integer originalPoints; |
|||
|
|||
@ApiModelProperty("当前积分") |
|||
private Integer currentPoints; |
|||
|
|||
@ApiModelProperty("关联ID") |
|||
private Long associateId; |
|||
|
|||
@ApiModelProperty("是否已读") |
|||
private Boolean isRead; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,31 @@ |
|||
package com.qniao.dam.api.query.pointaccount.user; |
|||
|
|||
import com.qniao.dam.api.query.pointaccount.user.response.PointAccountVo; |
|||
import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; |
|||
import com.qniao.dam.query.pointaccount.PointAccountQueryService; |
|||
import com.qniao.framework.utils.TypeConvertUtils; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestParam; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
@Api(tags = "积分账号") |
|||
@RestController |
|||
@RequestMapping("user") |
|||
public class PointAccountUserQueryController { |
|||
|
|||
@Resource |
|||
private PointAccountQueryService pointAccountQueryService; |
|||
|
|||
@GetMapping("get/point-account") |
|||
@ApiOperation("用户获取积分账号") |
|||
public PointAccountVo userGetPointAccount(@RequestParam("userId") Long userId) { |
|||
PointAccount pointAccount = pointAccountQueryService.queryByUserId(userId); |
|||
return TypeConvertUtils.convert(pointAccount, PointAccountVo.class); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,24 @@ |
|||
package com.qniao.dam.api.query.pointaccount.user.response; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
public class PointAccountVo { |
|||
|
|||
private Long id; |
|||
|
|||
@ApiModelProperty("用户唯一标识") |
|||
private Long userId; |
|||
|
|||
@ApiModelProperty("组织唯一标识") |
|||
private Long orgId; |
|||
|
|||
@ApiModelProperty("身份类型(个人、组织)") |
|||
private Integer identityType; |
|||
|
|||
@ApiModelProperty("积分") |
|||
private Integer points; |
|||
} |
|||
@ -1,7 +0,0 @@ |
|||
package com.qniao.dam.api.query.prc.user.request; |
|||
|
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class UserPagePointRewardConfigByOperatorQueryParams { |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
package com.qniao.dam.api.query.prc.user.request; |
|||
|
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class UserPagePointRewardConfigQueryParams { |
|||
|
|||
private Boolean enable; |
|||
|
|||
} |
|||
@ -0,0 +1,26 @@ |
|||
package com.qniao.dam.application.service.par; |
|||
|
|||
import com.qniao.dam.domain.aggregate.par.PointAccountRecordAggregate; |
|||
import com.qniao.dam.domain.aggregate.pointaccount.valueobj.PointAccountRecord; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
@Service |
|||
public class PointAccountRecordApplicationService { |
|||
|
|||
@Resource |
|||
private PointAccountRecordAggregate pointAccountRecordAggregate; |
|||
|
|||
public void create(PointAccountRecord pointAccountRecord) { |
|||
pointAccountRecordAggregate.create(pointAccountRecord); |
|||
} |
|||
|
|||
public void edit(PointAccountRecord pointAccountRecord) { |
|||
pointAccountRecordAggregate.edit(pointAccountRecord); |
|||
} |
|||
|
|||
public void delete(Long id) { |
|||
pointAccountRecordAggregate.delete(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,26 @@ |
|||
package com.qniao.dam.application.service.pointaccount; |
|||
|
|||
import com.qniao.dam.domain.aggregate.pointaccount.PointAccountAggregate; |
|||
import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
@Service |
|||
public class PointAccountApplicationService { |
|||
|
|||
@Resource |
|||
private PointAccountAggregate pointAccountAggregate; |
|||
|
|||
public void create(PointAccount pointAccount) { |
|||
pointAccountAggregate.create(pointAccount); |
|||
} |
|||
|
|||
public void edit(PointAccount pointAccount) { |
|||
pointAccountAggregate.edit(pointAccount); |
|||
} |
|||
|
|||
public void delete(Long id) { |
|||
pointAccountAggregate.delete(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,31 @@ |
|||
package com.qniao.dam.domain.aggregate.pointaccount; |
|||
|
|||
import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; |
|||
import com.qniao.dam.domain.aggregate.pointaccount.repository.PointAccountRepository; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
/** |
|||
* 积分账号 |
|||
* |
|||
* @date 2024/12/23 |
|||
*/ |
|||
@Service |
|||
public class PointAccountAggregate { |
|||
|
|||
@Resource |
|||
private PointAccountRepository repository; |
|||
|
|||
public void create(PointAccount entity) { |
|||
repository.save(entity); |
|||
} |
|||
|
|||
public void edit(PointAccount entity) { |
|||
repository.save(entity); |
|||
} |
|||
|
|||
public void delete(Long id) { |
|||
repository.delete(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package com.qniao.dam.domain.aggregate.pointaccount.repository; |
|||
|
|||
import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; |
|||
import com.qniao.domain.Repository; |
|||
|
|||
/** |
|||
* 积分账号 |
|||
* |
|||
* @date 2024/12/23 |
|||
*/ |
|||
public interface PointAccountRepository extends Repository<PointAccount, Long> { |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.par; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.qniao.dam.domain.aggregate.pointaccount.valueobj.PointAccountRecord; |
|||
|
|||
/** |
|||
* 积分账户记录 |
|||
* |
|||
* @date 2024/12/23 |
|||
*/ |
|||
public interface PointAccountRecordDao extends BaseMapper<PointAccountRecord> { |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.pointaccount; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; |
|||
|
|||
/** |
|||
* 积分账号 |
|||
* |
|||
* @date 2024/12/23 |
|||
*/ |
|||
public interface PointAccountDao extends BaseMapper<PointAccount> { |
|||
} |
|||
@ -0,0 +1,51 @@ |
|||
package com.qniao.dam.infrastructure.persistent.repository.impl; |
|||
|
|||
import cn.hutool.core.collection.CollUtil; |
|||
import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; |
|||
import com.qniao.dam.domain.aggregate.pointaccount.repository.PointAccountRepository; |
|||
import com.qniao.dam.infrastructure.persistent.dao.par.PointAccountRecordDao; |
|||
import com.qniao.dam.infrastructure.persistent.dao.pointaccount.PointAccountDao; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.Objects; |
|||
|
|||
/** |
|||
* 积分账号 |
|||
* |
|||
* @date 2024/12/23 |
|||
*/ |
|||
@Service |
|||
public class PointAccountRepositoryImpl implements PointAccountRepository { |
|||
|
|||
@Resource |
|||
private PointAccountDao dao; |
|||
@Resource |
|||
private PointAccountRecordDao pointAccountRecordDao; |
|||
|
|||
@Override |
|||
public PointAccount load(Long id) { |
|||
return dao.selectById(id); |
|||
} |
|||
|
|||
@Override |
|||
public Long save(PointAccount entity) { |
|||
if (Objects.isNull(entity) || Objects.isNull(dao.selectById(entity.getId()))) { |
|||
dao.insert(entity); |
|||
} else { |
|||
dao.updateById(entity); |
|||
} |
|||
if (CollUtil.isNotEmpty(entity.getRecordList())) { |
|||
entity.getRecordList().forEach(record -> { |
|||
record.setPointAccountId(entity.getId()); |
|||
pointAccountRecordDao.insert(record); |
|||
}); |
|||
} |
|||
return entity.getId(); |
|||
} |
|||
|
|||
@Override |
|||
public void delete(Long id) { |
|||
dao.deleteById(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,5 @@ |
|||
package com.qniao.dam.query.par; |
|||
|
|||
public interface PointAccountRecordQueryService { |
|||
|
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
package com.qniao.dam.query.par.impl; |
|||
|
|||
import com.qniao.dam.query.par.PointAccountRecordQueryService; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
@Service |
|||
public class PointAccountRecordQueryServiceImpl implements PointAccountRecordQueryService { |
|||
|
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
package com.qniao.dam.query.pointaccount; |
|||
|
|||
import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; |
|||
|
|||
public interface PointAccountQueryService { |
|||
|
|||
PointAccount queryByUserId(Long userId); |
|||
} |
|||
@ -0,0 +1,30 @@ |
|||
package com.qniao.dam.query.pointaccount.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; |
|||
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; |
|||
import com.qniao.dam.infrastructure.persistent.dao.pointaccount.PointAccountDao; |
|||
import com.qniao.dam.query.pointaccount.PointAccountQueryService; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.Objects; |
|||
|
|||
@Service |
|||
public class PointAccountQueryServiceImpl implements PointAccountQueryService { |
|||
|
|||
@Resource |
|||
private PointAccountDao pointAccountDao; |
|||
|
|||
@Override |
|||
public PointAccount queryByUserId(Long userId) { |
|||
PointAccount pointAccount = pointAccountDao.selectOne(new LambdaQueryWrapper<PointAccount>() |
|||
.eq(PointAccount::getIdentityType, IdentityTypeEnum.INDIVIDUAL) |
|||
.eq(PointAccount::getUserId, userId) |
|||
.last("limit 1")); |
|||
if (Objects.isNull(pointAccount)){ |
|||
pointAccount = PointAccount.initUser(userId); |
|||
} |
|||
return pointAccount; |
|||
} |
|||
} |
|||
@ -1,11 +1,11 @@ |
|||
package com.qniao.dam.query.prc; |
|||
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.qniao.dam.api.query.prc.user.request.UserPagePointRewardConfigByOperatorQueryParams; |
|||
import com.qniao.dam.api.query.prc.user.response.UserPagePointRewardConfigByOperatorVo; |
|||
import com.qniao.dam.api.query.prc.user.request.UserPagePointRewardConfigQueryParams; |
|||
import com.qniao.dam.api.query.prc.user.response.UserPagePointRewardConfigVo; |
|||
import com.qniao.framework.utils.PageUtil; |
|||
|
|||
public interface PointRewardConfigQueryService { |
|||
|
|||
IPage<UserPagePointRewardConfigByOperatorVo> pageByOperator(PageUtil pageUtil, UserPagePointRewardConfigByOperatorQueryParams queryParams); |
|||
IPage<UserPagePointRewardConfigVo> page(PageUtil pageUtil, UserPagePointRewardConfigQueryParams queryParams); |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save