diff --git a/src/main/java/com/huaheng/framework/config/HuaHengConfig.java b/src/main/java/com/huaheng/framework/config/HuaHengConfig.java
index ca80f5c..a7e4365 100644
--- a/src/main/java/com/huaheng/framework/config/HuaHengConfig.java
+++ b/src/main/java/com/huaheng/framework/config/HuaHengConfig.java
@@ -20,6 +20,8 @@ public class HuaHengConfig
     private String copyrightYear;
     /** 上传路径 */
     private static String profile;
+    /** 上传路径 */
+    private static String apkpath;
     /** 获取地址开关 */
     private static boolean addressEnabled;
 
@@ -63,6 +65,14 @@ public class HuaHengConfig
         HuaHengConfig.profile = profile;
     }
 
+    public static String getApkpath() {
+        return apkpath;
+    }
+
+    public void setApkpath(String apkpath) {
+        HuaHengConfig.apkpath = apkpath;
+    }
+
     public static boolean isAddressEnabled()
     {
         return addressEnabled;
diff --git a/src/main/java/com/huaheng/pc/manager/apkinfo/controller/ApkinfoController.java b/src/main/java/com/huaheng/pc/manager/apkinfo/controller/ApkinfoController.java
new file mode 100644
index 0000000..458a76e
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/manager/apkinfo/controller/ApkinfoController.java
@@ -0,0 +1,144 @@
+package com.huaheng.pc.manager.apkinfo.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaheng.common.utils.file.FileUploadUtils;
+import com.huaheng.framework.config.HuaHengConfig;
+import com.huaheng.framework.web.page.PageDomain;
+import com.huaheng.framework.web.page.TableDataInfo;
+import com.huaheng.framework.web.page.TableSupport;
+import com.huaheng.common.utils.StringUtils;
+import com.huaheng.pc.system.user.domain.User;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.huaheng.framework.aspectj.lang.annotation.Log;
+import com.huaheng.framework.aspectj.lang.constant.BusinessType;
+import com.huaheng.pc.manager.apkinfo.domain.Apkinfo;
+import com.huaheng.pc.manager.apkinfo.service.IApkinfoService;
+import com.huaheng.framework.web.controller.BaseController;
+import com.huaheng.framework.web.domain.AjaxResult;
+import com.huaheng.common.support.Convert;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】 信息操作处理
+ *
+ * @author huaheng
+ * @date 2020-07-23
+ */
+@Controller
+@RequestMapping("/manager/apkinfo")
+public class ApkinfoController extends BaseController {
+    private String prefix = "manager/apkinfo";
+
+	@Resource
+	private IApkinfoService apkinfoService;
+
+	@GetMapping()
+	public String apkinfo() {
+	    return prefix + "/list";
+	}
+
+	/**
+	 * 查询【请填写功能名称】列表
+	 */
+	@PostMapping("/list")
+	@ResponseBody
+	public TableDataInfo list(Apkinfo apkinfo) {
+		LambdaQueryWrapper<Apkinfo> lambdaQueryWrapper = Wrappers.lambdaQuery();
+		lambdaQueryWrapper.like(StringUtils.isNotEmpty(apkinfo.getPkgName()), Apkinfo::getPkgName, apkinfo.getPkgName())
+												.eq(StringUtils.isNotNull(apkinfo.getVersionCode()), Apkinfo::getVersionCode, apkinfo.getVersionCode())
+											.like(StringUtils.isNotEmpty(apkinfo.getVersionName()), Apkinfo::getVersionName, apkinfo.getVersionName())
+												.eq(StringUtils.isNotEmpty(apkinfo.getUrl()), Apkinfo::getUrl, apkinfo.getUrl())
+													.eq(StringUtils.isNotEmpty(apkinfo.getMd5()), Apkinfo::getMd5, apkinfo.getMd5())
+															;
+		PageDomain pageDomain = TableSupport.buildPageRequest();
+		Integer pageNum = pageDomain.getPageNum();
+		Integer pageSize = pageDomain.getPageSize();
+		if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
+			/*使用分页查询*/
+			Page<Apkinfo> page = new Page<>(pageNum, pageSize);
+			IPage<Apkinfo> iPage = apkinfoService.page(page, lambdaQueryWrapper);
+			return getMpDataTable(iPage.getRecords(), iPage.getTotal());
+		} else {
+			List<Apkinfo> list = apkinfoService.list(lambdaQueryWrapper);
+			return getDataTable(list);
+		}
+	}
+
+	/**
+	 * 新增【请填写功能名称】
+	 */
+	@GetMapping("/add")
+	public String add() {
+	    return prefix + "/add";
+	}
+	/**
+	 * 新增保存入库单
+	 */
+	@Log(title = "新增应用信息", action = BusinessType.INSERT)
+	@PostMapping("/add")
+	@ResponseBody
+	public AjaxResult addSave(Apkinfo apkinfo) {
+		return toAjax(apkinfoService.save(apkinfo));
+	}
+
+	/**
+	 * 修改【请填写功能名称】
+	 */
+	@GetMapping("/edit/{id}")
+	public String edit(@PathVariable("id") Long id, ModelMap mmap) {
+		Apkinfo apkinfo = apkinfoService.getById(id);
+		mmap.put("apkinfo", apkinfo);
+	    return prefix + "/edit";
+	}
+
+
+	@Log(title = "【请填写功能名称】", action = BusinessType.UPDATE)
+	@PostMapping("/edit")
+	@ResponseBody
+	public AjaxResult editSave(Apkinfo apkinfo) {
+		return toAjax(apkinfoService.updateById(apkinfo));
+	}
+
+	@Log(title = "【请填写功能名称】", action = BusinessType.DELETE)
+	@PostMapping( "/remove")
+	@ResponseBody
+	public AjaxResult remove(String ids) {
+		if (StringUtils.isEmpty(ids)){
+			return AjaxResult.error("id不能为空");
+		}
+		return toAjax(apkinfoService.removeByIds(Arrays.asList(Convert.toIntArray(ids))));
+	}
+
+
+	@Log(title = "系统管理-用户管理", operating = "保存头像", action = BusinessType.UPDATE)
+	@PostMapping("/updateApk")
+	@ResponseBody
+	public AjaxResult updateApk(@RequestParam("avatarfile") MultipartFile file)
+	{
+		try
+		{
+			if (!file.isEmpty())
+			{
+				String apk = FileUploadUtils.upload(HuaHengConfig.getApkpath(), file, "");
+			}
+			return success("上传成功");
+		}
+		catch (Exception e)
+		{
+			return error(e.getMessage());
+		}
+	}
+}
diff --git a/src/main/java/com/huaheng/pc/manager/apkinfo/domain/Apkinfo.java b/src/main/java/com/huaheng/pc/manager/apkinfo/domain/Apkinfo.java
new file mode 100644
index 0000000..edaab68
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/manager/apkinfo/domain/Apkinfo.java
@@ -0,0 +1,46 @@
+package com.huaheng.pc.manager.apkinfo.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import io.swagger.annotations.ApiModelProperty;
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 【请填写功能名称】表 apkinfo
+ * 
+ * @author huaheng
+ * @date 2020-07-23
+ */
+@Data
+@TableName(value = "apkinfo")
+public class Apkinfo implements Serializable{
+	private static final long serialVersionUID = 1L;
+	
+        /** $column.columnComment */
+        @TableId(value = "id", type = IdType.AUTO)
+    	private Long id;
+        /** $column.columnComment */
+        @TableField(value = "pkgName")
+    	private String pkgName;
+        /** $column.columnComment */
+        @TableField(value = "versionCode")
+    	private Long versionCode;
+        /** $column.columnComment */
+        @TableField(value = "versionName")
+    	private String versionName;
+        /** $column.columnComment */
+        @TableField(value = "url")
+    	private String url;
+        /** $column.columnComment */
+        @TableField(value = "md5")
+    	private String md5;
+
+}
diff --git a/src/main/java/com/huaheng/pc/manager/apkinfo/mapper/ApkinfoMapper.java b/src/main/java/com/huaheng/pc/manager/apkinfo/mapper/ApkinfoMapper.java
new file mode 100644
index 0000000..94e10a2
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/manager/apkinfo/mapper/ApkinfoMapper.java
@@ -0,0 +1,16 @@
+package com.huaheng.pc.manager.apkinfo.mapper;
+
+import com.huaheng.pc.manager.apkinfo.domain.Apkinfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】 数据层
+ * 
+ * @author huaheng
+ * @date 2020-07-23
+ */
+public interface ApkinfoMapper extends BaseMapper<Apkinfo> {
+
+}
+	
diff --git a/src/main/java/com/huaheng/pc/manager/apkinfo/service/IApkinfoService.java b/src/main/java/com/huaheng/pc/manager/apkinfo/service/IApkinfoService.java
new file mode 100644
index 0000000..73e117c
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/manager/apkinfo/service/IApkinfoService.java
@@ -0,0 +1,17 @@
+package com.huaheng.pc.manager.apkinfo.service;
+
+import com.huaheng.pc.manager.apkinfo.domain.Apkinfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】 服务层
+ * 
+ * @author huaheng
+ * @date 2020-07-23
+ */
+public interface IApkinfoService  extends IService<Apkinfo> {
+
+}
+	
+
diff --git a/src/main/java/com/huaheng/pc/manager/apkinfo/service/impl/ApkinfoServiceImpl.java b/src/main/java/com/huaheng/pc/manager/apkinfo/service/impl/ApkinfoServiceImpl.java
new file mode 100644
index 0000000..35901b6
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/manager/apkinfo/service/impl/ApkinfoServiceImpl.java
@@ -0,0 +1,19 @@
+package com.huaheng.pc.manager.apkinfo.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huaheng.pc.manager.apkinfo.service.IApkinfoService;
+import com.huaheng.pc.manager.apkinfo.domain.Apkinfo;
+import com.huaheng.pc.manager.apkinfo.mapper.ApkinfoMapper;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * 【请填写功能名称】 服务层实现
+ * 
+ * @author huaheng
+ * @date 2020-07-23
+ */
+@Service
+public class ApkinfoServiceImpl extends ServiceImpl<ApkinfoMapper, Apkinfo> implements IApkinfoService {
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 8b461f1..4e483c0 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -12,6 +12,8 @@ huaheng:
   copyrightYear: 2020
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
   profile: D:/Huaheng/uploadPath/
+  # apk路径
+  apkpath: D:/download/
   # 获取ip地址开关
   addressEnabled: false
 
diff --git a/src/main/resources/mybatis/manager/apkinfo/ApkinfoMapper.xml b/src/main/resources/mybatis/manager/apkinfo/ApkinfoMapper.xml
new file mode 100644
index 0000000..ee3efdf
--- /dev/null
+++ b/src/main/resources/mybatis/manager/apkinfo/ApkinfoMapper.xml
@@ -0,0 +1,19 @@
+<?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.huaheng.pc.manager.apkinfo.mapper.ApkinfoMapper">
+    
+    <resultMap type="com.huaheng.pc.manager.apkinfo.domain.Apkinfo" id="apkinfoResult">
+        <result property="id"    column="id"    />
+        <result property="pkgName"    column="pkgName"    />
+        <result property="versionCode"    column="versionCode"    />
+        <result property="versionName"    column="versionName"    />
+        <result property="url"    column="url"    />
+        <result property="md5"    column="md5"    />
+    </resultMap>
+	<sql id="selectapkinfoVo">
+        select id, pkgName, versionCode, versionName, url, md5 from apkinfo
+    </sql>
+    
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/manager/apkinfo/add.html b/src/main/resources/templates/manager/apkinfo/add.html
new file mode 100644
index 0000000..d8837ab
--- /dev/null
+++ b/src/main/resources/templates/manager/apkinfo/add.html
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org">
+<meta charset="utf-8">
+<head>
+    <th:block th:include="include :: header"/>
+                                                                            </head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-apkinfo-add">
+                                                                                                                                                    <div class="form-group">
+                            <label class="col-sm-3 control-label">应用包名
+                                :</label>
+                            <div class="col-sm-8">
+                                <input name="pkgname" class="form-control" type="text">
+                            </div>
+                        </div>
+                                                                                                                                                                        <div class="form-group">
+                            <label class="col-sm-3 control-label">应用版本号
+                                :</label>
+                            <div class="col-sm-8">
+                                <input name="versioncode" class="form-control" type="text">
+                            </div>
+                        </div>
+                                                                                                                                                                        <div class="form-group">
+                            <label class="col-sm-3 control-label">应用版本名称
+                                :</label>
+                            <div class="col-sm-8">
+                                <input name="versionname" class="form-control" type="text">
+                            </div>
+                        </div>
+                                                                                                                                                                        <div class="form-group">
+                            <label class="col-sm-3 control-label">下载链接
+                                :</label>
+                            <div class="col-sm-8">
+                                <input name="url" class="form-control" type="text">
+                            </div>
+                        </div>
+                                                                                                                                                                        <div class="form-group">
+                            <label class="col-sm-3 control-label">MD5校验码
+                                :</label>
+                            <div class="col-sm-8">
+                                <input name="md5" class="form-control" type="text">
+                            </div>
+                            </div>
+                        <div class="form-group">
+            <div class="form-control-static col-sm-offset-9">
+                <button type="submit" class="btn btn-primary">提交</button>
+                <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
+            </div>
+        </div>
+    </form>
+</div>
+<th:block th:include="include :: footer"/>
+<script type="text/javascript">
+    var prefix = ctx + "manager/apkinfo"
+    $("#form-apkinfo-add").validate({
+        rules:{
+            xxxx:{
+                required:true,
+            },
+        },
+        submitHandler: function(form) {
+            $.ajax({
+                cache : true,
+                type : "POST",
+                url : prefix + "/add",
+                async : false,
+                data : {
+                    "pkgName": $("input[name='pkgname']").val(),
+                    "versionCode": $("input[name='versioncode']").val(),
+                    "versionName": $("input[name='versionname']").val(),
+                    "url": $("input[name='url']").val(),
+                    "md5": $("input[name='md5']").val(),
+                },
+                error : function(request) {
+                    $.modal.alertError("请求失败!");
+                },
+                success : function(data) {
+                    $.operate.saveSuccess(data);
+                }
+            });
+        }
+    });
+</script>
+</body>
+</html>
diff --git a/src/main/resources/templates/manager/apkinfo/edit.html b/src/main/resources/templates/manager/apkinfo/edit.html
new file mode 100644
index 0000000..fede22f
--- /dev/null
+++ b/src/main/resources/templates/manager/apkinfo/edit.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+	<th:block th:include="include :: header" />
+																			</head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+	<form class="form-horizontal m" id="form-apkinfo-edit" th:object="${apkinfo}">
+				<input name="id" th:field="*{id}" type="hidden">
+																																			<div class="form-group">
+							<label class="col-sm-3 control-label">${comment}:</label>
+							<div class="col-sm-8">
+								<input name="pkgname" th:field="*{pkgname}" class="form-control" type="text">
+							</div>
+						</div>
+																																										<div class="form-group">
+							<label class="col-sm-3 control-label">${comment}:</label>
+							<div class="col-sm-8">
+								<input name="versioncode" th:field="*{versioncode}" class="form-control" type="text">
+							</div>
+						</div>
+																																										<div class="form-group">
+							<label class="col-sm-3 control-label">${comment}:</label>
+							<div class="col-sm-8">
+								<input name="versionname" th:field="*{versionname}" class="form-control" type="text">
+							</div>
+						</div>
+																																										<div class="form-group">
+							<label class="col-sm-3 control-label">${comment}:</label>
+							<div class="col-sm-8">
+								<input name="url" th:field="*{url}" class="form-control" type="text">
+							</div>
+						</div>
+																																										<div class="form-group">
+							<label class="col-sm-3 control-label">${comment}:</label>
+							<div class="col-sm-8">
+								<input name="md5" th:field="*{md5}" class="form-control" type="text">
+							</div>
+						</div>
+																	</form>
+</div>
+<th:block th:include="include :: footer" />
+																			<script th:inline="javascript">
+	var prefix = ctx + "task/apkinfo";
+			$("#form-apkinfo-edit").validate({
+		focusCleanup: true
+	});
+
+	function submitHandler() {
+		if ($.validate.form()) {
+			$.operate.save(prefix + "/edit", $('#form-apkinfo-edit').serialize());
+		}
+	}
+																																				</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/templates/manager/apkinfo/list.html b/src/main/resources/templates/manager/apkinfo/list.html
new file mode 100644
index 0000000..69401aa
--- /dev/null
+++ b/src/main/resources/templates/manager/apkinfo/list.html
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="gray-bg">
+<div class="container-div">
+    <div class="row">
+        <div class="col-sm-12 select-info">
+            <form id="formId">
+                <div class="select-list">
+                    <ul>
+                        <li>
+                            <label>应用包名:</label>
+                            <input type="text" name="pkgname"/>
+                        </li>
+                        <li>
+                            <label>应用版本号:</label>
+                            <input type="text" name="versioncode"/>
+                        </li>
+                        <li>
+                            <label>应用版本名称:</label>
+                            <input type="text" name="versionname"/>
+                        </li>
+                        <li>
+                            <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
+                                    class="fa fa-search"></i>&nbsp;搜索</a>
+                            <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i
+                                    class="fa fa-refresh"></i>&nbsp;重置</a>
+                        </li>
+                    </ul>
+                </div>
+            </form>
+        </div>
+        <div class="btn-group hidden-xs" id="toolbar" role="group">
+            <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()">
+                <i class="fa fa-plus"></i> 新增
+            </a>
+            <a class="btn btn-outline btn-primary single disabled" onclick="$.operate.edit()">
+                <i class="fa fa-edit"></i> 修改
+            </a>
+            <a class="btn btn-outline btn-danger btn-rounded multiple disabled" onclick="$.operate.batRemove()">
+                <i class="fa fa-trash-o"></i> 删除
+            </a>
+        </div>
+
+        <div class="col-sm-12 select-info table-striped">
+            <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
+        </div>
+        </div>
+        </div>
+        <div th:include="include :: footer"></div>
+        <script th:inline="javascript">
+    var prefix = ctx + "manager/apkinfo"
+
+    $(function () {
+        var options = {
+            url: prefix + "/list",
+            createUrl: prefix + "/add",
+            updateUrl: prefix + "/edit/{id}",
+            removeUrl: prefix + "/remove",
+            modalName: "上传应用",
+            columns: [{
+                checkbox: true
+            },
+                {
+                    field: 'id',
+                    title: 'id',
+                    visible: false
+                },
+                {
+                    field: 'pkgName',
+                    title: '应用包名'
+                },
+                {
+                    field: 'versionCode',
+                    title: '应用版本号'
+                },
+                {
+                    field: 'versionName',
+                    title: '应用版本名称'
+                },
+                {
+                    field: 'url',
+                    title: '下载链接'
+                },
+                {
+                    field: 'md5',
+                    title: 'md5校验码'
+                },
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function (value, row, index) {
+                        var actions = [];
+                        actions.push('<a class="btn btn-success btn-xs ' + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                        actions.push('<a class="btn btn-danger btn-xs ' + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
+                        return actions.join('');
+                    }
+                }]
+        };
+        $.table.init(options);
+    });
+
+</script>
+</body>
+</html>
\ No newline at end of file