APP版本自動更新-java


APP版本自動更新一直是我們研發人員必須要面對的一個問題,對於java后台管理如何實現一個高規格、持久可用、完善版本迭代的本本自動更新模塊呢?

我們帶着這個問題走進《APP版本自動更新從入門到精通》

實體類

/**  
* Title: VersionController.java  
* Description:   
* Copyright: Copyright (c) 2018-2019  
* Company: 四川金口碑網絡科技有限公司  
* @author zhaoxuehong  
* @date 2018年12月14日上午9:35:55  
* @version 2.0.0  
*/  
package com.tgb.web;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.tgb.entity.Version;
import com.tgb.manager.VersionManager;
import com.tgb.util.DateTime;
import com.tgb.util.Json;

/**  
* Title: VersionController  
* Description:   APP版本管理模塊(WEB-PC)
* @author zhaoxuehong  
* @date 2018年12月14日上午9:35:55  
*/
@Controller
@RequestMapping(value="web")
public class VersionController {
    
    @Resource(name="versionManager")
    private VersionManager versionManager;
    /**
     * 添加一個APP版本
     * @param version
     * @return
     */
    @RequestMapping(value="addVersion",method={RequestMethod.POST,RequestMethod.GET})
    @ResponseBody
    public Map<String, Object> addVersion(Version version,HttpServletResponse response) {
        if (version.getAppName()!=null&&version.getServerVersion()!=null&&version.getUpdateUrl()!=null&&version.getUpgradeInfo()!=null) {
            String creatTime=new DateTime().getDataTime();
            version.setCreatTime(creatTime);
            version.setLastTime(creatTime);
            versionManager.addVersion(version);
            return new Json().getJsonWeb("200", "您已經成功添加一個版本!!!", 0, "");
        }         
        return new Json().getJsonWeb("201", "添加失敗", 0, "");
    }
    @RequestMapping(value="getVersionAll",method={RequestMethod.POST,RequestMethod.GET})
    @ResponseBody
    public Map<String, Object> getVersionAll(HttpServletResponse response) {
        int startIndex=0;
        int pageSize=10;
        List<Version> data=versionManager.getVersionAll(startIndex, pageSize);
        return new Json().getJsonWeb("201", "添加失敗", data.size(), data);
    }

}

數據持久層

/**  
* Title: VersionDaoImol.java  
* Description:   
* Copyright: Copyright (c) 2018-2019  
* Company: 四川金口碑網絡科技有限公司  
* @author zhaoxuehong  
* @date 2018年12月13日下午7:06:18  
* @version 2.0.0  
*/  
package com.tgb.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.SessionFactory;

import com.tgb.entity.Version;

/**  
* Title: VersionDaoImol  
* Description:   
* @author zhaoxuehong  
* @date 2018年12月13日下午7:06:18  
*/
public class VersionDaoImpl implements VersionDao {
    private SessionFactory sessionFactory;

    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    /**   
     * Description:
     * @param startIndex
     * @param pageSize
     * @return   
     */
    @Override
    public List<Version> getVersionAll(String platform,int startIndex, int pageSize) {
        // TODO Auto-generated method stub
        String hql="from Version v where v.platform=:platform  order by v.creatTime desc";
        Query query = sessionFactory.getCurrentSession().createQuery(hql);    
        query.setString("platform", platform);
        return query.list();
    }

    /**   
     * Description:
     * @param version
     * @return   
     */
    @Override
    public boolean updateVersion(Version version) {
        // TODO Auto-generated method stub
        String hql = "update Version v set v.appName=?,v.serverVersion=?,v.creatTime=?,v.lastTime=?,v.serverFlag=?,"
                                         +"v.lastForce=?,v.updateUrl=?,v.upgradeInfo=? where v.vid=?";
        Query query = sessionFactory.getCurrentSession().createQuery(hql);    
        query.setString(0, version.getAppName());
        query.setString(1, version.getServerVersion());
        query.setString(2, version.getCreatTime());
        query.setString(3, version.getLastTime());
        query.setString(4, version.getServerFlag());
        query.setString(5, version.getLastForce());
        query.setString(6, version.getUpdateUrl());
        query.setString(7, version.getUpgradeInfo());
        query.setString(8, version.getVid());    
        return (query.executeUpdate() > 0);
    }

    /**   
     * Description:
     * @param vid
     * @return   
     */
    @Override
    public boolean deleteVersion(String vid) {
        // TODO Auto-generated method stub
        String hql = "delete Version u where u.vid = ?";
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        query.setString(0, vid);
        return (query.executeUpdate() > 0);
    }

    /**   
     * Description:
     * @param version   
     */
    @Override
    public void addVersion(Version version) {
        // TODO Auto-generated method stub
        sessionFactory.getCurrentSession().save(version);
    }

    /**   
     * Description:
     * @param startIndex
     * @param pageSize
     * @return   
     */
    @Override
    public List<Version> getVersionAll(int startIndex, int pageSize) {
        // TODO Auto-generated method stub
        String hql="from Version v order by v.creatTime desc";
        Query query = sessionFactory.getCurrentSession().createQuery(hql);    
        return query.list();
    }
}

接口代理

/**  
* Title: VersionManagerImpl.java  
* Description:   
* Copyright: Copyright (c) 2018-2019  
* Company: 四川金口碑網絡科技有限公司  
* @author zhaoxuehong  
* @date 2018年12月14日上午9:32:22  
* @version 2.0.0  
*/  
package com.tgb.manager;

import java.util.List;

import com.tgb.dao.VersionDao;
import com.tgb.entity.Version;

/**  
* Title: VersionManagerImpl  
* Description:   
* @author zhaoxuehong  
* @date 2018年12月14日上午9:32:22  
*/
public class VersionManagerImpl implements VersionManager{
    private VersionDao versionDao;

    public VersionDao getVersionDao() {
        return versionDao;
    }

    public void setVersionDao(VersionDao versionDao) {
        this.versionDao = versionDao;
    }

    /**   
     * Description:
     * @param startIndex
     * @param pageSize
     * @return   
     */
    @Override
    public List<Version> getVersionAll(String platform,int startIndex, int pageSize) {
        // TODO Auto-generated method stub
        return versionDao.getVersionAll(platform, startIndex, pageSize);
    }

    /**   
     * Description:
     * @param version
     * @return   
     */
    @Override
    public boolean updateVersion(Version version) {
        // TODO Auto-generated method stub
        return versionDao.updateVersion(version);
    }

    /**   
     * Description:
     * @param vid
     * @return   
     */
    @Override
    public boolean deleteVersion(String vid) {
        // TODO Auto-generated method stub
        return versionDao.deleteVersion(vid);
    }

    /**   
     * Description:
     * @param version   
     */
    @Override
    public void addVersion(Version version) {
        // TODO Auto-generated method stub
        versionDao.addVersion(version);
    }

    /**   
     * Description:
     * @param startIndex
     * @param pageSize
     * @return   
     */
    @Override
    public List<Version> getVersionAll(int startIndex, int pageSize) {
        // TODO Auto-generated method stub
        return versionDao.getVersionAll( startIndex, pageSize);
    }

}

接口層

/**  
* Title: VersionController.java  
* Description:   
* Copyright: Copyright (c) 2018-2019  
* Company: 四川金口碑網絡科技有限公司  
* @author zhaoxuehong  
* @date 2018年12月14日上午9:35:55  
* @version 2.0.0  
*/  
package com.tgb.api;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.tgb.entity.Version;
import com.tgb.manager.VersionManager;
import com.tgb.util.DateTime;
import com.tgb.util.Json;

/**  
* Title: VersionController  
* Description:   APP版本信息模塊((IOS、Android))
* @author zhaoxuehong  
* @date 2018年12月14日上午9:35:55  
*/
@Controller
@RequestMapping(value="api")
public class VersionAppController {
    
    @Resource(name="versionManager")
    private VersionManager versionManager; 
    /**
     * 獲取版本列表
     * @param response
     * @return
     */
    @RequestMapping(value="getVersionAll",method={RequestMethod.POST,RequestMethod.GET})
    @ResponseBody
    public Map<String, Object> getVersionAll(HttpServletResponse response,HttpServletRequest request)  {    
        String platform=request.getParameter("platform");
        int startIndex=0;
        int pageSize=10;
        List<Version> data=versionManager.getVersionAll(platform, startIndex, pageSize);        
        return new Json().getJson("200", "成功獲取版本列表",data.get(0));
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM