admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityUserServiceImpl.java
@@ -1,30 +1,169 @@
package com.yeshi.fanli.service.impl.activity;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dao.mybatis.activity.ActivityUserMapper;
import com.yeshi.fanli.entity.bus.activity.ActivityUser;
import com.yeshi.fanli.service.inter.activity.ActivityUserService;
@Service
public class ActivityUserServiceImpl implements ActivityUserService {
   @Resource
   private ActivityUserMapper activityUserMapper;
   @Override
   public ActivityUser selectByPrimaryKey(Long id) {
      return activityUserMapper.selectByPrimaryKey(id);
   }
   @Override
   public List<ActivityUser> listRand(int count) {
      return activityUserMapper.listRand(count);
   }
}
package com.yeshi.fanli.service.impl.activity;
import java.io.InputStream;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.yeshi.utils.tencentcloud.COSManager;
import com.yeshi.fanli.dao.mybatis.activity.ActivityRuleUserMapper;
import com.yeshi.fanli.dao.mybatis.activity.ActivityUserMapper;
import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser;
import com.yeshi.fanli.entity.bus.activity.ActivityUser;
import com.yeshi.fanli.exception.dynamic.ActivityUserException;
import com.yeshi.fanli.service.inter.activity.ActivityUserService;
import com.yeshi.fanli.util.FilePathEnum;
import com.yeshi.fanli.util.StringUtil;
@Service
public class ActivityUserServiceImpl implements ActivityUserService {
   @Resource
   private ActivityUserMapper activityUserMapper;
   @Resource
   private ActivityRuleUserMapper activityRuleUserMapper;
   @Override
   public ActivityUser selectByPrimaryKey(Long id) {
      return activityUserMapper.selectByPrimaryKey(id);
   }
   @Override
   public List<ActivityUser> listRand(int count) {
      return activityUserMapper.listRand(count);
   }
   @Override
   public void addActivityRuleUser(ActivityRuleUser ruleUser) {
      if (ruleUser == null || ruleUser.getActivityUser() == null)
         return;
      // 添加用户
      ActivityUser user = activityUserMapper.selectByName(ruleUser.getActivityUser().getNickName());
      if (user == null) {
         user = ruleUser.getActivityUser();
         user.setCreateTime(new Date());
         activityUserMapper.insertSelective(user);
      }
      ActivityRuleUser oldRuleUser = activityRuleUserMapper.selectByUserIdAndRuleCode(user.getId(),
            ruleUser.getRuleCode());
      if (oldRuleUser == null) {
         ruleUser.setActivityUser(user);
         ruleUser.setCreateTime(new Date());
         activityRuleUserMapper.insertSelective(ruleUser);
      } else {
         ActivityRuleUser update = new ActivityRuleUser();
         update.setId(oldRuleUser.getId());
         update.setOrderBy(ruleUser.getOrderBy());
         activityRuleUserMapper.updateByPrimaryKeySelective(update);
      }
   }
   @Override
   public ActivityUser getActivityUserByNickName(ActivityUser record, MultipartFile file) throws ActivityUserException{
      if (record == null || StringUtil.isNullOrEmpty(record.getNickName()))
         throw new ActivityUserException(1, "昵称不能为空");
      try {
         ActivityUser userExist = activityUserMapper.selectByName(record.getNickName().trim());
         if (userExist != null) {
            return userExist;
         }
         // 不存在则新增
         if (file == null) {
            throw new ActivityUserException(1, "头像不能为空");
         }
         String portrait =  uploadPicture(file);
         record.setPortrait(portrait);
         record.setCreateTime(new Date());
         activityUserMapper.insertSelective(record);
         return record;
      } catch (Exception e) {
         e.printStackTrace();
         throw new ActivityUserException(1, "用户信息保存异常");
      }
   }
   /**
    * 上传图片
    * @param file
    * @return
    * @throws Exception
    */
   public String uploadPicture(MultipartFile file) throws Exception {
      // 文件解析
      InputStream inputStream = file.getInputStream();
      String contentType = file.getContentType();
      String type = contentType.substring(contentType.indexOf("/") + 1);
      // 文件路径
      String filePath= FilePathEnum.activityUser.getPath() +UUID.randomUUID().toString().replace("-", "") + "." + type;
      // 执行上传
      String fileLink= COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
      return fileLink;
   }
   @Override
   public List<ActivityRuleUser> listByRuleCode(Integer ruleCode, int page, int pageSize) {
      return activityRuleUserMapper.listByRuleCode(ruleCode, (page - 1) * pageSize, pageSize);
   }
   @Override
   public ActivityUser selectByName(String nickName) {
      return activityUserMapper.selectByName(nickName);
   }
   @Override
   public long countByRuleCode(Integer ruleCode) {
      return activityRuleUserMapper.countByRuleCode(ruleCode);
   }
   @Override
   public void deleteByRuleUserId(Long id) {
      ActivityRuleUser user = activityRuleUserMapper.selectByPrimaryKey(id);
      if (user.getActivityUser() != null)
         activityUserMapper.deleteByPrimaryKey(user.getActivityUser().getId());
      activityRuleUserMapper.deleteByPrimaryKey(id);
   }
   @Override
   public ActivityRuleUser selectRuleUserByPrimaryKey(Long id) {
      return activityRuleUserMapper.selectByPrimaryKey(id);
   }
   @Override
   public void updateActivityUser(ActivityUser au) {
      activityUserMapper.updateByPrimaryKeySelective(au);
   }
   @Override
   public void updateActivityRuleUser(ActivityRuleUser au) {
      activityRuleUserMapper.updateByPrimaryKeySelective(au);
   }
   @Override
   public ActivityUser getRandomByDaTaoKeCid(int cid) {
      int ruleId = 100 + cid;
      List<ActivityRuleUser> ruleList = activityRuleUserMapper.listByRuleCode(ruleId, 0, 100);
      return ruleList.get((int) (ruleList.size() * Math.random())).getActivityUser();
   }
   @Override
   public ActivityUser getRandomHaoHuo() {
      List<ActivityRuleUser> ruleList = activityRuleUserMapper.listByRuleCode(ActivityRuleUser.RULE_HAOHUO, 0, 100);
      return ruleList.get((int) (ruleList.size() * Math.random())).getActivityUser();
   }
}