zoukankan      html  css  js  c++  java
  • 每日记载内容总结38

    从一个项目中学到的做项目知识:

    1.不管需求多么简单,多么熟练,都要和项目负责人对需求。对完了就知道有什么了,不对完,猜测有什么,说不定会多出什么。

    2.项目需要文件没有齐全的话,需要考虑下次相同文件到来时,已最快的方法进行操作。

    3.加需求,要考虑原需求是否可以按时完成,完不成,就不加,或者对负责人进行提醒。

    4.要从整个项目出发,设计实体类和数据库内容,是做功能,还是做管理模块,等等,考虑全了再设计,总比推到再来强多了。

    5.测试,要深入全面测试,不要只测同样功能的一部分,要测全部。

    从一个项目中学到的编码知识:

    (1)抽奖活动(总共为三个等级中奖,可调整奖品名称,中奖数量,中奖概率)

    实体类

    private String title;
    private String oneName;
    private Integer oneNum;
    private Integer oneShangxian;// 分子
    private Integer oneXiaxian;// 分母
    private Integer oneLeft;
    private String twoName;
    private Integer twoNum;
    private Integer twoShangxian;// 分子
    private Integer twoXiaxian;// 分母
    private Integer twoLeft;
    private String threeName;
    private Integer threeNum;
    private Integer threeShangxian;// 分子
    private Integer threeXiaxian;// 分母
    private Integer threeLeft;
    private Integer state;//1开启 2 关闭

    判断中奖(true即为中奖 false即为不中奖)

    public boolean choujiangbegin(Integer fz,Integer fm,Integer num,Integer left){
            if(num<=0){
                return false;
            }
            //剩余数量<=0
            if(left <=0){
                return false;
            }
            int nowsize = getRandom(fm);
            if(nowsize<=fz){
                //中奖
                return true;
            }else{
                //未中奖
                return false;
            }
        }
    public int getRandom(int js){
            return (int)(Math.random()*js)+1; 
        }

    (2)微信简单的授权认证(通过设置跳转链接和appId,获取点击用户的openId)

    https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

    群发图文消息给用户,用户点击图文消息进入图文详情,将该链接放在原文链接中,点击之后跳转调查问卷,即可获取到code,根据code调用微信接口即可获得openId

    注意:1.在微信公众号请求用户网页授权之前,开发者需要先到公众平台网站的我的服务页中配置授权回调域名。请注意,这里填写的域名不要加http://

    2.redirect_uri授权后重定向的回调链接地址,请使用urlencode对链接进行处理

    (3)对于"2,3,4,5,3,1,6,3,"这样的字符串,获取不重复的内容,即得到结果为"1,2,3,4,5,6"的字符串

    public static String removeChongfu(String preValue){
            if(StringUtils.isNotBlank(preValue)){
                String[] arr = preValue.split(",");
                Set<String> set = new TreeSet<String>();
                for (int i = 0; i < arr.length; i++) {
                    if(StringUtils.isNotBlank(arr[i])){
                        set.add(arr[i]);
                    }
                }
                StringBuffer sb = new StringBuffer();
                if(set != null && set.size() > 0){
                    for (String string : set) {
                        sb.append(string).append(",");
                    }
                }
                String result = sb.toString();
                if(StringUtils.isNotBlank(result)){
                    result = result.substring(0, result.length()-1);
                    return result;
                }else{
                    return null;
                }
            }else{
                return null;
            }
        }

    (4)easyui插件 控制开始时间和结束时间 验证

    var startDate= $("#startDate").datebox("getValue");
        var endDate= $("#endDate").datebox("getValue");
        
        if(endDate != null && endDate!=""){
            if(new Date(endDate.replace(/-/g,   "/")).getTime() < new Date().getTime()){
                alert("结束时间小于当前时间,请重新选择");
                return false;
            }
        }
        
        if(startDate != null && startDate !="" && endDate != null && endDate!=""){
            var end = new Date(endDate.replace(/-/g,   "/")).getTime();
            if(end < new Date().getTime()){
                alert("结束时间小于当前时间,请重新选择");
                return false;
            }
            if(startDate>endDate){
                alert("开始时间大于结束时间,请重新选择");
                return false;
            }
        }
  • 相关阅读:
    简单工厂模式&工厂方法模式&抽象工厂模式的区别及优缺点及使用场景
    JDK1.8的新特性
    在Button样式中添加EventSetter,理解路由事件
    关于C#低版本升级高版本时,项目中引用Microsoft.Office.Interop.Word,程序提示不存在类型或命名空间名office.
    无法安装或运行此应用程序。该应用程序要求首先在"全局程序集缓存(GAC)"中安装程序集
    C#winform跨窗体传值和调用事件的办法
    C#线程处理:七、线程实列
    C#线程处理:六、线程同步(三)
    C#线程处理:五、线程同步(二)
    C#线程处理:四、线程同步
  • 原文地址:https://www.cnblogs.com/cuiyf/p/4089009.html
Copyright © 2011-2022 走看看