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

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

场地接口例子 完成

后端创建
前端获取详情
后端获取列表 分页
parent 598edd93
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 lombok.Data;
import lombok.EqualsAndHashCode;
......@@ -79,8 +84,14 @@ public class FieldsVo implements Serializable {
private String comment;
@ApiModelProperty(value = "创建时间")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createdAt;
@ApiModelProperty(value = "修改时间")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime updatedAt;
}
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.thoughtworks.xstream.core.util.Fields;
import java.util.HashMap;
import java.util.List;
/**
* <p>
......@@ -15,8 +15,8 @@ import com.thoughtworks.xstream.core.util.Fields;
*/
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.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
@Api
@RestController
@RequestMapping("/user/fields")
......@@ -16,15 +18,29 @@ public class FieldsController {
@Autowired
private FieldsServiceImpl fieldsService;
@PostMapping(value = "")
@ApiOperation(value = "创建场地")
@GetMapping(value = "details")
@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 = "接口返回对象参数")
public ResponseDto<FieldsVo> createFields(@RequestBody FieldsParam fieldsParam) {
// boolean result=fieldsService.fieldCreate(fieldsParam);
// if(result) {
// return ResponseDto.success();
// }else{
return ResponseDto.failure("场地创建失败");
// }
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) {
HashMap<String, Object> result = null;
result = fieldsService.fieldList(page-1,size,city_id);
if (null == result) {
return ResponseDto.failure("场地列表获取失败");
} else {
return ResponseDto.success(result);
}
}
}
......@@ -3,22 +3,23 @@ package com.liquidnet.service.kylin.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.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.service.KylinFieldsService;
import org.springframework.beans.BeanUtils;
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.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.Collections;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@Service
public class FieldsServiceImpl extends ServiceImpl<KylinFieldsMapper, KylinFields> implements KylinFieldsService {
......@@ -29,23 +30,41 @@ public class FieldsServiceImpl extends ServiceImpl<KylinFieldsMapper, KylinField
@Autowired
private RedisUtil redisUtil;
@Autowired
private KylinFieldsMapper fieldsMapper;
@Override
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
public int fieldList(int page, int size) {
return 0;
query.with(pageable);
info.put("total",count);
info.put("data", mongoTemplate.find(query, FieldsVo.class, FieldsVo.class.getSimpleName()));
return info;
}
/**
* 获取场地详情
*
* @param fieldId
* @return FieldsVo
*/
@Override
public int fieldDetails(int fieldId) {
return 0;
public FieldsVo fieldDetails(String fieldId) {
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 {
@Autowired
private KylinFieldRelationMapper fieldRelationsMapper;
/**
* 创建场地
* @param fieldsParam
* @return boolean
*/
@Override
@Transactional
public boolean fieldCreate(FieldsParam fieldsParam) {
try {
// 获取 主键id
String fieldsId = IDGenerator.nextSnowId().toString();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
// mysql 操作
fieldsMapper.insert(fieldsParam.getFields(fieldsId,createdAt));
kylinFieldStatusMapper.insert(fieldsParam.getFieldStatus(fieldsId,createdAt));
fieldRelationsMapper.insert(fieldsParam.getFieldRelations(fieldsId,createdAt));
// mongo 操作
FieldsVo fieldsVo = new FieldsVo();
BeanUtils.copyProperties(fieldsParam, fieldsVo);
fieldsVo.setFieldsId(fieldsId);
......@@ -56,6 +65,7 @@ public class FieldsAdminServiceImpl implements KylinFieldsAdminService {
Collections.singletonList(fieldsVo), FieldsVo.class.getSimpleName()
);
// redis 操作
redisUtil.hset("kylin:fields:id", fieldsId, fieldsVo);
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