linwei
2024-01-08 ad2ec97fe0c60eee4bb7c8cdacff7c876f280ea7
src/main/java/org/springblade/modules/discuss/controller/UserPublicEnrollController.java
@@ -16,25 +16,30 @@
 */
package org.springblade.modules.discuss.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.core.secure.BladeUser;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.modules.discuss.entity.PublicDiscussEntity;
import org.springblade.modules.discuss.entity.UserPublicEnrollEntity;
import org.springblade.modules.discuss.service.IPublicDiscussService;
import org.springblade.modules.discuss.service.IUserPublicEnrollService;
import org.springblade.modules.discuss.vo.UserPublicEnrollVO;
import org.springblade.modules.discuss.wrapper.UserPublicEnrollWrapper;
import org.springblade.modules.discuss.service.IUserPublicEnrollService;
import org.springblade.core.boot.ctrl.BladeController;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
 * 用户公益报名记录表 控制器
@@ -60,6 +65,7 @@
      UserPublicEnrollEntity detail = userPublicEnrollService.getOne(Condition.getQueryWrapper(userPublicEnroll));
      return R.data(UserPublicEnrollWrapper.build().entityVO(detail));
   }
   /**
    * 用户公益报名记录表 分页
    */
@@ -69,6 +75,18 @@
   public R<IPage<UserPublicEnrollVO>> list(UserPublicEnrollEntity userPublicEnroll, Query query) {
      IPage<UserPublicEnrollEntity> pages = userPublicEnrollService.page(Condition.getPage(query), Condition.getQueryWrapper(userPublicEnroll));
      return R.data(UserPublicEnrollWrapper.build().pageVO(pages));
   }
   /**
    * 用户公益报名记录表 分页
    */
   @GetMapping("/count")
   @ApiOperationSupport(order = 6)
   @ApiOperation(value = "分页", notes = "传入userPublicEnroll")
   public R<Long> count(UserPublicEnrollEntity userPublicEnroll) {
      long count = userPublicEnrollService.count(Wrappers.<UserPublicEnrollEntity>lambdaQuery()
         .eq(UserPublicEnrollEntity::getPublicDiscussId, userPublicEnroll.getPublicDiscussId()));
      return R.data(count);
   }
   /**
@@ -89,6 +107,28 @@
   @ApiOperationSupport(order = 4)
   @ApiOperation(value = "新增", notes = "传入userPublicEnroll")
   public R save(@Valid @RequestBody UserPublicEnrollEntity userPublicEnroll) {
      userPublicEnroll.setUserId(AuthUtil.getUserId());
      // 判断是否一户一票 还是一人一票
      IPublicDiscussService bean = SpringUtil.getBean(IPublicDiscussService.class);
      PublicDiscussEntity one = bean.getOne(Wrappers.<PublicDiscussEntity>lambdaQuery().eq(PublicDiscussEntity::getArticleId, userPublicEnroll.getArticleId()));
      // 一户一票
      if (one.getVoteRestrictions().equals(CommonConstant.NUMBER_ONE)) {
         long count = userPublicEnrollService.count(Wrappers.<UserPublicEnrollEntity>lambdaQuery()
            .eq(UserPublicEnrollEntity::getPublicDiscussId, userPublicEnroll.getPublicDiscussId())
            .eq(UserPublicEnrollEntity::getUserId, userPublicEnroll.getUserId())
            .eq(UserPublicEnrollEntity::getHouseCode, userPublicEnroll.getHouseCode()));
         if (count > 0) {
            return R.fail("您房屋已经报名,不能重复报名!");
         }
         // 一人一票
      } else {
         long count = userPublicEnrollService.count(Wrappers.<UserPublicEnrollEntity>lambdaQuery()
            .eq(UserPublicEnrollEntity::getPublicDiscussId, userPublicEnroll.getPublicDiscussId())
            .eq(UserPublicEnrollEntity::getUserId, userPublicEnroll.getUserId()));
         if (count > 0) {
            return R.fail("您已报名,不能重复报名!");
         }
      }
      return R.status(userPublicEnrollService.save(userPublicEnroll));
   }