package com.panzhihua.applets.api; import cn.hutool.core.util.StrUtil; import com.panzhihua.applets.weixin.CheckService; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO; import com.panzhihua.common.model.dtos.community.convenient.PageConvenientServiceCategoryDTO; 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.community.convenient.ConvenientElevatingPointOrderVO; import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO; import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO; import com.panzhihua.common.model.vos.community.convenient.ConvenientServiceCategoryVO; import com.panzhihua.common.model.vos.shop.*; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.validated.AddGroup; import com.panzhihua.common.validated.PutGroup; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; /** * @auther yh * @create 2022-11-08 17:25:45 * @describe 商城模块API */ @Slf4j @RestController @RequestMapping("/shopFlower/") @Api(tags = {"花城商城服务"}) public class ShopFlowerApi extends BaseController { @Resource private CommunityService communityService; @Resource private CheckService checkService; @ApiOperation(value = "查询便民服务商家详情", response = ConvenientMerchantVO.class) @GetMapping("/merchant/getMerchantByUserId") public R getMerchant(@RequestParam("userId") Long userId) { return communityService.getMerchantByUserId(userId); } @ApiOperation(value = "编辑便民服务商家") @PutMapping("/merchant/put") public R putMerchant(@RequestBody @Validated(PutGroup.class) ConvenientMerchantDTO convenientMerchantDTO) { convenientMerchantDTO.setUpdatedBy(this.getUserId()); return communityService.putMerchant(convenientMerchantDTO); } @ApiOperation(value = "分页查询商品列表", response = ComShopFlowerGoodsVO.class) @PostMapping("pageShopGoods") public R pageShopGoods(@RequestBody ComShopFlowerGoodsDTO comShopGoodsDTO) { return communityService.pageShopFlowerGoodsByApp(comShopGoodsDTO); } @ApiOperation(value = "查询商品详情", response = ComShopFlowerGoodsVO.class) @GetMapping("shopGoodsDetail") @ApiImplicitParam(name = "goodsId", value = "商品id", required = true) public R shopGoodsDetail(@RequestParam("goodsId") Long goodsId) { return communityService.shopFlowerGoodsDetail(goodsId); } @ApiOperation(value = "删除商品") @DeleteMapping("/goods/delete") public R deleteShopGoods(@RequestParam("goodsId") Long goodsId) { return communityService.deleteFlowerShopGoods(goodsId); } @ApiOperation(value = "商品上下架") @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "商品Id"), @ApiImplicitParam(name = "status", value = "1.上架 2.下架 ")}) @GetMapping("/goods/changeStatus") public R changeStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) { return communityService.changeFlowerStatus(id, status); } @ApiOperation(value = "编辑商品") @PostMapping("/goods/edit/{id}") public R editShopGoods(@PathVariable("id") Long id, @RequestBody @Validated(AddGroup.class) AddShopFlowerGoodsVO addShopGoodsVO) { return communityService.editFlowerShopGoods(id, addShopGoodsVO); } @ApiOperation(value = "新增商品") @PostMapping("/goods/save") public R saveShopGoods(@RequestBody @Validated(AddGroup.class) AddShopFlowerGoodsVO addShopGoodsVO) { return communityService.saveFlowerShopGoods(addShopGoodsVO); } @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.shopFlowerUserAddressList(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.shopFlowerAddUserAddress(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.shopFlowerEditUserAddress(comShopAddressDTO); } @ApiOperation(value = "删除用户收货地址列表") @DeleteMapping("shopDelUserAddress") @ApiImplicitParam(name = "addressId", value = "收货地址id", required = true) public R shopDelUserAddress(@RequestParam("addressId") Long addressId) { return communityService.shopFlowerDelUserAddress(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.orderPreviewFlower(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.orderCreateFlower(orderCreateDTO); } @ApiOperation(value = "分页查询订单列表", response = ComShopFlowerOrderPageVO.class) @PostMapping("pageOrderList") public R pageOrderList(@RequestBody PageComFlowerOrderListDTO comOrderListDTO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); if (loginUserInfo == null) { return R.fail("请重新登陆"); } comOrderListDTO.setUserId(loginUserInfo.getUserId()); return communityService.pageOrderListFlower(comOrderListDTO); } @ApiOperation(value = "查询订单详情", response = ComShopFlowerOrderPageVO.class) @GetMapping("orderDetail") @ApiImplicitParam(name = "orderId", value = "订单id", required = true) public R orderDetail(@RequestParam("orderId") Long orderId) { return communityService.orderDetailFlower(orderId,null); } @ApiOperation(value = "自提点查询订单详情", response = ComShopFlowerOrderPageVO.class) @GetMapping("pointOrderDetail") @ApiImplicitParam(name = "orderId", value = "订单id", required = true) public R pointOrderDetail(@RequestParam("orderId") Long orderId) { String phone = this.getLoginUserInfo().getPhone(); return communityService.orderDetailFlower(orderId,phone); } @ApiOperation(value = "取消订单") @PostMapping("orderCancel") public R orderCancel(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); if (loginUserInfo == null) { return R.fail("请重新登陆"); } return communityService.orderCancelFlower(comShopOrderQueryDTO); } @ApiOperation(value = "删除订单") @DeleteMapping("orderDelete") @ApiImplicitParam(name = "orderId", value = "订单id", required = true) public R orderDelete(@RequestParam("orderId") Long orderId) { return communityService.orderDeleteFlower(orderId); } @ApiOperation(value = "订单确认收货") @PostMapping("orderConfirm") public R orderConfirm(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); if (loginUserInfo == null) { return R.fail("请重新登陆"); } return communityService.orderConfirmFlower(comShopOrderQueryDTO); } @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.wxPayFlower(orderPayDTO); } /** * 获取当前商铺周围的自提点信息以及距离手机距离 * * @param merchantId * @return */ @ApiOperation(value = "获取自提点",response = ConvenientElevatingPointVO.class) @ApiImplicitParams({@ApiImplicitParam(name = "merchantId", value = "商家Id", required = true), @ApiImplicitParam(name = "lat", value = "经度", required = true), @ApiImplicitParam(name = "lng", value = "纬度", required = true)}) @GetMapping("/point/findPointByMerchantId") public R findPointByMerchantId(@RequestParam("merchantId") Long merchantId, @RequestParam("lat") String lat, @RequestParam("lng") String lng) { return communityService.findPointByMerchantId(merchantId, lat, lng); } /** * 获取商家周围 n(km)的自提点数量 * * @param distance * @return */ @ApiOperation(value = "获取商家周围 n(km)的自提点数量") @ApiImplicitParams({@ApiImplicitParam(name = "distance", value = "距离", required = false), @ApiImplicitParam(name = "lat", value = "经度", required = true), @ApiImplicitParam(name = "lng", value = "纬度", required = true)}) @GetMapping("/point/findPointNumByDistance") public R findPointNumByDistance(@RequestParam(value = "distance",required = false) Integer distance, @RequestParam("lat") String lat, @RequestParam("lng") String lng) { if (null == distance){ return R.ok(0); } return communityService.findPointNumByDistance(distance, lat, lng); } /** * 保存评价 * * @param comShopFlowerEvaluateDTO * @return */ @ApiOperation(value = "保存评价") @PostMapping("/saveEvaluate") public R saveEvaluate(@RequestBody ComShopFlowerEvaluateDTO comShopFlowerEvaluateDTO) { String evaluateContent = comShopFlowerEvaluateDTO.getEvaluateContent(); if (StrUtil.isNotBlank(evaluateContent)) { String result = checkService.checkMessageBy(evaluateContent, this.getLoginUserInfo().getOpenid(), this.getAppId()); if (StrUtil.isNotBlank(result)) { return R.fail(501, "填写内容存在 " + result + " 违规信息"); } } comShopFlowerEvaluateDTO.setUserId(this.getUserId()); return communityService.saveEvaluate(comShopFlowerEvaluateDTO); } /** * 分页查询评价 * * @param pageComShopFlowerEvaluateDTO * @return */ @ApiOperation(value = "分页查询评价", response = ComShopFlowerEvaluateVO.class) @PostMapping("/pageEvaluate") public R pageEvaluate(@RequestBody PageComShopFlowerEvaluateDTO pageComShopFlowerEvaluateDTO) { return communityService.pageEvaluate(pageComShopFlowerEvaluateDTO); } /** * 评价详情 * * @param id * @return */ @ApiOperation(value = "评价详情") @GetMapping("/detailEvaluate") public R detailEvaluate(@RequestParam("id") Long id) { return communityService.detailEvaluate(id); } /** * 删除评价 * * @param id * @return */ @ApiOperation(value = "删除评价") @DeleteMapping("deleteEvaluate") public R deleteEvaluate(@RequestParam("id") Long id) { return communityService.deleteEvaluate(id); } /** * 取货码 * * @param orderId * @return */ @ApiOperation(value = "取货码") @GetMapping("getQRCode") @ApiImplicitParam(name = "orderId", value = "订单id", required = true) public R getQRCode(@RequestParam("orderId") Long orderId) { return communityService.getQRCode(orderId); } /** * 保存配送单 * * @param comShopFlowerOrderDeliveryDTO */ @PostMapping("saveDelivery") @ApiOperation(value = "保存配送单") public R saveDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) { return communityService.saveDelivery(comShopFlowerOrderDeliveryDTO); } /** * 更新配送单 * * @param comShopFlowerOrderDeliveryDTO */ @PostMapping("updateDelivery") @ApiOperation(value = "更新配送单") public R updateDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) { return communityService.updateDelivery(comShopFlowerOrderDeliveryDTO); } /** * 已配送、已送达 分页查询 * * @param pageComFlowerOrderDeliveryDTO * @return */ @PostMapping("pageDelivery") @ApiOperation(value = "已配送、已送达 分页查询", response = ComShopFlowerOrderDeliveryVO.class) public R pageDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) { return communityService.pageDelivery(pageComFlowerOrderDeliveryDTO); } /** * 未配送 分页查询 * * @param pageComFlowerOrderDeliveryDTO * @return */ @ApiOperation(value = "未配送 分页查询", response = ConvenientElevatingPointVO.class) @PostMapping("pageNoDelivery") public R pageNoDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) { return communityService.pageNoDelivery(pageComFlowerOrderDeliveryDTO); } /** * 未配送-开始配送-订单列表 * * @param pageComFlowerOrderListDTO * @return */ @ApiOperation(value = "未配送-开始配送-订单列表", response = ConvenientElevatingPointOrderVO.class) @PostMapping("pageNoDeliveryOrderList") public R pageNoDeliveryOrderList(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO) { return communityService.pageNoDeliveryOrderList(pageComFlowerOrderListDTO); } /** * 根据商家id查询商家的订单 * * @param pageComFlowerOrderListDTO * @return */ @ApiOperation(value = "根据商家id分页查询商家的订单", response = ComShopFlowerOrderStoreListVO.class) @PostMapping("pageOrderByStoreId") public R pageOrderByStoreId(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO) { return communityService.pageOrderByStoreId(pageComFlowerOrderListDTO); } /** * 查询我的店铺各类统计数据 * * @param storeId * @return */ @ApiOperation(value = "查询我的店铺各类统计数据") @GetMapping("/selectCountByStoreId") public R selectCountByUserId(Long storeId) { return communityService.selectCountByUserId(storeId); } /** * 创建退款订单 * * @param comShopFlowerRefundOrderDTO * @return */ @PostMapping("createRefundOrder") @ApiOperation(value = "创建退款订单") public R createRefundOrder(@RequestBody ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO) { comShopFlowerRefundOrderDTO.setUserId(this.getUserId()); return communityService.createRefundOrder(comShopFlowerRefundOrderDTO); } /** * 用户 分页查询退款订单 * * @param pageComOrderRefundDTO * @return */ @PostMapping("pageRefundOrder") @ApiOperation(value = "退款订单分页查询 用户", response = ComShopFlowerRefundOrderVO.class) public R pageRefundOrder(@RequestBody PageComOrderRefundDTO pageComOrderRefundDTO) { pageComOrderRefundDTO.setUserId(this.getUserId()); return communityService.pageRefundOrder(pageComOrderRefundDTO); } /** * 商家 分页查询退款订单 * * @param pageComOrderRefundDTO * @return */ @PostMapping("pageRefundOrderStore") @ApiOperation(value = "退款订单分页查询 商家", response = ComShopFlowerRefundOrderVO.class) public R pageRefundOrderStore(@RequestBody PageComOrderRefundDTO pageComOrderRefundDTO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); pageComOrderRefundDTO.setStoreId(loginUserInfo.getStoreIdId()); return communityService.pageRefundOrder(pageComOrderRefundDTO); } /** * 修改退款订单 * * @param comShopFlowerRefundOrderDTO * @return */ @PostMapping("updateRefundOrder") @ApiOperation(value = "修改退款订单") public R updateRefundOrder(@RequestBody ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO) { return communityService.updateRefundOrder(comShopFlowerRefundOrderDTO); } /** * 商家后台-退款申请统计 * * @param storeId * @return */ @GetMapping("selectCountGroupStatus") @ApiOperation(value = "商家后台-退款申请统计") public R selectCountGroupStatus(Long storeId) { return communityService.selectCountGroupStatus(storeId); } @ApiOperation(value = "商品分类") @GetMapping("/goodsCategory/getAllGoodsCategories") public R getAllGoodsCategories() { return communityService.getAllGoodsCategories(); } @ApiOperation(value = "分页查询便民服务分类", response = ConvenientServiceCategoryVO.class) @PostMapping("/service-category/page") public R pageServiceCategory(@RequestBody PageConvenientServiceCategoryDTO pageConvenientServiceCategoryDTO) { pageConvenientServiceCategoryDTO.setAreaCode(this.getAreaCode()); return communityService.pageServiceCategory(pageConvenientServiceCategoryDTO); } /** * 新增商品浏览量 * * @param goodsId * @return */ @GetMapping("incrGoodsView") @ApiOperation(value = "新增商品浏览量") public R incrGoodsView(@RequestParam("goodsId") Long goodsId) { return communityService.incrGoodsView(goodsId); } @ApiOperation(value = "增加商家咨询量") @GetMapping("/merchant/incr-consult") public R incrMerchantConsult(@RequestParam("merchantId") Long merchantId) { return communityService.consultMerchant(merchantId); } @ApiOperation(value = "增加商家浏览量") @GetMapping("/merchant/incr-view") public R incrMerchantView(@RequestParam("merchantId") Long merchantId) { return communityService.incrMerchantView(merchantId); } @ApiOperation(value = "出入账分页", response = ComShopFlowerOrderPayVO.class) @PostMapping("pageOrderPay") public R pageOrderPay(@RequestBody PageComShopFlowerOrderPayDTO pageComShopFlowerOrderPayDTO) { return communityService.pageOrderPay(pageComShopFlowerOrderPayDTO); } /** * 获取商家的营业额和可结算金额 * @param storeId * @return */ @ApiOperation(value = "获取商家的营业额和可结算金额") @GetMapping("getQuota") public R getQuota(@RequestParam("storeId") Long storeId){ return communityService.getQuota(storeId); } /** * 取消退款 * @param id * @return */ @ApiOperation(value = "取消退款") @GetMapping("refundOrderCancel") public R refundOrderCancel(@RequestParam("id") Long id){ return communityService.refundOrderCancel(id); } /** * 退款订单详情 * @param id * @return */ @ApiOperation(value = "退款订单详情",response = ComShopFlowerRefundOrderVO.class) @GetMapping("refundOrderDetail") public R refundOrderDetail(Long id){ return communityService.refundOrderDetail(id); } /** * 清点商品 确认送达详情 * @param pageComFlowerOrderListDTO * @return */ @PostMapping("pageOrderByDeliveryNo") @ApiOperation(value = "清点商品 确认送达详情",response = ComShopFlowerOrderDeliveryNoListVO.class) public R pageOrderByDeliveryNo(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO){ return communityService.pageOrderByDeliveryNo(pageComFlowerOrderListDTO); } /** * 订单发货 * * @param orderShipDTO 发货信息 * @return 发货结果 */ @PostMapping("/shipOrderFlower") @ApiOperation(value = "订单发货") public R shipOrderFlower(@RequestBody ComShopOrderShipDTO orderShipDTO) { orderShipDTO.setOperUserAccount(this.getLoginUserInfo().getAccount()); return communityService.shipOrderFlower(orderShipDTO); } }