商品增加无理由退款等配置

This commit is contained in:
sj
2022-10-31 18:33:07 +08:00
parent 9bc5869abd
commit 44110bd059
13 changed files with 84 additions and 19 deletions
@@ -119,6 +119,10 @@ public class AppStoreSeckillController {
JSONObject jsonObject = JSON.parseObject(jsonStr);
int time = Integer.valueOf(jsonObject.get("time").toString());//时间 5
int continued = Integer.valueOf(jsonObject.get("continued").toString());//活动持续事件 3
String rule="";
if (jsonObject.get("rule")!=null){
rule=jsonObject.get("rule").toString();
}
SimpleDateFormat sdf = new SimpleDateFormat("HH");
String nowTime = sdf.format(new Date());
String index = nowTime.substring(0, 1);
@@ -131,23 +135,27 @@ public class AppStoreSeckillController {
seckillTimeDto.setState("即将开始");
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
seckillTimeDto.setStatus(2);
seckillTimeDto.setRule(rule);
seckillTimeDto.setStop(today + activityEndHour * 3600);
} else {
if (currentHour >= time && currentHour < activityEndHour) {
seckillTimeDto.setState("抢购中");
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
seckillTimeDto.setStatus(1);
seckillTimeDto.setRule(rule);
seckillTimeDto.setStop(today + activityEndHour * 3600);
seckillTimeIndex.set(yxSystemGroupDataList.indexOf(i));
} else if (currentHour < time) {
seckillTimeDto.setState("即将开始");
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
seckillTimeDto.setStatus(2);
seckillTimeDto.setRule(rule);
seckillTimeDto.setStop(OrderUtil.dateToTimestamp(new Date()) + activityEndHour * 3600);
} else if (currentHour >= activityEndHour) {
seckillTimeDto.setState("已结束");
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
seckillTimeDto.setStatus(0);
seckillTimeDto.setRule(rule);
seckillTimeDto.setStop(today + activityEndHour * 3600);
}
}
@@ -22,6 +22,9 @@ public class SeckillTimeDto {
@ApiModelProperty(value = "秒杀产品状态")
private Integer status;
@ApiModelProperty(value = "秒杀规则")
private String rule;
@ApiModelProperty(value = "秒杀产品停止时间")
private Integer stop;
}
@@ -82,9 +82,11 @@ public class YxEvaluationServiceImpl extends BaseServiceImpl<YxEvaluationMapper,
.eq(YxStoreProduct::getId, yxEvaluation.getProduct());
YxStoreProduct storeProduct = storeProductMapper.selectOne(wrapper);
if (ObjectUtil.isNull(storeProduct)) {
throw new ErrorRequestException("商品不存在或已下架");
// throw new ErrorRequestException("商品不存在或已下架");
yxEvaluation.setProduct(JSONUtil.toJsonStr(new YxStoreProduct()));
}else {
yxEvaluation.setProduct(JSONUtil.toJsonStr(storeProduct));
}
yxEvaluation.setProduct(JSONUtil.toJsonStr(storeProduct));
});
return generator.convertPageInfo(page,YxEvaluationDto.class);
}
@@ -135,8 +137,16 @@ public class YxEvaluationServiceImpl extends BaseServiceImpl<YxEvaluationMapper,
.orderByAsc(YxEvaluation::getSort);
List<EvaluationDTO> list = generator.convert(baseMapper.selectList(wrapper),EvaluationDTO.class);
list.forEach(evaluationDTO->{
YxStoreProduct yxStoreProduct = yxStoreProductService.getProductInfo(Long.valueOf(evaluationDTO.getProduct()));
evaluationDTO.setProductInfo(yxStoreProduct);
LambdaQueryWrapper<YxStoreProduct> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(YxStoreProduct::getIsShow, ShopCommonEnum.SHOW_1.getValue())
.eq(YxStoreProduct::getId, evaluationDTO.getProduct());
YxStoreProduct yxStoreProduct = storeProductMapper.selectOne(wrapper1);
//这里需要有一个非空判断
if (ObjectUtil.isNotNull(yxStoreProduct)){
evaluationDTO.setProductInfo(yxStoreProduct);
}else{
evaluationDTO.setProductInfo(new YxStoreProduct().setStoreName("该评测商品已删除或已下架"));
}
});
return list;
}
@@ -61,7 +61,7 @@ public class YxStoreExpert implements Serializable {
/** 专家所属单位 */
@NotBlank
// @NotBlank
private String expertUnit;
@@ -8,6 +8,9 @@
*/
package co.yixiang.modules.hotList.service.impl;
import cn.hutool.core.util.ObjectUtil;
import co.yixiang.exception.ErrorRequestException;
import co.yixiang.modules.product.service.mapper.StoreProductMapper;
import org.springframework.beans.BeanUtils;
import cn.hutool.json.JSONUtil;
import co.yixiang.common.service.impl.BaseServiceImpl;
@@ -54,16 +57,13 @@ public class YxStoreHotListServiceImpl extends BaseServiceImpl<YxStoreHotListMap
private final IGenerator generator;
private final YxStoreProductService yxStoreProductService;
private final StoreProductMapper storeProductMapper;
@SneakyThrows
@Override
//@Cacheable
public PageResult<YxStoreHotListVo> queryAll(YxStoreHotListQueryCriteria criteria, Pageable pageable) {
getPage(pageable);
PageInfo<YxStoreHotList> page = new PageInfo<>(queryAll(criteria));
// PageInfo<YxStoreHotListVo> page1 = new PageInfo<>();
// BeanUtils.copyProperties(page,page1);
// BeanUtilsBean.getInstance().copyProperties(page1, page);
page.getList().forEach(hotList->{
List<Integer> productArr = JSONUtil.toList(hotList.getProductList(), Integer.class);
List<YxStoreProduct> list1 =new ArrayList<>();
@@ -72,8 +72,11 @@ public class YxStoreHotListServiceImpl extends BaseServiceImpl<YxStoreHotListMap
wrapper.eq(YxStoreProduct::getIsShow, ShopCommonEnum.SHOW_1.getValue())
.eq(YxStoreProduct::getId, productId);
//这里需要有一个非空判断
YxStoreProduct yxStoreProduct = yxStoreProductService.getProductInfo(Long.valueOf(productId));
list1.add(yxStoreProduct);
YxStoreProduct storeProduct = storeProductMapper.selectOne(wrapper);
// YxStoreProduct storeProduct=storeProductMapper.selectById(productId);
if (ObjectUtil.isNotNull(storeProduct)){
list1.add(storeProduct);
}
});
hotList.setProductList(JSONUtil.toJsonStr(list1));
// hotList.setProductInfo(list1);
@@ -117,9 +120,14 @@ public class YxStoreHotListServiceImpl extends BaseServiceImpl<YxStoreHotListMap
List<Integer> productArr = JSONUtil.toList(hotListDto.getProductList(), Integer.class);
List<YxStoreProduct> list1 =new ArrayList<>();
productArr.forEach(productId->{
//这里需要有一个非空判断
YxStoreProduct yxStoreProduct = yxStoreProductService.getProductInfo(Long.valueOf(productId));
list1.add(yxStoreProduct);
LambdaQueryWrapper<YxStoreProduct> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(YxStoreProduct::getIsShow, ShopCommonEnum.SHOW_1.getValue())
.eq(YxStoreProduct::getId, productId);
YxStoreProduct yxStoreProduct = storeProductMapper.selectOne(wrapper1);
//这里需要有一个非空判断,找不到这个商品就不加
if (ObjectUtil.isNotNull(yxStoreProduct)){
list1.add(yxStoreProduct);
}
});
hotListDto.setProductInfo(list1);
});
@@ -73,6 +73,9 @@ public class YxStoreProduct extends BaseDomain {
@ApiModelProperty(value = "商品名称")
private String storeName;
/**价保和无理由退款等配置**/
@TableField(typeHandler = JacksonTypeHandler.class)
private YxStoreProductConfig config;
/** 商品简介 */
@ApiModelProperty(value = "商品简介")
@@ -0,0 +1,18 @@
package co.yixiang.modules.product.domain;
import lombok.Data;
import java.io.Serializable;
@Data
public class YxStoreProductConfig implements Serializable {
//无理由退款天数
private Integer withoutReason;
//无理由退款图标
private String withoutReasonPic;
//价保天数
private Integer confirmed;
//价保图标
private String confirmedPic;
}
@@ -211,6 +211,7 @@ public class StoreProductController {
YxStoreProduct yxStoreProduct = yxStoreProductService.getById(id);
ProductDto productDto = new ProductDto();
productDto.setParameter(yxStoreProduct.getParameter());
productDto.setConfig(yxStoreProduct.getConfig());
BeanUtil.copyProperties(yxStoreProduct,productDto,"sliderImage");
productDto.setSliderImage(Arrays.asList(yxStoreProduct.getSliderImage().split(",")));
YxStoreProductAttrResult storeProductAttrResult = yxStoreProductAttrResultService
@@ -1,6 +1,9 @@
package co.yixiang.modules.product.service.dto;
import co.yixiang.modules.product.domain.YxStoreProductConfig;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -21,8 +24,7 @@ import java.util.Map;
@AllArgsConstructor
@Getter
@Setter
public class ProductDto
{
public class ProductDto {
/** 商品id */
private Long id;
@@ -43,6 +45,9 @@ public class ProductDto
@JsonProperty("store_info")
private String storeInfo;
/**价保和无理由退款等配置**/
private YxStoreProductConfig config;
/** 关键字 */
private String keyword;
@@ -1,5 +1,6 @@
package co.yixiang.modules.product.service.dto;
import co.yixiang.modules.product.domain.YxStoreProductConfig;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -52,6 +53,9 @@ public class StoreProductDto
@NotBlank(message = "关键字不能为空")
private String keyword;
/**价保和无理由退款等配置**/
@JsonProperty("config")
private YxStoreProductConfig config;
/** 商品条码(一维码) */
@JsonProperty("bar_code")
@@ -197,7 +197,6 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl<StoreProductMappe
if (ObjectUtil.isNull(storeProduct)) {
throw new ErrorRequestException("商品不存在或已下架");
}
return storeProduct;
}
@@ -620,7 +619,7 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl<StoreProductMappe
if (storeProductDto.getSliderImage().isEmpty()) {
throw new YshopException("请上传轮播图");
}
yxStoreProduct.setConfig(storeProductDto.getConfig());
yxStoreProduct.setPrice(BigDecimal.valueOf(resultDTO.getMinPrice()));
yxStoreProduct.setOtPrice(BigDecimal.valueOf(resultDTO.getMinOtPrice()));
yxStoreProduct.setCost(BigDecimal.valueOf(resultDTO.getMinCost()));
@@ -4,8 +4,11 @@ package co.yixiang.modules.product.vo;
import cn.hutool.core.util.StrUtil;
import co.yixiang.modules.product.domain.YxStoreProductAttrValue;
import co.yixiang.modules.product.domain.YxStoreProductConfig;
import co.yixiang.modules.product.service.dto.Parameter;
import co.yixiang.serializer.BigDecimalSerializer;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -43,6 +46,9 @@ public class YxStoreProductQueryVo implements Serializable {
private String codeBase;
/**价保和无理由退款等配置**/
private YxStoreProductConfig config;
public String getImage_base() {
return image;
}