132 changed files with 5230 additions and 8 deletions
@ -0,0 +1,68 @@ |
|||
package cc.hiver.core.base; |
|||
|
|||
import cc.hiver.core.common.constant.CommonConstant; |
|||
import cc.hiver.core.common.utils.SnowFlakeUtil; |
|||
import com.baomidou.mybatisplus.annotation.FieldFill; |
|||
import com.baomidou.mybatisplus.annotation.TableField; |
|||
import com.baomidou.mybatisplus.annotation.TableId; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.springframework.data.annotation.CreatedBy; |
|||
import org.springframework.data.annotation.CreatedDate; |
|||
import org.springframework.data.annotation.LastModifiedBy; |
|||
import org.springframework.data.annotation.LastModifiedDate; |
|||
import org.springframework.data.jpa.domain.support.AuditingEntityListener; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import javax.persistence.EntityListeners; |
|||
import javax.persistence.Id; |
|||
import javax.persistence.MappedSuperclass; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
@Data |
|||
@MappedSuperclass |
|||
@EntityListeners(AuditingEntityListener.class) |
|||
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler", "fieldHandler"}) |
|||
public abstract class HiverBaseMallEntity implements Serializable { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@Id |
|||
@TableId |
|||
@ApiModelProperty(value = "唯一标识") |
|||
private String id = SnowFlakeUtil.nextId().toString(); |
|||
|
|||
@ApiModelProperty("店铺id") |
|||
private String mallId; |
|||
|
|||
@ApiModelProperty("办公区域") |
|||
private String region; |
|||
|
|||
@ApiModelProperty(value = "创建者") |
|||
@CreatedBy |
|||
@TableField(fill = FieldFill.INSERT) |
|||
private String createBy; |
|||
|
|||
@CreatedDate |
|||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
@ApiModelProperty(value = "创建时间") |
|||
private Date createTime; |
|||
|
|||
@ApiModelProperty(value = "更新者") |
|||
@LastModifiedBy |
|||
@TableField(fill = FieldFill.UPDATE) |
|||
private String updateBy; |
|||
|
|||
@LastModifiedDate |
|||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
@ApiModelProperty(value = "更新时间") |
|||
@TableField(fill = FieldFill.UPDATE) |
|||
private Date updateTime; |
|||
|
|||
@ApiModelProperty(value = "删除标志 默认0") |
|||
private Integer delFlag = CommonConstant.STATUS_NORMAL; |
|||
} |
|||
@ -0,0 +1,33 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.core.base; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Data |
|||
@ApiModel |
|||
public class HiverBasePageQuery { |
|||
@ApiModelProperty(value = "页码", example = "1") |
|||
private int pageNum = 1; |
|||
|
|||
@ApiModelProperty(value = "每页记录数", example = "10") |
|||
private int pageSize = 10; |
|||
} |
|||
@ -0,0 +1,48 @@ |
|||
package cc.hiver.core.common.constant; |
|||
|
|||
/** |
|||
* 商城静态常量 |
|||
* |
|||
* @author Yazhi Li |
|||
*/ |
|||
public interface MallConstant { |
|||
/** |
|||
* 上架 |
|||
*/ |
|||
Integer GOODS_PUT_ON_SALE = 0; |
|||
|
|||
/** |
|||
* 下架 |
|||
*/ |
|||
Integer GOODS_PULL_ON_SALE = -1; |
|||
|
|||
/** |
|||
* 销售单处理中 |
|||
*/ |
|||
Integer SALES_ORDER_PROCESS = 0; |
|||
|
|||
/** |
|||
* 销售单临时保存 |
|||
*/ |
|||
Integer SALES_ORDER_SAVED = 1; |
|||
|
|||
/** |
|||
* 订单锁定的商品列表key前缀 |
|||
*/ |
|||
String ORDER_LOCKED_SKUS_PREFIX = "order:locked:goods:"; |
|||
|
|||
/** |
|||
* 商品分布式锁key前缀 |
|||
*/ |
|||
String SKU_LOCK_PREFIX = "product:stock:lock:"; |
|||
|
|||
/** |
|||
* 临时规格ID前缀 |
|||
*/ |
|||
String SPEC_TEMP_ID_PREFIX = "tid_"; |
|||
|
|||
/** |
|||
* 会员购物车缓存KEY前缀 |
|||
*/ |
|||
String MEMBER_CART_PREFIX = "MEMBER:CART:"; |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
package cc.hiver.core.common.constant; |
|||
|
|||
/** |
|||
* 店铺常量 |
|||
* |
|||
* @author cc |
|||
*/ |
|||
public interface ShopConstant { |
|||
|
|||
/** |
|||
* 用户正常状态 |
|||
*/ |
|||
Integer SHOP_STATUS_NORMAL = 1; |
|||
/** |
|||
* 用户禁用状态 |
|||
*/ |
|||
Integer SHOP_STATUS_LOCK = 0; |
|||
|
|||
} |
|||
@ -0,0 +1,52 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.core.vo; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonInclude; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@ApiModel("下拉选项对象") |
|||
@Data |
|||
@NoArgsConstructor |
|||
public class Option<T> { |
|||
public Option(T value, String label) { |
|||
this.value = value; |
|||
this.label = label; |
|||
} |
|||
|
|||
public Option(T value, String label, List<Option> children) { |
|||
this.value = value; |
|||
this.label = label; |
|||
this.children= children; |
|||
} |
|||
|
|||
@ApiModelProperty("选项的值") |
|||
private T value; |
|||
|
|||
@ApiModelProperty("选项的标签") |
|||
private String label; |
|||
|
|||
@JsonInclude(value = JsonInclude.Include.NON_EMPTY) |
|||
private List<Option> children; |
|||
} |
|||
@ -0,0 +1,109 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.app.controller.admin; |
|||
|
|||
import cc.hiver.app.entity.Shop; |
|||
import cc.hiver.app.service.ShopService; |
|||
import cc.hiver.core.common.constant.ShopConstant; |
|||
import cc.hiver.core.common.utils.PageUtil; |
|||
import cc.hiver.core.common.utils.ResultUtil; |
|||
import cc.hiver.core.common.vo.PageVo; |
|||
import cc.hiver.core.common.vo.Result; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author cc |
|||
*/ |
|||
@Slf4j |
|||
@RestController |
|||
@Api(tags = "店铺管理接口") |
|||
@RequestMapping(value = "/hiver/app/shop/") |
|||
public class ShopController { |
|||
@Autowired |
|||
private ShopService shopService; |
|||
|
|||
@RequestMapping(value = "/getAll", method = RequestMethod.GET) |
|||
@ApiOperation(value = "获取全部数据") |
|||
public Result<List<Shop>> getAll() { |
|||
List<Shop> list = shopService.getAll(); |
|||
return new ResultUtil<List<Shop>>().setData(list); |
|||
} |
|||
|
|||
@RequestMapping(value = "/add", method = RequestMethod.POST) |
|||
@ResponseBody |
|||
@ApiOperation(value = "添加") |
|||
public Result<Object> add(Shop shop) { |
|||
if (shopService.findByShopName(shop.getShopName()) != null) { |
|||
return ResultUtil.error("店铺名称已经存在"); |
|||
} |
|||
shopService.save(shop); |
|||
return ResultUtil.success("添加成功"); |
|||
} |
|||
|
|||
@RequestMapping(value = "/edit", method = RequestMethod.PUT) |
|||
@ResponseBody |
|||
@ApiOperation(value = "编辑") |
|||
public Result<Object> edit(Shop shop) { |
|||
shopService.update(shop); |
|||
return ResultUtil.success("编辑成功"); |
|||
} |
|||
|
|||
@RequestMapping(value = "/delByIds", method = RequestMethod.POST) |
|||
@ResponseBody |
|||
@ApiOperation(value = "通过id删除") |
|||
public Result<Object> delAllByIds(@RequestParam String[] ids) { |
|||
for (String id : ids) { |
|||
Shop shop = shopService.get(id); |
|||
shopService.delete(id); |
|||
} |
|||
return ResultUtil.success("删除成功"); |
|||
} |
|||
|
|||
@RequestMapping(value = "/getByCondition", method = RequestMethod.GET) |
|||
@ApiOperation(value = "多条件分页获取公司列表") |
|||
public Result<Page<Shop>> getByCondition(Shop shop, |
|||
PageVo pageVo) { |
|||
Page<Shop> page = shopService.findByCondition(shop, PageUtil.initPage(pageVo)); |
|||
return new ResultUtil<Page<Shop>>().setData(page); |
|||
} |
|||
|
|||
@RequestMapping(value = "/enable", method = RequestMethod.POST) |
|||
@ApiOperation(value = "启用店铺") |
|||
public Result enable(@RequestParam String id) { |
|||
Shop shop = shopService.get(id); |
|||
shop.setStatus(ShopConstant.SHOP_STATUS_NORMAL); |
|||
shopService.update(shop); |
|||
|
|||
return ResultUtil.success("操作成功"); |
|||
} |
|||
|
|||
@RequestMapping(value = "/disable", method = RequestMethod.POST) |
|||
@ApiOperation(value = "关闭店铺") |
|||
public Result disable(@RequestParam String id) { |
|||
Shop shop = shopService.get(id); |
|||
shop.setStatus(ShopConstant.SHOP_STATUS_LOCK); |
|||
shopService.update(shop); |
|||
|
|||
return ResultUtil.success("操作成功"); |
|||
} |
|||
} |
|||
@ -0,0 +1,37 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.app.dao; |
|||
|
|||
import cc.hiver.app.entity.Shop; |
|||
import cc.hiver.core.base.HiverBaseDao; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.data.domain.Pageable; |
|||
import org.springframework.data.jpa.domain.Specification; |
|||
import org.springframework.lang.Nullable; |
|||
|
|||
/** |
|||
* @author cc |
|||
*/ |
|||
public interface ShopDao extends HiverBaseDao<Shop, String> { |
|||
/** |
|||
* 通过公司名称获得记录 |
|||
* |
|||
* @param shopName |
|||
* @return |
|||
*/ |
|||
Shop findByShopName(String shopName); |
|||
|
|||
} |
|||
@ -0,0 +1,77 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.app.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseEntity; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
|
|||
/** |
|||
* 店铺实体类 |
|||
* |
|||
* @author cc |
|||
*/ |
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_shop") |
|||
@TableName("t_shop") |
|||
@ApiModel(value = "店铺信息") |
|||
public class Shop extends HiverBaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "店铺名称") |
|||
private String shopName; |
|||
|
|||
@ApiModelProperty(value = "店主id") |
|||
private String shopOwnerId; |
|||
|
|||
@ApiModelProperty(value = "店长id") |
|||
private String shopMangerId; |
|||
|
|||
@ApiModelProperty(value = "区域") |
|||
private String shopArea; |
|||
|
|||
@ApiModelProperty(value = "地址") |
|||
private String shopAddress; |
|||
|
|||
@ApiModelProperty(value = "年费") |
|||
private String yearFee; |
|||
|
|||
@ApiModelProperty(value = "充值时间") |
|||
private String chargeTime; |
|||
|
|||
@ApiModelProperty(value = "起始日") |
|||
private String startTime; |
|||
|
|||
@ApiModelProperty(value = "截止日") |
|||
private String endTime; |
|||
|
|||
@ApiModelProperty(value = "状态") |
|||
private int status; |
|||
|
|||
@ApiModelProperty(value = "备注") |
|||
private String remark; |
|||
|
|||
} |
|||
@ -0,0 +1,43 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.app.service; |
|||
|
|||
import cc.hiver.app.entity.Shop; |
|||
import cc.hiver.core.base.HiverBaseService; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.data.domain.Pageable; |
|||
|
|||
/** |
|||
* @author cc |
|||
*/ |
|||
public interface ShopService extends HiverBaseService<Shop, String> { |
|||
/** |
|||
* 多条件获取 |
|||
* |
|||
* @param shop |
|||
* @param pageable |
|||
* @return |
|||
*/ |
|||
Page<Shop> findByCondition(Shop shop, Pageable pageable); |
|||
|
|||
/** |
|||
* 通过公司名称获得记录 |
|||
* |
|||
* @param shopName |
|||
* @return |
|||
*/ |
|||
Shop findByShopName(String shopName); |
|||
} |
|||
@ -0,0 +1,78 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.app.serviceimpl; |
|||
|
|||
import cc.hiver.app.dao.ShopDao; |
|||
import cc.hiver.app.entity.Shop; |
|||
import cc.hiver.app.service.ShopService; |
|||
import cc.hiver.core.base.HiverBaseDao; |
|||
import cn.hutool.core.util.StrUtil; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.data.domain.Pageable; |
|||
import org.springframework.data.jpa.domain.Specification; |
|||
import org.springframework.lang.Nullable; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import javax.persistence.criteria.*; |
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Slf4j |
|||
@Service |
|||
@Transactional |
|||
public class ShopServiceImpl implements ShopService { |
|||
@Autowired |
|||
private ShopDao shopDao; |
|||
|
|||
@Override |
|||
public HiverBaseDao<Shop, String> getRepository() { |
|||
return shopDao; |
|||
} |
|||
|
|||
@Override |
|||
public Page<Shop> findByCondition(Shop Shop, Pageable pageable) { |
|||
return shopDao.findAll(new Specification<Shop>() { |
|||
@Nullable |
|||
@Override |
|||
public Predicate toPredicate(Root<Shop> root, CriteriaQuery<?> cq, CriteriaBuilder cb) { |
|||
Path<String> ShopNameField = root.get("shopName"); |
|||
|
|||
List<Predicate> list = new ArrayList<>(); |
|||
|
|||
if (StrUtil.isNotBlank(Shop.getShopName())) { |
|||
list.add(cb.like(ShopNameField, '%' + Shop.getShopName() + '%')); |
|||
} |
|||
|
|||
|
|||
|
|||
Predicate[] arr = new Predicate[list.size()]; |
|||
cq.where(list.toArray(arr)); |
|||
return null; |
|||
} |
|||
}, pageable); |
|||
} |
|||
|
|||
@Override |
|||
public Shop findByShopName(String ShopName) { |
|||
return shopDao.findByShopName(ShopName); |
|||
} |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|||
<parent> |
|||
<groupId>cc.hiver</groupId> |
|||
<artifactId>hiver-modules</artifactId> |
|||
<version>1.0-SNAPSHOT</version> |
|||
</parent> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
<name>商城模块</name> |
|||
<artifactId>hiver-mall</artifactId> |
|||
</project> |
|||
@ -0,0 +1,30 @@ |
|||
package cc.hiver.mall.common; |
|||
|
|||
import lombok.Getter; |
|||
|
|||
public enum AttributeTypeEnum { |
|||
SPEC(1, "规格"), |
|||
ATTR(2, "属性"); |
|||
|
|||
AttributeTypeEnum(int value, String name) { |
|||
this.value = value; |
|||
this.name = name; |
|||
} |
|||
|
|||
@Getter |
|||
private Integer value; |
|||
|
|||
@Getter |
|||
private String name; |
|||
|
|||
public static AttributeTypeEnum getByValue(Integer value) { |
|||
AttributeTypeEnum attributeTypeEnum = null; |
|||
|
|||
for (AttributeTypeEnum item : values()) { |
|||
if (item.getValue().equals(value)) { |
|||
attributeTypeEnum = item; |
|||
} |
|||
} |
|||
return attributeTypeEnum; |
|||
} |
|||
} |
|||
@ -0,0 +1,70 @@ |
|||
package cc.hiver.mall.controller; |
|||
|
|||
import cc.hiver.core.common.utils.ResultUtil; |
|||
import cc.hiver.core.common.vo.Result; |
|||
import cc.hiver.mall.entity.Address; |
|||
import cc.hiver.mall.service.mybatis.IAddressService; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Slf4j |
|||
@RestController |
|||
@Api(tags = "收货地址接口") |
|||
@RequestMapping(value = "/hiver/app/address/") |
|||
@Transactional |
|||
public class AddressController { |
|||
@Autowired |
|||
private IAddressService addressService; |
|||
|
|||
@RequestMapping(value = "/getAll/{memberId}", method = RequestMethod.GET) |
|||
@ApiOperation(value = "根据会员id获得收货地址列表") |
|||
public Result getAllByMemberId(@ApiParam("会员ID") @PathVariable String memberId) { |
|||
List<Address> list = addressService.listCurrentMemberAddresses(memberId); |
|||
return ResultUtil.data(list); |
|||
} |
|||
|
|||
@RequestMapping(value = "/{addressId}", method = RequestMethod.GET) |
|||
@ApiOperation(value = "通过id获取") |
|||
public Result<Address> get(@ApiParam("地址ID") @PathVariable String addressId) { |
|||
Address data = addressService.getById(addressId); |
|||
return new ResultUtil<Address>().setData(data); |
|||
} |
|||
|
|||
@RequestMapping(value = "/save", method = RequestMethod.POST) |
|||
@ApiOperation(value = "保存数据") |
|||
public Result addAddress(Address entity) { |
|||
boolean result = addressService.addAddress(entity); |
|||
if(result) { |
|||
return ResultUtil.success("添加成功"); |
|||
} else { |
|||
return ResultUtil.error("添加失败"); |
|||
} |
|||
} |
|||
|
|||
@RequestMapping(value = "/edit", method = RequestMethod.POST) |
|||
@ApiOperation(value = "更新数据") |
|||
public Result updateAddress(Address entity) { |
|||
boolean result = addressService.updateAddress(entity); |
|||
if(result) { |
|||
return ResultUtil.success("更新成功"); |
|||
} else { |
|||
return ResultUtil.error("更新失败"); |
|||
} |
|||
} |
|||
|
|||
@RequestMapping(value = "/delByIds", method = RequestMethod.POST) |
|||
@ApiOperation(value = "批量通过ids删除") |
|||
public Result delByIds(@RequestParam String[] ids) { |
|||
for (String id : ids) { |
|||
addressService.removeById(id); |
|||
} |
|||
return ResultUtil.success("批量通过id删除数据成功"); |
|||
} |
|||
} |
|||
@ -0,0 +1,63 @@ |
|||
package cc.hiver.mall.controller; |
|||
|
|||
import cc.hiver.core.common.utils.PageUtil; |
|||
import cc.hiver.core.common.utils.ResultUtil; |
|||
import cc.hiver.core.common.vo.PageVo; |
|||
import cc.hiver.core.common.vo.Result; |
|||
import cc.hiver.mall.entity.CustomAddress; |
|||
import cc.hiver.mall.service.CustomAddressService; |
|||
import cc.hiver.mall.pojo.query.CustomAddressQueryCriteria; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
@Slf4j |
|||
@RestController |
|||
@Api(tags = "客户地址接口") |
|||
@RequestMapping(value = "/hiver/app/customAddress/") |
|||
@Transactional |
|||
public class CustomAddressController { |
|||
@Autowired |
|||
private CustomAddressService customAddressService; |
|||
|
|||
@RequestMapping(value = "/getByCondition", method = RequestMethod.POST) |
|||
@ApiOperation(value = "根据条件获得分页") |
|||
public Result<Page<CustomAddress>> queryAll(CustomAddressQueryCriteria criteria, PageVo pageVo) { |
|||
Page<CustomAddress> users = customAddressService.queryAll(criteria, PageUtil.initPage(pageVo)); |
|||
return new ResultUtil<Page<CustomAddress>>().setData(users); |
|||
} |
|||
|
|||
@RequestMapping(value = "/get/{id}", method = RequestMethod.GET) |
|||
@ApiOperation(value = "通过id获取") |
|||
public Result<CustomAddress> get(@PathVariable String id) { |
|||
CustomAddress data = customAddressService.findById(id); |
|||
return new ResultUtil<CustomAddress>().setData(data); |
|||
} |
|||
|
|||
@RequestMapping(value = "/save", method = RequestMethod.POST) |
|||
@ApiOperation(value = "保存数据") |
|||
public Result<CustomAddress> save(CustomAddress entity) { |
|||
CustomAddress address = customAddressService.save(entity); |
|||
return new ResultUtil<CustomAddress>().setData(address); |
|||
} |
|||
|
|||
@RequestMapping(value = "/edit", method = RequestMethod.POST) |
|||
@ApiOperation(value = "更新数据") |
|||
public Result<CustomAddress> edit(CustomAddress entity) { |
|||
CustomAddress address = customAddressService.update(entity); |
|||
return new ResultUtil<CustomAddress>().setData(address); |
|||
} |
|||
|
|||
@RequestMapping(value = "/delByIds", method = RequestMethod.POST) |
|||
@ApiOperation(value = "批量通过ids删除") |
|||
public Result delByIds(@RequestParam String[] ids) { |
|||
for (String id : ids) { |
|||
customAddressService.delete(id); |
|||
} |
|||
return ResultUtil.success("批量通过id删除数据成功"); |
|||
} |
|||
} |
|||
@ -0,0 +1,71 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.controller; |
|||
|
|||
import cc.hiver.core.common.utils.ResultUtil; |
|||
import cc.hiver.core.common.vo.Result; |
|||
import cc.hiver.mall.entity.GoodsCategoryAttribute; |
|||
import cc.hiver.mall.pojo.form.GoodsCategoryAttributeForm; |
|||
import cc.hiver.mall.service.mybatis.GoodsCategoryAttributeService; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestMethod; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Slf4j |
|||
@RestController |
|||
@Api(tags = "商品规格接口") |
|||
@RequestMapping(value = "/hiver/app/attribute/") |
|||
@Transactional |
|||
public class GoodsAttributeController { |
|||
@Autowired |
|||
private GoodsCategoryAttributeService goodsCategoryAttributeService; |
|||
|
|||
@RequestMapping(value = "/list", method = RequestMethod.GET) |
|||
@ApiOperation(value = "属性列表") |
|||
public Result<List<GoodsCategoryAttribute>> listAttributes( |
|||
@ApiParam("商品分类ID") Long categoryId, |
|||
@ApiParam("类型(1:规格;2:属性)") Integer type |
|||
) { |
|||
List<GoodsCategoryAttribute> list = goodsCategoryAttributeService.list(new LambdaQueryWrapper<GoodsCategoryAttribute>() |
|||
.eq(categoryId != null, GoodsCategoryAttribute::getCategoryId, categoryId) |
|||
.eq(type != null, GoodsCategoryAttribute::getType, type) |
|||
); |
|||
return new ResultUtil<List<GoodsCategoryAttribute>>().setData(list); |
|||
} |
|||
|
|||
@RequestMapping(value = "/batch", method = RequestMethod.POST) |
|||
@ApiOperation(value = "批量新增/修改") |
|||
public Result saveBatch(GoodsCategoryAttributeForm goodsCategoryAttributeForm) { |
|||
boolean result = goodsCategoryAttributeService.saveBatch(goodsCategoryAttributeForm); |
|||
if(result) { |
|||
return ResultUtil.success("批量处理成功"); |
|||
} else { |
|||
return ResultUtil.error("批量处理失败"); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,47 @@ |
|||
package cc.hiver.mall.controller; |
|||
|
|||
import cc.hiver.core.base.HiverBaseController; |
|||
import cc.hiver.core.base.HiverBaseService; |
|||
import cc.hiver.core.common.utils.PageUtil; |
|||
import cc.hiver.core.common.utils.ResultUtil; |
|||
import cc.hiver.core.common.vo.PageVo; |
|||
import cc.hiver.core.common.vo.Result; |
|||
import cc.hiver.mall.entity.GoodsBrand; |
|||
import cc.hiver.mall.service.GoodsBrandService; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestMethod; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
/** |
|||
* 商品品牌控制器 |
|||
* |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Slf4j |
|||
@RestController |
|||
@Api(tags = "商品品牌接口") |
|||
@RequestMapping(value = "/hiver/app/brand/") |
|||
@Transactional |
|||
public class GoodsBrandController extends HiverBaseController<GoodsBrand, String> { |
|||
@Autowired |
|||
private GoodsBrandService goodsBrandService; |
|||
|
|||
@Override |
|||
public HiverBaseService<GoodsBrand, String> getService() { |
|||
return goodsBrandService; |
|||
} |
|||
|
|||
@RequestMapping(value = "/getByCondition", method = RequestMethod.GET) |
|||
@ApiOperation(value = "多条件分页获取品牌列表") |
|||
public Result<Page<GoodsBrand>> getByCondition(GoodsBrand goodsBrand, |
|||
PageVo pageVo) { |
|||
Page<GoodsBrand> page = goodsBrandService.findByCondition(goodsBrand, PageUtil.initPage(pageVo)); |
|||
return new ResultUtil<Page<GoodsBrand>>().setData(page); |
|||
} |
|||
} |
|||
@ -0,0 +1,107 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.controller; |
|||
|
|||
import cc.hiver.core.common.utils.ResultUtil; |
|||
import cc.hiver.core.common.utils.SecurityUtil; |
|||
import cc.hiver.core.common.vo.Result; |
|||
import cc.hiver.mall.pojo.dto.CartItemDTO; |
|||
import cc.hiver.mall.service.CartService; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestMethod; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Slf4j |
|||
@RestController |
|||
@Api(tags = "销售单接口") |
|||
@RequestMapping(value = "/hiver/app/cart/") |
|||
@Transactional |
|||
public class GoodsCartController { |
|||
@Autowired |
|||
private CartService cartService; |
|||
|
|||
@Autowired |
|||
private SecurityUtil securityUtil; |
|||
|
|||
@RequestMapping(value = "/get", method = RequestMethod.GET) |
|||
@ApiOperation(value = "查询购物车") |
|||
public Result<List<CartItemDTO>> getCart() { |
|||
List<CartItemDTO> result = cartService.listCartItems(securityUtil.getCurrUser().getId()); |
|||
return new ResultUtil<List<CartItemDTO>>().setData(result); |
|||
} |
|||
|
|||
@RequestMapping(value = "/delete", method = RequestMethod.POST) |
|||
@ApiOperation(value = "删除购物车") |
|||
public Result deleteCart() { |
|||
boolean result = cartService.deleteCart(securityUtil.getCurrUser().getId()); |
|||
if(result) { |
|||
return ResultUtil.success("删除成功"); |
|||
} else { |
|||
return ResultUtil.error("删除失败"); |
|||
} |
|||
} |
|||
|
|||
@RequestMapping(value = "/add", method = RequestMethod.POST) |
|||
@ApiOperation(value = "添加购物车商品") |
|||
public Result addCartItem(String skuId) { |
|||
cartService.addCartItem(skuId, securityUtil.getCurrUser().getId()); |
|||
return ResultUtil.success(); |
|||
} |
|||
|
|||
@RequestMapping(value = "/edit", method = RequestMethod.POST) |
|||
@ApiOperation(value = "更新购物车商品") |
|||
public Result updateCartItem(CartItemDTO cartItem) { |
|||
boolean result = cartService.updateCartItem(cartItem, securityUtil.getCurrUser().getId()); |
|||
if(result) { |
|||
return ResultUtil.success("更新成功"); |
|||
} else { |
|||
return ResultUtil.error("更新失败"); |
|||
} |
|||
} |
|||
|
|||
@RequestMapping(value = "/item/delete", method = RequestMethod.POST) |
|||
@ApiOperation(value = "删除购物车商品") |
|||
public <T> Result<T> removeCartItem(String goodsStockId) { |
|||
boolean result = cartService.removeCartItem(goodsStockId, securityUtil.getCurrUser().getId()); |
|||
if(result) { |
|||
return ResultUtil.success("删除成功"); |
|||
} else { |
|||
return ResultUtil.error("删除失败"); |
|||
} |
|||
} |
|||
|
|||
@RequestMapping(value = "/_check", method = RequestMethod.POST) |
|||
@ApiOperation(value = "全选/全不选购物车商品") |
|||
public Result check(@ApiParam("全选/全不选") boolean checked) { |
|||
boolean result = cartService.checkAll(checked, securityUtil.getCurrUser().getId()); |
|||
if(result) { |
|||
return ResultUtil.success("设置成功"); |
|||
} else { |
|||
return ResultUtil.error("设置失败"); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,87 @@ |
|||
package cc.hiver.mall.controller; |
|||
|
|||
import cc.hiver.core.common.utils.ResultUtil; |
|||
import cc.hiver.core.common.vo.Result; |
|||
import cc.hiver.core.vo.Option; |
|||
import cc.hiver.mall.entity.GoodsCategory; |
|||
import cc.hiver.mall.entity.GoodsCategoryAttribute; |
|||
import cc.hiver.mall.pojo.vo.GoodsCategoryVO; |
|||
import cc.hiver.mall.service.mybatis.GoodsCategoryAttributeService; |
|||
import cc.hiver.mall.service.mybatis.GoodsCategoryService; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.cache.annotation.CacheEvict; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Slf4j |
|||
@RestController |
|||
@Api(tags = "商品分类接口") |
|||
@RequestMapping(value = "/hiver/app/goodsCategory/") |
|||
@Transactional |
|||
public class GoodsCategoryController { |
|||
@Autowired |
|||
private GoodsCategoryService goodsCategoryService; |
|||
|
|||
@Autowired |
|||
private GoodsCategoryAttributeService goodsCategoryAttributeService; |
|||
|
|||
@RequestMapping(value = "/list", method = RequestMethod.GET) |
|||
@ApiOperation(value = "根据parentId获得商品分类列表") |
|||
public Result<List<GoodsCategoryVO>> list(@ApiParam("上级分类ID") String parentId) { |
|||
List<GoodsCategoryVO> list = goodsCategoryService.listCategory(parentId); |
|||
return new ResultUtil<List<GoodsCategoryVO>>().setData(list); |
|||
} |
|||
|
|||
@RequestMapping(value = "/getAll", method = RequestMethod.GET) |
|||
@ApiOperation(value = "获得商品分类列表") |
|||
public Result<List<GoodsCategoryVO>> getAll() { |
|||
List<GoodsCategoryVO> list = goodsCategoryService.listCategory(null); |
|||
return new ResultUtil<List<GoodsCategoryVO>>().setData(list); |
|||
} |
|||
|
|||
@RequestMapping(value = "/options", method = RequestMethod.GET) |
|||
@ApiOperation(value = "商品分类级联列表") |
|||
public Result<List<Option>> listCategoryOptions() { |
|||
List<Option> list = goodsCategoryService.listCategoryOptions(); |
|||
return new ResultUtil<List<Option>>().setData(list); |
|||
} |
|||
|
|||
@RequestMapping(value = "/get/{id}", method = RequestMethod.GET) |
|||
@ApiOperation(value = "商品分类详情") |
|||
public Result<GoodsCategory> get(@PathVariable String id) { |
|||
GoodsCategory data = goodsCategoryService.getById(id); |
|||
return new ResultUtil<GoodsCategory>().setData(data); |
|||
} |
|||
|
|||
@RequestMapping(value = "/save", method = RequestMethod.POST) |
|||
@ApiOperation(value = "新增商品分类") |
|||
public Result<String> save(GoodsCategory entity) { |
|||
String id = goodsCategoryService.saveCategory(entity); |
|||
return ResultUtil.success(id); |
|||
} |
|||
|
|||
@RequestMapping(value = "/edit", method = RequestMethod.POST) |
|||
@ApiOperation(value = "修改商品分类") |
|||
public Result<String> edit(GoodsCategory entity) { |
|||
String id = goodsCategoryService.saveCategory(entity); |
|||
return ResultUtil.success(id); |
|||
} |
|||
|
|||
@RequestMapping(value = "/delByIds", method = RequestMethod.POST) |
|||
@ApiOperation(value = "删除商品分类") |
|||
@CacheEvict(value = "mall", key = "'categoryList'") |
|||
public Result delByIds(@RequestParam String[] ids) { |
|||
for (String id : ids) { |
|||
goodsCategoryAttributeService.remove(new LambdaQueryWrapper<GoodsCategoryAttribute>().eq(GoodsCategoryAttribute::getCategoryId, id)); |
|||
goodsCategoryService.removeById(id); |
|||
} |
|||
return ResultUtil.success("批量通过id删除数据成功"); |
|||
} |
|||
} |
|||
@ -0,0 +1,90 @@ |
|||
package cc.hiver.mall.controller; |
|||
|
|||
import cc.hiver.core.common.utils.ResultUtil; |
|||
import cc.hiver.core.common.vo.Result; |
|||
import cc.hiver.mall.pojo.form.GoodsForm; |
|||
import cc.hiver.mall.pojo.query.GoodsPageQuery; |
|||
import cc.hiver.mall.pojo.vo.GoodsDetailVO; |
|||
import cc.hiver.mall.pojo.vo.GoodsPageVO; |
|||
import cc.hiver.mall.pojo.vo.MallGoodsDetailVO; |
|||
import cc.hiver.mall.pojo.vo.MallGoodsPageVO; |
|||
import cc.hiver.mall.service.mybatis.GoodsService; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
@Slf4j |
|||
@RestController |
|||
@Api(tags = "商品接口") |
|||
@RequestMapping(value = "/hiver/app/goods/") |
|||
@Transactional |
|||
public class GoodsController { |
|||
@Autowired |
|||
private GoodsService goodsService; |
|||
|
|||
@RequestMapping(value = "/listGoodsPages", method = RequestMethod.POST) |
|||
@ApiOperation(value = "商品分页列表") |
|||
public Result<IPage<GoodsPageVO>> listGoodsPages(GoodsPageQuery queryParams) { |
|||
IPage<GoodsPageVO> result = goodsService.listGoodsPages(queryParams); |
|||
return new ResultUtil<IPage<GoodsPageVO>>().setData(result); |
|||
} |
|||
|
|||
@RequestMapping(value = "/getGoodsDetail/{id}", method = RequestMethod.GET) |
|||
@ApiOperation(value = "商品详情") |
|||
public Result<GoodsDetailVO> getGoodsDetail(@ApiParam("商品ID") @PathVariable String id) { |
|||
GoodsDetailVO goodsDetailVO = goodsService.getGoodsDetail(id); |
|||
return new ResultUtil<GoodsDetailVO>().setData(goodsDetailVO); |
|||
} |
|||
|
|||
@RequestMapping(value = "/save", method = RequestMethod.POST) |
|||
@ApiOperation(value = "新增商品") |
|||
public Result addSpu(GoodsForm formData) { |
|||
boolean result = goodsService.addGoods(formData); |
|||
if(result) { |
|||
return ResultUtil.success("添加成功"); |
|||
} else { |
|||
return ResultUtil.error("添加失败"); |
|||
} |
|||
} |
|||
|
|||
@RequestMapping(value = "/edit", method = RequestMethod.POST) |
|||
@ApiOperation(value = "修改商品") |
|||
public Result updateSpuById(GoodsForm formData) { |
|||
boolean result = goodsService.updateGoods(formData); |
|||
if(result) { |
|||
return ResultUtil.success("修改成功"); |
|||
} else { |
|||
return ResultUtil.error("修改失败"); |
|||
} |
|||
} |
|||
|
|||
@RequestMapping(value = "/delByIds", method = RequestMethod.POST) |
|||
@ApiOperation(value = "删除商品") |
|||
public Result delete(@RequestParam String[] ids) { |
|||
boolean result = goodsService.removeByGoodsIds(ids); |
|||
if(result) { |
|||
return ResultUtil.success("删除成功"); |
|||
} else { |
|||
return ResultUtil.error("删除失败"); |
|||
} |
|||
} |
|||
|
|||
@RequestMapping(value = "/listMallGoodsPages", method = RequestMethod.POST) |
|||
@ApiOperation(value = "商品分页列表") |
|||
public Result listMallGoodsPages(GoodsPageQuery queryParams) { |
|||
IPage<MallGoodsPageVO> result = goodsService.listMallGoodsPages(queryParams); |
|||
return new ResultUtil<IPage<MallGoodsPageVO>>().setData(result); |
|||
} |
|||
|
|||
@RequestMapping(value = "/getMallGoodsDetail/{id}", method = RequestMethod.GET) |
|||
@ApiOperation(value = "获取商品详情") |
|||
public Result<MallGoodsDetailVO> getMallGoodsDetail(@ApiParam("商品ID") @PathVariable String id) { |
|||
MallGoodsDetailVO mallGoodsDetailVO = goodsService.getMallGoodsDetail(id); |
|||
return new ResultUtil<MallGoodsDetailVO>().setData(mallGoodsDetailVO); |
|||
} |
|||
} |
|||
@ -0,0 +1,111 @@ |
|||
package cc.hiver.mall.controller; |
|||
|
|||
import cc.hiver.core.common.utils.ResultUtil; |
|||
import cc.hiver.core.common.vo.Result; |
|||
import cc.hiver.mall.entity.GoodsInStock; |
|||
import cc.hiver.mall.entity.GoodsStock; |
|||
import cc.hiver.mall.pojo.dto.CheckPriceDTO; |
|||
import cc.hiver.mall.pojo.dto.LockStockDTO; |
|||
import cc.hiver.mall.service.GoodsInStockService; |
|||
import cc.hiver.mall.service.mybatis.GoodsStockService; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.bind.annotation.PathVariable; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestMethod; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
@Slf4j |
|||
@RestController |
|||
@Api(tags = "商品库存接口") |
|||
@RequestMapping(value = "/hiver/app/goodsStock/") |
|||
@Transactional |
|||
public class GoodsStockController { |
|||
@Autowired |
|||
private GoodsStockService goodsStockService; |
|||
|
|||
@Autowired |
|||
private GoodsInStockService goodsInStockService; |
|||
|
|||
@RequestMapping(value = "/stockIn", method = RequestMethod.POST) |
|||
@ApiOperation(value = "入库操作") |
|||
public Result save(GoodsInStock entity) { |
|||
goodsInStockService.save(entity); |
|||
GoodsStock goodsStock = goodsStockService.getById(entity.getGoodsStockId()); |
|||
goodsStock.setStock(goodsStock.getStock() + entity.getNum()); |
|||
goodsStockService.updateStockNum(entity.getGoodsStockId(), goodsStock.getStock()+entity.getNum()); |
|||
return ResultUtil.success(); |
|||
} |
|||
|
|||
@RequestMapping(value = "/detail/{id}", method = RequestMethod.GET) |
|||
@ApiOperation(value = "获得库存详细") |
|||
public Result<GoodsStock> getStockDetail(@PathVariable String id) { |
|||
GoodsStock goodsStock = goodsStockService.getById(id); |
|||
return new ResultUtil<GoodsStock>().setData(goodsStock); |
|||
} |
|||
|
|||
@RequestMapping(value = "/{id}/stock_num", method = RequestMethod.GET) |
|||
@ApiOperation(value = "获得库存数量") |
|||
public Result<Integer> getStockNum(@PathVariable String id) { |
|||
Integer stockNum = goodsStockService.getStockNum(id); |
|||
return new ResultUtil<Integer>().setData(stockNum); |
|||
} |
|||
|
|||
@RequestMapping(value = "/edit", method = RequestMethod.POST) |
|||
@ApiOperation(value = "修改库存信息") |
|||
public Result updateStock(GoodsStock goodsStock) { |
|||
boolean result = goodsStockService.updateById(goodsStock); |
|||
if(result) { |
|||
return ResultUtil.success("修改成功"); |
|||
} else { |
|||
return ResultUtil.error("修改失败"); |
|||
} |
|||
} |
|||
|
|||
@RequestMapping(value = "/_lock", method = RequestMethod.POST) |
|||
@ApiOperation(value = "锁定库存") |
|||
public Result lockStock(LockStockDTO lockStockDTO) { |
|||
boolean result = goodsStockService.lockStock(lockStockDTO); |
|||
if(result) { |
|||
return ResultUtil.success("锁定库存成功"); |
|||
} else { |
|||
return ResultUtil.error("锁定库存失败"); |
|||
} |
|||
} |
|||
|
|||
@RequestMapping(value = "/_unlock", method = RequestMethod.POST) |
|||
@ApiOperation(value = "解锁库存") |
|||
public Result<Boolean> unlockStock(String orderToken) { |
|||
boolean result = goodsStockService.unlockStock(orderToken); |
|||
if(result) { |
|||
return ResultUtil.success("解锁库存成功"); |
|||
} else { |
|||
return ResultUtil.error("解锁库存失败"); |
|||
} |
|||
} |
|||
|
|||
@RequestMapping(value = "/_deduct", method = RequestMethod.POST) |
|||
@ApiOperation(value = "扣减库存") |
|||
public Result<Boolean> deductStock(String orderToken) { |
|||
boolean result = goodsStockService.deductStock(orderToken); |
|||
if(result) { |
|||
return ResultUtil.success("扣减库存成功"); |
|||
} else { |
|||
return ResultUtil.error("扣减库存失败"); |
|||
} |
|||
} |
|||
|
|||
@RequestMapping(value = "/price/_check", method = RequestMethod.POST) |
|||
@ApiOperation(value = "商品验价") |
|||
public Result<Boolean> checkPrice(CheckPriceDTO checkPriceDTO) { |
|||
boolean result = goodsStockService.checkPrice(checkPriceDTO); |
|||
if(result) { |
|||
return ResultUtil.success("商品验价成功"); |
|||
} else { |
|||
return ResultUtil.error("商品验价失败"); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,83 @@ |
|||
package cc.hiver.mall.controller; |
|||
|
|||
import cc.hiver.core.common.utils.ResultUtil; |
|||
import cc.hiver.core.common.vo.Result; |
|||
import cc.hiver.mall.entity.Mall; |
|||
import cc.hiver.mall.entity.UserMall; |
|||
import cc.hiver.mall.service.MallService; |
|||
import cc.hiver.mall.service.UserMallService; |
|||
import cc.hiver.mall.service.mybatis.IMallService; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Slf4j |
|||
@RestController |
|||
@Api(tags = "商铺接口") |
|||
@RequestMapping(value = "/hiver/app/mall/") |
|||
@Transactional |
|||
public class MallController { |
|||
@Autowired |
|||
private MallService mallService; |
|||
|
|||
@Autowired |
|||
private UserMallService userMallService; |
|||
|
|||
@Autowired |
|||
private IMallService iMallService; |
|||
|
|||
@RequestMapping(value = "/get/{id}", method = RequestMethod.GET) |
|||
@ApiOperation(value = "通过id获取") |
|||
public Result<Mall> get(@PathVariable String id) { |
|||
Mall data = mallService.findById(id); |
|||
return new ResultUtil<Mall>().setData(data); |
|||
} |
|||
|
|||
@RequestMapping(value = "/save", method = RequestMethod.POST) |
|||
@ApiOperation(value = "保存数据") |
|||
public Result<Mall> save(Mall entity) { |
|||
Mall mall = mallService.save(entity); |
|||
return new ResultUtil<Mall>().setData(mall); |
|||
} |
|||
|
|||
@RequestMapping(value = "/edit", method = RequestMethod.POST) |
|||
@ApiOperation(value = "更新数据") |
|||
public Result<Mall> edit(Mall entity) { |
|||
Mall mall = mallService.update(entity); |
|||
return new ResultUtil<Mall>().setData(mall); |
|||
} |
|||
|
|||
@RequestMapping(value = "/delByIds", method = RequestMethod.POST) |
|||
@ApiOperation(value = "批量通过ids删除") |
|||
public Result delByIds(@RequestParam String[] ids) { |
|||
for (String id : ids) { |
|||
mallService.delete(id); |
|||
} |
|||
return ResultUtil.success("批量通过id删除数据成功"); |
|||
} |
|||
|
|||
@RequestMapping(value = "/set", method = RequestMethod.POST) |
|||
@ApiOperation(value = "设置用户对应商铺") |
|||
public Result save(String mallId, List<String> userIds) { |
|||
userMallService.deleteAllByMallId(mallId); |
|||
for(String userId : userIds) { |
|||
UserMall userMall = new UserMall(); |
|||
userMall.setMallId(mallId); |
|||
userMall.setUserId(userId); |
|||
userMallService.save(userMall); |
|||
} |
|||
return ResultUtil.success(); |
|||
} |
|||
|
|||
@RequestMapping(value = "/getAll", method = RequestMethod.GET) |
|||
@ApiOperation(value = "根据会员id获得商铺列表") |
|||
public Result getAllByUserId(String userId) { |
|||
List<Mall> list = iMallService.findByUserId(userId); |
|||
return ResultUtil.data(list); |
|||
} |
|||
} |
|||
@ -0,0 +1,49 @@ |
|||
package cc.hiver.mall.controller; |
|||
|
|||
import cc.hiver.core.common.utils.ResultUtil; |
|||
import cc.hiver.core.common.vo.Result; |
|||
import cc.hiver.mall.pojo.dto.PopularUrlDto; |
|||
import cc.hiver.mall.entity.PopularUrlGoods; |
|||
import cc.hiver.mall.service.PopularUrlGoodsService; |
|||
import cc.hiver.mall.service.PopularUrlService; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.bind.annotation.PathVariable; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestMethod; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
@Slf4j |
|||
@RestController |
|||
@Api(tags = "热销商品接口") |
|||
@RequestMapping(value = "/hiver/app/popularUrl/") |
|||
@Transactional |
|||
public class PopularUrlController { |
|||
@Autowired |
|||
private PopularUrlService popularUrlService; |
|||
|
|||
@Autowired |
|||
private PopularUrlGoodsService popularUrlGoodsService; |
|||
|
|||
@RequestMapping(value = "/create", method = RequestMethod.POST) |
|||
@ApiOperation(value = "创建分享链接") |
|||
public Result<String> create(PopularUrlDto entity) { |
|||
popularUrlService.save(entity.getUrl()); |
|||
for(PopularUrlGoods good : entity.getGoodsList()) { |
|||
popularUrlGoodsService.save(good); |
|||
} |
|||
return ResultUtil.data(entity.getUrl().getUrl()); |
|||
} |
|||
|
|||
@RequestMapping(value = "/get/{id}", method = RequestMethod.GET) |
|||
@ApiOperation(value = "通过id获取") |
|||
public Result<PopularUrlDto> get(@PathVariable String id) { |
|||
PopularUrlDto data = new PopularUrlDto(); |
|||
data.setUrl(popularUrlService.get(id)); |
|||
data.setGoodsList(popularUrlGoodsService.findAllByUrlId(id)); |
|||
return new ResultUtil<PopularUrlDto>().setData(data); |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
package cc.hiver.mall.controller; |
|||
|
|||
import cc.hiver.mall.service.RoleSettingService; |
|||
import io.swagger.annotations.Api; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
@Slf4j |
|||
@RestController |
|||
@Api(tags = "角色配置接口") |
|||
@RequestMapping(value = "/hiver/app/roleSetting/") |
|||
@Transactional |
|||
public class RoleSettingController { |
|||
@Autowired |
|||
private RoleSettingService roleSettingService; |
|||
} |
|||
@ -0,0 +1,33 @@ |
|||
package cc.hiver.mall.controller; |
|||
|
|||
import cc.hiver.core.common.utils.ResultUtil; |
|||
import cc.hiver.core.common.vo.Result; |
|||
import cc.hiver.mall.entity.UserClockIn; |
|||
import cc.hiver.mall.service.UserClockInService; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestMethod; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
@Slf4j |
|||
@RestController |
|||
@Api(tags = "用户打卡接口") |
|||
@RequestMapping(value = "/hiver/app/clockIn") |
|||
@Transactional |
|||
public class UserClockInController { |
|||
@Autowired |
|||
private UserClockInService userClockInService; |
|||
|
|||
@RequestMapping(value = "/", method = RequestMethod.GET) |
|||
@ApiOperation(value = "打卡操作") |
|||
public Result clockIn(String userId) { |
|||
UserClockIn userClockIn = new UserClockIn(); |
|||
userClockIn.setUserId(userId); |
|||
userClockInService.save(userClockIn); |
|||
return ResultUtil.success(); |
|||
} |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
package cc.hiver.mall.converter; |
|||
|
|||
import cc.hiver.mall.entity.GoodsAttribute; |
|||
import cc.hiver.mall.pojo.form.GoodsAttributeForm; |
|||
import org.mapstruct.Mapper; |
|||
import org.mapstruct.Mapping; |
|||
import org.mapstruct.Mappings; |
|||
|
|||
@Mapper(componentModel = "spring") |
|||
public interface GoodsAttributeConverter { |
|||
@Mappings({ |
|||
@Mapping(target = "id",ignore = true) |
|||
}) |
|||
GoodsAttribute form2Entity(GoodsAttributeForm form); |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
package cc.hiver.mall.converter; |
|||
|
|||
import cc.hiver.mall.entity.Goods; |
|||
import cc.hiver.mall.pojo.form.GoodsForm; |
|||
import org.mapstruct.InheritInverseConfiguration; |
|||
import org.mapstruct.Mapper; |
|||
import org.mapstruct.Mapping; |
|||
import org.mapstruct.Mappings; |
|||
|
|||
@Mapper(componentModel = "spring") |
|||
public interface GoodsConverter { |
|||
@Mappings({ |
|||
@Mapping(target = "album", source = "subPicUrls") |
|||
}) |
|||
Goods form2Entity(GoodsForm form); |
|||
|
|||
@InheritInverseConfiguration(name="form2Entity") |
|||
GoodsForm entity2Form(Goods entity); |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.dao; |
|||
|
|||
import cc.hiver.core.base.HiverBaseDao; |
|||
import cc.hiver.mall.entity.CustomAddress; |
|||
|
|||
public interface CustomAddressDao extends HiverBaseDao<CustomAddress, String> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.dao; |
|||
|
|||
import cc.hiver.core.base.HiverBaseDao; |
|||
import cc.hiver.mall.entity.GoodsBrand; |
|||
|
|||
public interface GoodsBrandDao extends HiverBaseDao<GoodsBrand, String> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.dao; |
|||
|
|||
import cc.hiver.core.base.HiverBaseDao; |
|||
import cc.hiver.mall.entity.GoodsInStock; |
|||
|
|||
public interface GoodsInStockDao extends HiverBaseDao<GoodsInStock, String> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.dao; |
|||
|
|||
import cc.hiver.core.base.HiverBaseDao; |
|||
import cc.hiver.mall.entity.Mall; |
|||
|
|||
public interface MallDao extends HiverBaseDao<Mall, String> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.dao; |
|||
|
|||
import cc.hiver.core.base.HiverBaseDao; |
|||
import cc.hiver.mall.entity.PopularUrl; |
|||
|
|||
public interface PopularUrlDao extends HiverBaseDao<PopularUrl, String> { |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
package cc.hiver.mall.dao; |
|||
|
|||
import cc.hiver.core.base.HiverBaseDao; |
|||
import cc.hiver.mall.entity.PopularUrlGoods; |
|||
|
|||
import java.util.List; |
|||
|
|||
public interface PopularUrlGoodsDao extends HiverBaseDao<PopularUrlGoods, String> { |
|||
List<PopularUrlGoods> findAllByUrlId(String urlId); |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.dao; |
|||
|
|||
import cc.hiver.core.base.HiverBaseDao; |
|||
import cc.hiver.mall.entity.RoleSetting; |
|||
|
|||
public interface RoleSettingDao extends HiverBaseDao<RoleSetting, String> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.dao; |
|||
|
|||
import cc.hiver.core.base.HiverBaseDao; |
|||
import cc.hiver.mall.entity.SalesOrder; |
|||
|
|||
public interface SalesOrderDao extends HiverBaseDao<SalesOrder, String> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.dao; |
|||
|
|||
import cc.hiver.core.base.HiverBaseDao; |
|||
import cc.hiver.mall.entity.SalesOrderItem; |
|||
|
|||
public interface SalesOrderItemDao extends HiverBaseDao<SalesOrderItem, String> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.dao; |
|||
|
|||
import cc.hiver.core.base.HiverBaseDao; |
|||
import cc.hiver.mall.entity.UserClockIn; |
|||
|
|||
public interface UserClockInDao extends HiverBaseDao<UserClockIn, String> { |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
package cc.hiver.mall.dao; |
|||
|
|||
import cc.hiver.core.base.HiverBaseDao; |
|||
import cc.hiver.mall.entity.UserMall; |
|||
|
|||
public interface UserMallDao extends HiverBaseDao<UserMall, String> { |
|||
void deleteAllByMallId(String mallId); |
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
package cc.hiver.mall.dao.mapper; |
|||
|
|||
import cc.hiver.mall.entity.Address; |
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Select; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Mapper |
|||
public interface AddressMapper extends BaseMapper<Address> { |
|||
@Select("<script>" + |
|||
" SELECT m.* from t_address m where m.member_id =#{memberId} " + |
|||
"</script>") |
|||
List<Address> listByMemberId(String memberId); |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.dao.mapper; |
|||
|
|||
import cc.hiver.mall.entity.GoodsAttribute; |
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Mapper |
|||
public interface GoodsAttributeMapper extends BaseMapper<GoodsAttribute> { |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.dao.mapper; |
|||
|
|||
import cc.hiver.mall.entity.GoodsCategoryAttribute; |
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Mapper |
|||
public interface GoodsCategoryAttributeMapper extends BaseMapper<GoodsCategoryAttribute> { |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.dao.mapper; |
|||
|
|||
import cc.hiver.mall.entity.GoodsCategoryBrand; |
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Mapper |
|||
public interface GoodsCategoryBrandMapper extends BaseMapper<GoodsCategoryBrand> { |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.dao.mapper; |
|||
|
|||
import cc.hiver.mall.entity.GoodsCategory; |
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Mapper |
|||
public interface GoodsCategoryMapper extends BaseMapper<GoodsCategory> { |
|||
} |
|||
@ -0,0 +1,51 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.dao.mapper; |
|||
|
|||
import cc.hiver.mall.entity.Goods; |
|||
import cc.hiver.mall.pojo.query.GoodsPageQuery; |
|||
import cc.hiver.mall.pojo.vo.GoodsPageVO; |
|||
import cc.hiver.mall.pojo.vo.MallGoodsPageVO; |
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Mapper |
|||
public interface GoodsMapper extends BaseMapper<Goods> { |
|||
/** |
|||
* 商品分页列表(管理用) |
|||
* |
|||
* @param page |
|||
* @param queryParams |
|||
* @return |
|||
*/ |
|||
List<GoodsPageVO> listGoodsPages(Page<GoodsPageVO> page, @Param("queryParams") GoodsPageQuery queryParams); |
|||
|
|||
/** |
|||
* 商品分页列表(商铺用) |
|||
* |
|||
* @param page |
|||
* @param queryParams |
|||
* @return |
|||
*/ |
|||
List<MallGoodsPageVO> listMallGoodsPages(Page<MallGoodsPageVO> page, @Param("queryParams") GoodsPageQuery queryParams); |
|||
} |
|||
@ -0,0 +1,35 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.dao.mapper; |
|||
|
|||
import cc.hiver.mall.entity.GoodsStock; |
|||
import cc.hiver.mall.pojo.dto.GoodsStockDto; |
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Mapper |
|||
public interface GoodsStockMapper extends BaseMapper<GoodsStock> { |
|||
/** |
|||
* 获取商品库存单元信息 |
|||
* |
|||
* @param id |
|||
* @return |
|||
*/ |
|||
GoodsStockDto getStockInfo(String id); |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
package cc.hiver.mall.dao.mapper; |
|||
|
|||
import cc.hiver.mall.entity.Mall; |
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
import org.springframework.stereotype.Repository; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Repository |
|||
public interface MallMapper extends BaseMapper<Mall> { |
|||
/** |
|||
* 通过用户id获取 |
|||
* |
|||
* @param userId |
|||
* @return |
|||
*/ |
|||
List<Mall> findByUserId(@Param("userId") String userId); |
|||
} |
|||
@ -0,0 +1,44 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseEntity; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_address") |
|||
@TableName("t_address") |
|||
@ApiModel(value = "收获地址表") |
|||
public class Address extends HiverBaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "会员ID") |
|||
private String memberId; |
|||
|
|||
@ApiModelProperty(value = "'收货人姓名") |
|||
private String consigneeName; |
|||
|
|||
@ApiModelProperty(value = "收货人联系方式") |
|||
private String consigneeMobile; |
|||
|
|||
@ApiModelProperty(value = "收货人所属区域") |
|||
private String consigneeArea; |
|||
|
|||
@ApiModelProperty(value = "详细地址") |
|||
private String address; |
|||
|
|||
@ApiModelProperty(value = "邮编") |
|||
private String zipCode; |
|||
|
|||
@ApiModelProperty(value = "是否默认地址") |
|||
private Integer defaulted; |
|||
} |
|||
@ -0,0 +1,44 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseEntity; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_custom_address") |
|||
@TableName("t_custom_address") |
|||
@ApiModel(value = "客户地址表") |
|||
public class CustomAddress extends HiverBaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "用户ID") |
|||
private String userId; |
|||
|
|||
@ApiModelProperty(value = "收货人姓名") |
|||
private String consigneeName; |
|||
|
|||
@ApiModelProperty(value = "收货人联系方式") |
|||
private String consigneeMobile; |
|||
|
|||
@ApiModelProperty(value = "收货人公司") |
|||
private String consigneeCompany; |
|||
|
|||
@ApiModelProperty(value = "收货人所属区域") |
|||
private String consigneeArea; |
|||
|
|||
@ApiModelProperty(value = "详细地址") |
|||
private String address; |
|||
|
|||
@ApiModelProperty(value = "邮编") |
|||
private String zipCode; |
|||
} |
|||
@ -0,0 +1,71 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseMallEntity; |
|||
import cc.hiver.core.common.constant.MallConstant; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Column; |
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_goods") |
|||
@TableName("t_goods") |
|||
@ApiModel(value = "商品表") |
|||
public class Goods extends HiverBaseMallEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "商品名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "商品类型ID") |
|||
private String categoryId; |
|||
|
|||
@ApiModelProperty(value = "商品品牌ID") |
|||
private String brandId; |
|||
|
|||
@ApiModelProperty(value = "采购价") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal purchasePrice = new BigDecimal(0); |
|||
|
|||
@ApiModelProperty(value = "市场价") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal price = new BigDecimal(0); |
|||
|
|||
@ApiModelProperty(value = "批发价") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal wholesalePrice = new BigDecimal(0); |
|||
|
|||
@ApiModelProperty(value = "销量") |
|||
private Integer sales; |
|||
|
|||
@ApiModelProperty(value = "商品主图") |
|||
private String picUrl; |
|||
|
|||
@ApiModelProperty(value = "视频地址") |
|||
private String videoUrl; |
|||
|
|||
@ApiModelProperty(value = "商品图册") |
|||
private String[] album; |
|||
|
|||
@ApiModelProperty(value = "单位") |
|||
private String unit; |
|||
|
|||
@ApiModelProperty(value = "商品简介") |
|||
private String description; |
|||
|
|||
@ApiModelProperty(value = "商品详情") |
|||
private String detail; |
|||
|
|||
@ApiModelProperty(value = "是否启用 0上架 -1下架") |
|||
private Integer status = MallConstant.GOODS_PUT_ON_SALE; |
|||
} |
|||
@ -0,0 +1,41 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseMallEntity; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_goods_attribute") |
|||
@TableName("t_goods_attribute") |
|||
@ApiModel(value = "商品属性/规格表") |
|||
public class GoodsAttribute extends HiverBaseMallEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "商品ID") |
|||
private String goodsId; |
|||
|
|||
@ApiModelProperty(value = "属性ID") |
|||
private String attributeId; |
|||
|
|||
@ApiModelProperty(value = "属性名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "属性值") |
|||
private String value; |
|||
|
|||
@ApiModelProperty(value = "类型(1:规格;2:属性;)") |
|||
private Integer type; |
|||
|
|||
@ApiModelProperty(value = "规格图片") |
|||
private String picUrl; |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseMallEntity; |
|||
import cc.hiver.core.common.constant.CommonConstant; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Column; |
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_goods_brand") |
|||
@TableName("t_goods_brand") |
|||
@ApiModel(value = "商品品牌表") |
|||
public class GoodsBrand extends HiverBaseMallEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "品牌名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "LOGO图片") |
|||
private String logoUrl; |
|||
|
|||
@ApiModelProperty(value = "排序值") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal sortOrder; |
|||
|
|||
@ApiModelProperty(value = "是否启用 0启用 -1禁用") |
|||
private Integer status = CommonConstant.STATUS_NORMAL; |
|||
} |
|||
@ -0,0 +1,46 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseMallEntity; |
|||
import cc.hiver.core.common.constant.CommonConstant; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Column; |
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_goods_category") |
|||
@TableName("t_goods_category") |
|||
@ApiModel(value = "商品分类表") |
|||
public class GoodsCategory extends HiverBaseMallEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "商品分类名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "父级ID") |
|||
@Column(nullable = false) |
|||
private String parentId; |
|||
|
|||
@ApiModelProperty(value = "层级") |
|||
private Integer level; |
|||
|
|||
@ApiModelProperty(value = "图标地址") |
|||
private String iconUrl; |
|||
|
|||
@ApiModelProperty(value = "排序值") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal sortOrder; |
|||
|
|||
@ApiModelProperty(value = "是否启用 0启用 -1禁用") |
|||
private Integer status = CommonConstant.STATUS_NORMAL; |
|||
} |
|||
@ -0,0 +1,32 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseMallEntity; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_goods_category_attribute") |
|||
@TableName("t_goods_category_attribute") |
|||
@ApiModel(value = "商品属性表") |
|||
public class GoodsCategoryAttribute extends HiverBaseMallEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "分类ID") |
|||
private String categoryId; |
|||
|
|||
@ApiModelProperty(value = "属性名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "类型(1:规格;2:属性;)") |
|||
private Integer type; |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseMallEntity; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_goods_category_brand") |
|||
@TableName("t_goods_category_brand") |
|||
@ApiModel(value = "商品品牌表") |
|||
public class GoodsCategoryBrand extends HiverBaseMallEntity { |
|||
@ApiModelProperty(value = "分类ID") |
|||
private String categoryId; |
|||
|
|||
@ApiModelProperty(value = "品牌ID") |
|||
private String brandId; |
|||
} |
|||
@ -0,0 +1,29 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseMallEntity; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_goods_in_stock") |
|||
@TableName("t_goods_in_stock") |
|||
@ApiModel(value = "商品入库表") |
|||
public class GoodsInStock extends HiverBaseMallEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "在库商品id") |
|||
private String goodsStockId; |
|||
|
|||
@ApiModelProperty(value = "入库数量") |
|||
private Integer num; |
|||
} |
|||
@ -0,0 +1,58 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseMallEntity; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Column; |
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_goods_stock") |
|||
@TableName("t_goods_stock") |
|||
@ApiModel(value = "商品库存表") |
|||
public class GoodsStock extends HiverBaseMallEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "商品编码") |
|||
private String sn; |
|||
|
|||
@ApiModelProperty(value = "商品ID") |
|||
private String goodsId; |
|||
|
|||
@ApiModelProperty(value = "商品名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "商品规格值,以英文逗号(,)分割") |
|||
private String specIds; |
|||
|
|||
@ApiModelProperty(value = "采购价") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal purchasePrice = new BigDecimal(0); |
|||
|
|||
@ApiModelProperty(value = "市场价") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal price = new BigDecimal(0); |
|||
|
|||
@ApiModelProperty(value = "批发价") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal wholesalePrice = new BigDecimal(0); |
|||
|
|||
@ApiModelProperty(value = "库存数量") |
|||
private Integer stock = 0; |
|||
|
|||
@ApiModelProperty(value = "锁定库存数量") |
|||
private Integer lockedStock = 0; |
|||
|
|||
@ApiModelProperty(value = "商品图片") |
|||
private String picUrl; |
|||
} |
|||
@ -0,0 +1,45 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseMallEntity; |
|||
import cc.hiver.core.common.constant.CommonConstant; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Column; |
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_mall") |
|||
@TableName("t_mall") |
|||
@ApiModel(value = "商铺表") |
|||
public class Mall extends HiverBaseMallEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "商铺名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "商铺简介") |
|||
private String description; |
|||
|
|||
@ApiModelProperty(value = "商铺图片") |
|||
private String picUrl; |
|||
|
|||
@ApiModelProperty(value = "排序值") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal sortOrder; |
|||
|
|||
@ApiModelProperty(value = "是否启用 0启用 -1禁用") |
|||
private Integer status = CommonConstant.STATUS_NORMAL; |
|||
|
|||
@ApiModelProperty(value = "是否默认商铺") |
|||
private Integer defaulted; |
|||
} |
|||
@ -0,0 +1,29 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseEntity; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_popular_url") |
|||
@TableName("t_popular_url") |
|||
@ApiModel(value = "热销推荐地址表") |
|||
public class PopularUrl extends HiverBaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "热销地址") |
|||
private String url; |
|||
|
|||
@ApiModelProperty(value = "商铺id") |
|||
private String mallId; |
|||
} |
|||
@ -0,0 +1,29 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseEntity; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_popular_url_goods") |
|||
@TableName("t_popular_url_goods") |
|||
@ApiModel(value = "热销推荐地址对应商品表") |
|||
public class PopularUrlGoods extends HiverBaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "链接id") |
|||
private String urlId; |
|||
|
|||
@ApiModelProperty(value = "商品id") |
|||
private String goodsId; |
|||
} |
|||
@ -0,0 +1,35 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseEntity; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_role_setting") |
|||
@TableName("t_role_setting") |
|||
@ApiModel(value = "角色配置表") |
|||
@NoArgsConstructor |
|||
public class RoleSetting extends HiverBaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "关联角色id") |
|||
private String roleId; |
|||
|
|||
@ApiModelProperty(value = "配置值value") |
|||
private String value; |
|||
|
|||
public RoleSetting(String id) { |
|||
super.setId(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,56 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseEntity; |
|||
import cc.hiver.core.common.constant.MallConstant; |
|||
import cc.hiver.core.common.utils.SnowFlakeUtil; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_sales_order") |
|||
@TableName("t_sales_order") |
|||
@ApiModel(value = "销售单主表") |
|||
public class SalesOrder extends HiverBaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "销售单号") |
|||
private String sn = "SN" + SnowFlakeUtil.nextId().toString(); |
|||
|
|||
@ApiModelProperty(value = "用户ID") |
|||
private String userId; |
|||
|
|||
@ApiModelProperty(value = "收货人姓名") |
|||
private String consigneeName; |
|||
|
|||
@ApiModelProperty(value = "收货人联系方式") |
|||
private String consigneeMobile; |
|||
|
|||
@ApiModelProperty(value = "收货人公司") |
|||
private String consigneeCompany; |
|||
|
|||
@ApiModelProperty(value = "收货人所属区域") |
|||
private String consigneeArea; |
|||
|
|||
@ApiModelProperty(value = "详细地址") |
|||
private String address; |
|||
|
|||
@ApiModelProperty(value = "邮编") |
|||
private String zipCode; |
|||
|
|||
@ApiModelProperty(value = "是否启用 0处理中 1已保存") |
|||
private Integer status = MallConstant.SALES_ORDER_PROCESS; |
|||
|
|||
@ApiModelProperty(value = "订单总额") |
|||
private BigDecimal totalAmount = new BigDecimal(0); |
|||
} |
|||
@ -0,0 +1,51 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseEntity; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_sales_order_item") |
|||
@TableName("t_sales_order_item") |
|||
@ApiModel(value = "销售单详细表") |
|||
public class SalesOrderItem extends HiverBaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "销售单主表id") |
|||
private String salesOrderId; |
|||
|
|||
@ApiModelProperty(value = "商品编号") |
|||
private String sn; |
|||
|
|||
@ApiModelProperty(value = "商品名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "商品ID") |
|||
private String goodsId; |
|||
|
|||
@ApiModelProperty(value = "商品规格值,以英文逗号(,)分割") |
|||
private String specIds; |
|||
|
|||
@ApiModelProperty(value = "商品图片") |
|||
private String picUrl; |
|||
|
|||
@ApiModelProperty(value = "商品单价") |
|||
private BigDecimal price = new BigDecimal(0); |
|||
|
|||
@ApiModelProperty(value = "商品数量") |
|||
private Integer count = 0; |
|||
|
|||
@ApiModelProperty(value = "商品总价") |
|||
private BigDecimal totalAmount = new BigDecimal(0); |
|||
} |
|||
@ -0,0 +1,51 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.common.utils.SnowFlakeUtil; |
|||
import com.baomidou.mybatisplus.annotation.FieldFill; |
|||
import com.baomidou.mybatisplus.annotation.TableField; |
|||
import com.baomidou.mybatisplus.annotation.TableId; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
import org.springframework.data.annotation.CreatedBy; |
|||
import org.springframework.data.annotation.CreatedDate; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Id; |
|||
import javax.persistence.Table; |
|||
import java.util.Date; |
|||
|
|||
@Data |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_user_clock_in") |
|||
@TableName("t_user_clock_in") |
|||
@ApiModel(value = "用户打卡表") |
|||
public class UserClockIn { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@Id |
|||
@TableId |
|||
@ApiModelProperty(value = "唯一标识") |
|||
private String id = SnowFlakeUtil.nextId().toString(); |
|||
|
|||
@ApiModelProperty(value = "用户id") |
|||
private String userId; |
|||
|
|||
@ApiModelProperty(value = "打卡人") |
|||
@CreatedBy |
|||
@TableField(fill = FieldFill.INSERT) |
|||
private String clockInBy; |
|||
|
|||
@CreatedDate |
|||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
@ApiModelProperty(value = "打卡时间") |
|||
private Date clockInTime; |
|||
} |
|||
@ -0,0 +1,31 @@ |
|||
package cc.hiver.mall.entity; |
|||
|
|||
import cc.hiver.core.base.HiverBaseEntity; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.experimental.Accessors; |
|||
import org.hibernate.annotations.DynamicInsert; |
|||
import org.hibernate.annotations.DynamicUpdate; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
|
|||
@Data |
|||
@Accessors(chain = true) |
|||
@Entity |
|||
@DynamicInsert |
|||
@DynamicUpdate |
|||
@Table(name = "t_user_mall") |
|||
@TableName("t_user_mall") |
|||
@ApiModel(value = "用户管理商铺表") |
|||
public class UserMall extends HiverBaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty(value = "用户id") |
|||
private String userId; |
|||
|
|||
@ApiModelProperty(value = "商铺id") |
|||
private String mallId; |
|||
} |
|||
@ -0,0 +1,36 @@ |
|||
package cc.hiver.mall.pojo.dto; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
@Data |
|||
public class CartItemDTO implements Serializable { |
|||
@ApiModelProperty(value = "商品库存ID") |
|||
private String goodsStockId; |
|||
|
|||
@ApiModelProperty(value = "商品库存名称") |
|||
private String goodsStockName; |
|||
|
|||
@ApiModelProperty(value = "商品编码") |
|||
private String goodsStockSN; |
|||
|
|||
@ApiModelProperty(value = "商品图片") |
|||
private String picUrl; |
|||
|
|||
@ApiModelProperty(value = "商品数量") |
|||
private Integer count; |
|||
|
|||
@ApiModelProperty(value = "加入购物车时价格,因会变动,不能作为订单计算因子,订单提交时需验价") |
|||
private Long price; |
|||
|
|||
@ApiModelProperty(value = "是否选中") |
|||
private Boolean checked; |
|||
|
|||
@ApiModelProperty(value = "商品库存数量,页面控制能选择最大数量") |
|||
private Integer stock; |
|||
|
|||
@ApiModelProperty(value = "商品名称") |
|||
private String goodsName; |
|||
} |
|||
@ -0,0 +1,38 @@ |
|||
package cc.hiver.mall.pojo.dto; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import javax.validation.constraints.NotEmpty; |
|||
import javax.validation.constraints.NotNull; |
|||
import java.util.List; |
|||
|
|||
@Data |
|||
@ApiModel("属性表单") |
|||
public class CategoryAttributeDto { |
|||
@ApiModelProperty("分类ID") |
|||
@NotNull |
|||
private Long categoryId; |
|||
|
|||
|
|||
@ApiModelProperty("属性类型(1:规格;2:属性)") |
|||
@NotNull |
|||
private Integer type; |
|||
|
|||
@ApiModelProperty("属性集合") |
|||
@NotEmpty |
|||
private List<Attribute> attributes; |
|||
|
|||
@Data |
|||
public static class Attribute { |
|||
|
|||
@ApiModelProperty("属性ID") |
|||
private Long id; |
|||
|
|||
@ApiModelProperty("属性名称") |
|||
@NotBlank |
|||
private String name; |
|||
} |
|||
} |
|||
@ -0,0 +1,66 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.pojo.dto; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
import lombok.ToString; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Data |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
@ToString |
|||
public class CheckPriceDTO { |
|||
/** |
|||
* 订单编号 |
|||
*/ |
|||
private String orderSn; |
|||
|
|||
/** |
|||
* 订单总金额 |
|||
*/ |
|||
private BigDecimal orderTotalAmount; |
|||
|
|||
/** |
|||
* 订单商品明细 |
|||
*/ |
|||
private List<OrderSku> orderSkus; |
|||
|
|||
/** |
|||
* 订单商品对象 |
|||
*/ |
|||
@Data |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public static class OrderSku { |
|||
/** |
|||
* 商品ID |
|||
*/ |
|||
private String goodsId; |
|||
|
|||
/** |
|||
* 商品数量 |
|||
*/ |
|||
private Integer count; |
|||
} |
|||
} |
|||
@ -0,0 +1,58 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.pojo.dto; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.persistence.Column; |
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Data |
|||
public class GoodsStockDto { |
|||
@ApiModelProperty(value = "序号") |
|||
private String id; |
|||
|
|||
@ApiModelProperty(value = "库存编码") |
|||
private String sn; |
|||
|
|||
@ApiModelProperty(value = "库存名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "商品名称") |
|||
private String goodsName; |
|||
|
|||
@ApiModelProperty(value = "采购价") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal purchasePrice; |
|||
|
|||
@ApiModelProperty(value = "市场价") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal price; |
|||
|
|||
@ApiModelProperty(value = "批发价") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal wholesalePrice; |
|||
|
|||
@ApiModelProperty(value = "库存数量") |
|||
private Integer stock = 0; |
|||
|
|||
@ApiModelProperty(value = "商品图片") |
|||
private String picUrl; |
|||
} |
|||
@ -0,0 +1,57 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.pojo.dto; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
import lombok.ToString; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Data |
|||
@ToString |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public class LockStockDTO { |
|||
/** |
|||
* 订单编号 |
|||
*/ |
|||
private String orderSn; |
|||
|
|||
/** |
|||
* 锁定商品集合 |
|||
*/ |
|||
private List<LockedStock> lockedStocks; |
|||
|
|||
@Data |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public static class LockedStock { |
|||
/** |
|||
* 锁定商品ID |
|||
*/ |
|||
private String goodsId; |
|||
|
|||
/** |
|||
* 商品数量 |
|||
*/ |
|||
private Integer count; |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
package cc.hiver.mall.pojo.dto; |
|||
|
|||
import cc.hiver.mall.entity.PopularUrl; |
|||
import cc.hiver.mall.entity.PopularUrlGoods; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.experimental.Accessors; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Data |
|||
@Accessors(chain = true) |
|||
public class PopularUrlDto { |
|||
@ApiModelProperty(value = "热销链接主表") |
|||
private PopularUrl url; |
|||
|
|||
@ApiModelProperty(value = "热销商品列表") |
|||
private List<PopularUrlGoods> goodsList; |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
package cc.hiver.mall.pojo.dto; |
|||
|
|||
import cc.hiver.mall.entity.SalesOrder; |
|||
import cc.hiver.mall.entity.SalesOrderItem; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.experimental.Accessors; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Data |
|||
@Accessors(chain = true) |
|||
public class SalesOrderDto { |
|||
@ApiModelProperty("销售单主表") |
|||
private SalesOrder order; |
|||
|
|||
@ApiModelProperty(value = "销售单列表") |
|||
private List<SalesOrderItem> orderItems; |
|||
} |
|||
@ -0,0 +1,22 @@ |
|||
package cc.hiver.mall.pojo.form; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class GoodsAttributeForm { |
|||
@ApiModelProperty(value = "序号") |
|||
private String id; |
|||
|
|||
@ApiModelProperty(value = "属性ID") |
|||
private Long attributeId; |
|||
|
|||
@ApiModelProperty(value = "商品属性名") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "商品属性值") |
|||
private String value; |
|||
|
|||
@ApiModelProperty(value = "商品图片") |
|||
private String picUrl; |
|||
} |
|||
@ -0,0 +1,54 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.pojo.form; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import javax.validation.constraints.NotEmpty; |
|||
import javax.validation.constraints.NotNull; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Data |
|||
@ApiModel("属性表单") |
|||
public class GoodsCategoryAttributeForm { |
|||
@ApiModelProperty("分类ID") |
|||
@NotNull |
|||
private String categoryId; |
|||
|
|||
@ApiModelProperty("属性类型(1:规格;2:属性)") |
|||
@NotNull |
|||
private Integer type; |
|||
|
|||
@ApiModelProperty("属性集合") |
|||
@NotEmpty |
|||
private List<Attribute> attributes; |
|||
|
|||
@Data |
|||
public static class Attribute { |
|||
@ApiModelProperty("属性ID") |
|||
private String id; |
|||
|
|||
@ApiModelProperty("属性名称") |
|||
@NotBlank |
|||
private String name; |
|||
} |
|||
} |
|||
@ -0,0 +1,81 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.pojo.form; |
|||
|
|||
import cc.hiver.mall.entity.GoodsStock; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.persistence.Column; |
|||
import java.math.BigDecimal; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Data |
|||
public class GoodsForm { |
|||
@ApiModelProperty(value = "序号") |
|||
private String id; |
|||
|
|||
@ApiModelProperty(value = "商品名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "商品类型ID") |
|||
private String categoryId; |
|||
|
|||
@ApiModelProperty(value = "商品品牌ID") |
|||
private String brandId; |
|||
|
|||
@ApiModelProperty(value = "采购价") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal purchasePrice; |
|||
|
|||
@ApiModelProperty(value = "市场价") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal price; |
|||
|
|||
@ApiModelProperty(value = "批发价") |
|||
@Column(precision = 10, scale = 2) |
|||
private BigDecimal wholesalePrice; |
|||
|
|||
@ApiModelProperty(value = "商品主图") |
|||
private String picUrl; |
|||
|
|||
@ApiModelProperty("商品副图") |
|||
private String[] subPicUrls; |
|||
|
|||
@ApiModelProperty(value = "视频地址") |
|||
private String videoUrl; |
|||
|
|||
@ApiModelProperty(value = "商品简介") |
|||
private String description; |
|||
|
|||
@ApiModelProperty(value = "商品详情") |
|||
private String detail; |
|||
|
|||
@ApiModelProperty(value = "是否启用 0上架 -1下架") |
|||
private Integer status; |
|||
|
|||
@ApiModelProperty(value = "属性列表") |
|||
private List<GoodsAttributeForm> attrList; |
|||
|
|||
@ApiModelProperty(value = "规格列表") |
|||
private List<GoodsAttributeForm> specList; |
|||
|
|||
@ApiModelProperty(value = "库存列表") |
|||
private List<GoodsStock> goodsStockList; |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
package cc.hiver.mall.pojo.query; |
|||
|
|||
import cc.hiver.core.common.annotation.Query; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
@Data |
|||
public class CustomAddressQueryCriteria implements Serializable { |
|||
@Query |
|||
private String id; |
|||
|
|||
@Query |
|||
private String userId; |
|||
|
|||
@Query(blurry = "consignee,receivingMobile,receivingCompany") |
|||
private String blurry; |
|||
} |
|||
@ -0,0 +1,40 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.pojo.query; |
|||
|
|||
import cc.hiver.core.base.HiverBasePageQuery; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@ApiModel("商品分页查询对象") |
|||
@Data |
|||
public class GoodsPageQuery extends HiverBasePageQuery { |
|||
@ApiModelProperty("关键字") |
|||
private String keywords; |
|||
|
|||
@ApiModelProperty("商品分类ID") |
|||
private Long categoryId; |
|||
|
|||
@ApiModelProperty("排序字段名") |
|||
private String sortField; |
|||
|
|||
@ApiModelProperty("排序规则(asc:升序;desc:降序)") |
|||
private String sort; |
|||
} |
|||
@ -0,0 +1,53 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.pojo.vo; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Data |
|||
public class GoodsCategoryVO { |
|||
@ApiModelProperty(value = "编号") |
|||
private String id; |
|||
|
|||
@ApiModelProperty(value = "商品分类名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "父级ID") |
|||
private String parentId; |
|||
|
|||
@ApiModelProperty(value = "层级") |
|||
private Integer level; |
|||
|
|||
@ApiModelProperty(value = "图标地址") |
|||
private String iconUrl; |
|||
|
|||
@ApiModelProperty(value = "排序值") |
|||
private BigDecimal sortOrder; |
|||
|
|||
@ApiModelProperty(value = "是否启用 0启用 -1禁用") |
|||
private Integer status; |
|||
|
|||
@ApiModelProperty(value = "子节点") |
|||
private List<GoodsCategoryVO> children = new ArrayList<>(); |
|||
} |
|||
@ -0,0 +1,80 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.pojo.vo; |
|||
|
|||
import cc.hiver.mall.entity.GoodsAttribute; |
|||
import cc.hiver.mall.entity.GoodsStock; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Data |
|||
@ApiModel("商品详情视图对象") |
|||
public class GoodsDetailVO { |
|||
@ApiModelProperty(value = "序号") |
|||
private String id; |
|||
|
|||
@ApiModelProperty(value = "商品名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "商品类型ID") |
|||
private String categoryId; |
|||
|
|||
@ApiModelProperty(value = "商品品牌ID") |
|||
private String brandId; |
|||
|
|||
@ApiModelProperty(value = "采购价") |
|||
private BigDecimal purchasePrice; |
|||
|
|||
@ApiModelProperty(value = "市场价") |
|||
private BigDecimal price; |
|||
|
|||
@ApiModelProperty(value = "批发价") |
|||
private BigDecimal wholesalePrice; |
|||
|
|||
@ApiModelProperty(value = "商品主图") |
|||
private String picUrl; |
|||
|
|||
@ApiModelProperty("商品副图") |
|||
private String[] subPicUrls; |
|||
|
|||
@ApiModelProperty(value = "视频地址") |
|||
private String videoUrl; |
|||
|
|||
@ApiModelProperty(value = "商品简介") |
|||
private String description; |
|||
|
|||
@ApiModelProperty(value = "商品详情") |
|||
private String detail; |
|||
|
|||
@ApiModelProperty(value = "是否启用 0上架 -1下架") |
|||
private Integer status; |
|||
|
|||
@ApiModelProperty(value = "属性列表") |
|||
private List<GoodsAttribute> attrList; |
|||
|
|||
@ApiModelProperty(value = "规格列表") |
|||
private List<GoodsAttribute> specList; |
|||
|
|||
@ApiModelProperty(value = "库存列表") |
|||
private List<GoodsStock> goodsStockList; |
|||
} |
|||
@ -0,0 +1,85 @@ |
|||
/* |
|||
Copyright [2022] [https://hiver.cc]
|
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
*/ |
|||
package cc.hiver.mall.pojo.vo; |
|||
|
|||
import cc.hiver.mall.entity.GoodsStock; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.experimental.Accessors; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Yazhi Li |
|||
*/ |
|||
@Data |
|||
@Accessors(chain = true) |
|||
public class GoodsPageVO { |
|||
@ApiModelProperty(value = "序号") |
|||
private String id; |
|||
|
|||
@ApiModelProperty(value = "商品名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "商品类型ID") |
|||
private String categoryId; |
|||
|
|||
@ApiModelProperty(value = "商品品牌ID") |
|||
private String brandId; |
|||
|
|||
@ApiModelProperty(value = "采购价") |
|||
private BigDecimal purchasePrice; |
|||
|
|||
@ApiModelProperty(value = "市场价") |
|||
private BigDecimal price; |
|||
|
|||
@ApiModelProperty(value = "批发价") |
|||
private BigDecimal wholesalePrice; |
|||
|
|||
@ApiModelProperty(value = "销量") |
|||
private Integer sales; |
|||
|
|||
@ApiModelProperty(value = "商品主图") |
|||
private String picUrl; |
|||
|
|||
@ApiModelProperty(value = "视频地址") |
|||
private String videoUrl; |
|||
|
|||
@ApiModelProperty(value = "商品图册") |
|||
private String album; |
|||
|
|||
@ApiModelProperty(value = "单位") |
|||
private String unit; |
|||
|
|||
@ApiModelProperty(value = "商品简介") |
|||
private String description; |
|||
|
|||
@ApiModelProperty(value = "商品详情") |
|||
private String detail; |
|||
|
|||
@ApiModelProperty(value = "是否启用 0上架 -1下架") |
|||
private Integer status; |
|||
|
|||
@ApiModelProperty(value = "分类名称") |
|||
private String categoryName; |
|||
|
|||
@ApiModelProperty(value = "品牌名称") |
|||
private String brandName; |
|||
|
|||
@ApiModelProperty(value = "库存列表") |
|||
private List<GoodsStock> goodsStockList; |
|||
} |
|||
@ -0,0 +1,113 @@ |
|||
package cc.hiver.mall.pojo.vo; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.List; |
|||
|
|||
@Data |
|||
@ApiModel("商品详情") |
|||
public class MallGoodsDetailVO { |
|||
@ApiModelProperty("商品基本信息") |
|||
private GoodsInfo goodsInfo; |
|||
|
|||
@ApiModelProperty("商品属性列表") |
|||
private List<Attribute> attributeList; |
|||
|
|||
@ApiModelProperty("商品规格列表") |
|||
private List<Specification> specList; |
|||
|
|||
@ApiModelProperty("商品库存单元列表") |
|||
private List<Sku> skuList; |
|||
|
|||
@Data |
|||
@ApiModel("商品信息") |
|||
public static class GoodsInfo { |
|||
@ApiModelProperty("商品ID") |
|||
private String id; |
|||
|
|||
@ApiModelProperty("商品名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "采购价") |
|||
private BigDecimal purchasePrice; |
|||
|
|||
@ApiModelProperty(value = "市场价") |
|||
private BigDecimal price; |
|||
|
|||
@ApiModelProperty(value = "批发价") |
|||
private BigDecimal wholesalePrice; |
|||
|
|||
@ApiModelProperty("销量") |
|||
private Integer sales; |
|||
|
|||
@ApiModelProperty("商品图册") |
|||
private List<String> album; |
|||
|
|||
@ApiModelProperty("商品详情") |
|||
private String detail; |
|||
} |
|||
|
|||
@Data |
|||
@ApiModel("属性信息") |
|||
public static class Attribute { |
|||
@ApiModelProperty("属性ID") |
|||
private String id; |
|||
|
|||
@ApiModelProperty("属性名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty("属性值") |
|||
private String value; |
|||
} |
|||
|
|||
@Data |
|||
@ApiModel("规格信息") |
|||
public static class Specification { |
|||
@ApiModelProperty(value = "规格名称", example = "颜色") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "规格项列表", example = "黑,白") |
|||
private List<Value> values; |
|||
|
|||
@Data |
|||
@ApiModel("规格项") |
|||
public static class Value { |
|||
@ApiModelProperty("规格项ID") |
|||
private String id; |
|||
|
|||
@ApiModelProperty("规格项值") |
|||
private String value; |
|||
} |
|||
} |
|||
|
|||
@Data |
|||
@ApiModel("商品库存单元") |
|||
public static class Sku { |
|||
@ApiModelProperty("库存单元ID") |
|||
private String id; |
|||
|
|||
@ApiModelProperty("库存单元名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty("库存单元规格值ID集合,以英文逗号拼接") |
|||
private String specIds; |
|||
|
|||
@ApiModelProperty(value = "采购价") |
|||
private BigDecimal purchasePrice; |
|||
|
|||
@ApiModelProperty(value = "市场价") |
|||
private BigDecimal price; |
|||
|
|||
@ApiModelProperty(value = "批发价") |
|||
private BigDecimal wholesalePrice; |
|||
|
|||
@ApiModelProperty("库存") |
|||
private Integer stockNum; |
|||
|
|||
@ApiModelProperty("商品图片URL") |
|||
private String picUrl; |
|||
} |
|||
} |
|||
@ -0,0 +1,32 @@ |
|||
package cc.hiver.mall.pojo.vo; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
@ApiModel("商品分页对象") |
|||
@Data |
|||
public class MallGoodsPageVO { |
|||
@ApiModelProperty("商品ID") |
|||
private Long id; |
|||
|
|||
@ApiModelProperty("商品名称") |
|||
private String name; |
|||
|
|||
@ApiModelProperty(value = "采购价") |
|||
private BigDecimal purchasePrice; |
|||
|
|||
@ApiModelProperty(value = "市场价") |
|||
private BigDecimal price; |
|||
|
|||
@ApiModelProperty(value = "批发价") |
|||
private BigDecimal wholesalePrice; |
|||
|
|||
@ApiModelProperty("销量") |
|||
private Integer sales; |
|||
|
|||
@ApiModelProperty("图片地址") |
|||
private String picUrl; |
|||
} |
|||
@ -0,0 +1,21 @@ |
|||
package cc.hiver.mall.service; |
|||
|
|||
import cc.hiver.mall.pojo.dto.CartItemDTO; |
|||
|
|||
import java.util.List; |
|||
|
|||
public interface CartService { |
|||
List<CartItemDTO> listCartItems(String memberId); |
|||
|
|||
boolean deleteCart(String memberId); |
|||
|
|||
boolean addCartItem(String goodsStockId, String memberId); |
|||
|
|||
boolean updateCartItem(CartItemDTO cartItem, String memberId); |
|||
|
|||
boolean removeCartItem(String goodsStockId, String memberId); |
|||
|
|||
boolean removeCheckedItem(String memberId); |
|||
|
|||
boolean checkAll(boolean checked, String memberId); |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
package cc.hiver.mall.service; |
|||
|
|||
import cc.hiver.core.base.HiverBaseService; |
|||
import cc.hiver.mall.entity.CustomAddress; |
|||
import cc.hiver.mall.pojo.query.CustomAddressQueryCriteria; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.data.domain.Pageable; |
|||
|
|||
public interface CustomAddressService extends HiverBaseService<CustomAddress, String> { |
|||
Page<CustomAddress> queryAll(CustomAddressQueryCriteria criteria, Pageable pageable); |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
package cc.hiver.mall.service; |
|||
|
|||
import cc.hiver.core.base.HiverBaseService; |
|||
import cc.hiver.mall.entity.GoodsBrand; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.data.domain.Pageable; |
|||
|
|||
/** |
|||
* 商品品牌服务接口 |
|||
* |
|||
* @author Yazhi Li |
|||
*/ |
|||
public interface GoodsBrandService extends HiverBaseService<GoodsBrand, String> { |
|||
Page<GoodsBrand> findByCondition(GoodsBrand goodsBrand, Pageable pageable); |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.service; |
|||
|
|||
import cc.hiver.core.base.HiverBaseService; |
|||
import cc.hiver.mall.entity.GoodsInStock; |
|||
|
|||
public interface GoodsInStockService extends HiverBaseService<GoodsInStock, String> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.service; |
|||
|
|||
import cc.hiver.core.base.HiverBaseService; |
|||
import cc.hiver.mall.entity.Mall; |
|||
|
|||
public interface MallService extends HiverBaseService<Mall, String> { |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
package cc.hiver.mall.service; |
|||
|
|||
import cc.hiver.core.base.HiverBaseService; |
|||
import cc.hiver.mall.entity.PopularUrlGoods; |
|||
|
|||
import java.util.List; |
|||
|
|||
public interface PopularUrlGoodsService extends HiverBaseService<PopularUrlGoods, String> { |
|||
List<PopularUrlGoods> findAllByUrlId(String urlId); |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.service; |
|||
|
|||
import cc.hiver.core.base.HiverBaseService; |
|||
import cc.hiver.mall.entity.PopularUrl; |
|||
|
|||
public interface PopularUrlService extends HiverBaseService<PopularUrl, String> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.service; |
|||
|
|||
import cc.hiver.core.base.HiverBaseService; |
|||
import cc.hiver.mall.entity.RoleSetting; |
|||
|
|||
public interface RoleSettingService extends HiverBaseService<RoleSetting, String> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.service; |
|||
|
|||
import cc.hiver.core.base.HiverBaseService; |
|||
import cc.hiver.mall.entity.SalesOrderItem; |
|||
|
|||
public interface SalesOrderItemService extends HiverBaseService<SalesOrderItem, String> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.service; |
|||
|
|||
import cc.hiver.core.base.HiverBaseService; |
|||
import cc.hiver.mall.entity.SalesOrder; |
|||
|
|||
public interface SalesOrderService extends HiverBaseService<SalesOrder, String> { |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package cc.hiver.mall.service; |
|||
|
|||
import cc.hiver.core.base.HiverBaseService; |
|||
import cc.hiver.mall.entity.UserClockIn; |
|||
|
|||
public interface UserClockInService extends HiverBaseService<UserClockIn, String> { |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
package cc.hiver.mall.service; |
|||
|
|||
import cc.hiver.core.base.HiverBaseService; |
|||
import cc.hiver.mall.entity.UserMall; |
|||
|
|||
public interface UserMallService extends HiverBaseService<UserMall, String> { |
|||
void deleteAllByMallId(String mallId); |
|||
} |
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue