提交 812a7c00 作者: han

优化

上级 aba65a50
package com.mmc.iuav.user.model.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MessageTimePointsVO implements Serializable {
private static final long serialVersionUID = -1481188328848093579L;
@ApiModelProperty(value = "购买聊天时长的类型id,唯一识别id", example = "1")
@NotNull(message = "类型id不能为空")
private Integer id;
@ApiModelProperty(value = "购买的积分数额", example = "200")
private Integer points;
@ApiModelProperty(value = "聊天时长,单位(天)", example = "7")
private Integer chatDuration;
}
...@@ -4,6 +4,7 @@ import com.mmc.iuav.response.ResultBody; ...@@ -4,6 +4,7 @@ import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO; import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.qo.MessageQO; import com.mmc.iuav.user.model.qo.MessageQO;
import com.mmc.iuav.user.model.qo.MessageUserQO; import com.mmc.iuav.user.model.qo.MessageUserQO;
import com.mmc.iuav.user.model.vo.MessageTimePointsVO;
import com.mmc.iuav.user.model.vo.MessageTimeVO; import com.mmc.iuav.user.model.vo.MessageTimeVO;
import com.mmc.iuav.user.model.vo.SystemMessageVO; import com.mmc.iuav.user.model.vo.SystemMessageVO;
import com.mmc.iuav.user.model.vo.UserMessageVO; import com.mmc.iuav.user.model.vo.UserMessageVO;
...@@ -114,6 +115,22 @@ public class MessageController extends BaseController{ ...@@ -114,6 +115,22 @@ public class MessageController extends BaseController{
return messageService.purchaseTime(userAccountId,messageTimeVO,token); return messageService.purchaseTime(userAccountId,messageTimeVO,token);
} }
@ApiOperation(value = "购买聊天时长(积分)")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/purchaseTimeByPoints")
public ResultBody purchaseTimeByPoints(HttpServletRequest request,@RequestBody MessageTimePointsVO messageTimeVO){
LoginSuccessDTO userLoginInfoFromRedis = this.getUserLoginInfoFromRedis(request);
Integer userAccountId = userLoginInfoFromRedis.getUserAccountId();
return messageService.purchaseTimeByPoints(userAccountId,messageTimeVO);
}
@ApiOperation(value = "购买聊天时长(微信支付成功)")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/purchaseTimeByWechat")
public ResultBody purchaseTimeByWechat(HttpServletRequest request,@ApiParam(value = "购买聊天时长的类型id,唯一识别id", required = true) Integer typeId){
LoginSuccessDTO userLoginInfoFromRedis = this.getUserLoginInfoFromRedis(request);
Integer userAccountId = userLoginInfoFromRedis.getUserAccountId();
return messageService.purchaseTimeByWechat(userAccountId,typeId);
}
@ApiOperation(value = "返回给小程序端聊天时长选购类型") @ApiOperation(value = "返回给小程序端聊天时长选购类型")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/listTimeType") @PostMapping("/listTimeType")
...@@ -132,4 +149,11 @@ public class MessageController extends BaseController{ ...@@ -132,4 +149,11 @@ public class MessageController extends BaseController{
public ResultBody insertTimeType(@RequestBody MessageTimeVO messageTimeVO){ public ResultBody insertTimeType(@RequestBody MessageTimeVO messageTimeVO){
return messageService.insertTimeType(messageTimeVO); return messageService.insertTimeType(messageTimeVO);
} }
@ApiOperation(value = "根据类型ID返回聊天时长选购类型")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/timeTypeById")
public MessageTimeVO timeTypeById(@ApiParam(value = "购买聊天时长的类型id,唯一识别id", required = true) Integer typeId){
return messageService.timeTypeById(typeId);
}
} }
...@@ -11,7 +11,6 @@ import com.mmc.iuav.user.model.qo.userpoints.AppPointsDetailsQO; ...@@ -11,7 +11,6 @@ import com.mmc.iuav.user.model.qo.userpoints.AppPointsDetailsQO;
import com.mmc.iuav.user.model.qo.userpoints.UserPointQO; import com.mmc.iuav.user.model.qo.userpoints.UserPointQO;
import com.mmc.iuav.user.model.qo.userpoints.UserPointsDetailsQO; import com.mmc.iuav.user.model.qo.userpoints.UserPointsDetailsQO;
import com.mmc.iuav.user.model.vo.BuyPointsVO; import com.mmc.iuav.user.model.vo.BuyPointsVO;
import com.mmc.iuav.user.model.vo.MessageTimeVO;
import com.mmc.iuav.user.model.vo.userpoints.ChangeUserPointVO; import com.mmc.iuav.user.model.vo.userpoints.ChangeUserPointVO;
import com.mmc.iuav.user.service.userpoints.UserPointsService; import com.mmc.iuav.user.service.userpoints.UserPointsService;
import io.swagger.annotations.*; import io.swagger.annotations.*;
......
...@@ -4,6 +4,7 @@ import com.mmc.iuav.page.PageResult; ...@@ -4,6 +4,7 @@ import com.mmc.iuav.page.PageResult;
import com.mmc.iuav.response.ResultBody; import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.qo.MessageQO; import com.mmc.iuav.user.model.qo.MessageQO;
import com.mmc.iuav.user.model.qo.MessageUserQO; import com.mmc.iuav.user.model.qo.MessageUserQO;
import com.mmc.iuav.user.model.vo.MessageTimePointsVO;
import com.mmc.iuav.user.model.vo.MessageTimeVO; import com.mmc.iuav.user.model.vo.MessageTimeVO;
import com.mmc.iuav.user.model.vo.SystemMessageVO; import com.mmc.iuav.user.model.vo.SystemMessageVO;
import com.mmc.iuav.user.model.vo.UserMessageVO; import com.mmc.iuav.user.model.vo.UserMessageVO;
...@@ -74,9 +75,13 @@ public interface MessageService { ...@@ -74,9 +75,13 @@ public interface MessageService {
ResultBody purchaseTime(Integer userAccountId, MessageTimeVO messageTimeVO, String token); ResultBody purchaseTime(Integer userAccountId, MessageTimeVO messageTimeVO, String token);
ResultBody purchaseTimeByPoints(Integer userAccountId, MessageTimePointsVO messageTimeVO);
ResultBody purchaseTimeByWechat(Integer userAccountId, Integer id);
ResultBody listTimeType(); ResultBody listTimeType();
ResultBody updateTimeType(MessageTimeVO messageTimeVO); ResultBody updateTimeType(MessageTimeVO messageTimeVO);
ResultBody insertTimeType(MessageTimeVO messageTimeVO); ResultBody insertTimeType(MessageTimeVO messageTimeVO);
MessageTimeVO timeTypeById(Integer id);
} }
package com.mmc.iuav.user.service.impl; package com.mmc.iuav.user.service.impl;
import com.google.gson.Gson;
import com.mmc.iuav.page.PageResult; import com.mmc.iuav.page.PageResult;
import com.mmc.iuav.response.ResultBody; import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.dao.MessageDao; import com.mmc.iuav.user.dao.MessageDao;
...@@ -9,10 +8,7 @@ import com.mmc.iuav.user.entity.*; ...@@ -9,10 +8,7 @@ import com.mmc.iuav.user.entity.*;
import com.mmc.iuav.user.feign.PaymentAppApi; import com.mmc.iuav.user.feign.PaymentAppApi;
import com.mmc.iuav.user.model.qo.MessageQO; import com.mmc.iuav.user.model.qo.MessageQO;
import com.mmc.iuav.user.model.qo.MessageUserQO; import com.mmc.iuav.user.model.qo.MessageUserQO;
import com.mmc.iuav.user.model.vo.MessageTimeVO; import com.mmc.iuav.user.model.vo.*;
import com.mmc.iuav.user.model.vo.OrderRequestParamsVO;
import com.mmc.iuav.user.model.vo.SystemMessageVO;
import com.mmc.iuav.user.model.vo.UserMessageVO;
import com.mmc.iuav.user.model.vo.userpoints.ChangeUserPointVO; import com.mmc.iuav.user.model.vo.userpoints.ChangeUserPointVO;
import com.mmc.iuav.user.service.MessageService; import com.mmc.iuav.user.service.MessageService;
import com.mmc.iuav.user.service.userpoints.UserPointsService; import com.mmc.iuav.user.service.userpoints.UserPointsService;
...@@ -254,7 +250,7 @@ public class MessageServiceImpl implements MessageService { ...@@ -254,7 +250,7 @@ public class MessageServiceImpl implements MessageService {
} }
@Override @Override
public ResultBody purchaseTime(Integer userAccountId, MessageTimeVO messageTimeVO,String token) { public ResultBody purchaseTime(Integer userAccountId, MessageTimeVO messageTimeVO, String token) {
if(messageTimeVO.getId() == null){ if(messageTimeVO.getId() == null){
return ResultBody.error("聊天类型不能传递为空"); return ResultBody.error("聊天类型不能传递为空");
} }
...@@ -299,7 +295,54 @@ public class MessageServiceImpl implements MessageService { ...@@ -299,7 +295,54 @@ public class MessageServiceImpl implements MessageService {
} }
return ResultBody.success("成功购买"+messageTimeVO1.getChatDuration()+"天聊天功能"); return ResultBody.success("成功购买"+messageTimeVO1.getChatDuration()+"天聊天功能");
} }
@Override
public ResultBody purchaseTimeByWechat(Integer userAccountId, Integer id) {
if(id == null){
return ResultBody.error("聊天类型不能传递为空");
}
MessageTimeVO messageTimeVO1 = messageDao.selectUserMessageTimeType(id);
// 增加聊天时长
String timeValue = redisTemplate.opsForValue().get("Message" + userAccountId);
if (timeValue == null || timeValue.equals("")) {
redisTemplate.setValueSerializer(RedisSerializer.json());
redisTemplate.opsForValue().set("Message" + userAccountId, userAccountId.toString(), messageTimeVO1.getChatDuration() * 24 * 60 * 60, TimeUnit.SECONDS);
return ResultBody.success("成功购买"+messageTimeVO1.getChatDuration()+"天聊天功能");
}
Long remainingTime = redisTemplate.getExpire("Message" + userAccountId, TimeUnit.SECONDS);
if (remainingTime != null && remainingTime >= 0) {
long newTime = remainingTime + (messageTimeVO1.getChatDuration() * 24 * 60 * 60); // 转换为毫秒后加上七天的毫秒数
redisTemplate.opsForValue().set("Message" + userAccountId, userAccountId.toString(), newTime, TimeUnit.SECONDS);
}
return ResultBody.success("成功购买"+messageTimeVO1.getChatDuration()+"天聊天功能");
}
@Override
public ResultBody purchaseTimeByPoints(Integer userAccountId, MessageTimePointsVO messageTimeVO) {
if(messageTimeVO.getId() == null){
return ResultBody.error("聊天类型不能传递为空");
}
MessageTimeVO messageTimeVO1 = messageDao.selectUserMessageTimeType(messageTimeVO.getId());
ChangeUserPointVO changeUserPointVO = new ChangeUserPointVO();
changeUserPointVO.setUserAccountId(userAccountId);
changeUserPointVO.setChangePoint(-messageTimeVO1.getPoints());
changeUserPointVO.setChangeType(8);
ResultBody resultBody = userPointsService.change(changeUserPointVO);
if (!"200".equals(resultBody.getCode())) {
return resultBody;
}
// 增加聊天时长
String timeValue = redisTemplate.opsForValue().get("Message" + userAccountId);
if (timeValue == null || timeValue.equals("")) {
redisTemplate.setValueSerializer(RedisSerializer.json());
redisTemplate.opsForValue().set("Message" + userAccountId, userAccountId.toString(), messageTimeVO1.getChatDuration() * 24 * 60 * 60, TimeUnit.SECONDS);
return ResultBody.success("成功购买"+messageTimeVO1.getChatDuration()+"天聊天功能");
}
Long remainingTime = redisTemplate.getExpire("Message" + userAccountId, TimeUnit.SECONDS);
if (remainingTime != null && remainingTime >= 0) {
long newTime = remainingTime + (messageTimeVO1.getChatDuration() * 24 * 60 * 60); // 转换为毫秒后加上七天的毫秒数
redisTemplate.opsForValue().set("Message" + userAccountId, userAccountId.toString(), newTime, TimeUnit.SECONDS);
}
return ResultBody.success("成功购买"+messageTimeVO1.getChatDuration()+"天聊天功能");
}
@Override @Override
public ResultBody listTimeType() { public ResultBody listTimeType() {
List<MessageTimeVO> messageTimeVOS = messageDao.listTimeType(); List<MessageTimeVO> messageTimeVOS = messageDao.listTimeType();
...@@ -318,6 +361,12 @@ public class MessageServiceImpl implements MessageService { ...@@ -318,6 +361,12 @@ public class MessageServiceImpl implements MessageService {
return ResultBody.success(); return ResultBody.success();
} }
@Override
public MessageTimeVO timeTypeById(Integer id) {
MessageTimeVO messageTimeVO1 = messageDao.selectUserMessageTimeType(id);
return messageTimeVO1;
}
public static boolean isOverThreeMinutes(String createTime) { public static boolean isOverThreeMinutes(String createTime) {
// 定义日期时间格式化对象 // 定义日期时间格式化对象
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
......
...@@ -48,4 +48,5 @@ data-filter: ...@@ -48,4 +48,5 @@ data-filter:
- /userapp/auth/getVerifyCode - /userapp/auth/getVerifyCode
- /userapp/auth/webRegister - /userapp/auth/webRegister
- /userapp/auth/webLogin - /userapp/auth/webLogin
- /userapp/message/timeTypeById
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论