后台订单分页查询

pull/1/head
chuzhichao 2 years ago
parent 0ac8e86472
commit 6c17b2a938

@ -2,6 +2,8 @@ package com.cyl.manager.oms.controller;
import java.util.List; import java.util.List;
import com.cyl.manager.oms.pojo.request.ManagerOrderQueryRequest;
import com.cyl.manager.oms.pojo.vo.ManagerOrderVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageImpl;
@ -45,8 +47,8 @@ public class OrderController extends BaseController {
@ApiOperation("查询订单表列表") @ApiOperation("查询订单表列表")
@PreAuthorize("@ss.hasPermi('oms:order:list')") @PreAuthorize("@ss.hasPermi('oms:order:list')")
@PostMapping("/list") @PostMapping("/list")
public ResponseEntity<Page<Order>> list(@RequestBody OrderQuery query, Pageable page) { public ResponseEntity<Page<ManagerOrderVO>> list(@RequestBody ManagerOrderQueryRequest query, Pageable page) {
List<Order> list = service.selectList(query, page); List<ManagerOrderVO> list = service.selectList(query, page);
return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal()));
} }
@ -55,9 +57,10 @@ public class OrderController extends BaseController {
@Log(title = "订单表", businessType = BusinessType.EXPORT) @Log(title = "订单表", businessType = BusinessType.EXPORT)
@GetMapping("/export") @GetMapping("/export")
public ResponseEntity<String> export(OrderQuery query) { public ResponseEntity<String> export(OrderQuery query) {
List<Order> list = service.selectList(query, null); // List<Order> list = service.selectList(query, null);
ExcelUtil<OrderVO> util = new ExcelUtil<>(OrderVO.class); // ExcelUtil<OrderVO> util = new ExcelUtil<>(OrderVO.class);
return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "订单表数据")); // return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "订单表数据"));
return null;
} }
@ApiOperation("获取订单表详细信息") @ApiOperation("获取订单表详细信息")

@ -3,6 +3,8 @@ package com.cyl.manager.oms.mapper;
import java.util.List; import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cyl.manager.oms.domain.Order; import com.cyl.manager.oms.domain.Order;
import com.cyl.manager.oms.pojo.request.ManagerOrderQueryRequest;
import com.cyl.manager.oms.pojo.vo.ManagerOrderVO;
/** /**
* Mapper * Mapper
@ -17,4 +19,6 @@ public interface OrderMapper extends BaseMapper<Order> {
* @return * @return
*/ */
List<Order> selectByEntity(Order order); List<Order> selectByEntity(Order order);
List<ManagerOrderVO> selectManagerOrderPage(ManagerOrderQueryRequest request);
} }

@ -0,0 +1,50 @@
package com.cyl.manager.oms.pojo.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
@ApiModel("后台订单查询请求体")
public class ManagerOrderQueryRequest {
@ApiModelProperty(name = "orderId", value = "订单id", required = true, dataType = "String")
private Long orderId;
@ApiModelProperty(name = "productId", value = "商品id", required = true, dataType = "Long")
private Long productId;
@ApiModelProperty(name = "productName", value = "商品名称", required = true, dataType = "String")
private String productName;
@ApiModelProperty(name = "userPhone", value = "用户名称(手机号)", required = true, dataType = "String")
private String userPhone;
@ApiModelProperty(name = "payType", value = "支付方式 0->未支付1->支付宝2->微信", required = true, dataType = "Integer")
private Integer payType;
@ApiModelProperty(name = "status", value = "订单状态0->待付款1->待发货2->已发货3->已完成4->已关闭5->无效订单", required = true, dataType = "String")
private Integer status;
@ApiModelProperty("省份/直辖市id 精确匹配")
private Long receiverProvinceId;
@ApiModelProperty("城市id 精确匹配")
private Long receiverCityId;
@ApiModelProperty("区id 精确匹配")
private Long receiverDistrictId;
@ApiModelProperty(name = "startTime", value = "开始时间", required = true, dataType = "Date")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@ApiModelProperty(name = "endTime", value = "结束时间", required = true, dataType = "Date")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
}

@ -0,0 +1,81 @@
package com.cyl.manager.oms.pojo.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@ApiModel(value = "管理后台订单VO")
public class ManagerOrderVO {
@ApiModelProperty(name = "id",value = "订单id",required = true,dataType = "String")
private String id;
@ApiModelProperty(name = "productId",value = "商品id",required = true,dataType = "Long")
private Long productId;
@ApiModelProperty(name = "productName",value = "商品名称",required = true,dataType = "String")
private String productName;
@ApiModelProperty(name = "userPhone",value = "用户账号",required = true,dataType = "String")
private String userPhone;
@ApiModelProperty(name = "nickName",value = "用户昵称",required = true,dataType = "String")
private String nickName;
@ApiModelProperty(name = "avatar",value = "用户头像",required = true,dataType = "String")
private String avatar;
@ApiModelProperty(name = "status",value = "订单状态0->待付款1->待发货2->已发货3->已完成4->已关闭5->无效订单",required = true,dataType = "Integer")
private Integer status;
@ApiModelProperty("退款状态枚举值1无售后或售后关闭2售后处理中3退款中4 退款成功")
private Integer aftersaleStatus;
@ApiModelProperty(name = "pic",value = "商品图片",required = true,dataType = "String")
private String pic;
@ApiModelProperty(name = "userName",value = "用户名称",required = true,dataType = "String")
private String userName;
@ApiModelProperty(name = "buyNum",value = "购买数量",required = true,dataType = "Integer")
private Integer buyNum;
@ApiModelProperty(name = "totalAmount",value = "订单总金额",required = true,dataType = "BigDecimal")
private BigDecimal totalAmount;
@ApiModelProperty(name = "payAmount",value = "应付金额",required = true,dataType = "BigDecimal")
private BigDecimal payAmount;
@ApiModelProperty(name = "createTime",value = "下单时间",required = true,dataType = "Date")
private Date createTime;
@ApiModelProperty(name = "payTime",value = "支付时间",required = true,dataType = "Date")
private Date payTime;
@ApiModelProperty(name = "payType",value = "支付方式 支付方式0->未支付1->支付宝2->微信",required = true,dataType = "Integer")
private Integer payType;
@ApiModelProperty(name = "receiveTime",value = "确认收货时间",required = true,dataType = "Date")
private Date receiveTime;
@ApiModelProperty(name = "note",value = "备注",required = true,dataType = "String")
private String note;
@ApiModelProperty(name = "spData",value = "商品sku属性",required = true,dataType = "String")
private String spData;
private String receiverName;
private String receiverPhone;
private String receiverProvince;
private String receiverCity;
private String receiverDistrict;
private String receiverDetailAddress;
}

@ -5,7 +5,6 @@ import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import com.cyl.manager.oms.domain.OrderItem; import com.cyl.manager.oms.domain.OrderItem;
import com.cyl.pay.pojo.vo.PayOrderVO;
import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseAudit; import com.ruoyi.common.core.domain.BaseAudit;
@ -107,5 +106,4 @@ public class OrderVO extends BaseAudit {
@Excel(name = "确认收货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "确认收货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime receiveTime; private LocalDateTime receiveTime;
private List<OrderItem> items; private List<OrderItem> items;
private PayOrderVO payOrder;
} }

@ -23,6 +23,8 @@ import com.cyl.manager.oms.domain.OrderItem;
import com.cyl.manager.oms.domain.OrderOperateHistory; import com.cyl.manager.oms.domain.OrderOperateHistory;
import com.cyl.manager.oms.mapper.OrderItemMapper; import com.cyl.manager.oms.mapper.OrderItemMapper;
import com.cyl.manager.oms.mapper.OrderOperateHistoryMapper; import com.cyl.manager.oms.mapper.OrderOperateHistoryMapper;
import com.cyl.manager.oms.pojo.request.ManagerOrderQueryRequest;
import com.cyl.manager.oms.pojo.vo.ManagerOrderVO;
import com.cyl.manager.oms.pojo.vo.OrderVO; import com.cyl.manager.oms.pojo.vo.OrderVO;
import com.cyl.manager.pms.convert.SkuConvert; import com.cyl.manager.pms.convert.SkuConvert;
import com.cyl.manager.pms.domain.Product; import com.cyl.manager.pms.domain.Product;
@ -36,10 +38,12 @@ import com.cyl.manager.ums.mapper.MemberAddressMapper;
import com.cyl.manager.ums.mapper.MemberCartMapper; import com.cyl.manager.ums.mapper.MemberCartMapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.utils.AesCryptoUtils;
import com.ruoyi.common.utils.IDGenerator; import com.ruoyi.common.utils.IDGenerator;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.config.LocalDataUtil; import com.ruoyi.framework.config.LocalDataUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
@ -78,6 +82,8 @@ public class OrderService {
private OrderOperateHistoryMapper orderOperateHistoryMapper; private OrderOperateHistoryMapper orderOperateHistoryMapper;
@Autowired @Autowired
private MemberCartMapper memberCartMapper; private MemberCartMapper memberCartMapper;
@Value("${aes.key}")
private String aesKey;
/** /**
* *
@ -96,124 +102,14 @@ public class OrderService {
* @param page * @param page
* @return * @return
*/ */
public List<Order> selectList(OrderQuery query, Pageable page) { public List<ManagerOrderVO> selectList(ManagerOrderQueryRequest query, Pageable page) {
if (page != null) { if (page != null) {
PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize());
} }
QueryWrapper<Order> qw = new QueryWrapper<>(); if (!StringUtils.isEmpty(query.getUserPhone())){
Long memberId = query.getMemberId(); query.setUserPhone(AesCryptoUtils.encrypt(aesKey, query.getUserPhone()));
if (memberId != null) {
qw.eq("member_id", memberId);
}
String memberUsernameLike = query.getMemberUsernameLike();
if (!StringUtils.isEmpty(memberUsernameLike)) {
qw.like("member_username", memberUsernameLike);
}
BigDecimal totalAmount = query.getTotalAmount();
if (totalAmount != null) {
qw.eq("total_amount", totalAmount);
}
BigDecimal purchasePrice = query.getPurchasePrice();
if (purchasePrice != null) {
qw.eq("purchase_price", purchasePrice);
}
BigDecimal payAmount = query.getPayAmount();
if (payAmount != null) {
qw.eq("pay_amount", payAmount);
}
BigDecimal freightAmount = query.getFreightAmount();
if (freightAmount != null) {
qw.eq("freight_amount", freightAmount);
}
Integer payType = query.getPayType();
if (payType != null) {
qw.eq("pay_type", payType);
}
Integer status = query.getStatus();
if (status != null) {
qw.eq("status", status);
}
Integer aftersaleStatus = query.getAftersaleStatus();
if (aftersaleStatus != null) {
qw.eq("aftersale_status", aftersaleStatus);
}
String deliveryCompany = query.getDeliveryCompany();
if (!StringUtils.isEmpty(deliveryCompany)) {
qw.eq("delivery_company", deliveryCompany);
}
String deliverySn = query.getDeliverySn();
if (!StringUtils.isEmpty(deliverySn)) {
qw.eq("delivery_sn", deliverySn);
}
Integer autoConfirmDay = query.getAutoConfirmDay();
if (autoConfirmDay != null) {
qw.eq("auto_confirm_day", autoConfirmDay);
}
String receiverNameLike = query.getReceiverNameLike();
if (!StringUtils.isEmpty(receiverNameLike)) {
qw.like("receiver_name", receiverNameLike);
}
String receiverPhone = query.getReceiverPhone();
if (!StringUtils.isEmpty(receiverPhone)) {
qw.eq("receiver_phone", receiverPhone);
}
String receiverPostCode = query.getReceiverPostCode();
if (!StringUtils.isEmpty(receiverPostCode)) {
qw.eq("receiver_post_code", receiverPostCode);
}
String receiverProvince = query.getReceiverProvince();
if (!StringUtils.isEmpty(receiverProvince)) {
qw.eq("receiver_province", receiverProvince);
}
String receiverCity = query.getReceiverCity();
if (!StringUtils.isEmpty(receiverCity)) {
qw.eq("receiver_city", receiverCity);
}
String receiverDistrict = query.getReceiverDistrict();
if (!StringUtils.isEmpty(receiverDistrict)) {
qw.eq("receiver_district", receiverDistrict);
}
Long receiverProvinceId = query.getReceiverProvinceId();
if (receiverProvinceId != null) {
qw.eq("receiver_province_id", receiverProvinceId);
}
Long receiverCityId = query.getReceiverCityId();
if (receiverCityId != null) {
qw.eq("receiver_city_id", receiverCityId);
}
Long receiverDistrictId = query.getReceiverDistrictId();
if (receiverDistrictId != null) {
qw.eq("receiver_district_id", receiverDistrictId);
}
String receiverDetailAddress = query.getReceiverDetailAddress();
if (!StringUtils.isEmpty(receiverDetailAddress)) {
qw.eq("receiver_detail_address", receiverDetailAddress);
}
String note = query.getNote();
if (!StringUtils.isEmpty(note)) {
qw.eq("note", note);
}
Integer confirmStatus = query.getConfirmStatus();
if (confirmStatus != null) {
qw.eq("confirm_status", confirmStatus);
}
Integer deleteStatus = query.getDeleteStatus();
if (deleteStatus != null) {
qw.eq("delete_status", deleteStatus);
}
LocalDateTime paymentTime = query.getPaymentTime();
if (paymentTime != null) {
qw.eq("payment_time", paymentTime);
}
LocalDateTime deliveryTime = query.getDeliveryTime();
if (deliveryTime != null) {
qw.eq("delivery_time", deliveryTime);
}
LocalDateTime receiveTime = query.getReceiveTime();
if (receiveTime != null) {
qw.eq("receive_time", receiveTime);
} }
return orderMapper.selectList(qw); return orderMapper.selectManagerOrderPage(query);
} }
/** /**
@ -308,11 +204,14 @@ public class OrderService {
order.setStatus(Constants.OrderStatus.SEND); order.setStatus(Constants.OrderStatus.SEND);
order.setAftersaleStatus(1); order.setAftersaleStatus(1);
order.setReceiverName(memberAddress.getName()); order.setReceiverName(memberAddress.getName());
// order.setReceiverPhone(memberAddress.getPhone()); order.setReceiverPhone(memberAddress.getPhoneHidden());
order.setReceiverPostCode(memberAddress.getPostCode()); order.setReceiverPostCode(memberAddress.getPostCode());
order.setReceiverProvince(memberAddress.getProvince()); order.setReceiverProvince(memberAddress.getProvince());
order.setReceiverCity(memberAddress.getCity()); order.setReceiverCity(memberAddress.getCity());
order.setReceiverDistrict(memberAddress.getDistrict()); order.setReceiverDistrict(memberAddress.getDistrict());
order.setReceiverProvinceId(memberAddress.getProvinceId());
order.setReceiverCityId(memberAddress.getCityId());
order.setReceiverDistrictId(memberAddress.getDistrictId());
order.setReceiverDetailAddress(memberAddress.getDetailAddress()); order.setReceiverDetailAddress(memberAddress.getDetailAddress());
order.setNote(form.getNote()); order.setNote(form.getNote());
order.setConfirmStatus(0); order.setConfirmStatus(0);

@ -56,6 +56,18 @@ public class MemberAddress extends BaseAudit {
@Excel(name = "区") @Excel(name = "区")
private String district; private String district;
@ApiModelProperty("省份/直辖市id")
@Excel(name = "省份/直辖市id")
private Long provinceId;
@ApiModelProperty("城市id")
@Excel(name = "城市id")
private Long cityId;
@ApiModelProperty("区id")
@Excel(name = "区id")
private Long districtId;
@ApiModelProperty("详细地址(街道)") @ApiModelProperty("详细地址(街道)")
@Excel(name = "详细地址(街道)") @Excel(name = "详细地址(街道)")
private String detailAddress; private String detailAddress;

@ -81,4 +81,63 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="receiveTime != null "> and receive_time = #{receiveTime}</if> <if test="receiveTime != null "> and receive_time = #{receiveTime}</if>
</where> </where>
</select> </select>
<select id="selectManagerOrderPage" resultType="com.cyl.manager.oms.pojo.vo.ManagerOrderVO">
select
a.id,
a.aftersale_status aftersaleStatus,
a.status,
a.member_username userName,
a.total_amount totalAmount,
a.pay_amount payAmount,
a.note,
a.create_time createTime,
a.payment_time payTime,
a.receive_time receiveTime,
a.pay_type payType,
a.receiver_name receiverName,
a.receiver_phone receiverPhone,
a.receiver_province receiverProvince,
a.receiver_city receiverCity,
a.receiver_district receiverDistrict,
a.receiver_detail_address receiverDetailAddress,
-- b.quantity buyNum,
-- b.pic,
-- b.sp_data spData,
-- b.product_id productId,
-- b.product_name productName,
c.phone userPhone,
c.nickname nickName
from oms_order a
-- left join oms_order_item b on a.id = b.order_id
left join ums_member c on a.member_id = c.id
where a.aftersale_status = 1
<if test="orderId != null">
and a.id = #{orderId}
</if>
<!--<if test="productName != null and productName != ''">-->
<!--and instr(b.product_name, #{productName}) > 0-->
<!--</if>-->
<if test="receiverProvinceId != null ">
and a.receiver_province_id = #{receiverProvinceId}
</if>
<if test="receiverCityId != null">
and a.receiver_city_id = #{receiverCityId}
</if>
<if test="receiverDistrictId != null">
and a.receiver_district_id = #{receiverDistrictId}
</if>
<if test="userPhone != null and userPhone != ''">
and c.phone_encrypted=#{userPhone} > 0
</if>
<if test="status != null">
and a.status = #{status}
</if>
<if test="payType != null">
and a.pay_type=#{payType}
</if>
<if test="startTime != null and endTime != null">
and a.create_time between #{startTime} and #{endTime}
</if>
order by a.create_time desc
</select>
</mapper> </mapper>

Loading…
Cancel
Save