1.优化主播代码模块代码,添加统一异常处理

This commit is contained in:
2025-08-01 21:15:16 +08:00
parent 93c10482d0
commit e9ee9d6b90
22 changed files with 365 additions and 98 deletions

View File

@@ -1,80 +1,51 @@
package vvpkassistant.Anchors.controller;
import org.springframework.beans.factory.annotation.Autowired;
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;
import vvpkassistant.Anchors.mapper.AnchorDao;
import vvpkassistant.Anchors.model.AnchorModel;
import vvpkassistant.Anchors.service.AnchorsService;
import vvpkassistant.Data.ResponseData;
import vvpkassistant.Data.ResponseInfo;
import vvpkassistant.pk.mapper.PkRecordDao;
import vvpkassistant.common.ErrorCode;
import java.util.List;
import javax.annotation.Resource;
import java.util.Map;
@RestController
@RequestMapping("anchor")
public class AnchorsController {
@Autowired
private AnchorDao anchorDao;
@Resource
private AnchorsService anchorsService;
@Autowired
private PkRecordDao recordDao;
// 添加新主播
@PostMapping("add")
public ResponseData<Object> addNewAnchor(@RequestBody AnchorModel model) {
//查询是否存在重复主播
int r = anchorDao.selectAnchorWithAnchorIdAndUserId(model.getAnchorId(), model.getCreateUserId());
if (r != 0) {
return ResponseData.error(ResponseInfo.ERROR,"该主播已存在");
}
int insert = anchorDao.insert(model);
return insert == 1 ? ResponseData.success("") : ResponseData.error(ResponseInfo.ERROR,"添加失败");
return anchorsService.addNewAnchor(model) == 1 ? ResponseData.success("") : ResponseData.error(ErrorCode.ADD_FAILED);
}
// 查询我的主播列表
@PostMapping("list")
public ResponseData<Object> myAnchorList(@RequestBody Map<String,Integer> map) {
Integer userId = map.get("id");
List<AnchorModel> anchorModels = anchorDao.selectMyAnchor(userId);
return ResponseData.success(anchorModels);
return ResponseData.success(anchorsService.selectMyAnchor(userId));
}
// 删除我的主播
@PostMapping("deleteMyAnchor")
public ResponseData<Object> deleteMyAnchor(@RequestBody Map<String,Integer> map) {
Integer id = map.get("id");
AnchorModel anchorModel = anchorDao.selectById(id);
try {
String anchorId = anchorModel.getAnchorId();
// 根据主播id查询该主播是否存在pk记录
int i = recordDao.existsPkRecordByAnchor(anchorId);
if (i > 0) {
return ResponseData.error(ResponseInfo.ERROR,"该主播已有pk记录。无法删除");
}
int r = anchorDao.deleteById(id);
return r == 1 ? ResponseData.success("") : ResponseData.error(ResponseInfo.ERROR,null);
} catch (Exception e) {
return ResponseData.error(ResponseInfo.ERROR,"非法数据,操作失败");
}
return anchorsService.deleteMyAnchor(id) == 1 ? ResponseData.success(""):ResponseData.error(ErrorCode.DELETE_FAILED );
}
// 更新主播信息
@PostMapping("updateAnchorInfo")
public ResponseData<Object> updateAnchorInfo(@RequestBody AnchorModel model) {
// 查询该主播是否存在记录
int i = recordDao.existsPkRecordByAnchor(model.getAnchorId());
if (i > 0) {
return ResponseData.error(ResponseInfo.ERROR,"该主播已有pk记录。无法修改信息");
}
int r = anchorDao.updateById(model);
return r == 1 ? ResponseData.success("") : ResponseData.error(ResponseInfo.ERROR,null);
return anchorsService.updateAnchorInfo(model) == 1 ? ResponseData.success(""):ResponseData.error(ErrorCode.UPDATE_FAILED);
}
}

View File

@@ -0,0 +1,20 @@
package vvpkassistant.Anchors.service;
import vvpkassistant.Anchors.model.AnchorModel;
import vvpkassistant.Data.ResponseData;
import java.util.List;
/*
* @author: ziin
* @date: 2025/8/1 19:59
*/
public interface AnchorsService {
Integer addNewAnchor(AnchorModel model);
List<AnchorModel> selectMyAnchor(Integer userId);
Integer deleteMyAnchor(Integer id);
Integer updateAnchorInfo(AnchorModel model);
}

View File

@@ -0,0 +1,69 @@
package vvpkassistant.Anchors.service;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import vvpkassistant.Anchors.mapper.AnchorDao;
import vvpkassistant.Anchors.model.AnchorModel;
import vvpkassistant.Data.ResponseData;
import vvpkassistant.Data.ResponseInfo;
import vvpkassistant.common.ErrorCode;
import vvpkassistant.exception.BusinessException;
import vvpkassistant.pk.mapper.PkRecordDao;
import javax.annotation.Resource;
import java.util.List;
/*
* @author: ziin
* @date: 2025/8/1 19:59
*/
@Service
public class AnchorsServiceImpl implements AnchorsService {
@Resource
private AnchorDao anchorDao;
@Resource
private PkRecordDao recordDao;
@Override
public Integer addNewAnchor(AnchorModel model) {
//查询是否存在重复主播
int r = anchorDao.selectAnchorWithAnchorIdAndUserId(model.getAnchorId(), model.getCreateUserId());
if (r != 0) {
throw new BusinessException(ErrorCode.ANCHOR_ALREADY_EXISTS);
}
return anchorDao.insert(model);
}
@Override
public List<AnchorModel> selectMyAnchor(Integer userId) {
return anchorDao.selectMyAnchor(userId);
}
@Override
public Integer deleteMyAnchor(Integer id) {
AnchorModel anchorModel = anchorDao.selectById(id);
if (anchorModel == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR,"主播不存在");
}
String anchorId = anchorModel.getAnchorId();
// 根据主播id查询该主播是否存在pk记录
int i = recordDao.existsPkRecordByAnchor(anchorId);
if (i > 0) {
throw new BusinessException(ErrorCode.ANCHOR_HAS_PKRECORD,"该主播已有pk记录。无法删除");
}
return anchorDao.deleteById(id);
}
@Override
public Integer updateAnchorInfo(AnchorModel model) {
// 查询该主播是否存在记录
int i = recordDao.existsPkRecordByAnchor(model.getAnchorId());
if (i > 0) {
throw new BusinessException(ErrorCode.ANCHOR_HAS_PKRECORD,"该主播已有pk记录。无法修改信息");
}
return anchorDao.updateById(model);
}
}