Commit a34a95f8 authored by youc's avatar youc
Browse files

Merge branch 'master' of https://gitee.com/youc-project/litemall

parents f9f41412 a697e696
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.wx.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.wx.web;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.db.domain.LitemallCategory; import org.linlinjava.litemall.db.domain.LitemallCategory;
import org.linlinjava.litemall.db.service.LitemallCategoryService; import org.linlinjava.litemall.db.service.LitemallCategoryService;
import org.linlinjava.litemall.wx.service.HomeCacheManager;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -80,6 +81,12 @@ public class WxCatalogController { ...@@ -80,6 +81,12 @@ public class WxCatalogController {
*/ */
@GetMapping("all") @GetMapping("all")
public Object queryAll() { public Object queryAll() {
//优先从缓存中读取
if (HomeCacheManager.hasData(HomeCacheManager.CATALOG)) {
return ResponseUtil.ok(HomeCacheManager.getCacheData(HomeCacheManager.CATALOG));
}
// 所有一级分类目录 // 所有一级分类目录
List<LitemallCategory> l1CatList = categoryService.queryL1(); List<LitemallCategory> l1CatList = categoryService.queryL1();
...@@ -105,6 +112,9 @@ public class WxCatalogController { ...@@ -105,6 +112,9 @@ public class WxCatalogController {
data.put("allList", allList); data.put("allList", allList);
data.put("currentCategory", currentCategory); data.put("currentCategory", currentCategory);
data.put("currentSubCategory", currentSubCategory); data.put("currentSubCategory", currentSubCategory);
//缓存数据
HomeCacheManager.loadData(HomeCacheManager.CATALOG, data);
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} }
......
...@@ -10,6 +10,7 @@ import org.linlinjava.litemall.core.validator.Sort; ...@@ -10,6 +10,7 @@ import org.linlinjava.litemall.core.validator.Sort;
import org.linlinjava.litemall.db.domain.*; import org.linlinjava.litemall.db.domain.*;
import org.linlinjava.litemall.db.service.*; import org.linlinjava.litemall.db.service.*;
import org.linlinjava.litemall.wx.annotation.LoginUser; import org.linlinjava.litemall.wx.annotation.LoginUser;
import org.linlinjava.litemall.wx.service.HomeCacheManager;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -54,6 +55,8 @@ public class WxGoodsController { ...@@ -54,6 +55,8 @@ public class WxGoodsController {
private LitemallSearchHistoryService searchHistoryService; private LitemallSearchHistoryService searchHistoryService;
@Autowired @Autowired
private LitemallGoodsSpecificationService goodsSpecificationService; private LitemallGoodsSpecificationService goodsSpecificationService;
@Autowired
private LitemallGrouponRulesService rulesService;
/** /**
...@@ -123,6 +126,9 @@ public class WxGoodsController { ...@@ -123,6 +126,9 @@ public class WxGoodsController {
commentList.put("count", commentCount); commentList.put("count", commentCount);
commentList.put("data", commentsVo); commentList.put("data", commentsVo);
//团购信息
List<LitemallGrouponRules> rules = rulesService.queryByGoodsId(id);
// 用户收藏 // 用户收藏
int userHasCollect = 0; int userHasCollect = 0;
if (userId != null) { if (userId != null) {
...@@ -147,10 +153,10 @@ public class WxGoodsController { ...@@ -147,10 +153,10 @@ public class WxGoodsController {
data.put("productList", productList); data.put("productList", productList);
data.put("attribute", goodsAttributeList); data.put("attribute", goodsAttributeList);
data.put("brand", brand); data.put("brand", brand);
data.put("groupon", rules);
//商品分享图片地址 //商品分享图片地址
data.put("shareImage", info.getShareUrl()); data.put("shareImage", info.getShareUrl());
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} }
...@@ -231,7 +237,7 @@ public class WxGoodsController { ...@@ -231,7 +237,7 @@ public class WxGoodsController {
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer size, @RequestParam(defaultValue = "10") Integer size,
@Sort(accepts = {"add_time", "retail_price"}) @RequestParam(defaultValue = "add_time") String sort, @Sort(accepts = {"add_time", "retail_price"}) @RequestParam(defaultValue = "add_time") String sort,
@Order @RequestParam(defaultValue = "desc") String order){ @Order @RequestParam(defaultValue = "desc") String order) {
//添加到搜索历史 //添加到搜索历史
if (userId != null && !StringUtils.isNullOrEmpty(keyword)) { if (userId != null && !StringUtils.isNullOrEmpty(keyword)) {
......
...@@ -4,12 +4,14 @@ import org.linlinjava.litemall.core.util.ResponseUtil; ...@@ -4,12 +4,14 @@ import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.db.domain.*; import org.linlinjava.litemall.db.domain.*;
import org.linlinjava.litemall.db.service.*; import org.linlinjava.litemall.db.service.*;
import org.linlinjava.litemall.core.system.SystemConfig; import org.linlinjava.litemall.core.system.SystemConfig;
import org.linlinjava.litemall.wx.service.HomeCacheManager;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -29,6 +31,20 @@ public class WxHomeController { ...@@ -29,6 +31,20 @@ public class WxHomeController {
private LitemallTopicService topicService; private LitemallTopicService topicService;
@Autowired @Autowired
private LitemallCategoryService categoryService; private LitemallCategoryService categoryService;
@Autowired
private LitemallGrouponRulesService grouponRulesService;
@GetMapping("/cache")
public Object cache(@NotNull String key) {
if (!key.equals("litemall_cache")) {
return ResponseUtil.fail();
}
// 清除缓存
HomeCacheManager.clearAll();
return ResponseUtil.ok("缓存已清除");
}
/** /**
* app首页 * app首页
...@@ -52,6 +68,12 @@ public class WxHomeController { ...@@ -52,6 +68,12 @@ public class WxHomeController {
*/ */
@GetMapping("/index") @GetMapping("/index")
public Object index() { public Object index() {
//优先从缓存中读取
if (HomeCacheManager.hasData(HomeCacheManager.INDEX)) {
return ResponseUtil.ok(HomeCacheManager.getCacheData(HomeCacheManager.INDEX));
}
Map<String, Object> data = new HashMap<>(); Map<String, Object> data = new HashMap<>();
List<LitemallAd> banner = adService.queryIndex(); List<LitemallAd> banner = adService.queryIndex();
...@@ -72,6 +94,26 @@ public class WxHomeController { ...@@ -72,6 +94,26 @@ public class WxHomeController {
List<LitemallTopic> topicList = topicService.queryList(0, SystemConfig.getTopicLimit()); List<LitemallTopic> topicList = topicService.queryList(0, SystemConfig.getTopicLimit());
data.put("topicList", topicList); data.put("topicList", topicList);
//优惠专区
List<LitemallGrouponRules> grouponRules = grouponRulesService.queryByIndex(0, 4);
List<LitemallGoods> grouponGoods = new ArrayList<>();
List<Map<String, Object>> grouponList = new ArrayList<>();
for (LitemallGrouponRules rule : grouponRules) {
LitemallGoods goods = goodsService.findById(rule.getGoodsId());
if (goods == null)
continue;
if (!grouponGoods.contains(goods)) {
Map<String, Object> item = new HashMap<>();
item.put("goods", goods);
item.put("groupon_price", goods.getRetailPrice().subtract(rule.getDiscount()));
item.put("groupon_member", rule.getDiscountMember());
grouponList.add(item);
grouponGoods.add(goods);
}
}
data.put("grouponList", grouponList);
List<Map> categoryList = new ArrayList<>(); List<Map> categoryList = new ArrayList<>();
List<LitemallCategory> catL1List = categoryService.queryL1WithoutRecommend(0, SystemConfig.getCatlogListLimit()); List<LitemallCategory> catL1List = categoryService.queryL1WithoutRecommend(0, SystemConfig.getCatlogListLimit());
for (LitemallCategory catL1 : catL1List) { for (LitemallCategory catL1 : catL1List) {
...@@ -96,6 +138,8 @@ public class WxHomeController { ...@@ -96,6 +138,8 @@ public class WxHomeController {
} }
data.put("floorGoodsList", categoryList); data.put("floorGoodsList", categoryList);
//缓存数据
HomeCacheManager.loadData(HomeCacheManager.INDEX, data);
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} }
} }
\ No newline at end of file
...@@ -30,7 +30,9 @@ ...@@ -30,7 +30,9 @@
"pages/cart/cart", "pages/cart/cart",
"pages/checkout/checkout", "pages/checkout/checkout",
"pages/goods/goods", "pages/goods/goods",
"pages/about/about" "pages/about/about",
"pages/groupon/myGroupon/myGroupon",
"pages/groupon/grouponDetail/grouponDetail"
], ],
"window": { "window": {
"navigationBarBackgroundColor": "#FFFFFF", "navigationBarBackgroundColor": "#FFFFFF",
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
// 局域网测试使用 // 局域网测试使用
// var WxApiRoot = 'http://192.168.0.101:8080/wx/'; // var WxApiRoot = 'http://192.168.0.101:8080/wx/';
// 云平台部署时使用 // 云平台部署时使用
var WxApiRoot = 'http://122.152.206.172:8080/wx/'; // var WxApiRoot = 'http://122.152.206.172:8080/wx/';
// 云平台上线时使用 // 云平台上线时使用
// var WxApiRoot = 'https://www.menethil.com.cn/wx/'; var WxApiRoot = 'https://www.menethil.com.cn/wx/';
module.exports = { module.exports = {
IndexUrl: WxApiRoot + 'home/index', //首页数据接口 IndexUrl: WxApiRoot + 'home/index', //首页数据接口
...@@ -79,5 +79,9 @@ module.exports = { ...@@ -79,5 +79,9 @@ module.exports = {
UserFormIdCreate: WxApiRoot + 'formid/create', //用户FromId,用于发送模版消息 UserFormIdCreate: WxApiRoot + 'formid/create', //用户FromId,用于发送模版消息
GroupOn: WxApiRoot + 'groupon/query', //团购API-查询
GroupOnMy: WxApiRoot + 'groupon/my', //团购API-我的团购
GroupOnDetail: WxApiRoot + 'groupon/detail', //团购API-详情
GroupOnJoin: WxApiRoot + 'groupon/join', //团购API-详情
StorageUpload: WxApiRoot + 'storage/upload' //图片上传 StorageUpload: WxApiRoot + 'storage/upload' //图片上传
}; };
\ No newline at end of file
'use strict';
Component({
externalClasses: ['custom-class'],
/**
* 组件的属性列表
* 用于组件自定义设置
*/
properties: {
// 颜色状态
type: {
type: String,
value: ''
},
// 自定义颜色
color: {
type: String,
value: ''
},
// 左侧内容
leftText: {
type: String,
value: ''
},
// 右侧内容
rightText: {
type: String,
value: ''
}
}
});
\ No newline at end of file
<view class="custom-class zan-capsule zan-capsule--{{type}}">
<block wx:if="{{color}}">
<view class="zan-capsule__left" style="background: {{ color }}; border-color: {{ color }}">{{ leftText }}</view>
<view class="zan-capsule__right" style="color: {{ color }}; border-color: {{ color }}">{{ rightText }}</view>
</block>
<block wx:else>
<view class="zan-capsule__left">{{ leftText }}</view>
<view class="zan-capsule__right">{{ rightText }}</view>
</block>
</view>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -71,10 +71,23 @@ ...@@ -71,10 +71,23 @@
} }
.goods-info .price { .goods-info .price {
height: 35rpx; height: 70rpx;
font-size: 35rpx; align-content: center;
line-height: 35rpx; }
color: #b4282d;
.goods-info .counterPrice {
float: left;
padding-left: 120rpx;
text-decoration: line-through;
font-size: 30rpx;
color: #999;
}
.goods-info .retailPrice {
/* float: right; */
padding-left: 60rpx;
font-size: 30rpx;
color: #a78845;
} }
.goods-info .brand { .goods-info .brand {
...@@ -418,6 +431,7 @@ ...@@ -418,6 +431,7 @@
width: 750rpx; width: 750rpx;
height: auto; height: auto;
overflow: hidden; overflow: hidden;
padding-bottom: 80rpx;
} }
.related-goods .h { .related-goods .h {
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment