9 changed files with 240 additions and 0 deletions
Unified 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