From f721ee13dc5f95f607bb25b09f73cae6a7123ed9 Mon Sep 17 00:00:00 2001
From: DESKTOP-71BH0QO\L、ming <172680469@qq.com>
Date: 星期六, 17 四月 2021 17:56:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopUserAddressService.java          |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsDAO.java                        |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java        |  191 +++
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/OrderStatisticsVO.java                                 |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopCartService.java                 |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderQueryDTO.java                             |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopUserAddressDO.java             |    8 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopStoreService.java                |    7 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopStoreDTO.java                              |   11 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderDAO.java                        |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderPreviewDTO.java                           |   63 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderSearchVO.java                              |   82 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartStoreVO.java                                |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsAttrVO.java                                |   77 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopEditNubCartDTO.java                            |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOperLogServiceImpl.java     |   62 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPreviewVO.java                             |   48 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopApi.java                                                    |  210 +++
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java                                |  241 ++++
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/OrderNoUtils.java                                               |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ShopOperLogVO.java                                     |   78 +
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopUserAddressDAO.java                  |   11 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopUserAddressServiceImpl.java |  101 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateGoodsDTO.java                       |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopGoodsDO.java                   |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopOrderSearchDTO.java                        |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderListDTO.java                              |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderDO.java                   |   61 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/ShopOperLog.java                                           |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/auth/TokenService.java                                        |    9 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOperLogDO.java                 |  114 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopStoreVO.java                                   |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopCartDTO.java                                   |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopGoodsDTO.java                                  |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopStoreDO.java                   |    9 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java       |  513 ++++++++
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java                               |  185 +++
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOperLogDAO.java                      |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartListVO.java                                 |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartVO.java                                     |   71 +
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/LoginService.java                                                 |    8 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsVO.java                                    |  114 +
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderOperateDO.java            |   11 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopAddressDTO.java                            |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderVO.java                                    |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopUserAddressVO.java                              |   90 +
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java                                                         |   11 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsService.java                |   15 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java                                        |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateDTO.java                            |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderGoodsVO.java                               |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java       |   71 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopAddressDTO.java                                |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderService.java                |   70 +
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOperLogService.java              |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPageVO.java                                |   75 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IdCardUtil.java                                                 |    6 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java       |   42 
 58 files changed, 3,500 insertions(+), 9 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopApi.java
new file mode 100644
index 0000000..b396012
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopApi.java
@@ -0,0 +1,210 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.shop.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.*;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:49
+ * @describe 商城模块API
+ */
+@Slf4j
+@RestController
+@RequestMapping("/shop/")
+@Api(tags = {"商城服务"})
+public class ShopApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页查询店铺" , response = ComShopStoreVO.class)
+    @PostMapping("pageshopstore")
+    public R pageShopStore(@RequestBody PageComShopStoreDTO comShopStoreDTO) {
+        return communityService.pageShopStore(comShopStoreDTO);
+    }
+
+    @ApiOperation(value = "查询店铺详情" , response = ComShopStoreVO.class)
+    @PostMapping("shopstoredetail")
+    public R shopStoreDetail(@RequestBody PageComShopStoreDTO comShopStoreDTO) {
+        if(comShopStoreDTO == null || comShopStoreDTO.getStoreId() == null){
+            return R.fail("参数错误");
+        }
+        return communityService.shopStoreDetail(comShopStoreDTO);
+    }
+
+    @ApiOperation(value = "分页查询商品列表" , response = ComShopGoodsVO.class)
+    @PostMapping("pageShopGoods")
+    public R pageShopGoods(@RequestBody ComShopGoodsDTO comShopGoodsDTO) {
+        return communityService.pageShopGoods(comShopGoodsDTO);
+    }
+
+    @ApiOperation(value = "查询商品详情" , response = ComShopGoodsVO.class)
+    @PostMapping("shopGoodsDetail")
+    @ApiImplicitParam(name = "goodsId",value = "商品id",required = true)
+    public R shopGoodsDetail(@RequestParam("goodsId") Long goodsId) {
+        return communityService.shopGoodsDetail(goodsId);
+    }
+
+    @ApiOperation(value = "查询用户购物车列表" , response = ComShopCartVO.class)
+    @PostMapping("shopCartList")
+    public R shopCartList() {
+        Long userId = this.getUserId();
+        if(userId == null){
+            return R.fail("请重新登陆");
+        }
+        return communityService.shopCartList(userId);
+    }
+
+    @ApiOperation(value = "购物车添加")
+    @PostMapping("shopAddCart")
+    public R shopAddCart(@RequestBody ComShopCartDTO comShopCartDTO) {
+        Long userId = this.getUserId();
+        if(userId == null){
+            return R.fail("请重新登陆");
+        }
+        comShopCartDTO.setUserId(userId);
+        return communityService.shopAddCart(comShopCartDTO);
+    }
+
+    @ApiOperation(value = "购物车修改")
+    @PostMapping("shopEditNubCart")
+    public R shopEditNubCart(@RequestBody ComShopEditNubCartDTO shopEditNubCartDTO) {
+        return communityService.shopEditNubCart(shopEditNubCartDTO);
+    }
+
+    @ApiOperation(value = "购物车删除")
+    @PostMapping("shopDelCart")
+    public R shopDelCart(@RequestBody List<Long> Ids) {
+        return communityService.shopDelCart(Ids);
+    }
+
+    @ApiOperation(value = "查询用户收货地址列表" , response = ComShopUserAddressVO.class)
+    @PostMapping("shopUserAddressList")
+    public R shopUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO) {
+        Long userId = this.getUserId();
+        if(userId == null){
+            return R.fail("请重新登陆");
+        }
+        comShopAddressDTO.setUserId(userId);
+        return communityService.shopUserAddressList(comShopAddressDTO);
+    }
+
+    @ApiOperation(value = "添加用户收货地址列表")
+    @PostMapping("shopAddUserAddress")
+    public R shopAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
+        Long userId = this.getUserId();
+        if(userId == null){
+            return R.fail("请重新登陆");
+        }
+        comShopAddressDTO.setUserId(userId);
+        return communityService.shopAddUserAddress(comShopAddressDTO);
+    }
+
+    @ApiOperation(value = "修改用户收货地址列表")
+    @PostMapping("shopEditUserAddress")
+    public R shopEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
+        Long userId = this.getUserId();
+        if(userId == null){
+            return R.fail("请重新登陆");
+        }
+        comShopAddressDTO.setUserId(userId);
+        return communityService.shopEditUserAddress(comShopAddressDTO);
+    }
+
+    @ApiOperation(value = "删除用户收货地址列表")
+    @PostMapping("shopDelUserAddress")
+    @ApiImplicitParam(name = "addressId",value = "收货地址id",required = true)
+    public R shopDelUserAddress(@RequestParam("addressId") Long addressId) {
+        return communityService.shopDelUserAddress(addressId);
+    }
+
+    @ApiOperation(value = "订单预览", response = ComShopOrderPreviewVO.class)
+    @PostMapping("orderPreview")
+    public R orderPreview(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO) {
+        Long userId = this.getUserId();
+        if(userId == null){
+            return R.fail("请重新登陆");
+        }
+        orderPreviewDTO.setUserId(userId);
+        return communityService.orderPreview(orderPreviewDTO);
+    }
+
+    @ApiOperation(value = "创建订单", response = ComShopOrderVO.class)
+    @PostMapping("orderCreate")
+    public R orderCreate(@RequestBody ComShopOrderCreateDTO orderCreateDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if(loginUserInfo == null){
+            return R.fail("请重新登陆");
+        }
+        orderCreateDTO.setUserId(loginUserInfo.getUserId());
+        orderCreateDTO.setPhone(loginUserInfo.getPhone());
+        return communityService.orderCreate(orderCreateDTO);
+    }
+
+    @ApiOperation(value = "分页查询订单列表", response = ComShopOrderPageVO.class)
+    @PostMapping("pageOrderList")
+    public R pageOrderList(@RequestBody PageComOrderListDTO comOrderListDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if(loginUserInfo == null){
+            return R.fail("请重新登陆");
+        }
+        comOrderListDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.pageOrderList(comOrderListDTO);
+    }
+
+    @ApiOperation(value = "查询订单详情", response = ComShopOrderPageVO.class)
+    @PostMapping("orderDetail")
+    @ApiImplicitParam(name = "orderId",value = "订单id",required = true)
+    public R orderDetail(@RequestParam("orderId") Long orderId) {
+        return communityService.orderDetail(orderId);
+    }
+
+    @ApiOperation(value = "取消订单")
+    @PostMapping("orderCancel")
+    public R orderCancel(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if(loginUserInfo == null){
+            return R.fail("请重新登陆");
+        }
+        return communityService.orderCancel(comShopOrderQueryDTO);
+    }
+
+    @ApiOperation(value = "删除订单")
+    @PostMapping("orderDelete")
+    @ApiImplicitParam(name = "orderId",value = "订单id",required = true)
+    public R orderDelete(@RequestParam("orderId") Long orderId) {
+        return communityService.orderDelete(orderId);
+    }
+
+    @ApiOperation(value = "订单确认收货")
+    @PostMapping("orderConfirm")
+    public R orderConfirm(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if(loginUserInfo == null){
+            return R.fail("请重新登陆");
+        }
+        return communityService.orderConfirm(comShopOrderQueryDTO);
+    }
+
+    @ApiOperation(value = "统计当前用户订单", response = OrderStatisticsVO.class)
+    @PostMapping("orderStatistics")
+    public R orderStatistics() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if(loginUserInfo == null){
+            return R.fail("请重新登陆");
+        }
+        return communityService.orderStatistics(loginUserInfo.getUserId());
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java
index 46a11cf..8fda0a7 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java
@@ -107,5 +107,16 @@
         return R.ok(loginReturnVO);
     }
 
+    /**
+     * 商家后台登录
+     * @param account 账户
+     * @param password 密码
+     * @return 登录结果
+     */
+    @PostMapping("/loginShopBackStage")
+    public R loginShopBackStage(@RequestParam("account") String account, @RequestParam("password")String password){
+        LoginReturnVO loginReturnVO =loginService.loginShopBackStage(account,password);
+        return R.ok(loginReturnVO);
+    }
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/LoginService.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/LoginService.java
index 0c574b7..f2655a8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/LoginService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/LoginService.java
@@ -39,4 +39,12 @@
      * @return 登录结果
      */
     LoginReturnVO loginCommunityBackage(String account, String password);
+
+    /**
+     * 商家后台登录
+     * @param account 账户
+     * @param password 密码
+     * @return 登录结果
+     */
+    LoginReturnVO loginShopBackStage(String account, String password);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java
index 4736754..d513939 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java
@@ -104,5 +104,25 @@
         return loginReturnVO;
     }
 
+    /**
+     * 商家后台登录
+     *
+     * @param account  账户
+     * @param password 密码
+     * @return 登录结果
+     */
+    @Override
+    public LoginReturnVO loginShopBackStage(String account, String password) {
+        Authentication authentication = null;
+        authentication = authenticationManager
+                .authenticate(new UsernamePasswordAuthenticationToken(account+"_5", password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO) authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnVO loginReturnVO=new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return loginReturnVO;
+    }
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/ShopOperLog.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/ShopOperLog.java
new file mode 100644
index 0000000..ad0ac4e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/ShopOperLog.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.interfaces;
+
+import java.lang.annotation.*;
+
+/**
+ * 商城后台操作日志注解
+ * @author wu
+ */
+@Target(ElementType.METHOD) //注解放置的目标位置,METHOD是可注解在方法级别上
+@Retention(RetentionPolicy.RUNTIME) //注解在哪个阶段执行
+@Documented
+public @interface ShopOperLog {
+    String operModul() default "shop";
+    /**
+     * 操作类型
+     * 1.登录
+     * 2.修改密码
+     * 3.添加商品
+     * 4.编辑商品
+     * 5.下架商品
+     * 6.上架商品
+     * 7.删除商品
+     * 8.取消订单
+     * 9.发货
+     * 10.配送
+     * 11.查看订单详情
+     * 12.导出订单
+     * 13.导出资金流水
+     * @return
+     */
+    int operType() default 0;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopAddressDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopAddressDTO.java
new file mode 100644
index 0000000..774d4d3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopAddressDTO.java
@@ -0,0 +1,52 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 分页查询店铺
+ */
+@Data
+@ApiModel("分页查询店铺")
+public class ComShopAddressDTO {
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("用户收货地址id")
+    private Long addressId;
+
+    @ApiModelProperty("收货人名称")
+    private String name;
+
+    @ApiModelProperty("收货人手机号")
+    private String phone;
+
+    @ApiModelProperty("收货人省份编码")
+    private String provinceCode;
+
+    @ApiModelProperty("收货人城市编码")
+    private String cityCode;
+
+    @ApiModelProperty("收货人区县编码")
+    private String districtCode;
+
+    @ApiModelProperty("收货人详细地址")
+    private String detailAddress;
+
+    @ApiModelProperty("是否是默认地址(1.是  2.否)")
+    private Integer isDefault;
+
+    @ApiModelProperty("收货人省份名称")
+    private String provinceName;
+
+    @ApiModelProperty("收货人城市名称")
+    private String cityName;
+
+    @ApiModelProperty("收货人区/县名称")
+    private String districtName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopCartDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopCartDTO.java
new file mode 100644
index 0000000..3aec325
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopCartDTO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 购物车
+ */
+@Data
+@ApiModel("购物车")
+public class ComShopCartDTO {
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品名称",required = true)
+    private Long goodsId;
+
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty(value = "商品规格id",required = true)
+    private Long goodsAttrId;
+
+    /**
+     * 数量
+     */
+    @ApiModelProperty(value = "数量",required = true)
+    private Integer number;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopEditNubCartDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopEditNubCartDTO.java
new file mode 100644
index 0000000..56680b8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopEditNubCartDTO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 购物车修改
+ */
+@Data
+@ApiModel("购物车修改")
+public class ComShopEditNubCartDTO {
+
+    @ApiModelProperty(value = "购物车id",required = true)
+    private Long cartId;
+
+    @ApiModelProperty(value = "购物车商品数量",required = true)
+    private Integer number;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopGoodsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopGoodsDTO.java
new file mode 100644
index 0000000..074b47d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopGoodsDTO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 查询商品请求参数
+ */
+@Data
+@ApiModel("查询商品请求参数")
+public class ComShopGoodsDTO {
+
+    @ApiModelProperty(value = "分页-当前页数",example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数",example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("商品名称")
+    private String name;
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    @ApiModelProperty("商品状态(1.出售中  2.已下架  3.回收站)")
+    private Integer status;
+
+    @ApiModelProperty("配送方式(1.商家配送  2.快递物流)")
+    private Integer deliveryType;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateDTO.java
new file mode 100644
index 0000000..410477e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateDTO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 创建订单请求参数
+ */
+@Data
+@ApiModel("创建订单请求参数")
+public class ComShopOrderCreateDTO {
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "用户手机号",hidden = true)
+    private String phone;
+
+    @ApiModelProperty(value = "用户收货地址id",required = true)
+    private Long receiverId;
+
+    @ApiModelProperty(value = "订单备注")
+    private String remark;
+
+    @ApiModelProperty(value = "提交订单商品列表",required = true)
+    private List<ComShopOrderCreateGoodsDTO> orderGoodsList;
+
+    @ApiModelProperty(value = "提交类型(1.商品详情提交 2.购物车提交)",required = true)
+    private Integer submitType;
+
+    @ApiModelProperty(value = "购物车记录id集合(当提交类型为2时,此字段必填)")
+    private List<Long> cartIds;
+
+    /**
+     * 提交类型(1.商品详情提交 2.购物车提交)
+     */
+    public interface submitType{
+        int details = 1;
+        int cart = 2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateGoodsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateGoodsDTO.java
new file mode 100644
index 0000000..6421b2b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateGoodsDTO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 创建订单商品信息请求参数
+ */
+@Data
+@ApiModel("创建订单商品信息请求参数")
+public class ComShopOrderCreateGoodsDTO {
+
+    @ApiModelProperty(value = "商品id")
+    private Long goodsId;
+
+    @ApiModelProperty(value = "商品规格id")
+    private Long goodsAttrId;
+
+    @ApiModelProperty(value = "购买数量")
+    private Integer num;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderPreviewDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderPreviewDTO.java
new file mode 100644
index 0000000..03d9d3f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderPreviewDTO.java
@@ -0,0 +1,63 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 订单预览请求参数
+ */
+@Data
+@ApiModel("订单预览请求参数")
+public class ComShopOrderPreviewDTO {
+
+    /**
+     * 提交类型(1.商品详情提交 2.购物车提交)
+     */
+    @ApiModelProperty(value = "提交类型(1.商品详情提交 2.购物车提交)",required = true)
+    private Integer submitType;
+
+    /**
+     * 商品id(当提交类型为1时,此字段必填)
+     */
+    @ApiModelProperty(value = "商品id(当提交类型为1时,此字段必填)")
+    private Long goodsId;
+
+    /**
+     * 商品规格id(当提交类型为1时,此字段必填)
+     */
+    @ApiModelProperty(value = "商品规格id(当提交类型为1时,此字段必填)")
+    private Long goodsAttrId;
+
+    /**
+     * 购买数量(当提交类型为1时,此字段必填)
+     */
+    @ApiModelProperty(value = "购买数量(当提交类型为1时,此字段必填)")
+    private Integer buyNum;
+
+    /**
+     * 购物车记录id集合(当提交类型为2时,此字段必填)
+     */
+    @ApiModelProperty(value = "提交类型(1.商品详情提交 2.购物车提交)")
+    private List<Long> cartIds;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    /**
+     * 提交类型(1.商品详情提交 2.购物车提交)
+     */
+    public interface submitType{
+        int details = 1;
+        int cart = 2;
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderQueryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderQueryDTO.java
new file mode 100644
index 0000000..bc1f5b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderQueryDTO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 请求参数
+ */
+@Data
+@ApiModel("请求参数")
+public class ComShopOrderQueryDTO {
+
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+
+    @ApiModelProperty(value = "手机号",hidden = true)
+    private String phone;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderListDTO.java
new file mode 100644
index 0000000..97ecfc2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderListDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 分页查询订单列表
+ */
+@Data
+@ApiModel("分页查询订单列表")
+public class PageComOrderListDTO {
+
+    @ApiModelProperty(value = "分页-当前页数",example = "1")
+    private Long pageNum = 1L;
+    @ApiModelProperty(value = "分页-每页记录数",example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)")
+    private Integer status;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopAddressDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopAddressDTO.java
new file mode 100644
index 0000000..2509585
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopAddressDTO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 分页查询店铺
+ */
+@Data
+@ApiModel("分页查询店铺")
+public class PageComShopAddressDTO {
+
+    @ApiModelProperty(value = "分页-当前页数",example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数",example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopOrderSearchDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopOrderSearchDTO.java
new file mode 100644
index 0000000..15a7401
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopOrderSearchDTO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * @ClasssName OrderSearchDTO
+ * @Description 订单搜索DTO
+ * @Author cedoo
+ * @Date 2021/4/16
+ * @Version 1.0
+ **/
+@Data
+public class PageComShopOrderSearchDTO {
+    @ApiModelProperty(value = "订单编号",example = "316356541616")
+    private String orderNo;
+    @ApiModelProperty(value = "用户账号")
+    private String userAccount;
+    @ApiModelProperty(value = "收货人",example = "张三")
+    private String receiverAccount;
+    @ApiModelProperty(value = "收货人电话",example = "13123456789")
+    private String receiverPhone;
+    @ApiModelProperty(value = "商品",example = "鞋")
+    private String goodsName;
+    @ApiModelProperty(value = "订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)",example = "1")
+    private Date status;
+    @ApiModelProperty(value = "下单时间-开始",example = "1")
+    private String createAtStart;
+    @ApiModelProperty(value = "下单时间-结束",example = "1")
+    private Date createAtEnd;
+    @ApiModelProperty(value = "分页-当前页数",example = "1", required = true)
+    private Long pageNum;
+    @ApiModelProperty(value = "分页-每页记录数",example = "10", required = true)
+    private Long pageSize;
+    @JsonIgnore
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopStoreDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopStoreDTO.java
index acf661c..3ded3b1 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopStoreDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopStoreDTO.java
@@ -12,6 +12,9 @@
 @Data
 @ApiModel("分页查询店铺")
 public class PageComShopStoreDTO {
+
+    @ApiModelProperty(value = "分页-当前页数",example = "1")
+    private Long pageNum = 1L;
     @ApiModelProperty(value = "商家姓名")
     private String contacts;
     @ApiModelProperty(value = "商家账号")
@@ -22,10 +25,10 @@
     private Integer deliveryType;
     @ApiModelProperty(value = "店铺状态(1.启用  2.禁用)")
     private Integer status;
-    @ApiModelProperty(value = "分页-当前页数", example = "1")
-    private Long pageNum;
 
-    @ApiModelProperty(value = "分页-每页记录数", example = "10")
-    private Long pageSize;
+    @ApiModelProperty(value = "分页-每页记录数",example = "10")
+    private Long pageSize = 10L;
 
+    @ApiModelProperty("店铺id")
+    private Long storeId;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartListVO.java
new file mode 100644
index 0000000..bcf1d18
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartListVO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 购物车列表信息
+ */
+@Data
+@ApiModel("购物车列表信息")
+public class ComShopCartListVO {
+
+    /**
+     * 有效宝贝购物车信息
+     */
+    @ApiModelProperty("有效宝贝购物车信息")
+    private List<ComShopCartStoreVO> cartList;
+
+    /**
+     * 失效宝贝购物车信息
+     */
+    @ApiModelProperty("失效宝贝购物车信息")
+    private List<ComShopCartVO> invalidCartList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartStoreVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartStoreVO.java
new file mode 100644
index 0000000..c21d350
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartStoreVO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 有效购物车信息
+ */
+@Data
+@ApiModel("有效购物车信息")
+public class ComShopCartStoreVO {
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    /**
+     * 店铺名称
+     */
+    @ApiModelProperty("店铺名称")
+    private String storeName;
+
+    /**
+     * 店铺logo
+     */
+    @ApiModelProperty("店铺logo")
+    private String storeLogo;
+
+    /**
+     * 店铺下购物车信息
+     */
+    @ApiModelProperty("店铺下购物车信息")
+    private List<ComShopCartVO> cartList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartVO.java
new file mode 100644
index 0000000..48015e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartVO.java
@@ -0,0 +1,71 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 购物车信息
+ */
+@Data
+@ApiModel("购物车信息")
+public class ComShopCartVO {
+
+    /**
+     * 购物车id
+     */
+    @ApiModelProperty("购物车id")
+    private Long id;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty("商品id")
+    private Long goodsId;
+
+    /**
+     * 商品名字
+     */
+    @ApiModelProperty("商品名字")
+    private String goodsName;
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty("商品规格id")
+    private Long goodsAttrId;
+
+    /**
+     * 商品规格信息
+     */
+    @ApiModelProperty("商品规格信息")
+    private String goodsAttr;
+
+    /**
+     * 商品规格图
+     */
+    @ApiModelProperty("商品规格图")
+    private String goodsAttrPic;
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty("商品数量")
+    private Integer amount;
+
+    /**
+     * 商品价格
+     */
+    @ApiModelProperty("商品价格")
+    private BigDecimal price;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsAttrVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsAttrVO.java
new file mode 100644
index 0000000..7e3f136
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsAttrVO.java
@@ -0,0 +1,77 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 商品规格信息
+ */
+@Data
+@ApiModel("商品规格信息")
+public class ComShopGoodsAttrVO {
+
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty("商品规格id")
+    private Long id;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty("商品id")
+    private Long goodsId;
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty("商品名称")
+    private String goodsName;
+
+    /**
+     * 商品规格
+     */
+    @ApiModelProperty("商品规格")
+    private String goodsAttr;
+
+    /**
+     * 商品规格库存
+     */
+    @ApiModelProperty("商品规格库存")
+    private Integer stock;
+
+    /**
+     * 商品规格销量
+     */
+    @ApiModelProperty("商品规格销量")
+    private Integer sale;
+
+    /**
+     * 商品规格图
+     */
+    @ApiModelProperty("商品规格图")
+    private String attrPic;
+
+    /**
+     * 是否是默认规格(1.是  2.否)
+     */
+    @ApiModelProperty("是否是默认规格(1.是  2.否)")
+    private Integer isDefault;
+
+    /**
+     * 规格价格
+     */
+    @ApiModelProperty("规格价格")
+    private BigDecimal price;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsVO.java
new file mode 100644
index 0000000..54cd6d0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsVO.java
@@ -0,0 +1,114 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 商品信息
+ */
+@Data
+@ApiModel("商品信息")
+public class ComShopGoodsVO {
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty("商品id")
+    private Long id;
+
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty("商品名称")
+    private String name;
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    /**
+     * 商品主图
+     */
+    @ApiModelProperty("商品主图")
+    private String goodsPic;
+
+    /**
+     * 商品展示图
+     */
+    @ApiModelProperty("商品展示图")
+    private String images;
+
+    /**
+     * 商品状态(1.出售中  2.已下架  3.回收站)
+     */
+    @ApiModelProperty("商品状态(1.出售中  2.已下架  3.回收站)")
+    private Integer status;
+
+    /**
+     * 商品销量
+     */
+    @ApiModelProperty("商品销量")
+    private Integer sale;
+
+    /**
+     * 商品原价
+     */
+    @ApiModelProperty("商品原价")
+    private BigDecimal originalPrice;
+
+    /**
+     * 商品现价
+     */
+    @ApiModelProperty("商品现价")
+    private BigDecimal price;
+
+    /**
+     * 商品单位
+     */
+    @ApiModelProperty("商品单位")
+    private String unit;
+
+    /**
+     * 商品排序
+     */
+    @ApiModelProperty("商品排序")
+    private Integer order;
+
+    /**
+     * 商品总库存
+     */
+    @ApiModelProperty("商品总库存")
+    private Integer stock;
+
+    /**
+     * 商品详情
+     */
+    @ApiModelProperty("商品详情")
+    private String details;
+
+    /**
+     * 配送方式(1.商家配送  2.快递物流)
+     */
+    @ApiModelProperty("配送方式(1.商家配送  2.快递物流)")
+    private Integer deliveryType;
+
+    /**
+     * 商品规格列表
+     */
+    @ApiModelProperty("商品规格列表")
+    private List<ComShopGoodsAttrVO> goodsAttrList;
+
+    /**
+     * 店铺信息
+     */
+    @ApiModelProperty("商品店铺信息")
+    private ComShopStoreVO shopStoreVO;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderGoodsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderGoodsVO.java
index 1db8555..f575388 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderGoodsVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderGoodsVO.java
@@ -1,13 +1,54 @@
 package com.panzhihua.common.model.vos.shop;
 
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 /**
- * @auther llming
- * @describe
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 订单预览商品参数
  */
 @Data
-@ApiModel("商品")
+@ApiModel("订单预览商品参数")
 public class ComShopOrderGoodsVO {
+
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    /**
+     * 商品图片
+     */
+    @ApiModelProperty(value = "商品图片")
+    private String goodsPic;
+
+    /**
+     * 商品价格
+     */
+    @ApiModelProperty(value = "商品价格")
+    private BigDecimal price;
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "商品数量")
+    private Integer num;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long goodsId;
+
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty(value = "商品规格id")
+    private Long goodsAttrId;
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPageVO.java
new file mode 100644
index 0000000..4bc9cda
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPageVO.java
@@ -0,0 +1,75 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@ApiModel("订单信息")
+public class ComShopOrderPageVO {
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal orderTotal;
+
+    @ApiModelProperty(value = "店铺id")
+    private Long storeId;
+
+    @ApiModelProperty(value = "订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)")
+    private Integer status;
+
+    @ApiModelProperty(value = "支付状态(1.未支付 2.已支付)")
+    private Integer payStatus;
+
+    @ApiModelProperty(value = "用户收货地址id")
+    private Long receiverId;
+
+    @ApiModelProperty(value = "支付金额")
+    private BigDecimal payAmount;
+
+    @ApiModelProperty(value = "配送方式")
+    private Integer deliveryType;
+
+    @ApiModelProperty(value = "订单备注")
+    private String remark;
+
+    @ApiModelProperty(value = "支付方式(1.微信支付)")
+    private Integer payType;
+
+    @ApiModelProperty(value = "支付时间")
+    private Date payTime;
+
+    @ApiModelProperty(value = "订单发货状态(1.未发货  2.已发货)")
+    private Integer deliveryStatus;
+
+    @ApiModelProperty(value = "物流公司")
+    private String logisticsCompany;
+
+    @ApiModelProperty(value = "物流单号")
+    private String logisticsNo;
+
+    @ApiModelProperty(value = "下单时间")
+    private Date createAt;
+
+    @ApiModelProperty(value = "支付单号")
+    private String payNo;
+
+    @ApiModelProperty(value = "发货时间")
+    private Date deliveryTime;
+
+    @ApiModelProperty(value = "订单下商品信息")
+    private List<ComShopOrderGoodsVO> orderGoodsVOList;
+
+    @ApiModelProperty(value = "订单下店铺信息")
+    private ComShopStoreVO shopStoreVO;
+
+    @ApiModelProperty(value = "用户收货地址id")
+    private ComShopUserAddressVO userAddressVO;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPreviewVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPreviewVO.java
new file mode 100644
index 0000000..735aa73
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPreviewVO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 订单预览返回参数
+ */
+@Data
+@ApiModel("订单预览返回参数")
+public class ComShopOrderPreviewVO {
+
+    /**
+     * 用户默认收货地址
+     */
+    @ApiModelProperty(value = "用户默认收货地址")
+    private ComShopUserAddressVO userAddressVO;
+
+    /**
+     * 店铺信息
+     */
+    @ApiModelProperty(value = "店铺信息")
+    private ComShopStoreVO shopStoreVO;
+
+    /**
+     * 待购买商品列表
+     */
+    @ApiModelProperty(value = "待购买商品列表")
+    private List<ComShopOrderGoodsVO> orderGoodsList;
+
+    /**
+     * 订单总金额
+     */
+    @ApiModelProperty(value = "订单总金额")
+    private BigDecimal orderTotal;
+
+    /**
+     * 订单商品总数量
+     */
+    @ApiModelProperty(value = "订单商品总数量")
+    private Integer orderGoodsTotal;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderSearchVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderSearchVO.java
new file mode 100644
index 0000000..039b1ef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderSearchVO.java
@@ -0,0 +1,82 @@
+package com.panzhihua.common.model.vos.shop;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表实体类
+ */
+
+@Data
+@ApiModel("商品订单")
+public class ComShopOrderSearchVO implements Serializable {
+
+    @ApiModelProperty("订单id")
+    private Long id;
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("订单号")
+    private String orderNo;
+
+    @ApiModelProperty("支付单号")
+    private String payNo;
+
+    @ApiModelProperty("微信交易单号")
+    private String wxTardeNo;
+
+    @ApiModelProperty("订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)")
+    private Integer status;
+
+    @ApiModelProperty("支付状态(1.未支付 2.已支付)")
+    private Integer payStatus;
+
+    @ApiModelProperty("订单收货人id")
+    private Long receiverId;
+
+    @ApiModelProperty("订单总金额")
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty("优惠总金额")
+    private BigDecimal discountAmount;
+
+    @ApiModelProperty("支付总金额")
+    private BigDecimal payAmount;
+
+    @ApiModelProperty("支付方式(1.微信支付)")
+    private Integer payType;
+
+    @ApiModelProperty("支付时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date payTime;
+
+    @ApiModelProperty("配送方式(1.商家配送  2.快递物流)")
+    private Integer deliveryType;
+
+    @ApiModelProperty("订单发货状态(1.未发货  2.已发货)")
+    private Integer deliveryStatus;
+
+    @ApiModelProperty("物流公司")
+    private String logisticsCompany;
+
+    @ApiModelProperty("物流单号")
+    private String logisticsNo;
+
+    @ApiModelProperty("下单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderVO.java
new file mode 100644
index 0000000..69b5446
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderVO.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("订单创建返回参数")
+public class ComShopOrderVO {
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal orderTotal;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopUserAddressVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopUserAddressVO.java
new file mode 100644
index 0000000..8cdf69a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopUserAddressVO.java
@@ -0,0 +1,90 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 用户收获地址信息
+ */
+@Data
+@ApiModel("用户收获地址信息")
+public class ComShopUserAddressVO {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("用户收获地址id")
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    /**
+     * 收货人名称
+     */
+    @ApiModelProperty("收货人名称")
+    private String name;
+
+    /**
+     * 收货人手机号
+     */
+    @ApiModelProperty("收货人手机号")
+    private String phone;
+
+    /**
+     * 收货人省份编码
+     */
+    @ApiModelProperty("收货人省份编码")
+    private String provinceCode;
+
+    /**
+     * 收货人省份名称
+     */
+    @ApiModelProperty("收货人省份名称")
+    private String provinceName;
+
+    /**
+     * 收货人城市编码
+     */
+    @ApiModelProperty("收货人城市编码")
+    private String cityCode;
+
+    /**
+     * 收货人城市名称
+     */
+    @ApiModelProperty("收货人城市名称")
+    private String cityName;
+
+    /**
+     * 收货人区县编码
+     */
+    @ApiModelProperty("收货人区县编码")
+    private String districtCode;
+
+    /**
+     * 收货人区县名称
+     */
+    @ApiModelProperty("收货人区县名称")
+    private String districtName;
+
+    /**
+     * 收货人详细地址
+     */
+    @ApiModelProperty("收货人详细地址")
+    private String detailAddress;
+
+    /**
+     * 是否是默认地址(1.是  2.否)
+     */
+    @ApiModelProperty("是否是默认地址(1.是  2.否)")
+    private Integer isDefault;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/OrderStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/OrderStatisticsVO.java
new file mode 100644
index 0000000..d3d4689
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/OrderStatisticsVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 订单统计结果
+ */
+@Data
+@ApiModel("订单统计结果")
+public class OrderStatisticsVO {
+
+    @ApiModelProperty(value = "待付款订单数")
+    private Integer paymentNum = 0;
+
+    @ApiModelProperty(value = "待发货订单数")
+    private Integer deliverNum = 0;
+
+    @ApiModelProperty(value = "待收货订单数")
+    private Integer receivingNum = 0;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopStoreVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopStoreVO.java
index 9184b5e..7bcbd04 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopStoreVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopStoreVO.java
@@ -7,6 +7,8 @@
 
 import java.util.Date;
 
+import java.util.List;
+
 
 /**
  * @auther lyq
@@ -46,4 +48,16 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createAt;
 
+    @ApiModelProperty("店铺详情")
+    private String storeDetail;
+
+    @ApiModelProperty("店铺描述")
+    private String storeDescribe;
+
+    @ApiModelProperty("店铺销量")
+    private Integer sale;
+
+    @ApiModelProperty("店内商品列表")
+    private List<ComShopGoodsVO> goodsList;
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ShopOperLogVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ShopOperLogVO.java
new file mode 100644
index 0000000..0b0d095
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ShopOperLogVO.java
@@ -0,0 +1,78 @@
+package com.panzhihua.common.model.vos.shop;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 商城后台操作日志
+ * @author: cedoo
+ * @create: 2021-4-17 10:11:45
+ **/
+@Data
+@ApiModel("操作日志")
+public class ShopOperLogVO {
+
+    @ApiModelProperty("日志主键")
+    private Long operId;
+
+    @ApiModelProperty("模块标题")
+    private String title;
+
+    @ApiModelProperty("业务类型(0其它 1新增 2修改 3删除)")
+    private Integer businessType;
+
+    @ApiModelProperty("方法名称")
+    private String method;
+
+    @ApiModelProperty("请求方式")
+    private String requestMethod;
+
+    @ApiModelProperty("操作类别(0其它 1后台用户 2手机端用户)")
+    private Integer operatorType;
+
+    @ApiModelProperty("操作人员")
+    private String operName;
+
+    @ApiModelProperty("部门名称")
+    private String deptName;
+
+    @ApiModelProperty("请求url")
+    private String operUrl;
+
+    @ApiModelProperty("主机地址")
+    private String operIp;
+
+    @ApiModelProperty("操作地点")
+    private String operLocation;
+
+    @ApiModelProperty("请求参数")
+    private String operParam;
+
+    @ApiModelProperty("返回参数")
+    private String jsonResult;
+
+    @ApiModelProperty("操作状态(0正常 1异常)")
+    private Integer status;
+
+    @ApiModelProperty("错误消息")
+    private String errorMsg;
+
+    @ApiModelProperty("操作时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date operTime;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("操作账户")
+    private String account;
+
+    @ApiModelProperty("用户ID")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/auth/TokenService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/auth/TokenService.java
index d577e03..b967100 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/auth/TokenService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/auth/TokenService.java
@@ -54,4 +54,13 @@
      */
     @PostMapping("/refreshToken")
     R refreshToken(@RequestParam("refreshToken")String refreshToken);
+
+    /**
+     * 商家后台登录
+     * @param account 账户
+     * @param password 密码
+     * @return 登录结果
+     */
+    @PostMapping("/loginShopBackStage")
+    R loginShopBackStage(@RequestParam("account") String account, @RequestParam("password")String password);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
index f1b5ed7..f6f80ae 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -1,9 +1,12 @@
 package com.panzhihua.common.service.community;
 
 import com.panzhihua.common.model.dtos.AppletesBackstageConfigDTO;
+import com.panzhihua.common.model.dtos.PageDTO;
 import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvDTO;
 import com.panzhihua.common.model.dtos.advertisement.PageComOpsAdvDTO;
 import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO;
+import com.panzhihua.common.model.dtos.shop.*;
 import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
 import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
 import com.panzhihua.common.model.vos.R;
@@ -12,6 +15,7 @@
 import com.panzhihua.common.model.vos.community.questnaire.EditComActQuestnaireVo;
 import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO;
 import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerQuestnaireVO;
+import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
 import com.panzhihua.common.model.vos.shop.AddShopGoodsVO;
 import com.panzhihua.common.model.vos.shop.ShopStoreVO;
 import com.panzhihua.common.model.vos.user.UserPhoneVO;
@@ -1834,4 +1838,185 @@
      */
     @PostMapping("/shop/changeShopGoodsStatus")
     R changeStatus(@RequestParam("id") Long id,@RequestParam("status")Integer status);
+    /**
+     * 结果
+     * @param shopOperlog 商城后台操作日志
+     */
+    @PostMapping("/shop/addShopOperLog")
+    R addShopOperLog(@RequestBody ShopOperLogVO shopOperlog);
+
+    /**
+     * 分页查询 商家后台操作日志
+     * @param pageDTO 分页数据
+     * @return 分页日志
+     */
+    @PostMapping("/shop/pageShopOperLog")
+    R pageShopOperLog(@RequestBody PageDTO pageDTO);
+
+    /**
+     * 分页查询 商家后台操作日志
+     * @param pageComShopOrderSearchDTO 分页数据
+     * @return 分页日志
+     */
+    @PostMapping("/shop/order/page")
+    R pageShopOrder(@RequestBody PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
+    /**
+     * 分页查询店铺列表
+     * @param comShopStoreDTO   请求参数
+     * @return  店铺列表
+     */
+    @PostMapping("/shop/pageShopStore")
+    R pageShopStore(@RequestBody PageComShopStoreDTO comShopStoreDTO);
+
+    /**
+     * 根据id查询店铺详情
+     * @param comShopStoreDTO   请求参数
+     * @return  店铺详情
+     */
+    @PostMapping("/shop/shopStoreDetail")
+    R shopStoreDetail(@RequestBody PageComShopStoreDTO comShopStoreDTO);
+
+    /**
+     * 分页查询商品列表
+     * @param comShopGoodsDTO   请求参数
+     * @return  商品列表
+     */
+    @PostMapping("/shop/pageShopGoods")
+    R pageShopGoods(@RequestBody ComShopGoodsDTO comShopGoodsDTO);
+
+    /**
+     * 根据商品id查询商品信息
+     * @param goodsId   商品id
+     * @return  商品信息
+     */
+    @PostMapping("/shop/shopGoodsDetail")
+    R shopGoodsDetail(@RequestParam("goodsId") Long goodsId);
+
+    /**
+     * 查询用户购物车列表
+     * @param userId    用户id
+     * @return  购物车列表
+     */
+    @PostMapping("/shop/shopCartList")
+    R shopCartList(@RequestParam("userId") Long userId);
+
+    /**
+     * 购物车添加
+     * @param comShopCartDTO    请求参数
+     * @return  购物车列表
+     */
+    @PostMapping("/shop/shopAddCart")
+    R shopAddCart(@RequestBody ComShopCartDTO comShopCartDTO);
+
+    /**
+     * 购物车内商品数量修改
+     * @param shopEditNubCartDTO    请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/shop/shopEditNubCart")
+    R shopEditNubCart(@RequestBody ComShopEditNubCartDTO shopEditNubCartDTO);
+
+    /**
+     * 删除购物车记录
+     * @param Ids   购物车id集合
+     * @return  删除结果
+     */
+    @PostMapping("/shop/shopDelCart")
+    R shopDelCart(@RequestBody List<Long> Ids);
+
+    /**
+     * 分页查询用户收货地址列表
+     * @param comShopAddressDTO    请求参数
+     * @return  用户收货地址列表
+     */
+    @PostMapping("/shop/shopUserAddressList")
+    R shopUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户添加收货地址
+     * @param comShopAddressDTO 请求参数
+     * @return  添加结果
+     */
+    @PostMapping("/shop/shopAddUserAddress")
+    R shopAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户修改收货地址
+     * @param comShopAddressDTO 请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/shop/shopEditUserAddress")
+    R shopEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户删除收货地址
+     * @param addressId 收货地址id
+     * @return  删除结果
+     */
+    @PostMapping("/shop/shopDelUserAddress")
+    R shopDelUserAddress(@RequestParam("addressId") Long addressId);
+
+    /**
+     * 订单预览
+     * @param orderPreviewDTO   请求参数
+     * @return  订单预览数据
+     */
+    @PostMapping("/shop/orderPreview")
+    R orderPreview(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO);
+
+    /**
+     * 创建订单
+     * @param orderCreateDTO    创建订单请求参数
+     * @return  创建结果
+     */
+    @PostMapping("/shop/orderCreate")
+    R orderCreate(@RequestBody ComShopOrderCreateDTO orderCreateDTO);
+
+    /**
+     * 分页查询用户订单列表
+     * @param comOrderListDTO   请求参数
+     * @return  查询结果
+     */
+    @PostMapping("/shop/pageOrderList")
+    R pageOrderList(@RequestBody PageComOrderListDTO comOrderListDTO);
+
+    /**
+     * 根据订单id查询订单详情
+     * @param orderId   订单id
+     * @return  订单详情
+     */
+    @PostMapping("/shop/orderDetail")
+    R orderDetail(@RequestParam("orderId") Long orderId);
+
+    /**
+     * 根据订单id取消订单
+     * @param comShopOrderQueryDTO   请求参数
+     * @return  取消结果
+     */
+    @PostMapping("/shop/orderCancel")
+    R orderCancel(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO);
+
+    /**
+     * 根据订单id删除订单
+     * @param orderId   订单id
+     * @return  删除结果
+     */
+    @PostMapping("/shop/orderDelete")
+    R orderDelete(@RequestParam("orderId") Long orderId);
+
+    /**
+     * 根据订单id确认收货
+     * @param comShopOrderQueryDTO   请求参数
+     * @return  确认结果
+     */
+    @PostMapping("/shop/orderConfirm")
+    R orderConfirm(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO);
+
+    /**
+     * 统计用户订单数量
+     * @param userId    用户id
+     * @return  统计结果
+     */
+    @PostMapping("/shop/orderStatistics")
+    R orderStatistics(@RequestParam("userId") Long userId);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IdCardUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IdCardUtil.java
index f3ecd0c..189d264 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IdCardUtil.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IdCardUtil.java
@@ -166,4 +166,10 @@
         return getVerifyCode(idNumber).equalsIgnoreCase(idNumber.substring(17));
     }
 
+    public static void main(String[] args) {
+        String cardNo = "510403201602230324";
+        Boolean isok = strongVerifyIdNumber(cardNo);
+        System.out.println();
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/OrderNoUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/OrderNoUtils.java
new file mode 100644
index 0000000..dfb4279
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/OrderNoUtils.java
@@ -0,0 +1,58 @@
+package com.panzhihua.common.utlis;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class OrderNoUtils {
+    private static int sn = 0;
+
+    public static String NextOrderNo(Long userId) {
+        if (sn == 999)
+            sn = 0;
+        else
+            sn++;
+        DateFormat df = new SimpleDateFormat("MMddHHmmss");
+        return df.format(new Date()) + padRight(String.valueOf(userId), 5, '0') + padRight(String.valueOf(sn), 3, '0') + getRandomNumber();
+    }
+
+    public static String padLeft(String src, int len, char ch) {
+        int diff = len - src.length();
+        if (diff <= 0) {
+            return src;
+        }
+
+        char[] charr = new char[len];
+        System.arraycopy(src.toCharArray(), 0, charr, 0, src.length());
+        for (int i = src.length(); i < len; i++) {
+            charr[i] = ch;
+        }
+        return new String(charr);
+    }
+
+    public static String padRight(String src, int len, char ch) {
+        int diff = len - src.length();
+        if (diff <= 0) {
+            return src;
+        }
+
+        char[] charr = new char[len];
+        System.arraycopy(src.toCharArray(), 0, charr, diff, src.length());
+        for (int i = 0; i < diff; i++) {
+            charr[i] = ch;
+        }
+        return new String(charr);
+    }
+
+    // 防止创建类的实例
+    private OrderNoUtils() {
+    }
+
+    /**
+     * 获取三位随机数
+     * @return  三位随机数
+     */
+    private static String getRandomNumber(){
+        return String.valueOf(new Double((Math.random() * 9 + 1) * (Math.pow(10, 3 - 1))).intValue());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java
index 3585bef..374f67a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java
@@ -1,17 +1,27 @@
 package com.panzhihua.service_community.api;
 
 import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.*;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO;
 import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.shop.AddShopGoodsVO;
+import com.panzhihua.service_community.service.*;
+import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
 import com.panzhihua.common.model.vos.shop.ShopStoreVO;
 import com.panzhihua.service_community.service.ComShopGoodsService;
+import com.panzhihua.service_community.service.ComShopOperLogService;
+import com.panzhihua.service_community.service.ComShopOrderService;
 import com.panzhihua.service_community.service.ComShopStoreService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
+import javax.validation.constraints.NotNull;
 
 @Slf4j
 @RestController
@@ -22,6 +32,16 @@
     private ComShopStoreService comShopStoreService;
     @Resource
     private ComShopGoodsService comShopGoodsService;
+    @Resource
+    private ComShopOperLogService comShopOperLogService;
+    @Resource
+    private ComShopOrderService comShopOrderService;
+    @Resource
+    private ComShopGoodsService comShopGoodsService;
+    @Resource
+    private ComShopCartService comShopCartService;
+    @Resource
+    private ComShopUserAddressService comShopUserAddressService;
 
     /**
      * 店铺列表-分页查询
@@ -78,6 +98,227 @@
         return comShopStoreService.getOneInfo(id);
     }
 
+    /**
+     * 添加商城后台日志
+     *
+     * @param shopOperlog 商城日志
+     * @return 添加结果
+     */
+    @PostMapping("/addShopOperLog")
+    public R addShopOperLog(@RequestBody ShopOperLogVO shopOperlog) {
+        return comShopOperLogService.saveLog(shopOperlog);
+    }
+
+
+    /**
+     * 分页查询 商家后台操作日志
+     * @param pageDTO 分页数据
+     * @return 分页日志
+     */
+    @PostMapping("/pageShopOperLog")
+    public R pageShopOperLog(@RequestBody PageDTO pageDTO) {
+        return comShopOperLogService.pageShopOperLog(pageDTO);
+    }
+
+
+    /**
+     * 分页查询 商家订单
+     * @param pageComShopOrderSearchDTO 分页数据
+     * @return 分页订单
+     */
+    @PostMapping("/order/page")
+    public R pageShopOrder(@RequestBody PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
+        return comShopOrderService.pageShopOrder(pageComShopOrderSearchDTO);
+    }
+    /**
+     * 根据店铺id查询店铺详情
+     * @param comShopStoreDTO   请求参数
+     * @return  店铺详情
+     */
+    @PostMapping("shopStoreDetail")
+    public R shopStoreDetail(@RequestBody PageComShopStoreDTO comShopStoreDTO){
+        return comShopStoreService.shopStoreDetail(comShopStoreDTO);
+    }
+
+    /**
+     * 分页查询商品列表
+     * @param comShopGoodsDTO   请求参数
+     * @return  商品列表
+     */
+    @PostMapping("pageShopGoods")
+    public R pageShopGoods(@RequestBody ComShopGoodsDTO comShopGoodsDTO) {
+        return comShopGoodsService.pageShopGoods(comShopGoodsDTO);
+    }
+
+    /**
+     * 根据商品id查询商品详情
+     * @param goodsId   商品id
+     * @return  商品信息
+     */
+    @PostMapping("shopGoodsDetail")
+    public R shopGoodsDetail(@RequestParam("goodsId") Long goodsId){
+        return comShopGoodsService.shopGoodsDetail(goodsId);
+    }
+
+    /**
+     * 根据用户id查询购物车列表
+     * @param userId    用户id
+     * @return  购物车列表信息
+     */
+    @PostMapping("shopCartList")
+    public R shopCartList(@RequestParam("userId") Long userId) {
+        return comShopCartService.shopCartList(userId);
+    }
+
+    /**
+     * 购物车添加
+     * @param comShopCartDTO    请求参数
+     * @return  添加结果
+     */
+    @PostMapping("shopAddCart")
+    public R shopAddCart(@RequestBody ComShopCartDTO comShopCartDTO) {
+        return comShopCartService.shopAddCart(comShopCartDTO);
+    }
+
+    /**
+     * 购物车内商品数量添加
+     * @param shopEditNubCartDTO    请求参数
+     * @return  修改结果
+     */
+    @PostMapping("shopEditNubCart")
+    public R shopEditNubCart(@RequestBody ComShopEditNubCartDTO shopEditNubCartDTO) {
+        return comShopCartService.shopEditNubCart(shopEditNubCartDTO);
+    }
+
+    /**
+     * 删除购物车记录
+     * @param Ids   购物车id集合
+     * @return  删除结果
+     */
+    @PostMapping("shopDelCart")
+    public R shopDelCart(@RequestBody List<Long> Ids) {
+        return comShopCartService.shopDelCart(Ids);
+    }
+
+    /**
+     * 查询用户收货地址列表
+     * @param comShopAddressDTO    请求参数
+     * @return  用户收获地址列表
+     */
+    @PostMapping("shopUserAddressList")
+    public R shopUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO) {
+        return comShopUserAddressService.shopUserAddressList(comShopAddressDTO);
+    }
+
+    /**
+     * 用户添加书货地址
+     * @param comShopAddressDTO 请求参数
+     * @return  添加结果
+     */
+    @PostMapping("shopAddUserAddress")
+    public R shopAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
+        return comShopUserAddressService.shopAddUserAddress(comShopAddressDTO);
+    }
+
+    /**
+     * 用户修改收货地址
+     * @param comShopAddressDTO 请求参数
+     * @return  修改结果
+     */
+    @PostMapping("shopEditUserAddress")
+    public R shopEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
+        return comShopUserAddressService.shopEditUserAddress(comShopAddressDTO);
+    }
+
+    /**
+     * 用户删除收货地址
+     * @param addressId 收货地址id
+     * @return  删除结果
+     */
+    @PostMapping("shopDelUserAddress")
+    public R shopDelUserAddress(@RequestParam("addressId") Long addressId) {
+        return comShopUserAddressService.shopDelUserAddress(addressId);
+    }
+
+    /**
+     * 订单预览
+     * @param orderPreviewDTO   请求参数
+     * @return  订单预览数据
+     */
+    @PostMapping("orderPreview")
+    public R orderPreview(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO) {
+        return comShopOrderService.orderPreview(orderPreviewDTO);
+    }
+
+    /**
+     * 创建订单
+     * @param orderCreateDTO    创建订单请求参数
+     * @return  创建结果
+     */
+    @PostMapping("orderCreate")
+    public R orderCreate(@RequestBody ComShopOrderCreateDTO orderCreateDTO) {
+        return comShopOrderService.orderCreate(orderCreateDTO);
+    }
+
+    /**
+     * 分页查询用户订单列表
+     * @param comOrderListDTO   请求参数
+     * @return  查询结果
+     */
+    @PostMapping("pageOrderList")
+    public R pageOrderList(@RequestBody PageComOrderListDTO comOrderListDTO){
+        return comShopOrderService.pageOrderList(comOrderListDTO);
+    }
+
+    /**
+     * 根据订单id查询订单详情
+     * @param orderId   订单id
+     * @return  订单详情
+     */
+    @PostMapping("orderDetail")
+    public R orderDetail(@RequestParam("orderId") Long orderId) {
+        return comShopOrderService.orderDetail(orderId);
+    }
+
+    /**
+     * 根据订单id取消订单
+     * @param comShopOrderQueryDTO   请求参数
+     * @return  取消结果
+     */
+    @PostMapping("orderCancel")
+    public R orderCancel(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        return comShopOrderService.orderCancel(comShopOrderQueryDTO.getOrderId(),comShopOrderQueryDTO.getPhone());
+    }
+
+    /**
+     * 根据订单id删除订单
+     * @param orderId   订单id
+     * @return  删除结果
+     */
+    @PostMapping("orderDelete")
+    public R orderDelete(@RequestParam("orderId") Long orderId) {
+        return comShopOrderService.orderDelete(orderId);
+    }
+
+    /**
+     * 根据订单id确认收货
+     * @param comShopOrderQueryDTO   请求参数
+     * @return  确认结果
+     */
+    @PostMapping("orderConfirm")
+    public R orderConfirm(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        return comShopOrderService.orderConfirm(comShopOrderQueryDTO.getOrderId(),comShopOrderQueryDTO.getPhone());
+    }
+
+    /**
+     * 统计用户订单数量
+     * @param userId    用户id
+     * @return  统计结果
+     */
+    @PostMapping("orderStatistics")
+    public R orderStatistics(@RequestParam("userId") Long userId) {
+        return comShopOrderService.orderStatistics(userId);
+    }
 
 
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsDAO.java
index c7d7ec5..e4c3c05 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsDAO.java
@@ -3,6 +3,12 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.shop.ComShopGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
+import com.panzhihua.common.model.vos.shop.ComShopGoodsVO;
+import com.panzhihua.common.model.vos.shop.ComShopStoreVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
 import com.panzhihua.common.model.vos.shop.PageShopGoodsVO;
 import com.panzhihua.common.model.vos.shop.PageShopStoreVO;
@@ -36,4 +42,44 @@
             "</script>")
     IPage<PageShopGoodsVO> pageShopGoods(Page page, @Param("pageComShopGoodsDTO")  PageComShopGoodsDTO pageComShopGoodsDTO);
 
+    /**
+     * 根据店铺id查询商品列表
+     * @param page  分页参数
+     * @param pageComShopStoreDTO   请求参数
+     * @return  分页商品列表
+     */
+    @Select("<script> " +
+            "select id,`name`,store_id,goods_pic,images,`status`,sale,original_price,price" +
+            ",unit,`order`,stock,details,delivery_type from com_shop_goods" +
+            " where store_id = #{pageComShopStoreDTO.storeId} and delete_status = 1 and status = 1" +
+            " order by sale desc,create_at desc "+
+            "</script> ")
+    IPage<ComShopGoodsVO> pageShopGoodsByStoreId(Page page, @Param("pageComShopStoreDTO") PageComShopStoreDTO pageComShopStoreDTO);
+
+    /**
+     * 分页查询商品列表
+     * @param page  分页参数
+     * @param comShopGoodsDTO   请求参数
+     * @return  商品列表
+     */
+    @Select("<script> " +
+            "select id,`name`,store_id,goods_pic,images,`status`,sale,original_price,price,unit" +
+            ",`order`,stock,details,delivery_type from com_shop_goods as csg " +
+            " where 1=1  and csg.delete_status = 1 and csg.status = 1" +
+            "<if test='comShopGoodsDTO.name != null and comShopGoodsDTO.name !=&quot;&quot;'>" +
+            " AND csg.`name` like concat('%',#{comShopGoodsDTO.name},'%') " +
+            " </if> " +
+            "<if test='comShopGoodsDTO.storeId != null '>" +
+            " AND csg.store_id = #{comShopGoodsDTO.storeId} " +
+            " </if> " +
+            "<if test='comShopGoodsDTO.status != null '>" +
+            " AND csg.status = #{comShopGoodsDTO.status} " +
+            " </if> " +
+            "<if test='comShopGoodsDTO.deliveryType != null '>" +
+            " AND csg.delivery_type = #{comShopGoodsDTO.deliveryType} " +
+            " </if> " +
+            " order by sale desc,create_at desc " +
+            " </script>")
+    IPage<ComShopGoodsVO> pageShopGoods(Page page, @Param("comShopGoodsDTO") ComShopGoodsDTO comShopGoodsDTO);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOperLogDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOperLogDAO.java
new file mode 100644
index 0000000..1b682b7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOperLogDAO.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ComShopOperLogDO;
+import com.panzhihua.service_community.model.dos.ComShopOrderDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author cedoo
+ * @create 2021-4-17 10:55:15
+ * @describe 订单日志mapper类
+ */
+@Mapper
+public interface ComShopOperLogDAO extends BaseMapper<ComShopOperLogDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderDAO.java
index cc07aec..1f6f16c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderDAO.java
@@ -1,15 +1,59 @@
 package com.panzhihua.service_community.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.shop.PageComOrderListDTO;
+import com.panzhihua.common.model.vos.shop.ComShopOrderPageVO;
+import com.panzhihua.common.model.vos.shop.ComShopOrderVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO;
+import com.panzhihua.common.model.vos.shop.ComShopOrderVO;
+import com.panzhihua.common.model.vos.shop.ComShopStoreVO;
 import com.panzhihua.service_community.model.dos.ComShopOrderDO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Select;
 
 /**
- * @auther lyq
- * @create 2021-04-14 15:03:01
+ * @auther cedoo
+ * @create 2021-4-17 17:35:51
  * @describe 订单表mapper类
  */
 @Mapper
 public interface ComShopOrderDAO extends BaseMapper<ComShopOrderDO> {
 
+    @Select("<script> " +
+            "select order_no,store_id,`status`,pay_status,receiver_id,total_amount as orderTotal,pay_amount,delivery_type,remark,create_at from com_shop_order as cso" +
+            " where 1=1  and cso.delete_status = 1 and cso.user_id = #{comOrderListDTO.userId}" +
+            "<if test='comOrderListDTO.status != null'>" +
+            " AND cso.status = #{comOrderListDTO.status} " +
+            " </if> " +
+            " order by create_at desc " +
+            " </script>")
+    IPage<ComShopOrderPageVO> pageOrderList(Page page,@Param("comOrderListDTO") PageComOrderListDTO comOrderListDTO);
+
+    @Select("<script> " +
+            "SELECT\n" +
+            "id,\n" +
+            "`name`,\n" +
+            "photo_path,\n" +
+            "phone,\n" +
+            "integral,\n" +
+            "create_at \n" +
+            "FROM\n" +
+            "com_mng_volunteer_mng \n" +
+            " where state=2 and community_id=#{comMngVolunteerMngVO.communityId}" +
+            "<if test='comMngVolunteerMngVO.name != null and comMngVolunteerMngVO.name.trim() != &quot;&quot;'>" +
+            " and name like concat(#{comMngVolunteerMngVO.name},'%')  \n" +
+            " </if> " +
+            "<if test='comMngVolunteerMngVO.phone != null and comMngVolunteerMngVO.phone.trim() != &quot;&quot;'>" +
+            "AND phone like concat(#{comMngVolunteerMngVO.phone},'%') " +
+            " </if> " +
+            " order by integral desc,create_at desc"+
+            "</script>")
+    IPage<ComShopOrderVO> pageOrderBy(PageDTO page, PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopUserAddressDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopUserAddressDAO.java
index d9ad25b..7462399 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopUserAddressDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopUserAddressDAO.java
@@ -1,8 +1,14 @@
 package com.panzhihua.service_community.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.shop.ComShopUserAddressVO;
 import com.panzhihua.service_community.model.dos.ComShopUserAddressDO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
 
 /**
  * @auther lyq
@@ -12,4 +18,9 @@
 @Mapper
 public interface ComShopUserAddressDAO extends BaseMapper<ComShopUserAddressDO> {
 
+    @Select("select id,`name`,phone,province_code,province_name,city_code,city_name" +
+            ",district_code,district_name,detail_address,is_default " +
+            " from com_shop_user_address where user_id = #{userId} order by create_at desc")
+    List<ComShopUserAddressVO> pageUserAddressList(Page page, @Param("userId") Long userId);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopGoodsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopGoodsDO.java
index 49eb9c4..2fcd17a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopGoodsDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopGoodsDO.java
@@ -126,6 +126,31 @@
     @TableField(fill = FieldFill.UPDATE)
     private Date updateAt;
 
+    /**
+     * 商品状态(1.出售中  2.已下架  3.回收站)
+     */
+    public interface status{
+        int sell = 1;
+        int lower = 2;
+        int recovery = 3;
+    }
+
+    /**
+     * 删除状态(1.未删除  2.已删除)
+     */
+    public interface deleteStatus{
+        int no = 1;
+        int yes = 2;
+    }
+
+    /**
+     * 配送方式(1.商家配送  2.快递物流)
+     */
+    public interface deliveryType{
+        int store = 1;
+        int express = 2;
+    }
+
     @Override
     public String toString() {
         return "ComShopGoodsDO{" +
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOperLogDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOperLogDO.java
new file mode 100644
index 0000000..ee1c461
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOperLogDO.java
@@ -0,0 +1,114 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 操作日志
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-25 10:34
+ **/
+@Data
+@TableName("com_shop_oper_log")
+public class ComShopOperLogDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 日志主键
+     */
+    private Long operId;
+
+    /**
+     * 模块标题
+     */
+    private String title;
+
+    /**
+     * 业务类型(0其它 1新增 2修改 3删除)
+     */
+    private Integer businessType;
+
+    /**
+     * 方法名称
+     */
+    private String method;
+
+    /**
+     * 请求方式
+     */
+    private String requestMethod;
+
+    /**
+     * 操作类别(0其它 1后台用户 2手机端用户)
+     */
+    private Integer operatorType;
+
+    /**
+     * 操作人员
+     */
+    private String operName;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 请求url
+     */
+    private String operUrl;
+
+    /**
+     * 主机地址
+     */
+    private String operIp;
+
+    /**
+     * 操作地点
+     */
+    private String operLocation;
+
+    /**
+     * 请求参数
+     */
+    private String operParam;
+
+    /**
+     * 返回参数
+     */
+    private String jsonResult;
+
+    /**
+     * 操作状态(0正常 1异常)
+     */
+    private Integer status;
+
+    /**
+     * 错误消息
+     */
+    private String errorMsg;
+
+    /**
+     * 操作时间
+     */
+    private Date operTime;
+
+    /**
+     * 操作社区id 0 标识运营后台
+     */
+    private Long communityId;
+
+    /**
+     * 操作账户
+     */
+    private String account;
+    /**
+     * 操作用户ID
+     */
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderDO.java
index 5635da3..7f1e6d1 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderDO.java
@@ -117,6 +117,16 @@
     private String logisticsNo;
 
     /**
+     * 订单备注
+     */
+    private String remark;
+
+    /**
+     * 发货时间
+     */
+    private Date deliveryTime;
+
+    /**
      * 下单时间
      */
     @TableField(fill = FieldFill.INSERT)
@@ -128,6 +138,57 @@
     @TableField(fill = FieldFill.UPDATE)
     private Date updateAt;
 
+    /**
+     * 订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)
+     */
+    public interface status{
+        int dfk = 1;
+        int dfh = 2;
+        int dsh = 3;
+        int dpj = 4;
+        int ywc = 5;
+        int yqx = 6;
+    }
+
+    /**
+     * 支付状态(1.未支付 2.已支付)
+     */
+    public interface payStatus{
+        int no = 1;
+        int yes = 2;
+    }
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    public interface deleteStatus{
+        int no = 1;
+        int yes = 2;
+    }
+
+    /**
+     * 支付方式(1.微信支付)
+     */
+    public interface payType{
+        int wx = 1;
+    }
+
+    /**
+     * 配送方式(1.商家配送  2.快递物流)
+     */
+    public interface deliveryType{
+        int store = 1;
+        int express = 2;
+    }
+
+    /**
+     * 订单发货状态(1.未发货  2.已发货)
+     */
+    public interface deliveryStatus{
+        int no = 1;
+        int yes = 2;
+    }
+
     @Override
     public String toString() {
         return "ComShopOrderDO{" +
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderOperateDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderOperateDO.java
index c2f9eaa..d31bc5f 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderOperateDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderOperateDO.java
@@ -56,6 +56,17 @@
     @TableField(fill = FieldFill.INSERT)
     private Date createAt;
 
+    /**
+     * 操作类型(1.创建订单 2.取消订单 3.订单支付 4.订单发货 5.订单完成)
+     */
+    public interface operationType{
+        int create = 1;
+        int cancel = 2;
+        int pay = 3;
+        int deliver = 4;
+        int complete = 5;
+    }
+
     @Override
     public String toString() {
         return "ComShopOrderOperateDO{" +
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopStoreDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopStoreDO.java
index d09776e..43b4137 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopStoreDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopStoreDO.java
@@ -121,6 +121,15 @@
      * 管理后台用户id
      */
     private Long sysUserId;
+
+    /**
+     * 店铺状态(1.启用  2.禁用)
+     */
+    public interface status{
+        int yes = 1;
+        int no = 2;
+    }
+
     @Override
     public String toString() {
         return "ComShopStoreDO{" +
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopUserAddressDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopUserAddressDO.java
index 37f56e6..9eed938 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopUserAddressDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopUserAddressDO.java
@@ -111,4 +111,12 @@
                 ", updateAt=" + updateAt +
                 "}";
     }
+
+    /**
+     * 是否是默认地址(1.是  2.否)
+     */
+    public interface isDefault{
+        int yes = 1;
+        int no = 2;
+    }
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopCartService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopCartService.java
index d486039..9318e9d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopCartService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopCartService.java
@@ -1,7 +1,12 @@
 package com.panzhihua.service_community.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.ComShopCartDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopEditNubCartDTO;
+import com.panzhihua.common.model.vos.R;
 import com.panzhihua.service_community.model.dos.ComShopCartDO;
+
+import java.util.List;
 
 /**
  * @auther lyq
@@ -10,6 +15,34 @@
  */
 public interface ComShopCartService extends IService<ComShopCartDO> {
 
+    /**
+     * 根据用户id查询购物车列表信息
+     * @param userId    用户id
+     * @return  购物车列表信息
+     */
+    R shopCartList(Long userId);
+
+    /**
+     * 购物车添加
+     * @param comShopCartDTO    请求参数
+     * @return  添加结果
+     */
+    R shopAddCart(ComShopCartDTO comShopCartDTO);
+
+    /**
+     * 购物车内商品数量修改
+     * @param shopEditNubCartDTO    请求参数
+     * @return  修改结果
+     */
+    R shopEditNubCart(ComShopEditNubCartDTO shopEditNubCartDTO);
+
+    /**
+     * 删除购物车记录
+     * @param Ids   购物车id集合
+     * @return  删除结果
+     */
+    R shopDelCart(List<Long> Ids);
+
 
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsService.java
index cd06d95..8d84056 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsService.java
@@ -1,6 +1,7 @@
 package com.panzhihua.service_community.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.ComShopGoodsDTO;
 import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.shop.AddShopGoodsVO;
@@ -14,6 +15,20 @@
 public interface ComShopGoodsService extends IService<ComShopGoodsDO> {
 
     /**
+     * 分页查询商品列表
+     * @param comShopGoodsDTO   请求参数
+     * @return  商品列表
+     */
+    R pageShopGoods(ComShopGoodsDTO comShopGoodsDTO);
+
+    /**
+     * 根据商品id查询商品信息
+     * @param goodsId   商品id
+     * @return  商品信息
+     */
+    R shopGoodsDetail(Long goodsId);
+
+    /**
      * 添加商品
      * @param addShopGoodsVO
      * @return
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOperLogService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOperLogService.java
new file mode 100644
index 0000000..dac6403
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOperLogService.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
+import com.panzhihua.service_community.model.dos.ComShopOperLogDO;
+import com.panzhihua.service_community.model.dos.ComShopUserAddressDO;
+
+/**
+ * @author cedoo
+ * @create 2021-4-16 10:49:12
+ * @describe  商城后台操作日志
+ */
+public interface ComShopOperLogService extends IService<ComShopOperLogDO> {
+    /**
+     * 通过VO添加日志
+     * @param shopOperlog 商城后台日志VO
+     * @return
+     */
+    R saveLog(ShopOperLogVO shopOperlog);
+
+    /**
+     * 查询商城后台操作日志
+     * @param pageDTO
+     * @return
+     */
+    R pageShopOperLog(PageDTO pageDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderService.java
index f926da5..3bb04c6 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderService.java
@@ -1,6 +1,12 @@
 package com.panzhihua.service_community.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderCreateDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderPreviewDTO;
+import com.panzhihua.common.model.dtos.shop.PageComOrderListDTO;
+import com.panzhihua.common.model.vos.R;
 import com.panzhihua.service_community.model.dos.ComShopOrderDO;
 
 /**
@@ -10,4 +16,68 @@
  */
 public interface ComShopOrderService extends IService<ComShopOrderDO> {
 
+    /**
+     * 分页搜索订单记录
+     * @param pageComShopOrderSearchDTO 分页数据
+     * @return 分页订单
+     */
+    R pageShopOrder(PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
+    /**
+     * 订单预览
+     * @param orderPreviewDTO   请求参数
+     * @return  订单预览数据
+     */
+    R orderPreview(ComShopOrderPreviewDTO orderPreviewDTO);
+
+    /**
+     * 创建订单
+     * @param orderCreateDTO    创建订单请求参数
+     * @return  创建结果
+     */
+    R orderCreate(ComShopOrderCreateDTO orderCreateDTO);
+
+    /**
+     * 分页查询用户订单列表
+     * @param comOrderListDTO   请求参数
+     * @return  查询结果
+     */
+    R pageOrderList(PageComOrderListDTO comOrderListDTO);
+
+    /**
+     * 根据订单id查询订单详情
+     * @param orderId   订单id
+     * @return  订单详情
+     */
+    R orderDetail(Long orderId);
+
+    /**
+     * 根据订单id取消订单
+     * @param orderId   订单id
+     * @param phone 操作用户手机号
+     * @return  取消结果
+     */
+    R orderCancel(Long orderId,String phone);
+
+    /**
+     * 根据订单id删除订单
+     * @param orderId   订单id
+     * @return  删除结果
+     */
+    R orderDelete(Long orderId);
+
+    /**
+     * 根据订单id确认收货
+     * @param orderId   订单id
+     * @param phone 手机号
+     * @return  确认结果
+     */
+    R orderConfirm(Long orderId, String phone);
+
+    /**
+     * 统计用户订单数量
+     * @param userId    用户id
+     * @return  统计结果
+     */
+    R orderStatistics(Long userId);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopStoreService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopStoreService.java
index e901849..58c5276 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopStoreService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopStoreService.java
@@ -21,6 +21,13 @@
     R pageStoreList(PageComShopStoreDTO pageComShopStoreDTO);
 
     /**
+     * 根据店铺id查询店铺详情
+     * @param comShopStoreDTO   请求参数
+     * @return  店铺详情
+     */
+    R shopStoreDetail(PageComShopStoreDTO comShopStoreDTO);
+
+    /**
      * 保存店铺
      * @param storeVO
      * @return
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopUserAddressService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopUserAddressService.java
index 27c4b1f..70f679c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopUserAddressService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopUserAddressService.java
@@ -1,6 +1,9 @@
 package com.panzhihua.service_community.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.ComShopAddressDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopAddressDTO;
+import com.panzhihua.common.model.vos.R;
 import com.panzhihua.service_community.model.dos.ComShopUserAddressDO;
 
 /**
@@ -10,4 +13,32 @@
  */
 public interface ComShopUserAddressService extends IService<ComShopUserAddressDO> {
 
+    /**
+     * 查询用户收获地址列表
+     * @param comShopAddressDTO    请求参数
+     * @return  用户收货地址列表
+     */
+    R shopUserAddressList(PageComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户添加书货地址
+     * @param comShopAddressDTO 请求参数
+     * @return  添加结果
+     */
+    R shopAddUserAddress(ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户修改收货地址
+     * @param comShopAddressDTO 请求参数
+     * @return  修改结果
+     */
+    R shopEditUserAddress(ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户删除收货地址
+     * @param addressId 收货地址id
+     * @return  删除结果
+     */
+    R shopDelUserAddress(Long addressId);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java
index 087ec2f..3f7cfa9 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java
@@ -1,11 +1,31 @@
 package com.panzhihua.service_community.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.shop.ComShopCartDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopEditNubCartDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ComShopCartListVO;
+import com.panzhihua.common.model.vos.shop.ComShopCartStoreVO;
+import com.panzhihua.common.model.vos.shop.ComShopCartVO;
 import com.panzhihua.service_community.dao.ComShopCartDAO;
+import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO;
+import com.panzhihua.service_community.dao.ComShopGoodsDAO;
+import com.panzhihua.service_community.dao.ComShopStoreDAO;
 import com.panzhihua.service_community.model.dos.ComShopCartDO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsDO;
+import com.panzhihua.service_community.model.dos.ComShopStoreDO;
 import com.panzhihua.service_community.service.ComShopCartService;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @auther lyq
@@ -16,4 +36,175 @@
 @Service
 public class ComShopCartServiceImpl extends ServiceImpl<ComShopCartDAO, ComShopCartDO> implements ComShopCartService {
 
+    @Resource
+    private ComShopGoodsDAO shopGoodsDAO;
+    @Resource
+    private ComShopStoreDAO shopStoreDAO;
+    @Resource
+    private ComShopGoodsAttrDAO shopGoodsAttrDAO;
+
+
+    /**
+     * 根据用户id查询购物车列表
+     * @param userId    用户id
+     * @return  购物车列表
+     */
+    @Override
+    public R shopCartList(Long userId){
+        //返回参数
+        ComShopCartListVO comShopCart = new ComShopCartListVO();
+        //失效宝贝集合
+        List<ComShopCartVO> invalidCartList = new ArrayList<>();
+        //有效宝贝集合
+        List<ComShopCartStoreVO> cartList = new ArrayList<>();
+
+        List<ComShopCartDO> shopCartDOList = this.baseMapper.selectList(new QueryWrapper<ComShopCartDO>().eq("user_id",userId));
+        if(!shopCartDOList.isEmpty()){
+            shopCartDOList.forEach(shopCart->{
+                //查询当前商品是否是有效商品
+                ComShopGoodsDO  goodsDO = shopGoodsDAO.selectOne(new QueryWrapper<ComShopGoodsDO>()
+                        .eq("id",shopCart.getGoodsId()).eq("delete_status",ComShopGoodsDO.deleteStatus.no)
+                        .eq("status",ComShopGoodsDO.status.sell));
+                if(goodsDO == null){
+                    ComShopCartVO invalidCart = new ComShopCartVO();
+                    BeanUtils.copyProperties(shopCart,invalidCart);
+                    invalidCartList.add(invalidCart);
+                }
+
+                //有效商品区分店铺
+                if(cartList.isEmpty()){
+                    ComShopCartStoreVO cartStoreVO = new ComShopCartStoreVO();
+                    //查询商品所属店铺
+                    ComShopStoreDO shopStoreDO = shopStoreDAO.selectById(goodsDO.getStoreId());
+                    if(shopStoreDO != null){
+                        cartStoreVO.setStoreId(shopStoreDO.getId());
+                        cartStoreVO.setStoreName(shopStoreDO.getName());
+                        cartStoreVO.setStoreLogo(shopStoreDO.getLogo());
+                    }
+                    List<ComShopCartVO> cartsList = new ArrayList<>();
+                    ComShopCartVO cartVO = new ComShopCartVO();
+                    BeanUtils.copyProperties(shopCart,cartVO);
+                    cartsList.add(cartVO);
+                    cartStoreVO.setCartList(cartsList);
+                    cartList.add(cartStoreVO);
+                }else{
+                    boolean isOk = true;
+                    for (ComShopCartStoreVO vo:cartList) {
+                        if(vo.getStoreId().equals(goodsDO.getStoreId())){
+                            isOk = false;
+                            ComShopCartVO cartVO = new ComShopCartVO();
+                            BeanUtils.copyProperties(shopCart,cartVO);
+                            vo.getCartList().add(cartVO);
+                        }
+                    }
+
+                    if(isOk){
+                        ComShopCartStoreVO cartStoreVO = new ComShopCartStoreVO();
+                        //查询商品所属店铺
+                        ComShopStoreDO shopStoreDO = shopStoreDAO.selectById(goodsDO.getStoreId());
+                        if(shopStoreDO != null){
+                            cartStoreVO.setStoreId(shopStoreDO.getId());
+                            cartStoreVO.setStoreName(shopStoreDO.getName());
+                            cartStoreVO.setStoreLogo(shopStoreDO.getLogo());
+                        }
+                        List<ComShopCartVO> cartsList = new ArrayList<>();
+                        ComShopCartVO cartVO = new ComShopCartVO();
+                        BeanUtils.copyProperties(shopCart,cartVO);
+                        cartsList.add(cartVO);
+                        cartStoreVO.setCartList(cartsList);
+                        cartList.add(cartStoreVO);
+                    }
+
+                }
+
+
+            });
+            //设置返回参数
+            comShopCart.setInvalidCartList(invalidCartList);
+            comShopCart.setCartList(cartList);
+        }
+        return R.ok(comShopCart);
+    }
+
+    /**
+     * 购物车添加
+     * @param comShopCartDTO    请求参数
+     * @return  添加结果
+     */
+    @Override
+    public R shopAddCart(ComShopCartDTO comShopCartDTO){
+        //查询当前商品是否已经在购物车中
+        ComShopCartDO shopCartDO = this.baseMapper.selectOne(new QueryWrapper<ComShopCartDO>().eq("user_id",comShopCartDTO.getUserId())
+                .eq("goods_id",comShopCartDTO.getGoodsId()).eq("goods_attr_id",comShopCartDTO.getGoodsAttrId()));
+        if(shopCartDO == null){//购物车表里未有该商品的记录
+            shopCartDO = new ComShopCartDO();
+            shopCartDO.setUserId(comShopCartDTO.getUserId());
+            shopCartDO.setAmount(comShopCartDTO.getNumber());
+            //查询商品
+            ComShopGoodsDO shopGoodsDO = shopGoodsDAO.selectById(comShopCartDTO.getGoodsId());
+            if(shopGoodsDO == null){
+                return R.fail("未查询到商品信息");
+            }
+            shopCartDO.setGoodsName(shopGoodsDO.getName());
+            shopCartDO.setGoodsId(shopGoodsDO.getId());
+            shopCartDO.setStoreId(shopGoodsDO.getStoreId());
+            //查询商品规格
+            ComShopGoodsAttrDO shopGoodsAttrDO = shopGoodsAttrDAO.selectById(comShopCartDTO.getGoodsAttrId());
+            if(shopGoodsAttrDO == null){
+                return R.fail("未查询到商品规格");
+            }
+            shopCartDO.setGoodsAttrId(shopGoodsAttrDO.getId());
+            shopCartDO.setGoodsAttr(shopGoodsAttrDO.getGoodsAttr());
+            shopCartDO.setGoodsAttrPic(shopGoodsAttrDO.getAttrPic());
+            shopCartDO.setPrice(shopGoodsAttrDO.getPrice());
+            //执行添加操作
+            if(this.baseMapper.insert(shopCartDO) > 0){
+                return R.ok();
+            }else{
+                return R.fail("添加购物车失败");
+            }
+        }else{//购物车已有该商品
+            shopCartDO.setAmount(shopCartDO.getAmount() + comShopCartDTO.getNumber());
+            //执行修改操作
+            if(this.baseMapper.updateById(shopCartDO) > 0){
+                return R.ok();
+            }else{
+                return R.fail("添加购物车失败");
+            }
+        }
+    }
+
+    /**
+     * 购物车内商品数量修改
+     * @param shopEditNubCartDTO    请求参数
+     * @return  修改结果
+     */
+    @Override
+    public R shopEditNubCart(ComShopEditNubCartDTO shopEditNubCartDTO){
+        //查询购物车记录
+        ComShopCartDO shopCartDO = this.baseMapper.selectById(shopEditNubCartDTO.getCartId());
+        if(shopCartDO == null){
+            return R.fail("未查询到购物车记录");
+        }
+        shopCartDO.setAmount(shopEditNubCartDTO.getNumber());
+        //执行修改操作
+        if(this.baseMapper.updateById(shopCartDO) > 0){
+            return R.ok();
+        }else{
+            return R.fail("修改失败");
+        }
+    }
+
+    /**
+     * 删除购物车记录
+     * @param Ids   购物车id集合
+     * @return  删除结果
+     */
+    public R shopDelCart(List<Long> Ids){
+        if(this.baseMapper.deleteBatchIds(Ids) > 0){
+            return R.ok();
+        }else{
+            return R.fail("修改失败");
+        }
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java
index ec7b758..fee1058 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java
@@ -2,6 +2,8 @@
 
 import java.math.BigDecimal;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -9,14 +11,25 @@
 import com.google.common.collect.Lists;
 import com.panzhihua.common.exceptions.ServiceException;
 import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopGoodsDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.shop.AddShopGoodsAttrVO;
 import com.panzhihua.common.model.vos.shop.PageShopGoodsVO;
 import com.panzhihua.common.model.vos.shop.AddShopGoodsVO;
 import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO;
+import com.panzhihua.common.model.vos.shop.ComShopGoodsAttrVO;
+import com.panzhihua.common.model.vos.shop.ComShopGoodsVO;
+import com.panzhihua.common.model.vos.shop.ComShopStoreVO;
+import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO;
+import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
+import com.panzhihua.common.model.vos.shop.ComShopStoreVO;
+import com.panzhihua.common.model.vos.shop.ShopGoodsVO;
 import com.panzhihua.service_community.dao.ComShopGoodsDAO;
 import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
+import com.panzhihua.service_community.dao.ComShopStoreDAO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
 import com.panzhihua.service_community.model.dos.ComShopGoodsDO;
+import com.panzhihua.service_community.model.dos.ComShopStoreDO;
 import com.panzhihua.service_community.service.ComShopGoodsService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
@@ -28,6 +41,10 @@
 import java.util.List;
 import java.util.stream.Collectors;
 
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @auther lyq
  * @create 2021-04-14 15:02:35
@@ -38,6 +55,10 @@
 public class ComShopGoodsServiceImpl extends ServiceImpl<ComShopGoodsDAO, ComShopGoodsDO> implements ComShopGoodsService {
     @Resource
     private ComShopGoodsAttrServiceImpl goodsAttrService;
+    @Resource
+    private ComShopGoodsAttrDAO shopGoodsAttrDAO;
+    @Resource
+    private ComShopStoreDAO shopStoreDAO;
 
     @Override
     public R saveShopGoods(AddShopGoodsVO addShopGoodsVO) {
@@ -157,4 +178,54 @@
         this.baseMapper.updateById(shopGoodsDO);
         return R.ok();
     }
+    /**
+     * 分页查询商品列表
+     * @param comShopGoodsDTO   请求参数
+     * @return  商品列表
+     */
+    @Override
+    public R pageShopGoods(ComShopGoodsDTO comShopGoodsDTO){
+        Page page = new Page<>(comShopGoodsDTO.getPageNum(),comShopGoodsDTO.getPageSize());
+        return R.ok(this.baseMapper.pageShopGoods(page,comShopGoodsDTO));
+    }
+
+    /**
+     * 根据商品id查询商品信息
+     * @param goodsId   商品id
+     * @return  商品信息
+     */
+    @Override
+    public R shopGoodsDetail(Long goodsId){
+
+        //根据id查询商品信息
+        ComShopGoodsDO goodsDO = this.baseMapper.selectById(goodsId);
+        if(goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopGoodsDO.deleteStatus.yes)){
+            return R.fail(403,"商品不存在");
+        }
+        if(!goodsDO.getStatus().equals(ComShopGoodsDO.status.sell)){
+            return R.fail(405,"商品已下架");
+        }
+
+        //根据商品id查询商品规格信息
+        List<ComShopGoodsAttrVO> goodsAttrList = new ArrayList<>();
+        List<ComShopGoodsAttrDO> goodsAttrDOS = shopGoodsAttrDAO.selectList(new QueryWrapper<ComShopGoodsAttrDO>().eq("goods_id",goodsId));
+        goodsAttrDOS.forEach(attrDO->{
+            ComShopGoodsAttrVO goodsAttrVO = new ComShopGoodsAttrVO();
+            BeanUtils.copyProperties(attrDO,goodsAttrVO);
+            goodsAttrList.add(goodsAttrVO);
+        });
+
+        //查询商品店铺信息
+        ComShopStoreDO shopStoreDO = shopStoreDAO.selectById(goodsDO.getStoreId());
+        ComShopStoreVO shopStoreVO = new ComShopStoreVO();
+        BeanUtils.copyProperties(shopStoreDO,shopStoreVO);
+
+        //设置值
+        ComShopGoodsVO shopGoods = new ComShopGoodsVO();
+        BeanUtils.copyProperties(goodsDO,shopGoods);
+        shopGoods.setGoodsAttrList(goodsAttrList);
+        shopGoods.setShopStoreVO(shopStoreVO);
+        return R.ok(shopGoods);
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOperLogServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOperLogServiceImpl.java
new file mode 100644
index 0000000..5feda49
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOperLogServiceImpl.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ComShopStoreVO;
+import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
+import com.panzhihua.service_community.dao.ComShopOperLogDAO;
+import com.panzhihua.service_community.dao.ComShopOrderDAO;
+import com.panzhihua.service_community.model.dos.ComShopOperLogDO;
+import com.panzhihua.service_community.model.dos.ComShopOrderDO;
+import com.panzhihua.service_community.model.dos.ComShopStoreDO;
+import com.panzhihua.service_community.service.ComShopOperLogService;
+import com.panzhihua.service_community.service.ComShopOrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+/**
+ * @auther cedoo
+ * @create 2021-4-17 10:51:12
+ * @describe 日志服务
+ */
+@Slf4j
+@Service
+public class ComShopOperLogServiceImpl extends ServiceImpl<ComShopOperLogDAO, ComShopOperLogDO> implements ComShopOperLogService {
+
+    @Override
+    public R saveLog(ShopOperLogVO shopOperLogVO) {
+        if (shopOperLogVO == null) {
+            return R.ok("500", "数据为空!");
+        }
+        ComShopOperLogDO theDo = new ComShopOperLogDO();
+        BeanUtils.copyProperties(shopOperLogVO, theDo);
+        this.baseMapper.insert(theDo);
+        return R.ok();
+    }
+
+    @Override
+    public R pageShopOperLog(PageDTO pageDTO) {
+        Page page = new Page<>(pageDTO.getPageNum(), pageDTO.getPageSize());
+        IPage<ComShopOperLogDO> comShopOperLogDOIPage =
+                this.baseMapper.selectPage(page, new LambdaQueryWrapper<ComShopOperLogDO>().eq(ComShopOperLogDO::getUserId, pageDTO.getUserId()));
+
+        IPage<ShopOperLogVO> comShopOperLogVOIPage =
+                comShopOperLogDOIPage.convert(comShopOperLogDO -> {
+                    ShopOperLogVO shopOperLogVO = new ShopOperLogVO();
+                    BeanUtils.copyProperties(comShopOperLogDO, shopOperLogVO);
+                    /**
+                     * 隐藏敏感信息
+                     */
+                    shopOperLogVO.setJsonResult("****");
+                    shopOperLogVO.setOperParam("****");
+                    return shopOperLogVO;
+                });
+        return R.ok(comShopOperLogVOIPage);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java
index 265f044..e3b28ad 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java
@@ -1,11 +1,36 @@
 package com.panzhihua.service_community.service.impl;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO;
+import com.panzhihua.common.model.vos.R;
 import com.panzhihua.service_community.dao.ComShopOrderDAO;
 import com.panzhihua.service_community.model.dos.ComShopOrderDO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderCreateDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderCreateGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderPreviewDTO;
+import com.panzhihua.common.model.dtos.shop.PageComOrderListDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.*;
+import com.panzhihua.common.utlis.OrderNoUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
 import com.panzhihua.service_community.service.ComShopOrderService;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @auther lyq
@@ -16,4 +41,492 @@
 @Service
 public class ComShopOrderServiceImpl extends ServiceImpl<ComShopOrderDAO, ComShopOrderDO> implements ComShopOrderService {
 
+    @Resource
+    private ComShopGoodsDAO comShopGoodsDAO;
+    @Resource
+    private ComShopGoodsAttrDAO comShopGoodsAttrDAO;
+    @Resource
+    private ComShopCartDAO comShopCartDAO;
+    @Resource
+    private ComShopStoreDAO comShopStoreDAO;
+    @Resource
+    private ComShopUserAddressDAO comShopUserAddressDAO;
+    @Resource
+    private ComShopOrderOperateDAO comShopOrderOperateDAO;
+    @Resource
+    private ComShopOrderGoodsDAO comShopOrderGoodsDAO;
+
+    /**
+     * 订单预览
+     * @param orderPreviewDTO   请求参数
+     * @return  订单预览数据
+     */
+    @Override
+    public R orderPreview(ComShopOrderPreviewDTO orderPreviewDTO){
+
+        //返回参数
+        ComShopOrderPreviewVO orderPreviewVO = new ComShopOrderPreviewVO();
+        //返回商品列表
+        List<ComShopOrderGoodsVO> orderGoodsList = new ArrayList<>();
+        Long storeId = 0L;
+        BigDecimal orderTotal = BigDecimal.ZERO;
+        Integer orderGoodsTotal = 0;
+        //判断提交方式
+        if(orderPreviewDTO.getSubmitType().equals(ComShopOrderPreviewDTO.submitType.details)){//详情页提交
+            //查询商品信息
+            ComShopGoodsDO goodsDO = comShopGoodsDAO.selectOne(new QueryWrapper<ComShopGoodsDO>().eq("id",orderPreviewDTO.getGoodsId())
+                    .eq("status",ComShopGoodsDO.status.sell).eq("delete_status",ComShopGoodsDO.deleteStatus.no));
+            if(goodsDO == null){
+                return R.fail("商品已下架或已删除");
+            }
+            //设置店铺id
+            storeId = goodsDO.getStoreId();
+
+            //查询商品规格信息
+            ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderPreviewDTO.getGoodsAttrId());
+            if(goodsAttrDO == null){
+                return R.fail("商品规格不存在");
+            }
+
+            orderTotal = goodsAttrDO.getPrice().multiply(BigDecimal.valueOf(orderPreviewDTO.getBuyNum()));
+            orderGoodsTotal = orderPreviewDTO.getBuyNum();
+            //商品信息赋值
+            ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO();
+            orderGoodsVO.setGoodsName(goodsDO.getName());
+            orderGoodsVO.setGoodsId(goodsDO.getId());
+            orderGoodsVO.setGoodsAttrId(goodsAttrDO.getId());
+            orderGoodsVO.setGoodsPic(goodsAttrDO.getAttrPic());
+            orderGoodsVO.setPrice(goodsAttrDO.getPrice());
+            orderGoodsVO.setNum(orderPreviewDTO.getBuyNum());
+            orderGoodsList.add(orderGoodsVO);
+        }else if(orderPreviewDTO.getSubmitType().equals(ComShopOrderPreviewDTO.submitType.cart)){//购物车提交
+            List<ComShopCartDO> cartList = comShopCartDAO.selectBatchIds(orderPreviewDTO.getCartIds());
+            if(cartList.isEmpty()){
+                return R.fail("未找到购物车商品信息");
+            }
+            //设置店铺id
+            storeId = cartList.get(0).getStoreId();
+            //循环遍历购物车商品信息
+            for (ComShopCartDO cartDO:cartList) {
+                //商品信息赋值
+                ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO();
+                orderGoodsVO.setGoodsId(cartDO.getGoodsId());
+                orderGoodsVO.setGoodsAttrId(cartDO.getGoodsAttrId());
+                orderGoodsVO.setGoodsPic(cartDO.getGoodsAttrPic());
+                orderGoodsVO.setNum(cartDO.getAmount());
+                orderGoodsVO.setGoodsName(cartDO.getGoodsName());
+                //查询商品规格
+                ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(cartDO.getGoodsAttrId());
+                if(goodsAttrDO != null){
+                    orderGoodsVO.setPrice(goodsAttrDO.getPrice());
+                }else{
+                    orderGoodsVO.setPrice(BigDecimal.ZERO);
+                }
+                orderTotal = orderTotal.add(orderGoodsVO.getPrice().multiply(BigDecimal.valueOf(cartDO.getAmount())));
+                orderGoodsTotal += cartDO.getAmount();
+                orderGoodsList.add(orderGoodsVO);
+            }
+        }
+        orderPreviewVO.setOrderTotal(orderTotal);
+        orderPreviewVO.setOrderGoodsTotal(orderGoodsTotal);
+        orderPreviewVO.setOrderGoodsList(orderGoodsList);
+
+        //查询店铺信息
+        ComShopStoreDO storeDO = comShopStoreDAO.selectById(storeId);
+        if(storeDO != null){
+            ComShopStoreVO shopStoreVO = new ComShopStoreVO();
+            BeanUtils.copyProperties(storeDO,shopStoreVO);
+            orderPreviewVO.setShopStoreVO(shopStoreVO);
+        }
+
+        //查询默认收货地址
+        //查询上次购买记录的收货地址
+        List<ComShopOrderDO> shopOrders = this.baseMapper.selectList(new QueryWrapper<ComShopOrderDO>()
+                .eq("user_id",orderPreviewDTO.getUserId()).orderByDesc("create_at"));
+        if(shopOrders.isEmpty()){//未查询到用户上一笔订单
+            //查询用户收货地址中的默认地址
+            ComShopUserAddressDO userAddressDO = comShopUserAddressDAO.selectOne(new QueryWrapper<ComShopUserAddressDO>()
+                    .eq("user_id",orderPreviewDTO.getUserId()).eq("is_default",ComShopUserAddressDO.isDefault.yes));
+            if(userAddressDO != null){
+                ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
+                BeanUtils.copyProperties(userAddressDO,userAddressVO);
+                orderPreviewVO.setUserAddressVO(userAddressVO);
+            }else{
+                List<ComShopUserAddressDO> userAddressDOList = comShopUserAddressDAO.selectList(new QueryWrapper<ComShopUserAddressDO>()
+                        .eq("user_id",orderPreviewDTO.getUserId()).orderByDesc("create_at"));
+                if(!userAddressDOList.isEmpty()){
+                    ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
+                    BeanUtils.copyProperties(userAddressDOList.get(0),userAddressVO);
+                    orderPreviewVO.setUserAddressVO(userAddressVO);
+                }
+            }
+        }else{//查询到用户上一笔订单
+            ComShopUserAddressDO userAddressDO = comShopUserAddressDAO.selectById(shopOrders.get(0).getReceiverId());
+            ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
+            BeanUtils.copyProperties(userAddressDO,userAddressVO);
+            orderPreviewVO.setUserAddressVO(userAddressVO);
+        }
+
+        return R.ok(orderPreviewVO);
+    }
+
+    /**
+     * 创建订单
+     * @param orderCreateDTO    创建订单请求参数
+     * @return  创建结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R orderCreate(ComShopOrderCreateDTO orderCreateDTO){
+        //创建返回参数
+        ComShopOrderVO shopOrderVO = new ComShopOrderVO();
+
+        //查询用户收货地址
+        ComShopUserAddressDO userAddressDO = comShopUserAddressDAO.selectById(orderCreateDTO.getReceiverId());
+        if(userAddressDO == null){
+            return R.fail("收货地址不存在");
+        }
+        //用户id
+        Long userId = orderCreateDTO.getUserId();
+        //店铺id
+        Long storeId = 0L;
+        //生成订单号
+        String orderNo = OrderNoUtils.NextOrderNo(userId);
+        //配送方式
+        Integer deliveryType = 0;
+
+        //订单总金额
+        BigDecimal orderTotal = BigDecimal.ZERO;
+
+        //创建订单商品信息
+        List<ComShopOrderGoodsDO> orderGoodsDOList = new ArrayList<>();
+        if(!orderCreateDTO.getOrderGoodsList().isEmpty()){
+            for (ComShopOrderCreateGoodsDTO createGoodsDTO:orderCreateDTO.getOrderGoodsList()) {
+                //查询当前商品信息
+                ComShopGoodsDO goodsDO = comShopGoodsDAO.selectOne(new QueryWrapper<ComShopGoodsDO>()
+                        .eq("id",createGoodsDTO.getGoodsId()).eq("delete_status",ComShopGoodsDO.deleteStatus.no)
+                        .eq("status",ComShopGoodsDO.status.sell));
+                if(goodsDO == null){
+                    log.error("未查询到商品信息,商品已下架活已删除,商品id" + createGoodsDTO.getGoodsId());
+                    continue;
+                }
+                storeId = goodsDO.getStoreId();
+                deliveryType = goodsDO.getDeliveryType();
+                ComShopOrderGoodsDO orderGoodsDO = new ComShopOrderGoodsDO();
+                orderGoodsDO.setGoodsId(goodsDO.getId());
+                orderGoodsDO.setGoodsName(goodsDO.getName());
+                orderGoodsDO.setStoreId(storeId);
+                orderGoodsDO.setUserId(userId);
+                orderGoodsDO.setAmount(createGoodsDTO.getNum());
+                orderGoodsDO.setOrderNo(orderNo);
+                //查询当前商品规格
+                ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(createGoodsDTO.getGoodsAttrId());
+                if(goodsAttrDO == null){
+                    log.error("未查询到商品规格信息,商品id" + createGoodsDTO.getGoodsId() + "商品规格id:" + createGoodsDTO.getGoodsAttrId());
+                    continue;
+                }
+                orderGoodsDO.setGoodsAttrId(goodsAttrDO.getId());
+                orderGoodsDO.setGoodsAttrPrice(goodsAttrDO.getPrice());
+                orderGoodsDO.setGoodsAttrPic(goodsAttrDO.getAttrPic());
+                orderGoodsDOList.add(orderGoodsDO);
+                //将商品金额计算到订单总金额
+                orderTotal = orderTotal.add(orderGoodsDO.getGoodsAttrPrice().multiply(BigDecimal.valueOf(orderGoodsDO.getAmount())));
+            }
+        }
+
+        //如果是购物车提交,需要将购物车内商品移除
+        if(orderCreateDTO.getSubmitType().equals(ComShopOrderCreateDTO.submitType.cart)){
+            comShopCartDAO.deleteBatchIds(orderCreateDTO.getCartIds());
+        }
+
+        //创建订单信息
+        ComShopOrderDO shopOrderDO = new ComShopOrderDO();
+        shopOrderDO.setOrderNo(orderNo);
+        shopOrderDO.setStoreId(storeId);
+        shopOrderDO.setUserId(userId);
+        shopOrderDO.setStatus(ComShopOrderDO.status.dfk);
+        shopOrderDO.setPayStatus(ComShopOrderDO.payStatus.no);
+        shopOrderDO.setReceiverId(orderCreateDTO.getReceiverId());
+        shopOrderDO.setDeleteStatus(ComShopOrderDO.deleteStatus.no);
+        shopOrderDO.setTotalAmount(orderTotal);
+        shopOrderDO.setDiscountAmount(BigDecimal.ZERO);
+        shopOrderDO.setDeliveryType(deliveryType);
+        if(StringUtils.isNotEmpty(orderCreateDTO.getRemark())){
+            shopOrderDO.setRemark(orderCreateDTO.getRemark());
+        }
+        this.baseMapper.insert(shopOrderDO);
+
+        if(!orderGoodsDOList.isEmpty()){
+            orderGoodsDOList.forEach(orderGoods ->{
+                orderGoods.setOrderId(shopOrderDO.getId());
+                comShopOrderGoodsDAO.insert(orderGoods);
+            });
+        }
+
+        //创建订单操作记录
+        ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO();
+        orderOperateDO.setOrderNo(orderNo);
+
+        orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.create);
+        orderOperateDO.setOperationTime(new Date());
+        if(StringUtils.isNotEmpty(orderCreateDTO.getPhone())){
+            orderOperateDO.setOperationContent("用户" + orderCreateDTO.getPhone() + "下单");
+            orderOperateDO.setOperationBy("用户" + orderCreateDTO.getPhone());
+        }else {
+            orderOperateDO.setOperationContent("用户下单");
+            orderOperateDO.setOperationBy("用户");
+        }
+        comShopOrderOperateDAO.insert(orderOperateDO);
+
+        shopOrderVO.setOrderNo(orderNo);
+        shopOrderVO.setOrderTotal(orderTotal);
+        return R.ok(shopOrderVO);
+    }
+
+    /**
+     * 分页查询用户订单列表
+     * @param comOrderListDTO   请求参数
+     * @return  查询结果
+     */
+    @Override
+    public R pageOrderList(PageComOrderListDTO comOrderListDTO){
+        Page page = new Page<>(comOrderListDTO.getPageNum(),comOrderListDTO.getPageSize());
+        IPage<ComShopOrderPageVO> orderPageVOIPage = this.baseMapper.pageOrderList(page,comOrderListDTO);
+        if(!orderPageVOIPage.getRecords().isEmpty()){
+            orderPageVOIPage.getRecords().forEach(orderVo -> {
+                List<ComShopOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
+                //查询订单下商品信息
+                List<ComShopOrderGoodsDO> orderGoodsDOList = comShopOrderGoodsDAO.selectList(new QueryWrapper<ComShopOrderGoodsDO>()
+                        .eq("order_no",orderVo.getOrderNo()));
+                if(!orderGoodsDOList.isEmpty()){
+                    orderGoodsDOList.forEach(orderGoods -> {
+                        ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO();
+                        BeanUtils.copyProperties(orderGoods,orderGoodsVO);
+                        orderGoodsVO.setNum(orderGoods.getAmount());
+                        orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic());
+                        orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice());
+                        orderGoodsVOS.add(orderGoodsVO);
+                    });
+                }
+                orderVo.setOrderGoodsVOList(orderGoodsVOS);
+
+                ComShopStoreVO shopStoreVO = new ComShopStoreVO();
+                //查询店铺信息
+                ComShopStoreDO shopStoreDO = comShopStoreDAO.selectById(orderVo.getStoreId());
+                if(shopStoreDO != null){
+                    BeanUtils.copyProperties(shopStoreDO,shopStoreVO);
+                }
+                orderVo.setShopStoreVO(shopStoreVO);
+            });
+        }
+        return R.ok(orderPageVOIPage);
+    }
+
+    /**
+     * 根据订单id查询订单详情
+     * @param orderId   订单id
+     * @return  订单详情
+     */
+    @Override
+    public R orderDetail(Long orderId) {
+
+        ComShopOrderPageVO orderVO = new ComShopOrderPageVO();
+        //查询订单信息
+        ComShopOrderDO shopOrderDO = this.baseMapper.selectById(orderId);
+        if(shopOrderDO == null){
+            return R.fail("未查询到订单");
+        }
+        BeanUtils.copyProperties(shopOrderDO,orderVO);
+        orderVO.setOrderTotal(shopOrderDO.getTotalAmount());
+
+        ComShopStoreVO shopStoreVO = new ComShopStoreVO();
+        //查询店铺信息
+        ComShopStoreDO shopStoreDO = comShopStoreDAO.selectById(shopOrderDO.getStoreId());
+        if(shopStoreDO != null){
+            BeanUtils.copyProperties(shopStoreDO,shopStoreVO);
+        }
+        orderVO.setShopStoreVO(shopStoreVO);
+
+        List<ComShopOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
+        //查询订单下商品信息
+        List<ComShopOrderGoodsDO> orderGoodsDOList = comShopOrderGoodsDAO.selectList(new QueryWrapper<ComShopOrderGoodsDO>()
+                .eq("order_no",shopOrderDO.getOrderNo()));
+        if(!orderGoodsDOList.isEmpty()){
+            orderGoodsDOList.forEach(orderGoods -> {
+                ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO();
+                BeanUtils.copyProperties(orderGoods,orderGoodsVO);
+                orderGoodsVO.setNum(orderGoods.getAmount());
+                orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic());
+                orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice());
+                orderGoodsVOS.add(orderGoodsVO);
+            });
+        }
+        orderVO.setOrderGoodsVOList(orderGoodsVOS);
+
+        ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
+        //查询用户收货地址
+        ComShopUserAddressDO userAddressDO = comShopUserAddressDAO.selectById(shopOrderDO.getReceiverId());
+        if(userAddressDO != null){
+            BeanUtils.copyProperties(userAddressDO,userAddressVO);
+            orderVO.setUserAddressVO(userAddressVO);
+        }
+
+        return R.ok(orderVO);
+    }
+
+    /**
+     * 根据订单id取消订单
+     * @param orderId   订单id
+     * @param phone 操作用户手机号
+     * @return  取消结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R orderCancel(Long orderId,String phone){
+        //查询订单
+        ComShopOrderDO shopOrderDO = this.baseMapper.selectById(orderId);
+        if(shopOrderDO == null){
+            return R.fail("未查询到订单");
+        }
+        if(!shopOrderDO.getStatus().equals(ComShopOrderDO.status.dfk)){
+            return R.fail("已支付订单不可取消");
+        }
+        //取消订单
+        shopOrderDO.setStatus(ComShopOrderDO.status.yqx);
+        if(this.baseMapper.updateById(shopOrderDO) > 0){
+            //添加订单操作记录
+            ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO();
+            orderOperateDO.setOrderNo(shopOrderDO.getOrderNo());
+            orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.cancel);
+            orderOperateDO.setOperationTime(new Date());
+            if(StringUtils.isNotEmpty(phone)){
+                orderOperateDO.setOperationContent("用户" + phone + "取消订单");
+                orderOperateDO.setOperationBy("用户" + phone);
+            }else {
+                orderOperateDO.setOperationContent("用户取消订单");
+                orderOperateDO.setOperationBy("用户");
+            }
+            comShopOrderOperateDAO.insert(orderOperateDO);
+            return R.ok();
+        }else{
+            return R.fail("取消订单失败");
+        }
+
+    }
+
+    /**
+     * 根据订单id删除订单
+     * @param orderId   订单id
+     * @return  删除结果
+     */
+    @Override
+    public R orderDelete(Long orderId){
+        //查询订单
+        ComShopOrderDO shopOrderDO = this.baseMapper.selectById(orderId);
+        if(shopOrderDO == null){
+            return R.fail("未查询到订单");
+        }
+        if(!shopOrderDO.getStatus().equals(ComShopOrderDO.status.ywc) && !shopOrderDO.getStatus().equals(ComShopOrderDO.status.yqx)){
+            return R.fail("该订单状态不可删除");
+        }
+
+        shopOrderDO.setDeleteStatus(ComShopOrderDO.deleteStatus.yes);
+        if(this.baseMapper.updateById(shopOrderDO) > 0){
+            return R.ok();
+        }else{
+            return R.fail("取消订单失败");
+        }
+    }
+
+    /**
+     * 根据订单id确认收货
+     * @param orderId   订单id
+     * @param phone 手机号
+     * @return  确认结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R orderConfirm(Long orderId, String phone){
+        //查询订单
+        ComShopOrderDO shopOrderDO = this.baseMapper.selectById(orderId);
+        if(shopOrderDO == null){
+            return R.fail("未查询到订单");
+        }
+        if(!shopOrderDO.getStatus().equals(ComShopOrderDO.status.dsh)){
+            return R.fail("该订单状态不可确认收货");
+        }
+        //订单确认收货
+        shopOrderDO.setStatus(ComShopOrderDO.status.ywc);
+        if(this.baseMapper.updateById(shopOrderDO) > 0){
+            //添加订单操作记录
+            ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO();
+            orderOperateDO.setOrderNo(shopOrderDO.getOrderNo());
+            orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.complete);
+            orderOperateDO.setOperationTime(new Date());
+            if(StringUtils.isNotEmpty(phone)){
+                orderOperateDO.setOperationContent("用户" + phone + "确认收货");
+                orderOperateDO.setOperationBy("用户" + phone);
+            }else {
+                orderOperateDO.setOperationContent("用户确认收货");
+                orderOperateDO.setOperationBy("用户");
+            }
+            comShopOrderOperateDAO.insert(orderOperateDO);
+            return R.ok();
+        }else{
+            return R.fail("确认收货失败");
+        }
+    }
+
+    /**
+     * 统计用户订单数量
+     * @param userId    用户id
+     * @return  统计结果
+     */
+    @Override
+    public R orderStatistics(Long userId){
+        OrderStatisticsVO orderStatisticsVO = new OrderStatisticsVO();
+        //待付款订单数
+        Integer paymentNum = 0;
+        //待发货订单数
+        Integer deliverNum = 0;
+        //待收货订单数
+        Integer receivingNum = 0;
+        List<ComShopOrderDO> shopOrderList = this.baseMapper.selectList(new QueryWrapper<ComShopOrderDO>()
+                .eq("user_id",userId).eq("delete_status",ComShopOrderDO.deleteStatus.no));
+        if(!shopOrderList.isEmpty()){
+            for (ComShopOrderDO orderDO:shopOrderList) {
+                if(orderDO.getStatus().equals(ComShopOrderDO.status.dfk)){
+                    paymentNum++;
+                }else if(orderDO.getStatus().equals(ComShopOrderDO.status.dfh)){
+                    deliverNum++;
+                }else if(orderDO.getStatus().equals(ComShopOrderDO.status.dsh)){
+                    receivingNum++;
+                }
+            }
+        }
+        orderStatisticsVO.setPaymentNum(paymentNum);
+        orderStatisticsVO.setDeliverNum(deliverNum);
+        orderStatisticsVO.setReceivingNum(receivingNum);
+        return R.ok(orderStatisticsVO);
+    }
+
+    @Override
+    public R pageShopOrder(PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
+
+        Long pageNum = pageComShopOrderSearchDTO.getPageNum();
+        Long pageSize = pageComShopOrderSearchDTO.getPageSize();
+        PageDTO page = new PageDTO();
+
+        page.setPageNum(pageNum);
+        page.setPageSize(pageSize);
+        if(pageNum==null||new Long(0).equals(pageNum.longValue())){
+            page.setPageNum(1l);
+        }
+        if(pageSize==null||new Long(0).equals(pageSize.longValue())){
+            page.setPageSize(10l);
+        }
+
+        this.baseMapper.pageOrderBy(page, pageComShopOrderSearchDTO);
+        return null;
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java
index 1eec7c5..b5335c5 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java
@@ -7,6 +7,10 @@
 import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.shop.PageShopStoreVO;
+import com.panzhihua.common.model.vos.shop.ComShopStoreVO;
+import com.panzhihua.service_community.dao.ComShopGoodsDAO;
+import com.panzhihua.common.model.vos.shop.ComShopStoreVO;
+import com.panzhihua.common.model.vos.shop.ShopGoodsVO;
 import com.panzhihua.common.model.vos.shop.ShopStoreVO;
 import com.panzhihua.service_community.dao.ComShopStoreDAO;
 import com.panzhihua.service_community.model.dos.ComShopStoreDO;
@@ -14,6 +18,8 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
 
 /**
  * @auther lyq
@@ -23,6 +29,16 @@
 @Slf4j
 @Service
 public class ComShopStoreServiceImpl extends ServiceImpl<ComShopStoreDAO, ComShopStoreDO> implements ComShopStoreService {
+
+    @Resource
+    private ComShopGoodsDAO shopGoodsDAO;
+
+    /**
+     * 查询店铺列表
+     * @param comShopStoreDTO   请求参数
+     * @return  店铺列表
+     */
+
     @Override
     public R pageStoreList(PageComShopStoreDTO pageComShopStoreDTO) {
         Page page = new Page<>(pageComShopStoreDTO.getPageNum(), pageComShopStoreDTO.getPageSize());
@@ -30,6 +46,32 @@
         return R.ok(comShopStoreVOIPage);
     }
 
+    /**
+     * 查询店铺详情
+     * @param comShopStoreDTO   请求参数
+     * @return  店铺详情
+     */
+    @Override
+    public R shopStoreDetail(PageComShopStoreDTO comShopStoreDTO) {
+        //查询店铺
+        ComShopStoreDO storeDO = this.baseMapper.selectById(comShopStoreDTO.getStoreId());
+        if (storeDO == null) {
+            return R.fail(401,"店铺不存在");
+        }
+        if(storeDO.getStatus().equals(ComShopStoreDO.status.no)){
+            return R.fail(402,"店铺已被禁用");
+        }
+        ComShopStoreVO shopStoreVO = new ComShopStoreVO();
+        BeanUtils.copyProperties(storeDO, shopStoreVO);
+
+        //查询店铺下商品信息
+        Page page = new Page<>(comShopStoreDTO.getPageNum(), comShopStoreDTO.getPageSize());
+        shopStoreVO.setGoodsList(shopGoodsDAO.pageShopGoodsByStoreId(page, comShopStoreDTO).getRecords());
+
+        return R.ok(shopStoreVO);
+
+    }
+
     @Override
     public R saveStore(ShopStoreVO storeVO) {
         if (storeVO == null) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopUserAddressServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopUserAddressServiceImpl.java
index 62d80f9..b5bdcd8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopUserAddressServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopUserAddressServiceImpl.java
@@ -1,11 +1,19 @@
 package com.panzhihua.service_community.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.shop.ComShopAddressDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopAddressDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
 import com.panzhihua.service_community.dao.ComShopUserAddressDAO;
 import com.panzhihua.service_community.model.dos.ComShopUserAddressDO;
 import com.panzhihua.service_community.service.ComShopUserAddressService;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @auther lyq
@@ -16,4 +24,97 @@
 @Service
 public class ComShopUserAddressServiceImpl extends ServiceImpl<ComShopUserAddressDAO, ComShopUserAddressDO> implements ComShopUserAddressService {
 
+    /**
+     * 查询用户收获地址列表
+     * @param comShopAddressDTO    请求参数
+     * @return  用户收货地址列表
+     */
+    @Override
+    public R shopUserAddressList(PageComShopAddressDTO comShopAddressDTO){
+        Page page = new Page<>(comShopAddressDTO.getPageNum(),comShopAddressDTO.getPageSize());
+        return R.ok(this.baseMapper.pageUserAddressList(page,comShopAddressDTO.getUserId()));
+    }
+
+    /**
+     * 用户添加收货地址
+     * @param comShopAddressDTO 请求参数
+     * @return  添加结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R shopAddUserAddress(ComShopAddressDTO comShopAddressDTO){
+        ComShopUserAddressDO userAddressDO = new ComShopUserAddressDO();
+        BeanUtils.copyProperties(comShopAddressDTO,userAddressDO);
+
+        //如果新增的地址为默认地址,需要修改原来的默认地址为不默认
+        if(userAddressDO.getIsDefault().equals(ComShopUserAddressDO.isDefault.yes)){
+            ComShopUserAddressDO oldUserAddressDO = this.baseMapper.selectOne(new QueryWrapper<ComShopUserAddressDO>()
+                    .eq("user_id",comShopAddressDTO.getUserId()).eq("is_default",ComShopUserAddressDO.isDefault.yes));
+            if(oldUserAddressDO != null){
+                oldUserAddressDO.setIsDefault(ComShopUserAddressDO.isDefault.no);
+                this.baseMapper.updateById(oldUserAddressDO);
+            }
+        }
+
+        if(this.baseMapper.insert(userAddressDO) > 0){
+            return R.ok();
+        }else{
+            return R.fail("添加收货地址失败");
+        }
+    }
+
+    /**
+     * 用户修改收货地址
+     * @param comShopAddressDTO 请求参数
+     * @return  修改结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R shopEditUserAddress(ComShopAddressDTO comShopAddressDTO){
+
+        //查询用户收货地址
+        ComShopUserAddressDO userAddressDO = this.baseMapper.selectById(comShopAddressDTO.getAddressId());
+        if(userAddressDO == null){
+            return R.fail("未查询到用户收货地址信息");
+        }
+
+        BeanUtils.copyProperties(comShopAddressDTO,userAddressDO);
+        //如果要修改的地址为默认地址,需要修改原来的默认地址为不默认
+        if(comShopAddressDTO.getIsDefault().equals(ComShopUserAddressDO.isDefault.yes)){
+            ComShopUserAddressDO oldUserAddressDO = this.baseMapper.selectOne(new QueryWrapper<ComShopUserAddressDO>()
+                    .eq("user_id",comShopAddressDTO.getUserId()).eq("is_default",ComShopUserAddressDO.isDefault.yes));
+            if(oldUserAddressDO != null){
+                //判断当前要修改的默认地址是否本来就是默认地址
+                if(!oldUserAddressDO.getId().equals(userAddressDO.getId())){
+                    oldUserAddressDO.setIsDefault(ComShopUserAddressDO.isDefault.no);
+                    this.baseMapper.updateById(oldUserAddressDO);
+                }
+            }
+        }
+
+        if(this.baseMapper.updateById(userAddressDO) > 0){
+            return R.ok();
+        }else{
+            return R.fail("添加收货地址失败");
+        }
+    }
+
+    /**
+     * 用户删除收货地址
+     * @param addressId 收货地址id
+     * @return  删除结果
+     */
+    public R shopDelUserAddress(Long addressId){
+        //查询用户收货地址
+        ComShopUserAddressDO userAddressDO = this.baseMapper.selectById(addressId);
+        if(userAddressDO == null){
+            return R.fail("未查询到用户收货地址信息");
+        }
+        if(this.baseMapper.deleteById(addressId) > 0){
+            return R.ok();
+        }else{
+            return R.fail("删除收货地址失败");
+        }
+    }
+
 }

--
Gitblit v1.7.1