package org.mvc.framework.controller;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.IntSummaryStatistics;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
import java.util.function.Predicate;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.mvc.framework.annotation.XCAutowired;
import org.mvc.framework.annotation.XCController;
import org.mvc.framework.annotation.XCRequestMapping;
import org.mvc.framework.annotation.XCRequestParam;
import org.mvc.framework.service.UserInfoService;
import com.alibaba.fastjson.JSONObject;
@XCController
@XCRequestMapping(value = "/system")
public class LoginController {
@XCAutowired
private UserInfoService userInfoService;
@XCRequestMapping(value = "/login.do")
public String login(HttpServletRequest request, HttpServletResponse response) {
System.out.println("系统用户登陆。");
return "我在登陆";
}
@XCRequestMapping(value = "/queryUser.do")
public String queryUser(HttpServletRequest request,
Integer inta, Integer intb, @XCRequestParam String userName, BigDecimal totalAmt) {
System.out.println(userName);
return "你狠聪明";
}
public static void main(String[] args) {
try {
List<Integer> list = Arrays.asList(2, 3, 5, 17, 19, 23, 29, 7, 11, 13, 10);
//list.forEach(n -> System.out.println(n));
//list.forEach((e)-> System.out.println(e));
list.forEach(System.out::println);
System.out.println();
Callable<String> callable0 = ()-> {
System.out.println("开始喝酒");
return "酒会结束";
};
FutureTask<String> task0 = new FutureTask<>(callable0);
new Thread(task0).start();
System.out.println(task0.get());
Runnable r1 = () -> System.out.println("hello");
Callable<JSONObject> callable = () -> {
JSONObject object = new JSONObject();
object.put("uname", "Tom");
return object;
};
r1.run();
FutureTask<JSONObject> task = new FutureTask<>(callable);
new Thread(task).start();
System.out.println(task.get());
new Thread(() -> System.out.println("项目结束")).start();
Map<String, Object> map = new HashMap<>();
map.put("userName", "Tom");
map.put("mobile", "1589351236");
map.forEach((key , val) -> {
System.out.println("key:" + key + ";value:" + val);
});
List<String> lans = Arrays.asList("Java", "Scala", "Hadoop", "C++", "Javascript", "Haskell", "Lisp");
List<String> lanlist = filterName(lans, (value) -> value.startsWith("J"));
List<String> lanlist1 = filterName(lans, (value) -> value.startsWith("H"));
System.out.print("lanlist filter rest :");
lanlist.forEach(val -> System.out.println(" " + val));
System.out.print("lanlist1 filter rest :");
lanlist1.forEach(val -> System.out.print(" " + val));
System.out.println();
// 每个订单加上12%的税
List<Integer> costBeforeTax = Arrays.asList(100, 200, 300, 400, 500);
costBeforeTax.stream().map((cost) -> cost + 0.12*cost).forEach(System.out::println);
double totalAmt = costBeforeTax.stream().map((cost) -> cost + .12*cost).reduce((sum, cost) -> sum + cost).get();
System.out.println(totalAmt);
double nextAmt = costBeforeTax.stream().reduce((a, b) -> a+b).get();
System.out.println(nextAmt);
costBeforeTax.stream().filter((money) -> money > 300).forEach(System.out::println);
// 概况统计
IntSummaryStatistics intStatistics = costBeforeTax.stream().mapToInt((money) -> money).summaryStatistics();
System.out.println("max " + intStatistics.getMax());
System.out.println("min " + intStatistics.getMin());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
public static List<String> filterName (List<String> lans, Predicate<String> condition) {
List<String> lanlist = new ArrayList<>();
lans.stream().filter((name) -> condition.test(name)).forEach((val) -> {
System.out.println(val.toUpperCase());
lanlist.add(val);
});
return lanlist;
}
}