diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/OperatingSystemEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/OperatingSystemEnum.java new file mode 100644 index 0000000..b619967 --- /dev/null +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/OperatingSystemEnum.java @@ -0,0 +1,41 @@ +package com.qniao.dam.domian.aggregate.product.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 OperatingSystemEnum { + /** + * 1-已上架 + */ + ANDROID(1, "安卓"), + + /** + * 2-已下架 + */ + IOS(2, "IOS"); + + @EnumValue + @JsonValue + private final Integer value; + private final String desc; + + OperatingSystemEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @JsonCreator + public static OperatingSystemEnum get(Object code) { + for (OperatingSystemEnum e : OperatingSystemEnum.values()) { + if (e.getValue().equals(code)) { + return e; + } + } + return null; + } +} diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductMainCategoryEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductMainCategoryEnum.java index b50a88b..0648f1c 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductMainCategoryEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductMainCategoryEnum.java @@ -23,6 +23,9 @@ public enum ProductMainCategoryEnum { SITE_ACTIVITY(8, "线下活动"), CUSTOMIZED_SERVICE(9, "定制服务"), + VIRTUAL_CURRENCY(20, "虚拟货币"), + + VIRTUAL_PROP(21, "虚拟道具"), MATCHMAKER(888, "红娘合伙人"), diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java index eff689b..68e336e 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java @@ -44,6 +44,8 @@ public enum ProductSubCategoryEnum { CUSTOMIZED_SERVICE(1101, "定制服务"), + VIRTUAL_CURRENCY(2001, "虚拟货币"), + MATCHMAKER_FRANCHISE_FEE(88801, "高级红娘"), MATCHMAKER_ONLINE_FEE(88802, "线上红娘"), diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/product/entity/Product.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/product/entity/Product.java index 17f8c68..4c41536 100644 --- a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/product/entity/Product.java +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/product/entity/Product.java @@ -2,10 +2,7 @@ package com.qniao.dam.domain.aggregate.product.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec; -import com.qniao.dam.domian.aggregate.product.constant.ProductMainCategoryEnum; -import com.qniao.dam.domian.aggregate.product.constant.ProductStatusEnum; -import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; -import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum; +import com.qniao.dam.domian.aggregate.product.constant.*; import com.qniao.domain.Entity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -45,6 +42,9 @@ public class Product extends Entity { @ApiModelProperty("详情描述") private String detailDesc; + @ApiModelProperty("操作系统") + private OperatingSystemEnum operatingSystem; + @ApiModelProperty("状态(已上架、已下架)") private ProductStatusEnum status; diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/VirtualAccountUserCommandController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/VirtualAccountUserCommandController.java deleted file mode 100644 index 4dda8b5..0000000 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/VirtualAccountUserCommandController.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.qniao.dam.api.command.virtualaccount.user; - -import com.qniao.dam.api.command.virtualaccount.user.request.*; -import com.qniao.dam.application.service.virtualaccount.VirtualAccountApplicationService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import javax.validation.Valid; - -@Api(tags = "虚拟账号") -@RestController -@RequestMapping("user") -public class VirtualAccountUserCommandController { - - @Resource - private VirtualAccountApplicationService virtualAccountApplicationService; - - @ApiOperation("用户创建虚拟账号") - @PostMapping("create/virtual-account") - public void userCreateVirtualAccount(@RequestBody @Valid UserCreateVirtualAccountDto dto, - @RequestParam("userId") Long userId) { - virtualAccountApplicationService.create(dto.trans2Domain()); - } - - @ApiOperation("用户编辑虚拟账号") - @PostMapping("edit/virtual-account") - public void userEditVirtualAccount(@RequestBody @Valid UserEditVirtualAccountDto dto, - @RequestParam("userId") Long userId) { - virtualAccountApplicationService.edit(dto.trans2Domain()); - } - - @ApiOperation("用户删除虚拟账号") - @PostMapping("delete/virtual-account") - public void userDeleteVirtualAccount(@RequestBody @Valid UserDeleteVirtualAccountDto dto, - @RequestParam("userId") Long userId) { - virtualAccountApplicationService.delete(dto.getId()); - } -} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/UserCreateVirtualAccountDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/UserCreateVirtualAccountDto.java deleted file mode 100644 index 590080c..0000000 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/UserCreateVirtualAccountDto.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.qniao.dam.api.command.virtualaccount.user.request; - -import com.qniao.dam.domain.aggregate.virtualaccount.entity.VirtualAccount; -import com.qniao.domain.Trans2DomainAssembler; -import io.swagger.annotations.ApiModelProperty; -import com.qniao.framework.utils.TypeConvertUtils; -import lombok.Data; - -@Data -public class UserCreateVirtualAccountDto implements Trans2DomainAssembler { - - - @ApiModelProperty("用户唯一标识") - private Long userId; - - @ApiModelProperty("数量") - private Integer balance; - - @Override - public VirtualAccount trans2Domain() { - return TypeConvertUtils.convert(this, VirtualAccount.class); - } -} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/UserDeleteVirtualAccountDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/UserDeleteVirtualAccountDto.java deleted file mode 100644 index a46fdaa..0000000 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/UserDeleteVirtualAccountDto.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.qniao.dam.api.command.virtualaccount.user.request; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -@Data -public class UserDeleteVirtualAccountDto { - - @ApiModelProperty("唯一标识") - private Long id; - -} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/UserEditVirtualAccountDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/UserEditVirtualAccountDto.java deleted file mode 100644 index 26286c8..0000000 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/UserEditVirtualAccountDto.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.qniao.dam.api.command.virtualaccount.user.request; - -import com.qniao.dam.domain.aggregate.virtualaccount.entity.VirtualAccount; -import com.qniao.domain.Trans2DomainAssembler; -import io.swagger.annotations.ApiModelProperty; -import com.qniao.framework.utils.TypeConvertUtils; -import lombok.Data; - -@Data -public class UserEditVirtualAccountDto implements Trans2DomainAssembler { - - - @ApiModelProperty("唯一标识") - private Long id; - - @ApiModelProperty("用户唯一标识") - private Long userId; - - @ApiModelProperty("数量") - private Integer balance; - - @Override - public VirtualAccount trans2Domain() { - return TypeConvertUtils.convert(this, VirtualAccount.class); - } -} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/ProductUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/ProductUserQueryController.java index a5149dd..0cd9090 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/ProductUserQueryController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/ProductUserQueryController.java @@ -1,5 +1,6 @@ package com.qniao.dam.api.query.product.user; +import com.qniao.dam.api.query.product.user.request.UserListVirtualCurrencyProductQueryParams; import com.qniao.dam.api.query.product.user.request.UserPageProductByCustomerQueryParam; import com.qniao.dam.api.query.product.user.request.UserPageProductByMatchmakerQueryParam; import com.qniao.dam.api.query.product.user.request.UserPageProductByOperatorQueryParam; @@ -95,4 +96,10 @@ public class ProductUserQueryController { public UserGetMatchmakerFranchiseInfoVo userGetMatchmakerFranchiseInfo() { return productQueryService.getMatchmakerFranchiseInfo(); } + + @GetMapping("list/virtual-currency-product") + @ApiOperation("客户获取虚拟货币列表--玫瑰") + public List userListVirtualCurrencyProduct(UserListVirtualCurrencyProductQueryParams queryParams) { + return productQueryService.listVirtualCurrencyProduct(queryParams); + } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/request/UserListVirtualCurrencyProductQueryParams.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/request/UserListVirtualCurrencyProductQueryParams.java new file mode 100644 index 0000000..45b4396 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/request/UserListVirtualCurrencyProductQueryParams.java @@ -0,0 +1,12 @@ +package com.qniao.dam.api.query.product.user.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserListVirtualCurrencyProductQueryParams { + + @ApiModelProperty("操作系统 -- 默认安卓") + private Integer operatingSystem = 1; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserVirtualCurrencyVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserVirtualCurrencyVo.java new file mode 100644 index 0000000..cb22564 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserVirtualCurrencyVo.java @@ -0,0 +1,47 @@ +package com.qniao.dam.api.query.product.user.response; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.qniao.dam.domian.aggregate.product.constant.ProductMainCategoryEnum; +import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class UserVirtualCurrencyVo { + + @ApiModelProperty("商品标识") + @JsonSerialize(using = ToStringSerializer.class) + private Long productId; + + @ApiModelProperty("商品规格标识") + @JsonSerialize(using = ToStringSerializer.class) + private Long productSpecId; + + @ApiModelProperty("产品主分类") + private ProductMainCategoryEnum mainCategory; + + @ApiModelProperty("产品次分类") + private ProductSubCategoryEnum subCategory; + + @ApiModelProperty("产品标题") + private String productTitle; + + @ApiModelProperty("产品描述") + private String productDesc; + + @ApiModelProperty("详情描述") + private String detailDesc; + + @ApiModelProperty("原价") + private BigDecimal unitOriginalPrice; + + @ApiModelProperty("售价") + private BigDecimal unitSellingPrice; + + @ApiModelProperty("购买数量") + private String purchaseTimeValue; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/virtualaccount/user/VirtualAccountUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/virtualaccount/user/VirtualAccountUserQueryController.java new file mode 100644 index 0000000..fe7e357 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/virtualaccount/user/VirtualAccountUserQueryController.java @@ -0,0 +1,25 @@ +package com.qniao.dam.api.query.virtualaccount.user; + +import com.qniao.dam.api.query.virtualaccount.user.request.UserGetVirtualAccountVo; +import com.qniao.dam.query.virtualaccount.VirtualAccountQueryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@Api(tags = "虚拟账号") +@RestController +@RequestMapping("user") +public class VirtualAccountUserQueryController { + + @Resource + private VirtualAccountQueryService virtualAccountQueryService; + + @GetMapping("get/virtual-account") + @ApiOperation("用户获取虚拟账号") + public UserGetVirtualAccountVo userGetVirtualAccount(@RequestParam("userId") Long userId) { + return virtualAccountQueryService.getVirtualAccountView(userId); + } + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/virtualaccount/user/request/UserGetVirtualAccountVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/virtualaccount/user/request/UserGetVirtualAccountVo.java new file mode 100644 index 0000000..14fdb8f --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/virtualaccount/user/request/UserGetVirtualAccountVo.java @@ -0,0 +1,18 @@ +package com.qniao.dam.api.query.virtualaccount.user.request; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserGetVirtualAccountVo { + + @ApiModelProperty("唯一标识") + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + @ApiModelProperty("数量") + private Integer balance; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/ProductViewDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/ProductViewDao.java index 4ad649a..210f8f4 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/ProductViewDao.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/ProductViewDao.java @@ -2,13 +2,11 @@ package com.qniao.dam.infrastructure.persistent.dao.view; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.qniao.dam.api.query.product.user.request.UserListVirtualCurrencyProductQueryParams; import com.qniao.dam.api.query.product.user.request.UserPageProductByCustomerQueryParam; import com.qniao.dam.api.query.product.user.request.UserPageProductByMatchmakerQueryParam; import com.qniao.dam.api.query.product.user.request.UserPageProductByOperatorQueryParam; -import com.qniao.dam.api.query.product.user.response.UserPageProductByCustomerExtendVo; -import com.qniao.dam.api.query.product.user.response.UserPageProductByCustomerVo; -import com.qniao.dam.api.query.product.user.response.UserPageProductByMatchmakerVo; -import com.qniao.dam.api.query.product.user.response.UserPageProductByOperatorVo; +import com.qniao.dam.api.query.product.user.response.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -33,4 +31,6 @@ public interface ProductViewDao { IPage pageProductByMatchmakingCorner(Page pageWithoutOrders, @Param("queryParam") UserPageProductByMatchmakerQueryParam queryParam); + + List listVirtualCurrencyProduct(@Param("queryParams") UserListVirtualCurrencyProductQueryParams queryParams); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java index 76df969..2bb3f4a 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java @@ -1,6 +1,7 @@ package com.qniao.dam.query.product; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.qniao.dam.api.query.product.user.request.UserListVirtualCurrencyProductQueryParams; import com.qniao.dam.api.query.product.user.request.UserPageProductByCustomerQueryParam; import com.qniao.dam.api.query.product.user.request.UserPageProductByMatchmakerQueryParam; import com.qniao.dam.api.query.product.user.request.UserPageProductByOperatorQueryParam; @@ -43,4 +44,6 @@ public interface ProductQueryService { Product queryById(Long id); IPage pageProductByMatchmakingCorner(PageUtil pageUtil, UserPageProductByMatchmakerQueryParam queryParam); + + List listVirtualCurrencyProduct(UserListVirtualCurrencyProductQueryParams queryParams); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java index f0618ce..c7760ea 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java @@ -3,6 +3,7 @@ package com.qniao.dam.query.product.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.qniao.dam.api.query.product.user.request.UserListVirtualCurrencyProductQueryParams; import com.qniao.dam.api.query.product.user.request.UserPageProductByCustomerQueryParam; import com.qniao.dam.api.query.product.user.request.UserPageProductByMatchmakerQueryParam; import com.qniao.dam.api.query.product.user.request.UserPageProductByOperatorQueryParam; @@ -31,10 +32,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; @Service @@ -99,6 +97,11 @@ public class ProductQueryServiceImpl implements ProductQueryService { return productViewDao.pageProductByMatchmakingCorner(pageUtil.toPageWithoutOrders(), queryParam); } + @Override + public List listVirtualCurrencyProduct(UserListVirtualCurrencyProductQueryParams queryParams) { + return productViewDao.listVirtualCurrencyProduct(queryParams); + } + @Override public Product queryBy(Long userId, Long miId, ProductSubCategoryEnum subCategory) { return productDao.selectOne(new LambdaQueryWrapper() diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/virtualaccount/VirtualAccountQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/virtualaccount/VirtualAccountQueryService.java index 650bdf0..6c17054 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/virtualaccount/VirtualAccountQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/virtualaccount/VirtualAccountQueryService.java @@ -1,5 +1,11 @@ package com.qniao.dam.query.virtualaccount; +import com.qniao.dam.api.query.virtualaccount.user.request.UserGetVirtualAccountVo; +import com.qniao.dam.domain.aggregate.virtualaccount.entity.VirtualAccount; + public interface VirtualAccountQueryService { + UserGetVirtualAccountVo getVirtualAccountView(Long userId); + + VirtualAccount queryBy(Long userId); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/virtualaccount/impl/VirtualAccountQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/virtualaccount/impl/VirtualAccountQueryServiceImpl.java index 1725f25..c3fe095 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/virtualaccount/impl/VirtualAccountQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/virtualaccount/impl/VirtualAccountQueryServiceImpl.java @@ -1,9 +1,37 @@ package com.qniao.dam.query.virtualaccount.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qniao.dam.api.query.virtualaccount.user.request.UserGetVirtualAccountVo; +import com.qniao.dam.domain.aggregate.virtualaccount.entity.VirtualAccount; +import com.qniao.dam.infrastructure.persistent.dao.virtualaccount.VirtualAccountDao; import com.qniao.dam.query.virtualaccount.VirtualAccountQueryService; +import com.qniao.framework.utils.TypeConvertUtils; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.Objects; + @Service public class VirtualAccountQueryServiceImpl implements VirtualAccountQueryService { + @Resource + private VirtualAccountDao virtualAccountDao; + + @Override + public UserGetVirtualAccountVo getVirtualAccountView(Long userId) { + UserGetVirtualAccountVo vo = null; + VirtualAccount virtualAccount = queryBy(userId); + if (Objects.nonNull(virtualAccount)){ + vo = TypeConvertUtils.convert(virtualAccount, UserGetVirtualAccountVo.class); + } + return vo; + } + + @Override + public VirtualAccount queryBy(Long userId) { + return virtualAccountDao.selectOne(new LambdaQueryWrapper() + .eq(VirtualAccount::getUserId, userId) + .last("limit 1")); + } + } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/resources/mapper/product/WalletAccountAssociateOrderRecordDao.xml b/dating-agency-mall-server/src/main/resources/mapper/product/WalletAccountAssociateOrderRecordDao.xml index 4275a2b..9b0fd06 100644 --- a/dating-agency-mall-server/src/main/resources/mapper/product/WalletAccountAssociateOrderRecordDao.xml +++ b/dating-agency-mall-server/src/main/resources/mapper/product/WalletAccountAssociateOrderRecordDao.xml @@ -6,23 +6,25 @@ - SELECT - 1 groupType, - a.id, - ap.product_id as productId, - ap.product_spec_id as productSpecId, - a.activity_name productName, - p.main_category, - p.sub_category, - p.product_title, - p.product_desc, - p.detail_desc, - ap.activity_unit_original_price unit_original_price, - ap.activity_unit_selling_price unit_selling_price, - dpst1.unit as productSpecUnit, - dpst2.`value` as validityPeriodValue, - dpst3.`value` as purchaseTimeValue, - dpst4.`value` as dailyUseLimitValue + 1 groupType, + a.id, + ap.product_id as productId, + ap.product_spec_id as productSpecId, + a.activity_name productName, + p.main_category, + p.sub_category, + p.product_title, + p.product_desc, + p.detail_desc, + ap.activity_unit_original_price unit_original_price, + ap.activity_unit_selling_price unit_selling_price, + dpst1.unit as productSpecUnit, + dpst2.`value` as validityPeriodValue, + dpst3.`value` as purchaseTimeValue, + dpst4.`value` as dailyUseLimitValue FROM - da_activity a - LEFT JOIN da_activity_product ap ON a.id = ap.activity_id AND ap.is_delete = 0 - LEFT JOIN da_product p ON ap.product_id = p.id AND p.is_delete = 0 - LEFT JOIN da_product_spec ps ON ps.id = ap.product_spec_id AND ps.product_id = ap.product_id AND ps.is_delete = 0 - LEFT JOIN da_product_spec_term as dpst1 on dpst1.is_delete=0 and dpst1.product_spec_id =ps.id and dpst1.`name`=1 - LEFT JOIN da_product_spec_term as dpst2 on dpst2.is_delete=0 and dpst2.product_spec_id =ps.id and dpst2.`name`=3 - LEFT JOIN da_product_spec_term as dpst3 on dpst3.is_delete=0 and dpst3.product_spec_id =ps.id and dpst3.`name`=2 - LEFT JOIN da_product_spec_term as dpst4 on dpst4.is_delete=0 and dpst4.product_spec_id =ps.id and dpst4.`name`=4 + da_activity a + LEFT JOIN da_activity_product ap ON a.id = ap.activity_id AND ap.is_delete = 0 + LEFT JOIN da_product p ON ap.product_id = p.id AND p.is_delete = 0 + LEFT JOIN da_product_spec ps ON ps.id = ap.product_spec_id AND ps.product_id = ap.product_id AND ps.is_delete = + 0 + LEFT JOIN da_product_spec_term as dpst1 on dpst1.is_delete=0 and dpst1.product_spec_id =ps.id and dpst1.`name`=1 + LEFT JOIN da_product_spec_term as dpst2 on dpst2.is_delete=0 and dpst2.product_spec_id =ps.id and dpst2.`name`=3 + LEFT JOIN da_product_spec_term as dpst3 on dpst3.is_delete=0 and dpst3.product_spec_id =ps.id and dpst3.`name`=2 + LEFT JOIN da_product_spec_term as dpst4 on dpst4.is_delete=0 and dpst4.product_spec_id =ps.id and dpst4.`name`=4 WHERE a.is_delete = 0 AND a.status = 1 AND a.start_time <= NOW() AND a.end_time >= NOW() AND a.display = 0 AND a.id = #{id} UNION select - 0 groupType, - dp.id, - dp.id as productId, - dps.id as productSpecId, - '' productName, - dp.main_category, - dp.sub_category, - dp.product_title, - dp.product_desc, - dp.detail_desc, - dps.unit_original_price, - dps.unit_selling_price, - dpst1.unit as productSpecUnit, - dpst2.`value` as validityPeriodValue, - dpst3.`value` as purchaseTimeValue, - dpst4.`value` as dailyUseLimitValue + 0 groupType, + dp.id, + dp.id as productId, + dps.id as productSpecId, + '' productName, + dp.main_category, + dp.sub_category, + dp.product_title, + dp.product_desc, + dp.detail_desc, + dps.unit_original_price, + dps.unit_selling_price, + dpst1.unit as productSpecUnit, + dpst2.`value` as validityPeriodValue, + dpst3.`value` as purchaseTimeValue, + dpst4.`value` as dailyUseLimitValue from da_product as dp - LEFT JOIN da_product_spec as dps on dps.is_delete=0 and dps.product_id=dp.id - LEFT JOIN da_product_spec_term as dpst1 on dpst1.is_delete=0 and dpst1.product_spec_id =dps.id and dpst1.`name`=1 - LEFT JOIN da_product_spec_term as dpst2 on dpst2.is_delete=0 and dpst2.product_spec_id =dps.id and dpst2.`name`=3 - LEFT JOIN da_product_spec_term as dpst3 on dpst3.is_delete=0 and dpst3.product_spec_id =dps.id and dpst3.`name`=2 - LEFT JOIN da_product_spec_term as dpst4 on dpst4.is_delete=0 and dpst4.product_spec_id =dps.id and dpst4.`name`=4 + LEFT JOIN da_product_spec as dps on dps.is_delete=0 and dps.product_id=dp.id + LEFT JOIN da_product_spec_term as dpst1 on dpst1.is_delete=0 and dpst1.product_spec_id =dps.id and + dpst1.`name`=1 + LEFT JOIN da_product_spec_term as dpst2 on dpst2.is_delete=0 and dpst2.product_spec_id =dps.id and + dpst2.`name`=3 + LEFT JOIN da_product_spec_term as dpst3 on dpst3.is_delete=0 and dpst3.product_spec_id =dps.id and + dpst3.`name`=2 + LEFT JOIN da_product_spec_term as dpst4 on dpst4.is_delete=0 and dpst4.product_spec_id =dps.id and + dpst4.`name`=4 where dp.is_delete=0 and dp.`status`=1 and dp.product_type=2 AND dp.display = 0 AND dp.id = #{id} @@ -149,7 +161,8 @@ dpst2.`value` as validityPeriodDays from da_product as dp LEFT JOIN da_product_spec as dps on dps.is_delete=0 and dps.product_id=dp.id - LEFT JOIN da_product_spec_term as dpst2 on dpst2.is_delete=0 and dpst2.product_spec_id =dps.id and dpst2.`name`=3 + LEFT JOIN da_product_spec_term as dpst2 on dpst2.is_delete=0 and dpst2.product_spec_id =dps.id and + dpst2.`name`=3 where dp.is_delete=0 and dp.`status`=1 and dp.product_type=3 AND dp.sub_category = #{queryParam.subCategory} @@ -172,12 +185,38 @@ dpst2.`value` as validityPeriodDays from da_product as dp LEFT JOIN da_product_spec as dps on dps.is_delete=0 and dps.product_id=dp.id - LEFT JOIN da_product_spec_term as dpst2 on dpst2.is_delete=0 and dpst2.product_spec_id =dps.id and dpst2.`name`=3 + LEFT JOIN da_product_spec_term as dpst2 on dpst2.is_delete=0 and dpst2.product_spec_id =dps.id and + dpst2.`name`=3 where dp.is_delete=0 and dp.`status`=1 and dp.product_type=4 AND dp.sub_category = #{queryParam.subCategory} order by dp.sub_category desc + + +