This commit is contained in:
tangzh 2025-03-23 20:50:55 +08:00
parent 14afc9a83c
commit 2602d29a4e
15 changed files with 373 additions and 338 deletions

View File

@ -6,10 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
@ -27,4 +24,8 @@ public class UserCouponReceiveRequest implements Serializable {
@ApiModelProperty(value = "优惠券id")
@NotNull(message = "优惠券编号不能为空")
private Integer couponId;
@ApiModelProperty(value = "状态:login-登录register-注册, start-注册起始页")
private String userType;
}

View File

@ -74,9 +74,9 @@ public class IndexProductResponse {
private String flatPattern;
@ApiModelProperty(value = "标签")
private String tags;
private String tags = "";
@ApiModelProperty(value = "规格 0单 1")
@ApiModelProperty(value = "规格 false单 true")
private Boolean specType;
@ApiModelProperty(value = "产品属性")

View File

@ -29,15 +29,16 @@ public class ProductDetailResponse implements Serializable {
@ApiModelProperty(value = "商品属性详情")
private HashMap<String, Object> productValue;
@ApiModelProperty(value = "返佣金额区间")
private String priceName;
// @ApiModelProperty(value = "返佣金额区间")
// private String priceName;
@ApiModelProperty(value = "为移动端特定参数 所有参与的活动")
private List<ProductActivityItemResponse> activityAllH5;
// @ApiModelProperty(value = "为移动端特定参数 所有参与的活动")
// private List<ProductActivityItemResponse> activityAllH5;
@ApiModelProperty(value = "商品信息")
private StoreProduct productInfo;
private StoreProductResponse productInfo;
@ApiModelProperty(value = "收藏标识")
private Boolean userCollect;
}

View File

@ -53,51 +53,51 @@ public class StoreProductAttrValueResponse implements Serializable {
@ApiModelProperty(value = "唯一值")
private String unique;
@ApiModelProperty(value = "成本价")
private BigDecimal cost;
// @ApiModelProperty(value = "成本价")
// private BigDecimal cost;
//
// @ApiModelProperty(value = "商品条码")
// private String barCode;
@ApiModelProperty(value = "商品条码")
private String barCode;
@ApiModelProperty(value = "原价")
private BigDecimal otPrice;
@ApiModelProperty(value = "重量")
private BigDecimal weight;
@ApiModelProperty(value = "体积")
private BigDecimal volume;
@ApiModelProperty(value = "一级返佣")
private BigDecimal brokerage;
@ApiModelProperty(value = "二级返佣")
private BigDecimal brokerageTwo;
// @ApiModelProperty(value = "原价")
// private BigDecimal otPrice;
//
// @ApiModelProperty(value = "重量")
// private BigDecimal weight;
//
// @ApiModelProperty(value = "体积")
// private BigDecimal volume;
//
// @ApiModelProperty(value = "一级返佣")
// private BigDecimal brokerage;
//
// @ApiModelProperty(value = "二级返佣")
// private BigDecimal brokerageTwo;
@ApiModelProperty(value = "活动类型 0=商品1=秒杀2=砍价3=拼团")
private Integer type;
@ApiModelProperty(value = "活动限购数量")
private Integer quota;
@ApiModelProperty(value = "活动限购数量显示")
private Integer quotaShow;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
// @ApiModelProperty(value = "活动限购数量")
// private Integer quota;
//
// @ApiModelProperty(value = "活动限购数量显示")
// private Integer quotaShow;
//
// @ApiModelProperty(value = "创建时间")
// private Date createTime;
//
// @ApiModelProperty(value = "更新时间")
// private Date updateTime;
@ApiModelProperty(value = "attrValue字段取表中suk字段")
private Object attrValue;
@ApiModelProperty(value = "砍价商品最低价")
private BigDecimal minPrice;
// @ApiModelProperty(value = "砍价商品最低价")
// private BigDecimal minPrice;
@ApiModelProperty(value = "是否选中")
private Boolean checked;
// @ApiModelProperty(value = "是否选中")
// private Boolean checked;
@ApiModelProperty(value = "会员价")
private BigDecimal vipPrice;
// @ApiModelProperty(value = "会员价")
// private BigDecimal vipPrice;
}

View File

@ -24,8 +24,7 @@ import java.util.List;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("eb_store_product")
@ApiModel(value="StoreProduct对象", description="商品表")
@ApiModel(value="StoreProductResponse", description="商品表")
public class StoreProductResponse implements Serializable {
@ApiModelProperty(value = "商品id")
@ -35,6 +34,9 @@ public class StoreProductResponse implements Serializable {
@ApiModelProperty(value = "商户Id(0为总后台管理员创建,不为0的时候是商户后台创建)")
private Integer merId;
@ApiModelProperty(value = "质检报告")
private String qualityTest;
@ApiModelProperty(value = "商品图片")
private String image;
@ -47,11 +49,11 @@ public class StoreProductResponse implements Serializable {
@ApiModelProperty(value = "商品简介")
private String storeInfo;
@ApiModelProperty(value = "关键字")
private String keyword;
// @ApiModelProperty(value = "关键字")
// private String keyword;
@ApiModelProperty(value = "商品条码(一维码)")
private String barCode;
// @ApiModelProperty(value = "商品条码(一维码)")
// private String barCode;
@ApiModelProperty(value = "分类id")
private String cateId;
@ -62,20 +64,20 @@ public class StoreProductResponse implements Serializable {
@ApiModelProperty(value = "商品价格")
private BigDecimal price;
@ApiModelProperty(value = "会员价格")
private BigDecimal vipPrice;
// @ApiModelProperty(value = "会员价格")
// private BigDecimal vipPrice;
@ApiModelProperty(value = "市场价")
private BigDecimal otPrice;
@ApiModelProperty(value = "邮费")
private BigDecimal postage;
// @ApiModelProperty(value = "邮费")
// private BigDecimal postage;
@ApiModelProperty(value = "单位名")
private String unitName;
@ApiModelProperty(value = "排序")
private Integer sort;
// @ApiModelProperty(value = "排序")
// private Integer sort;
@ApiModelProperty(value = "销量")
private Integer sales;
@ -86,47 +88,47 @@ public class StoreProductResponse implements Serializable {
@ApiModelProperty(value = "状态0未上架1上架")
private Boolean isShow;
@ApiModelProperty(value = "是否热卖")
private Boolean isHot;
@ApiModelProperty(value = "是否优惠")
private Boolean isBenefit;
@ApiModelProperty(value = "是否精品")
private Boolean isBest;
@ApiModelProperty(value = "是否新品")
private Boolean isNew;
@ApiModelProperty(value = "添加时间")
private Integer addTime;
@ApiModelProperty(value = "是否包邮")
private Boolean isPostage;
@ApiModelProperty(value = "是否删除")
private Boolean isDel;
@ApiModelProperty(value = "商户是否代理 0不可代理1可代理")
private Boolean merUse;
@ApiModelProperty(value = "获得积分")
private Integer giveIntegral;
@ApiModelProperty(value = "成本价")
private BigDecimal cost;
@ApiModelProperty(value = "秒杀状态 0 未开启 1已开启")
private Boolean isSeckill;
@ApiModelProperty(value = "砍价状态 0未开启 1开启")
private Boolean isBargain;
@ApiModelProperty(value = "是否优品推荐")
private Boolean isGood;
@ApiModelProperty(value = "是否单独分佣")
private Boolean isSub;
// @ApiModelProperty(value = "是否热卖")
// private Boolean isHot;
//
// @ApiModelProperty(value = "是否优惠")
// private Boolean isBenefit;
//
// @ApiModelProperty(value = "是否精品")
// private Boolean isBest;
//
// @ApiModelProperty(value = "是否新品")
// private Boolean isNew;
//
// @ApiModelProperty(value = "添加时间")
// private Integer addTime;
//
// @ApiModelProperty(value = "是否包邮")
// private Boolean isPostage;
//
// @ApiModelProperty(value = "是否删除")
// private Boolean isDel;
//
// @ApiModelProperty(value = "商户是否代理 0不可代理1可代理")
// private Boolean merUse;
//
// @ApiModelProperty(value = "获得积分")
// private Integer giveIntegral;
//
// @ApiModelProperty(value = "成本价")
// private BigDecimal cost;
//
// @ApiModelProperty(value = "秒杀状态 0 未开启 1已开启")
// private Boolean isSeckill;
//
// @ApiModelProperty(value = "砍价状态 0未开启 1开启")
// private Boolean isBargain;
//
// @ApiModelProperty(value = "是否优品推荐")
// private Boolean isGood;
//
// @ApiModelProperty(value = "是否单独分佣")
// private Boolean isSub;
@ApiModelProperty(value = "虚拟销量")
private Integer ficti;
@ -134,17 +136,17 @@ public class StoreProductResponse implements Serializable {
@ApiModelProperty(value = "浏览量")
private Integer browse;
@ApiModelProperty(value = "商品二维码地址(用户小程序海报)")
private String codePath;
// @ApiModelProperty(value = "商品二维码地址(用户小程序海报)")
// private String codePath;
//
// @ApiModelProperty(value = "淘宝京东1688类型")
// private String soureLink;
@ApiModelProperty(value = "淘宝京东1688类型")
private String soureLink;
// @ApiModelProperty(value = "主图视频链接")
// private String videoLink;
@ApiModelProperty(value = "主图视频链接")
private String videoLink;
@ApiModelProperty(value = "运费模板ID")
private Integer tempId;
// @ApiModelProperty(value = "运费模板ID")
// private Integer tempId;
@ApiModelProperty(value = "规格 0单 1多")
private Boolean specType;
@ -152,14 +154,14 @@ public class StoreProductResponse implements Serializable {
@ApiModelProperty(value = "活动显示排序 0=默认1=秒杀2=砍价3=拼团")
private String activity;
@ApiModelProperty(value = "活动显示排序 0=默认1=秒杀2=砍价3=拼团")
private String activityStr;
// @ApiModelProperty(value = "活动显示排序 0=默认1=秒杀2=砍价3=拼团")
// private String activityStr;
@ApiModelProperty(value = "为移动端特定参数")
private ProductActivityItemResponse activityH5;
@ApiModelProperty(value = "为移动端特定参数 所有参与的活动")
private List<ProductActivityItemResponse> activityAllH5;
// @ApiModelProperty(value = "为移动端特定参数")
// private ProductActivityItemResponse activityH5;
//
// @ApiModelProperty(value = "为移动端特定参数 所有参与的活动")
// private List<ProductActivityItemResponse> activityAllH5;
@ApiModelProperty(value = "商品属性")
private List<StoreProductAttr> attr;
@ -167,8 +169,8 @@ public class StoreProductResponse implements Serializable {
@ApiModelProperty(value = "商品属性详情")
private List<StoreProductAttrValueResponse> attrValue;
@ApiModelProperty(value = "管理端用于映射attrResults")
private List<HashMap<String,Object>> attrValues;
// @ApiModelProperty(value = "管理端用于映射attrResults")
// private List<HashMap<String,Object>> attrValues;
private Integer[] cateIds;
@ -184,74 +186,74 @@ public class StoreProductResponse implements Serializable {
@ApiModelProperty(value = "优惠券Ids")
private List<Integer> couponIds;
// 秒杀用到
@ApiModelProperty(value = "活动标题")
private String title;
// // 秒杀用到
// @ApiModelProperty(value = "活动标题")
// private String title;
//
// @ApiModelProperty(value = "简介")
// private String info;
//
// @ApiModelProperty(value = "时间段ID")
// private Integer timeId;
//
// @ApiModelProperty(value = "最多秒杀几个")
// private Integer num;
//
// @ApiModelProperty(value = "开始时间")
// private Date startTime;
//
// @ApiModelProperty(value = "结束时间")
// private Date stopTime;
//
// @ApiModelProperty(value = "开始时间")
// private String startTimeStr;
//
// @ApiModelProperty(value = "结束时间")
// private String stopTimeStr;
//
// @ApiModelProperty(value = "秒杀状态 0=关闭 1=开启")
// private Integer status;
//
// @ApiModelProperty(value = "商品id")
// private Integer productId;
//
// @ApiModelProperty(value = "秒杀轮播图")
// private String images;
//
// @ApiModelProperty(value = "限购数量 - 销量")
// private Integer quota;
//
// @ApiModelProperty(value = "限购总数")
// private Integer quotaShow;
//
// @ApiModelProperty(value = "砍价规则")
// private String rule;
//
// @ApiModelProperty(value = "用户每次砍价的次数")
// private Integer bargainNum;
//
// @ApiModelProperty(value = "帮助砍价好友人数")
// private Integer peopleNum;
@ApiModelProperty(value = "简介")
private String info;
@ApiModelProperty(value = "时间段ID")
private Integer timeId;
@ApiModelProperty(value = "最多秒杀几个")
private Integer num;
@ApiModelProperty(value = "开始时间")
private Date startTime;
@ApiModelProperty(value = "结束时间")
private Date stopTime;
@ApiModelProperty(value = "开始时间")
private String startTimeStr;
@ApiModelProperty(value = "结束时间")
private String stopTimeStr;
@ApiModelProperty(value = "秒杀状态 0=关闭 1=开启")
private Integer status;
@ApiModelProperty(value = "商品id")
private Integer productId;
@ApiModelProperty(value = "秒杀轮播图")
private String images;
@ApiModelProperty(value = "限购数量 - 销量")
private Integer quota;
@ApiModelProperty(value = "限购总数")
private Integer quotaShow;
@ApiModelProperty(value = "砍价规则")
private String rule;
@ApiModelProperty(value = "用户每次砍价的次数")
private Integer bargainNum;
@ApiModelProperty(value = "帮助砍价好友人数")
private Integer peopleNum;
// 拼团部分
@ApiModelProperty(value = "推荐")
private Boolean isHost;
@ApiModelProperty(value = "参团人数")
private Integer people;
@ApiModelProperty(value = "拼团订单有效时间(小时)")
private Integer effectiveTime;
@ApiModelProperty(value = "单次购买数量")
private Integer onceNum;
@ApiModelProperty(value = "虚拟成团百分比")
private Integer virtualRation;
@ApiModelProperty(value = "砍价商品最低价")
private BigDecimal minPrice;
@ApiModelProperty(value = "砍价结束时间")
private Long endTime;
// // 拼团部分
// @ApiModelProperty(value = "推荐")
// private Boolean isHost;
//
// @ApiModelProperty(value = "参团人数")
// private Integer people;
//
// @ApiModelProperty(value = "拼团订单有效时间(小时)")
// private Integer effectiveTime;
//
// @ApiModelProperty(value = "单次购买数量")
// private Integer onceNum;
//
// @ApiModelProperty(value = "虚拟成团百分比")
// private Integer virtualRation;
//
// @ApiModelProperty(value = "砍价商品最低价")
// private BigDecimal minPrice;
//
// @ApiModelProperty(value = "砍价结束时间")
// private Long endTime;
}

View File

@ -34,6 +34,20 @@ public class CouponController {
@Autowired
private StoreCouponUserService storeCouponUserService;
/**
* 新人注册券
* @param pageParamRequest 分页参数
*/
@ApiOperation(value = "新人注册券")
@RequestMapping(value = "/newUserCoupon", method = RequestMethod.GET)
@ApiImplicitParams({
@ApiImplicitParam(name="page", value="页码", required = true),
@ApiImplicitParam(name="limit", value="每页数量", required = true)
})
public CommonResult<List<StoreCouponFrontResponse>> getNewUserCoupon(@Validated PageParamRequest pageParamRequest) {
return CommonResult.success(storeCouponService.getNewUserCoupon(pageParamRequest));
}
/**
* 分页显示优惠券表
* @param type 类型1-通用2-商品3-品类

View File

@ -36,7 +36,7 @@ public class ProductController {
*/
@ApiOperation(value = "首页商品列表")
@RequestMapping(value = "/product/{type}", method = RequestMethod.GET)
@ApiImplicitParam(name = "type", value = "类型【1首页精品推荐, 2为你推荐】", dataType = "int", required = true)
@ApiImplicitParam(name = "type", value = "类型【1首页精品推荐, 5为你推荐】", dataType = "int", required = true)
public CommonResult<CommonPage<IndexProductResponse>> getProductList(@PathVariable(value = "type") Integer type, PageParamRequest pageParamRequest) {
return CommonResult.success(productService.getProductListByType(type, pageParamRequest));
}

View File

@ -125,18 +125,21 @@ public class ProductServiceImpl implements ProductService {
public ProductDetailResponse getDetail(Integer id, String type) {
// 获取用户
User user = userService.getInfo();
SystemUserLevel userLevel = null;
if (ObjectUtil.isNotNull(user) && user.getLevel() > 0) {
userLevel = systemUserLevelService.getByLevelId(user.getLevel());
}
// SystemUserLevel userLevel = null;
// if (ObjectUtil.isNotNull(user) && user.getLevel() > 0) {
// userLevel = systemUserLevelService.getByLevelId(user.getLevel());
// }
ProductDetailResponse productDetailResponse = new ProductDetailResponse();
// 查询商品
StoreProduct storeProduct = storeProductService.getH5Detail(id);
if (ObjectUtil.isNotNull(userLevel)) {
storeProduct.setVipPrice(storeProduct.getPrice());
}
productDetailResponse.setProductInfo(storeProduct);
// if (ObjectUtil.isNotNull(userLevel)) {
// storeProduct.setVipPrice(storeProduct.getPrice());
// }
StoreProductResponse spResponse = new StoreProductResponse();
BeanUtils.copyProperties(storeProduct, spResponse);
productDetailResponse.setProductInfo(spResponse);
// 获取商品规格
List<StoreProductAttr> attrList = attrService.getListByProductIdAndType(storeProduct.getId(), Constants.PRODUCT_TYPE_NORMAL);
@ -149,34 +152,34 @@ public class ProductServiceImpl implements ProductService {
for (StoreProductAttrValue storeProductAttrValue : storeProductAttrValues) {
StoreProductAttrValueResponse atr = new StoreProductAttrValueResponse();
BeanUtils.copyProperties(storeProductAttrValue, atr);
// 设置会员价
if (ObjectUtil.isNotNull(userLevel)) {
atr.setVipPrice(atr.getPrice());
}
// // 设置会员价
// if (ObjectUtil.isNotNull(userLevel)) {
// atr.setVipPrice(atr.getPrice());
// }
skuMap.put(atr.getSuk(), atr);
}
productDetailResponse.setProductValue(skuMap);
// 用户收藏分销返佣
// 用户收藏
if (ObjectUtil.isNotNull(user)) {
// 查询用户是否收藏收藏
user = userService.getInfo();
productDetailResponse.setUserCollect(storeProductRelationService.getLikeOrCollectByUser(user.getUid(), id,false).size() > 0);
// 判断是否开启分销
String brokerageFuncStatus = systemConfigService.getValueByKey(SysConfigConstants.CONFIG_KEY_BROKERAGE_FUNC_STATUS);
if (brokerageFuncStatus.equals(Constants.COMMON_SWITCH_OPEN)) {// 分销开启
// 判断是否开启气泡
String isBubble = systemConfigService.getValueByKey(SysConfigConstants.CONFIG_KEY_STORE_BROKERAGE_IS_BUBBLE);
if (isBubble.equals(Constants.COMMON_SWITCH_OPEN)) {
productDetailResponse.setPriceName(getPacketPriceRange(storeProduct.getIsSub(), storeProductAttrValues, user.getIsPromoter()));
}
}
// // 判断是否开启分销
// String brokerageFuncStatus = systemConfigService.getValueByKey(SysConfigConstants.CONFIG_KEY_BROKERAGE_FUNC_STATUS);
// if (brokerageFuncStatus.equals(Constants.COMMON_SWITCH_OPEN)) {// 分销开启
// // 判断是否开启气泡
// String isBubble = systemConfigService.getValueByKey(SysConfigConstants.CONFIG_KEY_STORE_BROKERAGE_IS_BUBBLE);
// if (isBubble.equals(Constants.COMMON_SWITCH_OPEN)) {
// productDetailResponse.setPriceName(getPacketPriceRange(storeProduct.getIsSub(), storeProductAttrValues, user.getIsPromoter()));
// }
// }
} else {
productDetailResponse.setUserCollect(false);
}
// 商品活动
List<ProductActivityItemResponse> activityAllH5 = productUtils.getProductAllActivity(storeProduct);
productDetailResponse.setActivityAllH5(activityAllH5);
// // 商品活动
// List<ProductActivityItemResponse> activityAllH5 = productUtils.getProductAllActivity(storeProduct);
// productDetailResponse.setActivityAllH5(activityAllH5);
// 商品浏览量+1
StoreProduct updateProduct = new StoreProduct();
@ -204,11 +207,11 @@ public class ProductServiceImpl implements ProductService {
@Override
public ProductDetailResponse getSkuDetail(Integer id) {
// 获取用户
User user = userService.getInfo();
SystemUserLevel userLevel = null;
if (ObjectUtil.isNotNull(user) && user.getLevel() > 0) {
userLevel = systemUserLevelService.getByLevelId(user.getLevel());
}
// User user = userService.getInfo();
// SystemUserLevel userLevel = null;
// if (ObjectUtil.isNotNull(user) && user.getLevel() > 0) {
// userLevel = systemUserLevelService.getByLevelId(user.getLevel());
// }
ProductDetailResponse productDetailResponse = new ProductDetailResponse();
// 查询商品
@ -225,11 +228,11 @@ public class ProductServiceImpl implements ProductService {
for (StoreProductAttrValue storeProductAttrValue : storeProductAttrValues) {
StoreProductAttrValueResponse atr = new StoreProductAttrValueResponse();
BeanUtils.copyProperties(storeProductAttrValue, atr);
// 设置会员价
if (ObjectUtil.isNotNull(userLevel)) {
BigDecimal vipPrice = atr.getPrice().multiply(new BigDecimal(userLevel.getDiscount())).divide(new BigDecimal(100), 2 ,BigDecimal.ROUND_HALF_UP);
atr.setVipPrice(vipPrice);
}
// // 设置会员价
// if (ObjectUtil.isNotNull(userLevel)) {
// BigDecimal vipPrice = atr.getPrice().multiply(new BigDecimal(userLevel.getDiscount())).divide(new BigDecimal(100), 2 ,BigDecimal.ROUND_HALF_UP);
// atr.setVipPrice(vipPrice);
// }
skuMap.put(atr.getSuk(), atr);
}
productDetailResponse.setProductValue(skuMap);
@ -337,13 +340,14 @@ public class ProductServiceImpl implements ProductService {
return resultIndexProductResponse(storeProductList);
}
private static Integer floorPage = 1;
private List<IndexProductResponse> addFloor(List<IndexProductResponse> list) {
Random random = new Random();
if (random.nextBoolean()) {
FloorRequest floor = new FloorRequest();
floor.setChannel(Constants.HOME_TYPE_3);
PageParamRequest page = new PageParamRequest();
page.setPage(random.nextInt(4));
page.setPage(floorPage);
page.setLimit(2);
List<HomeVo> homeVos = ebHomeService.selectPageFloor(floor, page);
if (!homeVos.isEmpty()) {
@ -353,6 +357,7 @@ public class ProductServiceImpl implements ProductService {
list.add(addItem);
// 使用Collections.shuffle()打乱列表
Collections.shuffle(list);
floorPage = floorPage + 1;
}
}
return list;
@ -390,20 +395,20 @@ public class ProductServiceImpl implements ProductService {
break;
}
}
if (activity.equals(Constants.PRODUCT_TYPE_BARGAIN)) {
ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_BARGAIN);
if (ObjectUtil.isNotNull(itemResponse)) {
productResponse.setActivityH5(itemResponse);
break;
}
}
if (activity.equals(Constants.PRODUCT_TYPE_PINGTUAN)) {
ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_PINGTUAN);
if (ObjectUtil.isNotNull(itemResponse)) {
productResponse.setActivityH5(itemResponse);
break;
}
}
// if (activity.equals(Constants.PRODUCT_TYPE_BARGAIN)) {
// ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_BARGAIN);
// if (ObjectUtil.isNotNull(itemResponse)) {
// productResponse.setActivityH5(itemResponse);
// break;
// }
// }
// if (activity.equals(Constants.PRODUCT_TYPE_PINGTUAN)) {
// ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_PINGTUAN);
// if (ObjectUtil.isNotNull(itemResponse)) {
// productResponse.setActivityH5(itemResponse);
// break;
// }
// }
}
}
productResponseArrayList.add(productResponse);

View File

@ -571,7 +571,7 @@ public class UserCenterServiceImpl extends ServiceImpl<UserDao, User> implements
logger.error(StrUtil.format("绑定手机号自动登录生成token失败uid={}", finalUser.getUid()));
e.printStackTrace();
}
loginResponse.setType("login");
loginResponse.setType("register");
loginResponse.setUid(user.getUid());
loginResponse.setNikeName(user.getNickname());
loginResponse.setPhone(user.getPhone());

View File

@ -81,4 +81,12 @@ public interface StoreCouponService extends IService<StoreCoupon> {
* @return
*/
Integer getCouponAllCount();
/**
* 新人注册券
* @param pageParamRequest
* @return
*/
List<StoreCouponFrontResponse> getNewUserCoupon(PageParamRequest pageParamRequest);
}

View File

@ -567,9 +567,9 @@ public class StoreCombinationServiceImpl extends ServiceImpl<StoreCombinationDao
} else {
BeanUtils.copyProperties(valueList.get(0), atr);
}
if (ObjectUtil.isNull(atr.getQuota())) {
atr.setQuota(0);
}
// if (ObjectUtil.isNull(atr.getQuota())) {
// atr.setQuota(0);
// }
skuMap.put(atr.getSuk(), atr);
}
detailResponse.setProductValue(skuMap);

View File

@ -29,10 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -241,6 +238,18 @@ public class StoreCouponServiceImpl extends ServiceImpl<StoreCouponDao, StoreCou
return update(updateWrapper);
}
@Override
public List<StoreCouponFrontResponse> getNewUserCoupon(PageParamRequest pageParamRequest) {
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
List<StoreCoupon> registerList = findRegisterList();
List<StoreCouponFrontResponse> resList = registerList.stream().map(i-> {
StoreCouponFrontResponse scf = new StoreCouponFrontResponse();
BeanUtils.copyProperties(i, scf);
return scf;
}).collect(Collectors.toList());
return resList;
}
/**
* 获取用户注册赠送新人券
* @return List<StoreCoupon>

View File

@ -343,6 +343,11 @@ public class StoreCouponUserServiceImpl extends ServiceImpl<StoreCouponUserDao,
*/
@Override
public Boolean receiveCoupon(UserCouponReceiveRequest request) {
// 这里只做新人领取假象因为在授权时已经把新人券已经发放到账号
String userType = request.getUserType();
if (StringUtils.isNotEmpty(userType) && userType.equals("register")) {
return true;
}
// 获取优惠券信息
StoreCoupon storeCoupon = storeCouponService.getInfoException(request.getCouponId());

View File

@ -215,7 +215,9 @@ public class StoreProductServiceImpl extends ServiceImpl<StoreProductDao, StoreP
.or().like(StoreProduct::getStoreName, request.getKeywords())
.or().like(StoreProduct::getKeyword, request.getKeywords()));
}
lambdaQueryWrapper.apply(StringUtils.isNotBlank(request.getCateId()), "FIND_IN_SET ('" + request.getCateId() + "', cate_id)");
if (StringUtils.isNotBlank(request.getCateId())) {
lambdaQueryWrapper.apply( "FIND_IN_SET ('" + request.getCateId() + "', cate_id)");
}
lambdaQueryWrapper.orderByDesc(StoreProduct::getSort).orderByDesc(StoreProduct::getId);
Page<StoreProduct> storeProductPage = PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
@ -224,43 +226,43 @@ public class StoreProductServiceImpl extends ServiceImpl<StoreProductDao, StoreP
for (StoreProduct product : storeProducts) {
StoreProductResponse storeProductResponse = new StoreProductResponse();
BeanUtils.copyProperties(product, storeProductResponse);
StoreProductAttr storeProductAttrPram = new StoreProductAttr();
storeProductAttrPram.setProductId(product.getId()).setType(Constants.PRODUCT_TYPE_NORMAL);
List<StoreProductAttr> attrs = attrService.getByEntity(storeProductAttrPram);
if (attrs.size() > 0) {
storeProductResponse.setAttr(attrs);
}
List<StoreProductAttrValueResponse> storeProductAttrValueResponse = new ArrayList<>();
StoreProductAttrValue storeProductAttrValuePram = new StoreProductAttrValue();
storeProductAttrValuePram.setProductId(product.getId()).setType(Constants.PRODUCT_TYPE_NORMAL);
List<StoreProductAttrValue> storeProductAttrValues = storeProductAttrValueService.getByEntity(storeProductAttrValuePram);
storeProductAttrValues.stream().map(e->{
StoreProductAttrValueResponse response = new StoreProductAttrValueResponse();
BeanUtils.copyProperties(e,response);
storeProductAttrValueResponse.add(response);
return e;
}).collect(Collectors.toList());
storeProductResponse.setAttrValue(storeProductAttrValueResponse);
// 处理富文本
StoreProductDescription sd = storeProductDescriptionService.getOne(
new LambdaQueryWrapper<StoreProductDescription>()
.eq(StoreProductDescription::getProductId, product.getId())
.eq(StoreProductDescription::getType, Constants.PRODUCT_TYPE_NORMAL));
if (null != sd) {
storeProductResponse.setContent(null == sd.getDescription()?"":sd.getDescription());
}
// 处理分类中文
List<Category> cg = categoryService.getByIds(CrmebUtil.stringToArray(product.getCateId()));
if (CollUtil.isEmpty(cg)) {
storeProductResponse.setCateValues("");
} else {
storeProductResponse.setCateValues(cg.stream().map(Category::getName).collect(Collectors.joining(",")));
}
storeProductResponse.setCollectCount(
storeProductRelationService.getList(product.getId(),"collect").size());
// StoreProductAttr storeProductAttrPram = new StoreProductAttr();
// storeProductAttrPram.setProductId(product.getId()).setType(Constants.PRODUCT_TYPE_NORMAL);
// List<StoreProductAttr> attrs = attrService.getByEntity(storeProductAttrPram);
//
// if (attrs.size() > 0) {
// storeProductResponse.setAttr(attrs);
// }
// List<StoreProductAttrValueResponse> storeProductAttrValueResponse = new ArrayList<>();
//
// StoreProductAttrValue storeProductAttrValuePram = new StoreProductAttrValue();
// storeProductAttrValuePram.setProductId(product.getId()).setType(Constants.PRODUCT_TYPE_NORMAL);
// List<StoreProductAttrValue> storeProductAttrValues = storeProductAttrValueService.getByEntity(storeProductAttrValuePram);
// storeProductAttrValues.stream().map(e->{
// StoreProductAttrValueResponse response = new StoreProductAttrValueResponse();
// BeanUtils.copyProperties(e,response);
// storeProductAttrValueResponse.add(response);
// return e;
// }).collect(Collectors.toList());
// storeProductResponse.setAttrValue(storeProductAttrValueResponse);
// // 处理富文本
// StoreProductDescription sd = storeProductDescriptionService.getOne(
// new LambdaQueryWrapper<StoreProductDescription>()
// .eq(StoreProductDescription::getProductId, product.getId())
// .eq(StoreProductDescription::getType, Constants.PRODUCT_TYPE_NORMAL));
// if (null != sd) {
// storeProductResponse.setContent(null == sd.getDescription()?"":sd.getDescription());
// }
// // 处理分类中文
// List<Category> cg = categoryService.getByIds(CrmebUtil.stringToArray(product.getCateId()));
// if (CollUtil.isEmpty(cg)) {
// storeProductResponse.setCateValues("");
// } else {
// storeProductResponse.setCateValues(cg.stream().map(Category::getName).collect(Collectors.joining(",")));
// }
//
// storeProductResponse.setCollectCount(
// storeProductRelationService.getList(product.getId(),"collect").size());
storeProductResponses.add(storeProductResponse);
}
// 多条sql查询处理分页正确
@ -606,7 +608,7 @@ public class StoreProductServiceImpl extends ServiceImpl<StoreProductDao, StoreP
storeProductResponse.setAttr(attrService.getByEntity(spaPram));
// 设置商品所参与的活动
storeProductResponse.setActivityH5(productUtils.getProductCurrentActivity(storeProduct));
// storeProductResponse.setActivityH5(productUtils.getProductCurrentActivity(storeProduct));
StoreProductAttrValue spavPram = new StoreProductAttrValue();
spavPram.setProductId(id).setType(Constants.PRODUCT_TYPE_NORMAL);
List<StoreProductAttrValue> storeProductAttrValues = storeProductAttrValueService.getByEntity(spavPram);
@ -663,7 +665,7 @@ public class StoreProductServiceImpl extends ServiceImpl<StoreProductDao, StoreP
BeanUtils.copyProperties(storeProductAttrValue,atr);
sPAVResponses.add(atr);
}
storeProductResponse.setAttrValues(attrValues);
//storeProductResponse.setAttrValues(attrValues);
storeProductResponse.setAttrValue(sPAVResponses);
// if (null != storeProductAttrResult) {
StoreProductDescription sd = storeProductDescriptionService.getOne(
@ -768,57 +770,43 @@ public class StoreProductServiceImpl extends ServiceImpl<StoreProductDao, StoreP
*/
@Override
public List<StoreProductTabsHeader> getTabsHeader() {
List<StoreProductTabsHeader> headers = new ArrayList<>();
StoreProductTabsHeader header1 = new StoreProductTabsHeader(0,"出售中商品",1);
StoreProductTabsHeader header2 = new StoreProductTabsHeader(0,"仓库中商品",2);
StoreProductTabsHeader header3 = new StoreProductTabsHeader(0,"已经售馨商品",3);
StoreProductTabsHeader header4 = new StoreProductTabsHeader(0,"警戒库存",4);
StoreProductTabsHeader header5 = new StoreProductTabsHeader(0,"商品回收站",5);
headers.add(header1);
headers.add(header2);
headers.add(header3);
headers.add(header4);
headers.add(header5);
for (StoreProductTabsHeader h : headers) {
LambdaQueryWrapper<StoreProduct> lambdaQueryWrapper = new LambdaQueryWrapper<>();
switch (h.getType()) {
case 1:
//出售中已上架
lambdaQueryWrapper.eq(StoreProduct::getIsShow, true);
lambdaQueryWrapper.eq(StoreProduct::getIsRecycle, false);
lambdaQueryWrapper.eq(StoreProduct::getIsDel, false);
break;
case 2:
//仓库中未上架
lambdaQueryWrapper.eq(StoreProduct::getIsShow, false);
lambdaQueryWrapper.eq(StoreProduct::getIsRecycle, false);
lambdaQueryWrapper.eq(StoreProduct::getIsDel, false);
break;
case 3:
//已售罄
lambdaQueryWrapper.le(StoreProduct::getStock, 0);
lambdaQueryWrapper.eq(StoreProduct::getIsRecycle, false);
lambdaQueryWrapper.eq(StoreProduct::getIsDel, false);
break;
case 4:
//警戒库存
Integer stock = Integer.parseInt(systemConfigService.getValueByKey("store_stock"));
lambdaQueryWrapper.le(StoreProduct::getStock, stock);
lambdaQueryWrapper.eq(StoreProduct::getIsRecycle, false);
LambdaQueryWrapper<StoreProduct> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(StoreProduct::getIsDel, false);
break;
case 5:
//回收站
lambdaQueryWrapper.eq(StoreProduct::getIsRecycle, true);
lambdaQueryWrapper.eq(StoreProduct::getIsDel, false);
break;
default:
break;
}
List<StoreProduct> storeProducts = dao.selectList(lambdaQueryWrapper);
h.setCount(storeProducts.size());
Integer header1Count = 0;
Integer header2Count = 0;
Integer header3Count = 0;
Integer header4Count = 0;
Integer header5Count = 0;
for (StoreProduct storeProduct : storeProducts) {
// 出售中商品
if (storeProduct.getIsShow() && !storeProduct.getIsRecycle()) {
header1Count = header1Count + 1;
}
// 仓库中商品
else if (!storeProduct.getIsShow() && !storeProduct.getIsRecycle()) {
header2Count = header2Count + 1;
}
// 已经售馨商品
else if (storeProduct.getStock() <= 0 && !storeProduct.getIsRecycle()) {
header3Count = header3Count + 1;
}
// 警戒库存
else if (storeProduct.getStock() <= stock && !storeProduct.getIsRecycle()) {
header4Count = header4Count + 1;
}
// 商品回收站
else if (storeProduct.getIsRecycle()) {
header5Count = header5Count + 1;
}
}
List<StoreProductTabsHeader> headers = new ArrayList<>();
headers.add(new StoreProductTabsHeader(header1Count,"出售中商品",1));
headers.add(new StoreProductTabsHeader(header2Count,"仓库中商品",2));
headers.add(new StoreProductTabsHeader(header3Count,"已经售馨商品",3));
headers.add(new StoreProductTabsHeader(header4Count,"警戒库存",4));
headers.add(new StoreProductTabsHeader(header5Count,"商品回收站",5));
return headers;
}
@ -1208,8 +1196,11 @@ public class StoreProductServiceImpl extends ServiceImpl<StoreProductDao, StoreP
public List<StoreProduct> getIndexProduct(Integer type, PageParamRequest pageParamRequest) {
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
LambdaQueryWrapper<StoreProduct> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.select(StoreProduct::getId, StoreProduct::getImage, StoreProduct::getStoreName,StoreProduct::getUnitName,
StoreProduct::getPrice, StoreProduct::getOtPrice, StoreProduct::getActivity, StoreProduct::getTags, StoreProduct::getSales, StoreProduct::getFicti);
lambdaQueryWrapper.select(
StoreProduct::getId, StoreProduct::getImage, StoreProduct::getStoreName,StoreProduct::getUnitName,StoreProduct::getSpecType,StoreProduct::getStock,
StoreProduct::getPrice, StoreProduct::getOtPrice, StoreProduct::getActivity, StoreProduct::getTags, StoreProduct::getSales, StoreProduct::getFicti,
StoreProduct::getFlatPattern, StoreProduct::getStoreInfo
);
switch (type) {
case Constants.INDEX_RECOMMEND_BANNER: //精品推荐
lambdaQueryWrapper.eq(StoreProduct::getIsBest, true);
@ -1458,4 +1449,3 @@ public class StoreProductServiceImpl extends ServiceImpl<StoreProductDao, StoreP
}
}

View File

@ -56,7 +56,6 @@ public class SystemAttachmentServiceImpl extends ServiceImpl<SystemAttachmentDao
*/
@Override
public List<SystemAttachment> getList(Integer pid, String attType, PageParamRequest pageParamRequest) {
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
LambdaQueryWrapper<SystemAttachment> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SystemAttachment::getPid, pid);
if(StringUtils.isNotEmpty(attType)){
@ -65,6 +64,7 @@ public class SystemAttachmentServiceImpl extends ServiceImpl<SystemAttachmentDao
lambdaQueryWrapper.in(SystemAttachment::getAttType, StringUtils.split(extStr,","));
}
lambdaQueryWrapper.orderByDesc(SystemAttachment::getAttId);
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
return dao.selectList(lambdaQueryWrapper);
}