package com.gkhy.exam.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.exam.common.api.CommonPage; import com.gkhy.exam.common.api.CommonResult; import com.gkhy.exam.common.utils.PageUtils; import com.gkhy.exam.common.utils.SecurityUtils; import com.gkhy.exam.common.utils.StringUtils; import com.gkhy.exam.system.domain.ItemReview; import com.gkhy.exam.system.domain.ItemReviewUser; import com.gkhy.exam.system.domain.ProductItem; import com.gkhy.exam.system.domain.vo.ItemReviewUserVo; import com.gkhy.exam.system.mapper.ItemReviewMapper; import com.gkhy.exam.system.mapper.ItemReviewUserMapper; import com.gkhy.exam.system.mapper.ProductItemMapper; import com.gkhy.exam.system.service.ItemReviewService; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @Service public class ItemReviewServiceImpl extends ServiceImpl implements ItemReviewService { @Autowired private ItemReviewMapper itemReviewMapper; @Autowired private ItemReviewUserMapper itemReviewUserMapper; @Autowired private ProductItemMapper productItemMapper; @Override public CommonPage selectItemList(ItemReview itemReview) { if (!SecurityUtils.adminUser()){ if (itemReview.getCompanyId()==null){ throw new RuntimeException("非管理员,查询条件不可为空"); } } PageUtils.startPage(); List itemReviews = itemReviewMapper.selectReviewList(itemReview); for (ItemReview review : itemReviews) { if (review.getType()==1){ List itemReviewUsers = itemReviewUserMapper.selectByReviewId(review.getId()); review.setReviewUsers(itemReviewUsers); } List list = Arrays.asList(review.getProductItemIds().split(",")); List productItems = productItemMapper.selectBatchIds(list); review.setProductItems(productItems); } return CommonPage.restPage(itemReviews); } @Transactional @Override public CommonResult insertItem(ItemReview item) { item.setCreateBy(SecurityUtils.getUsername()); item.setCreateTime(LocalDateTime.now()); if (item.getCompanyId()==null){ item.setCompanyId(SecurityUtils.getCompanyId()); } if (item.getType()==1){ item.setStatus(1); } int insert = itemReviewMapper.insert(item); if (insert>0 && item.getType()==1){ List reviewUsers = item.getReviewUsers(); for (ItemReviewUser reviewUser : reviewUsers) { reviewUser.setReviewId(item.getId()); } itemReviewUserMapper.insertBatchs(reviewUsers); } return CommonResult.success(); } @Override public CommonResult updateItem(ItemReview item) { item.setUpdateBy(SecurityUtils.getUsername()); item.setUpdateTime(LocalDateTime.now()); int update = itemReviewMapper.updateById(item); if (update>0 && item.getType()==1){ itemReviewUserMapper.deleteByReviewId(item.getId()); List reviewUsers = item.getReviewUsers(); for (ItemReviewUser reviewUser : reviewUsers) { reviewUser.setReviewId(item.getId()); } itemReviewUserMapper.insertBatchs(reviewUsers); } return CommonResult.success(); } @Override public CommonResult deletedItem(Integer itemReviewId) { ItemReview itemReview1 = itemReviewMapper.selectById(itemReviewId); if (itemReview1.getStatus()==2){ if (!SecurityUtils.adminUser()){ return CommonResult.failed("已发送,非管理员不可删除"); } } ItemReview itemReview = new ItemReview(); itemReview.setId(itemReviewId); itemReview.setUpdateTime(LocalDateTime.now()); itemReview.setUpdateBy(SecurityUtils.getUsername()); itemReview.setDelFlag(2); itemReviewMapper.updateById(itemReview); return CommonResult.success(); } @Override public CommonResult sendItem(Integer itemReviewId) { ItemReview itemReview = new ItemReview(); itemReview.setStatus(2); itemReview.setId(itemReviewId); int update1 = itemReviewMapper.updateById(itemReview); int update = itemReviewUserMapper.updateByReviewId(itemReviewId); return CommonResult.success(); } @Override public CommonResult approvalList(Integer userId) { List itemReviewUserVos = itemReviewUserMapper.selectByUserId(userId); for (ItemReviewUserVo itemReviewUserVo : itemReviewUserVos) { List list = Arrays.asList(itemReviewUserVo.getProductItemIds().split(",")); List productItems = productItemMapper.selectBatchIds(list); itemReviewUserVo.setProductItems(productItems); } return CommonResult.success(itemReviewUserVos); } @Override public CommonResult approval(ItemReviewUser itemReviewUser) { if (!StringUtils.isEmpty(itemReviewUser.getSign())){ itemReviewUser.setStatus(3); itemReviewUser.setReviewTime(LocalDateTime.now()); } int update = itemReviewUserMapper.updateById(itemReviewUser); return CommonResult.success(); } }