2018 11-06(工作:代码习惯)



import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
import org.springframework.beans.factory.annotation.Autowired;
import com.noahedu.core.model.PageIterator;
import com.noahedu.core.plugin.mybatis.PageBounds;
@Component ( “otaUpgradeService” )
public class OtaUpgradeServiceImp implements OtaUpgradeService {
  private final String OTAPATH = Constant.getProperty( “application.ota.otapath” );
  @Autowired
  private OtaUpgradeDao otaUpgradeDao;
  @Override
  public PageIterator<OtaUpgrade> queryOtaUpgrade(OtaUpgrade otaUpgrade, int pageNum,
      int pageSize) {
    List<OtaUpgrade> list = new ArrayList<OtaUpgrade>();
    int allCount = 0 ;
    if ( null != otaUpgrade) {
      allCount = otaUpgradeDao.selectcount(otaUpgrade);
      if (allCount > 0 ) {
        list = otaUpgradeDao.queryPageList(otaUpgrade, new PageBounds(pageNum, pageSize));
      }
    }
    return new PageIterator<OtaUpgrade>(allCount, list.toArray( new OtaUpgrade[ 0 ]), pageSize,
        pageNum);
  }
  @Override
  public int delete (Long id) {
    return otaUpgradeDao. delete (id);
  }
  @Override
  public OtaUpgrade get(Long id) {
    return otaUpgradeDao.get(id);
  }
  @Override
  public int modify(OtaUpgrade otaUpgrade) {
    /*
     * if(otaUpgrade.getState()!=0){ otaUpgradeDao.updateState(otaUpgrade); return
     * otaUpgradeDao.update(otaUpgrade); }else{ return otaUpgradeDao.update(otaUpgrade); }
     /
    return otaUpgradeDao.update(otaUpgrade);
  }
  @Override
  public String upload(String attrname, AdminUser user) {
    String flag = “” ;
    List<String> errors = new ArrayList<String>();
    String newpath = DateUtil.parseDateToString( new Date(), “yyyy\MM” );
    String oldotapath = OTAPATH + “/temp” ;
    FileOperate fileOperate = new FileOperate();
    File attrnameFile = fileOperate.getFileByName(oldotapath, attrname);
    if (attrnameFile != null ) {
      StringBuffer strBuffer = new StringBuffer();
      try {
        Scanner scan = new Scanner(attrnameFile);
        while (scan.hasNextLine()) {
          String s = scan.nextLine();
          strBuffer.append(s).append( "\r\n" );
        }
        scan.close();
      } catch (FileNotFoundException e) {
        e.printStackTrace();
      }
      String s = strBuffer.toString();
      String[] ss = s.split( "\r\n" );
      OtaUtils otaUtils = new OtaUtils();
      Dictionary product = new Dictionary();
      for (String s1 : ss) {
        OtaUpgrade otaUpgrade = new OtaUpgrade();
        String attr = otaUtils.toStringHex2(s1);
        String[] attrs = attr.split( "\|" );
        if (attrs.length >= 6 ) {
          if (!checkMd5(attrs[ 5 ]) || otaUpgradeDao.selectOtaByPackname(attrs[ 4 ]) == 0 ) {
            addOtaUpgradevalue(otaUpgrade, product, attrs);
            File xpack = fileOperate.getFileByName(oldotapath, otaUpgrade.getPackname());
            if (xpack == null ) {
              errors.add( “没有找到对应的文件” );
              flag = “没有找到对应的文件” ;
              return flag;
            }
            String newotapath = xpack.getAbsolutePath().replace( “temp” , newpath).replace( "\" , “/” );
            String url = newotapath.substring(newotapath.indexOf( “OTA” ));
            otaUpgrade.setUrl(url);
            otaUpgrade.setOpreaterid(user.getId());
            try {
              FileInputStream fins = new FileInputStream(xpack.getAbsolutePath());
              try {
                otaUpgrade.setFilesize(( long ) fins.available());
              } catch (IOException e) {
                e.printStackTrace();
              } finally {
                try {
                  fins.close();
                } catch (IOException e) {
                  e.printStackTrace();
                }
              }
            } catch (FileNotFoundException e) {
              e.printStackTrace();
            }
            if (fileOperate.copyZip(xpack.getAbsolutePath(), newotapath)) {
              otaUpgradeDao.insert(otaUpgrade);
            }
          } else {
            errors.add(attrs[ 4 ] + “已存在” );
          }
        }
      }
      if (errors.size() > 0 ) {
        return flag = errors.toString();
      }
      fileOperate.copyFile(attrnameFile.getAbsolutePath(),
          attrnameFile.getAbsolutePath().replace( “temp” , newpath).replace( "\" , “/” ));
      flag = “上传成功” ;
    } else {
      flag = “输入的属性文件不存在” ;
    }
    return flag;
  }
  public void addOtaUpgradevalue(OtaUpgrade otaUpgrade, Dictionary product, String[] attrs) {
    otaUpgrade.setProduct(product);
    otaUpgrade.getProduct().setId(otaUpgradeDao.selectProductidByCode(attrs[ 1 ]));
    otaUpgrade.setDversion(attrs[ 2 ]);
    otaUpgrade.setSversion(attrs[ 3 ]);
    otaUpgrade.setPackname(attrs[ 4 ]);
    otaUpgrade.setMd5(attrs[ 5 ]);
  }
  public Boolean checkMd5(String md5) {
    if (otaUpgradeDao.selectMd5(md5) > 0 ) {
      return true ;
    }
    return false ;
  }
  @Override
  public boolean modifyBatchState(OtaBatch otabatch, Integer state, String summary) {
    String otaidss = otabatch.getOtaids();
    String[] otaids = otaidss.split( "," );
    for ( int i = 0 ; i < otaids.length; i++) {
      Long otaid = Long.valueOf(otaids[i]);
      if (otaUpgradeDao.modifyBatchState(otaid, state, summary) == 0 ) {
        return false ;
      }
    }
    return true ;
  }
}
在以上代码的基础上添加一个MD5码校验并在不匹配的情况下给出提示:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
import org.springframework.beans.factory.annotation.Autowired;
import com.noahedu.core.model.PageIterator;
import com.noahedu.core.plugin.mybatis.PageBounds;
@Component ( “otaUpgradeService” )
public class OtaUpgradeServiceImp implements OtaUpgradeService {
  private final String OTAPATH = Constant.getProperty( “application.ota.otapath” );
  @Autowired
  private OtaUpgradeDao otaUpgradeDao;
  @Override
  public PageIterator<OtaUpgrade> queryOtaUpgrade(OtaUpgrade otaUpgrade, int pageNum,
      int pageSize) {
    List<OtaUpgrade> list = new ArrayList<OtaUpgrade>();
    int allCount = 0 ;
    if ( null != otaUpgrade) {
      allCount = otaUpgradeDao.selectcount(otaUpgrade);
      if (allCount > 0 ) {
        list = otaUpgradeDao.queryPageList(otaUpgrade, new PageBounds(pageNum, pageSize));
      }
    }
    return new PageIterator<OtaUpgrade>(allCount, list.toArray( new OtaUpgrade[ 0 ]), pageSize,
        pageNum);
  }
  @Override
  public int delete (Long id) {
    return otaUpgradeDao. delete (id);
  }
  @Override
  public OtaUpgrade get(Long id) {
    return otaUpgradeDao.get(id);
  }
  @Override
  public int modify(OtaUpgrade otaUpgrade) {
    /
     * if(otaUpgrade.getState()!=0){ otaUpgradeDao.updateState(otaUpgrade); return
     * otaUpgradeDao.update(otaUpgrade); }else{ return otaUpgradeDao.update(otaUpgrade); }
     /
    return otaUpgradeDao.update(otaUpgrade);
  }
  @Override
  public String upload(String attrname, AdminUser user) {
    String flag = “” ;
    List<String> errors = new ArrayList<String>();
    String newpath = DateUtil.parseDateToString( new Date(), “yyyy\MM” );
    String oldotapath = OTAPATH + “/temp” ;
    FileOperate fileOperate = new FileOperate();
    File attrnameFile = fileOperate.getFileByName(oldotapath, attrname);
    if (attrnameFile != null ) {
      StringBuffer strBuffer = new StringBuffer();
      try {
        Scanner scan = new Scanner(attrnameFile);
        while (scan.hasNextLine()) {
          String s = scan.nextLine();
          strBuffer.append(s).append( "\r\n" );
        }
        scan.close();
      } catch (FileNotFoundException e) {
        e.printStackTrace();
      }
      String s = strBuffer.toString();
      String[] ss = s.split( "\r\n" );
      OtaUtils otaUtils = new OtaUtils();
      MD5UtilT md5Utilt = new MD5UtilT();
      Dictionary product = new Dictionary();
      for (String s1 : ss) {
        OtaUpgrade otaUpgrade = new OtaUpgrade();
        String attr = otaUtils.toStringHex2(s1);
        String[] attrs = attr.split( "\|" );
        if (attrs.length >= 6 ) {
          if (!checkMd5(attrs[ 5 ]) || otaUpgradeDao.selectOtaByPackname(attrs[ 4 ]) == 0 ) {
            addOtaUpgradevalue(otaUpgrade, product, attrs);
            File xpack = fileOperate.getFileByName(oldotapath, otaUpgrade.getPackname());
            boolean matchMD5 = md5Utilt.getMD5(xpack).equals(attrs[ 5 ]);
            if (matchMD5) {
               if (xpack == null ) {
                 errors.add( “没有找到对应的文件” + attrs[ 4 ] );
                 flag = “没有找到对应的文件” + attrs[ 4 ] ;
                 return flag;
               }
               String newotapath =
                  xpack.getAbsolutePath().replace( “temp” , newpath).replace( "\" , “/” );
               String url = newotapath.substring(newotapath.indexOf( “OTA” ));
               otaUpgrade.setUrl(url);
               otaUpgrade.setOpreaterid(user.getId());
               try {
                 FileInputStream fins = new FileInputStream(xpack.getAbsolutePath());
                 try {
                   otaUpgrade.setFilesize(( long ) fins.available());
                 } catch (IOException e) {
                   e.printStackTrace();
                 } finally {
                   try {
                     fins.close();
                   } catch (IOException e) {
                     e.printStackTrace();
                   }
                 }
               } catch (FileNotFoundException e) {
                 e.printStackTrace();
               }
               if (fileOperate.copyZip(xpack.getAbsolutePath(), newotapath)) {
                 otaUpgradeDao.insert(otaUpgrade);
               }
            } else {
              errors.add(attrs[ 4 ] + " md5值不匹配:" + attrs[ 5 ]);
            }
          } else {
            errors.add(attrs[ 4 ] + “已存在” );
          }
        }
      }
      if (errors.size() > 0 ) {
        return flag = errors.toString();
      }
      fileOperate.copyFile(attrnameFile.getAbsolutePath(),
          attrnameFile.getAbsolutePath().replace( “temp” , newpath).replace( "\" , “/” ));
      flag = “上传成功” ;
    } else {
      flag = “输入的属性文件不存在” ;
    }
    return flag;
  }
  public void addOtaUpgradevalue(OtaUpgrade otaUpgrade, Dictionary product, String[] attrs) {
    otaUpgrade.setProduct(product);
    otaUpgrade.getProduct().setId(otaUpgradeDao.selectProductidByCode(attrs[ 1 ]));
    otaUpgrade.setDversion(attrs[ 2 ]);
    otaUpgrade.setSversion(attrs[ 3 ]);
    otaUpgrade.setPackname(attrs[ 4 ]);
    otaUpgrade.setMd5(attrs[ 5 ]);
  }
  public Boolean checkMd5(String md5) {
    if (otaUpgradeDao.selectMd5(md5) > 0 ) {
      return true ;
    }
    return false ;
  }
  @Override
  public boolean modifyBatchState(OtaBatch otabatch, Integer state, String summary) {
    String otaidss = otabatch.getOtaids();
    String[] otaids = otaidss.split( "," );
    for ( int i = 0 ; i < otaids.length; i++) {
      Long otaid = Long.valueOf(otaids[i]);
      if (otaUpgradeDao.modifyBatchState(otaid, state, summary) 0 ) {
        return false ;
      }
    }
    return true ;
  }
}
以上代码中出现了,如下几个问题:
1、MD5UtilT 类中的getMD5方法为静态方法,所以这里不应该使用 new MD5UtileT()对其实例化(效率低)。
2、注意:当 md5Utilt.getMD5(xpack)这个String值被多次用到时,应该用一个String接受,不然多次调用此函数效率极低。
3、 md5Utilt.getMD5(xpack)在于attrs[5],使用equals方法进行比较时,可能出现大小写不一致的情况,因此此处使用equalsIgnoreCase()方法较为合适。
4、在使用xpack变量时不够严谨,如果 xpacknull,会引起一些列意想不到的错误,例如getMD5()方法接受xpack值时……

进行修改后代码如下
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
import org.springframework.beans.factory.annotation.Autowired;
import com.noahedu.core.model.PageIterator;
import com.noahedu.core.plugin.mybatis.PageBounds;
@Component ( “otaUpgradeService” )
public class OtaUpgradeServiceImp implements OtaUpgradeService {
  private final String OTAPATH = Constant.getProperty( “application.ota.otapath” );
  @Autowired
  private OtaUpgradeDao otaUpgradeDao;
  @Override
  public PageIterator<OtaUpgrade> queryOtaUpgrade(OtaUpgrade otaUpgrade, int pageNum,
      int pageSize) {
    List<OtaUpgrade> list = new ArrayList<OtaUpgrade>();
    int allCount = 0 ;
    if ( null != otaUpgrade) {
      allCount = otaUpgradeDao.selectcount(otaUpgrade);
      if (allCount > 0 ) {
        list = otaUpgradeDao.queryPageList(otaUpgrade, new PageBounds(pageNum, pageSize));
      }
    }
    return new PageIterator<OtaUpgrade>(allCount, list.toArray( new OtaUpgrade[ 0 ]), pageSize,
        pageNum);
  }
  @Override
  public int delete (Long id) {
    return otaUpgradeDao. delete (id);
  }
  @Override
  public OtaUpgrade get(Long id) {
    return otaUpgradeDao.get(id);
  }
  @Override
  public int modify(OtaUpgrade otaUpgrade) {
    /
     * if(otaUpgrade.getState()!=0){ otaUpgradeDao.updateState(otaUpgrade); return
     * otaUpgradeDao.update(otaUpgrade); }else{ return otaUpgradeDao.update(otaUpgrade); }
     */
    return otaUpgradeDao.update(otaUpgrade);
  }
  @Override
  public String upload(String attrname, AdminUser user) {
    String flag = “” ;
    List<String> errors = new ArrayList<String>();
    String newpath = DateUtil.parseDateToString( new Date(), “yyyy\MM” );
    String oldotapath = OTAPATH + “/temp” ;
    FileOperate fileOperate = new FileOperate();
    File attrnameFile = fileOperate.getFileByName(oldotapath, attrname);
    if (attrnameFile != null ) {
      StringBuffer strBuffer = new StringBuffer();
      try {
        Scanner scan = new Scanner(attrnameFile);
        while (scan.hasNextLine()) {
          String s = scan.nextLine();
          strBuffer.append(s).append( "\r\n" );
        }
        scan.close();
      } catch (FileNotFoundException e) {
        e.printStackTrace();
      }
      String s = strBuffer.toString();
      String[] ss = s.split( "\r\n" );
      OtaUtils otaUtils = new OtaUtils();
      Dictionary product = new Dictionary();
      for (String s1 : ss) {
        OtaUpgrade otaUpgrade = new OtaUpgrade();
        String attr = otaUtils.toStringHex2(s1);
        String[] attrs = attr.split( "\|" );
        if (attrs.length >= 6 ) {
          if (!checkMd5(attrs[ 5 ]) || otaUpgradeDao.selectOtaByPackname(attrs[ 4 ]) == 0 ) {
            addOtaUpgradevalue(otaUpgrade, product, attrs);
            File xpack = fileOperate.getFileByName(oldotapath, otaUpgrade.getPackname());
            if (xpack == null ) {
              errors.add( “没有找到对应的文件” + attrs[ 4 ]);
              flag = “没有找到对应的文件” + attrs[ 4 ];
               System.out.print( “所需文件MD5值为” + attrs[ 5 ]);
              return flag;
            } else {
              String md5 = MD5UtilT.getMD5(xpack);
              boolean matchMD5 = md5 != null && md5.equalsIgnoreCase(attrs[ 5 ]);
              if (matchMD5) {
                 String newotapath =
                     xpack.getAbsolutePath().replace( “temp” , newpath).replace( "\" , “/” );
                 String url = newotapath.substring(newotapath.indexOf( “OTA” ));
                 otaUpgrade.setUrl(url);
                 otaUpgrade.setOpreaterid(user.getId());
                 try {
                   FileInputStream fins = new FileInputStream(xpack.getAbsolutePath());
                   try {
                     otaUpgrade.setFilesize(( long ) fins.available());
                   } catch (IOException e) {
                     e.printStackTrace();
                   } finally {
                     try {
                       fins.close();
                     } catch (IOException e) {
                       e.printStackTrace();
                     }
                   }
                 } catch (FileNotFoundException e) {
                   e.printStackTrace();
                 }
                 if (fileOperate.copyZip(xpack.getAbsolutePath(), newotapath)) {
                   otaUpgradeDao.insert(otaUpgrade);
                 }
               } else {
                System.out.print( “MD5码值不匹配,上传文件MD5值为” + md5);
                 errors.add(attrs[ 4 ] + " 的MD5值为 :" + attrs[ 5 ] + “,上传文件MD5码值为” + md5 );
               }
            }
          } else {
            errors.add(attrs[ 4 ] + “已存在” );
          }
        }
      }
      if (errors.size() > 0 ) {
        return flag = errors.toString();
      }
      fileOperate.copyFile(attrnameFile.getAbsolutePath(),
          attrnameFile.getAbsolutePath().replace( “temp” , newpath).replace( "\" , “/” ));
      flag = “上传成功” ;
    } else {
      flag = “输入的属性文件不存在” ;
    }
    return flag;
  }
  public void addOtaUpgradevalue(OtaUpgrade otaUpgrade, Dictionary product, String[] attrs) {
    otaUpgrade.setProduct(product);
    otaUpgrade.getProduct().setId(otaUpgradeDao.selectProductidByCode(attrs[ 1 ]));
    otaUpgrade.setDversion(attrs[ 2 ]);
    otaUpgrade.setSversion(attrs[ 3 ]);
    otaUpgrade.setPackname(attrs[ 4 ]);
    otaUpgrade.setMd5(attrs[ 5 ]);
  }
  public Boolean checkMd5(String md5) {
    if (otaUpgradeDao.selectMd5(md5) > 0 ) {
      return true ;
    }
    return false ;
  }
  @Override
  public boolean modifyBatchState(OtaBatch otabatch, Integer state, String summary) {
    String otaidss = otabatch.getOtaids();
    String[] otaids = otaidss.split( "," );
    for ( int i = 0 ; i < otaids.length; i++) {
      Long otaid = Long.valueOf(otaids[i]);
      if (otaUpgradeDao.modifyBatchState(otaid, state, summary) == 0 ) {
        return <span style="min-height: 9pt; font-family: “Lucida Console”; color: rgb(0, 0, 128

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值