package com.panzhihua.applets.api; import java.util.List; import javax.annotation.Resource; import org.springframework.web.bind.annotation.*; import com.alibaba.fastjson.JSONObject; import com.panzhihua.applets.config.WxMaProperties; 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.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; /** * @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; @Resource private WxMaProperties properties; @ApiOperation(value = "分页查询店铺", response = PageShopStoreVO.class) @PostMapping("pageshopstore") public R pageShopStore(@RequestBody PageComShopStoreDTO comShopStoreDTO) { PageComShopSysConfDTO pageComShopSysConfDTO = new PageComShopSysConfDTO(); R conf = communityService.pageShopSysConf(pageComShopSysConfDTO); if (R.isOk(conf) && conf.getData() != null) { ComShopSysConfVO comShopSysConfVO = JSONObject.parseObject(JSONObject.toJSONString(conf.getData()), ComShopSysConfVO.class); if ("1".equals(comShopSysConfVO.getVal()) && "1".equals(comShopSysConfVO.getEnabled())) { return R.ok(); } } return communityService.pageShopStore(comShopStoreDTO); } @ApiOperation(value = "查询店铺详情", response = PageShopStoreVO.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("shopCartUserTotal") public R shopCartUserTotal() { Long userId = this.getUserId(); if (userId == null) { return R.fail("请重新登陆"); } PageComShopSysConfDTO pageComShopSysConfDTO = new PageComShopSysConfDTO(); R conf = communityService.pageShopSysConf(pageComShopSysConfDTO); if (R.isOk(conf) && conf.getData() != null) { ComShopSysConfVO comShopSysConfVO = JSONObject.parseObject(JSONObject.toJSONString(conf.getData()), ComShopSysConfVO.class); if ("1".equals(comShopSysConfVO.getVal()) && "1".equals(comShopSysConfVO.getEnabled())) { return R.ok(0); } } return communityService.shopCartUserTotal(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 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()); orderCreateDTO.setOpenId(loginUserInfo.getOpenid()); 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()); } @ApiOperation(value = "小程序微信调起支付") @PostMapping("wxpay") public R wxPay(@RequestBody OrderPayDTO orderPayDTO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); if (loginUserInfo == null) { return R.fail("请重新登陆"); } orderPayDTO.setOpenId(loginUserInfo.getOpenid()); return communityService.wxPay(orderPayDTO); } }