1.调整 controller 位置
2.添加日志拦截
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package vvpkassistant.controller;
|
||||
|
||||
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.model.AnchorModel;
|
||||
import vvpkassistant.Anchors.service.AnchorsService;
|
||||
import vvpkassistant.Data.ResponseData;
|
||||
import vvpkassistant.common.ErrorCode;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("anchor")
|
||||
public class AnchorsController {
|
||||
|
||||
@Resource
|
||||
private AnchorsService anchorsService;
|
||||
|
||||
|
||||
// 添加新主播
|
||||
@PostMapping("add")
|
||||
public ResponseData<Object> addNewAnchor(@RequestBody AnchorModel model) {
|
||||
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");
|
||||
return ResponseData.success(anchorsService.selectMyAnchor(userId));
|
||||
}
|
||||
|
||||
// 删除我的主播
|
||||
@PostMapping("deleteMyAnchor")
|
||||
public ResponseData<Object> deleteMyAnchor(@RequestBody Map<String,Integer> map) {
|
||||
Integer id = map.get("id");
|
||||
return anchorsService.deleteMyAnchor(id) == 1 ? ResponseData.success(""):ResponseData.error(ErrorCode.DELETE_FAILED );
|
||||
}
|
||||
|
||||
// 更新主播信息
|
||||
@PostMapping("updateAnchorInfo")
|
||||
public ResponseData<Object> updateAnchorInfo(@RequestBody AnchorModel model) {
|
||||
|
||||
return anchorsService.updateAnchorInfo(model) == 1 ? ResponseData.success(""):ResponseData.error(ErrorCode.UPDATE_FAILED);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
45
src/main/java/vvpkassistant/controller/ChatController.java
Normal file
45
src/main/java/vvpkassistant/controller/ChatController.java
Normal file
@@ -0,0 +1,45 @@
|
||||
package vvpkassistant.controller;
|
||||
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import vvpkassistant.Data.ResponseData;
|
||||
import vvpkassistant.chat.mapper.ChatDao;
|
||||
import vvpkassistant.chat.model.ChatModel;
|
||||
import vvpkassistant.common.ErrorCode;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("chat")
|
||||
public class ChatController {
|
||||
|
||||
@Autowired
|
||||
private ChatDao chatDao;
|
||||
|
||||
//插入数据
|
||||
@PostMapping("add")
|
||||
public ResponseData<Object> add(@RequestBody ChatModel model) {
|
||||
int insert = chatDao.insert(model);
|
||||
return insert == 1 ? ResponseData.success("") : ResponseData.error(ErrorCode.ADD_FAILED);
|
||||
}
|
||||
|
||||
//根据ip查询数据
|
||||
@PostMapping("fetchWithKeyId")
|
||||
public ResponseData<Object> query(@RequestBody ChatModel model) {
|
||||
ChatModel chatModel = chatDao.selectModelWithKeyId(model.getKeyId());
|
||||
return ResponseData.success(chatModel);
|
||||
}
|
||||
|
||||
//接收im消息
|
||||
@PostMapping("receiveImMessage")
|
||||
public Map<String,Object> receiveImMessage(@RequestBody Map<String,Object> data) {
|
||||
System.out.println(data);
|
||||
Map<String,Object> result = new HashMap<>();
|
||||
result.put("code",200);
|
||||
result.put("content","success");
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
31
src/main/java/vvpkassistant/controller/FileController.java
Normal file
31
src/main/java/vvpkassistant/controller/FileController.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package vvpkassistant.controller;
|
||||
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import vvpkassistant.Data.ResponseData;
|
||||
import vvpkassistant.file.service.FileService;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/*
|
||||
* @author: ziin
|
||||
* @date: 2025/8/7 13:58
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("file")
|
||||
public class FileController {
|
||||
|
||||
|
||||
@Resource
|
||||
private FileService fileService;
|
||||
|
||||
|
||||
@PostMapping("/uploadHeadIcon")
|
||||
public ResponseData<Object> uploadHeadIcon(@RequestParam("file") MultipartFile file) {
|
||||
return ResponseData.success(fileService.uploadHeadIcon(file));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package vvpkassistant.controller;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import vvpkassistant.Data.ResponseData;
|
||||
import vvpkassistant.FunctionConfig.mapper.FunctionConfigMapper;
|
||||
import vvpkassistant.FunctionConfig.model.FunctionConfigModel;
|
||||
import vvpkassistant.FunctionConfig.service.FunctionConfigService;
|
||||
import vvpkassistant.common.ErrorCode;
|
||||
import vvpkassistant.config.FunctionConfigHolder;
|
||||
import vvpkassistant.exception.BusinessException;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("config")
|
||||
public class FunctionConfigController {
|
||||
|
||||
@Autowired
|
||||
private FunctionConfigMapper configMapper;
|
||||
|
||||
@Resource
|
||||
private FunctionConfigService functionConfigService;
|
||||
|
||||
// 获取所有配置
|
||||
@GetMapping("getAllConfig")
|
||||
public ResponseData<Object> getAllConfig() {
|
||||
return ResponseData.success(FunctionConfigHolder.CONFIGS);
|
||||
}
|
||||
|
||||
// 更新配置项内容
|
||||
@PostMapping("updateConfigValue")
|
||||
public ResponseData<Object> updateConfigValue(@RequestBody FunctionConfigModel model) {
|
||||
// 1. 更新数据库
|
||||
functionConfigService.updateById(model);
|
||||
// 2. 更新内存
|
||||
FunctionConfigHolder.CONFIGS.removeIf(c -> model.getFunctionName().equals(c.getFunctionName()));
|
||||
FunctionConfigHolder.CONFIGS.add(model);
|
||||
return ResponseData.success("");
|
||||
}
|
||||
|
||||
@PostMapping("add")
|
||||
public ResponseData<Object> addNewConfig(@RequestBody FunctionConfigModel newModel) {
|
||||
String name = newModel.getFunctionName();
|
||||
boolean isDuplicate = FunctionConfigHolder.CONFIGS.stream()
|
||||
.anyMatch(config -> name.equals(config.getFunctionName()));
|
||||
if (isDuplicate) {
|
||||
throw new BusinessException(ErrorCode.CONFIG_NAME_DUPLICATE);
|
||||
}else {
|
||||
functionConfigService.save(newModel);
|
||||
FunctionConfigHolder.CONFIGS.add(newModel);
|
||||
return ResponseData.success("");
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("deleteConfigById")
|
||||
public ResponseData<Object> deleteConfigById(@RequestBody FunctionConfigModel model) {
|
||||
if (functionConfigService.removeById(model)) {
|
||||
FunctionConfigHolder.CONFIGS.removeIf(c -> model.getId().equals(c.getId()));
|
||||
return ResponseData.success("");
|
||||
}else {
|
||||
throw new BusinessException(ErrorCode.DELETE_FAILED);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
160
src/main/java/vvpkassistant/controller/PkController.java
Normal file
160
src/main/java/vvpkassistant/controller/PkController.java
Normal file
@@ -0,0 +1,160 @@
|
||||
package vvpkassistant.controller;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import vvpkassistant.CoinRecords.CoinRecordsDao;
|
||||
import vvpkassistant.Data.ResponseData;
|
||||
import vvpkassistant.Data.ResponseInfo;
|
||||
import vvpkassistant.Tools.VVTools;
|
||||
import vvpkassistant.User.mapper.UserDao;
|
||||
import vvpkassistant.pk.mapper.PkInfoDao;
|
||||
import vvpkassistant.pk.mapper.PkRecordDao;
|
||||
import vvpkassistant.pk.mapper.PkRecordDetailDao;
|
||||
import vvpkassistant.pk.model.PkInfoModel;
|
||||
import vvpkassistant.pk.model.PkRecord;
|
||||
import vvpkassistant.pk.model.PkRecordDetail;
|
||||
import vvpkassistant.pk.service.PKService;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("pk")
|
||||
public class PkController {
|
||||
|
||||
@Resource
|
||||
private PKService pkService;
|
||||
|
||||
@Autowired
|
||||
private PkInfoDao pkDao;
|
||||
|
||||
@Autowired
|
||||
private PkRecordDao recordDao;
|
||||
|
||||
@Autowired
|
||||
private PkRecordDetailDao detailDao;
|
||||
|
||||
@Autowired
|
||||
private UserDao userDao;
|
||||
|
||||
@Autowired
|
||||
private CoinRecordsDao coinRecordsDao;
|
||||
|
||||
// 创建pk数据
|
||||
@PostMapping("addPkData")
|
||||
public ResponseData<PkInfoModel> addPkData(@RequestBody PkInfoModel pkModel) {
|
||||
return ResponseData.success(pkService.addPkAddData(pkModel));
|
||||
}
|
||||
|
||||
// 更新pk信息
|
||||
@PostMapping("updatePkStatus")
|
||||
public ResponseData<Object> updatePkStatus(@RequestBody PkRecord recordModel) {
|
||||
return ResponseData.success(pkService.updatePkStatus(recordModel));
|
||||
}
|
||||
|
||||
// 创建PK记录
|
||||
@PostMapping("createPkRecord")
|
||||
public ResponseData<Object> createPkRecord(@RequestBody PkRecord record) {
|
||||
return ResponseData.success(pkService.createPKRecord(record));
|
||||
}
|
||||
|
||||
// pk列表
|
||||
@PostMapping("pkList")
|
||||
public ResponseData<Object> pkList(@RequestBody Map<String,Object> map) {
|
||||
return ResponseData.success(pkService.getPKList(map));
|
||||
}
|
||||
|
||||
// 查询用户发布的大于当前时间的pk数据
|
||||
@PostMapping("queryMyCanUsePkData")
|
||||
public ResponseData<Object> queryMyCanUsePkData(@RequestBody Map<String,Object> map) {
|
||||
Long time = VVTools.currentTimeStamp();
|
||||
Integer userId = (Integer) map.get("userId");
|
||||
List<PkInfoModel> pkModels = pkDao.queryCanUseData(userId, time);
|
||||
return ResponseData.success(pkModels);
|
||||
}
|
||||
|
||||
//pk文章详情
|
||||
@PostMapping("pkInfoDetail")
|
||||
public ResponseData<Object> pkInfoDetail(@RequestBody Map<String, Integer> map) {
|
||||
return ResponseData.success(pkService.pkInfoDetail(map));
|
||||
}
|
||||
|
||||
//删除自己的pk数据 (单个)
|
||||
@PostMapping("deletePkDataWithId")
|
||||
public ResponseData<Object> deletePkDataWithId(@RequestBody Map<String,Integer> map) {
|
||||
Integer id = map.get("id");
|
||||
PkInfoModel pkInfoModel = pkDao.selectById(id);
|
||||
|
||||
if (pkInfoModel.getPinExpireTime() > VVTools.currentTimeStamp()) {
|
||||
return ResponseData.error(ResponseInfo.ERROR.getCode(),"该信息在置顶中。如要删除清先取消置顶");
|
||||
}
|
||||
|
||||
Integer result = pkDao.deletePkDataWithId(id);
|
||||
return result == 1 ? ResponseData.success("") : ResponseData.error(ResponseInfo.ERROR.getCode(),"删除数据失败");
|
||||
}
|
||||
|
||||
//修改pk信息内容
|
||||
@PostMapping("updatePkInfoById")
|
||||
public ResponseData<Object> updatePkInfoById(@RequestBody PkInfoModel infoModel) {
|
||||
int result = pkDao.updateById(infoModel);
|
||||
return result == 1 ? ResponseData.success("") : ResponseData.error(ResponseInfo.ERROR.getCode(),null);
|
||||
}
|
||||
|
||||
// 根据id查询pk记录
|
||||
@PostMapping("singleRecord")
|
||||
public ResponseData<Object> singleRecord(@RequestBody PkRecord record) {
|
||||
PkRecord data = recordDao.singleRecord(record.getId());
|
||||
return ResponseData.success(data);
|
||||
}
|
||||
|
||||
// 查询pk中每个场次的详细数据
|
||||
@PostMapping("fetchDetailPkDataWithId")
|
||||
public ResponseData<Object> fetchDetailPkDataWithId(@RequestBody Map<String,Integer> map) {
|
||||
Integer id = map.get("id");
|
||||
List<PkRecordDetail> pkRecordDetails = recordDao.fetchDetailPkDataWithId(id);
|
||||
return ResponseData.success(pkRecordDetails);
|
||||
}
|
||||
|
||||
// 根据用户id查询该用户已发布的未被邀请的主播列表
|
||||
@PostMapping("listUninvitedPublishedAnchorsByUserId")
|
||||
public ResponseData<Object> listUninvitedPublishedAnchorsByUserId(@RequestBody Map<String,Integer> map) {
|
||||
Integer userId = map.get("userId");
|
||||
List<PkInfoModel> pkInfoModels = pkDao.listUninvitedPublishedAnchorsByUserId(userId);
|
||||
for (PkInfoModel pkInfoModel : pkInfoModels) {
|
||||
pkInfoModel.setDisPlayId(VVTools.replaceChar(pkInfoModel.getAnchorId(),'*'));
|
||||
}
|
||||
return ResponseData.success(pkInfoModels);
|
||||
}
|
||||
|
||||
|
||||
/************************************************************************************************************************************/
|
||||
/** Python 相关接口 */
|
||||
/************************************************************************************************************************************/
|
||||
// Python那边需要的pk数据
|
||||
@PostMapping("pkListForPython")
|
||||
public ResponseData<Object> pkDataListForPython() {
|
||||
// 获取当日的开始时间和结束时间
|
||||
Map<String, Long> timeMap = VVTools.startAndEndTimeStampForToday();
|
||||
long start = timeMap.get("start");
|
||||
long end = timeMap.get("end");
|
||||
List<PkRecord> result = recordDao.pkListForToday(start, end);
|
||||
return ResponseData.success(result);
|
||||
}
|
||||
|
||||
// 更新pk结果信息
|
||||
@PostMapping("updatePkRecordInfo")
|
||||
public ResponseData<Object> updatePkRecordInfo(@RequestBody PkRecord record) {
|
||||
int i = recordDao.updateById(record);
|
||||
return i == 1 ? ResponseData.success("") : ResponseData.error(ResponseInfo.ERROR.getCode(),null);
|
||||
}
|
||||
|
||||
// 插入pk明细表数据
|
||||
@PostMapping("insertPkDetail")
|
||||
public ResponseData<Object> insert(@RequestBody PkRecordDetail detail) {
|
||||
detail.setCreateTime(VVTools.currentTimeStamp());
|
||||
int insert = detailDao.insert(detail);
|
||||
return insert == 1 ? ResponseData.success("") : ResponseData.error(ResponseInfo.ERROR.getCode(),null);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package vvpkassistant.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.Data.ResponseData;
|
||||
import vvpkassistant.SystemMessage.mapper.SystemMessageDao;
|
||||
import vvpkassistant.SystemMessage.model.SystemMessage;
|
||||
import vvpkassistant.Tools.VVTools;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("systemMessage")
|
||||
public class SystemMessageController {
|
||||
|
||||
@Autowired
|
||||
private SystemMessageDao messageDao;
|
||||
|
||||
// 获取列表
|
||||
@PostMapping("list")
|
||||
public ResponseData<Object> messageList(@RequestBody Map<String,Integer> map) {
|
||||
Integer page = map.get("page");
|
||||
Integer size = map.get("size");
|
||||
List<SystemMessage> systemMessages = messageDao.messageList(page * size, size);
|
||||
return ResponseData.success(systemMessages);
|
||||
}
|
||||
|
||||
// 增加
|
||||
@PostMapping("add")
|
||||
public ResponseData<Object> createNewMessage(@RequestBody SystemMessage message) {
|
||||
message.setTime(VVTools.getCurrentTime("yyyy-MM-dd HH:mm"));
|
||||
return ResponseData.success(messageDao.insert(message));
|
||||
}
|
||||
|
||||
// 修改
|
||||
@PostMapping("update")
|
||||
public ResponseData<Object> updateMessage(@RequestBody SystemMessage message) {
|
||||
return ResponseData.success(messageDao.updateById(message));
|
||||
}
|
||||
|
||||
// 删除
|
||||
@PostMapping("delete")
|
||||
public ResponseData<Object> delete(@RequestBody SystemMessage message) {
|
||||
return ResponseData.success(messageDao.deleteById(message));
|
||||
}
|
||||
|
||||
}
|
||||
465
src/main/java/vvpkassistant/controller/UserController.java
Normal file
465
src/main/java/vvpkassistant/controller/UserController.java
Normal file
@@ -0,0 +1,465 @@
|
||||
package vvpkassistant.controller;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import vvpkassistant.CoinRecords.CoinRecords;
|
||||
import vvpkassistant.CoinRecords.CoinRecordsDao;
|
||||
import vvpkassistant.Data.ResponseData;
|
||||
import vvpkassistant.Data.ResponseInfo;
|
||||
import vvpkassistant.Data.WxChatParam;
|
||||
import vvpkassistant.User.mapper.UserDao;
|
||||
import vvpkassistant.User.model.DTO.ScanInfoDTO;
|
||||
import vvpkassistant.User.model.DTO.UserModelDTO;
|
||||
import vvpkassistant.User.model.UserModel;
|
||||
import vvpkassistant.User.model.UserModelVO;
|
||||
import vvpkassistant.User.service.UserService;
|
||||
import vvpkassistant.common.ErrorCode;
|
||||
import vvpkassistant.config.FunctionConfigHolder;
|
||||
import vvpkassistant.Tools.VVRequester;
|
||||
import vvpkassistant.Tools.VVTools;
|
||||
import vvpkassistant.exception.BusinessException;
|
||||
import vvpkassistant.mail.model.MailModel;
|
||||
import vvpkassistant.mail.service.MailService;
|
||||
import vvpkassistant.pk.mapper.PkInfoDao;
|
||||
import vvpkassistant.pk.model.PkInfoModel;
|
||||
import vvpkassistant.pk.model.PkRecordDetail;
|
||||
import vvpkassistant.pk.mapper.PkRecordDetailDao;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("user")
|
||||
public class UserController {
|
||||
|
||||
@Autowired
|
||||
private UserDao userDao;
|
||||
|
||||
@Autowired
|
||||
private PkInfoDao pkInfoDao;
|
||||
|
||||
@Autowired
|
||||
private PkRecordDetailDao detailDao;
|
||||
|
||||
@Autowired
|
||||
private CoinRecordsDao coinRecordsDao;
|
||||
|
||||
@Autowired
|
||||
private WxChatParam wxChatParam;
|
||||
|
||||
@Autowired
|
||||
private VVRequester vvRequester;
|
||||
|
||||
|
||||
@Resource
|
||||
private UserService userService;
|
||||
|
||||
@Resource
|
||||
private MailService mailService;
|
||||
|
||||
// 配置用户信息
|
||||
@PostMapping("inputUserInfo")
|
||||
public ResponseData<Object> inputUserInfo(@RequestBody Map<String,Object> param) {
|
||||
|
||||
if (!param.containsKey("code")) {
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR,"code不能为空");
|
||||
}
|
||||
|
||||
if (!param.containsKey("id")) {
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR,"id不能为空");
|
||||
}
|
||||
|
||||
//获取前端传递过来的code
|
||||
String code = param.get("code").toString();
|
||||
|
||||
// 调用微信获取openid接口
|
||||
Map<String, Object> wx_result = vvRequester.loginApp(code);
|
||||
|
||||
// 错误处理
|
||||
if (wx_result.containsKey("errcode")) {
|
||||
Integer errcode = Integer.valueOf(wx_result.get("errcode").toString());
|
||||
|
||||
if (errcode == 45011) {
|
||||
throw new BusinessException(ErrorCode.WX_API_CALL_TOO_FREQUENT);
|
||||
}
|
||||
|
||||
if (errcode == 40029) {
|
||||
throw new BusinessException(ErrorCode.WX_INVALID_JSCODE);
|
||||
}
|
||||
|
||||
if (errcode == 40226) {
|
||||
throw new BusinessException(ErrorCode.WX_RISK_ACCOUNT);
|
||||
}
|
||||
|
||||
if (errcode == -1) {
|
||||
throw new BusinessException(ErrorCode.WX_SYSTEM_BUSY);
|
||||
}
|
||||
|
||||
if (!wx_result.containsKey("openid")) {
|
||||
throw new BusinessException(ErrorCode.WX_GET_USER_INFO_FAILED);
|
||||
}
|
||||
}
|
||||
|
||||
//查询用户
|
||||
String openId = wx_result.get("openid").toString();
|
||||
String sessionKey = wx_result.get("session_key").toString();
|
||||
|
||||
// 创建一个临时model
|
||||
UserModel tempModel = new UserModel();
|
||||
tempModel.setId(Integer.valueOf(param.get("id").toString()));
|
||||
tempModel.setOpenid(openId);
|
||||
tempModel.setHeaderIcon(param.get("headerIcon").toString());
|
||||
tempModel.setNickName(param.get("nickName").toString());
|
||||
tempModel.setSessionKey(sessionKey);
|
||||
tempModel.setUserChatId(openId);
|
||||
int i = userDao.updateById(tempModel);
|
||||
if (i == 1) {
|
||||
// String usersig = param.get("usersig").toString();
|
||||
// // 注册聊天账号
|
||||
// Integer createAccountResult = vvRequester.createChatAccount(tempModel, usersig);
|
||||
// if (createAccountResult != 0) {
|
||||
// return ResponseData.error(ResponseInfo.ERROR,"创建聊天账号失败,请稍后再试");
|
||||
// }
|
||||
Map<String,Object> result = new HashMap<>();
|
||||
StpUtil.login(tempModel.getId());
|
||||
UserModelVO userModelVO = BeanUtil.copyProperties(tempModel, UserModelVO.class);
|
||||
userModelVO.setToken(StpUtil.getTokenValue());
|
||||
result.put("info", userModelVO);
|
||||
result.put("newAccount",false);
|
||||
//否则直接返回用户
|
||||
return ResponseData.success(result);
|
||||
}
|
||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR);
|
||||
}
|
||||
|
||||
// 手机号登录 / 注册
|
||||
@PostMapping("loginWithPhoneNumber")
|
||||
public ResponseData<Object> loginWithPhoneNumber(@RequestBody Map<String,Object> param) {
|
||||
|
||||
if (!param.containsKey("code")) {
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR,"code不能为空");
|
||||
}
|
||||
|
||||
String code = param.get("code").toString();
|
||||
String phoneNumber = vvRequester.queryPhoneNumber(code);
|
||||
if (phoneNumber.isEmpty()) {
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR,"手机号码无法查询");
|
||||
}
|
||||
|
||||
// 查询是否存在用户。如果用户存在直接返回 如果用户不存在则新建用户
|
||||
UserModel model = userDao.queryWithPhoneNumber(phoneNumber);
|
||||
Map<String,Object> result = new HashMap<>();
|
||||
if (model != null) { // 老用户
|
||||
UserModelVO userModelVO = BeanUtil.copyProperties(model, UserModelVO.class);
|
||||
StpUtil.login(userModelVO.getId());
|
||||
userModelVO.setToken(StpUtil.getTokenValue());
|
||||
result.put("info",userModelVO);
|
||||
result.put("newAccount", false);
|
||||
result.put("chatInfo",wxChatParam);
|
||||
return ResponseData.success(result);
|
||||
}else{ // 新用户
|
||||
UserModel tempModel = new UserModel();
|
||||
tempModel.setPhoneNumber(phoneNumber);
|
||||
tempModel.setCreateTime(VVTools.currentTimeStamp());
|
||||
//设置状态为正常
|
||||
tempModel.setStatus(0);
|
||||
//设置积分为0
|
||||
tempModel.setPoints(0);
|
||||
userDao.insert(tempModel);
|
||||
|
||||
// 判断用户是否为邀请用户
|
||||
if (param.containsKey("inviterId")) {
|
||||
int inviterId = (int) param.get("inviterId");
|
||||
// 查询用户增加积分
|
||||
UserModel oldUser = userDao.selectById(inviterId);
|
||||
oldUser.setPoints(oldUser.getPoints() + 10);
|
||||
userDao.updateById(oldUser);
|
||||
}
|
||||
|
||||
UserModelVO userModelVO = BeanUtil.copyProperties(tempModel, UserModelVO.class);
|
||||
StpUtil.login(userModelVO.getId());
|
||||
userModelVO.setToken(StpUtil.getTokenValue());
|
||||
result.put("info",userModelVO);
|
||||
result.put("newAccount",true);
|
||||
result.put("chatInfo",wxChatParam);
|
||||
|
||||
return ResponseData.success(result);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 修改用户信息
|
||||
@PostMapping("updateUserInfo")
|
||||
public ResponseData<Object> updateUserInfo(@RequestBody UserModelDTO userModelDTO) {
|
||||
UserModelVO userModelVO = userService.updateUserInfo( userModelDTO);
|
||||
return ResponseData.success(userModelVO);
|
||||
}
|
||||
|
||||
// 获取用户信息
|
||||
@PostMapping("getUserInfo")
|
||||
public ResponseData<Object> getUserInfo(@RequestBody UserModelDTO userModelDTO) {
|
||||
if (userModelDTO.getId() == null){
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR);
|
||||
}
|
||||
UserModel userModel = userDao.selectById(userModelDTO.getId());
|
||||
if (userModel == null) {
|
||||
throw new BusinessException(ErrorCode.USER_DOES_NOT_EXIST);
|
||||
}
|
||||
UserModelVO userModelVO = BeanUtil.copyProperties(userModel, UserModelVO.class);
|
||||
userModelVO.setHavaPassword(userModel.getPassword() != null);
|
||||
return ResponseData.success(userModelVO);
|
||||
}
|
||||
|
||||
// 查询用户所有pk数据
|
||||
@PostMapping("queryMyAllPkData")
|
||||
public ResponseData<Object> queryMyAllPkData(@RequestBody Map<String,Integer> map) {
|
||||
Integer userId = map.get("userId");
|
||||
Integer page = map.get("page");
|
||||
Integer size = map.get("size");
|
||||
List<PkInfoModel> pkInfoModels = pkInfoDao.queryAllPkData(userId, page * size, size);
|
||||
long currentTimeStamp = VVTools.currentTimeStamp();
|
||||
// 查找置顶的数据
|
||||
for (PkInfoModel pkInfoModel : pkInfoModels) {
|
||||
pkInfoModel.setIsPin(pkInfoModel.getPinExpireTime() > currentTimeStamp);
|
||||
}
|
||||
return ResponseData.success(pkInfoModels);
|
||||
}
|
||||
|
||||
// 查询我的pk记录 列表
|
||||
@PostMapping("handlePkInfo")
|
||||
public ResponseData<Object> handlePkInfo(@RequestBody Map<String,Integer> map) {
|
||||
Integer type = map.get("type");
|
||||
Integer id = map.get("userId");
|
||||
Integer page = map.get("page");
|
||||
Integer size = map.get("size");
|
||||
|
||||
// 我发起的pk数据
|
||||
if (type == 1) {
|
||||
return ResponseData.success(userDao.findCreatedPk(id, page * size, size));
|
||||
}else if (type == 2){
|
||||
// 别人邀请我的pk数据
|
||||
return ResponseData.success(userDao.getMyGuestPkList(id, page * size, size));
|
||||
}
|
||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR);
|
||||
}
|
||||
|
||||
|
||||
// 查詢单条pk记录详情
|
||||
@PostMapping("pkRecordDetail")
|
||||
public ResponseData<Object> pkRecordDetail(@RequestBody Map<String,Integer> map) {
|
||||
Integer id = map.get("id");
|
||||
List<PkRecordDetail> pkRecordDetails = detailDao.queryDetail(id);
|
||||
return ResponseData.success(pkRecordDetails);
|
||||
}
|
||||
|
||||
// 签到
|
||||
@PostMapping("signIn")
|
||||
public ResponseData<Object> signIn(@RequestBody Map<String,Integer> map) {
|
||||
Integer userId = map.get("userId");
|
||||
int i = userDao.checkSignStatus(userId);
|
||||
if (i != 0) {
|
||||
throw new BusinessException(ErrorCode.SIGN_IN_FAIL);
|
||||
}
|
||||
|
||||
int result = userDao.signIn(userId);
|
||||
UserModel userModel = userDao.selectById(userId);
|
||||
int count = Integer.parseInt(FunctionConfigHolder.getValue("签到增加积分"));
|
||||
|
||||
// 增加积分
|
||||
userModel.setPoints(userModel.getPoints() + count);
|
||||
|
||||
// 入库
|
||||
userDao.updateById(userModel);
|
||||
|
||||
if (result == 1) {
|
||||
// 增加记录
|
||||
CoinRecords coinRecords = new CoinRecords("签到增加积分",userId,count, (int) VVTools.currentTimeStamp(),1);
|
||||
coinRecordsDao.insert(coinRecords);
|
||||
return ResponseData.success(null);
|
||||
}else {
|
||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR,"签到失败");
|
||||
}
|
||||
}
|
||||
|
||||
// 查询用户当天签到状态
|
||||
@GetMapping("checkSignStatus")
|
||||
public ResponseData<Object> checkSignStatus(Integer userId) {
|
||||
int i = userDao.checkSignStatus(userId);
|
||||
return i == 0 ? ResponseData.success(true) : ResponseData.success(false);
|
||||
}
|
||||
|
||||
// 置顶文章
|
||||
@PostMapping("pinToTop")
|
||||
public ResponseData<Object> pinToTop(@RequestBody Map<String,Integer> map) {
|
||||
// 文章id
|
||||
Integer articleId = map.get("articleId");
|
||||
PkInfoModel pkInfoModel = pkInfoDao.selectById(articleId);
|
||||
Integer userId = pkInfoModel.getSenderId();
|
||||
// 到期时间戳
|
||||
Integer pinExpireTime = map.get("pinExpireTime");
|
||||
|
||||
long currentTimeStamp = VVTools.currentTimeStamp();
|
||||
long hour = VVTools.calculateHoursRound(pinExpireTime, currentTimeStamp);
|
||||
String coin = FunctionConfigHolder.getValue("置顶扣除积分");
|
||||
int totalCoin = (int) (Integer.parseInt(coin) * hour);
|
||||
|
||||
UserModel userModel = userDao.selectById(userId);
|
||||
if (userModel != null) {
|
||||
// 扣除积分 更新数据
|
||||
Integer points = userModel.getPoints();
|
||||
if (points - totalCoin > 0) {
|
||||
userModel.setPoints(userModel.getPoints() - totalCoin);
|
||||
userDao.updateById(userModel);
|
||||
// 设置置顶到期时间
|
||||
pkInfoModel.setPinExpireTime(pinExpireTime);
|
||||
// 设置创建置顶的时间
|
||||
pkInfoModel.setPinCreateTime((int) VVTools.currentTimeStamp());
|
||||
// 更新pk文章数据
|
||||
int i = pkInfoDao.updateById(pkInfoModel);
|
||||
if (i == 1) {
|
||||
String info = String.format("置顶成功,扣除%d积分",totalCoin);
|
||||
// 增加积分变动记录
|
||||
CoinRecords coinRecords = new CoinRecords("置顶扣除积分",userId,totalCoin, (int) VVTools.currentTimeStamp(),0);
|
||||
coinRecordsDao.insert(coinRecords);
|
||||
// 返回给前端数据
|
||||
return ResponseData.success(info);
|
||||
}else {
|
||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR);
|
||||
}
|
||||
}else {
|
||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR,String.format("积分不足,需要%d积分",totalCoin));
|
||||
}
|
||||
}else {
|
||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR,"用户不存在");
|
||||
}
|
||||
}
|
||||
|
||||
// 取消置顶
|
||||
@PostMapping("cancelPin")
|
||||
public ResponseData<Object> cancelPin(@RequestBody Map<String,Integer> map) {
|
||||
Integer articleId = map.get("articleId");
|
||||
PkInfoModel pkInfoModel = pkInfoDao.selectById(articleId);
|
||||
Integer pinExpireTime = pkInfoModel.getPinExpireTime();
|
||||
long hour = VVTools.calculateHoursFloor(pinExpireTime, VVTools.currentTimeStamp());
|
||||
|
||||
String coin = FunctionConfigHolder.getValue("置顶扣除积分");
|
||||
// 计算总积分。用于返还给用户
|
||||
int totalCoin = (int) (Integer.parseInt(coin) * hour);
|
||||
|
||||
// 获取用户对象
|
||||
UserModel userModel = userDao.selectById(pkInfoModel.getSenderId());
|
||||
Integer points = userModel.getPoints();
|
||||
// 返还用户积分
|
||||
userModel.setPoints(points + totalCoin);
|
||||
// 更新数据库
|
||||
userDao.updateById(userModel);
|
||||
|
||||
// 重置置顶时间
|
||||
pkInfoModel.setPinExpireTime(0);
|
||||
pkInfoModel.setPinCreateTime(0);
|
||||
int i = pkInfoDao.updateById(pkInfoModel);
|
||||
if (i == 1) {
|
||||
// 添加积分更变相关记录
|
||||
CoinRecords coinRecords = new CoinRecords("取消置顶返还积分",pkInfoModel.getSenderId(),totalCoin, (int) VVTools.currentTimeStamp(),1);
|
||||
coinRecordsDao.insert(coinRecords);
|
||||
return ResponseData.success(String.format("操作成功,返还%d积分",totalCoin));
|
||||
}else {
|
||||
return ResponseData.error(ResponseInfo.ERROR.getCode(),null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 获取积分明细
|
||||
@PostMapping("pointsDetail")
|
||||
public ResponseData<Object> pointsDetail(@RequestBody Map<String,Integer> map) {
|
||||
Integer userId = map.get("userId");
|
||||
Integer page = map.get("page");
|
||||
Integer size = map.get("size");
|
||||
List<CoinRecords> coinRecords = coinRecordsDao.fetchMyPointsData(userId, page * size, size);
|
||||
return ResponseData.success(coinRecords);
|
||||
}
|
||||
|
||||
@PostMapping("/loginWithMail")
|
||||
public ResponseData<Object> loginWithMail(@RequestBody UserModelDTO model) {
|
||||
return ResponseData.success(userService.loginWithMail(model));
|
||||
}
|
||||
|
||||
@PostMapping("/registerWithMail")
|
||||
public ResponseData<Object> mailRegister(@RequestBody UserModelDTO model){
|
||||
return ResponseData.success(userService.addUserWithMail(model));
|
||||
}
|
||||
|
||||
@GetMapping("/activate")
|
||||
public ResponseData<Object> activateAccount(@RequestParam("token") String token){
|
||||
return ResponseData.success(userService.activateAccount(token));
|
||||
}
|
||||
|
||||
@PostMapping("/resendMail")
|
||||
public ResponseData<Object> resendMail(@RequestBody MailModel mailModel){
|
||||
return ResponseData.success(mailService.resendMail(mailModel));
|
||||
}
|
||||
|
||||
@GetMapping("/verificationMail")
|
||||
public ResponseData<Object> verificationMail(@RequestParam("token") String token){
|
||||
return ResponseData.success(userService.verificationMail(token));
|
||||
}
|
||||
|
||||
@PostMapping("/forgetMail")
|
||||
public ResponseData<Object> sendForgetPassWordMail(@RequestBody MailModel mailModel){
|
||||
return ResponseData.success(userService.sendForgetPassWordMail(mailModel));
|
||||
}
|
||||
|
||||
@GetMapping("/qrcode")
|
||||
public ResponseData<Object> generatedQrcode(){
|
||||
return ResponseData.success(userService.generatedQrcode());
|
||||
}
|
||||
|
||||
@GetMapping("/check/{uuid}")
|
||||
public ResponseData<Object> checkQrcode(@PathVariable String uuid){
|
||||
return ResponseData.success(userService.checkQrcode(uuid));
|
||||
}
|
||||
|
||||
@PostMapping("/scan")
|
||||
public ResponseData<?> scanQrCode(@RequestBody ScanInfoDTO scanInfoDTO) {
|
||||
userService.scanQrcode(scanInfoDTO);
|
||||
return ResponseData.success("");
|
||||
}
|
||||
|
||||
@PostMapping("/confirm")
|
||||
public ResponseData<?> confirm(@RequestBody ScanInfoDTO scanInfoDTO) {
|
||||
userService.confirm(scanInfoDTO);
|
||||
return ResponseData.success("");
|
||||
}
|
||||
|
||||
@PostMapping("/logout")
|
||||
public ResponseData<Object> logOut(@RequestBody UserModelDTO userModelDTO){
|
||||
userService.logOut(userModelDTO.getId());
|
||||
return ResponseData.success("");
|
||||
}
|
||||
|
||||
@PostMapping("/setPassword")
|
||||
public ResponseData<Object>setPassWord(@RequestBody UserModelDTO userModelDTO){
|
||||
return ResponseData.success(userService.setPassWord(userModelDTO));
|
||||
}
|
||||
|
||||
@GetMapping("/resetPassword/")
|
||||
public ResponseData<Object>resetPassWord(@RequestBody UserModelDTO userModelDTO){
|
||||
return ResponseData.success(userService.resetPassWord(userModelDTO));
|
||||
}
|
||||
|
||||
@PostMapping("/updateUserMail")
|
||||
public ResponseData<Object>updateUserMail(@RequestBody MailModel mailModel){
|
||||
return ResponseData.success(userService.updateUserMail(mailModel));
|
||||
}
|
||||
|
||||
@PostMapping("/sendUpdateMailConfirmMail")
|
||||
public ResponseData<Object>sendUpdateMailConfirmMail(@RequestBody MailModel mailModel){
|
||||
return ResponseData.success(mailService.sendUpdateConfirmMail(mailModel));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user