zhijiezhao 3 年之前
父节点
当前提交
15e9dd12ab

+ 38 - 10
src/main/java/com/caimei365/user/service/impl/ClubServiceImpl.java

@@ -22,6 +22,7 @@ import com.caimei365.user.model.po.UserPo;
 import com.caimei365.user.model.vo.*;
 import com.caimei365.user.service.ClubService;
 import com.caimei365.user.utils.ImageUtils;
+import com.caimei365.user.utils.MathUtil;
 import com.caimei365.user.utils.OssUtil;
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
@@ -496,15 +497,27 @@ public class ClubServiceImpl implements ClubService {
             remarkVo.setAddTime(r.getAddTime());
             remarkVo.setClubName(clubMapper.findClubName(r.getClubId()));
             remarkVo.setClubName(r.getClubName());
+            remarkVo.setConsult(r.getConsult());
             remarkVos.add(remarkVo);
         });
         if (StringUtils.isNotBlank(consult)) {
             remarkVos.removeIf(r -> !r.getConsult().contains(consult));
         }
         PaginationVo<RemarkVo> pageVo = new PaginationVo<>(remarkVos);
-        pageVo.setTotalPage(pageInfo.getPages());
-        pageVo.setHasNextPage(pageInfo.isHasNextPage());
-        pageVo.setTotalRecord((int) pageInfo.getTotal());
+        if (null != remarkVos && remarkVos.size() > 0) {
+            pageVo.setTotalRecord(remarkVos.size());
+            if (remarkVos.size() > pageSize) {
+                pageVo.setTotalPage((int) Math.ceil(MathUtil.div(remarkVos.size(), pageSize).doubleValue()));
+                pageVo.setHasNextPage(true);
+            } else {
+                pageVo.setTotalPage(1);
+                pageVo.setHasNextPage(false);
+            }
+        } else {
+            pageVo.setTotalPage(0);
+            pageVo.setHasNextPage(false);
+            pageVo.setTotalRecord(0);
+        }
         return ResponseJson.success(pageVo);
     }
 
@@ -864,15 +877,15 @@ public class ClubServiceImpl implements ClubService {
             }
             if (StringUtils.isNotBlank(r.getConsult())) {
                 if (r.getConsult().contains(",")) {
-                    List<String> cons = Arrays.asList(r.getConsult().split(","));
+                    String[] split = r.getConsult().split(",");
                     String Cons = "";
-                    for (String con : cons) {
+                    for (String con : split) {
                         Cons += clubMapper.findConsultById(con).getClassName() + ",";
                     }
                     Cons = Cons.substring(0, Cons.length() - 1);
-                    visit.setConsult(Cons);
+                    visit.setConsultBack(Cons);
                 } else {
-                    visit.setConsult(clubMapper.findConsultById(r.getConsult()).getClassName());
+                    visit.setConsultBack(clubMapper.findConsultById(r.getConsult()).getClassName());
                 }
             }
             visit.setQuestionMan(clubMapper.findQuestionMan(r.getQuestionManId()));
@@ -883,12 +896,27 @@ public class ClubServiceImpl implements ClubService {
             visit.setQuestionManId(r.getQuestionManId());
             visit.setServiceProviderId(r.getServiceProviderId());
             visit.setRecordName(r.getRecordName());
+            visit.setConsult(r.getConsult());
             remarkVos.add(visit);
         });
+        if (StringUtils.isNotBlank(consult)) {
+            remarkVos.removeIf(r -> !r.getConsult().contains(consult));
+        }
         PaginationVo<VisitRemarkVo> pageVo = new PaginationVo<>(remarkVos);
-        pageVo.setTotalPage(remarksList.getPages());
-        pageVo.setHasNextPage(remarksList.isHasNextPage());
-        pageVo.setTotalRecord((int) remarksList.getTotal());
+        if (null != remarkVos && remarkVos.size() > 0) {
+            pageVo.setTotalRecord(remarkVos.size());
+            if (remarkVos.size() > pageSize) {
+                pageVo.setTotalPage((int) Math.ceil(MathUtil.div(remarkVos.size(), pageSize).doubleValue()));
+                pageVo.setHasNextPage(true);
+            } else {
+                pageVo.setTotalPage(1);
+                pageVo.setHasNextPage(false);
+            }
+        } else {
+            pageVo.setTotalPage(0);
+            pageVo.setHasNextPage(false);
+            pageVo.setTotalRecord(0);
+        }
         return ResponseJson.success(pageVo);
     }
 

+ 360 - 0
src/main/java/com/caimei365/user/utils/MathUtil.java

@@ -0,0 +1,360 @@
+package com.caimei365.user.utils;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+public class MathUtil {
+
+
+
+	public static int default_scale = 4;
+
+	private static final int MAX_GENERATE_COUNT = 99999;
+	private static int generateCount = 0;
+
+
+	/**
+	 * 两个实数相除,默认四舍五入到4位
+	 *
+	 * @param v1
+	 * @param v2
+	 * @return
+	 */
+	public static BigDecimal div(Object v1, Object v2) {
+		return div(v1, v2, default_scale);
+	}
+
+	/**
+	 * 两个实数相除,默认四舍五入到scale位
+	 *
+	 * @param v1
+	 * @param v2
+	 * @param scale
+	 * @return
+	 */
+	public static BigDecimal div(Object v1, Object v2, int scale) {
+		if (scale < 0) {
+			throw new IllegalArgumentException("四舍五入的位数不能为负数");
+		}
+		BigDecimal b1 = convert(v1);
+		BigDecimal b2 = convert(v2);
+		if (equal0(b2)) {
+			throw new IllegalArgumentException("除数不能为0");
+		}
+		return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP);
+	}
+
+	public static String formatDouble(double s) {
+		DecimalFormat fmt = new DecimalFormat("0.00");
+		return fmt.format(s);
+	}
+
+	public static String[] intersect(String[] arr1, String[] arr2){
+		List<String> l = new LinkedList<String>();
+		Set<String> common = new HashSet<String>();
+		for(String str:arr1){
+			if(!l.contains(str)){
+				l.add(str);
+			}
+		}
+		for(String str:arr2){
+			if(l.contains(str)){
+				common.add(str);
+			}
+		}
+		String[] result={};
+		return common.toArray(result);
+	}
+
+
+	public static synchronized String getUniqueString() {
+		if (generateCount > 99999)
+			generateCount = 0;
+		String uniqueNumber = Long.toString(System.currentTimeMillis())
+				+ Integer.toString(generateCount);
+		generateCount++;
+		return uniqueNumber;
+	}
+
+	/**
+	 * 
+	 * 构造函数
+	 */
+	private MathUtil() {
+
+	}
+
+	/**
+	 * 类型转换函数
+	 * 
+	 * @param o
+	 * @return
+	 */
+	public static BigDecimal convert(Object o) {
+		if (o == null) {
+			return BigDecimal.ZERO;
+		} else if (o instanceof BigDecimal) {
+			return (BigDecimal) o;
+		}
+		String str = o.toString();
+		if (StringUtils.isNotBlank(str)) {
+			return new BigDecimal(str);
+		} else {
+			return BigDecimal.ZERO;
+		}
+	}
+
+	/**
+	 * 两个实数相加
+	 * 
+	 * @param v1
+	 * @param v2
+	 * @return
+	 */
+	public static BigDecimal add(Object v1, Object v2) {
+		BigDecimal b1 = convert(v1);
+		BigDecimal b2 = convert(v2);
+		return b1.add(b2);
+
+	}
+
+	/**
+	 * 两个实数相减
+	 * 
+	 * @param v1
+	 * @param v2
+	 * @return
+	 */
+	public static BigDecimal sub(Object v1, Object v2) {
+		BigDecimal b1 = convert(v1);
+		BigDecimal b2 = convert(v2);
+		return b1.subtract(b2);
+
+	}
+
+	/**
+	 * 两个实数相乘
+	 * 
+	 * @param v1
+	 * @param v2
+	 * @return
+	 */
+	public static BigDecimal mul(Object v1, Object v2) {
+		BigDecimal b1 = convert(v1);
+		BigDecimal b2 = convert(v2);
+		return b1.multiply(b2);
+
+	}
+
+	/**
+	 * 相个实数相乘并四舍五入到Sacle位
+	 * 
+	 * @param v1
+	 * @param v2
+	 * @param scale
+	 * @return
+	 */
+	public static BigDecimal mul(Object v1, Object v2, int scale) {
+		if (scale < 0) {
+			throw new IllegalArgumentException("四舍五入的位数不能为负数");
+		}
+		BigDecimal b1 = convert(v1);
+		BigDecimal b2 = convert(v2);
+		return b1.multiply(b2).setScale(scale, BigDecimal.ROUND_HALF_UP);
+
+	}
+
+	/**
+	 * 两个实数比较
+	 * 
+	 * @param v1
+	 * @param v2
+	 * @return
+	 */
+	public static int compare(Object v1, Object v2) {
+		BigDecimal b1 = convert(v1);
+		BigDecimal b2 = convert(v2);
+		return b1.compareTo(b2);
+	}
+
+	public static boolean equal0(Object v1) {
+		BigDecimal b1 = convert(v1);
+		return b1.compareTo(BigDecimal.ZERO) == 0;
+	}
+
+	public static boolean notEqual0(Object v1) {
+		BigDecimal b1 = convert(v1);
+		return b1.compareTo(BigDecimal.ZERO) != 0;
+	}
+
+	/**
+	 * 两个整数比较
+	 * 
+	 * @param v1
+	 * @param v2
+	 * @return
+	 */
+	public static int compareInt(Integer v1, Integer v2) {
+
+		if (v1 == null) {
+			v1 = new Integer(0);
+		}
+		if (v2 == null) {
+			v2 = new Integer(0);
+		}
+		return v1.compareTo(v2);
+	}
+
+	/**
+	 * 判断两个整数是否相等
+	 * 
+	 * @param v1
+	 * @param v2
+	 * @return
+	 */
+	public static boolean equal(Integer v1, Integer v2) {
+
+		int result = compareInt(v1, v2);
+		return result == 0;
+	}
+
+	/**
+	 * 判断两个整数不等
+	 * 
+	 * @param v1
+	 * @param v2
+	 * @return
+	 */
+	public static boolean notEqual(Integer v1, Integer v2) {
+		int result = compareInt(v1, v2);
+		return result != 0;
+	}
+
+	/**
+	 * 实数的四舍五入函数
+	 * 
+	 * @param v
+	 * @param scale
+	 * @return
+	 */
+	public static BigDecimal round(Object v, int scale) {
+		if (scale < 0) {
+			throw new IllegalArgumentException("四舍五入的位数不能为负数");
+		}
+		BigDecimal b = convert(v);
+		return b.setScale(scale, BigDecimal.ROUND_HALF_UP);
+	}
+
+	/**
+	 * 将字符串转换成整型
+	 * 
+	 * @param value
+	 * @param defaultNum
+	 * @return
+	 */
+	public static int parsetInt(String value, int defaultNum) {
+		if (value != null && !value.equals("")) {
+			int num = defaultNum;
+			try {
+				num = Integer.parseInt(value);
+			} catch (Exception ignored) {
+			}
+			return num;
+		} else {
+			return defaultNum;
+		}
+	}
+
+	/**
+	 * 将string转换为double
+	 * 
+	 * @param value
+	 * @param defaultNum
+	 * @return
+	 */
+	public static double parseDouble(String value, double defaultNum) {
+		if (StringUtils.isBlank(value)) {
+			return defaultNum;
+		}
+
+		value = value.replaceAll(",", "");
+		value = value.replaceAll(" ", "");
+		value = value.replaceAll("¥", "");
+
+		double num = defaultNum;
+		try {
+			num = Double.parseDouble(value);
+		} catch (Exception ignored) {
+		}
+		return num;
+	}
+
+	/**
+	 * 将string 转换为double
+	 * 
+	 * @param value
+	 * @return
+	 */
+	public static double parseDouble(String value) {
+		return parseDouble(value, 0);
+	}
+
+	public static int isNullInteger(Integer v) {
+		if (v == null) {
+			return 0;
+		} else {
+			return v.intValue();
+		}
+	}
+	
+	//
+	private static double EARTH_RADIUS = 6378.137;
+
+	private static double rad(double d) {
+
+		return d * Math.PI / 180.0;
+
+	}
+
+	public static double getDistance(double lat1, double lng1, double lat2,
+
+	double lng2) {
+
+		double radLat1 = rad(lat1);
+
+		double radLat2 = rad(lat2);
+
+		double a = radLat1 - radLat2;
+
+		double b = rad(lng1) - rad(lng2);
+
+		double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)
+
+		+ Math.cos(radLat1) * Math.cos(radLat2)
+
+		* Math.pow(Math.sin(b / 2), 2)));
+
+		s = s * EARTH_RADIUS;
+
+		s = Math.round(s * 10000) / 10000;
+
+		return s;
+
+	}
+	
+	public static void main(String[] args){
+		double lat1=118.105736;
+		double lng1=24.491558;
+		double lat2=118.110749;
+		double lng2=24.492824;
+		double t=getDistance(lat1,lng1,lat2,lng2);
+		System.out.println(t);
+	}
+
+}

+ 2 - 2
src/main/resources/mapper/ClubMapper.xml

@@ -421,7 +421,7 @@
     </select>
     <select id="getRemarksListByKey" resultType="com.caimei365.user.model.vo.RemarksVo">
         select ccr.id as remarksId, ccr.remarks, ccr.addTime, ccr.questionMan, ccr.clubId,c.Name as clubName,ccr.serviceProviderId,
-        (SELECT NAME FROM serviceprovider s WHERE s.serviceProviderID = ccr.serviceProviderId) AS recordName,ccr.consultType as consult
+        (SELECT NAME FROM serviceprovider s WHERE s.serviceProviderID = ccr.serviceProviderId) AS recordName,ifnull(ccr.consultType,'') as consult
         from cm_club_remarks ccr
         LEFT JOIN club c ON c.clubID = ccr.clubId
         where ccr.serviceProviderId = #{serviceProviderId}
@@ -433,7 +433,7 @@
         order by addTime desc
     </select>
     <select id="getVisitorListByKey" resultType="com.caimei365.user.model.vo.VisitorRemarkVo">
-        SELECT questionManId, serviceProviderId, addTime as addDate, questionMan,consultType as consult
+        SELECT questionManId, serviceProviderId, addTime as addDate, questionMan,ifnull(consultType,'') as consult
         FROM cm_visitor_remarks
         WHERE serviceProviderId = #{serviceProviderId}
          <if test="keyWord != null and keyWord != ''">