Browse Source

基础配置

master
张彭杰 2 years ago
parent
commit
342592c2f3
9 changed files with 240 additions and 0 deletions
  1. 3
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/order/entity/Order.java
  2. 32
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/OrderUserQueryController.java
  3. 24
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/request/UserPageOrderByOperatorQueryParam.java
  4. 45
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/response/UserPageOrderByOperatorVo.java
  5. 27
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/response/UserPageOrderItemByOperatorVo.java
  6. 19
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/OrderViewDao.java
  7. 10
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/OrderQueryService.java
  8. 36
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/impl/OrderQueryServiceImpl.java
  9. 44
      dating-agency-mall-server/src/main/resources/mapper/order/OrderViewMapper.xml

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

@ -21,6 +21,9 @@ public class Order extends Entity<Order> {
@ApiModelProperty("征婚资料标识")
private Long miId;
@ApiModelProperty("订单号")
private String orderCode;
@ApiModelProperty("结算金额")
private BigDecimal settlementAmount;

32
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/OrderUserQueryController.java

@ -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);
}
}

24
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/request/UserPageOrderByOperatorQueryParam.java

@ -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;
}

45
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/response/UserPageOrderByOperatorVo.java

@ -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;
}

27
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/response/UserPageOrderItemByOperatorVo.java

@ -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;
}

19
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/OrderViewDao.java

@ -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);
}

10
dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/OrderQueryService.java

@ -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);
}

36
dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/impl/OrderQueryServiceImpl.java

@ -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;
}
}

44
dating-agency-mall-server/src/main/resources/mapper/order/OrderViewMapper.xml

@ -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>
Loading…
Cancel
Save