Commit 4c1e922e authored by liming's avatar liming

选装装备数据查询

parent 63e49b6c
package com.antai.sport.http.server.server.api.business.props.controller;
import com.antai.sport.http.server.common.base.Result;
import com.antai.sport.http.server.server.api.business.props.service.PropsService;
import com.antai.sport.http.server.server.api.business.props.vo.UserPropsVO;
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 static com.antai.sport.http.server.common.util.ResultUtil.success;
@RestController
@RequestMapping("props")
@Api(tags = {"装备相关接口"})
public class PropsController {
@Resource
private PropsService propsService;
@ApiOperation("获取用户商店首页")
@GetMapping("/user/{sportUserId}")
public ResponseEntity<Result<UserPropsVO>> getUserProps(@PathVariable("sportUserId") Long sportUserId) {
return success(propsService.getUserProps(sportUserId));
}
}
package com.antai.sport.http.server.server.api.business.props.mapper;
import com.antai.sport.http.server.server.api.business.props.vo.UserPropsItemVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface PropsBizMapper {
List<UserPropsItemVO> getUserProps(@Param("sportUserId") Long sportUserId);
}
package com.antai.sport.http.server.server.api.business.props.service;
import com.antai.sport.http.server.server.api.business.props.mapper.PropsBizMapper;
import com.antai.sport.http.server.server.api.business.props.vo.UserPropsItemVO;
import com.antai.sport.http.server.server.api.business.props.vo.UserPropsVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class PropsService {
@Resource
private PropsBizMapper propsBizMapper;
public UserPropsVO getUserProps(Long sportUserId) {
UserPropsVO result = new UserPropsVO();
Map<String, List<UserPropsItemVO>> propsItemMap = new HashMap<>();
List<UserPropsItemVO> propsItemList = propsBizMapper.getUserProps(sportUserId);
for(UserPropsItemVO propsItem: propsItemList){
if(!propsItemMap.containsKey(propsItem.getPart())){
propsItemMap.put(propsItem.getPart(),new ArrayList<>());
}
propsItemMap.get(propsItem.getPart()).add(propsItem);
}
result.setProps(propsItemMap);
return result;
}
}
package com.antai.sport.http.server.server.api.business.props.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("用户装备详情")
public class UserPropsItemVO {
@ApiModelProperty("装备id")
private Long id;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("图片")
private String img;
@ApiModelProperty("部位")
private String part;
@ApiModelProperty("游戏中资源ky")
private String resourceKey;
@ApiModelProperty("价格")
private Integer price;
@ApiModelProperty("是否已获得 true:已获得 false:未获得")
private Boolean awarded;
}
package com.antai.sport.http.server.server.api.business.props.vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
import java.util.Map;
@Data
@ApiModel("玩家选装页数据")
public class UserPropsVO {
private Map<String, List<UserPropsItemVO>> props;
}
<?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">
<mapper namespace="com.antai.sport.http.server.server.api.business.props.mapper.PropsBizMapper">
<select id="getUserProps" resultType="com.antai.sport.http.server.server.api.business.props.vo.UserPropsItemVO">
select t1.id,t1.name,t1.img,t1.part,t1.resource_key,t1.price,if(t1.free = 1 or t1.awarded = 1,1,0) as awarded
from (
select t1.id,t1.name,t1.img,t1.part,t1.resource_key,t1.price,t1.free,t1.show_order,
if(t2.id is null,0,1) as awarded,t2.ct_date as purchasing_time
from props t1
left join sport_user_props t2 on t1.id = t2.props_id and t2.sport_user_id = #{sportUserId}
where t1.deleted = 0 and t1.online = 1
) t1
order by t1.part,t1.awarded desc,t1.free desc,t1.purchasing_time desc,t1.show_order
</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