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/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); } } 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); } 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; } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/ShopOperLog.java
New file @@ -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; } 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/PageComShopOrderSearchDTO.java
New file @@ -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; } 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/ComShopOrderSearchVO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderVO.java
New file @@ -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; } 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/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; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ShopOperLogVO.java
New file @@ -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; } 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); } 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); } 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,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); } 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 !=""'>" + " 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/ComShopOperLogDAO.java
New file @@ -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> { } 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() != ""'>" + " and name like concat(#{comMngVolunteerMngVO.name},'%') \n" + " </if> " + "<if test='comMngVolunteerMngVO.phone != null and comMngVolunteerMngVO.phone.trim() != ""'>" + "AND phone like concat(#{comMngVolunteerMngVO.phone},'%') " + " </if> " + " order by integral desc,create_at desc"+ "</script>") IPage<ComShopOrderVO> pageOrderBy(PageDTO page, PageComShopOrderSearchDTO pageComShopOrderSearchDTO); } 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
@@ -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{" + springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOperLogDO.java
New file @@ -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; } 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.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 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOperLogService.java
New file @@ -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); } 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); } 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 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
@@ -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); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOperLogServiceImpl.java
New file @@ -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); } } 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; } } 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) { 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("删除收货地址失败"); } } }