Merge pull request '首页逻辑实现' (#7) from main-cx into main

Reviewed-on: #7
This commit is contained in:
2025-02-18 17:09:24 +08:00
7 changed files with 476 additions and 332 deletions

View File

@@ -3,12 +3,7 @@ package com.buy507.mall.portal.controller;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.buy507.mall.common.api.CommonResult; import com.buy507.mall.common.api.CommonResult;
import com.buy507.mall.model.PmsProduct; import com.buy507.mall.model.PmsProduct;
@@ -96,4 +91,30 @@ public class HomeController {
return CommonResult.success(productSku); return CommonResult.success(productSku);
} }
@ApiOperation("获取会员专区商品")
@RequestMapping(value = "/getVipProductList", method = RequestMethod.GET)
@ResponseBody
public CommonResult<List<PmsProduct>> getVipProductList(){
List<PmsProduct> productList = homeService.getVipProductList();
return CommonResult.success(productList);
}
@ApiOperation("获取积分专区商品")
@RequestMapping(value = "/getPointProductList", method = RequestMethod.GET)
@ResponseBody
public CommonResult<List<PmsProduct>> getPointProductList(){
List<PmsProduct> productList = homeService.getPointProductList();
return CommonResult.success(productList);
}
@ApiOperation("获取积分兑换专区")
@RequestMapping(value = "/getPointExchangeProductList", method = RequestMethod.GET)
@ResponseBody
public CommonResult<List<PmsProduct>> getPointExchangeProductList(){
List<PmsProduct> productList = homeService.getPointExchangeProductList();
return CommonResult.success(productList);
}
} }

View File

@@ -40,4 +40,34 @@ public interface HomeDao {
* 获取所有商品信息按销量排序 * 获取所有商品信息按销量排序
*/ */
List<PmsProduct> getAllPioductList(); List<PmsProduct> getAllPioductList();
/**
* 获取会员专区
*/
List<PmsProduct> getProductVipStatus(@Param("offset") Integer offset,@Param("limit") Integer limit);
/**
* 获取积分专区
*/
List<PmsProduct> getProductpointSareaStatus(@Param("offset") Integer offset,@Param("limit") Integer limit);
/**
* 获取积分兑换专区
*/
List<PmsProduct> getProductpointsExchangeStatus(@Param("offset") Integer offset,@Param("limit") Integer limit);
/**
* 获取会员专区详情
*/
List<PmsProduct> getVipStatusList();
/**
*获取积分专区商品
*/
List<PmsProduct> getPointStatusList();
/**
*获取积分兑换专区商品
*/
List<PmsProduct> getPointExchangeProductList();
} }

View File

@@ -27,6 +27,12 @@ public class HomeContentResult {
private List<PmsProduct> hotProductList; private List<PmsProduct> hotProductList;
//推荐专题 //推荐专题
private List<CmsSubject> subjectList; private List<CmsSubject> subjectList;
//会员专区
private List<PmsProduct> vipProductList;
//积分专区
private List<PmsProduct> pointsAreaProductList;
//积分兑换专区
private List<PmsProduct> pointsExchangeProductList;
//查询所有商品按销量排序 //查询所有商品按销量排序
private List<PmsProduct> allProductList; private List<PmsProduct> allProductList;
} }

View File

@@ -40,9 +40,21 @@ public interface HomeService {
* @param productId * @param productId
* @return * @return
*/ */
/**
* 获取会员专区商品
* @param
* @return
*/
List<PmsProduct> getVipProductList();
ProductDetailResult getProductInfo(Long productId); ProductDetailResult getProductInfo(Long productId);
ProductSkuResult getProductSku(Long productId, String sp1, String sp2, String sp3); ProductSkuResult getProductSku(Long productId, String sp1, String sp2, String sp3);
List<PmsProduct> getProductList(Long brandId, Long categoryId, String sortType, Integer pageSize, Integer pageNum); List<PmsProduct> getProductList(Long brandId, Long categoryId, String sortType, Integer pageSize, Integer pageNum);
List<PmsProduct> getPointProductList();
List<PmsProduct> getPointExchangeProductList();
} }

View File

@@ -67,232 +67,262 @@ import com.github.pagehelper.PageHelper;
*/ */
@Service @Service
public class HomeServiceImpl implements HomeService { public class HomeServiceImpl implements HomeService {
@Autowired @Autowired
private SmsHomeAdvertiseMapper advertiseMapper; private SmsHomeAdvertiseMapper advertiseMapper;
@Autowired @Autowired
private HomeDao homeDao; private HomeDao homeDao;
@Autowired @Autowired
private SmsFlashPromotionMapper flashPromotionMapper; private SmsFlashPromotionMapper flashPromotionMapper;
@Autowired @Autowired
private SmsFlashPromotionSessionMapper promotionSessionMapper; private SmsFlashPromotionSessionMapper promotionSessionMapper;
@Autowired @Autowired
private PmsProductMapper productMapper; private PmsProductMapper productMapper;
@Autowired @Autowired
private PmsProductCategoryMapper productCategoryMapper; private PmsProductCategoryMapper productCategoryMapper;
@Autowired @Autowired
private CmsSubjectMapper subjectMapper; private CmsSubjectMapper subjectMapper;
@Autowired @Autowired
private PmsCommentReplayMapper pmsCommentReplayMapper; private PmsCommentReplayMapper pmsCommentReplayMapper;
@Autowired @Autowired
private PmsCommentMapper pmsCommentMapper; private PmsCommentMapper pmsCommentMapper;
@Autowired @Autowired
private PmsProductFullReductionMapper pmsProductFullReductionMapper; private PmsProductFullReductionMapper pmsProductFullReductionMapper;
@Autowired @Autowired
private PmsProductAttributeMapper pmsProductAttributeMapper; private PmsProductAttributeMapper pmsProductAttributeMapper;
@Autowired @Autowired
private PmsProductAttributeValueMapper productAttributeValueMapper; private PmsProductAttributeValueMapper productAttributeValueMapper;
@Autowired @Autowired
private MemberProductCollectionRepository productCollectionRepository; private MemberProductCollectionRepository productCollectionRepository;
@Autowired @Autowired
private PmsSkuStockMapper skuStockMapper; private PmsSkuStockMapper skuStockMapper;
@Autowired @Autowired
private UmsMemberService memberService; private UmsMemberService memberService;
@Autowired @Autowired
private PortalCommonService commonService; private PortalCommonService commonService;
@Override @Override
public HomeContentResult content() { public HomeContentResult content() {
HomeContentResult result = new HomeContentResult(); HomeContentResult result = new HomeContentResult();
//获取首页广告 //获取首页广告
result.setAdvertiseList(getHomeAdvertiseList()); result.setAdvertiseList(getHomeAdvertiseList());
//获取推荐品牌 //获取推荐品牌
result.setBrandList(homeDao.getRecommendBrandList(0,4)); result.setBrandList(homeDao.getRecommendBrandList(0, 4));
//获取秒杀信息 //获取秒杀信息
result.setHomeFlashPromotion(getHomeFlashPromotion()); result.setHomeFlashPromotion(getHomeFlashPromotion());
List<PmsProduct> newProductList = homeDao.getNewProductList(0, 4); List<PmsProduct> VipProductList = homeDao.getProductVipStatus(0, 4);
List<PmsProduct> hotProductList = homeDao.getHotProductList(0, 4); List<PmsProduct> PointAreaProductList = homeDao.getProductpointSareaStatus(0, 4);
List<PmsProduct> allProductList = homeDao.getAllPioductList(); List<PmsProduct> pointsExchangeProductList = homeDao.getProductpointsExchangeStatus(0, 4);
List<PmsProduct> allProductList = homeDao.getAllPioductList();
//根据会员等级显示不同的商品价格 //根据会员等级显示不同的商品价格
UmsMember member = memberService.getCurrentMember(); UmsMember member = memberService.getCurrentMember();
if(member != null) { if (member != null) {
BigDecimal discount = commonService.getDiscount(member.getId()); BigDecimal discount = commonService.getDiscount(member.getId());
if(discount != null) { if (discount != null) {
for(PmsProduct product : newProductList) { for (PmsProduct product : VipProductList) {
product.setPrice(product.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP)); product.setPrice(product.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP));
} }
for(PmsProduct product : hotProductList) { for (PmsProduct product : PointAreaProductList) {
product.setPrice(product.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP)); product.setPrice(product.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP));
} }
for(PmsProduct product : allProductList) { for (PmsProduct product : pointsExchangeProductList) {
product.setPrice(product.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP)); product.setPrice(product.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP));
} }
} for (PmsProduct product : allProductList) {
} product.setPrice(product.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP));
}
}
}
//获取新品推荐 //获取会员商品
result.setNewProductList(newProductList); result.setVipProductList(VipProductList);
//获取人气推荐 //获取积分专区商品
result.setHotProductList(hotProductList); result.setPointsAreaProductList(PointAreaProductList);
//获取推荐专题 //获取积分兑换商品
//result.setSubjectList(homeDao.getRecommendSubjectList(0,4)); result.setPointsExchangeProductList(pointsExchangeProductList);
//获取上次所有商品,按销量排序 //获取推荐专题
result.setAllProductList(allProductList); //result.setSubjectList(homeDao.getRecommendSubjectList(0,4));
return result; //获取上次所有商品,按销量排序
} result.setAllProductList(allProductList);
return result;
}
@Override @Override
public List<PmsProduct> recommendProductList(Integer pageSize, Integer pageNum) { public List<PmsProduct> recommendProductList(Integer pageSize, Integer pageNum) {
// TODO: 2019/1/29 暂时默认推荐所有商品 // TODO: 2019/1/29 暂时默认推荐所有商品
PageHelper.startPage(pageNum,pageSize); PageHelper.startPage(pageNum, pageSize);
PmsProductExample example = new PmsProductExample(); PmsProductExample example = new PmsProductExample();
example.createCriteria() example.createCriteria()
.andDeleteStatusEqualTo(0) .andDeleteStatusEqualTo(0)
.andPublishStatusEqualTo(1); .andPublishStatusEqualTo(1);
return productMapper.selectByExample(example); return productMapper.selectByExample(example);
} }
@Override @Override
public List<ProductCategoryOptions> getProductCateList() { public List<ProductCategoryOptions> getProductCateList() {
PmsProductCategoryExample example = new PmsProductCategoryExample(); PmsProductCategoryExample example = new PmsProductCategoryExample();
example.createCriteria() example.createCriteria()
.andShowStatusEqualTo(1); .andShowStatusEqualTo(1);
example.setOrderByClause("sort desc"); example.setOrderByClause("sort desc");
List<PmsProductCategory> productCategories = productCategoryMapper.selectByExample(example); List<PmsProductCategory> productCategories = productCategoryMapper.selectByExample(example);
List<ProductCategoryOptions> options = new ArrayList<>(); List<ProductCategoryOptions> options = new ArrayList<>();
for(PmsProductCategory category : productCategories) { for (PmsProductCategory category : productCategories) {
//我们这里最大的根节点ID是0所以找出所有parent id为0的节点然后调用我们的递归算法 //我们这里最大的根节点ID是0所以找出所有parent id为0的节点然后调用我们的递归算法
if(category.getParentId().equals(0L)){ if (category.getParentId().equals(0L)) {
options.add(recursionCategory(category, productCategories)); options.add(recursionCategory(category, productCategories));
} }
} }
return options; return options;
} }
private ProductCategoryOptions recursionCategory(PmsProductCategory category, List<PmsProductCategory> list) { /**
List<ProductCategoryOptions> childList = new ArrayList<>(); *获取会员专区商品
// 为每一个父节点增加子树List形式没有则为空的list */
ProductCategoryOptions node = new ProductCategoryOptions(); @Override
node.setId(category.getId()); public List<PmsProduct> getVipProductList() {
node.setName(category.getName()); return homeDao.getVipStatusList();
node.setLevel(category.getLevel()); }
node.setIcon(category.getIcon());
node.setPid(category.getParentId());
for (PmsProductCategory childCategory : list){
//如果子节点的pid等于父节点的ID则说明是父子关系
if(childCategory.getParentId().equals(category.getId())){
// 继续调用递归算法,将当前作为父节点,继续找他的子节点,反复执行。
childList.add(recursionCategory(childCategory, list));
}
}
// 当遍历完成,返回调用的节点 /**
if(!childList.isEmpty()) { *获取积分专区商品
node.setChildren(childList); */
} else { @Override
node.setChildren(null); public List<PmsProduct> getPointProductList() {
} return homeDao.getPointStatusList();
return node; }
}
@Override /**
public List<CmsSubject> getSubjectList(Long cateId, Integer pageSize, Integer pageNum) { *获取积分兑换专区
PageHelper.startPage(pageNum,pageSize); */
CmsSubjectExample example = new CmsSubjectExample(); @Override
CmsSubjectExample.Criteria criteria = example.createCriteria(); public List<PmsProduct> getPointExchangeProductList() {
criteria.andShowStatusEqualTo(1); return homeDao.getPointExchangeProductList();
if(cateId!=null){ }
criteria.andCategoryIdEqualTo(cateId); private ProductCategoryOptions recursionCategory(PmsProductCategory category, List<PmsProductCategory> list) {
} List<ProductCategoryOptions> childList = new ArrayList<>();
return subjectMapper.selectByExample(example); // 为每一个父节点增加子树List形式没有则为空的list
} ProductCategoryOptions node = new ProductCategoryOptions();
node.setId(category.getId());
node.setName(category.getName());
node.setLevel(category.getLevel());
node.setIcon(category.getIcon());
node.setPid(category.getParentId());
for (PmsProductCategory childCategory : list) {
//如果子节点的pid等于父节点的ID则说明是父子关系
if (childCategory.getParentId().equals(category.getId())) {
// 继续调用递归算法,将当前作为父节点,继续找他的子节点,反复执行。
childList.add(recursionCategory(childCategory, list));
}
}
private HomeFlashPromotion getHomeFlashPromotion() { // 当遍历完成,返回调用的节点
HomeFlashPromotion homeFlashPromotion = new HomeFlashPromotion(); if (!childList.isEmpty()) {
//获取当前秒杀活动 node.setChildren(childList);
Date now = new Date(); } else {
SmsFlashPromotion flashPromotion = getFlashPromotion(now); node.setChildren(null);
if (flashPromotion != null) { }
//获取当前秒杀场次 return node;
SmsFlashPromotionSession flashPromotionSession = getFlashPromotionSession(now); }
if (flashPromotionSession != null) {
homeFlashPromotion.setStartTime(flashPromotionSession.getStartTime());
homeFlashPromotion.setEndTime(flashPromotionSession.getEndTime());
homeFlashPromotion.setName(flashPromotion.getTitle());
//获取下一个秒杀场次
SmsFlashPromotionSession nextSession = getNextFlashPromotionSession(homeFlashPromotion.getStartTime());
if(nextSession!=null){
homeFlashPromotion.setNextStartTime(nextSession.getStartTime());
homeFlashPromotion.setNextEndTime(nextSession.getEndTime());
}
//获取秒杀商品
List<FlashPromotionProduct> flashProductList = homeDao.getFlashProductList(flashPromotion.getId(), flashPromotionSession.getId());
homeFlashPromotion.setProductList(flashProductList);
}
}
return homeFlashPromotion;
}
//获取下一个场次信息 @Override
private SmsFlashPromotionSession getNextFlashPromotionSession(Date date) { public List<CmsSubject> getSubjectList(Long cateId, Integer pageSize, Integer pageNum) {
SmsFlashPromotionSessionExample sessionExample = new SmsFlashPromotionSessionExample(); PageHelper.startPage(pageNum, pageSize);
sessionExample.createCriteria() CmsSubjectExample example = new CmsSubjectExample();
.andStartTimeGreaterThan(date); CmsSubjectExample.Criteria criteria = example.createCriteria();
sessionExample.setOrderByClause("start_time asc"); criteria.andShowStatusEqualTo(1);
List<SmsFlashPromotionSession> promotionSessionList = promotionSessionMapper.selectByExample(sessionExample); if (cateId != null) {
if (!CollectionUtils.isEmpty(promotionSessionList)) { criteria.andCategoryIdEqualTo(cateId);
return promotionSessionList.get(0); }
} return subjectMapper.selectByExample(example);
return null; }
}
private List<SmsHomeAdvertise> getHomeAdvertiseList() { private HomeFlashPromotion getHomeFlashPromotion() {
SmsHomeAdvertiseExample example = new SmsHomeAdvertiseExample(); HomeFlashPromotion homeFlashPromotion = new HomeFlashPromotion();
example.createCriteria().andTypeEqualTo(1).andStatusEqualTo(1); //获取当前秒杀活动
example.setOrderByClause("sort desc"); Date now = new Date();
return advertiseMapper.selectByExample(example); SmsFlashPromotion flashPromotion = getFlashPromotion(now);
} if (flashPromotion != null) {
//获取当前秒杀场次
SmsFlashPromotionSession flashPromotionSession = getFlashPromotionSession(now);
if (flashPromotionSession != null) {
homeFlashPromotion.setStartTime(flashPromotionSession.getStartTime());
homeFlashPromotion.setEndTime(flashPromotionSession.getEndTime());
homeFlashPromotion.setName(flashPromotion.getTitle());
//获取下一个秒杀场次
SmsFlashPromotionSession nextSession = getNextFlashPromotionSession(homeFlashPromotion.getStartTime());
if (nextSession != null) {
homeFlashPromotion.setNextStartTime(nextSession.getStartTime());
homeFlashPromotion.setNextEndTime(nextSession.getEndTime());
}
//获取秒杀商品
List<FlashPromotionProduct> flashProductList = homeDao.getFlashProductList(flashPromotion.getId(), flashPromotionSession.getId());
homeFlashPromotion.setProductList(flashProductList);
}
}
return homeFlashPromotion;
}
//根据时间获取秒杀活动 //获取下一个场次信息
private SmsFlashPromotion getFlashPromotion(Date date) { private SmsFlashPromotionSession getNextFlashPromotionSession(Date date) {
Date currDate = DateUtil.getDate(date); SmsFlashPromotionSessionExample sessionExample = new SmsFlashPromotionSessionExample();
SmsFlashPromotionExample example = new SmsFlashPromotionExample(); sessionExample.createCriteria()
example.createCriteria() .andStartTimeGreaterThan(date);
.andStatusEqualTo(1) sessionExample.setOrderByClause("start_time asc");
.andStartDateLessThanOrEqualTo(currDate) List<SmsFlashPromotionSession> promotionSessionList = promotionSessionMapper.selectByExample(sessionExample);
.andEndDateGreaterThanOrEqualTo(currDate); if (!CollectionUtils.isEmpty(promotionSessionList)) {
List<SmsFlashPromotion> flashPromotionList = flashPromotionMapper.selectByExample(example); return promotionSessionList.get(0);
if (!CollectionUtils.isEmpty(flashPromotionList)) { }
return flashPromotionList.get(0); return null;
} }
return null;
}
//根据时间获取秒杀场次 private List<SmsHomeAdvertise> getHomeAdvertiseList() {
private SmsFlashPromotionSession getFlashPromotionSession(Date date) { SmsHomeAdvertiseExample example = new SmsHomeAdvertiseExample();
Date currTime = DateUtil.getTime(date); example.createCriteria().andTypeEqualTo(1).andStatusEqualTo(1);
SmsFlashPromotionSessionExample sessionExample = new SmsFlashPromotionSessionExample(); example.setOrderByClause("sort desc");
sessionExample.createCriteria() return advertiseMapper.selectByExample(example);
.andStartTimeLessThanOrEqualTo(currTime) }
.andEndTimeGreaterThanOrEqualTo(currTime);
List<SmsFlashPromotionSession> promotionSessionList = promotionSessionMapper.selectByExample(sessionExample); //根据时间获取秒杀活动
if (!CollectionUtils.isEmpty(promotionSessionList)) { private SmsFlashPromotion getFlashPromotion(Date date) {
return promotionSessionList.get(0); Date currDate = DateUtil.getDate(date);
} SmsFlashPromotionExample example = new SmsFlashPromotionExample();
return null; example.createCriteria()
} .andStatusEqualTo(1)
//获取商品详情 .andStartDateLessThanOrEqualTo(currDate)
.andEndDateGreaterThanOrEqualTo(currDate);
List<SmsFlashPromotion> flashPromotionList = flashPromotionMapper.selectByExample(example);
if (!CollectionUtils.isEmpty(flashPromotionList)) {
return flashPromotionList.get(0);
}
return null;
}
//根据时间获取秒杀场次
private SmsFlashPromotionSession getFlashPromotionSession(Date date) {
Date currTime = DateUtil.getTime(date);
SmsFlashPromotionSessionExample sessionExample = new SmsFlashPromotionSessionExample();
sessionExample.createCriteria()
.andStartTimeLessThanOrEqualTo(currTime)
.andEndTimeGreaterThanOrEqualTo(currTime);
List<SmsFlashPromotionSession> promotionSessionList = promotionSessionMapper.selectByExample(sessionExample);
if (!CollectionUtils.isEmpty(promotionSessionList)) {
return promotionSessionList.get(0);
}
return null;
}
//获取商品详情
@Override @Override
public ProductDetailResult getProductInfo(Long productId) { public ProductDetailResult getProductInfo(Long productId) {
PmsProduct product = productMapper.selectByPrimaryKey(productId); PmsProduct product = productMapper.selectByPrimaryKey(productId);
@@ -301,15 +331,15 @@ public class HomeServiceImpl implements HomeService {
List<String> result = Arrays.asList(detailResult.getAlbumPics().toString().split(",")); List<String> result = Arrays.asList(detailResult.getAlbumPics().toString().split(","));
detailResult.setListAlbumPics(result); detailResult.setListAlbumPics(result);
detailResult.setAlbumPics(null); detailResult.setAlbumPics(null);
PmsProductFullReduction ppFullReduction =(PmsProductFullReduction)pmsProductFullReductionMapper.getPmsProductFullReduction(productId); PmsProductFullReduction ppFullReduction = (PmsProductFullReduction) pmsProductFullReductionMapper.getPmsProductFullReduction(productId);
detailResult.setPmsProductFullReduction(ppFullReduction);//满减商品 detailResult.setPmsProductFullReduction(ppFullReduction);//满减商品
UmsMember currentMember = memberService.getCurrentMember();//获取用户信息 UmsMember currentMember = memberService.getCurrentMember();//获取用户信息
if(currentMember == null) { if (currentMember == null) {
detailResult.setWhetherTheCollection(0);//默认商品未收藏1代表收藏 detailResult.setWhetherTheCollection(0);//默认商品未收藏1代表收藏
} else { } else {
for(MemberProductCollection scproduct:productCollectionRepository.findByMemberId(currentMember.getId())){ for (MemberProductCollection scproduct : productCollectionRepository.findByMemberId(currentMember.getId())) {
if(productId==scproduct.getProductId()){ if (productId == scproduct.getProductId()) {
detailResult.setWhetherTheCollection(1); detailResult.setWhetherTheCollection(1);
} }
} }
@@ -323,9 +353,9 @@ public class HomeServiceImpl implements HomeService {
List<ProductAttributeResult> specChildList = new ArrayList<>(); List<ProductAttributeResult> specChildList = new ArrayList<>();
ProductAttributeResult spec = null; ProductAttributeResult spec = null;
ProductAttributeResult specChild = null; ProductAttributeResult specChild = null;
String array [] = null; String array[] = null;
for(PmsProductAttribute attribute : attributeList) { for (PmsProductAttribute attribute : attributeList) {
spec = new ProductAttributeResult(); spec = new ProductAttributeResult();
spec.setId(attribute.getId()); spec.setId(attribute.getId());
spec.setName(attribute.getName()); spec.setName(attribute.getName());
@@ -333,9 +363,9 @@ public class HomeServiceImpl implements HomeService {
//属性录入方式0->手工录入1->从列表中选取 //属性录入方式0->手工录入1->从列表中选取
//是否支持手动新增0->不支持1->支持 //是否支持手动新增0->不支持1->支持
if(1 == attribute.getInputType() && 0 == attribute.getHandAddStatus()) { if (1 == attribute.getInputType() && 0 == attribute.getHandAddStatus()) {
array = attribute.getInputList().split(","); array = attribute.getInputList().split(",");
for(int i=0; i<array.length; i++) { for (int i = 0; i < array.length; i++) {
specChild = new ProductAttributeResult(); specChild = new ProductAttributeResult();
specChild.setPid(attribute.getId()); specChild.setPid(attribute.getId());
specChild.setName(array[i]); specChild.setName(array[i]);
@@ -345,9 +375,9 @@ public class HomeServiceImpl implements HomeService {
PmsProductAttributeValueExample attributeValueExample = new PmsProductAttributeValueExample(); PmsProductAttributeValueExample attributeValueExample = new PmsProductAttributeValueExample();
attributeValueExample.createCriteria().andProductIdEqualTo(product.getId()).andProductAttributeIdEqualTo(attribute.getId()); attributeValueExample.createCriteria().andProductIdEqualTo(product.getId()).andProductAttributeIdEqualTo(attribute.getId());
List<PmsProductAttributeValue> attributeValueList = productAttributeValueMapper.selectByExample(attributeValueExample); List<PmsProductAttributeValue> attributeValueList = productAttributeValueMapper.selectByExample(attributeValueExample);
for(PmsProductAttributeValue value : attributeValueList) { for (PmsProductAttributeValue value : attributeValueList) {
array = value.getValue().split(","); array = value.getValue().split(",");
for(String s : array) { for (String s : array) {
specChild = new ProductAttributeResult(); specChild = new ProductAttributeResult();
specChild.setPid(attribute.getId()); specChild.setPid(attribute.getId());
specChild.setName(s); specChild.setName(s);
@@ -359,27 +389,27 @@ public class HomeServiceImpl implements HomeService {
detailResult.setSpecList(specList); detailResult.setSpecList(specList);
detailResult.setSpecChildList(specChildList); detailResult.setSpecChildList(specChildList);
List<PmsComment> pmsComment =(List<PmsComment>) pmsCommentMapper.getPmsComment(productId);//评论基础信息 List<PmsComment> pmsComment = (List<PmsComment>) pmsCommentMapper.getPmsComment(productId);//评论基础信息
if(pmsComment.size()>0){ if (pmsComment.size() > 0) {
int i=pmsCommentMapper.getCountComment(productId);//评论总数 int i = pmsCommentMapper.getCountComment(productId);//评论总数
int j=pmsCommentMapper.getApplauseCount(productId)*100/i;//好评率 好评数除以评论 总数 默认好评为大于等于2星 int j = pmsCommentMapper.getApplauseCount(productId) * 100 / i;//好评率 好评数除以评论 总数 默认好评为大于等于2星
detailResult.setCountComent(i); detailResult.setCountComent(i);
detailResult.setApplauseRate(j); detailResult.setApplauseRate(j);
for(int a=0;a<pmsComment.size();a++){ for (int a = 0; a < pmsComment.size(); a++) {
List<PmsCommentReplay> pcr =(List<PmsCommentReplay>) pmsCommentReplayMapper.getPmsCommentReplay(pmsComment.get(a).getId()); List<PmsCommentReplay> pcr = (List<PmsCommentReplay>) pmsCommentReplayMapper.getPmsCommentReplay(pmsComment.get(a).getId());
pmsComment.get(a).setPmsCommentReplay(pcr);//评论回复 逐个添加 pmsComment.get(a).setPmsCommentReplay(pcr);//评论回复 逐个添加
} }
detailResult.setPmsComment(pmsComment); detailResult.setPmsComment(pmsComment);
} }
//根据会员等级显示不同的商品价格 //根据会员等级显示不同的商品价格
UmsMember member = memberService.getCurrentMember(); UmsMember member = memberService.getCurrentMember();
if(member != null) { if (member != null) {
BigDecimal discount = commonService.getDiscount(member.getId()); BigDecimal discount = commonService.getDiscount(member.getId());
if(discount != null) { if (discount != null) {
detailResult.setPrice(detailResult.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP)); detailResult.setPrice(detailResult.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP));
} }
} }
return detailResult; return detailResult;
} }
@@ -389,61 +419,61 @@ public class HomeServiceImpl implements HomeService {
PmsSkuStockExample example = new PmsSkuStockExample(); PmsSkuStockExample example = new PmsSkuStockExample();
PmsSkuStockExample.Criteria criteria = example.createCriteria(); PmsSkuStockExample.Criteria criteria = example.createCriteria();
criteria.andProductIdEqualTo(productId); criteria.andProductIdEqualTo(productId);
if(!StringUtils.isEmpty(sp1)) { //mcoooo if (!StringUtils.isEmpty(sp1)) { //mcoooo
criteria.andSp1EqualTo(sp1); criteria.andSp1EqualTo(sp1);
} }
if(!StringUtils.isEmpty(sp2)) { //mcoooo if (!StringUtils.isEmpty(sp2)) { //mcoooo
criteria.andSp2EqualTo(sp2); criteria.andSp2EqualTo(sp2);
} }
if(!StringUtils.isEmpty(sp3)) { if (!StringUtils.isEmpty(sp3)) {
criteria.andSp3EqualTo(sp3); criteria.andSp3EqualTo(sp3);
} }
List<PmsSkuStock> list = skuStockMapper.selectByExample(example); List<PmsSkuStock> list = skuStockMapper.selectByExample(example);
ProductSkuResult skuResult = new ProductSkuResult(); ProductSkuResult skuResult = new ProductSkuResult();
for(PmsSkuStock stock : list) { for (PmsSkuStock stock : list) {
BeanUtils.copyProperties(stock, skuResult); BeanUtils.copyProperties(stock, skuResult);
} }
//根据会员等级显示不同的商品价格 //根据会员等级显示不同的商品价格
UmsMember member = memberService.getCurrentMember(); UmsMember member = memberService.getCurrentMember();
if(member != null) { if (member != null) {
BigDecimal discount = commonService.getDiscount(member.getId()); BigDecimal discount = commonService.getDiscount(member.getId());
if(discount != null) { if (discount != null) {
skuResult.setPrice(skuResult.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP)); skuResult.setPrice(skuResult.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP));
} }
} }
return skuResult; return skuResult;
} }
@Override @Override
public List<PmsProduct> getProductList(Long brandId, Long categoryId, String sortType, public List<PmsProduct> getProductList(Long brandId, Long categoryId, String sortType,
Integer pageSize, Integer pageNum) { Integer pageSize, Integer pageNum) {
PageHelper.startPage(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize);
PmsProductExample example = new PmsProductExample(); PmsProductExample example = new PmsProductExample();
PmsProductExample.Criteria criteria = example.createCriteria(); PmsProductExample.Criteria criteria = example.createCriteria();
criteria.andDeleteStatusEqualTo(0); criteria.andDeleteStatusEqualTo(0);
if(brandId != null) { if (brandId != null) {
criteria.andBrandIdEqualTo(brandId); criteria.andBrandIdEqualTo(brandId);
} }
if(categoryId != null) { if (categoryId != null) {
criteria.andProductCategoryIdEqualTo(categoryId); criteria.andProductCategoryIdEqualTo(categoryId);
} }
//综合排序 //综合排序
if("1".equals(sortType)) { if ("1".equals(sortType)) {
example.setOrderByClause("id asc"); example.setOrderByClause("id asc");
} }
//销量 //销量
if("2".equals(sortType)) { if ("2".equals(sortType)) {
example.setOrderByClause("sale desc"); example.setOrderByClause("sale desc");
} }
//价格升序 //价格升序
if("3".equals(sortType)) { if ("3".equals(sortType)) {
example.setOrderByClause("price asc"); example.setOrderByClause("price asc");
} }
//价格降序 //价格降序
if("4".equals(sortType)) { if ("4".equals(sortType)) {
example.setOrderByClause("price desc"); example.setOrderByClause("price desc");
} }
@@ -451,14 +481,14 @@ public class HomeServiceImpl implements HomeService {
//根据会员等级显示不同的商品价格 //根据会员等级显示不同的商品价格
UmsMember member = memberService.getCurrentMember(); UmsMember member = memberService.getCurrentMember();
if(member != null) { if (member != null) {
BigDecimal discount = commonService.getDiscount(member.getId()); BigDecimal discount = commonService.getDiscount(member.getId());
if(discount != null) { if (discount != null) {
for(PmsProduct product : productList) { for (PmsProduct product : productList) {
product.setPrice(product.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP)); product.setPrice(product.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP));
} }
} }
} }
return productList; return productList;
} }

View File

@@ -3,6 +3,8 @@ package com.buy507.mall.portal.service.impl;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alipay.api.AlipayApiException;
import com.alipay.api.internal.util.AlipaySignature;
import com.buy507.mall.common.api.CommonResult; import com.buy507.mall.common.api.CommonResult;
import com.buy507.mall.common.util.MD5Util; import com.buy507.mall.common.util.MD5Util;
import com.buy507.mall.mapper.*; import com.buy507.mall.mapper.*;
@@ -43,9 +45,6 @@ import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import com.alipay.api.internal.util.AlipaySignature;
import com.alipay.api.AlipayApiException;
/** /**
* 前台订单管理Service * 前台订单管理Service
*/ */
@@ -364,41 +363,41 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
//支付类型: 0->未支付1->支付宝2->微信; 3->线下支付; 4->积分支付 //支付类型: 0->未支付1->支付宝2->微信; 3->线下支付; 4->积分支付
//判断是否为积分专区商品 //判断是否为积分专区商品
if(isPointsExchangeStatus) { if (isPointsExchangeStatus) {
orderResult.setPayType(4); // 设置为积分支付 orderResult.setPayType(4); // 设置为积分支付
orderResult.setPayTypeName("积分支付"); orderResult.setPayTypeName("积分支付");
}else { } else {
// 如果不是积分兑换专区商品,则继续使用其他支付方式 // 如果不是积分兑换专区商品,则继续使用其他支付方式
if (order.getPayType() != null) { if (order.getPayType() != null) {
orderResult.setPayType(order.getPayType()); orderResult.setPayType(order.getPayType());
if (order.getPayType() == 0) { if (order.getPayType() == 0) {
orderResult.setPayTypeName("未支付"); orderResult.setPayTypeName("未支付");
} else if (order.getPayType() == 1) { } else if (order.getPayType() == 1) {
orderResult.setPayTypeName("支付宝支付"); orderResult.setPayTypeName("支付宝支付");
} else if (order.getPayType() == 2) { } else if (order.getPayType() == 2) {
orderResult.setPayTypeName("微信支付"); orderResult.setPayTypeName("微信支付");
} else if (order.getPayType() == 3) { //mcoo todo } else if (order.getPayType() == 3) { //mcoo todo
orderResult.setPayTypeName("线下支付"); orderResult.setPayTypeName("线下支付");
DmsOfflinePaymentRecord paymentRecord = offlinePaymentRecordMapper.selectOneByOrderId(orderId); DmsOfflinePaymentRecord paymentRecord = offlinePaymentRecordMapper.selectOneByOrderId(orderId);
DmsSellerBankAccount bankAccount = sellerBankAccountMapper.selectOneById(paymentRecord.getSellerBankAccountId()); DmsSellerBankAccount bankAccount = sellerBankAccountMapper.selectOneById(paymentRecord.getSellerBankAccountId());
OfflinePaymentRecordResult recordResult = new OfflinePaymentRecordResult(); OfflinePaymentRecordResult recordResult = new OfflinePaymentRecordResult();
BeanUtils.copyProperties(paymentRecord, recordResult); BeanUtils.copyProperties(paymentRecord, recordResult);
BeanUtils.copyProperties(bankAccount, recordResult); BeanUtils.copyProperties(bankAccount, recordResult);
if (recordResult.getConfirmStatus() == 1) { if (recordResult.getConfirmStatus() == 1) {
recordResult.setConfirmStatusName("已审核"); recordResult.setConfirmStatusName("已审核");
} else { } else {
recordResult.setConfirmStatusName("未审核"); recordResult.setConfirmStatusName("未审核");
} }
orderResult.setPaymentRecord(recordResult); orderResult.setPaymentRecord(recordResult);
} else { } else {
orderResult.setPayTypeName("积分支付"); orderResult.setPayTypeName("积分支付");
} }
} else { } else {
orderResult.setPayType(0); orderResult.setPayType(0);
orderResult.setPayTypeName("未支付"); orderResult.setPayTypeName("未支付");
} }
} }
orderResult.setDeliveryTime(order.getDeliveryTime()); orderResult.setDeliveryTime(order.getDeliveryTime());
orderResult.setReceiveTime(order.getReceiveTime()); orderResult.setReceiveTime(order.getReceiveTime());
@@ -748,7 +747,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
return CommonResult.validateFailed("未查询到商品信息"); return CommonResult.validateFailed("未查询到商品信息");
} }
PmsProduct product = new PmsProduct(); PmsProduct product = productMapper.selectByPrimaryKey(skuStock.getProductId());
// 判断商品是否属于积分兑换区 // 判断商品是否属于积分兑换区
boolean isPointsExchangeStatus = product.getPointsExchangeStatus() == 1; boolean isPointsExchangeStatus = product.getPointsExchangeStatus() == 1;

View File

@@ -61,11 +61,6 @@
WHERE WHERE
hp.recommend_status = 1 hp.recommend_status = 1
AND p.publish_status = 1 AND p.publish_status = 1
AND (
p.vip_status = 1 OR
p.points_area_status = 1 OR
p.points_exchange_status = 1
)
ORDER BY ORDER BY
hp.sort DESC hp.sort DESC
LIMIT #{offset}, #{limit}; LIMIT #{offset}, #{limit};
@@ -84,4 +79,55 @@
LIMIT #{offset}, #{limit}; LIMIT #{offset}, #{limit};
</select> </select>
<select id="getProductVipStatus" resultType="com.buy507.mall.model.PmsProduct">
SELECT p.*
FROM
pms_product
WHERE
vip_status = 1
LIMIT #{offset}, #{limit};
</select>
<select id="getProductpointSareaStatus" resultType="com.buy507.mall.model.PmsProduct">
SELECT p.*
FROM
pms_product
WHERE
points_area_status = 1
LIMIT #{offset}, #{limit};
</select>
<select id="getProductpointsExchangeStatus" resultType="com.buy507.mall.model.PmsProduct">
SELECT p.*
FROM
pms_product
WHERE
points_exchange_status = 1
LIMIT #{offset}, #{limit};
</select>
<select id="getVipStatusList" resultType="com.buy507.mall.model.PmsProduct">
SELECT p.*
FROM
pms_product
WHERE
vip_status = 1
</select>
<select id="getPointStatusList" resultType="com.buy507.mall.model.PmsProduct">
SELECT p.*
FROM
pms_product
WHERE
points_area_status = 1
</select>
<select id="getPointExchangeProductList" resultType="com.buy507.mall.model.PmsProduct">
SELECT p.*
FROM
pms_product
WHERE
points_exchange_status = 1
</select>
</mapper> </mapper>