From 1a9ac5d66e755dc7b12e4ed357ba83b9a4adc4b6 Mon Sep 17 00:00:00 2001
From: Administrator <513693417@qq.com>
Date: Fri, 11 Sep 2020 12:00:07 +0800
Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=AF=A6=E6=83=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/BizOrderController.java | 38 +++-
.../business/domain/BizMemberAddress.java | 193 ++++++++++++++++++
.../com/ruoyi/business/domain/BizOrder.java | 125 +++++++++++-
.../business/service/IBizOrderService.java | 8 +
.../service/impl/BizOrderServiceImpl.java | 24 +++
.../mapper/business/BizOrderMapper.xml | 15 +-
.../templates/business/product/edit.html | 2 +-
sql/biz.sql | 7 +-
8 files changed, 404 insertions(+), 8 deletions(-)
create mode 100644 ruoyi-business/src/main/java/com/ruoyi/business/domain/BizMemberAddress.java
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizOrderController.java b/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizOrderController.java
index f707bd1df..eab396617 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizOrderController.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizOrderController.java
@@ -1,6 +1,9 @@
package com.ruoyi.business.controller;
+import java.util.Date;
import java.util.List;
+
+import com.ruoyi.framework.util.ShiroUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -93,7 +96,7 @@ public class BizOrderController extends BaseController
* 修改订单
*/
@GetMapping("/edit/{id}")
- public String edit(@PathVariable("id") Long id, ModelMap mmap)
+ public String edit(@PathVariable(value = "id", required = true) Long id, ModelMap mmap)
{
BizOrder bizOrder = bizOrderService.selectBizOrderById(id);
mmap.put("bizOrder", bizOrder);
@@ -112,6 +115,39 @@ public class BizOrderController extends BaseController
return toAjax(bizOrderService.updateBizOrder(bizOrder));
}
+ /**
+ * 订单发货
+ */
+ @RequiresPermissions("business:order:edit")
+ @Log(title = "订单", businessType = BusinessType.UPDATE)
+ @PostMapping("/deliver")
+ @ResponseBody
+ public AjaxResult editDeliver(Long orderID)
+ {
+ return toAjax(bizOrderService.deliverBizOrder(orderID));
+ }
+
+ /**
+ * 订单修改地址/备注
+ */
+ @RequiresPermissions("business:order:edit")
+ @Log(title = "订单", businessType = BusinessType.UPDATE)
+ @PostMapping("/updateAddressOrRemark")
+ @ResponseBody
+ public AjaxResult updateAddress(Long orderID, String content, Integer type)
+ {
+ BizOrder bizOrder = bizOrderService.selectBizOrderById(orderID);
+ if (bizOrder == null) return toAjax(0);
+ if (type == 0) {
+ bizOrder.setAddressDetail(content);
+ } else {
+ bizOrder.setRemark(content);
+ }
+ bizOrder.setUpdateBy(ShiroUtils.getLoginName());
+ bizOrder.setUpdateTime(new Date());
+ return toAjax(bizOrderService.updateBizOrder(bizOrder));
+ }
+
/**
* 删除订单
*/
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizMemberAddress.java b/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizMemberAddress.java
new file mode 100644
index 000000000..9850e7418
--- /dev/null
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizMemberAddress.java
@@ -0,0 +1,193 @@
+package com.ruoyi.business.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 会员收货地址对象 biz_member_address
+ *
+ * @author ruoyi
+ * @date 2020-09-11
+ */
+public class BizMemberAddress extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 会员地址ID */
+ private Long id;
+
+ /** 会员ID */
+ @Excel(name = "会员ID")
+ private Long memberID;
+
+ /** 手机号码 */
+ @Excel(name = "手机号码")
+ private String mobile;
+
+ /** 收货人姓名 */
+ @Excel(name = "收货人姓名")
+ private String memberName;
+
+ /** 收货人地址 */
+ @Excel(name = "收货人地址")
+ private String address;
+
+ /** 省编码 */
+ @Excel(name = "省编码")
+ private String provinceCode;
+
+ /** 省名称 */
+ @Excel(name = "省名称")
+ private String provinceName;
+
+ /** 市编码 */
+ @Excel(name = "市编码")
+ private String cityCode;
+
+ /** 市名称 */
+ @Excel(name = "市名称")
+ private String cityName;
+
+ /** 区编码 */
+ @Excel(name = "区编码")
+ private String areaCode;
+
+ /** 区名称 */
+ @Excel(name = "区名称")
+ private String areaName;
+
+ /** 是否删除:0-否,1-是 */
+ @Excel(name = "是否删除:0-否,1-是")
+ private Integer isDelete;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setMobile(String mobile)
+ {
+ this.mobile = mobile;
+ }
+
+ public Long getMemberID() {
+ return memberID;
+ }
+
+ public void setMemberID(Long memberID) {
+ this.memberID = memberID;
+ }
+
+ public String getMobile()
+ {
+ return mobile;
+ }
+ public void setMemberName(String memberName)
+ {
+ this.memberName = memberName;
+ }
+
+ public String getMemberName()
+ {
+ return memberName;
+ }
+ public void setAddress(String address)
+ {
+ this.address = address;
+ }
+
+ public String getAddress()
+ {
+ return address;
+ }
+ public void setProvinceCode(String provinceCode)
+ {
+ this.provinceCode = provinceCode;
+ }
+
+ public String getProvinceCode()
+ {
+ return provinceCode;
+ }
+ public void setProvinceName(String provinceName)
+ {
+ this.provinceName = provinceName;
+ }
+
+ public String getProvinceName()
+ {
+ return provinceName;
+ }
+ public void setCityCode(String cityCode)
+ {
+ this.cityCode = cityCode;
+ }
+
+ public String getCityCode()
+ {
+ return cityCode;
+ }
+ public void setCityName(String cityName)
+ {
+ this.cityName = cityName;
+ }
+
+ public String getCityName()
+ {
+ return cityName;
+ }
+ public void setAreaCode(String areaCode)
+ {
+ this.areaCode = areaCode;
+ }
+
+ public String getAreaCode()
+ {
+ return areaCode;
+ }
+ public void setAreaName(String areaName)
+ {
+ this.areaName = areaName;
+ }
+
+ public String getAreaName()
+ {
+ return areaName;
+ }
+ public void setIsDelete(Integer isDelete)
+ {
+ this.isDelete = isDelete;
+ }
+
+ public Integer getIsDelete()
+ {
+ return isDelete;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("mobile", getMobile())
+ .append("memberName", getMemberName())
+ .append("address", getAddress())
+ .append("provinceCode", getProvinceCode())
+ .append("provinceName", getProvinceName())
+ .append("cityCode", getCityCode())
+ .append("cityName", getCityName())
+ .append("areaCode", getAreaCode())
+ .append("areaName", getAreaName())
+ .append("isDelete", getIsDelete())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .toString();
+ }
+}
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizOrder.java b/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizOrder.java
index 599bef1ee..4b249f291 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizOrder.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizOrder.java
@@ -15,6 +15,12 @@ import com.ruoyi.common.core.domain.BaseEntity;
public class BizOrder extends BaseEntity
{
private static final long serialVersionUID = 1L;
+ //订单状态(0-待支付,1-已支付,2-已取消, 3-待收货, 4-已完成)
+ public static final int STATUS_INITIAL = 0;
+ public static final int STATUS_PAYED = 1;
+ public static final int STATUS_CANCELED = 2;
+ public static final int STATUS_DELIVERY = 3;
+ public static final int STATUS_COMPLETED = 4;
/** 订单ID */
private Long id;
@@ -38,14 +44,47 @@ public class BizOrder extends BaseEntity
@Excel(name = "订单金额")
private BigDecimal orderAmount;
- /** 订单状态:0-待支付,1-已支付,2-已取消 */
- @Excel(name = "订单状态:0-待支付,1-已支付,2-已取消")
+ /** 订单状态:0-待支付,1-已支付,2-已取消, 3-待收货, 4-已完成 */
+ @Excel(name = "0-待支付,1-已支付,2-已取消, 3-待收货, 4-已完成")
private Integer orderStatus;
+ /** 订单备注 */
+ @Excel(name = "订单备注")
+ private String remark;
+
+ /** 收货人详细地址 */
+ @Excel(name = "收货人详细地址")
+ private String addressDetail;
+
/** 收货人地址ID */
- @Excel(name = "收货人地址ID")
private Long addressId;
+ /** 商品信息 */
+ @Excel(name = "商品名称")
+ private String productName;
+
+ @Excel(name = "商品总额")
+ private String productAmount;
+
+ @Excel(name = "商品数量")
+ private String productCount;
+
+ /** 收货人地址信息 */
+ @Excel(name = "收货人姓名")
+ private String addressName;
+
+ @Excel(name = "收货人手机")
+ private String addressMobile;
+
+ @Excel(name = "收货人省份")
+ private String addressProvince;
+
+ @Excel(name = "收货人城市")
+ private String addressCity;
+
+ @Excel(name = "收货人区域")
+ private String addressArea;
+
public void setId(Long id)
{
this.id = id;
@@ -119,6 +158,86 @@ public class BizOrder extends BaseEntity
return addressId;
}
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getAddressDetail() {
+ return addressDetail;
+ }
+
+ public void setAddressDetail(String addressDetail) {
+ this.addressDetail = addressDetail;
+ }
+
+ public String getProductName() {
+ return productName;
+ }
+
+ public void setProductName(String productName) {
+ this.productName = productName;
+ }
+
+ public String getProductAmount() {
+ return productAmount;
+ }
+
+ public void setProductAmount(String productAmount) {
+ this.productAmount = productAmount;
+ }
+
+ public String getProductCount() {
+ return productCount;
+ }
+
+ public void setProductCount(String productCount) {
+ this.productCount = productCount;
+ }
+
+ public String getAddressName() {
+ return addressName;
+ }
+
+ public void setAddressName(String addressName) {
+ this.addressName = addressName;
+ }
+
+ public String getAddressMobile() {
+ return addressMobile;
+ }
+
+ public void setAddressMobile(String addressMobile) {
+ this.addressMobile = addressMobile;
+ }
+
+ public String getAddressProvince() {
+ return addressProvince;
+ }
+
+ public void setAddressProvince(String addressProvince) {
+ this.addressProvince = addressProvince;
+ }
+
+ public String getAddressCity() {
+ return addressCity;
+ }
+
+ public void setAddressCity(String addressCity) {
+ this.addressCity = addressCity;
+ }
+
+ public String getAddressArea() {
+ return addressArea;
+ }
+
+ public void setAddressArea(String addressArea) {
+ this.addressArea = addressArea;
+ }
+
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizOrderService.java b/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizOrderService.java
index d0f822c85..dc5f70618 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizOrderService.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizOrderService.java
@@ -43,6 +43,14 @@ public interface IBizOrderService
*/
public int updateBizOrder(BizOrder bizOrder);
+ /**
+ * 订单发货
+ *
+ * @param orderID 订单ID
+ * @return 结果
+ */
+ public int deliverBizOrder(Long orderID);
+
/**
* 批量删除订单
*
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizOrderServiceImpl.java b/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizOrderServiceImpl.java
index 75046040f..7682deae9 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizOrderServiceImpl.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizOrderServiceImpl.java
@@ -1,7 +1,9 @@
package com.ruoyi.business.service.impl;
+import java.util.Date;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.framework.util.ShiroUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.BizOrderMapper;
@@ -71,6 +73,28 @@ public class BizOrderServiceImpl implements IBizOrderService
return bizOrderMapper.updateBizOrder(bizOrder);
}
+ /**
+ * 订单发货
+ *
+ * @param orderID 订单ID
+ * @return 结果
+ */
+ public int deliverBizOrder(Long orderID)
+ {
+ BizOrder bizOrder = bizOrderMapper.selectBizOrderById(orderID);
+ if (bizOrder == null) {
+ return 0;
+ }
+ //校验订单状态
+ if (bizOrder.getOrderStatus() != BizOrder.STATUS_PAYED) {
+ return 0;
+ }
+ bizOrder.setOrderStatus(BizOrder.STATUS_DELIVERY);
+ bizOrder.setUpdateBy(ShiroUtils.getLoginName());
+ bizOrder.setUpdateTime(new Date());
+ return bizOrderMapper.updateBizOrder(bizOrder);
+ }
+
/**
* 删除订单对象
*
diff --git a/ruoyi-business/src/main/resources/mapper/business/BizOrderMapper.xml b/ruoyi-business/src/main/resources/mapper/business/BizOrderMapper.xml
index aa13a85b5..25bcac22a 100644
--- a/ruoyi-business/src/main/resources/mapper/business/BizOrderMapper.xml
+++ b/ruoyi-business/src/main/resources/mapper/business/BizOrderMapper.xml
@@ -12,6 +12,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+
@@ -20,7 +22,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- select id, order_sn, member_id, mobile, member_name, order_amount, order_status, address_id, create_by, create_time, update_by, update_time from biz_order
+ select a.id, order_sn, a.member_id, a.mobile, a.member_name, order_amount, order_status, remark, address_detail, address_id, a.create_by, a.create_time, a.update_by, a.update_time,
+ b.mobile addressMobile, b.member_name addressName, b.province_name addressProvince, b.city_name addressCity, b.area_name addressArea
+ from biz_order a
+ left join biz_member_address b on a.member_id = b.member_id
+ left join (select max(id), product_id, product_code productName, product_count productCount, product_amount productAmount from biz_order_detail group by product_id) c
+ on a.id = c.product_id