18 changed files with 508 additions and 0 deletions
Split View
Diff Options
-
36dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rpc/constant/PrizeCategoryEnum.java
-
38dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rpc/constant/PrizeTypeEnum.java
-
38dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rpc/entity/RafflePrizeConfig.java
-
40dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpc/user/RafflePrizeConfigUserCommandController.java
-
34dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpc/user/request/UserCreateRafflePrizeConfigDto.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpc/user/request/UserDeleteRafflePrizeConfigDto.java
-
43dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpc/user/request/UserEditRafflePrizeConfigDto.java
-
29dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpc/user/RafflePrizeConfigUserQueryController.java
-
15dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpc/user/request/UserPageRafflePrizeConfigQueryParams.java
-
33dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpc/user/response/RafflePrizeConfigVo.java
-
26dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rpc/RafflePrizeConfigApplicationService.java
-
31dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rpc/RafflePrizeConfigAggregate.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rpc/repository/RafflePrizeConfigRepository.java
-
21dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/rpc/RafflePrizeConfigDao.java
-
41dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RafflePrizeConfigRepositoryImpl.java
-
11dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpc/RafflePrizeConfigQueryService.java
-
23dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpc/impl/RafflePrizeConfigQueryServiceImpl.java
-
25dating-agency-mall-server/src/main/resources/mapper/rpc/RafflePrizeConfigMapper.xml
@ -0,0 +1,36 @@ |
|||
package com.qniao.dam.domian.aggregate.rpc.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 PrizeCategoryEnum { |
|||
|
|||
MATCHMAKER_STAY_FRANCHISE_FEE(1, "红娘加盟-存留"); |
|||
|
|||
@EnumValue |
|||
@JsonValue |
|||
private final Integer value; |
|||
|
|||
private final String desc; |
|||
|
|||
PrizeCategoryEnum(Integer value, String desc) { |
|||
this.value = value; |
|||
this.desc = desc; |
|||
} |
|||
|
|||
@JsonCreator |
|||
public static PrizeCategoryEnum get(Integer v) { |
|||
|
|||
for (PrizeCategoryEnum e : PrizeCategoryEnum.values()) { |
|||
if (e.getValue().equals(v)) { |
|||
return e; |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
} |
|||
@ -0,0 +1,38 @@ |
|||
package com.qniao.dam.domian.aggregate.rpc.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 PrizeTypeEnum { |
|||
|
|||
PHYSICAL_PRIZE(1, "实物奖品"), |
|||
|
|||
VIRTUAL_PRIZE(2, "虚拟奖品"); |
|||
|
|||
@EnumValue |
|||
@JsonValue |
|||
private final Integer value; |
|||
|
|||
private final String desc; |
|||
|
|||
PrizeTypeEnum(Integer value, String desc) { |
|||
this.value = value; |
|||
this.desc = desc; |
|||
} |
|||
|
|||
@JsonCreator |
|||
public static PrizeTypeEnum get(Integer v) { |
|||
|
|||
for (PrizeTypeEnum e : PrizeTypeEnum.values()) { |
|||
if (e.getValue().equals(v)) { |
|||
return e; |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
} |
|||
@ -0,0 +1,38 @@ |
|||
package com.qniao.dam.domain.aggregate.rpc.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeCategoryEnum; |
|||
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeTypeEnum; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import com.qniao.domain.Entity; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* 抽奖奖品配置 |
|||
* |
|||
* @date 2025/01/13 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_raffle_prize_config") |
|||
public class RafflePrizeConfig extends Entity<RafflePrizeConfig> { |
|||
|
|||
@ApiModelProperty("奖品类型") |
|||
private PrizeTypeEnum prizeType; |
|||
|
|||
@ApiModelProperty("奖品分类") |
|||
private PrizeCategoryEnum prizeCategory; |
|||
|
|||
@ApiModelProperty("奖品名称") |
|||
private String prizeName; |
|||
|
|||
@ApiModelProperty("奖品占比") |
|||
private BigDecimal prizePct; |
|||
|
|||
@ApiModelProperty("备注") |
|||
private String remark; |
|||
|
|||
} |
|||
@ -0,0 +1,40 @@ |
|||
package com.qniao.dam.api.command.rpc.user; |
|||
|
|||
import com.qniao.dam.api.command.rpc.user.request.*; |
|||
import com.qniao.dam.application.service.rpc.RafflePrizeConfigApplicationService; |
|||
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 RafflePrizeConfigUserCommandController { |
|||
|
|||
@Resource |
|||
private RafflePrizeConfigApplicationService rafflePrizeConfigApplicationService; |
|||
|
|||
@ApiOperation("用户创建抽奖奖品配置") |
|||
@PostMapping("create/raffle-prize-config") |
|||
public void userCreateRafflePrizeConfig(@RequestBody @Valid UserCreateRafflePrizeConfigDto dto, |
|||
@RequestParam("userId") Long userId) { |
|||
rafflePrizeConfigApplicationService.create(dto.trans2Domain()); |
|||
} |
|||
|
|||
@ApiOperation("用户编辑抽奖奖品配置") |
|||
@PostMapping("edit/raffle-prize-config") |
|||
public void userEditRafflePrizeConfig(@RequestBody @Valid UserEditRafflePrizeConfigDto dto, |
|||
@RequestParam("userId") Long userId) { |
|||
rafflePrizeConfigApplicationService.edit(dto.trans2Domain()); |
|||
} |
|||
|
|||
@ApiOperation("用户删除抽奖奖品配置") |
|||
@PostMapping("delete/raffle-prize-config") |
|||
public void userDeleteRafflePrizeConfig(@RequestBody @Valid UserDeleteRafflePrizeConfigDto dto, |
|||
@RequestParam("userId") Long userId) { |
|||
rafflePrizeConfigApplicationService.delete(dto.getId()); |
|||
} |
|||
} |
|||
@ -0,0 +1,34 @@ |
|||
package com.qniao.dam.api.command.rpc.user.request; |
|||
|
|||
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig; |
|||
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeCategoryEnum; |
|||
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeTypeEnum; |
|||
import com.qniao.domain.Trans2DomainAssembler; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import com.qniao.framework.utils.TypeConvertUtils; |
|||
import java.math.BigDecimal; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class UserCreateRafflePrizeConfigDto implements Trans2DomainAssembler<RafflePrizeConfig> { |
|||
|
|||
@ApiModelProperty("奖品类型") |
|||
private PrizeTypeEnum prizeType; |
|||
|
|||
@ApiModelProperty("奖品分类") |
|||
private PrizeCategoryEnum prizeCategory; |
|||
|
|||
@ApiModelProperty("奖品名称") |
|||
private String prizeName; |
|||
|
|||
@ApiModelProperty("奖品占比") |
|||
private BigDecimal prizePct; |
|||
|
|||
@ApiModelProperty("备注") |
|||
private String remark; |
|||
|
|||
@Override |
|||
public RafflePrizeConfig trans2Domain() { |
|||
return TypeConvertUtils.convert(this, RafflePrizeConfig.class); |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package com.qniao.dam.api.command.rpc.user.request; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class UserDeleteRafflePrizeConfigDto { |
|||
|
|||
@ApiModelProperty("唯一标识") |
|||
private Long id; |
|||
|
|||
} |
|||
@ -0,0 +1,43 @@ |
|||
package com.qniao.dam.api.command.rpc.user.request; |
|||
|
|||
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig; |
|||
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeCategoryEnum; |
|||
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeTypeEnum; |
|||
import com.qniao.domain.Trans2DomainAssembler; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import com.qniao.framework.utils.TypeConvertUtils; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotNull; |
|||
|
|||
@Data |
|||
public class UserEditRafflePrizeConfigDto implements Trans2DomainAssembler<RafflePrizeConfig> { |
|||
|
|||
|
|||
@ApiModelProperty("唯一标识") |
|||
@NotNull |
|||
private Long id; |
|||
|
|||
@ApiModelProperty("奖品类型") |
|||
private PrizeTypeEnum prizeType; |
|||
|
|||
@ApiModelProperty("奖品分类") |
|||
private PrizeCategoryEnum prizeCategory; |
|||
|
|||
@ApiModelProperty("奖品名称") |
|||
private String prizeName; |
|||
|
|||
@ApiModelProperty("奖品占比") |
|||
private BigDecimal prizePct; |
|||
|
|||
@ApiModelProperty("备注") |
|||
private String remark; |
|||
|
|||
@Override |
|||
public RafflePrizeConfig trans2Domain() { |
|||
return TypeConvertUtils.convert(this, RafflePrizeConfig.class); |
|||
} |
|||
} |
|||
@ -0,0 +1,29 @@ |
|||
package com.qniao.dam.api.query.rpc.user; |
|||
|
|||
import com.qniao.dam.api.query.rpc.user.request.UserPageRafflePrizeConfigQueryParams; |
|||
import com.qniao.dam.api.query.rpc.user.response.RafflePrizeConfigVo; |
|||
import com.qniao.dam.query.rpc.RafflePrizeConfigQueryService; |
|||
import com.qniao.domain.QnPage; |
|||
import com.qniao.framework.utils.PageUtil; |
|||
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 RafflePrizeConfigUserQueryController { |
|||
|
|||
@Resource |
|||
private RafflePrizeConfigQueryService rafflePrizeConfigQueryService; |
|||
|
|||
@GetMapping("page/raffle-prize-config") |
|||
@ApiOperation("用户获取抽奖奖品配置分页") |
|||
public QnPage<RafflePrizeConfigVo> userPageRafflePrizeConfig(PageUtil pageUtil, |
|||
UserPageRafflePrizeConfigQueryParams queryParams) { |
|||
return PageUtil.convert(rafflePrizeConfigQueryService.page(queryParams, pageUtil), RafflePrizeConfigVo.class); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
package com.qniao.dam.api.query.rpc.user.request; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class UserPageRafflePrizeConfigQueryParams { |
|||
|
|||
@ApiModelProperty("奖品类型") |
|||
private Integer prizeType; |
|||
|
|||
@ApiModelProperty("奖品分类") |
|||
private Integer prizeCategory; |
|||
|
|||
} |
|||
@ -0,0 +1,33 @@ |
|||
package com.qniao.dam.api.query.rpc.user.response; |
|||
|
|||
import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
|||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
|||
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeCategoryEnum; |
|||
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeTypeEnum; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
public class RafflePrizeConfigVo { |
|||
|
|||
@ApiModelProperty("唯一标识") |
|||
@JsonSerialize(using = ToStringSerializer.class) |
|||
private Long id; |
|||
|
|||
@ApiModelProperty("奖品类型") |
|||
private PrizeTypeEnum prizeType; |
|||
|
|||
@ApiModelProperty("奖品分类") |
|||
private PrizeCategoryEnum prizeCategory; |
|||
|
|||
@ApiModelProperty("奖品名称") |
|||
private String prizeName; |
|||
|
|||
@ApiModelProperty("奖品占比") |
|||
private BigDecimal prizePct; |
|||
|
|||
@ApiModelProperty("备注") |
|||
private String remark; |
|||
} |
|||
@ -0,0 +1,26 @@ |
|||
package com.qniao.dam.application.service.rpc; |
|||
|
|||
import com.qniao.dam.domain.aggregate.rpc.RafflePrizeConfigAggregate; |
|||
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
@Service |
|||
public class RafflePrizeConfigApplicationService { |
|||
|
|||
@Resource |
|||
private RafflePrizeConfigAggregate rafflePrizeConfigAggregate; |
|||
|
|||
public void create(RafflePrizeConfig rafflePrizeConfig) { |
|||
rafflePrizeConfigAggregate.create(rafflePrizeConfig); |
|||
} |
|||
|
|||
public void edit(RafflePrizeConfig rafflePrizeConfig) { |
|||
rafflePrizeConfigAggregate.edit(rafflePrizeConfig); |
|||
} |
|||
|
|||
public void delete(Long id) { |
|||
rafflePrizeConfigAggregate.delete(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,31 @@ |
|||
package com.qniao.dam.domain.aggregate.rpc; |
|||
|
|||
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig; |
|||
import com.qniao.dam.domain.aggregate.rpc.repository.RafflePrizeConfigRepository; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
/** |
|||
* 抽奖奖品配置 |
|||
* |
|||
* @date 2025/01/13 |
|||
*/ |
|||
@Service |
|||
public class RafflePrizeConfigAggregate { |
|||
|
|||
@Resource |
|||
private RafflePrizeConfigRepository repository; |
|||
|
|||
public void create(RafflePrizeConfig entity) { |
|||
repository.save(entity); |
|||
} |
|||
|
|||
public void edit(RafflePrizeConfig entity) { |
|||
repository.save(entity); |
|||
} |
|||
|
|||
public void delete(Long id) { |
|||
repository.delete(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package com.qniao.dam.domain.aggregate.rpc.repository; |
|||
|
|||
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig; |
|||
import com.qniao.domain.Repository; |
|||
|
|||
/** |
|||
* 抽奖奖品配置 |
|||
* |
|||
* @date 2025/01/13 |
|||
*/ |
|||
public interface RafflePrizeConfigRepository extends Repository<RafflePrizeConfig, Long> { |
|||
} |
|||
@ -0,0 +1,21 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.rpc; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.qniao.dam.api.query.rpc.user.request.UserPageRafflePrizeConfigQueryParams; |
|||
import com.qniao.dam.api.query.rpc.user.response.RafflePrizeConfigVo; |
|||
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
/** |
|||
* 抽奖奖品配置 |
|||
* |
|||
* @date 2025/01/13 |
|||
*/ |
|||
public interface RafflePrizeConfigDao extends BaseMapper<RafflePrizeConfig> { |
|||
|
|||
IPage<RafflePrizeConfigVo> page(Page<Object> pageWithoutOrders, |
|||
@Param("queryParams") UserPageRafflePrizeConfigQueryParams queryParams); |
|||
|
|||
} |
|||
@ -0,0 +1,41 @@ |
|||
package com.qniao.dam.infrastructure.persistent.repository.impl; |
|||
|
|||
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig; |
|||
import com.qniao.dam.domain.aggregate.rpc.repository.RafflePrizeConfigRepository; |
|||
import com.qniao.dam.infrastructure.persistent.dao.rpc.RafflePrizeConfigDao; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.Objects; |
|||
|
|||
/** |
|||
* 抽奖奖品配置 |
|||
* |
|||
* @date 2025/01/13 |
|||
*/ |
|||
@Service |
|||
public class RafflePrizeConfigRepositoryImpl implements RafflePrizeConfigRepository { |
|||
|
|||
@Resource |
|||
private RafflePrizeConfigDao dao; |
|||
|
|||
@Override |
|||
public RafflePrizeConfig load(Long id) { |
|||
return dao.selectById(id); |
|||
} |
|||
|
|||
@Override |
|||
public Long save(RafflePrizeConfig entity) { |
|||
if (Objects.isNull(entity) || Objects.isNull(dao.selectById(entity.getId()))) { |
|||
dao.insert(entity); |
|||
} else { |
|||
dao.updateById(entity); |
|||
} |
|||
return entity.getId(); |
|||
} |
|||
|
|||
@Override |
|||
public void delete(Long id) { |
|||
dao.deleteById(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
package com.qniao.dam.query.rpc; |
|||
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.qniao.dam.api.query.rpc.user.request.UserPageRafflePrizeConfigQueryParams; |
|||
import com.qniao.dam.api.query.rpc.user.response.RafflePrizeConfigVo; |
|||
import com.qniao.framework.utils.PageUtil; |
|||
|
|||
public interface RafflePrizeConfigQueryService { |
|||
|
|||
IPage<RafflePrizeConfigVo> page(UserPageRafflePrizeConfigQueryParams queryParam, PageUtil pageUtil); |
|||
} |
|||
@ -0,0 +1,23 @@ |
|||
package com.qniao.dam.query.rpc.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.qniao.dam.api.query.rpc.user.request.UserPageRafflePrizeConfigQueryParams; |
|||
import com.qniao.dam.api.query.rpc.user.response.RafflePrizeConfigVo; |
|||
import com.qniao.dam.infrastructure.persistent.dao.rpc.RafflePrizeConfigDao; |
|||
import com.qniao.dam.query.rpc.RafflePrizeConfigQueryService; |
|||
import com.qniao.framework.utils.PageUtil; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
@Service |
|||
public class RafflePrizeConfigQueryServiceImpl implements RafflePrizeConfigQueryService { |
|||
|
|||
@Resource |
|||
private RafflePrizeConfigDao rafflePrizeConfigDao; |
|||
|
|||
@Override |
|||
public IPage<RafflePrizeConfigVo> page(UserPageRafflePrizeConfigQueryParams queryParams, PageUtil pageUtil) { |
|||
return rafflePrizeConfigDao.page(pageUtil.toPageWithoutOrders(), queryParams); |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.qniao.dam.infrastructure.persistent.dao.rpc.RafflePrizeConfigDao"> |
|||
|
|||
<select id="page" resultType="com.qniao.dam.api.query.rpc.user.response.RafflePrizeConfigVo"> |
|||
SELECT |
|||
id, |
|||
prize_type, |
|||
prize_category, |
|||
prize_name, |
|||
prize_pct, |
|||
remark |
|||
FROM |
|||
da_raffle_prize_config |
|||
where is_delete=0 |
|||
<if test="queryParams.prizeType != null"> |
|||
AND prize_type = #{queryParams.prizeType} |
|||
</if> |
|||
<if test="queryParams.prizeCategory != null"> |
|||
AND prize_category = #{queryParams.prizeCategory} |
|||
</if> |
|||
ORDER BY create_time desc |
|||
</select> |
|||
|
|||
</mapper> |
|||
Write
Preview
Loading…
Cancel
Save