mitao
2024-09-21 f44e4d609e7efaed9eac545137970b1e334f8106
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java
@@ -3,20 +3,38 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.auction.controller.forepart.DTO.ForepartAuctionBidRecordDTO;
import com.ruoyi.auction.controller.forepart.VO.ForepartAuctionSalesroomVO;
import com.ruoyi.auction.domain.pojo.AuctionSalesroom;
import com.ruoyi.auction.domain.pojo.AuctionVideo;
import com.ruoyi.auction.mapper.AuctionBondJlMapper;
import com.ruoyi.auction.mapper.AuctionGoodsMapper;
import com.ruoyi.auction.service.IAuctionSalesroomGoodsService;
import com.ruoyi.auction.service.IAuctionSalesroomService;
import com.ruoyi.auction.service.IAuctionVideoService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.system.api.domain.AppMiniLoginVO;
import com.ruoyi.system.api.domain.AuctionBondJl;
import com.ruoyi.system.api.domain.AuctionGoods;
import com.ruoyi.system.api.domain.AuctionSalesroom;
import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
import com.ruoyi.system.api.domain.dto.AuctionSalesroomDTO;
import com.ruoyi.system.api.domain.dto.ForepartAuctionBidRecordDTO;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
import com.ruoyi.system.api.domain.vo.ForepartAuctionSalesroomVO;
import com.ruoyi.system.api.domain.vo.MemberAuctionSalesroomInfoVO;
import com.ruoyi.system.api.domain.vo.MemberAuctionSalesroomVO;
import com.ruoyi.system.api.domain.vo.PayInfoVO;
import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
import javax.annotation.Resource;
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;
/**
 * <p>
@@ -26,8 +44,10 @@
 * @author mitao
 * @since 2024-05-16
 */
@Slf4j
@RestController
@RequestMapping("/forepart/auction-salesroom")
@Api(value = "拍卖场相关接口", tags = "拍卖场相关接口", description = "拍卖场相关接口")
public class ForepartAuctionSalesroomController {
@@ -35,24 +55,22 @@
    private IAuctionSalesroomService iAuctionSalesroomService;
    @Resource
    private IAuctionVideoService  iAuctionVideoService;
    private IAuctionSalesroomGoodsService iAuctionSalesroomGoodsService;
    @Resource
    private SysUserClient sysUserClient;
    private AuctionGoodsMapper AuctionGoodsMapper;
    @Resource
    private AuctionBondJlMapper  auctionBondJlMapper;
    /**
     * 拍卖大屏获取拍卖信息
     *
     */
    @RequestMapping("getAuctionBidRecordList")
    @ResponseBody
    @ApiOperation(value = "拍卖大屏获取拍卖信息")
    public R<List<AuctionSalesroom>> getAuctionBidRecordList(@PathVariable("salesroomName") String salesroomName) {
        LambdaQueryWrapper<AuctionSalesroom> wrapper=Wrappers.lambdaQuery();
        wrapper.eq(AuctionSalesroom::getSalesroomName,salesroomName);
        wrapper.eq(AuctionSalesroom::getDelFlag,0);
        List<AuctionSalesroom> auctionBidRecordList=iAuctionSalesroomService.list(wrapper);
        return R.ok(auctionBidRecordList);
   @PostMapping("/getAuctionBidRecordList")
    @ApiOperation(value = "拍卖大屏-获取拍卖信息")
    public R<List<AuctionSalesroom>> getAuctionBidRecordList(@RequestBody AuctionSalesroomDTO ctionSalesroomGoodsDTO) {
        return R.ok(iAuctionSalesroomService.getAuctionBidRecordList(ctionSalesroomGoodsDTO));
    }
@@ -60,56 +78,178 @@
     * 暖场视频or封面海报
     *
     */
    @RequestMapping("/getBaaner")
    @ResponseBody
    @ApiOperation(value = " 暖场视频or封面海报")
    public R<ForepartAuctionSalesroomVO> getBaaner(@PathVariable("salesroomId") Integer SalesroomId) {
        LambdaQueryWrapper<AuctionVideo> wrapper=Wrappers.lambdaQuery();
        wrapper.eq(AuctionVideo::getAuctionSalesroomId,SalesroomId);
        wrapper.eq(AuctionVideo::getDelFlag,0);
        AuctionVideo auctionVideo=iAuctionVideoService.getOne(wrapper);
        ForepartAuctionSalesroomVO forepartAuctionSalesroomVO =new ForepartAuctionSalesroomVO();
        AuctionSalesroom auctionSalesroom=iAuctionSalesroomService.getById(SalesroomId);
        forepartAuctionSalesroomVO.setAuctionSalesroomStatus(auctionSalesroom.getStatus().getCode());
        if (auctionVideo!=null){
            forepartAuctionSalesroomVO.setUrl(auctionVideo.getPromotionVideoUrl());
        }else{
            forepartAuctionSalesroomVO.setUrl(auctionSalesroom.getCoverPic());
        }
        return R.ok(forepartAuctionSalesroomVO);
   @PostMapping("/getBaaner")
    @ApiOperation(value = "拍卖大屏-暖场视频or封面海报")
    public R<ForepartAuctionSalesroomVO> getBaaner(@RequestBody AuctionSalesroomDTO ctionSalesroomGoodsDTO) {
        return R.ok(iAuctionSalesroomService.getBaaner(ctionSalesroomGoodsDTO));
    }
    @RequestMapping("/getAuctionBidRecordOne")
    @ResponseBody
    @ApiOperation(value = "扫码二维码获取拍卖场信息")
   @PostMapping("/getAuctionBidRecordOne")
    @ApiOperation(value = "拍卖师端-扫码二维码获取拍卖场信息")
    public R<AuctionSalesroom> getAuctionBidRecordOne(@RequestBody ForepartAuctionBidRecordDTO arepartAuctionBidRecordDTO) {
        return R.ok(iAuctionSalesroomService.getAuctionBidRecordOne(arepartAuctionBidRecordDTO));
    }
        R<SysUser> r=sysUserClient.queryUserByPhone(arepartAuctionBidRecordDTO.getPhone());
        SysUser sysUser=r.getData();
    @PostMapping("/actionMiniLogin")
    @ApiOperation(value = "拍卖师端-第三方登陸")
    public R<AppMiniLoginVO> actionMiniLogin(@RequestBody AppMiniLoginDTO appMiniLoginDto) {
        return R.ok(iAuctionSalesroomService.actionMiniLogin(appMiniLoginDto));
    }
        if (sysUser!=null){
            R.fail("手机号未注册");
        }
    @PostMapping("/isMiniLogin")
    @ApiOperation(value = "拍卖师端-判断是否是拍卖师")
    public R<AppMiniLoginVO> isMiniLogin(@RequestBody AppMiniLoginDTO appMiniLoginDto) {
        return R.ok(iAuctionSalesroomService.isMiniLogin(appMiniLoginDto));
    }
        if (!sysUser.getPassword().equals(arepartAuctionBidRecordDTO.getPassword())){
            R.fail("密码输入错误");
        }
   @PostMapping("/getMemberAuctionSalesroomList")
    @ApiOperation(value = "用户端-拍卖场信息列表")
    public R<PageDTO<MemberAuctionSalesroomVO>> getMemberAuctionSalesroomList(@RequestBody MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO) {
        return R.ok(iAuctionSalesroomService.getMemberAuctionSalesroomList(MemberAuctionSalesroomDTO));
    }
        if (!sysUser.getUserType().equals("2")){
            R.fail("该人员不是拍卖师");
        }
   @PostMapping("/getMemberAuctionSalesroomInfo")
    @ApiOperation(value = "用户端-拍卖场信息详情")
    public R<MemberAuctionSalesroomInfoVO> getMemberAuctionSalesroomInfo(@RequestBody MemberAuctionSalesroomDTO memberAuctionSalesroomDTO) {
        return R.ok(iAuctionSalesroomService.getMemberAuctionSalesroomInfo(memberAuctionSalesroomDTO));
    }
        LambdaQueryWrapper<AuctionSalesroom> wrapper=Wrappers.lambdaQuery();
        wrapper.eq(AuctionSalesroom::getAuctionSalesroomQrcode,arepartAuctionBidRecordDTO.getAuctionSalesroomQrcode());
        wrapper.eq(AuctionSalesroom::getDelFlag,0);
        AuctionSalesroom auctionBidRecord=iAuctionSalesroomService.getOne(wrapper);
   @PostMapping("/getMemberAuctionSalesroomSweep")
    @ApiOperation(value = "用户端-扫一扫拍卖场信息")
    public R<MemberAuctionSalesroomVO> getMemberAuctionSalesroomSweep(@RequestBody MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO) {
        return R.ok(iAuctionSalesroomService.getMemberAuctionSalesroomSweep(MemberAuctionSalesroomDTO));
    }
        return R.ok(auctionBidRecord);
   @PostMapping("/SaveSignUpNow")
    @ApiOperation(value = "用户端-拍卖立即报名")
    public R<PayInfoVO> SaveSignUpNow(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) {
       log.info("=================================开始拍卖报名=================================");
       if (memberAuctionSalesroomBondDTO.getBondType() == 1) {
          AuctionGoods auctionGoods = AuctionGoodsMapper.selectById(memberAuctionSalesroomBondDTO.getAuctionGoodsId());
          if (auctionGoods.getListingStatus().getCode()==1){
              throw new ServiceException("商品拍卖下线");
          }
           LambdaQueryWrapper<AuctionBondJl> wrapper = Wrappers.lambdaQuery();
           wrapper.eq(AuctionBondJl::getAuctionGoodsId,
                   memberAuctionSalesroomBondDTO.getAuctionGoodsId());
           wrapper.eq(AuctionBondJl::getMemberId, memberAuctionSalesroomBondDTO.getMemberId());
           wrapper.eq(AuctionBondJl::getIsState, 0);
           AuctionBondJl auctionBondJl = auctionBondJlMapper.selectOne(wrapper);
           if (Objects.nonNull(auctionBondJl)) {
               throw new ServiceException("你已报名");
           }
           log.info("auctionGoods:{}", auctionGoods);
           if (auctionGoods.getBond() == null
                   || auctionGoods.getBond().compareTo(BigDecimal.ZERO) == 0) {
               auctionBondJl = new AuctionBondJl();
               auctionBondJl.setAuctionGoodsId(memberAuctionSalesroomBondDTO.getAuctionGoodsId());
               auctionBondJl.setIsState(0);
               auctionBondJl.setBondType(memberAuctionSalesroomBondDTO.getBondType());
               auctionBondJl.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
               auctionBondJlMapper.insert(auctionBondJl);
           }
      }else{
          AuctionSalesroom byId = iAuctionSalesroomService.getById(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
          if(byId==null){
              LambdaQueryWrapper<AuctionSalesroom> auctionSalesroomWrapper = Wrappers.lambdaQuery();
              auctionSalesroomWrapper.eq(AuctionSalesroom::getAuctionSalesroomNo,
                      memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
              auctionSalesroomWrapper.eq(AuctionSalesroom::getDelFlag, 0);
              byId = iAuctionSalesroomService.getOne(auctionSalesroomWrapper);
          }
           memberAuctionSalesroomBondDTO.setAuctionSalesroomId(byId.getId());
           LambdaQueryWrapper<AuctionBondJl> wrapper = Wrappers.lambdaQuery();
           wrapper.eq(AuctionBondJl::getAuctionSalesroomId,
                   memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
           wrapper.eq(AuctionBondJl::getMemberId, memberAuctionSalesroomBondDTO.getMemberId());
           wrapper.eq(AuctionBondJl::getIsState, 0);
           AuctionBondJl auctionBondJl = auctionBondJlMapper.selectOne(wrapper);
           if (Objects.nonNull(auctionBondJl)) {
               throw new ServiceException("你已报名");
           }
           log.info("AuctionSalesroom:{}", byId);
           if (byId.getBond() == null || byId.getBond().compareTo(BigDecimal.ZERO) == 0) {
               auctionBondJl = new AuctionBondJl();
               auctionBondJl.setAuctionSalesroomId(
                       memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
               auctionBondJl.setIsState(0);
               auctionBondJl.setBondType(memberAuctionSalesroomBondDTO.getBondType());
               auctionBondJl.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
               auctionBondJlMapper.insert(auctionBondJl);
           }
      }
       PayInfoVO payInfoVO = iAuctionSalesroomService.SaveSignUpNow(memberAuctionSalesroomBondDTO);
       return R.ok(payInfoVO);
    }
   @PostMapping("/CancelSignUpNow")
    @ApiOperation(value = "用户端-拍卖取消报名")
    public R CancelSignUpNow(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) {
        iAuctionSalesroomService.CancelSignUpNow(memberAuctionSalesroomBondDTO);
       if (memberAuctionSalesroomBondDTO.getBondType()==2){
           AuctionSalesroom byId = iAuctionSalesroomService.getById(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
           if(byId==null){
               LambdaQueryWrapper<AuctionSalesroom> wrapper= Wrappers.lambdaQuery();
               wrapper.eq(AuctionSalesroom::getAuctionSalesroomNo,memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
               wrapper.eq(AuctionSalesroom::getDelFlag,0);
               byId =iAuctionSalesroomService.getOne(wrapper);
               memberAuctionSalesroomBondDTO.setAuctionSalesroomId(byId.getId());
           }
           LambdaQueryWrapper<AuctionBondJl> wrapper=Wrappers.lambdaQuery();
           wrapper.eq(AuctionBondJl::getAuctionSalesroomId,byId.getId());
           wrapper.eq(AuctionBondJl::getMemberId,memberAuctionSalesroomBondDTO.getMemberId());
           wrapper.eq(AuctionBondJl::getIsState,0);
           AuctionBondJl auctionSalesroom = auctionBondJlMapper.selectOne(wrapper);
           if (auctionSalesroom!=null){
               auctionSalesroom.setIsState(1);
               auctionBondJlMapper.updateById(auctionSalesroom);
           }
       }else{
           LambdaQueryWrapper<AuctionBondJl> wrapper=Wrappers.lambdaQuery();
           wrapper.eq(AuctionBondJl::getAuctionGoodsId,memberAuctionSalesroomBondDTO.getAuctionGoodsId());
           wrapper.eq(AuctionBondJl::getMemberId,memberAuctionSalesroomBondDTO.getMemberId());
           wrapper.eq(AuctionBondJl::getIsState,0);
           AuctionBondJl auctionSalesroom = auctionBondJlMapper.selectOne(wrapper);
           auctionSalesroom.setIsState(1);
           auctionBondJlMapper.updateById(auctionSalesroom);
       }
        return R.ok( );
    }
    /**
     * 拍卖师端拍卖场立即开始
     *
     */
    @PostMapping("/auctionSalesroomStart")
    @ApiOperation(value = "拍卖师端-拍卖场立即开始")
    public R auctionSalesroomStart(@RequestBody AuctionSalesroomDTO ationSalesroomGoodsDTO) {
        iAuctionSalesroomGoodsService.auctionSalesroomStart(ationSalesroomGoodsDTO);
        return R.ok();
    }
    /**
     * 拍卖师端拍卖场立即开始
     *
     */
   @PostMapping("/auctionSalesroomEnd")
    @ApiOperation(value = "拍卖师端-拍卖场立即结束")
    public R auctionSalesroomEnd(@RequestBody AuctionSalesroomDTO ationSalesroomGoodsDTO) {
        iAuctionSalesroomGoodsService.auctionSalesroomEnd(ationSalesroomGoodsDTO);
        return R.ok();
    }
   @PostMapping("/getWdAuctionSalesroomList")
    @ApiOperation(value = "用户端-我的拍卖-我的加入了的拍卖场")
    public R<PageDTO<WdMemberAuctionSalesroomVO>> getWdAuctionSalesroomList(@RequestBody MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO) {
        return R.ok(iAuctionSalesroomService.getWdAuctionSalesroomList(MemberAuctionSalesroomDTO));
    }
}