|
@@ -3,9 +3,7 @@ package com.caimei365.commodity.service.impl;
|
|
|
import com.caimei365.commodity.components.PriceUtilService;
|
|
|
import com.caimei365.commodity.mapper.*;
|
|
|
import com.caimei365.commodity.model.ResponseJson;
|
|
|
-import com.caimei365.commodity.model.po.ProductDetailInfoPo;
|
|
|
-import com.caimei365.commodity.model.po.ProductImagePo;
|
|
|
-import com.caimei365.commodity.model.po.ProductParameterPo;
|
|
|
+import com.caimei365.commodity.model.po.*;
|
|
|
import com.caimei365.commodity.model.search.ProductListVo;
|
|
|
import com.caimei365.commodity.model.vo.*;
|
|
|
import com.caimei365.commodity.service.PageService;
|
|
@@ -418,6 +416,9 @@ public class PageServiceImpl implements PageService {
|
|
|
Integer appletsBeautyStatus = shopMapper.getAppletsBeautyStatusById(product.getProductId());
|
|
|
product.setPcActType(null != pcBeautyStatus ? 1 : 0);
|
|
|
product.setAppletsActType(null != appletsBeautyStatus ? 1 : 0);
|
|
|
+ // 商品资料id
|
|
|
+ Integer archiveId = pageMapper.getArchiveIdById(product.getProductId());
|
|
|
+ product.setArchiveId(null != archiveId ? archiveId : 0);
|
|
|
//供应商信息
|
|
|
ShopVo shop = shopMapper.getProductShopById(product.getShopId());
|
|
|
if (null != shop) {
|
|
@@ -846,4 +847,118 @@ public class PageServiceImpl implements PageService {
|
|
|
}
|
|
|
return couponsLogo;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 商品资料列表
|
|
|
+ * @param keyword 搜索关键词
|
|
|
+ * @param productType 商品属性:1产品,2仪器
|
|
|
+ * @param pageNum 页码
|
|
|
+ * @param pageSize 每页数量
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseJson<PaginationVo<ArchiveVo>> getProductArchive(String keyword, Integer productType, Integer pageNum, Integer pageSize) {
|
|
|
+ PageHelper.startPage(pageNum, pageSize);
|
|
|
+ List<ArchiveVo> archiveList = pageMapper.getProductArchiveList(keyword, productType);
|
|
|
+ archiveList.forEach(archive->{
|
|
|
+ if (null != archive.getProductId()) {
|
|
|
+ String imageURL = ImageUtils.getImageURL("product", archive.getProductImage(), 0, domain);
|
|
|
+ archive.setProductImage(imageURL);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ PaginationVo<ArchiveVo> pageData = new PaginationVo<>(archiveList);
|
|
|
+ return ResponseJson.success(pageData);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 商品资料内容
|
|
|
+ * @param archiveId 商品资料id
|
|
|
+ * @param userId 用户id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseJson<ArchiveDetailVo> getArchiveDetail(Integer archiveId, Integer userId) {
|
|
|
+ // 判断该用户是否拥有访问该资料的权限
|
|
|
+ Integer permission = checkArchivePermission(archiveId, userId);
|
|
|
+ List<ArchiveContentVo> imageArchiveList = pageMapper.getImageArchiveList(archiveId);
|
|
|
+ List<ArchiveContentVo> videoArchiveList = pageMapper.getVideoArchiveList(archiveId);
|
|
|
+ List<ArchiveContentVo> fileArchiveList = pageMapper.getFileArchiveList(archiveId);
|
|
|
+ imageArchiveList.forEach(imageArchive->{
|
|
|
+ List<String> imageList = pageMapper.getArchiveImageList(imageArchive.getArchiveContentId());
|
|
|
+ if (0 == permission) {
|
|
|
+ imageArchive.setImageList(imageList);
|
|
|
+ }
|
|
|
+ imageArchive.setImageNum(imageList.size());
|
|
|
+ });
|
|
|
+ videoArchiveList.forEach(videoArchive->{
|
|
|
+ ArchiveFilePo archiveFile = pageMapper.getArchiveFile(videoArchive.getArchiveContentId());
|
|
|
+ if (0 == permission) {
|
|
|
+ videoArchive.setFileUrl(archiveFile.getFileUrl());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ fileArchiveList.forEach(fileArchive->{
|
|
|
+ ArchiveFilePo archiveFile = pageMapper.getArchiveFile(fileArchive.getArchiveContentId());
|
|
|
+ fileArchive.setFileName(archiveFile.getFileName());
|
|
|
+ if (0 == permission) {
|
|
|
+ fileArchive.setFileUrl(archiveFile.getFileUrl());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ ArchiveDetailVo archiveDetail = new ArchiveDetailVo();
|
|
|
+ archiveDetail.setImageArchiveList(imageArchiveList);
|
|
|
+ archiveDetail.setVideoArchiveList(videoArchiveList);
|
|
|
+ archiveDetail.setFileArchiveList(fileArchiveList);
|
|
|
+ archiveDetail.setPermission(permission);
|
|
|
+ return ResponseJson.success(archiveDetail);
|
|
|
+ }
|
|
|
+
|
|
|
+ private Integer checkArchivePermission(Integer archiveId, Integer userId) {
|
|
|
+ ArchivePo archive = pageMapper.getArchiveByArchiveId(archiveId);
|
|
|
+ //资料等级:1一类资料,2二类资料,3三类资料
|
|
|
+ Integer archiveLevel = archive.getArchiveLevel();
|
|
|
+ //商品分类:1生美,2医美
|
|
|
+ Integer productClassify = archive.getProductClassify();
|
|
|
+ // 根据用户Id查询用户身份
|
|
|
+ Integer identity = priceMapper.getIdentityByUserId(userId);
|
|
|
+ // 1生美机构,2医美机构
|
|
|
+ Integer clubType = pageMapper.getClubTypeByUserId(userId);
|
|
|
+ // permission:0可查看,1未登录,2需升级会员机构,3需升级医美会员机构,4需要抵扣采美豆,5无权限查看
|
|
|
+ Integer permission = null;
|
|
|
+ if (null == identity) {
|
|
|
+ // 未登录
|
|
|
+ permission = 1;
|
|
|
+ } else if (1 == identity) {
|
|
|
+ //协销可查看所有资料
|
|
|
+ permission = 0;
|
|
|
+ } else if (5 == identity) {
|
|
|
+ // 普通机构
|
|
|
+ if (archiveLevel > 1) {
|
|
|
+ // 二级资料,普通机构
|
|
|
+ permission = 1 == productClassify ? 2 : 3;
|
|
|
+ } else {
|
|
|
+ permission = 0;
|
|
|
+ }
|
|
|
+ } else if (2 == identity) {
|
|
|
+ // 会员机构
|
|
|
+ if (2 == archiveLevel && 2 == productClassify && (0 == clubType || 1 == clubType)) {
|
|
|
+ // 二级医美资料,生美会员机构
|
|
|
+ permission = 3;
|
|
|
+ } else if (3 == archiveLevel) {
|
|
|
+ // 查询用户对该资料的抵扣记录
|
|
|
+ Integer historyId = pageMapper.findBeansHistoryByArchiveId(userId, archiveId);
|
|
|
+ if (2 == productClassify && (0 == clubType || 1 == clubType)) {
|
|
|
+ // 三级医美资料,生美会员机构
|
|
|
+ permission = 3;
|
|
|
+ } else if (null == historyId){
|
|
|
+ permission = 4;
|
|
|
+ } else {
|
|
|
+ permission = 0;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ permission = 0;
|
|
|
+ }
|
|
|
+ } else{
|
|
|
+ permission = 5;
|
|
|
+ }
|
|
|
+ return permission;
|
|
|
+ }
|
|
|
}
|