记得上下班打卡 | git大法好,push需谨慎

Commit 6d1498bc authored by 胡佳晨's avatar 胡佳晨

场地接口例子 完成

后端创建
前端获取详情
后端获取列表 分页
parent 598edd93
package com.liquidnet.service.kylin.dto.vo; package com.liquidnet.service.kylin.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
...@@ -79,8 +84,14 @@ public class FieldsVo implements Serializable { ...@@ -79,8 +84,14 @@ public class FieldsVo implements Serializable {
private String comment; private String comment;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createdAt; private LocalDateTime createdAt;
@ApiModelProperty(value = "修改时间") @ApiModelProperty(value = "修改时间")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
} }
package com.liquidnet.service.kylin.service; package com.liquidnet.service.kylin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.kylin.dto.param.FieldsParam;
import com.liquidnet.service.kylin.dto.vo.FieldsVo; import com.liquidnet.service.kylin.dto.vo.FieldsVo;
import com.thoughtworks.xstream.core.util.Fields;
import java.util.HashMap;
import java.util.List;
/** /**
* <p> * <p>
...@@ -15,8 +15,8 @@ import com.thoughtworks.xstream.core.util.Fields; ...@@ -15,8 +15,8 @@ import com.thoughtworks.xstream.core.util.Fields;
*/ */
public interface KylinFieldsService{ public interface KylinFieldsService{
int fieldList(int page,int size); HashMap<String,Object> fieldList(int page, int size, int city_id);
int fieldDetails(int fieldId); FieldsVo fieldDetails(String fieldId);
} }
...@@ -8,6 +8,8 @@ import io.swagger.annotations.*; ...@@ -8,6 +8,8 @@ import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
@Api @Api
@RestController @RestController
@RequestMapping("/user/fields") @RequestMapping("/user/fields")
...@@ -16,15 +18,29 @@ public class FieldsController { ...@@ -16,15 +18,29 @@ public class FieldsController {
@Autowired @Autowired
private FieldsServiceImpl fieldsService; private FieldsServiceImpl fieldsService;
@PostMapping(value = "") @GetMapping(value = "details")
@ApiOperation(value = "创建场地") @ApiOperation(value = "获取场地详情")
@ApiResponse(response = FieldsVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<FieldsVo> fieldDetails(@RequestParam(value = "fieldId", defaultValue = "59666659929161728") String fieldId) {
FieldsVo result = null;
result = fieldsService.fieldDetails(fieldId);
if (null == result) {
return ResponseDto.failure("场地详情查询失败");
} else {
return ResponseDto.success(result);
}
}
@GetMapping(value = "list")
@ApiOperation(value = "获取场地列表")
@ApiResponse(response = FieldsVo.class, code = 200, message = "接口返回对象参数") @ApiResponse(response = FieldsVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<FieldsVo> createFields(@RequestBody FieldsParam fieldsParam) { public ResponseDto<HashMap<String, Object>> fieldList(@RequestParam(value = "page", defaultValue = "1") int page,@RequestParam(value = "size", defaultValue = "10") int size,@RequestParam(value = "city_id", defaultValue = "1") int city_id) {
// boolean result=fieldsService.fieldCreate(fieldsParam); HashMap<String, Object> result = null;
// if(result) { result = fieldsService.fieldList(page-1,size,city_id);
// return ResponseDto.success(); if (null == result) {
// }else{ return ResponseDto.failure("场地列表获取失败");
return ResponseDto.failure("场地创建失败"); } else {
// } return ResponseDto.success(result);
}
} }
} }
...@@ -3,22 +3,23 @@ package com.liquidnet.service.kylin.service.impl; ...@@ -3,22 +3,23 @@ package com.liquidnet.service.kylin.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.IDGenSnow;
import com.liquidnet.service.kylin.dto.param.FieldsParam;
import com.liquidnet.service.kylin.dto.vo.FieldsVo; import com.liquidnet.service.kylin.dto.vo.FieldsVo;
import com.liquidnet.service.kylin.entity.KylinFields; import com.liquidnet.service.kylin.entity.KylinFields;
import com.liquidnet.service.kylin.mapper.KylinFieldRelationMapper;
import com.liquidnet.service.kylin.mapper.KylinFieldStatusMapper;
import com.liquidnet.service.kylin.mapper.KylinFieldsMapper; import com.liquidnet.service.kylin.mapper.KylinFieldsMapper;
import com.liquidnet.service.kylin.service.KylinFieldsService; import com.liquidnet.service.kylin.service.KylinFieldsService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection; import java.util.ArrayList;
import java.util.Collections; import java.util.HashMap;
import java.util.List;
@Service @Service
public class FieldsServiceImpl extends ServiceImpl<KylinFieldsMapper, KylinFields> implements KylinFieldsService { public class FieldsServiceImpl extends ServiceImpl<KylinFieldsMapper, KylinFields> implements KylinFieldsService {
...@@ -29,23 +30,41 @@ public class FieldsServiceImpl extends ServiceImpl<KylinFieldsMapper, KylinField ...@@ -29,23 +30,41 @@ public class FieldsServiceImpl extends ServiceImpl<KylinFieldsMapper, KylinField
@Autowired @Autowired
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Autowired @Override
private KylinFieldsMapper fieldsMapper; public HashMap<String,Object> fieldList(int page, int size, int city_id) {
HashMap<String,Object> info = new HashMap<>();
@Autowired // 排序 分页
private KylinFieldStatusMapper kylinFieldStatusMapper; Pageable pageable = PageRequest.of(0, size, Sort.by(Sort.Direction.DESC, "createdAt"));
@Autowired //条件
private KylinFieldRelationMapper fieldRelationsMapper; Query query = Query.query(Criteria.where("cityId").is(city_id));
// 查询总数
long count = mongoTemplate.count(query, FieldsVo.class, FieldsVo.class.getSimpleName());
@Override query.with(pageable);
public int fieldList(int page, int size) { info.put("total",count);
return 0; info.put("data", mongoTemplate.find(query, FieldsVo.class, FieldsVo.class.getSimpleName()));
return info;
} }
/**
* 获取场地详情
*
* @param fieldId
* @return FieldsVo
*/
@Override @Override
public int fieldDetails(int fieldId) { public FieldsVo fieldDetails(String fieldId) {
return 0; FieldsVo info = null;
// 获取 redis数据
info = (FieldsVo) redisUtil.hget("kylin:fields:id", fieldId + "");
//不存在 获取 mongo数据
if (null == info) {
info = mongoTemplate.findOne(Query.query(Criteria.where("fieldsId").is(fieldId)), FieldsVo.class, FieldsVo.class.getSimpleName());
}
return info;
} }
} }
...@@ -37,17 +37,26 @@ public class FieldsAdminServiceImpl implements KylinFieldsAdminService { ...@@ -37,17 +37,26 @@ public class FieldsAdminServiceImpl implements KylinFieldsAdminService {
@Autowired @Autowired
private KylinFieldRelationMapper fieldRelationsMapper; private KylinFieldRelationMapper fieldRelationsMapper;
/**
* 创建场地
* @param fieldsParam
* @return boolean
*/
@Override @Override
@Transactional @Transactional
public boolean fieldCreate(FieldsParam fieldsParam) { public boolean fieldCreate(FieldsParam fieldsParam) {
try { try {
// 获取 主键id
String fieldsId = IDGenerator.nextSnowId().toString(); String fieldsId = IDGenerator.nextSnowId().toString();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now(); LocalDateTime createdAt = LocalDateTime.now();
// mysql 操作
fieldsMapper.insert(fieldsParam.getFields(fieldsId,createdAt)); fieldsMapper.insert(fieldsParam.getFields(fieldsId,createdAt));
kylinFieldStatusMapper.insert(fieldsParam.getFieldStatus(fieldsId,createdAt)); kylinFieldStatusMapper.insert(fieldsParam.getFieldStatus(fieldsId,createdAt));
fieldRelationsMapper.insert(fieldsParam.getFieldRelations(fieldsId,createdAt)); fieldRelationsMapper.insert(fieldsParam.getFieldRelations(fieldsId,createdAt));
// mongo 操作
FieldsVo fieldsVo = new FieldsVo(); FieldsVo fieldsVo = new FieldsVo();
BeanUtils.copyProperties(fieldsParam, fieldsVo); BeanUtils.copyProperties(fieldsParam, fieldsVo);
fieldsVo.setFieldsId(fieldsId); fieldsVo.setFieldsId(fieldsId);
...@@ -56,6 +65,7 @@ public class FieldsAdminServiceImpl implements KylinFieldsAdminService { ...@@ -56,6 +65,7 @@ public class FieldsAdminServiceImpl implements KylinFieldsAdminService {
Collections.singletonList(fieldsVo), FieldsVo.class.getSimpleName() Collections.singletonList(fieldsVo), FieldsVo.class.getSimpleName()
); );
// redis 操作
redisUtil.hset("kylin:fields:id", fieldsId, fieldsVo); redisUtil.hset("kylin:fields:id", fieldsId, fieldsVo);
return true; return true;
......
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