springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopApi.java
New file @@ -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()); } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopAddressDTO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopCartDTO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopEditNubCartDTO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopGoodsDTO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateDTO.java
New file @@ -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; } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateGoodsDTO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderPreviewDTO.java
New file @@ -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; } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderQueryDTO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderListDTO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopAddressDTO.java
New file @@ -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; } 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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartListVO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartStoreVO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartVO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsAttrVO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsVO.java
New file @@ -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; } 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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPageVO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPreviewVO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderVO.java
@@ -1,82 +1,19 @@ 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 ComShopOrderVO implements Serializable { @ApiModel("订单创建返回参数") public class ComShopOrderVO { @ApiModelProperty("订单id") private Long id; @ApiModelProperty("店铺id") private Long storeId; @ApiModelProperty("用户id") private Long userId; @ApiModelProperty("订单号") @ApiModelProperty(value = "订单号") private String orderNo; @ApiModelProperty("支付单号") private String payNo; @ApiModelProperty(value = "订单金额") private BigDecimal orderTotal; @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; } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopStoreVO.java
@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * @auther lyq @@ -26,4 +28,16 @@ @ApiModelProperty("配送方式(1.商家配送 2.快递物流)") private Integer deliveryType; @ApiModelProperty("店铺详情") private String storeDetail; @ApiModelProperty("店铺描述") private String storeDescribe; @ApiModelProperty("店铺销量") private Integer sale; @ApiModelProperty("店内商品列表") private List<ComShopGoodsVO> goodsList; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopUserAddressVO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/OrderStatisticsVO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -6,6 +6,7 @@ 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.PageComShopStoreDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.SystemmanagementConfigVO; @@ -1818,4 +1819,163 @@ */ @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); } 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(); } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/OrderNoUtils.java
New file @@ -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()); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java
@@ -1,11 +1,13 @@ package com.panzhihua.service_community.api; 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.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; 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.ComShopOperLogService; @@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; import javax.validation.constraints.NotNull; @Slf4j @@ -27,6 +30,14 @@ private ComShopStoreService comShopStoreService; @Resource private ComShopOperLogService comShopOperLogService; @Resource private ComShopOrderService comShopOrderService; @Resource private ComShopGoodsService comShopGoodsService; @Resource private ComShopCartService comShopCartService; @Resource private ComShopUserAddressService comShopUserAddressService; @Resource private ComShopOrderService comShopOrderService; @@ -117,4 +128,194 @@ 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); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsDAO.java
@@ -3,10 +3,17 @@ 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.ComShopStoreVO; import com.panzhihua.service_community.model.dos.ComShopGoodsDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; /** @@ -20,4 +27,44 @@ @Select("select id,type_id,name,store_id,goods_pic,images,status,sale,original_price,price,unit,order,stock,details,remark,goods_describe,delivery_type,delete_status,create_at,update_at from com_shop_store") IPage<ComShopStoreVO> pageShopGoods(Page page, 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 !=""'>" + " 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); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderDAO.java
@@ -2,12 +2,19 @@ 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; /** @@ -19,6 +26,16 @@ 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" + 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); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopGoodsDO.java
@@ -79,6 +79,7 @@ /** * 商品排序 */ @TableField("`order`") private Integer order; /** @@ -123,6 +124,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{" + 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{" + 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{" + 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{" + 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; } } 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); } 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.ShopGoodsVO; @@ -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 shopGoodsVO * @return springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderService.java
@@ -3,6 +3,10 @@ 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; /** @@ -18,4 +22,62 @@ * @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); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopStoreService.java
@@ -23,6 +23,13 @@ R pageStoreList(PageComShopStoreDTO pageComShopStoreDTO); /** * 根据店铺id查询店铺详情 * @param comShopStoreDTO 请求参数 * @return 店铺详情 */ R shopStoreDetail(PageComShopStoreDTO comShopStoreDTO); /** * 保存店铺 * @param storeVO * @return 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); } 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("修改失败"); } } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java
@@ -1,20 +1,33 @@ 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.core.conditions.query.LambdaQueryWrapper; 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.shop.PageComShopGoodsDTO; import com.panzhihua.common.model.dtos.shop.ComShopGoodsDTO; import com.panzhihua.common.model.vos.R; 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.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; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; /** * @auther lyq @@ -43,6 +56,61 @@ return R.ok(comShopStoreVOIPage); } @Resource private ComShopGoodsAttrDAO shopGoodsAttrDAO; @Resource private ComShopStoreDAO shopStoreDAO; /** * 分页查询商品列表 * @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); } @Override public R editShopGoods(Long id, ShopGoodsVO shopGoodsVO) { if (shopGoodsVO == null) { springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java
@@ -1,15 +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 @@ -20,6 +41,475 @@ @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) { springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java
@@ -8,6 +8,8 @@ import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO; import com.panzhihua.common.model.vos.R; 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; @@ -18,6 +20,8 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; /** * @auther lyq * @create 2021-04-14 15:03:55 @@ -26,11 +30,45 @@ @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()); IPage<ComShopStoreVO> comShopStoreVOIPage = this.baseMapper.pageShopStore(page, pageComShopStoreDTO); return R.ok(comShopStoreVOIPage); public R pageStoreList(PageComShopStoreDTO comShopStoreDTO){ Page page = new Page<>(comShopStoreDTO.getPageNum(),comShopStoreDTO.getPageSize()); return R.ok(this.baseMapper.pageShopStore(page,comShopStoreDTO)); } /** * 查询店铺详情 * @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 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("删除收货地址失败"); } } }