lishuwen79 6 lat temu
rodzic
commit
2cd9907204

+ 134 - 0
src/main/java/com/lsw/commons/utils/Arith.java

@@ -0,0 +1,134 @@
+package com.lsw.commons.utils;
+
+
+import java.math.BigDecimal;
+
+/**
+ * @author Jstar
+ */
+public class Arith {
+
+	// 默认除法运算精度
+	private static final int DEF_DIV_SCALE = 10;
+
+	// 这个类不能实例化
+	private Arith() {
+
+	}
+
+	/**
+	 * 提供精确的加法运算
+	 * 
+	 * @param v1
+	 *            被加数
+	 * @param v2
+	 *            加数
+	 * @return 两个参数的和
+	 */
+	public static int add(int v1, int v2) {
+		int and=v1+v2;
+		return and;
+	}
+
+	/**
+	 * 提供精确的加法运算
+	 * 
+	 * @param v1
+	 *            被加数
+	 * @param v2
+	 *            加数
+	 * @return 两个参数的和
+	 */
+	public static double addByPoint(double v1, double v2) {
+		BigDecimal b1 = new BigDecimal(Double.toString(v1));
+		BigDecimal b2 = new BigDecimal(Double.toString(v2));
+		return b1.add(b2).doubleValue();
+	}
+	/**
+	 * 提供精确的减法运算
+	 * 
+	 * @param v1
+	 *            被减数
+	 * @param v2
+	 *            减数
+	 * @return 两个参数的差
+	 */
+	public static int sub(int v1, int v2) {
+		int sub=v1-v2;
+		return sub;
+	}
+
+	/**
+	 * 提供精确的乘法运算
+	 * 
+	 * @param v1
+	 *            被乘数
+	 * @param v2
+	 *            乘数
+	 * @return 两个参数的积
+	 */
+	public static double mul(float v1, float v2) {
+		BigDecimal b1 = new BigDecimal(Float.toString(v1));
+		BigDecimal b2 = new BigDecimal(Float.toString(v2));
+		return b1.multiply(b2).doubleValue();
+	}
+
+	/**
+	 * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 小数点以后10位,以后的数字四舍五入
+	 * 
+	 * @param v1
+	 *            被除数
+	 * @param v2
+	 *            除数
+	 * @return 两个参数的商
+	 */
+	public static double div(double v1, double v2) {
+		return div(v1, v2, DEF_DIV_SCALE);
+	}
+
+	/**
+	 * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入。
+	 * 
+	 * @param v1
+	 *            被除数
+	 * @param v2
+	 *            除数
+	 * @param scale
+	 *            表示表示需要精确到小数点以后几位。
+	 * @return 两个参数的商
+	 */
+	public static double div(double v1, double v2, int scale) {
+		if (scale < 0) {
+			throw new IllegalArgumentException("The scale must be a positive integer or zero");
+		}
+		BigDecimal b1 = new BigDecimal(Double.toString(v1));
+		BigDecimal b2 = new BigDecimal(Double.toString(v2));
+		return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
+	}
+
+	/**
+	 * 提供精确的小数位四舍五入处理。
+	 * 
+	 * @param v
+	 *            需要四舍五入的数字
+	 * @param scale
+	 *            小数点后保留几位
+	 * @return 四舍五入后的结果
+	 */
+	public static double round(double v, int scale) {
+		if (scale < 0) {
+			throw new IllegalArgumentException("The scale must be a positive integer or zero");
+		}
+		BigDecimal b = new BigDecimal(Double.toString(v));
+		BigDecimal one = new BigDecimal("1");
+		return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
+	}
+	
+	public static String subZeroAndDot(String s){  
+        if(s.indexOf(".") > 0){  
+            s = s.replaceAll("0+?$", "");//去掉多余的0  
+            s = s.replaceAll("[.]$", "");//如最后一位是.则去掉  
+        }  
+        return s;  
+    } 
+}

+ 61 - 14
src/main/java/com/lsw/commons/utils/CommonUtils.java

@@ -1,25 +1,18 @@
 
 
 package com.lsw.commons.utils;
 package com.lsw.commons.utils;
 
 
+import sun.misc.BASE64Encoder;
+
+import javax.imageio.ImageIO;
 import java.awt.image.BufferedImage;
 import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.LineNumberReader;
+import java.io.*;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Random;
-import java.util.UUID;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.regex.Pattern;
 
 
-import javax.imageio.ImageIO;
-
 /**
 /**
  * @author 李书文
  * @author 李书文
  * @description 常用的工具类
  * @description 常用的工具类
@@ -195,6 +188,20 @@ public class CommonUtils {
     }
     }
 
 
     /**
     /**
+     * 判断手机号
+     *
+     * @param cellphone
+     * @return
+     */
+    public static boolean checkPhone(String cellphone) {
+        String regex = "^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$";
+        Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
+        Matcher m = p.matcher(cellphone);
+        return m.matches();
+
+    }
+
+    /**
      * 根据键值对得到map<String,Object>对象
      * 根据键值对得到map<String,Object>对象
      *
      *
      * @param ag
      * @param ag
@@ -424,6 +431,7 @@ public class CommonUtils {
         }
         }
         return rstr;
         return rstr;
     }
     }
+
     public static String resolveToByteFromEmoji(String str) {
     public static String resolveToByteFromEmoji(String str) {
         Pattern pattern = Pattern
         Pattern pattern = Pattern
                 .compile("[^(\u2E80-\u9FFF\\w\\s`~!@#\\$%\\^&\\*\\(\\)_+-?()——=\\[\\]{}\\|;。,、《》”:;“!……’:'\"<,>\\.?/\\\\*)]");
                 .compile("[^(\u2E80-\u9FFF\\w\\s`~!@#\\$%\\^&\\*\\(\\)_+-?()——=\\[\\]{}\\|;。,、《》”:;“!……’:'\"<,>\\.?/\\\\*)]");
@@ -435,6 +443,7 @@ public class CommonUtils {
         matcher.appendTail(sb2);
         matcher.appendTail(sb2);
         return sb2.toString();
         return sb2.toString();
     }
     }
+
     private static String resolveToByte(String str) {
     private static String resolveToByte(String str) {
         byte[] b = str.getBytes();
         byte[] b = str.getBytes();
         StringBuffer sb = new StringBuffer();
         StringBuffer sb = new StringBuffer();
@@ -449,5 +458,43 @@ public class CommonUtils {
         sb.append(":>");
         sb.append(":>");
         return sb.toString();
         return sb.toString();
     }
     }
+
+    /**
+     * 生成微信小程序二维码
+     * @param path
+     * @param params
+     * @return
+     */
+    public  static String post(String path,String params){
+        try {
+            URL url = new URL(path);
+            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
+            httpURLConnection.setRequestMethod("POST");// 提交模式
+            // 发送POST请求必须设置如下两行
+            httpURLConnection.setDoOutput(true);
+            httpURLConnection.setDoInput(true);
+            // 获取URLConnection对象对应的输出流
+            PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
+            // 发送请求参数
+            printWriter.write(params);//post的参数 xx=xx&yy=yy
+            // flush输出流的缓冲
+            printWriter.flush();
+            //开始获取数据
+            BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
+            ByteArrayOutputStream bos = new ByteArrayOutputStream();
+            int len;
+            byte[] arr = new byte[1024];
+            while((len=bis.read(arr))!= -1){
+                bos.write(arr,0,len);
+                bos.flush();
+            }
+            bos.close();
+            BASE64Encoder encoder = new BASE64Encoder();
+            return encoder.encode(bos.toByteArray());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
 }
 }
 
 

+ 0 - 21
src/main/java/com/lsw/commons/utils/IpUtil.java

@@ -1,32 +1,11 @@
 package com.lsw.commons.utils;
 package com.lsw.commons.utils;
 
 
-import com.jfinal.json.FastJson;
-import com.jfinal.kit.HttpKit;
 import com.jfinal.kit.StrKit;
 import com.jfinal.kit.StrKit;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
-import java.net.UnknownHostException;
-import java.util.Map;
 
 
 public class IpUtil {
 public class IpUtil {
     /**
     /**
-     * 获取ip地址信息
-     *
-     * @return
-     * @throws UnknownHostException
-     */
-    public static Map<String, Object> getAddress(String ip) throws UnknownHostException {
-        String returnStr = HttpKit.get("http://ip.taobao.com/service/getIpInfo.php?ip=" + ip);
-        Map<String, Object> result = FastJson.getJson().parse(returnStr, Map.class);
-        result.put("ip", ip);
-        if (0 == Integer.parseInt(result.get("code").toString())) {
-            return (Map<String, Object>) result.get("data");
-        } else {
-            result.put("result", false);
-            return result;
-        }
-    }
-    /**
      * 获取访问用户的客户端IP(适用于公网与局域网).
      * 获取访问用户的客户端IP(适用于公网与局域网).
      */
      */
     public static final String getIpAddr(final HttpServletRequest request)
     public static final String getIpAddr(final HttpServletRequest request)

+ 54 - 3
src/main/java/com/lsw/controller/front/resume/ResumeController.java

@@ -4,14 +4,17 @@ import com.jfinal.aop.Before;
 import com.jfinal.kit.HashKit;
 import com.jfinal.kit.HashKit;
 import com.jfinal.kit.PathKit;
 import com.jfinal.kit.PathKit;
 import com.jfinal.kit.Ret;
 import com.jfinal.kit.Ret;
+import com.jfinal.kit.StrKit;
 import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Db;
 import com.lsw.base.BaseController;
 import com.lsw.base.BaseController;
+import com.lsw.commons.utils.Arith;
 import com.lsw.commons.utils.ImageZipUtil;
 import com.lsw.commons.utils.ImageZipUtil;
 import com.lsw.interceptor.TokenInterceptor;
 import com.lsw.interceptor.TokenInterceptor;
 import com.lsw.model.work.Message;
 import com.lsw.model.work.Message;
 import com.lsw.model.work.Resume;
 import com.lsw.model.work.Resume;
 import com.lsw.model.work.ResumeDelivery;
 import com.lsw.model.work.ResumeDelivery;
 
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
 import java.util.Random;
 import java.util.Random;
@@ -25,9 +28,50 @@ public class ResumeController extends BaseController {
      */
      */
     public void my_resume() {
     public void my_resume() {
         Resume resume = Resume.dao.findFirst("SELECT * FROM tb_resume WHERE userId=?", getPara("userId"));
         Resume resume = Resume.dao.findFirst("SELECT * FROM tb_resume WHERE userId=?", getPara("userId"));
+        resume.put("complete", mul(resume));
         renderJson(resume);
         renderJson(resume);
     }
     }
 
 
+    private static double mul(Resume resume) {
+        float count = 11l;
+        if (StrKit.isBlank(resume.getMz())) {
+            count = count - 1l;
+        }
+        if (StrKit.isBlank(resume.getTx())) {
+            count = count - 1l;
+        }
+        if (StrKit.isBlank(resume.getCsny())) {
+            count = count - 1l;
+        }
+        if (StrKit.isBlank(resume.getEmail())) {
+            count = count - 1l;
+        }
+        if (StrKit.isBlank(resume.getPhone())) {
+            count = count - 1l;
+        }
+        if (StrKit.isBlank(resume.getMqszd())) {
+            count = count - 1l;
+        }
+        if (StrKit.isBlank(resume.getZw())) {
+            count = count - 1l;
+        }
+        if (StrKit.isBlank(resume.getZgxl())) {
+            count = count - 1l;
+        }
+        if (StrKit.isBlank(resume.getXx())) {
+            count = count - 1l;
+        }
+        if (StrKit.isBlank(resume.getJyjl())) {
+            count = count - 1l;
+        }
+        if (StrKit.isBlank(resume.getGzjl())) {
+            count = count - 1l;
+        }
+        BigDecimal c = new BigDecimal(count / 11l);
+        float f1 = c.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
+        return Arith.mul(f1, 100);
+    }
+
     /**
     /**
      * 上传data:image格式的图片
      * 上传data:image格式的图片
      */
      */
@@ -45,13 +89,18 @@ public class ResumeController extends BaseController {
      * 简历投递
      * 简历投递
      */
      */
     public void resume_delivery() {
     public void resume_delivery() {
+        Resume resume = Resume.dao.findFirst("SELECT * FROM tb_resume WHERE userId=?", getPara("userId"));
+        if(mul(resume)<60){
+            renderError("请先完善简历在投递");
+            return;
+        }
         ResumeDelivery check = ResumeDelivery.dao.findFirst("SELECT * FROM tb_resume_delivery WHERE userId=? AND positionId=?", getPara("userId"), getPara("positionId"));
         ResumeDelivery check = ResumeDelivery.dao.findFirst("SELECT * FROM tb_resume_delivery WHERE userId=? AND positionId=?", getPara("userId"), getPara("positionId"));
         if (check == null) {
         if (check == null) {
             ResumeDelivery delivery = getModel(ResumeDelivery.class, "", true);
             ResumeDelivery delivery = getModel(ResumeDelivery.class, "", true);
             delivery.remove("id");
             delivery.remove("id");
             delivery.setMTime(new Date());
             delivery.setMTime(new Date());
             delivery.save();
             delivery.save();
-            Message message=new Message();
+            Message message = new Message();
             message.setUserId(getParaToInt("toUserId"));
             message.setUserId(getParaToInt("toUserId"));
             message.setPid(delivery.getId());
             message.setPid(delivery.getId());
             message.setMType(1);
             message.setMType(1);
@@ -102,20 +151,22 @@ public class ResumeController extends BaseController {
         List<ResumeDelivery> list = ResumeDelivery.dao.resume_list(getParaToInt("userId"), getParaToInt("positionId"));
         List<ResumeDelivery> list = ResumeDelivery.dao.resume_list(getParaToInt("userId"), getParaToInt("positionId"));
         renderJson(list);
         renderJson(list);
     }
     }
+
     /**
     /**
      * 企业用户忽略该简历
      * 企业用户忽略该简历
      */
      */
     public void resume_ignore() {
     public void resume_ignore() {
-        Db.update("update tb_resume_delivery set mSate =1 where id=?",getPara("id"));
+        Db.update("update tb_resume_delivery set mSate =1 where id=?", getPara("id"));
         renderSuccess();
         renderSuccess();
     }
     }
+
     /**
     /**
      * 企业用户查看简历详情
      * 企业用户查看简历详情
      */
      */
     public void resume_preview() {
     public void resume_preview() {
         ResumeDelivery delivery = ResumeDelivery.dao.findById(getPara("id"));
         ResumeDelivery delivery = ResumeDelivery.dao.findById(getPara("id"));
         //已浏览过该简历
         //已浏览过该简历
-        if(delivery.getIsBrowse()==0){
+        if (delivery.getIsBrowse() == 0) {
             delivery.setIsBrowse(1);
             delivery.setIsBrowse(1);
             delivery.update();
             delivery.update();
         }
         }

+ 4 - 1
src/main/java/com/lsw/model/work/News.java

@@ -36,7 +36,8 @@ public class News extends BaseNews<News> {
         sb.append(" ORDER BY n." + sidx + " " + sord);
         sb.append(" ORDER BY n." + sidx + " " + sord);
         return dao.paginate(page, row, select, sb.toString());
         return dao.paginate(page, row, select, sb.toString());
     }
     }
-    public Page<News> jsonList(int page,String name, String type, String columnId) {
+
+    public Page<News> jsonList(int page, String name, String type, String columnId) {
         String select = "SELECT n.id,n.mTitle,n.mAudit,n.columnId,n.typeName,n.mCove,n.isTop,n.mTime,n.mRelease,c.mColumnName";
         String select = "SELECT n.id,n.mTitle,n.mAudit,n.columnId,n.typeName,n.mCove,n.isTop,n.mTime,n.mRelease,c.mColumnName";
         StringBuilder sb = new StringBuilder();
         StringBuilder sb = new StringBuilder();
         sb.append(" FROM tb_news n");
         sb.append(" FROM tb_news n");
@@ -51,6 +52,8 @@ public class News extends BaseNews<News> {
         if (StrKit.notBlank(columnId)) {
         if (StrKit.notBlank(columnId)) {
             sb.append(" AND n.columnId=" + columnId);
             sb.append(" AND n.columnId=" + columnId);
         }
         }
+        sb.append(" AND mRelease=0");
+        sb.append(" AND mAudit=1");
         sb.append(" ORDER BY n.isTop DESC,n.mTime DESC");
         sb.append(" ORDER BY n.isTop DESC,n.mTime DESC");
         return dao.paginate(page, 15, select, sb.toString());
         return dao.paginate(page, 15, select, sb.toString());
     }
     }