Commit 97b2bad7 authored by liming's avatar liming

新成就查询接口

parent 8467c245
package com.antai.sport.http.server.server.api.business.achievement.controller;
import com.antai.sport.http.server.common.base.Result;
import com.antai.sport.http.server.server.api.business.achievement.dto.UserAchievementVO;
import com.antai.sport.http.server.server.api.business.achievement.service.AchievementService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import static com.antai.sport.http.server.common.util.ResultUtil.success;
@RestController
@RequestMapping("achievement")
@Api(tags = {"成就接口"})
public class AchievementController {
@Resource
private AchievementService achievementService;
@ApiOperation(value = "查询用户新成就")
@GetMapping("/new/{sportUserId}")
public ResponseEntity<Result<List<UserAchievementVO>>> getNewAchievement(@PathVariable("sportUserId") Long sportUserId) {
return success(achievementService.getNewAchievement(sportUserId));
}
}
package com.antai.sport.http.server.server.api.business.achievement.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
@ApiModel("用户成就VO")
public class UserAchievementVO {
@ApiModelProperty("成就记录id")
private Long id;
@ApiModelProperty("成就名称")
private String achievementName;
@ApiModelProperty("logo url")
private String logo;
@ApiModelProperty("成就获取时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private LocalDateTime createTime;
}
package com.antai.sport.http.server.server.api.business.achievement.mapper; package com.antai.sport.http.server.server.api.business.achievement.mapper;
import com.antai.sport.http.server.repository.achievement.entity.Achievement; import com.antai.sport.http.server.repository.achievement.entity.Achievement;
import com.antai.sport.http.server.server.api.business.achievement.dto.UserAchievementVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
public interface AchievementBizMapper { public interface AchievementBizMapper {
List<Achievement> getSignInAchievement(@Param("achievementCondition") Integer achievementCondition, List<Achievement> getAchievement(@Param("achievementCondition") Integer achievementCondition,
@Param("sportUserId") Long sportUserId); @Param("sportUserId") Long sportUserId);
List<UserAchievementVO> getNewAchievement(@Param("sportUserId") Long sportUserId);
int updateReadAchievement(@Param("list") List<UserAchievementVO> list);
} }
...@@ -7,6 +7,7 @@ import com.antai.sport.http.server.repository.achievement.entity.Achievement; ...@@ -7,6 +7,7 @@ import com.antai.sport.http.server.repository.achievement.entity.Achievement;
import com.antai.sport.http.server.repository.achievement.entity.AchievementForSportUser; import com.antai.sport.http.server.repository.achievement.entity.AchievementForSportUser;
import com.antai.sport.http.server.repository.achievement.mapper.AchievementForSportUserMapper; import com.antai.sport.http.server.repository.achievement.mapper.AchievementForSportUserMapper;
import com.antai.sport.http.server.repository.sport.entity.SportUserSummary; import com.antai.sport.http.server.repository.sport.entity.SportUserSummary;
import com.antai.sport.http.server.server.api.business.achievement.dto.UserAchievementVO;
import com.antai.sport.http.server.server.api.business.achievement.mapper.AchievementBizMapper; import com.antai.sport.http.server.server.api.business.achievement.mapper.AchievementBizMapper;
import com.antai.sport.http.server.server.api.business.sportusergamecurrency.service.SportUserGameCurrencyService; import com.antai.sport.http.server.server.api.business.sportusergamecurrency.service.SportUserGameCurrencyService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -74,7 +75,7 @@ public class AchievementService { ...@@ -74,7 +75,7 @@ public class AchievementService {
if (conditionValue == null) { if (conditionValue == null) {
return; return;
} }
List<Achievement> achievementList = achievementBizMapper.getSignInAchievement(condition, sportUserId); List<Achievement> achievementList = achievementBizMapper.getAchievement(condition, sportUserId);
for (Achievement achievement : achievementList) { for (Achievement achievement : achievementList) {
if (conditionValue.compareTo(achievement.getConditionValue()) >= 0) { if (conditionValue.compareTo(achievement.getConditionValue()) >= 0) {
AchievementForSportUser achievementForSportUser = new AchievementForSportUser(); AchievementForSportUser achievementForSportUser = new AchievementForSportUser();
...@@ -89,4 +90,18 @@ public class AchievementService { ...@@ -89,4 +90,18 @@ public class AchievementService {
} }
} }
/**
* 查询用户新成就
*
* @param sportUserId
* @return
*/
public List<UserAchievementVO> getNewAchievement(Long sportUserId) {
List<UserAchievementVO> achievementVOList = achievementBizMapper.getNewAchievement(sportUserId);
if (!achievementVOList.isEmpty()) {
achievementBizMapper.updateReadAchievement(achievementVOList);
}
return achievementVOList;
}
} }
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.antai.sport.http.server.server.api.business.achievement.mapper.AchievementBizMapper"> <mapper namespace="com.antai.sport.http.server.server.api.business.achievement.mapper.AchievementBizMapper">
<select id="getSignInAchievement" resultType="com.antai.sport.http.server.repository.achievement.entity.Achievement"> <select id="getAchievement"
resultType="com.antai.sport.http.server.repository.achievement.entity.Achievement">
select * select *
from achievement t1 from achievement t1
where t1.deleted = 0 where t1.deleted = 0
...@@ -13,4 +14,22 @@ ...@@ -13,4 +14,22 @@
) )
order by level order by level
</select> </select>
<select id="getNewAchievement"
resultType="com.antai.sport.http.server.server.api.business.achievement.dto.UserAchievementVO">
select t1.id, t2.achievement_name, t2.logo, t1.create_time
from achievement_for_sport_user t1
left join achievement t2 on t1.achievement_id = t2.id
where t1.mark_read = 0
and sport_user_id = #{sportUserId}
order by t1.create_time,t1.id
</select>
<update id="updateReadAchievement">
update achievement_for_sport_user set mark_read = 1
where id in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
</mapper> </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