huanghongfa
2021-07-22 02f18587bd8860b305e2c688e20465be166bb48c
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java
@@ -1,21 +1,29 @@
package com.panzhihua.service_community.api;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
import com.panzhihua.common.model.vos.shop.ShopStoreVO;
import com.panzhihua.common.model.vos.shop.*;
import com.panzhihua.service_community.model.dos.ComShopSysConfDO;
import com.panzhihua.service_community.service.*;
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.NonNull;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
@Slf4j
@@ -26,14 +34,22 @@
    @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
     * @return PageShopStoreVO
     */
    @PostMapping("/pageShopStore")
    public R pageShopStore(@RequestBody PageComShopStoreDTO pageComShopStoreDTO) {
@@ -49,6 +65,16 @@
    @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);
    }
    /**
@@ -85,6 +111,28 @@
        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);
    }
    /**
     * 添加商城后台日志
     *
@@ -117,4 +165,405 @@
    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();
    }
}