diff --git a/hiver-core/src/main/java/cc/hiver/core/common/constant/ShopConstant.java b/hiver-core/src/main/java/cc/hiver/core/common/constant/ShopConstant.java
new file mode 100644
index 00000000..a992fbbd
--- /dev/null
+++ b/hiver-core/src/main/java/cc/hiver/core/common/constant/ShopConstant.java
@@ -0,0 +1,28 @@
+package cc.hiver.core.common.constant;
+
+/**
+ * 商城静态常量
+ *
+ * @author Yazhi Li
+ */
+public interface ShopConstant {
+ /**
+ * 上架
+ */
+ Integer GOODS_PUT_ON_SALE = 0;
+
+ /**
+ * 下架
+ */
+ Integer GOODS_PULL_ON_SALE = -1;
+
+ /**
+ * 通用规格
+ */
+ Integer GOODS_ATTRIBUTE_COMMON = 0;
+
+ /**
+ * 定制规格
+ */
+ Integer GOODS_ATTRIBUTE_CUSTOM = 1;
+}
diff --git a/hiver-modules/hiver-shop/pom.xml b/hiver-modules/hiver-shop/pom.xml
new file mode 100644
index 00000000..aa1d6d88
--- /dev/null
+++ b/hiver-modules/hiver-shop/pom.xml
@@ -0,0 +1,13 @@
+
+
+
+ cc.hiver
+ hiver-modules
+ 1.0-SNAPSHOT
+
+ 4.0.0
+ 商铺模块
+ hiver-shop
+
\ No newline at end of file
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/AddressController.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/AddressController.java
new file mode 100644
index 00000000..30edc201
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/AddressController.java
@@ -0,0 +1,61 @@
+package cc.hiver.shop.controller;
+
+import cc.hiver.core.common.utils.ResultUtil;
+import cc.hiver.core.common.vo.Result;
+import cc.hiver.shop.entity.Address;
+import cc.hiver.shop.service.AddressService;
+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/address/")
+@Transactional
+public class AddressController {
+ @Autowired
+ private AddressService addressService;
+
+ @RequestMapping(value = "/getAll/{memberId}", method = RequestMethod.GET)
+ @ApiOperation(value = "根据会员id获得收货地址列表")
+ public Result getAllByMemberId(@PathVariable String memberId) {
+ List
list = addressService.findAllByMemberId(memberId);
+ return ResultUtil.data(list);
+ }
+
+ @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
+ @ApiOperation(value = "通过id获取")
+ public Result get(@PathVariable String id) {
+ Address data = addressService.findById(id);
+ return new ResultUtil().setData(data);
+ }
+
+ @RequestMapping(value = "/save", method = RequestMethod.POST)
+ @ApiOperation(value = "保存数据")
+ public Result save(Address entity) {
+ Address address = addressService.save(entity);
+ return new ResultUtil().setData(address);
+ }
+
+ @RequestMapping(value = "/edit", method = RequestMethod.POST)
+ @ApiOperation(value = "更新数据")
+ public Result edit(Address entity) {
+ Address address = addressService.update(entity);
+ return new ResultUtil().setData(address);
+ }
+
+ @RequestMapping(value = "/delByIds", method = RequestMethod.POST)
+ @ApiOperation(value = "批量通过ids删除")
+ public Result delByIds(@RequestParam String[] ids) {
+ for (String id : ids) {
+ addressService.delete(id);
+ }
+ return ResultUtil.success("批量通过id删除数据成功");
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/CustomAddressController.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/CustomAddressController.java
new file mode 100644
index 00000000..ea56f2e2
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/CustomAddressController.java
@@ -0,0 +1,63 @@
+package cc.hiver.shop.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.shop.entity.CustomAddress;
+import cc.hiver.shop.service.CustomAddressService;
+import cc.hiver.shop.dto.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> queryAll(CustomAddressQueryCriteria criteria, PageVo pageVo) {
+ Page users = customAddressService.queryAll(criteria, PageUtil.initPage(pageVo));
+ return new ResultUtil>().setData(users);
+ }
+
+ @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
+ @ApiOperation(value = "通过id获取")
+ public Result get(@PathVariable String id) {
+ CustomAddress data = customAddressService.findById(id);
+ return new ResultUtil().setData(data);
+ }
+
+ @RequestMapping(value = "/save", method = RequestMethod.POST)
+ @ApiOperation(value = "保存数据")
+ public Result save(CustomAddress entity) {
+ CustomAddress address = customAddressService.save(entity);
+ return new ResultUtil().setData(address);
+ }
+
+ @RequestMapping(value = "/edit", method = RequestMethod.POST)
+ @ApiOperation(value = "更新数据")
+ public Result edit(CustomAddress entity) {
+ CustomAddress address = customAddressService.update(entity);
+ return new ResultUtil().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删除数据成功");
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/GoodsAttributeController.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/GoodsAttributeController.java
new file mode 100644
index 00000000..785cb237
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/GoodsAttributeController.java
@@ -0,0 +1,89 @@
+package cc.hiver.shop.controller;
+
+import cc.hiver.core.common.utils.ResultUtil;
+import cc.hiver.core.common.vo.Result;
+import cc.hiver.shop.entity.GoodsAttributeKey;
+import cc.hiver.shop.entity.GoodsAttributeValue;
+import cc.hiver.shop.entity.Mall;
+import cc.hiver.shop.service.GoodsAttributeKeyService;
+import cc.hiver.shop.service.GoodsAttributeValueService;
+import cc.hiver.shop.service.MallService;
+import cc.hiver.shop.dto.GoodsAttributeDto;
+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.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Slf4j
+@RestController
+@Api(tags = "商品规格接口")
+@RequestMapping(value = "/hiver/app/goodsAttribute/")
+@Transactional
+public class GoodsAttributeController {
+ @Autowired
+ private GoodsAttributeKeyService goodsAttributeKeyService;
+
+ @Autowired
+ private GoodsAttributeValueService goodsAttributeValueService;
+
+ @Autowired
+ private MallService mallService;
+
+ @RequestMapping(value = "/save", method = RequestMethod.POST)
+ @ApiOperation(value = "保存数据")
+ public Result save(GoodsAttributeDto entity) {
+ GoodsAttributeKey attributeKey = new GoodsAttributeKey();
+ attributeKey.setMallId(entity.getMallId());
+ attributeKey.setCategoryId(entity.getCategoryId());
+ attributeKey.setAttributeKey(entity.getAttributeKey());
+ Mall mall = mallService.findById(entity.getMallId());
+ if(mall == null) {
+ return ResultUtil.error("商铺不存在");
+ }
+ attributeKey.setRegion(mall.getRegion());
+ GoodsAttributeKey goodsAttributeKey = goodsAttributeKeyService.save(attributeKey);
+ for(String value : entity.getAttributeValues()) {
+ GoodsAttributeValue goodsAttributeValue = new GoodsAttributeValue();
+ goodsAttributeValue.setAttributeId(goodsAttributeKey.getId());
+ goodsAttributeValue.setAttributeValue(value);
+ goodsAttributeValueService.save(goodsAttributeValue);
+ }
+ return ResultUtil.success();
+ }
+
+ @RequestMapping(value = "/edit", method = RequestMethod.POST)
+ @ApiOperation(value = "更新数据")
+ public Result edit(GoodsAttributeDto entity) {
+ GoodsAttributeKey goodsAttributeKey = goodsAttributeKeyService.findById(entity.getId());
+ goodsAttributeKey.setAttributeKey(entity.getAttributeKey());
+ List values = goodsAttributeValueService.findAllBykAndAttributeId(entity.getId());
+ goodsAttributeValueService.delete(values);
+ for(String v : entity.getAttributeValues()) {
+ GoodsAttributeValue goodsAttributeValue = new GoodsAttributeValue();
+ goodsAttributeValue.setAttributeId(entity.getId());
+ goodsAttributeValue.setAttributeValue(v);
+ goodsAttributeValueService.save(goodsAttributeValue);
+ }
+ return ResultUtil.success();
+ }
+
+ @RequestMapping(value = "/delByIds", method = RequestMethod.POST)
+ @ApiOperation(value = "批量通过ids删除")
+ public Result delByIds(@RequestParam String[] ids) {
+ for (String id : ids) {
+ List values = goodsAttributeValueService.getAll();
+ for(GoodsAttributeValue value : values) {
+ goodsAttributeValueService.delete(value);
+ }
+ goodsAttributeKeyService.delete(id);
+ }
+ return ResultUtil.success("批量通过id删除数据成功");
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/GoodsCategoryController.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/GoodsCategoryController.java
new file mode 100644
index 00000000..ca2a69f6
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/GoodsCategoryController.java
@@ -0,0 +1,41 @@
+package cc.hiver.shop.controller;
+
+import cc.hiver.core.common.utils.ResultUtil;
+import cc.hiver.core.common.vo.Result;
+import cc.hiver.shop.entity.GoodsCategory;
+import cc.hiver.shop.service.GoodsCategoryService;
+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.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@Slf4j
+@RestController
+@Api(tags = "商品分类接口")
+@RequestMapping(value = "/hiver/app/goodsCategory/")
+@Transactional
+public class GoodsCategoryController {
+ @Autowired
+ private GoodsCategoryService goodsCategoryService;
+
+ @RequestMapping(value = "/save", method = RequestMethod.POST)
+ @ApiOperation(value = "保存数据")
+ public Result save(GoodsCategory entity) {
+ GoodsCategory address = goodsCategoryService.save(entity);
+ return new ResultUtil().setData(address);
+ }
+
+ @RequestMapping(value = "/delByIds", method = RequestMethod.POST)
+ @ApiOperation(value = "批量通过ids删除")
+ public Result delByIds(@RequestParam String[] ids) {
+ for (String id : ids) {
+ goodsCategoryService.delete(id);
+ }
+ return ResultUtil.success("批量通过id删除数据成功");
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/GoodsController.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/GoodsController.java
new file mode 100644
index 00000000..ca0133c2
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/GoodsController.java
@@ -0,0 +1,19 @@
+package cc.hiver.shop.controller;
+
+import cc.hiver.shop.service.GoodsService;
+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/goods/")
+@Transactional
+public class GoodsController {
+ @Autowired
+ private GoodsService goodsService;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/GoodsStockController.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/GoodsStockController.java
new file mode 100644
index 00000000..0d326ab9
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/GoodsStockController.java
@@ -0,0 +1,39 @@
+package cc.hiver.shop.controller;
+
+import cc.hiver.core.common.utils.ResultUtil;
+import cc.hiver.core.common.vo.Result;
+import cc.hiver.shop.entity.GoodsInStock;
+import cc.hiver.shop.entity.GoodsStock;
+import cc.hiver.shop.service.GoodsInStockService;
+import cc.hiver.shop.service.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.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.findById(entity.getGoodsStockId());
+ goodsStock.setStock(goodsStock.getStock() + entity.getNum());
+ goodsStockService.update(goodsStock);
+ return ResultUtil.success();
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/MallController.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/MallController.java
new file mode 100644
index 00000000..7d1ac552
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/MallController.java
@@ -0,0 +1,79 @@
+package cc.hiver.shop.controller;
+
+import cc.hiver.core.common.utils.ResultUtil;
+import cc.hiver.core.common.vo.Result;
+import cc.hiver.shop.entity.Mall;
+import cc.hiver.shop.entity.UserMall;
+import cc.hiver.shop.service.MallService;
+import cc.hiver.shop.service.UserMallService;
+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;
+
+ @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
+ @ApiOperation(value = "通过id获取")
+ public Result get(@PathVariable String id) {
+ Mall data = mallService.findById(id);
+ return new ResultUtil().setData(data);
+ }
+
+ @RequestMapping(value = "/save", method = RequestMethod.POST)
+ @ApiOperation(value = "保存数据")
+ public Result save(Mall entity) {
+ Mall mall = mallService.save(entity);
+ return new ResultUtil().setData(mall);
+ }
+
+ @RequestMapping(value = "/edit", method = RequestMethod.POST)
+ @ApiOperation(value = "更新数据")
+ public Result edit(Mall entity) {
+ Mall mall = mallService.update(entity);
+ return new ResultUtil().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 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 list = mallService.findAllByUserId(userId);
+ return ResultUtil.data(list);
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/PopularUrlController.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/PopularUrlController.java
new file mode 100644
index 00000000..b7d6aa86
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/PopularUrlController.java
@@ -0,0 +1,49 @@
+package cc.hiver.shop.controller;
+
+import cc.hiver.core.common.utils.ResultUtil;
+import cc.hiver.core.common.vo.Result;
+import cc.hiver.shop.dto.PopularUrlDto;
+import cc.hiver.shop.entity.PopularUrlGoods;
+import cc.hiver.shop.service.PopularUrlGoodsService;
+import cc.hiver.shop.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 create(PopularUrlDto entity) {
+ popularUrlService.save(entity.getUrl());
+ for(PopularUrlGoods good : entity.getGoods()) {
+ popularUrlGoodsService.save(good);
+ }
+ return ResultUtil.data(entity.getUrl().getUrl());
+ }
+
+ @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
+ @ApiOperation(value = "通过id获取")
+ public Result get(@PathVariable String id) {
+ PopularUrlDto data = new PopularUrlDto();
+ data.setUrl(popularUrlService.get(id));
+ data.setGoods(popularUrlGoodsService.findAllByUrlId(id));
+ return new ResultUtil().setData(data);
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/RoleSettingController.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/RoleSettingController.java
new file mode 100644
index 00000000..77c35f58
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/RoleSettingController.java
@@ -0,0 +1,19 @@
+package cc.hiver.shop.controller;
+
+import cc.hiver.shop.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;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/ShoppingCartController.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/ShoppingCartController.java
new file mode 100644
index 00000000..f1348f23
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/ShoppingCartController.java
@@ -0,0 +1,38 @@
+package cc.hiver.shop.controller;
+
+import cc.hiver.core.common.utils.ResultUtil;
+import cc.hiver.core.common.vo.Result;
+import cc.hiver.shop.entity.ShoppingCart;
+import cc.hiver.shop.service.ShoppingCartGoodsService;
+import cc.hiver.shop.service.ShoppingCartService;
+import cc.hiver.shop.dto.SalesSlipDto;
+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/shoppingCart/")
+@Transactional
+public class ShoppingCartController {
+ @Autowired
+ private ShoppingCartService shoppingCartService;
+
+ @Autowired
+ private ShoppingCartGoodsService shoppingCartGoodsService;
+
+ @RequestMapping(value = "/create", method = RequestMethod.POST)
+ @ApiOperation(value = "创建销售单")
+ public Result create(ShoppingCart entity) {
+ ShoppingCart shoppingCart = shoppingCartService.save(entity);
+ SalesSlipDto salesSlip = new SalesSlipDto();
+ salesSlip.setShoppingCart(shoppingCart);
+ return new ResultUtil().setData(salesSlip);
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/UserClockInController.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/UserClockInController.java
new file mode 100644
index 00000000..784aa2a6
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/controller/UserClockInController.java
@@ -0,0 +1,33 @@
+package cc.hiver.shop.controller;
+
+import cc.hiver.core.common.utils.ResultUtil;
+import cc.hiver.core.common.vo.Result;
+import cc.hiver.shop.entity.UserClockIn;
+import cc.hiver.shop.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();
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/AddressDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/AddressDao.java
new file mode 100644
index 00000000..9daaee0c
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/AddressDao.java
@@ -0,0 +1,10 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.Address;
+
+import java.util.List;
+
+public interface AddressDao extends HiverBaseDao {
+ List findAllByMemberId(String memberId);
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/CustomAddressDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/CustomAddressDao.java
new file mode 100644
index 00000000..79a86494
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/CustomAddressDao.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.CustomAddress;
+
+public interface CustomAddressDao extends HiverBaseDao {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsAttributeKeyDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsAttributeKeyDao.java
new file mode 100644
index 00000000..f566bdf0
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsAttributeKeyDao.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.GoodsAttributeKey;
+
+public interface GoodsAttributeKeyDao extends HiverBaseDao {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsAttributeValueDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsAttributeValueDao.java
new file mode 100644
index 00000000..6c29a398
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsAttributeValueDao.java
@@ -0,0 +1,10 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.GoodsAttributeValue;
+
+import java.util.List;
+
+public interface GoodsAttributeValueDao extends HiverBaseDao {
+ List findAllBykAndAttributeId(String attributeId);
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsCategoryDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsCategoryDao.java
new file mode 100644
index 00000000..c59efe7d
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsCategoryDao.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.GoodsCategory;
+
+public interface GoodsCategoryDao extends HiverBaseDao {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsDao.java
new file mode 100644
index 00000000..e8eb810b
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsDao.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.Goods;
+
+public interface GoodsDao extends HiverBaseDao {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsInStockDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsInStockDao.java
new file mode 100644
index 00000000..ba1512d4
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsInStockDao.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.GoodsInStock;
+
+public interface GoodsInStockDao extends HiverBaseDao {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsStockDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsStockDao.java
new file mode 100644
index 00000000..27bd7d23
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/GoodsStockDao.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.GoodsStock;
+
+public interface GoodsStockDao extends HiverBaseDao {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/MallDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/MallDao.java
new file mode 100644
index 00000000..14c599fa
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/MallDao.java
@@ -0,0 +1,10 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.Mall;
+
+import java.util.List;
+
+public interface MallDao extends HiverBaseDao {
+ List findAllByUserId(String userId);
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/PopularUrlDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/PopularUrlDao.java
new file mode 100644
index 00000000..3d95f4b6
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/PopularUrlDao.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.PopularUrl;
+
+public interface PopularUrlDao extends HiverBaseDao {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/PopularUrlGoodsDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/PopularUrlGoodsDao.java
new file mode 100644
index 00000000..504b7e00
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/PopularUrlGoodsDao.java
@@ -0,0 +1,10 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.PopularUrlGoods;
+
+import java.util.List;
+
+public interface PopularUrlGoodsDao extends HiverBaseDao {
+ List findAllByUrlId(String urlId);
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/RoleSettingDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/RoleSettingDao.java
new file mode 100644
index 00000000..69cb08cf
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/RoleSettingDao.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.RoleSetting;
+
+public interface RoleSettingDao extends HiverBaseDao {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/ShoppingCartDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/ShoppingCartDao.java
new file mode 100644
index 00000000..3df529f9
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/ShoppingCartDao.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.ShoppingCart;
+
+public interface ShoppingCartDao extends HiverBaseDao {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/ShoppingCartGoodsDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/ShoppingCartGoodsDao.java
new file mode 100644
index 00000000..94760c8b
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/ShoppingCartGoodsDao.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.ShoppingCartGoods;
+
+public interface ShoppingCartGoodsDao extends HiverBaseDao {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/UserClockInDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/UserClockInDao.java
new file mode 100644
index 00000000..0aa221cb
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/UserClockInDao.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.UserClockIn;
+
+public interface UserClockInDao extends HiverBaseDao {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/UserMallDao.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/UserMallDao.java
new file mode 100644
index 00000000..88b62d30
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dao/UserMallDao.java
@@ -0,0 +1,8 @@
+package cc.hiver.shop.dao;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.entity.UserMall;
+
+public interface UserMallDao extends HiverBaseDao {
+ void deleteAllByMallId(String mallId);
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dto/CustomAddressQueryCriteria.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dto/CustomAddressQueryCriteria.java
new file mode 100644
index 00000000..6aad054e
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dto/CustomAddressQueryCriteria.java
@@ -0,0 +1,15 @@
+package cc.hiver.shop.dto;
+
+import cc.hiver.core.common.annotation.Query;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class CustomAddressQueryCriteria implements Serializable {
+ @Query
+ private String userId;
+
+ @Query(blurry = "consignee,receivingMobile,receivingCompany")
+ private String blurry;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dto/GoodsAttributeDto.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dto/GoodsAttributeDto.java
new file mode 100644
index 00000000..b33e2faf
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dto/GoodsAttributeDto.java
@@ -0,0 +1,24 @@
+package cc.hiver.shop.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class GoodsAttributeDto {
+ @ApiModelProperty(value = "编号")
+ private String id;
+
+ @ApiModelProperty(value = "商铺id")
+ private String mallId;
+
+ @ApiModelProperty(value = "分类id")
+ private String categoryId;
+
+ @ApiModelProperty(value = "规格名称")
+ private String attributeKey;
+
+ @ApiModelProperty(value = "规格值列表")
+ private List attributeValues;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dto/PopularUrlDto.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dto/PopularUrlDto.java
new file mode 100644
index 00000000..a6b42d95
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dto/PopularUrlDto.java
@@ -0,0 +1,17 @@
+package cc.hiver.shop.dto;
+
+import cc.hiver.shop.entity.PopularUrl;
+import cc.hiver.shop.entity.PopularUrlGoods;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PopularUrlDto {
+ @ApiModelProperty(value = "链接主表")
+ private PopularUrl url;
+
+ @ApiModelProperty(value = "链接子表")
+ private List goods;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dto/SalesSlipDto.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dto/SalesSlipDto.java
new file mode 100644
index 00000000..e7e0bd21
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/dto/SalesSlipDto.java
@@ -0,0 +1,20 @@
+package cc.hiver.shop.dto;
+
+import cc.hiver.shop.entity.ShoppingCart;
+import cc.hiver.shop.entity.ShoppingCartGoods;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 销售单
+ */
+@Data
+public class SalesSlipDto {
+ @ApiModelProperty(value = "购物车主表")
+ private ShoppingCart shoppingCart;
+
+ @ApiModelProperty(value = "购物车列表")
+ List shoppingCartGoodsList;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/Address.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/Address.java
new file mode 100644
index 00000000..6a48a8dd
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/Address.java
@@ -0,0 +1,50 @@
+package cc.hiver.shop.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 = "收货人")
+ private String consignee;
+
+ @ApiModelProperty(value = "收货电话")
+ private String receivingMobile;
+
+ @ApiModelProperty(value = "收货公司")
+ private String receivingCompany;
+
+ @ApiModelProperty(value = "收货区域")
+ private String receivingArea;
+
+ @ApiModelProperty(value = "收货地址")
+ private String address;
+
+ @ApiModelProperty(value = "邮政编码")
+ private String zipCode;
+
+ @ApiModelProperty(value = "会员id")
+ private String memberId;
+
+ @ApiModelProperty(value = "默认地址")
+ private Integer defaultAddress;
+
+ @ApiModelProperty(value = "收货注释")
+ private String note;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/CustomAddress.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/CustomAddress.java
new file mode 100644
index 00000000..c11d28a8
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/CustomAddress.java
@@ -0,0 +1,50 @@
+package cc.hiver.shop.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 = "收货人")
+ private String consignee;
+
+ @ApiModelProperty(value = "收货电话")
+ private String receivingMobile;
+
+ @ApiModelProperty(value = "收货公司")
+ private String receivingCompany;
+
+ @ApiModelProperty(value = "收货区域")
+ private String receivingArea;
+
+ @ApiModelProperty(value = "收货地址")
+ private String address;
+
+ @ApiModelProperty(value = "邮政编码")
+ private String zipCode;
+
+ @ApiModelProperty(value = "用户id")
+ private String userId;
+
+ @ApiModelProperty(value = "会员id 0表示未注册用户 1已注册用户对应id")
+ private String memberId;
+
+ @ApiModelProperty(value = "客户简介")
+ private String intro;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/Goods.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/Goods.java
new file mode 100644
index 00000000..199e3cbc
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/Goods.java
@@ -0,0 +1,77 @@
+package cc.hiver.shop.entity;
+
+import cc.hiver.core.base.HiverBaseEntity;
+import cc.hiver.core.common.constant.ShopConstant;
+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 HiverBaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "商品编号")
+ private String goodsNo;
+
+ @ApiModelProperty(value = "商品二维码")
+ private String goodsBarcode;
+
+ @ApiModelProperty(value = "商品名称")
+ private String goodsTitle;
+
+ @ApiModelProperty(value = "分类id")
+ private String categoryId;
+
+ @ApiModelProperty(value = "规格类型")
+ private Integer attributeType = ShopConstant.GOODS_ATTRIBUTE_COMMON;
+
+ @ApiModelProperty(value = "规格列表")
+ private String attributeList;
+
+ @ApiModelProperty(value = "商品描述")
+ private String intro;
+
+ @ApiModelProperty(value = "商品详情")
+ private String detail;
+
+ @ApiModelProperty(value = "库存")
+ private Integer stock = 0;
+
+ @ApiModelProperty(value = "是否启用 0上架 -1下架")
+ private Integer status = ShopConstant.GOODS_PUT_ON_SALE;
+
+ @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 = "商铺id")
+ private String mallId;
+
+ @ApiModelProperty(value = "视频地址")
+ private String videoPath;
+
+ @ApiModelProperty("办公区域")
+ private String region;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsAttributeKey.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsAttributeKey.java
new file mode 100644
index 00000000..a89a1533
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsAttributeKey.java
@@ -0,0 +1,45 @@
+package cc.hiver.shop.entity;
+
+import cc.hiver.core.base.HiverBaseEntity;
+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_attribute_key")
+@TableName("t_goods_attribute_key")
+@ApiModel(value = "商品规格主键表")
+public class GoodsAttributeKey extends HiverBaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "分类id")
+ private String categoryId;
+
+ @ApiModelProperty(value = "属性名")
+ private String attributeKey;
+
+ @ApiModelProperty(value = "排序值")
+ @Column(precision = 10, scale = 2)
+ private BigDecimal sortOrder;
+
+ @ApiModelProperty(value = "是否启用 0启用 -1禁用")
+ private Integer status = CommonConstant.STATUS_NORMAL;
+
+ @ApiModelProperty(value = "商铺id")
+ private String mallId;
+
+ @ApiModelProperty("办公区域")
+ private String region;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsAttributeValue.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsAttributeValue.java
new file mode 100644
index 00000000..8e3dded1
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsAttributeValue.java
@@ -0,0 +1,29 @@
+package cc.hiver.shop.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_goods_attribute_value")
+@TableName("t_goods_attribute_value")
+@ApiModel(value = "商品规格键值表")
+public class GoodsAttributeValue extends HiverBaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "规格主键id")
+ private String attributeId;
+
+ @ApiModelProperty(value = "规格值")
+ private String attributeValue;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsCategory.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsCategory.java
new file mode 100644
index 00000000..3a4c0d17
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsCategory.java
@@ -0,0 +1,56 @@
+package cc.hiver.shop.entity;
+
+import cc.hiver.core.base.HiverBaseEntity;
+import cc.hiver.core.common.constant.CommonConstant;
+import com.baomidou.mybatisplus.annotation.TableField;
+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 javax.persistence.Transient;
+import java.math.BigDecimal;
+
+@Data
+@Entity
+@DynamicInsert
+@DynamicUpdate
+@Table(name = "t_goods_category")
+@TableName("t_goods_category")
+@ApiModel(value = "商品分类表")
+public class GoodsCategory extends HiverBaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "分类名称")
+ private String categoryName;
+
+ @ApiModelProperty(value = "父id")
+ @Column(nullable = false)
+ private String parentId;
+
+ @ApiModelProperty(value = "是否为父节点(含子节点) 默认false")
+ private Boolean isParent = false;
+
+ @ApiModelProperty(value = "排序值")
+ @Column(precision = 10, scale = 2)
+ private BigDecimal sortOrder;
+
+ @ApiModelProperty(value = "是否启用 0启用 -1禁用")
+ private Integer status = CommonConstant.STATUS_NORMAL;
+
+ @Transient
+ @TableField(exist = false)
+ @ApiModelProperty(value = "父节点名称")
+ private String parentTitle;
+
+ @ApiModelProperty(value = "商铺id")
+ private String mallId;
+
+ @ApiModelProperty("办公区域")
+ private String region;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsInStock.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsInStock.java
new file mode 100644
index 00000000..d9882a1a
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsInStock.java
@@ -0,0 +1,35 @@
+package cc.hiver.shop.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_goods_in_stock")
+@TableName("t_goods_in_stock")
+@ApiModel(value = "商品入库表")
+public class GoodsInStock extends HiverBaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "在库商品id")
+ private String goodsStockId;
+
+ @ApiModelProperty(value = "入库数量")
+ private Integer num;
+
+ @ApiModelProperty(value = "商铺id")
+ private String mallId;
+
+ @ApiModelProperty("办公区域")
+ private String region;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsStock.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsStock.java
new file mode 100644
index 00000000..b340021e
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/GoodsStock.java
@@ -0,0 +1,56 @@
+package cc.hiver.shop.entity;
+
+import cc.hiver.core.base.HiverBaseEntity;
+import cc.hiver.core.common.constant.ShopConstant;
+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 HiverBaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "商品id")
+ private String goodsId;
+
+ @ApiModelProperty(value = "商品规格")
+ private String goodsSpecs;
+
+ @ApiModelProperty(value = "库存")
+ private Integer stock = 0;
+
+ @ApiModelProperty(value = "是否启用 0上架 -1下架")
+ private Integer status = ShopConstant.GOODS_PUT_ON_SALE;
+
+ @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 = "商铺id")
+ private String mallId;
+
+ @ApiModelProperty("办公区域")
+ private String region;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/Mall.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/Mall.java
new file mode 100644
index 00000000..3d476da1
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/Mall.java
@@ -0,0 +1,48 @@
+package cc.hiver.shop.entity;
+
+import cc.hiver.core.base.HiverBaseEntity;
+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 HiverBaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "商铺名称")
+ private String title;
+
+ @ApiModelProperty(value = "商铺介绍")
+ private String intro;
+
+ @ApiModelProperty(value = "商铺图片")
+ private String img;
+
+ @ApiModelProperty(value = "排序值")
+ @Column(precision = 10, scale = 2)
+ private BigDecimal sortOrder;
+
+ @ApiModelProperty(value = "是否启用 0启用 -1禁用")
+ private Integer status = CommonConstant.STATUS_NORMAL;
+
+ @ApiModelProperty(value = "默认店铺")
+ private Integer defaultMall;
+
+ @ApiModelProperty("办公区域")
+ private String region;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/PopularUrl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/PopularUrl.java
new file mode 100644
index 00000000..59780431
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/PopularUrl.java
@@ -0,0 +1,29 @@
+package cc.hiver.shop.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;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/PopularUrlGoods.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/PopularUrlGoods.java
new file mode 100644
index 00000000..2043f2f1
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/PopularUrlGoods.java
@@ -0,0 +1,46 @@
+package cc.hiver.shop.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.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import java.math.BigDecimal;
+
+@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 mallId;
+
+ @ApiModelProperty(value = "商品id")
+ private String goodsId;
+
+ @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);
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/RoleSetting.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/RoleSetting.java
new file mode 100644
index 00000000..2b7f162e
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/RoleSetting.java
@@ -0,0 +1,35 @@
+package cc.hiver.shop.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);
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/ShoppingCart.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/ShoppingCart.java
new file mode 100644
index 00000000..6898225b
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/ShoppingCart.java
@@ -0,0 +1,45 @@
+package cc.hiver.shop.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_shopping_cart")
+@TableName("t_shopping_cart")
+@ApiModel(value = "购物车主表")
+public class ShoppingCart extends HiverBaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "订单编号")
+ private String no;
+
+ @ApiModelProperty(value = "下单人 0表示会员自己购买")
+ private String userId;
+
+ @ApiModelProperty(value = "购买人 0表示用户购买")
+ private String memberId;
+
+ @ApiModelProperty(value = "收货地址")
+ private String addressId;
+
+ @ApiModelProperty(value = "总价")
+ private BigDecimal totalPrice = new BigDecimal(0);
+
+ @ApiModelProperty(value = "商铺id")
+ private String mallId;
+
+ @ApiModelProperty("办公区域")
+ private String region;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/ShoppingCartGoods.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/ShoppingCartGoods.java
new file mode 100644
index 00000000..d12e66d4
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/ShoppingCartGoods.java
@@ -0,0 +1,49 @@
+package cc.hiver.shop.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.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import java.math.BigDecimal;
+
+@Data
+@Entity
+@DynamicInsert
+@DynamicUpdate
+@Table(name = "t_shopping_cart_goods")
+@TableName("t_shopping_cart_goods")
+@ApiModel(value = "购物车子表")
+public class ShoppingCartGoods extends HiverBaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "购物车主表id")
+ private String cartId;
+
+ @ApiModelProperty(value = "商品id")
+ private String goodsId;
+
+ @ApiModelProperty(value = "商品规格")
+ private String goodsSpecs;
+
+ @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 num;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/UserClockIn.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/UserClockIn.java
new file mode 100644
index 00000000..69221b59
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/UserClockIn.java
@@ -0,0 +1,51 @@
+package cc.hiver.shop.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;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/UserMall.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/UserMall.java
new file mode 100644
index 00000000..29285b24
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/entity/UserMall.java
@@ -0,0 +1,31 @@
+package cc.hiver.shop.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;
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/AddressService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/AddressService.java
new file mode 100644
index 00000000..fe2de0c2
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/AddressService.java
@@ -0,0 +1,10 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.Address;
+
+import java.util.List;
+
+public interface AddressService extends HiverBaseService {
+ List findAllByMemberId(String memberId);
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/CustomAddressService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/CustomAddressService.java
new file mode 100644
index 00000000..9e471f68
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/CustomAddressService.java
@@ -0,0 +1,11 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.CustomAddress;
+import cc.hiver.shop.dto.CustomAddressQueryCriteria;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+public interface CustomAddressService extends HiverBaseService {
+ Page queryAll(CustomAddressQueryCriteria criteria, Pageable pageable);
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsAttributeKeyService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsAttributeKeyService.java
new file mode 100644
index 00000000..31c2e783
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsAttributeKeyService.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.GoodsAttributeKey;
+
+public interface GoodsAttributeKeyService extends HiverBaseService {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsAttributeValueService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsAttributeValueService.java
new file mode 100644
index 00000000..fdf8b109
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsAttributeValueService.java
@@ -0,0 +1,10 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.GoodsAttributeValue;
+
+import java.util.List;
+
+public interface GoodsAttributeValueService extends HiverBaseService {
+ List findAllBykAndAttributeId(String attributeId);
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsCategoryService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsCategoryService.java
new file mode 100644
index 00000000..2bf0b1bb
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsCategoryService.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.GoodsCategory;
+
+public interface GoodsCategoryService extends HiverBaseService {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsInStockService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsInStockService.java
new file mode 100644
index 00000000..843f19cc
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsInStockService.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.GoodsInStock;
+
+public interface GoodsInStockService extends HiverBaseService {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsService.java
new file mode 100644
index 00000000..8fc6e1e2
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsService.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.Goods;
+
+public interface GoodsService extends HiverBaseService {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsStockService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsStockService.java
new file mode 100644
index 00000000..f4eee93d
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/GoodsStockService.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.GoodsStock;
+
+public interface GoodsStockService extends HiverBaseService {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/MallService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/MallService.java
new file mode 100644
index 00000000..b9725a96
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/MallService.java
@@ -0,0 +1,10 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.Mall;
+
+import java.util.List;
+
+public interface MallService extends HiverBaseService {
+ List findAllByUserId(String userId);
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/PopularUrlGoodsService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/PopularUrlGoodsService.java
new file mode 100644
index 00000000..f70da829
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/PopularUrlGoodsService.java
@@ -0,0 +1,10 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.PopularUrlGoods;
+
+import java.util.List;
+
+public interface PopularUrlGoodsService extends HiverBaseService {
+ List findAllByUrlId(String urlId);
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/PopularUrlService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/PopularUrlService.java
new file mode 100644
index 00000000..223c3799
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/PopularUrlService.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.PopularUrl;
+
+public interface PopularUrlService extends HiverBaseService {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/RoleSettingService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/RoleSettingService.java
new file mode 100644
index 00000000..69d01bf3
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/RoleSettingService.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.RoleSetting;
+
+public interface RoleSettingService extends HiverBaseService {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/ShoppingCartGoodsService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/ShoppingCartGoodsService.java
new file mode 100644
index 00000000..f83af02d
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/ShoppingCartGoodsService.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.ShoppingCartGoods;
+
+public interface ShoppingCartGoodsService extends HiverBaseService {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/ShoppingCartService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/ShoppingCartService.java
new file mode 100644
index 00000000..08815ebe
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/ShoppingCartService.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.ShoppingCart;
+
+public interface ShoppingCartService extends HiverBaseService {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/UserClockInService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/UserClockInService.java
new file mode 100644
index 00000000..6d7c0f45
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/UserClockInService.java
@@ -0,0 +1,7 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.UserClockIn;
+
+public interface UserClockInService extends HiverBaseService {
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/UserMallService.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/UserMallService.java
new file mode 100644
index 00000000..7bedfe8f
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/service/UserMallService.java
@@ -0,0 +1,8 @@
+package cc.hiver.shop.service;
+
+import cc.hiver.core.base.HiverBaseService;
+import cc.hiver.shop.entity.UserMall;
+
+public interface UserMallService extends HiverBaseService {
+ void deleteAllByMallId(String mallId);
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/AddressServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/AddressServiceImpl.java
new file mode 100644
index 00000000..c54cb955
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/AddressServiceImpl.java
@@ -0,0 +1,30 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.AddressDao;
+import cc.hiver.shop.entity.Address;
+import cc.hiver.shop.service.AddressService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Slf4j
+@Service
+@Transactional
+public class AddressServiceImpl implements AddressService {
+ @Autowired
+ private AddressDao addressDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return addressDao;
+ }
+
+ @Override
+ public List findAllByMemberId(String memberId) {
+ return addressDao.findAllByMemberId(memberId);
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/CustomAddressServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/CustomAddressServiceImpl.java
new file mode 100644
index 00000000..be68e1e9
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/CustomAddressServiceImpl.java
@@ -0,0 +1,33 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.core.common.utils.QueryHelp;
+import cc.hiver.shop.dao.CustomAddressDao;
+import cc.hiver.shop.entity.CustomAddress;
+import cc.hiver.shop.service.CustomAddressService;
+import cc.hiver.shop.dto.CustomAddressQueryCriteria;
+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.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional
+public class CustomAddressServiceImpl implements CustomAddressService {
+ @Autowired
+ private CustomAddressDao customAddressDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return customAddressDao;
+ }
+
+ @Override
+ public Page queryAll(CustomAddressQueryCriteria criteria, Pageable pageable) {
+ Page list = customAddressDao.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
+ return list;
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsAttributeKeyServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsAttributeKeyServiceImpl.java
new file mode 100644
index 00000000..820fb6d8
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsAttributeKeyServiceImpl.java
@@ -0,0 +1,23 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.GoodsAttributeKeyDao;
+import cc.hiver.shop.entity.GoodsAttributeKey;
+import cc.hiver.shop.service.GoodsAttributeKeyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional
+public class GoodsAttributeKeyServiceImpl implements GoodsAttributeKeyService {
+ @Autowired
+ private GoodsAttributeKeyDao goodsAttributeKeyDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return goodsAttributeKeyDao;
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsAttributeValueServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsAttributeValueServiceImpl.java
new file mode 100644
index 00000000..b146ffdf
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsAttributeValueServiceImpl.java
@@ -0,0 +1,30 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.GoodsAttributeValueDao;
+import cc.hiver.shop.entity.GoodsAttributeValue;
+import cc.hiver.shop.service.GoodsAttributeValueService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Slf4j
+@Service
+@Transactional
+public class GoodsAttributeValueServiceImpl implements GoodsAttributeValueService {
+ @Autowired
+ private GoodsAttributeValueDao goodsAttributeValueDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return goodsAttributeValueDao;
+ }
+
+ @Override
+ public List findAllBykAndAttributeId(String attributeId) {
+ return goodsAttributeValueDao.findAllBykAndAttributeId(attributeId);
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsCategoryServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsCategoryServiceImpl.java
new file mode 100644
index 00000000..f4a3e29b
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsCategoryServiceImpl.java
@@ -0,0 +1,23 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.GoodsCategoryDao;
+import cc.hiver.shop.entity.GoodsCategory;
+import cc.hiver.shop.service.GoodsCategoryService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional
+public class GoodsCategoryServiceImpl implements GoodsCategoryService {
+ @Autowired
+ private GoodsCategoryDao goodsCategoryDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return goodsCategoryDao;
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsInStockServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsInStockServiceImpl.java
new file mode 100644
index 00000000..a472484b
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsInStockServiceImpl.java
@@ -0,0 +1,23 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.GoodsInStockDao;
+import cc.hiver.shop.entity.GoodsInStock;
+import cc.hiver.shop.service.GoodsInStockService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional
+public class GoodsInStockServiceImpl implements GoodsInStockService {
+ @Autowired
+ private GoodsInStockDao goodsInStockDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return goodsInStockDao;
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsServiceImpl.java
new file mode 100644
index 00000000..9828ef25
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsServiceImpl.java
@@ -0,0 +1,23 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.GoodsDao;
+import cc.hiver.shop.entity.Goods;
+import cc.hiver.shop.service.GoodsService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional
+public class GoodsServiceImpl implements GoodsService {
+ @Autowired
+ private GoodsDao goodsDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return goodsDao;
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsStockServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsStockServiceImpl.java
new file mode 100644
index 00000000..0cfb5718
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/GoodsStockServiceImpl.java
@@ -0,0 +1,23 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.GoodsStockDao;
+import cc.hiver.shop.entity.GoodsStock;
+import cc.hiver.shop.service.GoodsStockService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional
+public class GoodsStockServiceImpl implements GoodsStockService {
+ @Autowired
+ private GoodsStockDao goodsStockDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return goodsStockDao;
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/MallServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/MallServiceImpl.java
new file mode 100644
index 00000000..77ebf95f
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/MallServiceImpl.java
@@ -0,0 +1,30 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.MallDao;
+import cc.hiver.shop.entity.Mall;
+import cc.hiver.shop.service.MallService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Slf4j
+@Service
+@Transactional
+public class MallServiceImpl implements MallService {
+ @Autowired
+ private MallDao mallDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return mallDao;
+ }
+
+ @Override
+ public List findAllByUserId(String userId) {
+ return mallDao.findAllByUserId(userId);
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/PopularUrlGoodsServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/PopularUrlGoodsServiceImpl.java
new file mode 100644
index 00000000..cafa59bc
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/PopularUrlGoodsServiceImpl.java
@@ -0,0 +1,30 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.PopularUrlGoodsDao;
+import cc.hiver.shop.entity.PopularUrlGoods;
+import cc.hiver.shop.service.PopularUrlGoodsService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Slf4j
+@Service
+@Transactional
+public class PopularUrlGoodsServiceImpl implements PopularUrlGoodsService {
+ @Autowired
+ private PopularUrlGoodsDao popularUrlGoodsDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return popularUrlGoodsDao;
+ }
+
+ @Override
+ public List findAllByUrlId(String urlId) {
+ return popularUrlGoodsDao.findAllByUrlId(urlId);
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/PopularUrlServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/PopularUrlServiceImpl.java
new file mode 100644
index 00000000..0d926d99
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/PopularUrlServiceImpl.java
@@ -0,0 +1,23 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.PopularUrlDao;
+import cc.hiver.shop.entity.PopularUrl;
+import cc.hiver.shop.service.PopularUrlService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional
+public class PopularUrlServiceImpl implements PopularUrlService {
+ @Autowired
+ private PopularUrlDao popularUrlDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return popularUrlDao;
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/RoleSettingServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/RoleSettingServiceImpl.java
new file mode 100644
index 00000000..f2591ba8
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/RoleSettingServiceImpl.java
@@ -0,0 +1,23 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.RoleSettingDao;
+import cc.hiver.shop.entity.RoleSetting;
+import cc.hiver.shop.service.RoleSettingService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional
+public class RoleSettingServiceImpl implements RoleSettingService {
+ @Autowired
+ private RoleSettingDao roleSettingDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return roleSettingDao;
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/ShoppingCartGoodsServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/ShoppingCartGoodsServiceImpl.java
new file mode 100644
index 00000000..463c6a41
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/ShoppingCartGoodsServiceImpl.java
@@ -0,0 +1,23 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.ShoppingCartGoodsDao;
+import cc.hiver.shop.entity.ShoppingCartGoods;
+import cc.hiver.shop.service.ShoppingCartGoodsService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional
+public class ShoppingCartGoodsServiceImpl implements ShoppingCartGoodsService {
+ @Autowired
+ private ShoppingCartGoodsDao shoppingCartGoodsDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return shoppingCartGoodsDao;
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/ShoppingCartServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/ShoppingCartServiceImpl.java
new file mode 100644
index 00000000..e40c73bc
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/ShoppingCartServiceImpl.java
@@ -0,0 +1,23 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.ShoppingCartDao;
+import cc.hiver.shop.entity.ShoppingCart;
+import cc.hiver.shop.service.ShoppingCartService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional
+public class ShoppingCartServiceImpl implements ShoppingCartService {
+ @Autowired
+ private ShoppingCartDao shoppingCartDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return shoppingCartDao;
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/UserClockInServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/UserClockInServiceImpl.java
new file mode 100644
index 00000000..fc819636
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/UserClockInServiceImpl.java
@@ -0,0 +1,23 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.UserClockInDao;
+import cc.hiver.shop.entity.UserClockIn;
+import cc.hiver.shop.service.UserClockInService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional
+public class UserClockInServiceImpl implements UserClockInService {
+ @Autowired
+ private UserClockInDao userClockInDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return userClockInDao;
+ }
+}
diff --git a/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/UserMallServiceImpl.java b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/UserMallServiceImpl.java
new file mode 100644
index 00000000..8f614980
--- /dev/null
+++ b/hiver-modules/hiver-shop/src/main/java/cc/hiver/shop/serviceimpl/UserMallServiceImpl.java
@@ -0,0 +1,28 @@
+package cc.hiver.shop.serviceimpl;
+
+import cc.hiver.core.base.HiverBaseDao;
+import cc.hiver.shop.dao.UserMallDao;
+import cc.hiver.shop.entity.UserMall;
+import cc.hiver.shop.service.UserMallService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional
+public class UserMallServiceImpl implements UserMallService {
+ @Autowired
+ private UserMallDao userMallDao;
+
+ @Override
+ public HiverBaseDao getRepository() {
+ return userMallDao;
+ }
+
+ @Override
+ public void deleteAllByMallId(String mallId) {
+ userMallDao.deleteAllByMallId(mallId);
+ }
+}
diff --git a/hiver-modules/pom.xml b/hiver-modules/pom.xml
index 4b8f28d3..e8709823 100644
--- a/hiver-modules/pom.xml
+++ b/hiver-modules/pom.xml
@@ -19,6 +19,7 @@
hiver-social
hiver-app
hiver-open
+ hiver-shop