9 changed files with 240 additions and 0 deletions
Split View
Diff Options
-
3dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/order/entity/Order.java
-
32dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/OrderUserQueryController.java
-
24dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/request/UserPageOrderByOperatorQueryParam.java
-
45dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/response/UserPageOrderByOperatorVo.java
-
27dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/response/UserPageOrderItemByOperatorVo.java
-
19dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/OrderViewDao.java
-
10dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/OrderQueryService.java
-
36dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/impl/OrderQueryServiceImpl.java
-
44dating-agency-mall-server/src/main/resources/mapper/order/OrderViewMapper.xml
@ -0,0 +1,32 @@ |
|||
package com.qniao.dam.api.query.order.user; |
|||
|
|||
import com.qniao.dam.api.query.order.user.request.UserPageOrderByOperatorQueryParam; |
|||
import com.qniao.dam.api.query.order.user.response.UserPageOrderByOperatorVo; |
|||
import com.qniao.dam.query.order.OrderQueryService; |
|||
import com.qniao.dau.infrastructure.constant.RequestHeaderFields; |
|||
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; |
|||
|
|||
@RestController |
|||
@RequestMapping("user") |
|||
@Api(tags = "订单") |
|||
public class OrderUserQueryController { |
|||
|
|||
@Resource |
|||
private OrderQueryService orderQueryService; |
|||
|
|||
@GetMapping("page/order/by/operator") |
|||
@ApiOperation("运营获取订单分页列表") |
|||
public QnPage<UserPageOrderByOperatorVo> userPageOrderByOperator(PageUtil pageUtil, |
|||
UserPageOrderByOperatorQueryParam queryParam, |
|||
@RequestParam("userId") Long userId, |
|||
@RequestHeader(name = RequestHeaderFields.FIELD_ORGANIZATION_ID) Long orgId) { |
|||
return PageUtil.convert(orderQueryService.pageOrderByOperator(pageUtil, queryParam), UserPageOrderByOperatorVo.class); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,24 @@ |
|||
package com.qniao.dam.api.query.order.user.request; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.time.LocalDateTime; |
|||
|
|||
@Data |
|||
public class UserPageOrderByOperatorQueryParam { |
|||
|
|||
@ApiModelProperty("订单号") |
|||
private String orderCode; |
|||
|
|||
@ApiModelProperty("订单开始时间") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private LocalDateTime orderTimeFrom; |
|||
|
|||
@ApiModelProperty("订单结束时间") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private LocalDateTime orderTimeTo; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,45 @@ |
|||
package com.qniao.dam.api.query.order.user.response; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
|||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.time.LocalDateTime; |
|||
import java.util.List; |
|||
|
|||
@Data |
|||
public class UserPageOrderByOperatorVo { |
|||
|
|||
@ApiModelProperty("订单标识") |
|||
@JsonSerialize(using = ToStringSerializer.class) |
|||
private Long orderId; |
|||
|
|||
@ApiModelProperty("订单号") |
|||
private String orderCode; |
|||
|
|||
@ApiModelProperty("订单时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private LocalDateTime orderTime; |
|||
|
|||
@ApiModelProperty("用户标识") |
|||
@JsonSerialize(using = ToStringSerializer.class) |
|||
private Long userId; |
|||
|
|||
@ApiModelProperty("用户手机号") |
|||
private String userPhone; |
|||
|
|||
@ApiModelProperty("征婚资料标识") |
|||
@JsonSerialize(using = ToStringSerializer.class) |
|||
private Long miId; |
|||
|
|||
@ApiModelProperty("征婚资料名称") |
|||
private String miName; |
|||
|
|||
@ApiModelProperty("结算金额") |
|||
private BigDecimal settlementAmount; |
|||
|
|||
private List<UserPageOrderItemByOperatorVo> orderItemList; |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
package com.qniao.dam.api.query.order.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; |
|||
|
|||
@Data |
|||
public class UserPageOrderItemByOperatorVo { |
|||
|
|||
@ApiModelProperty("订单标识") |
|||
@JsonSerialize(using = ToStringSerializer.class) |
|||
private Long orderId; |
|||
|
|||
@ApiModelProperty("订单项标识") |
|||
@JsonSerialize(using = ToStringSerializer.class) |
|||
private Long orderItemId; |
|||
|
|||
@ApiModelProperty("产品主分类") |
|||
private ProductMainCategoryEnum mainCategory; |
|||
|
|||
@ApiModelProperty("产品次分类") |
|||
private ProductSubCategoryEnum subCategory; |
|||
|
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
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.order.user.request.UserPageOrderByOperatorQueryParam; |
|||
import com.qniao.dam.api.query.order.user.response.UserPageOrderByOperatorVo; |
|||
import com.qniao.dam.api.query.order.user.response.UserPageOrderItemByOperatorVo; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Mapper |
|||
public interface OrderViewDao { |
|||
IPage<UserPageOrderByOperatorVo> pageProductByOperator(Page<Object> pageWithoutOrders, |
|||
@Param("queryParam") UserPageOrderByOperatorQueryParam queryParam); |
|||
|
|||
List<UserPageOrderItemByOperatorVo> listOrderItemByOperatorByOrderIds(@Param("orderIdList") List<Long> orderIdList); |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
package com.qniao.dam.query.order; |
|||
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.qniao.dam.api.query.order.user.request.UserPageOrderByOperatorQueryParam; |
|||
import com.qniao.dam.api.query.order.user.response.UserPageOrderByOperatorVo; |
|||
import com.qniao.framework.utils.PageUtil; |
|||
|
|||
public interface OrderQueryService { |
|||
IPage<UserPageOrderByOperatorVo> pageOrderByOperator(PageUtil pageUtil, UserPageOrderByOperatorQueryParam queryParam); |
|||
} |
|||
@ -0,0 +1,36 @@ |
|||
package com.qniao.dam.query.order.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.qniao.dam.api.query.order.user.request.UserPageOrderByOperatorQueryParam; |
|||
import com.qniao.dam.api.query.order.user.response.UserPageOrderByOperatorVo; |
|||
import com.qniao.dam.api.query.order.user.response.UserPageOrderItemByOperatorVo; |
|||
import com.qniao.dam.infrastructure.persistent.dao.view.OrderViewDao; |
|||
import com.qniao.dam.query.order.OrderQueryService; |
|||
import com.qniao.framework.utils.PageUtil; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.stream.Collectors; |
|||
|
|||
@Service |
|||
public class OrderQueryServiceImpl implements OrderQueryService { |
|||
|
|||
@Resource |
|||
private OrderViewDao orderViewDao; |
|||
|
|||
@Override |
|||
public IPage<UserPageOrderByOperatorVo> pageOrderByOperator(PageUtil pageUtil, UserPageOrderByOperatorQueryParam queryParam) { |
|||
IPage<UserPageOrderByOperatorVo> page = orderViewDao.pageProductByOperator(pageUtil.toPageWithoutOrders(), queryParam); |
|||
if (page.getRecords().size() > 0) { |
|||
List<Long> orderIdList = page.getRecords().stream().map(UserPageOrderByOperatorVo::getOrderId).collect(Collectors.toList()); |
|||
List<UserPageOrderItemByOperatorVo> allOrderItemList = orderViewDao.listOrderItemByOperatorByOrderIds(orderIdList); |
|||
Map<Long, List<UserPageOrderItemByOperatorVo>> allOrderItemMap = allOrderItemList.stream().collect(Collectors.groupingBy(UserPageOrderItemByOperatorVo::getOrderId)); |
|||
page.getRecords().forEach(record -> { |
|||
record.setOrderItemList(allOrderItemMap.get(record.getOrderId())); |
|||
}); |
|||
} |
|||
return page; |
|||
} |
|||
} |
|||
@ -0,0 +1,44 @@ |
|||
<?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.view.OrderViewDao"> |
|||
|
|||
|
|||
<select id="pageProductByOperator" |
|||
resultType="com.qniao.dam.api.query.order.user.response.UserPageOrderByOperatorVo"> |
|||
select |
|||
dao.id as orderId, |
|||
dao.order_code, |
|||
dao.create_time as orderTime, |
|||
dao.user_id, |
|||
daa.tid as userPhone, |
|||
dao.mi_id, |
|||
IFNULL(dami.`name`,dami.nick_name) as miName, |
|||
dao.settlement_amount |
|||
from da_order as dao |
|||
LEFT JOIN da_account as daa on daa.user_id=dao.user_id and daa.type=2 and daa.is_delete=0 |
|||
LEFT JOIN da_marriage_information as dami on dami.id=dao.mi_id |
|||
where dao.is_delete=0 |
|||
<if test="queryParam.orderCode != null and queryParam.orderCode != '' "> |
|||
AND dao.order_code LIKE CONCAT('%', TRIM(#{queryParam.orderCode}), '%') |
|||
</if> |
|||
<if test="queryParam.orderTimeFrom != null and queryParam.orderTimeTo != null"> |
|||
and dao.create_time BETWEEN #{queryParam.orderTimeFrom} and #{queryParam.orderTimeTo} |
|||
</if> |
|||
ORDER BY dao.create_time desc |
|||
</select> |
|||
|
|||
<select id="listOrderItemByOperatorByOrderIds" |
|||
resultType="com.qniao.dam.api.query.order.user.response.UserPageOrderItemByOperatorVo"> |
|||
select |
|||
daoi.order_id, |
|||
daoi.id as orderItemId, |
|||
daoi.main_category, |
|||
daoi.sub_category |
|||
from da_order_item as daoi |
|||
where daoi.is_delete=0 |
|||
and daoi.order_id in |
|||
<foreach collection="orderIdList" item="orderId" open="(" close=")" separator=","> |
|||
#{orderId} |
|||
</foreach> |
|||
</select> |
|||
</mapper> |
|||
Write
Preview
Loading…
Cancel
Save