diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminAftersaleController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminAftersaleController.java new file mode 100644 index 00000000..7ce39c77 --- /dev/null +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminAftersaleController.java @@ -0,0 +1,60 @@ +package org.linlinjava.litemall.admin.web; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc; +import org.linlinjava.litemall.core.util.JacksonUtil; +import org.linlinjava.litemall.core.util.ResponseUtil; +import org.linlinjava.litemall.core.validator.Order; +import org.linlinjava.litemall.core.validator.Sort; +import org.linlinjava.litemall.db.domain.LitemallAftersale; +import org.linlinjava.litemall.db.service.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import java.util.List; + +@RestController +@RequestMapping("/admin/aftersale") +@Validated +public class AdminAftersaleController { + private final Log logger = LogFactory.getLog(AdminAftersaleController.class); + + @Autowired + private LitemallAftersaleService aftersaleService; + @Autowired + private LitemallOrderService orderService; + @Autowired + private LitemallOrderGoodsService orderGoodsService; + + @RequiresPermissions("admin:aftersale:list") + @RequiresPermissionsDesc(menu = {"商城管理", "售后管理"}, button = "查询") + @GetMapping("/list") + public Object list(Integer orderId, String aftersaleSn, + @RequestParam(defaultValue = "1") Integer page, + @RequestParam(defaultValue = "10") Integer limit, + @Sort @RequestParam(defaultValue = "add_time") String sort, + @Order @RequestParam(defaultValue = "desc") String order) { + List aftersaleList = aftersaleService.querySelective(orderId, aftersaleSn, page, limit, sort, order); + return ResponseUtil.okList(aftersaleList); + } + + + @RequiresPermissions("admin:aftersale:delete") + @RequiresPermissionsDesc(menu = {"商城管理", "售后管理"}, button = "删除") + @PostMapping("/delete") + public Object delete(@RequestBody LitemallAftersale aftersale) { + aftersaleService.deleteById(aftersale.getId()); + return ResponseUtil.ok(); + } + + @RequiresPermissions("admin:aftersale:batch-delete") + @RequiresPermissionsDesc(menu = {"商城管理", "售后管理"}, button = "批量删除") + @PostMapping("/batch-delete") + public Object batchDelete(@RequestBody String body) { + List ids = JacksonUtil.parseIntegerList(body, "ids"); + aftersaleService.deleteByIds(ids); + return ResponseUtil.ok(); + } +} diff --git a/litemall-admin/src/api/aftersale.js b/litemall-admin/src/api/aftersale.js new file mode 100644 index 00000000..1c8eb3c8 --- /dev/null +++ b/litemall-admin/src/api/aftersale.js @@ -0,0 +1,25 @@ +import request from '@/utils/request' + +export function listAftersale(query) { + return request({ + url: '/aftersale/list', + method: 'get', + params: query + }) +} + +export function deleteAftersale(data) { + return request({ + url: '/aftersale/delete', + method: 'post', + data + }) +} + +export function batchDeleteAftersale(data) { + return request({ + url: '/aftersale/batch-delete', + method: 'post', + data + }) +} diff --git a/litemall-admin/src/router/index.js b/litemall-admin/src/router/index.js index 656f6583..7d161f26 100644 --- a/litemall-admin/src/router/index.js +++ b/litemall-admin/src/router/index.js @@ -202,6 +202,16 @@ export const asyncRouterMap = [ noCache: true } }, + { + path: 'aftersale', + component: () => import('@/views/mall/aftersale'), + name: 'aftersale', + meta: { + perms: ['GET /admin/aftersale/list', 'GET /admin/aftersale/detail', 'POST /admin/order/receive', 'POST /admin/aftersale/complete', 'POST /admin/aftersale/reject'], + title: '售后管理', + noCache: true + } + }, { path: 'issue', component: () => import('@/views/mall/issue'), diff --git a/litemall-admin/src/views/mall/aftersale.vue b/litemall-admin/src/views/mall/aftersale.vue new file mode 100644 index 00000000..0294f756 --- /dev/null +++ b/litemall-admin/src/views/mall/aftersale.vue @@ -0,0 +1,184 @@ + + +