|
@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
import com.alibaba.fastjson2.JSONArray;
|
|
import com.alibaba.fastjson2.JSONArray;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
-import com.alibaba.nacos.api.config.annotation.NacosValue;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
@@ -17,7 +16,7 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
-import org.springframework.cloud.context.config.annotation.RefreshScope;
|
|
|
|
|
|
|
+import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.util.StringUtils;
|
|
|
import shop.alien.entity.SecondVideoTask;
|
|
import shop.alien.entity.SecondVideoTask;
|
|
@@ -34,6 +33,7 @@ import shop.alien.mapper.second.SecondGoodsMapper;
|
|
|
import shop.alien.mapper.second.SecondGoodsRecordMapper;
|
|
import shop.alien.mapper.second.SecondGoodsRecordMapper;
|
|
|
import shop.alien.mapper.second.SecondTradeRecordMapper;
|
|
import shop.alien.mapper.second.SecondTradeRecordMapper;
|
|
|
import shop.alien.second.feign.AlienStoreFeign;
|
|
import shop.alien.second.feign.AlienStoreFeign;
|
|
|
|
|
+import shop.alien.second.service.PlatformSecondTradeService;
|
|
|
import shop.alien.second.service.SecondGoodsService;
|
|
import shop.alien.second.service.SecondGoodsService;
|
|
|
import shop.alien.second.service.VideoModerationService;
|
|
import shop.alien.second.service.VideoModerationService;
|
|
|
import shop.alien.util.common.Constants;
|
|
import shop.alien.util.common.Constants;
|
|
@@ -42,7 +42,6 @@ import shop.alien.util.common.VideoUtils;
|
|
|
import shop.alien.util.common.safe.*;
|
|
import shop.alien.util.common.safe.*;
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
import java.util.Arrays;
|
|
|
import java.util.Collections;
|
|
import java.util.Collections;
|
|
@@ -146,6 +145,11 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
*/
|
|
*/
|
|
|
private final StoreDictionaryMapper storeDictionaryMapper;
|
|
private final StoreDictionaryMapper storeDictionaryMapper;
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 交易记录服务
|
|
|
|
|
+ */
|
|
|
|
|
+ private final PlatformSecondTradeService platformSecondTradeService;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public SecondGoodsRecordDetailVo getAdminGoodsRecordDetail(Integer recordId) {
|
|
public SecondGoodsRecordDetailVo getAdminGoodsRecordDetail(Integer recordId) {
|
|
|
// 1. 获取商品操作记录基本信息
|
|
// 1. 获取商品操作记录基本信息
|
|
@@ -157,11 +161,24 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
// 2. 转换为VO对象
|
|
// 2. 转换为VO对象
|
|
|
SecondGoodsRecordDetailVo detailVo = SecondGoodsRecordDetailVo.fromRecord(record);
|
|
SecondGoodsRecordDetailVo detailVo = SecondGoodsRecordDetailVo.fromRecord(record);
|
|
|
|
|
|
|
|
|
|
+ if (record.getUserId() != null){
|
|
|
|
|
+ // 获取联系人
|
|
|
|
|
+ QueryWrapper<LifeUser> userQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ userQueryWrapper.lambda()
|
|
|
|
|
+ .eq(LifeUser::getId, record.getUserId())
|
|
|
|
|
+ .eq(LifeUser::getDeleteFlag, Constants.DeleteFlag.NOT_DELETED);
|
|
|
|
|
+ LifeUser user = lifeUserMapper.selectOne(userQueryWrapper);
|
|
|
|
|
+
|
|
|
|
|
+ detailVo.setUserName(user.getUserName());
|
|
|
|
|
+ detailVo.setUserPhone(user.getUserPhone());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
// 3. 获取商品图片列表
|
|
// 3. 获取商品图片列表
|
|
|
QueryWrapper<StoreImg> imageQueryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<StoreImg> imageQueryWrapper = new QueryWrapper<>();
|
|
|
imageQueryWrapper.lambda()
|
|
imageQueryWrapper.lambda()
|
|
|
- .eq(StoreImg::getStoreId, record.getGoodsId())
|
|
|
|
|
- .eq(StoreImg::getImgType, Constants.ImageType.SECOND_HAND_GOODS)
|
|
|
|
|
|
|
+ .eq(StoreImg::getStoreId, record.getId())
|
|
|
|
|
+ .eq(StoreImg::getImgType, Constants.ImageType.SECOND_HAND_RECORD)
|
|
|
.eq(StoreImg::getDeleteFlag, Constants.DeleteFlag.NOT_DELETED)
|
|
.eq(StoreImg::getDeleteFlag, Constants.DeleteFlag.NOT_DELETED)
|
|
|
.orderByAsc(StoreImg::getImgSort);
|
|
.orderByAsc(StoreImg::getImgSort);
|
|
|
List<StoreImg> imageList = storeImgMapper.selectList(imageQueryWrapper);
|
|
List<StoreImg> imageList = storeImgMapper.selectList(imageQueryWrapper);
|
|
@@ -171,6 +188,8 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
List<String> imageUrls = imageList.stream()
|
|
List<String> imageUrls = imageList.stream()
|
|
|
.map(StoreImg::getImgUrl)
|
|
.map(StoreImg::getImgUrl)
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
|
|
+ List<Map<String, Object>> imgList = processReportImages(imageUrls,2);
|
|
|
|
|
+ detailVo.setImgList(imgList);
|
|
|
detailVo.setImageUrls(imageUrls);
|
|
detailVo.setImageUrls(imageUrls);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -178,25 +197,9 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public SecondGoodsDetailVo getAdminGoodsDetail(Integer goodsId) {
|
|
|
|
|
- SecondGoodsDetailVo detailVo = new SecondGoodsDetailVo();
|
|
|
|
|
- QueryWrapper<SecondGoodsVo> goodsVoQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
- goodsVoQueryWrapper.lambda()
|
|
|
|
|
- .eq(SecondGoodsVo::getId, goodsId);
|
|
|
|
|
- // 1. 获取商品基本信息
|
|
|
|
|
- SecondGoodsVo goodsInfo = secondGoodsMapper.getGoodsById(goodsVoQueryWrapper);
|
|
|
|
|
- detailVo.setGoodsInfo(goodsInfo);
|
|
|
|
|
-
|
|
|
|
|
- // 2. 获取商品图片列表
|
|
|
|
|
- QueryWrapper<StoreImg> imageQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
- imageQueryWrapper.lambda()
|
|
|
|
|
- .eq(StoreImg::getStoreId, goodsId)
|
|
|
|
|
- .eq(StoreImg::getImgType, Constants.ImageType.SECOND_HAND_GOODS)
|
|
|
|
|
- .eq(StoreImg::getDeleteFlag, Constants.DeleteFlag.NOT_DELETED)
|
|
|
|
|
- .orderByAsc(StoreImg::getImgSort);
|
|
|
|
|
- List<StoreImg> imageList = storeImgMapper.selectList(imageQueryWrapper);
|
|
|
|
|
- detailVo.setImageList(imageList);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ public SecondGoodsDetailVo getAdminGoodsDetail(Integer goodsId) throws Exception {
|
|
|
|
|
+ // 基本信息
|
|
|
|
|
+ SecondGoodsDetailVo detailVo = dealSecondGoodsInfo(goodsId);
|
|
|
// 3. 获取商品操作记录集合
|
|
// 3. 获取商品操作记录集合
|
|
|
QueryWrapper<SecondGoodsRecord> recordQueryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<SecondGoodsRecord> recordQueryWrapper = new QueryWrapper<>();
|
|
|
recordQueryWrapper.lambda()
|
|
recordQueryWrapper.lambda()
|
|
@@ -210,10 +213,26 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
tradeQueryWrapper.eq("goods_id", goodsId)
|
|
tradeQueryWrapper.eq("goods_id", goodsId)
|
|
|
.orderByDesc("transaction_time");
|
|
.orderByDesc("transaction_time");
|
|
|
List<SecondTradeRecord> tradeRecords = secondTradeRecordMapper.selectList(tradeQueryWrapper);
|
|
List<SecondTradeRecord> tradeRecords = secondTradeRecordMapper.selectList(tradeQueryWrapper);
|
|
|
-
|
|
|
|
|
- // TODO 处理交易步骤
|
|
|
|
|
-
|
|
|
|
|
- detailVo.setTradeRecords(tradeRecords);
|
|
|
|
|
|
|
+ // 处理交易步骤 调取 PlatformSecondTradeServiceImpl.getOperationJsonList
|
|
|
|
|
+ List<SecondTradeRecordVo> secondTradeRecordVos = Lists.newArrayList();
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(tradeRecords)){
|
|
|
|
|
+ for (SecondTradeRecord tradeRecord : tradeRecords) {
|
|
|
|
|
+ SecondTradeRecordVo secondTradeRecordVo = new SecondTradeRecordVo();
|
|
|
|
|
+ BeanUtils.copyProperties(tradeRecord, secondTradeRecordVo);
|
|
|
|
|
+ // 交易节点
|
|
|
|
|
+ secondTradeRecordVo.setOperationJsonList(platformSecondTradeService.getOperationJsonList(tradeRecord.getId()));
|
|
|
|
|
+ // 获取联系人
|
|
|
|
|
+ QueryWrapper<LifeUser> userQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ userQueryWrapper.lambda()
|
|
|
|
|
+ .eq(LifeUser::getId, secondTradeRecordVo.getBuyerId())
|
|
|
|
|
+ .eq(LifeUser::getDeleteFlag, Constants.DeleteFlag.NOT_DELETED);
|
|
|
|
|
+ LifeUser user = lifeUserMapper.selectOne(userQueryWrapper);
|
|
|
|
|
+ secondTradeRecordVo.setUserName(user.getUserName());
|
|
|
|
|
+ secondTradeRecordVo.setUserPhone(user.getUserPhone());
|
|
|
|
|
+ secondTradeRecordVos.add(secondTradeRecordVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ detailVo.setTradeRecords(secondTradeRecordVos);
|
|
|
|
|
|
|
|
// 5. 获取商品举报集合
|
|
// 5. 获取商品举报集合
|
|
|
QueryWrapper<LifeUserViolation> reportQueryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<LifeUserViolation> reportQueryWrapper = new QueryWrapper<>();
|
|
@@ -229,16 +248,76 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
|
|
|
|
|
return detailVo;
|
|
return detailVo;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public SecondGoodsDetailVo dealSecondGoodsInfo(Integer goodsId) {
|
|
|
|
|
+ SecondGoodsDetailVo SecondGoodsDetailVo = new SecondGoodsDetailVo();
|
|
|
|
|
+ QueryWrapper<SecondGoodsVo> goodsVoQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ goodsVoQueryWrapper
|
|
|
|
|
+ .eq("sg.id", goodsId);
|
|
|
|
|
+ // 1. 获取商品基本信息
|
|
|
|
|
+ SecondGoodsVo goodsInfo = secondGoodsMapper.getGoodsById(goodsVoQueryWrapper);
|
|
|
|
|
+
|
|
|
|
|
+ // 2. 获取商品图片列表
|
|
|
|
|
+ QueryWrapper<StoreImg> imageQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ imageQueryWrapper.lambda()
|
|
|
|
|
+ .eq(StoreImg::getStoreId, goodsId)
|
|
|
|
|
+ .eq(StoreImg::getImgType, Constants.ImageType.SECOND_HAND_GOODS)
|
|
|
|
|
+ .eq(StoreImg::getDeleteFlag, Constants.DeleteFlag.NOT_DELETED)
|
|
|
|
|
+ .orderByAsc(StoreImg::getImgSort);
|
|
|
|
|
+ List<StoreImg> imageList = storeImgMapper.selectList(imageQueryWrapper);
|
|
|
|
|
+ // 提取图片URL列表
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(imageList)) {
|
|
|
|
|
+ List<String> imageUrls = imageList.stream()
|
|
|
|
|
+ .map(StoreImg::getImgUrl)
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ List<Map<String, Object>> imgList = processReportImages(imageUrls,2);
|
|
|
|
|
+ goodsInfo.setImgList(imgList);
|
|
|
|
|
+ goodsInfo.setImgUrl(imageUrls);
|
|
|
|
|
+ }
|
|
|
|
|
+ SecondGoodsDetailVo.setGoodsInfo(goodsInfo);
|
|
|
|
|
+ return SecondGoodsDetailVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public SecondGoodsVo dealSecondGoodsRecordInfo(Integer goodsId) {
|
|
|
|
|
+ QueryWrapper<SecondGoodsVo> goodsVoQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ goodsVoQueryWrapper.eq("sg.id", goodsId);
|
|
|
|
|
+ // 1. 获取商品基本信息
|
|
|
|
|
+ SecondGoodsVo goodsInfo = secondGoodsMapper.getGoodsRecordById(goodsVoQueryWrapper);
|
|
|
|
|
+
|
|
|
|
|
+ // 2. 获取商品图片列表
|
|
|
|
|
+ QueryWrapper<StoreImg> imageQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ imageQueryWrapper.lambda()
|
|
|
|
|
+ .eq(StoreImg::getStoreId, goodsId)
|
|
|
|
|
+ .eq(StoreImg::getImgType, Constants.ImageType.SECOND_HAND_RECORD)
|
|
|
|
|
+ .eq(StoreImg::getDeleteFlag, Constants.DeleteFlag.NOT_DELETED)
|
|
|
|
|
+ .orderByAsc(StoreImg::getImgSort);
|
|
|
|
|
+ List<StoreImg> imageList = storeImgMapper.selectList(imageQueryWrapper);
|
|
|
|
|
+ // 提取图片URL列表
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(imageList)) {
|
|
|
|
|
+ List<String> imageUrls = imageList.stream()
|
|
|
|
|
+ .map(StoreImg::getImgUrl)
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ List<Map<String, Object>> imgList = processReportImages(imageUrls,2);
|
|
|
|
|
+ goodsInfo.setImgList(imgList);
|
|
|
|
|
+ goodsInfo.setImgUrl(imageUrls);
|
|
|
|
|
+ }
|
|
|
|
|
+ return goodsInfo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 记录商品操作历史
|
|
* 记录商品操作历史
|
|
|
* @param goods 商品信息
|
|
* @param goods 商品信息
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
- public void recordGoodsOperation(SecondGoods goods) {
|
|
|
|
|
|
|
+ public void recordGoodsOperation(SecondGoods goods,String operationName) {
|
|
|
try {
|
|
try {
|
|
|
|
|
+ log.warn("开始创建操作历史: {},{} ", goods,operationName);
|
|
|
SecondGoodsRecord record = new SecondGoodsRecord();
|
|
SecondGoodsRecord record = new SecondGoodsRecord();
|
|
|
|
|
+ record.setOperationName(operationName);
|
|
|
record.setGoodsId(goods.getId());
|
|
record.setGoodsId(goods.getId());
|
|
|
|
|
+ record.setUserId(goods.getUserId());
|
|
|
record.setTitle(goods.getTitle());
|
|
record.setTitle(goods.getTitle());
|
|
|
record.setDescription(goods.getDescription());
|
|
record.setDescription(goods.getDescription());
|
|
|
// 价格转换
|
|
// 价格转换
|
|
@@ -273,11 +352,47 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
record.setAddressText(goods.getAddressText());
|
|
record.setAddressText(goods.getAddressText());
|
|
|
|
|
|
|
|
secondGoodsRecordMapper.insert(record);
|
|
secondGoodsRecordMapper.insert(record);
|
|
|
|
|
+ log.warn("创建操作历史结束: {} ", record);
|
|
|
|
|
+ // 保存图片信息
|
|
|
|
|
+ saveRecordGoodsImages(record);
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error("记录商品操作历史时发生异常", e);
|
|
log.error("记录商品操作历史时发生异常", e);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 保存二手商品记录图片类型信息
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param record 保存后的商品记录
|
|
|
|
|
+ */
|
|
|
|
|
+ private void saveRecordGoodsImages(SecondGoodsRecord record ) {
|
|
|
|
|
+
|
|
|
|
|
+ log.info("创建操作历图片史开始: {} ", record);
|
|
|
|
|
+ // 获取商品图片列表
|
|
|
|
|
+ QueryWrapper<StoreImg> query = new QueryWrapper<>();
|
|
|
|
|
+ query.lambda().eq(StoreImg::getStoreId, record.getGoodsId())
|
|
|
|
|
+ .eq(StoreImg::getImgType, Constants.ImageType.SECOND_HAND_GOODS);
|
|
|
|
|
+ List<StoreImg> storeImgs = storeImgMapper.selectList(query);
|
|
|
|
|
+ // 保存前先把原有的删除
|
|
|
|
|
+ storeImgs.forEach(storeImgModel -> {
|
|
|
|
|
+ StoreImg storeImg = new StoreImg();
|
|
|
|
|
+ storeImg.setStoreId(record.getId());
|
|
|
|
|
+ storeImg.setImgType(Constants.ImageType.SECOND_HAND_RECORD);
|
|
|
|
|
+ storeImg.setImgSort(storeImgModel.getImgSort());
|
|
|
|
|
+ storeImg.setImgDescription("二手商品记录图片类型");
|
|
|
|
|
+ storeImg.setDeleteFlag(Constants.DeleteFlag.NOT_DELETED);
|
|
|
|
|
+ storeImg.setCreatedTime(new Date());
|
|
|
|
|
+ storeImg.setUpdatedTime(new Date());
|
|
|
|
|
+ storeImg.setCreatedUserId(1);
|
|
|
|
|
+ storeImg.setUpdatedUserId(1);
|
|
|
|
|
+ storeImg.setImgUrl(storeImgModel.getImgUrl());
|
|
|
|
|
+ // 保存图片 插入store_img数据库
|
|
|
|
|
+ storeImgMapper.insert(storeImg);
|
|
|
|
|
+ log.info("创建操作历图片结束: {} ", storeImg);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 批量转换举报信息为SecondReportingVo对象
|
|
* 批量转换举报信息为SecondReportingVo对象
|
|
|
* @param reports 举报信息列表
|
|
* @param reports 举报信息列表
|
|
@@ -315,7 +430,7 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
SecondReportingVo reportingVo = new SecondReportingVo();
|
|
SecondReportingVo reportingVo = new SecondReportingVo();
|
|
|
|
|
|
|
|
// 查询用户表 根据举报用户类型和举报用户ID 查询 life_user 表 user_phone
|
|
// 查询用户表 根据举报用户类型和举报用户ID 查询 life_user 表 user_phone
|
|
|
- LifeUser reporter = lifeUserMapper.selectById(report.getReportedUserId());
|
|
|
|
|
|
|
+ LifeUser reporter = lifeUserMapper.selectById(report.getReportingUserId());
|
|
|
if (reporter != null) {
|
|
if (reporter != null) {
|
|
|
// 处理举报用户名称 life_user 表 user_name
|
|
// 处理举报用户名称 life_user 表 user_name
|
|
|
reportingVo.setReportingUserName(reporter.getUserName());
|
|
reportingVo.setReportingUserName(reporter.getUserName());
|
|
@@ -347,7 +462,8 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
}
|
|
}
|
|
|
// 处理举报凭证图片
|
|
// 处理举报凭证图片
|
|
|
if (StringUtils.hasText(report.getReportEvidenceImg())) {
|
|
if (StringUtils.hasText(report.getReportEvidenceImg())) {
|
|
|
- List<Map<String, Object>> imgList = processReportImages(report.getReportEvidenceImg());
|
|
|
|
|
|
|
+ List<String> urlList = Arrays.asList(report.getReportEvidenceImg().split(","));
|
|
|
|
|
+ List<Map<String, Object>> imgList = processReportImages(urlList,1);
|
|
|
reportingVo.setImgList(imgList);
|
|
reportingVo.setImgList(imgList);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -359,12 +475,12 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 处理举报凭证图片
|
|
* 处理举报凭证图片
|
|
|
- * @param reportEvidenceImg 图片URL字符串
|
|
|
|
|
|
|
+ * @param urlList 图片URL集合
|
|
|
|
|
+ * @param type 类型 1-举报 2-商品
|
|
|
* @return 图片列表
|
|
* @return 图片列表
|
|
|
*/
|
|
*/
|
|
|
- private List<Map<String, Object>> processReportImages(String reportEvidenceImg) {
|
|
|
|
|
|
|
+ private List<Map<String, Object>> processReportImages(List<String> urlList, Integer type) {
|
|
|
List<Map<String, Object>> list = new ArrayList<>();
|
|
List<Map<String, Object>> list = new ArrayList<>();
|
|
|
- List<String> urlList = Arrays.asList(reportEvidenceImg.split(","));
|
|
|
|
|
List<String> videoList = new ArrayList<>();
|
|
List<String> videoList = new ArrayList<>();
|
|
|
List<String> videoFileType = Arrays.asList("mp4", "avi", "flv", "mkv", "rmvb", "wmv", "3gp", "mov");
|
|
List<String> videoFileType = Arrays.asList("mp4", "avi", "flv", "mkv", "rmvb", "wmv", "3gp", "mov");
|
|
|
|
|
|
|
@@ -380,11 +496,13 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
contains = urlList.get(i).substring(0, lastDotIndex);
|
|
contains = urlList.get(i).substring(0, lastDotIndex);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (!videoList.contains(contains)) {
|
|
|
|
|
|
|
+ if (!StringUtils.isEmpty(contains)) {
|
|
|
videoList.add(contains);
|
|
videoList.add(contains);
|
|
|
if (videoFileType.contains(fileType.toLowerCase())) {
|
|
if (videoFileType.contains(fileType.toLowerCase())) {
|
|
|
map.put("type", "video");
|
|
map.put("type", "video");
|
|
|
- map.put("imgUrl", urlList.get(i + 1));
|
|
|
|
|
|
|
+ if (type == 1){
|
|
|
|
|
+ map.put("imgUrl", urlList.get(i + 1));
|
|
|
|
|
+ }
|
|
|
map.put("videoUrl", urlList.get(i));
|
|
map.put("videoUrl", urlList.get(i));
|
|
|
} else {
|
|
} else {
|
|
|
map.put("type", "image");
|
|
map.put("type", "image");
|
|
@@ -530,7 +648,16 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
// 发送审核成功消息
|
|
// 发送审核成功消息
|
|
|
sendMessage(goods);
|
|
sendMessage(goods);
|
|
|
// 上架 记录商品操作历史
|
|
// 上架 记录商品操作历史
|
|
|
- recordGoodsOperation(goods);
|
|
|
|
|
|
|
+ String operationName = "";
|
|
|
|
|
+ QueryWrapper<SecondGoodsRecord> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ queryWrapper.eq("goods_id", goods.getId());
|
|
|
|
|
+ List<SecondGoodsRecord> recordList = secondGoodsRecordMapper.selectList(queryWrapper);
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(recordList)){
|
|
|
|
|
+ operationName = "重新发布";
|
|
|
|
|
+ }else {
|
|
|
|
|
+ operationName = "首次发布";
|
|
|
|
|
+ }
|
|
|
|
|
+ recordGoodsOperation(goods, operationName);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -714,7 +841,7 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
updateById(goods);
|
|
updateById(goods);
|
|
|
createGoodsAudit(goods, "", SecondGoodsStatusEnum.UNDER_REVIEW.getCode());
|
|
createGoodsAudit(goods, "", SecondGoodsStatusEnum.UNDER_REVIEW.getCode());
|
|
|
// 审核中,记录操作历史
|
|
// 审核中,记录操作历史
|
|
|
- recordGoodsOperation(goods);
|
|
|
|
|
|
|
+// recordGoodsOperation(goods);
|
|
|
return true; // 异步处理,直接返回
|
|
return true; // 异步处理,直接返回
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -730,7 +857,16 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
// 发送审核成功消息
|
|
// 发送审核成功消息
|
|
|
sendMessage(goods);
|
|
sendMessage(goods);
|
|
|
// 审核成功,记录操作历史
|
|
// 审核成功,记录操作历史
|
|
|
- recordGoodsOperation(goods);
|
|
|
|
|
|
|
+ String operationName = "";
|
|
|
|
|
+ QueryWrapper<SecondGoodsRecord> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ queryWrapper.eq("goods_id", goods.getId());
|
|
|
|
|
+ List<SecondGoodsRecord> recordList = secondGoodsRecordMapper.selectList(queryWrapper);
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(recordList)){
|
|
|
|
|
+ operationName = "重新发布";
|
|
|
|
|
+ }else {
|
|
|
|
|
+ operationName = "首次发布";
|
|
|
|
|
+ }
|
|
|
|
|
+ recordGoodsOperation(goods, operationName);
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -797,7 +933,7 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
updateById(secondGoods);
|
|
updateById(secondGoods);
|
|
|
}
|
|
}
|
|
|
// 保存前先把原有的删除
|
|
// 保存前先把原有的删除
|
|
|
- storeImgMapper.delete(new LambdaUpdateWrapper<StoreImg>().eq(StoreImg::getStoreId, savedGoodsId));
|
|
|
|
|
|
|
+ storeImgMapper.delete(new LambdaUpdateWrapper<StoreImg>().eq(StoreImg::getStoreId, savedGoodsId).eq(StoreImg::getImgType, Constants.ImageType.SECOND_HAND_GOODS));
|
|
|
// 批量保存图片信息
|
|
// 批量保存图片信息
|
|
|
for(int i = 0; i < goods.getImgUrl().size(); i++){
|
|
for(int i = 0; i < goods.getImgUrl().size(); i++){
|
|
|
StoreImg storeImg = new StoreImg();
|
|
StoreImg storeImg = new StoreImg();
|
|
@@ -1353,7 +1489,19 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
// 发送审核成功消息
|
|
// 发送审核成功消息
|
|
|
sendMessage(goods);
|
|
sendMessage(goods);
|
|
|
// 审核成功,记录操作历史
|
|
// 审核成功,记录操作历史
|
|
|
- recordGoodsOperation(goods);
|
|
|
|
|
|
|
+ // 审核成功,记录操作历史
|
|
|
|
|
+ String operationName = "";
|
|
|
|
|
+ QueryWrapper<SecondGoodsRecord> queryRecordWrapper = new QueryWrapper<>();
|
|
|
|
|
+ queryRecordWrapper.eq("goods_id", goods.getId());
|
|
|
|
|
+ log.info("查询操作记录开始 goods_id: {}", goods.getId());
|
|
|
|
|
+ List<SecondGoodsRecord> recordList = secondGoodsRecordMapper.selectList(queryRecordWrapper);
|
|
|
|
|
+ log.info("查询操作记录结束 recordList: {}", recordList);
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(recordList)){
|
|
|
|
|
+ operationName = "重新发布";
|
|
|
|
|
+ }else {
|
|
|
|
|
+ operationName = "首次发布";
|
|
|
|
|
+ }
|
|
|
|
|
+ recordGoodsOperation(goods, operationName);
|
|
|
} else {
|
|
} else {
|
|
|
// 审核不通过
|
|
// 审核不通过
|
|
|
goods.setGoodsStatus(SecondGoodsStatusEnum.REVIEW_FAILED.getCode());
|
|
goods.setGoodsStatus(SecondGoodsStatusEnum.REVIEW_FAILED.getCode());
|
|
@@ -1594,7 +1742,8 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
|
|
|
queryWrapper.eq("sg.delete_flag", Constants.DeleteFlag.DELETED);
|
|
queryWrapper.eq("sg.delete_flag", Constants.DeleteFlag.DELETED);
|
|
|
} else {
|
|
} else {
|
|
|
// 其他状态按照商品状态进行查询,并且删除标记为0
|
|
// 其他状态按照商品状态进行查询,并且删除标记为0
|
|
|
- queryWrapper.eq("sg.goods_status", queryDTO.getGoodsStatus());
|
|
|
|
|
|
|
+ queryWrapper.eq("sg.goods_status", queryDTO.getGoodsStatus())
|
|
|
|
|
+ .eq("sg.delete_flag", Constants.DeleteFlag.NOT_DELETED);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|