diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminTopicController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminTopicController.java index f774efee..1c78ef46 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminTopicController.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminTopicController.java @@ -7,7 +7,9 @@ import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc; 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.LitemallGoods; import org.linlinjava.litemall.db.domain.LitemallTopic; +import org.linlinjava.litemall.db.service.LitemallGoodsService; import org.linlinjava.litemall.db.service.LitemallTopicService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; @@ -16,7 +18,10 @@ import org.springframework.web.bind.annotation.*; import javax.validation.constraints.NotNull; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; @RestController @RequestMapping("/admin/topic") @@ -26,6 +31,8 @@ public class AdminTopicController { @Autowired private LitemallTopicService topicService; + @Autowired + private LitemallGoodsService goodsService; @RequiresPermissions("admin:topic:list") @RequiresPermissionsDesc(menu={"推广管理" , "专题管理"}, button="查询") @@ -72,7 +79,18 @@ public class AdminTopicController { @GetMapping("/read") public Object read(@NotNull Integer id) { LitemallTopic topic = topicService.findById(id); - return ResponseUtil.ok(topic); + Integer[] goodsIds = topic.getGoods(); + List goodsList = null; + if(goodsIds == null || goodsIds.length == 0){ + goodsList = new ArrayList<>(); + } + else{ + goodsList = goodsService.queryByIds(goodsIds); + } + Map data = new HashMap<>(2); + data.put("topic", topic); + data.put("goodsList", goodsList); + return ResponseUtil.ok(data); } @RequiresPermissions("admin:topic:update") diff --git a/litemall-admin/src/api/topic.js b/litemall-admin/src/api/topic.js index 9b45f4f5..e1ec53c5 100644 --- a/litemall-admin/src/api/topic.js +++ b/litemall-admin/src/api/topic.js @@ -16,11 +16,11 @@ export function createTopic(data) { }) } -export function readTopic(data) { +export function readTopic(query) { return request({ url: '/topic/read', method: 'get', - data + params: query }) } diff --git a/litemall-admin/src/router/index.js b/litemall-admin/src/router/index.js index 80b7e715..d9d2c101 100644 --- a/litemall-admin/src/router/index.js +++ b/litemall-admin/src/router/index.js @@ -331,6 +331,28 @@ export const asyncRouterMap = [ noCache: true } }, + { + path: 'topic-create', + component: () => import('@/views/promotion/topicCreate'), + name: 'topicCreate', + meta: { + perms: ['POST /admin/topic/create'], + title: '专题创建', + noCache: true + }, + hidden: true + }, + { + path: 'topic-edit', + component: () => import('@/views/promotion/topicEdit'), + name: 'topicEdit', + meta: { + perms: ['GET /admin/topic/read', 'POST /admin/topic/update'], + title: '专题编辑', + noCache: true + }, + hidden: true + }, { path: 'groupon-rule', component: () => import('@/views/promotion/grouponRule'), diff --git a/litemall-admin/src/views/promotion/topic.vue b/litemall-admin/src/views/promotion/topic.vue index e5698300..f440c129 100644 --- a/litemall-admin/src/views/promotion/topic.vue +++ b/litemall-admin/src/views/promotion/topic.vue @@ -35,7 +35,7 @@ - + @@ -120,19 +82,15 @@ diff --git a/litemall-admin/src/views/promotion/topicEdit.vue b/litemall-admin/src/views/promotion/topicEdit.vue new file mode 100644 index 00000000..3c4fa7e2 --- /dev/null +++ b/litemall-admin/src/views/promotion/topicEdit.vue @@ -0,0 +1,307 @@ + + + + + diff --git a/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallGoodsService.java b/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallGoodsService.java index 2bab5662..347d4c13 100644 --- a/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallGoodsService.java +++ b/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallGoodsService.java @@ -11,6 +11,7 @@ import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; @Service @@ -247,4 +248,10 @@ public class LitemallGoodsService { example.or().andNameEqualTo(name).andIsOnSaleEqualTo(true).andDeletedEqualTo(false); return goodsMapper.countByExample(example) != 0; } + + public List queryByIds(Integer[] ids) { + LitemallGoodsExample example = new LitemallGoodsExample(); + example.or().andIdIn(Arrays.asList(ids)).andIsOnSaleEqualTo(true).andDeletedEqualTo(false); + return goodsMapper.selectByExampleSelective(example, columns); + } } diff --git a/litemall-wx/pages/topicDetail/topicDetail.wxml b/litemall-wx/pages/topicDetail/topicDetail.wxml index c58bf95f..45fd7e3a 100644 --- a/litemall-wx/pages/topicDetail/topicDetail.wxml +++ b/litemall-wx/pages/topicDetail/topicDetail.wxml @@ -7,7 +7,6 @@ 专题商品 - diff --git a/litemall-wx/pages/topicDetail/topicDetail.wxss b/litemall-wx/pages/topicDetail/topicDetail.wxss index 85b46339..29ec4fe4 100644 --- a/litemall-wx/pages/topicDetail/topicDetail.wxss +++ b/litemall-wx/pages/topicDetail/topicDetail.wxss @@ -143,6 +143,22 @@ margin-top: 20rpx; } +.topic-goods .h { + height: 93rpx; + line-height: 93rpx; + width: 720rpx; + padding-right: 30rpx; + border-bottom: 1px solid #d9d9d9; +} + +.topic-goods .h .t { + display: block; + float: left; + width: 50%; + font-size: 29rpx; + color: #333; +} + .topic-goods .b .item { border-top: 1px solid #d9d9d9; margin: 0 20rpx;