Commit aa370a79 authored by liming's avatar liming

提交关于积分描述的修改

parent 3929dbc1
......@@ -52,6 +52,11 @@ public class SportUserGameCurrencyLog implements Serializable {
*/
private Long sourceId;
/**
* 描述
*/
private String description;
/**
* 创建时间
*/
......
......@@ -75,7 +75,7 @@ public class AchievementService {
initAchievement(summary.getUserId(), AchievementCondition.DISTANCE, summary.getTotalDistance().intValue());
initAchievement(summary.getUserId(), AchievementCondition.CLIMB_DISTANCE,
summary.getTotalClimbDistance().intValue());
initAchievement(summary.getUserId(), AchievementCondition.CALORIE, summary.getTotalCalorie()/1000);
initAchievement(summary.getUserId(), AchievementCondition.CALORIE, summary.getTotalCalorie() / 1000);
}
......@@ -100,8 +100,9 @@ public class AchievementService {
achievementForSportUser.setMarkRead(false);
achievementForSportUser.setCreateTime(LocalDateTime.now());
achievementForSportUserMapper.insert(achievementForSportUser);
String description = "达成成就:" + achievement.getAchievementName();
sportUserGameCurrencyService.addCurrency(sportUserId, achievement.getCurrency(),
GameCurrencySourceType.ACHIEVEMENT, achievementForSportUser.getId());
GameCurrencySourceType.ACHIEVEMENT, achievementForSportUser.getId(), description);
}
}
}
......
......@@ -7,4 +7,8 @@ import java.util.List;
public interface BaseBusinessMapper {
List<AreaRespDTO> getArea(@Param("parentId") Long parentId);
String getGameMode(@Param("code") Integer code);
String getMapPath(@Param("pathKey") String pathKey);
}
......@@ -52,16 +52,16 @@ public class PropsService {
@Transactional
public void purchase(Long sportUserId, Long propsId) {
QueryWrapper<SportUserProps> userPropsQuery = new QueryWrapper<>();
userPropsQuery.lambda().eq(SportUserProps::getSportUserId,sportUserId).eq(SportUserProps::getPropsId,propsId);
userPropsQuery.lambda().eq(SportUserProps::getSportUserId, sportUserId).eq(SportUserProps::getPropsId, propsId);
SportUserProps userProps = sportUserPropsMapper.selectOne(userPropsQuery);
if(userProps!=null){
if (userProps != null) {
throw new BusinessException("您已经购买过当前装备,不能重复购买");
}
Props props = propsMapper.selectById(propsId);
QueryWrapper<SportUserGameCurrency> userGameCurrencyQuery = new QueryWrapper<>();
userGameCurrencyQuery.lambda().eq(SportUserGameCurrency::getSportUserId,sportUserId);
userGameCurrencyQuery.lambda().eq(SportUserGameCurrency::getSportUserId, sportUserId);
SportUserGameCurrency userGameCurrency = sportUserGameCurrencyMapper.selectOne(userGameCurrencyQuery);
if(userGameCurrency == null || userGameCurrency.getAmmount()<props.getPrice()){
if (userGameCurrency == null || userGameCurrency.getAmmount() < props.getPrice()) {
throw new BusinessException("对不起,您的余额不足");
}
......@@ -84,6 +84,7 @@ public class PropsService {
userGameCurrency.setAmmount(userGameCurrency.getAmmount() - props.getPrice());
sportUserGameCurrencyMapper.updateById(userGameCurrency);
String description = "购买装备:" + props.getName();
SportUserGameCurrencyLog userGameCurrencyLog = new SportUserGameCurrencyLog();
userGameCurrencyLog.setSourceType(GameCurrencySourceType.SHOP);
userGameCurrencyLog.setType(GameCurrencyLogType.SUBTRACT);
......@@ -91,6 +92,7 @@ public class PropsService {
userGameCurrencyLog.setAmmount(props.getPrice());
userGameCurrencyLog.setSourceId(order.getId());
userGameCurrencyLog.setCtDate(LocalDateTime.now());
userGameCurrencyLog.setDescription(description);
sportUserGameCurrencyLogMapper.insert(userGameCurrencyLog);
}
......
......@@ -25,7 +25,7 @@ public class SportUserGameCurrencyService {
@Resource
private SportUserGameCurrencyLogMapper sportUserGameCurrencyLogMapper;
public void addCurrency(Long sportUserId, Integer currency, Integer sourceType, Long sourceId) {
public void addCurrency(Long sportUserId, Integer currency, Integer sourceType, Long sourceId, String description) {
SportUserGameCurrency userGameCurrency =
sportUserGameCurrencyMapper.selectOne(new QueryWrapper<SportUserGameCurrency>().lambda()
.eq(SportUserGameCurrency::getSportUserId, sportUserId));
......@@ -48,6 +48,7 @@ public class SportUserGameCurrencyService {
gameCurrencyLog.setSourceId(sourceId);
gameCurrencyLog.setCtDate(LocalDateTime.now());
gameCurrencyLog.setType(GameCurrencyLogType.ADD);
gameCurrencyLog.setDescription(description);
sportUserGameCurrencyLogMapper.insert(gameCurrencyLog);
}
......@@ -82,6 +83,7 @@ public class SportUserGameCurrencyService {
logVO.setTime(log.getCtDate());
logVO.setType(log.getType());
logVO.setAmount(log.getAmmount());
logVO.setDesc(log.getDescription());
resultList.add(logVO);
}
return resultList;
......
......@@ -18,6 +18,7 @@ import com.antai.sport.http.server.repository.sport.mapper.*;
import com.antai.sport.http.server.repository.teamtraining.entity.TeamTraining;
import com.antai.sport.http.server.repository.teamtraining.mapper.TeamTrainingMapper;
import com.antai.sport.http.server.server.api.business.achievement.service.AchievementService;
import com.antai.sport.http.server.server.api.business.base.mapper.BaseBusinessMapper;
import com.antai.sport.http.server.server.api.business.simplematch.dto.SimpleMatchUserScheduleVO;
import com.antai.sport.http.server.server.api.business.simplematch.mapper.SimpleMatchBusinessMapper;
import com.antai.sport.http.server.server.api.business.sportusergamecurrency.service.SportUserGameCurrencyService;
......@@ -83,6 +84,8 @@ public class SportUserTrainingLogService {
private SportUserGameCurrencyBaseRuleMapper sportUserGameCurrencyBaseRuleMapper;
@Resource
private SportUserGameCurrencyMatchRuleMapper sportUserGameCurrencyMatchRuleMapper;
@Resource
private BaseBusinessMapper baseBusinessMapper;
@Resource
private SportUserTrainingLogConverter sportUserTrainingLogConverter;
......@@ -125,7 +128,8 @@ public class SportUserTrainingLogService {
//处理总排行
this.modifyTotalRank(playerId, log);
//处理玩家积分
this.handleSportUserCurrency(playerId, log.getId(), log.getCalorie(), gameMode, log.getMatchRank());
this.handleSportUserCurrency(playerId, log.getId(), log.getCalorie(), gameMode, log.getMatchRank(),
log.getSourceName(), log.getPath());
//处理玩家成就
achievementService.handleSportAchievement(gameMode, summary);
}
......@@ -137,7 +141,8 @@ public class SportUserTrainingLogService {
* @param gameMode
* @param rank
*/
public void handleSportUserCurrency(Long playerId, Long logId, Integer calorie, Integer gameMode, Integer rank) {
public void handleSportUserCurrency(Long playerId, Long logId, Integer calorie, Integer gameMode, Integer rank,
String sourceName, String pathKey) {
if (calorie == null || calorie == 0) {
return;
}
......@@ -147,7 +152,7 @@ public class SportUserTrainingLogService {
}
Integer coefficient = baseRule.get(0).getCoefficient();
Integer currency = calorie / coefficient;
if(currency == 0) {
if (currency == 0) {
return;
}
SportUserGameCurrencyMatchRule matchRule =
......@@ -155,7 +160,15 @@ public class SportUserTrainingLogService {
if (matchRule != null && matchRule.getRate() != null) {
currency = matchRule.getRate().multiply(BigDecimal.valueOf(currency)).intValue();
}
sportUserGameCurrencyService.addCurrency(playerId, currency, GameCurrencySourceType.SPORT, logId);
String gameModeName = baseBusinessMapper.getGameMode(gameMode);
String description;
if(gameMode == GameMode.TOUR || gameMode == GameMode.COURSE_TRAINING) {
String pathName = baseBusinessMapper.getMapPath(pathKey);
description = gameModeName + ":" + pathName;
} else {
description = gameModeName + ":" + sourceName;
}
sportUserGameCurrencyService.addCurrency(playerId, currency, GameCurrencySourceType.SPORT, logId, description);
}
/**
......
......@@ -14,4 +14,11 @@
order by code
</select>
<select id="getGameMode" resultType="java.lang.String">
select name from game_mode where code = #{code}
</select>
<select id="getMapPath" resultType="java.lang.String">
select path_name from map_path where path_key = #{pathKey}
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment