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

View File

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

View File

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

View File

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

View File

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

View File

@ -34,6 +34,20 @@ public class CouponController {
@Autowired @Autowired
private StoreCouponUserService storeCouponUserService; 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-品类 * @param type 类型1-通用2-商品3-品类

View File

@ -36,7 +36,7 @@ public class ProductController {
*/ */
@ApiOperation(value = "首页商品列表") @ApiOperation(value = "首页商品列表")
@RequestMapping(value = "/product/{type}", method = RequestMethod.GET) @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) { public CommonResult<CommonPage<IndexProductResponse>> getProductList(@PathVariable(value = "type") Integer type, PageParamRequest pageParamRequest) {
return CommonResult.success(productService.getProductListByType(type, 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) { public ProductDetailResponse getDetail(Integer id, String type) {
// 获取用户 // 获取用户
User user = userService.getInfo(); User user = userService.getInfo();
SystemUserLevel userLevel = null; // SystemUserLevel userLevel = null;
if (ObjectUtil.isNotNull(user) && user.getLevel() > 0) { // if (ObjectUtil.isNotNull(user) && user.getLevel() > 0) {
userLevel = systemUserLevelService.getByLevelId(user.getLevel()); // userLevel = systemUserLevelService.getByLevelId(user.getLevel());
} // }
ProductDetailResponse productDetailResponse = new ProductDetailResponse(); ProductDetailResponse productDetailResponse = new ProductDetailResponse();
// 查询商品 // 查询商品
StoreProduct storeProduct = storeProductService.getH5Detail(id); StoreProduct storeProduct = storeProductService.getH5Detail(id);
if (ObjectUtil.isNotNull(userLevel)) { // if (ObjectUtil.isNotNull(userLevel)) {
storeProduct.setVipPrice(storeProduct.getPrice()); // storeProduct.setVipPrice(storeProduct.getPrice());
} // }
productDetailResponse.setProductInfo(storeProduct);
StoreProductResponse spResponse = new StoreProductResponse();
BeanUtils.copyProperties(storeProduct, spResponse);
productDetailResponse.setProductInfo(spResponse);
// 获取商品规格 // 获取商品规格
List<StoreProductAttr> attrList = attrService.getListByProductIdAndType(storeProduct.getId(), Constants.PRODUCT_TYPE_NORMAL); List<StoreProductAttr> attrList = attrService.getListByProductIdAndType(storeProduct.getId(), Constants.PRODUCT_TYPE_NORMAL);
@ -149,34 +152,34 @@ public class ProductServiceImpl implements ProductService {
for (StoreProductAttrValue storeProductAttrValue : storeProductAttrValues) { for (StoreProductAttrValue storeProductAttrValue : storeProductAttrValues) {
StoreProductAttrValueResponse atr = new StoreProductAttrValueResponse(); StoreProductAttrValueResponse atr = new StoreProductAttrValueResponse();
BeanUtils.copyProperties(storeProductAttrValue, atr); BeanUtils.copyProperties(storeProductAttrValue, atr);
// 设置会员价 // // 设置会员价
if (ObjectUtil.isNotNull(userLevel)) { // if (ObjectUtil.isNotNull(userLevel)) {
atr.setVipPrice(atr.getPrice()); // atr.setVipPrice(atr.getPrice());
} // }
skuMap.put(atr.getSuk(), atr); skuMap.put(atr.getSuk(), atr);
} }
productDetailResponse.setProductValue(skuMap); productDetailResponse.setProductValue(skuMap);
// 用户收藏分销返佣 // 用户收藏
if (ObjectUtil.isNotNull(user)) { if (ObjectUtil.isNotNull(user)) {
// 查询用户是否收藏收藏 // 查询用户是否收藏收藏
user = userService.getInfo(); user = userService.getInfo();
productDetailResponse.setUserCollect(storeProductRelationService.getLikeOrCollectByUser(user.getUid(), id,false).size() > 0); productDetailResponse.setUserCollect(storeProductRelationService.getLikeOrCollectByUser(user.getUid(), id,false).size() > 0);
// 判断是否开启分销 // // 判断是否开启分销
String brokerageFuncStatus = systemConfigService.getValueByKey(SysConfigConstants.CONFIG_KEY_BROKERAGE_FUNC_STATUS); // String brokerageFuncStatus = systemConfigService.getValueByKey(SysConfigConstants.CONFIG_KEY_BROKERAGE_FUNC_STATUS);
if (brokerageFuncStatus.equals(Constants.COMMON_SWITCH_OPEN)) {// 分销开启 // if (brokerageFuncStatus.equals(Constants.COMMON_SWITCH_OPEN)) {// 分销开启
// 判断是否开启气泡 // // 判断是否开启气泡
String isBubble = systemConfigService.getValueByKey(SysConfigConstants.CONFIG_KEY_STORE_BROKERAGE_IS_BUBBLE); // String isBubble = systemConfigService.getValueByKey(SysConfigConstants.CONFIG_KEY_STORE_BROKERAGE_IS_BUBBLE);
if (isBubble.equals(Constants.COMMON_SWITCH_OPEN)) { // if (isBubble.equals(Constants.COMMON_SWITCH_OPEN)) {
productDetailResponse.setPriceName(getPacketPriceRange(storeProduct.getIsSub(), storeProductAttrValues, user.getIsPromoter())); // productDetailResponse.setPriceName(getPacketPriceRange(storeProduct.getIsSub(), storeProductAttrValues, user.getIsPromoter()));
} // }
} // }
} else { } else {
productDetailResponse.setUserCollect(false); productDetailResponse.setUserCollect(false);
} }
// 商品活动 // // 商品活动
List<ProductActivityItemResponse> activityAllH5 = productUtils.getProductAllActivity(storeProduct); // List<ProductActivityItemResponse> activityAllH5 = productUtils.getProductAllActivity(storeProduct);
productDetailResponse.setActivityAllH5(activityAllH5); // productDetailResponse.setActivityAllH5(activityAllH5);
// 商品浏览量+1 // 商品浏览量+1
StoreProduct updateProduct = new StoreProduct(); StoreProduct updateProduct = new StoreProduct();
@ -204,11 +207,11 @@ public class ProductServiceImpl implements ProductService {
@Override @Override
public ProductDetailResponse getSkuDetail(Integer id) { public ProductDetailResponse getSkuDetail(Integer id) {
// 获取用户 // 获取用户
User user = userService.getInfo(); // User user = userService.getInfo();
SystemUserLevel userLevel = null; // SystemUserLevel userLevel = null;
if (ObjectUtil.isNotNull(user) && user.getLevel() > 0) { // if (ObjectUtil.isNotNull(user) && user.getLevel() > 0) {
userLevel = systemUserLevelService.getByLevelId(user.getLevel()); // userLevel = systemUserLevelService.getByLevelId(user.getLevel());
} // }
ProductDetailResponse productDetailResponse = new ProductDetailResponse(); ProductDetailResponse productDetailResponse = new ProductDetailResponse();
// 查询商品 // 查询商品
@ -225,11 +228,11 @@ public class ProductServiceImpl implements ProductService {
for (StoreProductAttrValue storeProductAttrValue : storeProductAttrValues) { for (StoreProductAttrValue storeProductAttrValue : storeProductAttrValues) {
StoreProductAttrValueResponse atr = new StoreProductAttrValueResponse(); StoreProductAttrValueResponse atr = new StoreProductAttrValueResponse();
BeanUtils.copyProperties(storeProductAttrValue, atr); BeanUtils.copyProperties(storeProductAttrValue, atr);
// 设置会员价 // // 设置会员价
if (ObjectUtil.isNotNull(userLevel)) { // if (ObjectUtil.isNotNull(userLevel)) {
BigDecimal vipPrice = atr.getPrice().multiply(new BigDecimal(userLevel.getDiscount())).divide(new BigDecimal(100), 2 ,BigDecimal.ROUND_HALF_UP); // BigDecimal vipPrice = atr.getPrice().multiply(new BigDecimal(userLevel.getDiscount())).divide(new BigDecimal(100), 2 ,BigDecimal.ROUND_HALF_UP);
atr.setVipPrice(vipPrice); // atr.setVipPrice(vipPrice);
} // }
skuMap.put(atr.getSuk(), atr); skuMap.put(atr.getSuk(), atr);
} }
productDetailResponse.setProductValue(skuMap); productDetailResponse.setProductValue(skuMap);
@ -337,13 +340,14 @@ public class ProductServiceImpl implements ProductService {
return resultIndexProductResponse(storeProductList); return resultIndexProductResponse(storeProductList);
} }
private static Integer floorPage = 1;
private List<IndexProductResponse> addFloor(List<IndexProductResponse> list) { private List<IndexProductResponse> addFloor(List<IndexProductResponse> list) {
Random random = new Random(); Random random = new Random();
if (random.nextBoolean()) { if (random.nextBoolean()) {
FloorRequest floor = new FloorRequest(); FloorRequest floor = new FloorRequest();
floor.setChannel(Constants.HOME_TYPE_3); floor.setChannel(Constants.HOME_TYPE_3);
PageParamRequest page = new PageParamRequest(); PageParamRequest page = new PageParamRequest();
page.setPage(random.nextInt(4)); page.setPage(floorPage);
page.setLimit(2); page.setLimit(2);
List<HomeVo> homeVos = ebHomeService.selectPageFloor(floor, page); List<HomeVo> homeVos = ebHomeService.selectPageFloor(floor, page);
if (!homeVos.isEmpty()) { if (!homeVos.isEmpty()) {
@ -353,6 +357,7 @@ public class ProductServiceImpl implements ProductService {
list.add(addItem); list.add(addItem);
// 使用Collections.shuffle()打乱列表 // 使用Collections.shuffle()打乱列表
Collections.shuffle(list); Collections.shuffle(list);
floorPage = floorPage + 1;
} }
} }
return list; return list;
@ -390,20 +395,20 @@ public class ProductServiceImpl implements ProductService {
break; break;
} }
} }
if (activity.equals(Constants.PRODUCT_TYPE_BARGAIN)) { // if (activity.equals(Constants.PRODUCT_TYPE_BARGAIN)) {
ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_BARGAIN); // ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_BARGAIN);
if (ObjectUtil.isNotNull(itemResponse)) { // if (ObjectUtil.isNotNull(itemResponse)) {
productResponse.setActivityH5(itemResponse); // productResponse.setActivityH5(itemResponse);
break; // break;
} // }
} // }
if (activity.equals(Constants.PRODUCT_TYPE_PINGTUAN)) { // if (activity.equals(Constants.PRODUCT_TYPE_PINGTUAN)) {
ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_PINGTUAN); // ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_PINGTUAN);
if (ObjectUtil.isNotNull(itemResponse)) { // if (ObjectUtil.isNotNull(itemResponse)) {
productResponse.setActivityH5(itemResponse); // productResponse.setActivityH5(itemResponse);
break; // break;
} // }
} // }
} }
} }
productResponseArrayList.add(productResponse); 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())); logger.error(StrUtil.format("绑定手机号自动登录生成token失败uid={}", finalUser.getUid()));
e.printStackTrace(); e.printStackTrace();
} }
loginResponse.setType("login"); loginResponse.setType("register");
loginResponse.setUid(user.getUid()); loginResponse.setUid(user.getUid());
loginResponse.setNikeName(user.getNickname()); loginResponse.setNikeName(user.getNickname());
loginResponse.setPhone(user.getPhone()); loginResponse.setPhone(user.getPhone());

View File

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

View File

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

View File

@ -29,10 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -241,6 +238,18 @@ public class StoreCouponServiceImpl extends ServiceImpl<StoreCouponDao, StoreCou
return update(updateWrapper); 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> * @return List<StoreCoupon>

View File

@ -343,6 +343,11 @@ public class StoreCouponUserServiceImpl extends ServiceImpl<StoreCouponUserDao,
*/ */
@Override @Override
public Boolean receiveCoupon(UserCouponReceiveRequest request) { public Boolean receiveCoupon(UserCouponReceiveRequest request) {
// 这里只做新人领取假象因为在授权时已经把新人券已经发放到账号
String userType = request.getUserType();
if (StringUtils.isNotEmpty(userType) && userType.equals("register")) {
return true;
}
// 获取优惠券信息 // 获取优惠券信息
StoreCoupon storeCoupon = storeCouponService.getInfoException(request.getCouponId()); 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::getStoreName, request.getKeywords())
.or().like(StoreProduct::getKeyword, 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); lambdaQueryWrapper.orderByDesc(StoreProduct::getSort).orderByDesc(StoreProduct::getId);
Page<StoreProduct> storeProductPage = PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit()); Page<StoreProduct> storeProductPage = PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
@ -224,43 +226,43 @@ public class StoreProductServiceImpl extends ServiceImpl<StoreProductDao, StoreP
for (StoreProduct product : storeProducts) { for (StoreProduct product : storeProducts) {
StoreProductResponse storeProductResponse = new StoreProductResponse(); StoreProductResponse storeProductResponse = new StoreProductResponse();
BeanUtils.copyProperties(product, storeProductResponse); BeanUtils.copyProperties(product, storeProductResponse);
StoreProductAttr storeProductAttrPram = new StoreProductAttr(); // StoreProductAttr storeProductAttrPram = new StoreProductAttr();
storeProductAttrPram.setProductId(product.getId()).setType(Constants.PRODUCT_TYPE_NORMAL); // storeProductAttrPram.setProductId(product.getId()).setType(Constants.PRODUCT_TYPE_NORMAL);
List<StoreProductAttr> attrs = attrService.getByEntity(storeProductAttrPram); // List<StoreProductAttr> attrs = attrService.getByEntity(storeProductAttrPram);
//
if (attrs.size() > 0) { // if (attrs.size() > 0) {
storeProductResponse.setAttr(attrs); // storeProductResponse.setAttr(attrs);
} // }
List<StoreProductAttrValueResponse> storeProductAttrValueResponse = new ArrayList<>(); // List<StoreProductAttrValueResponse> storeProductAttrValueResponse = new ArrayList<>();
//
StoreProductAttrValue storeProductAttrValuePram = new StoreProductAttrValue(); // StoreProductAttrValue storeProductAttrValuePram = new StoreProductAttrValue();
storeProductAttrValuePram.setProductId(product.getId()).setType(Constants.PRODUCT_TYPE_NORMAL); // storeProductAttrValuePram.setProductId(product.getId()).setType(Constants.PRODUCT_TYPE_NORMAL);
List<StoreProductAttrValue> storeProductAttrValues = storeProductAttrValueService.getByEntity(storeProductAttrValuePram); // List<StoreProductAttrValue> storeProductAttrValues = storeProductAttrValueService.getByEntity(storeProductAttrValuePram);
storeProductAttrValues.stream().map(e->{ // storeProductAttrValues.stream().map(e->{
StoreProductAttrValueResponse response = new StoreProductAttrValueResponse(); // StoreProductAttrValueResponse response = new StoreProductAttrValueResponse();
BeanUtils.copyProperties(e,response); // BeanUtils.copyProperties(e,response);
storeProductAttrValueResponse.add(response); // storeProductAttrValueResponse.add(response);
return e; // return e;
}).collect(Collectors.toList()); // }).collect(Collectors.toList());
storeProductResponse.setAttrValue(storeProductAttrValueResponse); // storeProductResponse.setAttrValue(storeProductAttrValueResponse);
// 处理富文本 // // 处理富文本
StoreProductDescription sd = storeProductDescriptionService.getOne( // StoreProductDescription sd = storeProductDescriptionService.getOne(
new LambdaQueryWrapper<StoreProductDescription>() // new LambdaQueryWrapper<StoreProductDescription>()
.eq(StoreProductDescription::getProductId, product.getId()) // .eq(StoreProductDescription::getProductId, product.getId())
.eq(StoreProductDescription::getType, Constants.PRODUCT_TYPE_NORMAL)); // .eq(StoreProductDescription::getType, Constants.PRODUCT_TYPE_NORMAL));
if (null != sd) { // if (null != sd) {
storeProductResponse.setContent(null == sd.getDescription()?"":sd.getDescription()); // storeProductResponse.setContent(null == sd.getDescription()?"":sd.getDescription());
} // }
// 处理分类中文 // // 处理分类中文
List<Category> cg = categoryService.getByIds(CrmebUtil.stringToArray(product.getCateId())); // List<Category> cg = categoryService.getByIds(CrmebUtil.stringToArray(product.getCateId()));
if (CollUtil.isEmpty(cg)) { // if (CollUtil.isEmpty(cg)) {
storeProductResponse.setCateValues(""); // storeProductResponse.setCateValues("");
} else { // } else {
storeProductResponse.setCateValues(cg.stream().map(Category::getName).collect(Collectors.joining(","))); // storeProductResponse.setCateValues(cg.stream().map(Category::getName).collect(Collectors.joining(",")));
} // }
//
storeProductResponse.setCollectCount( // storeProductResponse.setCollectCount(
storeProductRelationService.getList(product.getId(),"collect").size()); // storeProductRelationService.getList(product.getId(),"collect").size());
storeProductResponses.add(storeProductResponse); storeProductResponses.add(storeProductResponse);
} }
// 多条sql查询处理分页正确 // 多条sql查询处理分页正确
@ -606,7 +608,7 @@ public class StoreProductServiceImpl extends ServiceImpl<StoreProductDao, StoreP
storeProductResponse.setAttr(attrService.getByEntity(spaPram)); storeProductResponse.setAttr(attrService.getByEntity(spaPram));
// 设置商品所参与的活动 // 设置商品所参与的活动
storeProductResponse.setActivityH5(productUtils.getProductCurrentActivity(storeProduct)); // storeProductResponse.setActivityH5(productUtils.getProductCurrentActivity(storeProduct));
StoreProductAttrValue spavPram = new StoreProductAttrValue(); StoreProductAttrValue spavPram = new StoreProductAttrValue();
spavPram.setProductId(id).setType(Constants.PRODUCT_TYPE_NORMAL); spavPram.setProductId(id).setType(Constants.PRODUCT_TYPE_NORMAL);
List<StoreProductAttrValue> storeProductAttrValues = storeProductAttrValueService.getByEntity(spavPram); List<StoreProductAttrValue> storeProductAttrValues = storeProductAttrValueService.getByEntity(spavPram);
@ -663,7 +665,7 @@ public class StoreProductServiceImpl extends ServiceImpl<StoreProductDao, StoreP
BeanUtils.copyProperties(storeProductAttrValue,atr); BeanUtils.copyProperties(storeProductAttrValue,atr);
sPAVResponses.add(atr); sPAVResponses.add(atr);
} }
storeProductResponse.setAttrValues(attrValues); //storeProductResponse.setAttrValues(attrValues);
storeProductResponse.setAttrValue(sPAVResponses); storeProductResponse.setAttrValue(sPAVResponses);
// if (null != storeProductAttrResult) { // if (null != storeProductAttrResult) {
StoreProductDescription sd = storeProductDescriptionService.getOne( StoreProductDescription sd = storeProductDescriptionService.getOne(
@ -768,57 +770,43 @@ public class StoreProductServiceImpl extends ServiceImpl<StoreProductDao, StoreP
*/ */
@Override @Override
public List<StoreProductTabsHeader> getTabsHeader() { public List<StoreProductTabsHeader> getTabsHeader() {
List<StoreProductTabsHeader> headers = new ArrayList<>(); Integer stock = Integer.parseInt(systemConfigService.getValueByKey("store_stock"));
StoreProductTabsHeader header1 = new StoreProductTabsHeader(0,"出售中商品",1); LambdaQueryWrapper<StoreProduct> lambdaQueryWrapper = new LambdaQueryWrapper<>();
StoreProductTabsHeader header2 = new StoreProductTabsHeader(0,"仓库中商品",2); lambdaQueryWrapper.eq(StoreProduct::getIsDel, false);
StoreProductTabsHeader header3 = new StoreProductTabsHeader(0,"已经售馨商品",3); List<StoreProduct> storeProducts = dao.selectList(lambdaQueryWrapper);
StoreProductTabsHeader header4 = new StoreProductTabsHeader(0,"警戒库存",4); Integer header1Count = 0;
StoreProductTabsHeader header5 = new StoreProductTabsHeader(0,"商品回收站",5); Integer header2Count = 0;
headers.add(header1); Integer header3Count = 0;
headers.add(header2); Integer header4Count = 0;
headers.add(header3); Integer header5Count = 0;
headers.add(header4); for (StoreProduct storeProduct : storeProducts) {
headers.add(header5); // 出售中商品
for (StoreProductTabsHeader h : headers) { if (storeProduct.getIsShow() && !storeProduct.getIsRecycle()) {
LambdaQueryWrapper<StoreProduct> lambdaQueryWrapper = new LambdaQueryWrapper<>(); header1Count = header1Count + 1;
switch (h.getType()) { }
case 1: // 仓库中商品
//出售中已上架 else if (!storeProduct.getIsShow() && !storeProduct.getIsRecycle()) {
lambdaQueryWrapper.eq(StoreProduct::getIsShow, true); header2Count = header2Count + 1;
lambdaQueryWrapper.eq(StoreProduct::getIsRecycle, false); }
lambdaQueryWrapper.eq(StoreProduct::getIsDel, false); // 已经售馨商品
break; else if (storeProduct.getStock() <= 0 && !storeProduct.getIsRecycle()) {
case 2: header3Count = header3Count + 1;
//仓库中未上架 }
lambdaQueryWrapper.eq(StoreProduct::getIsShow, false); // 警戒库存
lambdaQueryWrapper.eq(StoreProduct::getIsRecycle, false); else if (storeProduct.getStock() <= stock && !storeProduct.getIsRecycle()) {
lambdaQueryWrapper.eq(StoreProduct::getIsDel, false); header4Count = header4Count + 1;
break; }
case 3: // 商品回收站
//已售罄 else if (storeProduct.getIsRecycle()) {
lambdaQueryWrapper.le(StoreProduct::getStock, 0); header5Count = header5Count + 1;
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.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());
} }
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; return headers;
} }
@ -1208,8 +1196,11 @@ public class StoreProductServiceImpl extends ServiceImpl<StoreProductDao, StoreP
public List<StoreProduct> getIndexProduct(Integer type, PageParamRequest pageParamRequest) { public List<StoreProduct> getIndexProduct(Integer type, PageParamRequest pageParamRequest) {
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit()); PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
LambdaQueryWrapper<StoreProduct> lambdaQueryWrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<StoreProduct> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.select(StoreProduct::getId, StoreProduct::getImage, StoreProduct::getStoreName,StoreProduct::getUnitName, lambdaQueryWrapper.select(
StoreProduct::getPrice, StoreProduct::getOtPrice, StoreProduct::getActivity, StoreProduct::getTags, StoreProduct::getSales, StoreProduct::getFicti); 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) { switch (type) {
case Constants.INDEX_RECOMMEND_BANNER: //精品推荐 case Constants.INDEX_RECOMMEND_BANNER: //精品推荐
lambdaQueryWrapper.eq(StoreProduct::getIsBest, true); 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 @Override
public List<SystemAttachment> getList(Integer pid, String attType, PageParamRequest pageParamRequest) { public List<SystemAttachment> getList(Integer pid, String attType, PageParamRequest pageParamRequest) {
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
LambdaQueryWrapper<SystemAttachment> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemAttachment> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SystemAttachment::getPid, pid); lambdaQueryWrapper.eq(SystemAttachment::getPid, pid);
if(StringUtils.isNotEmpty(attType)){ if(StringUtils.isNotEmpty(attType)){
@ -65,6 +64,7 @@ public class SystemAttachmentServiceImpl extends ServiceImpl<SystemAttachmentDao
lambdaQueryWrapper.in(SystemAttachment::getAttType, StringUtils.split(extStr,",")); lambdaQueryWrapper.in(SystemAttachment::getAttType, StringUtils.split(extStr,","));
} }
lambdaQueryWrapper.orderByDesc(SystemAttachment::getAttId); lambdaQueryWrapper.orderByDesc(SystemAttachment::getAttId);
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
return dao.selectList(lambdaQueryWrapper); return dao.selectList(lambdaQueryWrapper);
} }