101captain
2021-11-09 e7f03acfa5ee4ad4fd6d1ee9e9ae9a5655488f6d
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java
@@ -1,15 +1,25 @@
package com.panzhihua.service_community.api;
import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.service.ComShopStoreService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.panzhihua.common.model.dtos.PageDTO;
import com.panzhihua.common.model.dtos.shop.*;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.shop.AddShopGoodsVO;
import com.panzhihua.common.model.vos.shop.ComShopSysConfVO;
import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
import com.panzhihua.common.model.vos.shop.ShopStoreVO;
import com.panzhihua.service_community.model.dos.ComShopSysConfDO;
import com.panzhihua.service_community.service.*;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@RestController
@@ -18,15 +28,612 @@
    @Resource
    private ComShopStoreService comShopStoreService;
    @Resource
    private ComShopGoodsService comShopGoodsService;
    @Resource
    private ComShopOperLogService comShopOperLogService;
    @Resource
    private ComShopOrderService comShopOrderService;
    @Resource
    private ComShopCartService comShopCartService;
    @Resource
    private ComShopUserAddressService comShopUserAddressService;
    @Resource
    private ComShopSysConfService comShopSysConfService;
    /**
     * 店铺列表-分页查询
     * @param pageComShopStoreDTO 查询参数
     * @return ComShopStoreVO
     *
     * @param pageComShopStoreDTO
     *            查询参数
     * @return PageShopStoreVO
     */
    @PostMapping("pageShopStore")
    public R pageShopStore(@RequestBody PageComShopStoreDTO pageComShopStoreDTO){
    @PostMapping("/pageShopStore")
    public R pageShopStore(@RequestBody PageComShopStoreDTO pageComShopStoreDTO) {
        return comShopStoreService.pageStoreList(pageComShopStoreDTO);
    }
    /**
     * 保存店铺
     *
     * @param storeVO
     * @return
     */
    @PostMapping("/saveStore")
    public R saveStore(@RequestBody ShopStoreVO storeVO) {
        return comShopStoreService.saveStore(storeVO);
    }
    /**
     * 新增店铺
     *
     * @param storeVO
     *            店铺信息
     * @return 新增结果
     */
    @PostMapping("/addStore")
    public R addStore(@RequestBody ShopStoreVO storeVO) {
        return comShopStoreService.addStore(storeVO);
    }
    /**
     * 编辑店铺、启用、禁用
     *
     * @param storeVO
     * @param id
     *            商铺Id
     * @return
     */
    @PostMapping("/editStore/{id}")
    public R editStore(@RequestBody ShopStoreVO storeVO, @PathVariable("id") Long id) {
        return comShopStoreService.editStore(id, storeVO);
    }
    /**
     * 删除店铺
     *
     * @param id
     * @return
     */
    @PostMapping("/deleteStore")
    public R deleteStore(@RequestBody Long[] id) {
        return comShopStoreService.deleteStore(id);
    }
    /**
     * 获取详情
     *
     * @param id
     * @return
     */
    @GetMapping("/getStoreInfo")
    public R getOneInfo(@RequestParam("id") Long id) {
        return comShopStoreService.getOneInfo(id);
    }
    /**
     * 获取用户商铺详细
     *
     * @param userId
     *            用户ID
     * @return
     */
    @GetMapping("/getUserStoreInfo")
    public R getUserStoreInfo(@RequestParam("userId") Long userId) {
        return comShopStoreService.getUserStoreInfo(userId);
    }
    /**
     * 获取用户商铺详细
     *
     * @param account
     *            用户账号
     * @return
     */
    @GetMapping("/getUserStoreInfoByAccount")
    public R<ShopStoreVO> getUserStoreInfoByAccount(@RequestParam("account") String account) {
        return comShopStoreService.getUserStoreInfo(account);
    }
    /**
     * 添加商城后台日志
     *
     * @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 userId
     *            用户id
     * @return 用户购物车商品数量
     */
    @PostMapping("shopCartUserTotal")
    public R shopCartUserTotal(@RequestParam("userId") Long userId) {
        return comShopCartService.shopCartUserTotal(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);
    }
    /**
     * 根据订单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);
    }
    /**
     * 商品列表-分页查询
     *
     * @param pageComShopGoodsDTO
     *            查询参数
     * @return PageShopStoreVO
     */
    @PostMapping("pageGoods")
    public R pageShopStore(@RequestBody PageComShopGoodsDTO pageComShopGoodsDTO) {
        return comShopGoodsService.pageGoodsList(pageComShopGoodsDTO);
    }
    /**
     * 新增商品
     *
     * @param addShopGoodsVO
     * @return
     */
    @PostMapping("saveShopGoods")
    public R saveStore(@RequestBody AddShopGoodsVO addShopGoodsVO) {
        return comShopGoodsService.saveShopGoods(addShopGoodsVO);
    }
    /**
     * 编辑商品
     *
     * @param addShopGoodsVO
     * @param id
     *            商铺Id
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    @PostMapping("editShopGoods/{id}")
    public R editShopGoods(@PathVariable("id") Long id, @RequestBody AddShopGoodsVO addShopGoodsVO) {
        return comShopGoodsService.editShopGoods(id, addShopGoodsVO);
    }
    /**
     * 删除商品
     *
     * @param id
     * @return
     */
    @PostMapping("deleteShopGoods")
    public R deleteShopGoods(@RequestBody Long[] id) {
        return comShopGoodsService.deleteShopGoods(id);
    }
    /**
     * 修改商品状态
     *
     * @param id
     * @return
     */
    @GetMapping("changeShopGoodsStatus")
    public R changeStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) {
        return comShopGoodsService.changeStatus(id, status);
    }
    /**
     * 商家资金的订单详情
     *
     * @param id
     * @return
     */
    @GetMapping("capitalDetailByStore")
    public R capitalDetailByStore(@RequestParam("id") Long id) {
        return comShopOrderService.capitalDetailByStore(id);
    }
    /**
     * 订单发货
     *
     * @param orderShipDTO
     *            发货信息
     * @return 发货结果
     */
    @PostMapping("/shipOrder")
    R shipOrder(@RequestBody ComShopOrderShipDTO orderShipDTO) {
        return comShopOrderService.shipOrder(orderShipDTO);
    }
    /**
     * 订单配送
     *
     * @param deliverDTO
     *            订单ID
     * @return 配送结果
     */
    @PostMapping("/deliverOrder")
    R deliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO) {
        return comShopOrderService.deliverOrder(deliverDTO);
    }
    /**
     * 订单配送
     *
     * @param deliverDTO
     *            订单ID
     * @return 配送完成
     */
    @PostMapping("/finishDeliverOrder")
    R finishDeliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO) {
        return comShopOrderService.finishDeliverOrder(deliverDTO);
    }
    /**
     * 订单导出信息
     *
     * @param comShopOrderExportDTO
     *            订单导出信息
     * @return 订单导出信息
     */
    @PostMapping("/shopOrderExportData")
    R shopOrderExportData(@RequestBody ComShopOrderExportDTO comShopOrderExportDTO) {
        return comShopOrderService.shopOrderExportData(comShopOrderExportDTO);
    }
    /**
     * 资金管理导出信息
     *
     * @param comShopFundsExportDTO
     *            资金管理导出信息
     * @return 资金管理导出信息
     */
    @PostMapping("/shopOrderFundsExportData")
    R shopOrderFundsExportData(@RequestBody ComShopFundsExportDTO comShopFundsExportDTO) {
        return comShopOrderService.shopOrderFundsExportData(comShopFundsExportDTO);
    }
    /**
     * 用户资金统计信息
     *
     * @param userId
     *            用户ID
     * @return 统计信息
     */
    @GetMapping("/getFundsStat")
    R getFundsStat(@RequestParam("userId") Long userId) {
        return comShopOrderService.getFundsStat(userId);
    }
    /**
     * 店铺资金统计信息
     *
     * @param pageComShopFundsSearchDTO
     *            店铺资金
     * @return 店铺资金统计信息
     */
    @PostMapping("/pageShopFunds")
    R pageShopFunds(@RequestBody PageComShopFundsSearchDTO pageComShopFundsSearchDTO) {
        return comShopOrderService.pageShopFunds(pageComShopFundsSearchDTO);
    }
    /**
     * 微信支付订单回调
     *
     * @param wxPayNotifyOrderDTO
     *            订单支付回调参数
     */
    @PostMapping("/wxOrderPayNotify")
    public void wxOrderPayNotify(@RequestBody WxPayNotifyOrderDTO wxPayNotifyOrderDTO) {
        comShopOrderService.wxOrderPayNotify(wxPayNotifyOrderDTO);
    }
    /**
     * 点击去支付订单
     *
     * @param orderPayDTO
     *            请求参数
     * @return 支付对象
     */
    @PostMapping("/wxPay")
    public R wxPay(@RequestBody OrderPayDTO orderPayDTO) {
        return comShopOrderService.wxPay(orderPayDTO);
    }
    /**
     * 商城系统配置
     *
     * @param comShopSysConfDTO
     * @return
     */
    @PostMapping("/conf/edit")
    R editShopSysConf(@RequestBody ComShopSysConfDTO comShopSysConfDTO) {
        ComShopSysConfDO comShopSysConfDO = comShopSysConfService.getBaseMapper().selectById(comShopSysConfDTO.getId());
        switch (comShopSysConfDTO.getHidden()) {
            case 0:
                comShopSysConfDO.setVal("0");
                comShopSysConfDO.setEnabled("1");
                break;
            case 1:
                comShopSysConfDO.setVal("1");
                comShopSysConfDO.setEnabled("1");
                break;
            default:
                break;
        }
        int updated = comShopSysConfService.getBaseMapper().updateById(comShopSysConfDO);
        if (updated == 1) {
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 商城系统配置查询
     *
     * @param pageComShopSysConfDTO
     * @return
     */
    @PostMapping("/conf/get")
    R pageShopSysConf(@RequestBody PageComShopSysConfDTO pageComShopSysConfDTO) {
        List<ComShopSysConfDO> confList =
            comShopSysConfService.getBaseMapper().selectList(new LambdaQueryWrapper<ComShopSysConfDO>()
                .eq(ComShopSysConfDO::getName, "SHOP_HIDDEN").orderByDesc(ComShopSysConfDO::getCreate_at));
        ComShopSysConfVO comShopSysConfVO = new ComShopSysConfVO();
        if (confList != null && confList.size() > 0) {
            ComShopSysConfDO firstConf = confList.get(0);
            BeanUtils.copyProperties(firstConf, comShopSysConfVO);
            return R.ok(comShopSysConfVO);
        }
        return R.ok();
    }
}