Browse Source

基础配置

master
张彭杰 1 year ago
parent
commit
1de3f86de4
18 changed files with 289 additions and 6 deletions
  1. 36
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardAmountUnitEnum.java
  2. 4
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java
  3. 43
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java
  4. 3
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/order/entity/Order.java
  5. 4
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/entity/RewardConfig.java
  6. 33
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/walletaccount/entity/WalletAccount.java
  7. 33
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/walletaccount/valueobj/WalletAccountRecord.java
  8. 5
      dating-agency-mall-server/pom.xml
  9. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rewardconfig/user/request/UserEditRewardConfigDto.java
  10. 18
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java
  11. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/walletaccount/WalletAccountAggregate.java
  12. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/walletaccount/repository/WalletAccountRepository.java
  13. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/MatchmakerDao.java
  14. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/WalletAccountDao.java
  15. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/WalletAccountRecordDao.java
  16. 46
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/WalletAccountRepositoryImpl.java
  17. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/matchmaker/MatchmakerQueryService.java
  18. 24
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/matchmaker/impl/MatchmakerQueryServiceImpl.java

36
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardAmountUnitEnum.java

@ -0,0 +1,36 @@
package com.qniao.dam.domian.aggregate.rewardconfig.constant;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;
@Getter
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum RewardAmountUnitEnum {
NUM(1, "数值"),
PERCENT(2, "百分比");
@EnumValue
@JsonValue
private final Integer value;
private final String desc;
RewardAmountUnitEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
@JsonCreator
public static RewardAmountUnitEnum get(Object code) {
for (RewardAmountUnitEnum e : RewardAmountUnitEnum.values()) {
if (e.getValue().equals(code)) {
return e;
}
}
return null;
}
}

4
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java

@ -10,7 +10,9 @@ import lombok.Getter;
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum RewardTypeEnum {
MATCHMAKER_JOIN_RECOMMEND(1, "红娘入驻推荐");
MATCHMAKER_JOIN_RECOMMEND(1, "红娘入驻推荐"),
PLATFORM_SERVICE_FEE(2, "平台服务费");
@EnumValue
@JsonValue

43
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java

@ -0,0 +1,43 @@
package com.qniao.dam.domian.aggregate.walletaccount.constant;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;
@Getter
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum TradeTypeEnum {
/**
* 红娘
*/
MATCHMAKER_JOIN_RECOMMEND_FEE(1, "红娘入驻推荐奖励"),
/**
* 平台
*/
PLATFORM_SERVICE_FEE(2, "平台服务费");
@EnumValue
@JsonValue
private final Integer value;
private final String desc;
TradeTypeEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
@JsonCreator
public static TradeTypeEnum get(Integer v) {
for (TradeTypeEnum e : TradeTypeEnum.values()) {
if (e.getValue().equals(v)) {
return e;
}
}
return null;
}
}

3
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/order/entity/Order.java

@ -27,6 +27,9 @@ public class Order extends Entity<Order> {
@ApiModelProperty("订单归属(客户、红娘)")
private OrderBelongingEnum orderBelonging;
@ApiModelProperty("订单归属名称")
private String orderBelongName;
@ApiModelProperty("订单号")
private String orderCode;

4
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/entity/RewardConfig.java

@ -1,6 +1,7 @@
package com.qniao.dam.domain.aggregate.rewardconfig.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardAmountUnitEnum;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import com.qniao.domain.Entity;
import io.swagger.annotations.ApiModelProperty;
@ -17,6 +18,9 @@ public class RewardConfig extends Entity<RewardConfig> {
@ApiModelProperty("奖励类型")
private RewardTypeEnum rewardType;
@ApiModelProperty("奖励金额单位")
private RewardAmountUnitEnum rewardAmountUnit;
@ApiModelProperty("奖励金额")
private BigDecimal rewardAmount;
}

33
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/walletaccount/entity/WalletAccount.java

@ -0,0 +1,33 @@
package com.qniao.dam.domain.aggregate.walletaccount.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qniao.dam.domain.aggregate.walletaccount.valueobj.WalletAccountRecord;
import com.qniao.domain.Entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("da_wallet_account")
public class WalletAccount extends Entity<WalletAccount> {
@ApiModelProperty("用户唯一标识")
private Long userId;
@ApiModelProperty("总余额")
private BigDecimal totalBalance;
@ApiModelProperty("可用余额")
private BigDecimal availableBalance;
@ApiModelProperty("冻结余额")
private BigDecimal frozenBalance;
@ApiModelProperty("钱包记录")
private transient List<WalletAccountRecord> recordList;
}

33
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/walletaccount/valueobj/WalletAccountRecord.java

@ -0,0 +1,33 @@
package com.qniao.dam.domain.aggregate.walletaccount.valueobj;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum;
import com.qniao.domain.ValueObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("da_wallet_account_record")
public class WalletAccountRecord extends ValueObject<WalletAccountRecord> {
@ApiModelProperty("用户钱包账号标识")
private Long walletAccountId;
@ApiModelProperty("交易类型")
private TradeTypeEnum tradeType;
@ApiModelProperty("交易金额")
private BigDecimal tradeAmount;
@ApiModelProperty("是否收入")
private Boolean isIncome;
@ApiModelProperty("备注")
private String remark;
}

5
dating-agency-mall-server/pom.xml

@ -67,11 +67,6 @@
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- wx_pay -->
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-pay</artifactId>
<version>3.3.4.B</version>
</dependency>
<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-apache-httpclient</artifactId>

4
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rewardconfig/user/request/UserEditRewardConfigDto.java

@ -1,6 +1,7 @@
package com.qniao.dam.api.command.rewardconfig.user.request;
import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardAmountUnitEnum;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import com.qniao.domain.Trans2DomainAssembler;
import com.qniao.framework.utils.TypeConvertUtils;
@ -20,6 +21,9 @@ public class UserEditRewardConfigDto implements Trans2DomainAssembler<RewardConf
@ApiModelProperty("奖励类型")
private RewardTypeEnum rewardType;
@ApiModelProperty("奖励金额单位")
private RewardAmountUnitEnum rewardAmountUnit;
@ApiModelProperty("奖励金额")
private BigDecimal rewardAmount;

18
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java

@ -15,13 +15,18 @@ import com.qniao.dam.domain.service.order.SubmitOrderDomainService;
import com.qniao.dam.domian.aggregate.order.constant.OrderBelongingEnum;
import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.activity.ActivityProductDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao;
import com.qniao.dam.infrastructure.utils.SnowFlakeUtil;
import com.qniao.dam.query.matchmaker.MatchmakerQueryService;
import com.qniao.dam.query.order.OrderQueryService;
import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation;
import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker;
import com.qniao.framework.exception.BizException;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Objects;
@Service
public class OrderApplicationService {
@ -38,6 +43,10 @@ public class OrderApplicationService {
private OrderQueryService orderQueryService;
@Resource
private ActivityProductDao activityProductDao;
@Resource
private MarriageInformationDao marriageInformationDao;
@Resource
private MatchmakerQueryService matchmakerQueryService;
/**
* todo 库存校验 暂时不用考虑
@ -90,6 +99,15 @@ public class OrderApplicationService {
orderItem.setProductDesc(product.getProductDesc());
orderItem.setUnitSettlementPrice(productSpec.getUnitSellingPrice());
order.setOrderBelonging(order.transformBelonging(product.getProductType()));
if (OrderBelongingEnum.CUSTOMER.equals(order.getOrderBelonging())) {
if (Objects.nonNull(order.getMiId())) {
MarriageInformation marriageInformation = marriageInformationDao.selectById(order.getMiId());
order.setOrderBelongName(marriageInformation.getNickName());
}
} else if (OrderBelongingEnum.MATCHMAKER.equals(order.getOrderBelonging())) {
Matchmaker matchmaker = matchmakerQueryService.queryByUserId(order.getUserId());
order.setOrderBelongName(matchmaker.getName());
}
if (order.getGroupType() != null && order.getGroupType() == 1) {
ActivityProduct activityProduct = activityProductDao.selectOne(Wrappers.lambdaQuery(new ActivityProduct())
.eq(ActivityProduct::getActivityId, order.getActivityId())

7
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/walletaccount/WalletAccountAggregate.java

@ -0,0 +1,7 @@
package com.qniao.dam.domain.aggregate.walletaccount;
import org.springframework.stereotype.Service;
@Service
public class WalletAccountAggregate {
}

7
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/walletaccount/repository/WalletAccountRepository.java

@ -0,0 +1,7 @@
package com.qniao.dam.domain.aggregate.walletaccount.repository;
import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount;
import com.qniao.domain.Repository;
public interface WalletAccountRepository extends Repository<WalletAccount,Long> {
}

7
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/MatchmakerDao.java

@ -0,0 +1,7 @@
package com.qniao.dam.infrastructure.persistent.dao.domain;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker;
public interface MatchmakerDao extends BaseMapper<Matchmaker> {
}

7
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/WalletAccountDao.java

@ -0,0 +1,7 @@
package com.qniao.dam.infrastructure.persistent.dao.domain;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount;
public interface WalletAccountDao extends BaseMapper<WalletAccount> {
}

7
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/WalletAccountRecordDao.java

@ -0,0 +1,7 @@
package com.qniao.dam.infrastructure.persistent.dao.domain;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qniao.dam.domain.aggregate.walletaccount.valueobj.WalletAccountRecord;
public interface WalletAccountRecordDao extends BaseMapper<WalletAccountRecord> {
}

46
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/WalletAccountRepositoryImpl.java

@ -0,0 +1,46 @@
package com.qniao.dam.infrastructure.persistent.repository.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount;
import com.qniao.dam.domain.aggregate.walletaccount.repository.WalletAccountRepository;
import com.qniao.dam.domain.aggregate.walletaccount.valueobj.WalletAccountRecord;
import com.qniao.dam.infrastructure.persistent.dao.domain.WalletAccountDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.WalletAccountRecordDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Objects;
@Service
public class WalletAccountRepositoryImpl implements WalletAccountRepository {
@Resource
private WalletAccountDao walletAccountDao;
@Resource
private WalletAccountRecordDao walletAccountRecordDao;
@Override
public WalletAccount load(Long id) {
WalletAccount walletAccount = walletAccountDao.selectById(id);
walletAccount.setRecordList(walletAccountRecordDao.selectList(new LambdaQueryWrapper<WalletAccountRecord>()
.eq(WalletAccountRecord::getWalletAccountId, id)));
return walletAccount;
}
@Override
public Long save(WalletAccount entity) {
if (Objects.isNull(entity.getId()) || Objects.isNull(walletAccountDao.selectById(entity.getId()))) {
walletAccountDao.insert(entity);
} else {
walletAccountDao.updateById(entity);
}
if (CollUtil.isNotEmpty(entity.getRecordList())) {
entity.getRecordList().forEach(record -> {
record.setWalletAccountId(entity.getId());
walletAccountRecordDao.insert(record);
});
}
return entity.getId();
}
}

7
dating-agency-mall-server/src/main/java/com/qniao/dam/query/matchmaker/MatchmakerQueryService.java

@ -0,0 +1,7 @@
package com.qniao.dam.query.matchmaker;
import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker;
public interface MatchmakerQueryService {
Matchmaker queryByUserId(Long userId);
}

24
dating-agency-mall-server/src/main/java/com/qniao/dam/query/matchmaker/impl/MatchmakerQueryServiceImpl.java

@ -0,0 +1,24 @@
package com.qniao.dam.query.matchmaker.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qniao.dam.infrastructure.persistent.dao.domain.MatchmakerDao;
import com.qniao.dam.query.matchmaker.MatchmakerQueryService;
import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class MatchmakerQueryServiceImpl implements MatchmakerQueryService {
@Resource
private MatchmakerDao matchmakerDao;
@Override
public Matchmaker queryByUserId(Long userId) {
return matchmakerDao.selectOne(new LambdaQueryWrapper<Matchmaker>()
.eq(Matchmaker::getUserId, userId)
.last("limit 1"));
}
}
Loading…
Cancel
Save