Commit 36826bc2 by giaogiao

App版本控制

parent d1551f73
package com.jumeirah.api.app.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jumeirah.common.entity.VersionControl;
import com.jumeirah.common.service.VersionControlService;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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;
/**
* App版本控制 控制器
* <p>
* 仅查询最新创建的一条版本数据返回给App
*
* @author giao
* @since 2020-10-26
*/
@Slf4j
@RestController
@RequestMapping("/app/versionControl")
@Api(value = "App版本控制API", tags = {"App版本控制"})
public class VersionControlController extends BaseController {
@Autowired
private VersionControlService versionControlService;
// /**
// * 添加App版本控制
// */
// @PostMapping("/add")
// @OperationLog(name = "添加App版本控制", type = OperationLogType.ADD)
// @ApiOperation(value = "添加App版本控制")
// public ApiResult<Boolean> addVersionControl(@Validated(Add.class) @RequestBody VersionControl versionControl) throws Exception {
// boolean flag = versionControlService.saveVersionControl(versionControl);
// return ApiResult.result(flag);
// }
//
// /**
// * 修改App版本控制
// */
// @PostMapping("/update")
// @OperationLog(name = "修改App版本控制", type = OperationLogType.UPDATE)
// @ApiOperation(value = "修改App版本控制")
// public ApiResult<Boolean> updateVersionControl(@Validated(Update.class) @RequestBody VersionControl versionControl) throws Exception {
// boolean flag = versionControlService.updateVersionControl(versionControl);
// return ApiResult.result(flag);
// }
//
// /**
// * 删除App版本控制
// */
// @PostMapping("/delete/{id}")
// @OperationLog(name = "删除App版本控制", type = OperationLogType.DELETE)
// @ApiOperation(value = "删除App版本控制")
// public ApiResult<Boolean> deleteVersionControl(@PathVariable("id") Long id) throws Exception {
// boolean flag = versionControlService.deleteVersionControl(id);
// return ApiResult.result(flag);
// }
//
// /**
// * 获取App版本控制详情
// */
// @GetMapping("/info/{id}")
// @OperationLog(name = "App版本控制详情", type = OperationLogType.INFO)
// @ApiOperation(value = "App版本控制详情")
// public ApiResult<VersionControlQueryVo> getVersionControl(@PathVariable("id") Long id) throws Exception {
// VersionControlQueryVo versionControlQueryVo = versionControlService.getVersionControlById(id);
// return ApiResult.ok(versionControlQueryVo);
// }
//
// /**
// * App版本控制分页列表
// */
// @PostMapping("/getPageList")
// @OperationLog(name = "App版本控制分页列表", type = OperationLogType.PAGE)
// @ApiOperation(value = "App版本控制分页列表")
// public ApiResult<Paging<VersionControlQueryVo>> getVersionControlPageList(@Validated @RequestBody VersionControlPageParam versionControlPageParam) throws Exception {
// Paging<VersionControlQueryVo> paging = versionControlService.getVersionControlPageList(versionControlPageParam);
// return ApiResult.ok(paging);
// }
/**
* 获取最新一条版本记录
*/
@GetMapping("/lastOne/{type}")
// @OperationLog(name = "获取最新一条版本记录", type = OperationLogType.INFO)
@ApiOperation(value = "获取最新一条版本记录")
public ApiResult<VersionControl> lastOne(@PathVariable Integer type) throws Exception {
VersionControl versionControlQueryVo = versionControlService.getOne(
new QueryWrapper<VersionControl>().lambda()
.eq(VersionControl::getDeviceType, type)
.orderByDesc(VersionControl::getCreateTime).last("limit 1")
);
return ApiResult.ok(versionControlQueryVo);
}
}
package com.jumeirah.common.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.geekidea.springbootplus.framework.common.entity.BaseEntity;
import io.geekidea.springbootplus.framework.core.validator.groups.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import java.sql.Timestamp;
/**
* App版本控制
*
* @author giao
* @since 2020-10-26
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "VersionControl对象")
public class VersionControl extends BaseEntity {
private static final long serialVersionUID = 1L;
@NotNull(message = "id不能为空", groups = {Update.class})
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty("版本号")
private String versionName;
@ApiModelProperty("设备类型,1安卓,2 ios")
private Integer deviceType;
@ApiModelProperty("下载地址")
private String downloadUrl;
@ApiModelProperty("1:强更,0不强制")
private Integer forceUpdate;
@ApiModelProperty("创建时间")
private Timestamp createTime;
@ApiModelProperty("修改时间")
private Timestamp updateTime;
}
package com.jumeirah.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jumeirah.common.entity.VersionControl;
import com.jumeirah.common.param.VersionControlPageParam;
import com.jumeirah.common.param.VersionControlQueryVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.io.Serializable;
/**
* App版本控制 Mapper 接口
*
* @author giao
* @since 2020-10-26
*/
@Repository
public interface VersionControlMapper extends BaseMapper<VersionControl> {
/**
* 根据ID获取查询对象
*
* @param id
* @return
*/
VersionControlQueryVo getVersionControlById(Serializable id);
/**
* 获取分页对象
*
* @param page
* @param versionControlPageParam
* @return
*/
IPage<VersionControlQueryVo> getVersionControlPageList(@Param("page") Page page, @Param("param") VersionControlPageParam versionControlPageParam);
}
package com.jumeirah.common.param;
import io.geekidea.springbootplus.framework.core.pagination.BasePageOrderParam;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <pre>
* App版本控制 分页参数对象
* </pre>
*
* @author giao
* @date 2020-10-26
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "App版本控制分页参数")
public class VersionControlPageParam extends BasePageOrderParam {
private static final long serialVersionUID = 1L;
}
package com.jumeirah.common.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* <pre>
* App版本控制 查询结果对象
* </pre>
*
* @author giao
* @date 2020-10-26
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "VersionControlQueryVo对象")
public class VersionControlQueryVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty("版本号")
private String versionName;
@ApiModelProperty("设备类型,1安卓,2 ios")
private Integer deviceType;
@ApiModelProperty("下载地址")
private String downloadUrl;
@ApiModelProperty("1:强更,0不强制")
private Integer force;
@ApiModelProperty("创建时间")
private Date createTime;
@ApiModelProperty("修改时间")
private Date updateTime;
}
\ No newline at end of file
package com.jumeirah.common.service;
import com.jumeirah.common.entity.VersionControl;
import com.jumeirah.common.param.VersionControlPageParam;
import com.jumeirah.common.param.VersionControlQueryVo;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
/**
* App版本控制 服务类
*
* @author giao
* @since 2020-10-26
*/
public interface VersionControlService extends BaseService<VersionControl> {
/**
* 保存
*
* @param versionControl
* @return
* @throws Exception
*/
boolean saveVersionControl(VersionControl versionControl) throws Exception;
/**
* 修改
*
* @param versionControl
* @return
* @throws Exception
*/
boolean updateVersionControl(VersionControl versionControl) throws Exception;
/**
* 删除
*
* @param id
* @return
* @throws Exception
*/
boolean deleteVersionControl(Long id) throws Exception;
/**
* 根据ID获取查询对象
*
* @param id
* @return
* @throws Exception
*/
VersionControlQueryVo getVersionControlById(Long id) throws Exception;
/**
* 获取分页对象
*
* @param versionControlPageParam
* @return
* @throws Exception
*/
Paging<VersionControlQueryVo> getVersionControlPageList(VersionControlPageParam versionControlPageParam) throws Exception;
}
package com.jumeirah.common.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jumeirah.common.entity.VersionControl;
import com.jumeirah.common.mapper.VersionControlMapper;
import com.jumeirah.common.param.VersionControlPageParam;
import com.jumeirah.common.param.VersionControlQueryVo;
import com.jumeirah.common.service.VersionControlService;
import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl;
import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* App版本控制 服务实现类
*
* @author giao
* @since 2020-10-26
*/
@Slf4j
@Service
public class VersionControlServiceImpl extends BaseServiceImpl<VersionControlMapper, VersionControl> implements VersionControlService {
@Autowired
private VersionControlMapper versionControlMapper;
@Transactional(rollbackFor = Exception.class)
@Override
public boolean saveVersionControl(VersionControl versionControl) throws Exception {
return super.save(versionControl);
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean updateVersionControl(VersionControl versionControl) throws Exception {
return super.updateById(versionControl);
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean deleteVersionControl(Long id) throws Exception {
return super.removeById(id);
}
@Override
public VersionControlQueryVo getVersionControlById(Long id) throws Exception {
return versionControlMapper.getVersionControlById(id);
}
@Override
public Paging<VersionControlQueryVo> getVersionControlPageList(VersionControlPageParam versionControlPageParam) throws Exception {
Page<VersionControlQueryVo> page = new PageInfo<>(versionControlPageParam, OrderItem.desc(getLambdaColumn(VersionControl::getCreateTime)));
IPage<VersionControlQueryVo> iPage = versionControlMapper.getVersionControlPageList(page, versionControlPageParam);
return new Paging<VersionControlQueryVo>(iPage);
}
}
<?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.jumeirah.common.mapper.VersionControlMapper">
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, version_name, device_type, download_url, force, create_time, update_time
</sql>
<select id="getVersionControlById" resultType="com.jumeirah.common.param.VersionControlQueryVo">
select
<include refid="Base_Column_List"/>
from version_control where id = #{id}
</select>
<select id="getVersionControlPageList" parameterType="com.jumeirah.common.param.VersionControlPageParam"
resultType="com.jumeirah.common.param.VersionControlQueryVo">
select
<include refid="Base_Column_List"/>
from version_control
</select>
</mapper>
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