diff --git a/ruoyi-generator/src/test/java/com/ruoyi/generator/ApplicationTest.java b/ruoyi-generator/src/test/java/com/ruoyi/generator/ApplicationTest.java index 1e17a77..6c40f01 100644 --- a/ruoyi-generator/src/test/java/com/ruoyi/generator/ApplicationTest.java +++ b/ruoyi-generator/src/test/java/com/ruoyi/generator/ApplicationTest.java @@ -34,11 +34,11 @@ public class ApplicationTest { // "ums_member_wechat", // "ums_member_cart" "oms_order", - "oms_order_delivery_history", - "oms_order_item", - "oms_order_operate_history", - "oms_refund", - "oms_refund_item" +// "oms_order_delivery_history", +// "oms_order_item", +// "oms_order_operate_history", + "oms_aftersale", + "oms_aftersale_item" ); // 查询表信息 List tableList = genTableService.selectGenTableByName(tableNames); diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/controller/AftersaleController.java b/ruoyi-mall/src/main/java/com/cyl/oms/controller/AftersaleController.java new file mode 100644 index 0000000..34759de --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/controller/AftersaleController.java @@ -0,0 +1,93 @@ +package com.cyl.oms.controller; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.oms.convert.AftersaleConvert; +import com.cyl.oms.domain.Aftersale; +import com.cyl.oms.pojo.query.AftersaleQuery; +import com.cyl.oms.service.AftersaleService; +import com.cyl.oms.pojo.vo.AftersaleVO; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * 订单售后Controller + * + * @author zcc + * @date 2022-12-29 + */ +@Api(description ="订单售后接口列表") +@RestController +@RequestMapping("/oms/aftersale") +public class AftersaleController extends BaseController { + @Autowired + private AftersaleService service; + @Autowired + private AftersaleConvert convert; + + @ApiOperation("查询订单售后列表") + @PreAuthorize("@ss.hasPermi('oms:aftersale:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody AftersaleQuery query, Pageable page) { + List list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出订单售后列表") + @PreAuthorize("@ss.hasPermi('oms:aftersale:export')") + @Log(title = "订单售后", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(AftersaleQuery query) { + List list = service.selectList(query, null); + ExcelUtil util = new ExcelUtil<>(AftersaleVO.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "订单售后数据")); + } + + @ApiOperation("获取订单售后详细信息") + @PreAuthorize("@ss.hasPermi('oms:aftersale:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增订单售后") + @PreAuthorize("@ss.hasPermi('oms:aftersale:add')") + @Log(title = "订单售后", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody Aftersale aftersale) { + return ResponseEntity.ok(service.insert(aftersale)); + } + + @ApiOperation("修改订单售后") + @PreAuthorize("@ss.hasPermi('oms:aftersale:edit')") + @Log(title = "订单售后", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody Aftersale aftersale) { + return ResponseEntity.ok(service.update(aftersale)); + } + + @ApiOperation("删除订单售后") + @PreAuthorize("@ss.hasPermi('oms:aftersale:remove')") + @Log(title = "订单售后", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/controller/AftersaleItemController.java b/ruoyi-mall/src/main/java/com/cyl/oms/controller/AftersaleItemController.java new file mode 100644 index 0000000..f5046ba --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/controller/AftersaleItemController.java @@ -0,0 +1,93 @@ +package com.cyl.oms.controller; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.oms.convert.AftersaleItemConvert; +import com.cyl.oms.domain.AftersaleItem; +import com.cyl.oms.pojo.query.AftersaleItemQuery; +import com.cyl.oms.service.AftersaleItemService; +import com.cyl.oms.pojo.vo.AftersaleItemVO; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * 订单售后Controller + * + * @author zcc + * @date 2022-12-29 + */ +@Api(description ="订单售后接口列表") +@RestController +@RequestMapping("/oms/aftersaleItem") +public class AftersaleItemController extends BaseController { + @Autowired + private AftersaleItemService service; + @Autowired + private AftersaleItemConvert convert; + + @ApiOperation("查询订单售后列表") + @PreAuthorize("@ss.hasPermi('oms:aftersaleItem:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody AftersaleItemQuery query, Pageable page) { + List list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出订单售后列表") + @PreAuthorize("@ss.hasPermi('oms:aftersaleItem:export')") + @Log(title = "订单售后", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(AftersaleItemQuery query) { + List list = service.selectList(query, null); + ExcelUtil util = new ExcelUtil<>(AftersaleItemVO.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "订单售后数据")); + } + + @ApiOperation("获取订单售后详细信息") + @PreAuthorize("@ss.hasPermi('oms:aftersaleItem:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增订单售后") + @PreAuthorize("@ss.hasPermi('oms:aftersaleItem:add')") + @Log(title = "订单售后", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody AftersaleItem aftersaleItem) { + return ResponseEntity.ok(service.insert(aftersaleItem)); + } + + @ApiOperation("修改订单售后") + @PreAuthorize("@ss.hasPermi('oms:aftersaleItem:edit')") + @Log(title = "订单售后", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody AftersaleItem aftersaleItem) { + return ResponseEntity.ok(service.update(aftersaleItem)); + } + + @ApiOperation("删除订单售后") + @PreAuthorize("@ss.hasPermi('oms:aftersaleItem:remove')") + @Log(title = "订单售后", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/convert/AftersaleConvert.java b/ruoyi-mall/src/main/java/com/cyl/oms/convert/AftersaleConvert.java new file mode 100644 index 0000000..3543329 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/convert/AftersaleConvert.java @@ -0,0 +1,16 @@ +package com.cyl.oms.convert; + +import org.mapstruct.Mapper; +import com.cyl.oms.domain.Aftersale; +import com.cyl.oms.pojo.vo.AftersaleVO; +import java.util.List; +/** + * 订单售后 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface AftersaleConvert { + + List dos2vos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/convert/AftersaleItemConvert.java b/ruoyi-mall/src/main/java/com/cyl/oms/convert/AftersaleItemConvert.java new file mode 100644 index 0000000..dae2958 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/convert/AftersaleItemConvert.java @@ -0,0 +1,16 @@ +package com.cyl.oms.convert; + +import org.mapstruct.Mapper; +import com.cyl.oms.domain.AftersaleItem; +import com.cyl.oms.pojo.vo.AftersaleItemVO; +import java.util.List; +/** + * 订单售后 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface AftersaleItemConvert { + + List dos2vos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/domain/Aftersale.java b/ruoyi-mall/src/main/java/com/cyl/oms/domain/Aftersale.java new file mode 100644 index 0000000..288ce0b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/domain/Aftersale.java @@ -0,0 +1,73 @@ +package com.cyl.oms.domain; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 订单售后对象 oms_aftersale + * + * @author zcc + */ +@ApiModel(description="订单售后对象") +@Data +@TableName("oms_aftersale") +public class Aftersale extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("MEMBER_ID") + @Excel(name = "MEMBER_ID") + private Long memberId; + + @ApiModelProperty("订单id") + @Excel(name = "订单id") + private Long orderId; + + @ApiModelProperty("退款金额") + @Excel(name = "退款金额") + private BigDecimal returnAmount; + + @ApiModelProperty("售后类型:1:退款,2:退货退款") + @Excel(name = "售后类型:1:退款,2:退货退款") + private Integer type; + + @ApiModelProperty("申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝") + @Excel(name = "申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝") + private Integer status; + + @ApiModelProperty("处理时间") + @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime handleTime; + + @ApiModelProperty("退货数量") + @Excel(name = "退货数量") + private Integer quantity; + + @ApiModelProperty("原因") + @Excel(name = "原因") + private String reason; + + @ApiModelProperty("描述") + @Excel(name = "描述") + private String description; + + @ApiModelProperty("凭证图片,以逗号隔开") + @Excel(name = "凭证图片,以逗号隔开") + private String proofPics; + + @ApiModelProperty("处理备注") + @Excel(name = "处理备注") + private String handleNote; + + @ApiModelProperty("处理人员") + @Excel(name = "处理人员") + private String handleMan; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/domain/AftersaleItem.java b/ruoyi-mall/src/main/java/com/cyl/oms/domain/AftersaleItem.java new file mode 100644 index 0000000..ce971ae --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/domain/AftersaleItem.java @@ -0,0 +1,44 @@ +package com.cyl.oms.domain; + +import java.math.BigDecimal; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 订单售后对象 oms_aftersale_item + * + * @author zcc + */ +@ApiModel(description="订单售后对象") +@Data +@TableName("oms_aftersale_item") +public class AftersaleItem extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("MEMBER_ID") + @Excel(name = "MEMBER_ID") + private Long memberId; + + @ApiModelProperty("订单id") + @Excel(name = "订单id") + private Long orderId; + + @ApiModelProperty("子订单id") + @Excel(name = "子订单id") + private Long orderItemId; + + @ApiModelProperty("退款金额") + @Excel(name = "退款金额") + private BigDecimal returnAmount; + + @ApiModelProperty("退货数量") + @Excel(name = "退货数量") + private Integer quantity; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/domain/Order.java b/ruoyi-mall/src/main/java/com/cyl/oms/domain/Order.java index e9443c3..59745ee 100644 --- a/ruoyi-mall/src/main/java/com/cyl/oms/domain/Order.java +++ b/ruoyi-mall/src/main/java/com/cyl/oms/domain/Order.java @@ -56,7 +56,7 @@ public class Order extends BaseAudit { @ApiModelProperty("退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功") @Excel(name = "退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功") - private Integer refundStatus; + private Integer aftersaleStatus; @ApiModelProperty("物流公司(配送方式)") @Excel(name = "物流公司(配送方式)") diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/mapper/AftersaleItemMapper.java b/ruoyi-mall/src/main/java/com/cyl/oms/mapper/AftersaleItemMapper.java new file mode 100644 index 0000000..36f24d3 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/mapper/AftersaleItemMapper.java @@ -0,0 +1,21 @@ +package com.cyl.oms.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import com.cyl.oms.domain.AftersaleItem; + +/** + * 订单售后Mapper接口 + * + * @author zcc + */ +public interface AftersaleItemMapper extends BaseMapper { + /** + * 查询订单售后列表 + * + * @param aftersaleItem 订单售后 + * @return 订单售后集合 + */ + List selectByEntity(AftersaleItem aftersaleItem); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/mapper/AftersaleMapper.java b/ruoyi-mall/src/main/java/com/cyl/oms/mapper/AftersaleMapper.java new file mode 100644 index 0000000..4cbc8b4 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/mapper/AftersaleMapper.java @@ -0,0 +1,21 @@ +package com.cyl.oms.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import com.cyl.oms.domain.Aftersale; + +/** + * 订单售后Mapper接口 + * + * @author zcc + */ +public interface AftersaleMapper extends BaseMapper { + /** + * 查询订单售后列表 + * + * @param aftersale 订单售后 + * @return 订单售后集合 + */ + List selectByEntity(Aftersale aftersale); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/pojo/query/AftersaleItemQuery.java b/ruoyi-mall/src/main/java/com/cyl/oms/pojo/query/AftersaleItemQuery.java new file mode 100644 index 0000000..a927705 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/pojo/query/AftersaleItemQuery.java @@ -0,0 +1,31 @@ +package com.cyl.oms.pojo.query; + +import java.math.BigDecimal; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 订单售后 查询 对象 + * + * @author zcc + */ +@ApiModel(description="订单售后 查询 对象") +@Data +public class AftersaleItemQuery { + @ApiModelProperty("MEMBER_ID 精确匹配") + private Long memberId; + + @ApiModelProperty("订单id 精确匹配") + private Long orderId; + + @ApiModelProperty("子订单id 精确匹配") + private Long orderItemId; + + @ApiModelProperty("退款金额 精确匹配") + private BigDecimal returnAmount; + + @ApiModelProperty("退货数量 精确匹配") + private Integer quantity; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/pojo/query/AftersaleQuery.java b/ruoyi-mall/src/main/java/com/cyl/oms/pojo/query/AftersaleQuery.java new file mode 100644 index 0000000..1558c17 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/pojo/query/AftersaleQuery.java @@ -0,0 +1,53 @@ +package com.cyl.oms.pojo.query; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 订单售后 查询 对象 + * + * @author zcc + */ +@ApiModel(description="订单售后 查询 对象") +@Data +public class AftersaleQuery { + @ApiModelProperty("MEMBER_ID 精确匹配") + private Long memberId; + + @ApiModelProperty("订单id 精确匹配") + private Long orderId; + + @ApiModelProperty("退款金额 精确匹配") + private BigDecimal returnAmount; + + @ApiModelProperty("售后类型:1:退款,2:退货退款 精确匹配") + private Integer type; + + @ApiModelProperty("申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝 精确匹配") + private Integer status; + + @ApiModelProperty("处理时间 精确匹配") + private LocalDateTime handleTime; + + @ApiModelProperty("退货数量 精确匹配") + private Integer quantity; + + @ApiModelProperty("原因 精确匹配") + private String reason; + + @ApiModelProperty("描述 精确匹配") + private String description; + + @ApiModelProperty("凭证图片,以逗号隔开 精确匹配") + private String proofPics; + + @ApiModelProperty("处理备注 精确匹配") + private String handleNote; + + @ApiModelProperty("处理人员 精确匹配") + private String handleMan; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/pojo/query/OrderQuery.java b/ruoyi-mall/src/main/java/com/cyl/oms/pojo/query/OrderQuery.java index 50f04eb..0a51f80 100644 --- a/ruoyi-mall/src/main/java/com/cyl/oms/pojo/query/OrderQuery.java +++ b/ruoyi-mall/src/main/java/com/cyl/oms/pojo/query/OrderQuery.java @@ -39,7 +39,7 @@ public class OrderQuery { private Integer status; @ApiModelProperty("退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功 精确匹配") - private Integer refundStatus; + private Integer aftersaleStatus; @ApiModelProperty("物流公司 精确匹配") private String deliveryCompany; diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/pojo/vo/AftersaleItemVO.java b/ruoyi-mall/src/main/java/com/cyl/oms/pojo/vo/AftersaleItemVO.java new file mode 100644 index 0000000..4cd5c3c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/pojo/vo/AftersaleItemVO.java @@ -0,0 +1,32 @@ +package com.cyl.oms.pojo.vo; + +import java.math.BigDecimal; +import com.ruoyi.common.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 订单售后 数据视图对象 + * + * @author zcc + */ +@Data +public class AftersaleItemVO extends BaseAudit { + /** ID */ + private Long id; + /** MEMBER_ID */ + @Excel(name = "MEMBER_ID") + private Long memberId; + /** 订单id */ + @Excel(name = "订单id") + private Long orderId; + /** 子订单id */ + @Excel(name = "子订单id") + private Long orderItemId; + /** 退款金额 */ + @Excel(name = "退款金额") + private BigDecimal returnAmount; + /** 退货数量 */ + @Excel(name = "退货数量") + private Integer quantity; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/pojo/vo/AftersaleVO.java b/ruoyi-mall/src/main/java/com/cyl/oms/pojo/vo/AftersaleVO.java new file mode 100644 index 0000000..561a4d6 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/pojo/vo/AftersaleVO.java @@ -0,0 +1,55 @@ +package com.cyl.oms.pojo.vo; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.ruoyi.common.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 订单售后 数据视图对象 + * + * @author zcc + */ +@Data +public class AftersaleVO extends BaseAudit { + /** ID */ + private Long id; + /** MEMBER_ID */ + @Excel(name = "MEMBER_ID") + private Long memberId; + /** 订单id */ + @Excel(name = "订单id") + private Long orderId; + /** 退款金额 */ + @Excel(name = "退款金额") + private BigDecimal returnAmount; + /** 售后类型:1:退款,2:退货退款 */ + @Excel(name = "售后类型:1:退款,2:退货退款") + private Integer type; + /** 申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝 */ + @Excel(name = "申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝") + private Integer status; + /** 处理时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime handleTime; + /** 退货数量 */ + @Excel(name = "退货数量") + private Integer quantity; + /** 原因 */ + @Excel(name = "原因") + private String reason; + /** 描述 */ + @Excel(name = "描述") + private String description; + /** 凭证图片,以逗号隔开 */ + @Excel(name = "凭证图片,以逗号隔开") + private String proofPics; + /** 处理备注 */ + @Excel(name = "处理备注") + private String handleNote; + /** 处理人员 */ + @Excel(name = "处理人员") + private String handleMan; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/pojo/vo/OrderVO.java b/ruoyi-mall/src/main/java/com/cyl/oms/pojo/vo/OrderVO.java index 3cb17e8..6f260a2 100644 --- a/ruoyi-mall/src/main/java/com/cyl/oms/pojo/vo/OrderVO.java +++ b/ruoyi-mall/src/main/java/com/cyl/oms/pojo/vo/OrderVO.java @@ -41,7 +41,7 @@ public class OrderVO extends BaseAudit { private Integer status; /** 退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功 */ @Excel(name = "退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功") - private Integer refundStatus; + private Integer aftersaleStatus; /** 物流公司(配送方式) */ @Excel(name = "物流公司(配送方式)") private String deliveryCompany; diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/service/AftersaleItemService.java b/ruoyi-mall/src/main/java/com/cyl/oms/service/AftersaleItemService.java new file mode 100644 index 0000000..35f1f05 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/service/AftersaleItemService.java @@ -0,0 +1,103 @@ +package com.cyl.oms.service; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.List; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import com.cyl.oms.mapper.AftersaleItemMapper; +import com.cyl.oms.domain.AftersaleItem; +import com.cyl.oms.pojo.query.AftersaleItemQuery; + +/** + * 订单售后Service业务层处理 + * + * + * @author zcc + */ +@Service +public class AftersaleItemService { + @Autowired + private AftersaleItemMapper aftersaleItemMapper; + + /** + * 查询订单售后 + * + * @param id 订单售后主键 + * @return 订单售后 + */ + public AftersaleItem selectById(Long id) { + return aftersaleItemMapper.selectById(id); + } + + /** + * 查询订单售后列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 订单售后 + */ + public List selectList(AftersaleItemQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper qw = new QueryWrapper<>(); + Long memberId = query.getMemberId(); + if (memberId != null) { + qw.eq("member_id", memberId); + } + Long orderId = query.getOrderId(); + if (orderId != null) { + qw.eq("order_id", orderId); + } + Long orderItemId = query.getOrderItemId(); + if (orderItemId != null) { + qw.eq("order_item_id", orderItemId); + } + BigDecimal returnAmount = query.getReturnAmount(); + if (returnAmount != null) { + qw.eq("return_amount", returnAmount); + } + Integer quantity = query.getQuantity(); + if (quantity != null) { + qw.eq("quantity", quantity); + } + return aftersaleItemMapper.selectList(qw); + } + + /** + * 新增订单售后 + * + * @param aftersaleItem 订单售后 + * @return 结果 + */ + public int insert(AftersaleItem aftersaleItem) { + aftersaleItem.setCreateTime(LocalDateTime.now()); + return aftersaleItemMapper.insert(aftersaleItem); + } + + /** + * 修改订单售后 + * + * @param aftersaleItem 订单售后 + * @return 结果 + */ + public int update(AftersaleItem aftersaleItem) { + return aftersaleItemMapper.updateById(aftersaleItem); + } + + /** + * 删除订单售后信息 + * + * @param id 订单售后主键 + * @return 结果 + */ + public int deleteById(Long id) { + return aftersaleItemMapper.deleteById(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/service/AftersaleService.java b/ruoyi-mall/src/main/java/com/cyl/oms/service/AftersaleService.java new file mode 100644 index 0000000..d65d892 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/oms/service/AftersaleService.java @@ -0,0 +1,132 @@ +package com.cyl.oms.service; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.List; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import com.cyl.oms.mapper.AftersaleMapper; +import com.cyl.oms.domain.Aftersale; +import com.cyl.oms.pojo.query.AftersaleQuery; + +/** + * 订单售后Service业务层处理 + * + * + * @author zcc + */ +@Service +public class AftersaleService { + @Autowired + private AftersaleMapper aftersaleMapper; + + /** + * 查询订单售后 + * + * @param id 订单售后主键 + * @return 订单售后 + */ + public Aftersale selectById(Long id) { + return aftersaleMapper.selectById(id); + } + + /** + * 查询订单售后列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 订单售后 + */ + public List selectList(AftersaleQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper qw = new QueryWrapper<>(); + Long memberId = query.getMemberId(); + if (memberId != null) { + qw.eq("member_id", memberId); + } + Long orderId = query.getOrderId(); + if (orderId != null) { + qw.eq("order_id", orderId); + } + BigDecimal returnAmount = query.getReturnAmount(); + if (returnAmount != null) { + qw.eq("return_amount", returnAmount); + } + Integer type = query.getType(); + if (type != null) { + qw.eq("type", type); + } + Integer status = query.getStatus(); + if (status != null) { + qw.eq("status", status); + } + LocalDateTime handleTime = query.getHandleTime(); + if (handleTime != null) { + qw.eq("handle_time", handleTime); + } + Integer quantity = query.getQuantity(); + if (quantity != null) { + qw.eq("quantity", quantity); + } + String reason = query.getReason(); + if (!StringUtils.isEmpty(reason)) { + qw.eq("reason", reason); + } + String description = query.getDescription(); + if (!StringUtils.isEmpty(description)) { + qw.eq("description", description); + } + String proofPics = query.getProofPics(); + if (!StringUtils.isEmpty(proofPics)) { + qw.eq("proof_pics", proofPics); + } + String handleNote = query.getHandleNote(); + if (!StringUtils.isEmpty(handleNote)) { + qw.eq("handle_note", handleNote); + } + String handleMan = query.getHandleMan(); + if (!StringUtils.isEmpty(handleMan)) { + qw.eq("handle_man", handleMan); + } + return aftersaleMapper.selectList(qw); + } + + /** + * 新增订单售后 + * + * @param aftersale 订单售后 + * @return 结果 + */ + public int insert(Aftersale aftersale) { + aftersale.setCreateTime(LocalDateTime.now()); + return aftersaleMapper.insert(aftersale); + } + + /** + * 修改订单售后 + * + * @param aftersale 订单售后 + * @return 结果 + */ + public int update(Aftersale aftersale) { + return aftersaleMapper.updateById(aftersale); + } + + /** + * 删除订单售后信息 + * + * @param id 订单售后主键 + * @return 结果 + */ + public int deleteById(Long id) { + return aftersaleMapper.deleteById(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/service/OrderService.java b/ruoyi-mall/src/main/java/com/cyl/oms/service/OrderService.java index 76762c2..87c161b 100644 --- a/ruoyi-mall/src/main/java/com/cyl/oms/service/OrderService.java +++ b/ruoyi-mall/src/main/java/com/cyl/oms/service/OrderService.java @@ -80,9 +80,9 @@ public class OrderService { if (status != null) { qw.eq("status", status); } - Integer refundStatus = query.getRefundStatus(); - if (refundStatus != null) { - qw.eq("refund_status", refundStatus); + Integer aftersaleStatus = query.getAftersaleStatus(); + if (aftersaleStatus != null) { + qw.eq("aftersale_status", aftersaleStatus); } String deliveryCompany = query.getDeliveryCompany(); if (!StringUtils.isEmpty(deliveryCompany)) { diff --git a/ruoyi-mall/src/main/resources/mapper/oms/AftersaleItemMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/AftersaleItemMapper.xml new file mode 100644 index 0000000..1d1033b --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/oms/AftersaleItemMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + select id, member_id, order_id, order_item_id, return_amount, quantity, create_by, create_time, update_by, update_time from oms_aftersale_item + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml new file mode 100644 index 0000000..e00b5a8 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, member_id, order_id, return_amount, type, status, handle_time, quantity, reason, description, proof_pics, handle_note, handle_man, create_by, create_time, update_by, update_time from oms_aftersale + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml index b43995a..e9c9413 100644 --- a/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml +++ b/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml @@ -14,7 +14,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -45,7 +45,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, member_id, member_username, total_amount, purchase_price, pay_amount, freight_amount, pay_type, status, refund_status, delivery_company, delivery_sn, auto_confirm_day, receiver_name, receiver_phone, receiver_post_code, receiver_province, receiver_city, receiver_district, receiver_province_id, receiver_city_id, receiver_district_id, receiver_detail_address, note, confirm_status, delete_status, payment_time, delivery_time, receive_time, create_by, create_time, update_by, update_time from oms_order + select id, member_id, member_username, total_amount, purchase_price, pay_amount, freight_amount, pay_type, status, aftersale_status, delivery_company, delivery_sn, auto_confirm_day, receiver_name, receiver_phone, receiver_post_code, receiver_province, receiver_city, receiver_district, receiver_province_id, receiver_city_id, receiver_district_id, receiver_detail_address, note, confirm_status, delete_status, payment_time, delivery_time, receive_time, create_by, create_time, update_by, update_time from oms_order