linwe
2024-08-09 8b7258c9427882bb1798f1502eaa35184c6e374e
src/main/java/org/springblade/modules/discuss/service/impl/UserPublicEnrollServiceImpl.java
@@ -17,11 +17,21 @@
package org.springblade.modules.discuss.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.common.constant.CommonConstant;
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
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.mapper.UserPublicEnrollMapper;
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.house.entity.HouseholdEntity;
import org.springblade.modules.house.service.IHouseholdService;
import org.springframework.stereotype.Service;
/**
@@ -35,8 +45,57 @@
   @Override
   public IPage<UserPublicEnrollVO> selectUserPublicEnrollPage(IPage<UserPublicEnrollVO> page, UserPublicEnrollVO userPublicEnroll) {
      IHouseholdService householdService = SpringUtils.getBean(IHouseholdService.class);
      HouseholdEntity householdEntity = householdService.getOne(Wrappers.<HouseholdEntity>lambdaQuery()
         .eq(HouseholdEntity::getHouseCode, userPublicEnroll.getHouseCode())
         .eq(HouseholdEntity::getAssociatedUserId, AuthUtil.getUserId())
         .eq(HouseholdEntity::getIsDeleted,0)
         .last("limit 1"));
      if (householdEntity != null) {
         userPublicEnroll.setHouseholdId(householdEntity.getId());
      }
      return page.setRecords(baseMapper.selectUserPublicEnrollPage(page, userPublicEnroll));
   }
   @Override
   public Long getCount(Integer id) {
      return baseMapper.selectCount(Wrappers.<UserPublicEnrollEntity>lambdaQuery().
         eq(UserPublicEnrollEntity::getPublicDiscussId, id));
   }
   @Override
   public Integer saveUserPublicEnrollEntity(UserPublicEnrollEntity userPublicEnroll) {
      //      userPublicEnroll.setUserId(AuthUtil.getUserId());
      IHouseholdService householdService = SpringUtils.getBean(IHouseholdService.class);
      HouseholdEntity householdEntity = householdService.getOne(Wrappers.<HouseholdEntity>lambdaQuery()
         .eq(HouseholdEntity::getHouseCode, userPublicEnroll.getHouseCode())
         .eq(HouseholdEntity::getAssociatedUserId, AuthUtil.getUserId())
         .eq(HouseholdEntity::getIsDeleted, 0)
         .last("limit 1"));
      if (householdEntity != null) {
         userPublicEnroll.setHouseholdId(householdEntity.getId());
      }
      // 判断是否一户一票 还是一人一票
      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 = count(Wrappers.<UserPublicEnrollEntity>lambdaQuery()
            .eq(UserPublicEnrollEntity::getArticleId, userPublicEnroll.getArticleId())
            .eq(UserPublicEnrollEntity::getHouseCode, userPublicEnroll.getHouseCode()));
         if (count > 0) {
            return 3;
         }
         // 一人一票
      } else {
         long count = count(Wrappers.<UserPublicEnrollEntity>lambdaQuery()
            .eq(UserPublicEnrollEntity::getArticleId, userPublicEnroll.getArticleId())
            .eq(UserPublicEnrollEntity::getHouseholdId, userPublicEnroll.getHouseholdId()));
         if (count > 0) {
            return 4;
         }
      }
      boolean save = save(userPublicEnroll);
      return save ? 1 : 2;
   }
}