package com.iamberry.app.start;
import java.util.List;
import java.util.concurrent.CountDownLatch;

import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ImportResource;
import org.springframework.context.support.AbstractApplicationContext;

import com.iamberry.app.core.entity.User;
import com.iamberry.app.face.UserService;
import com.iamberry.app.mapper.UserMapper;
import com.iamberry.app.ulitity.Utility;

@ImportResource("classpath:iamberry-app-service-spring.xml")
@SpringBootApplication
public class InitApp {
    @Bean
    public CountDownLatch closeLatch() {
        return new CountDownLatch(1);
    }
	public static void main(String[] args) throws Exception {
		AbstractApplicationContext ctx = (AbstractApplicationContext) new SpringApplicationBuilder().sources(InitApp.class).web(false).run(args);
		CountDownLatch closeLatch = ctx.getBean(CountDownLatch.class);
		/*
		// 获取
		UserService milkService = ctx.getBean(UserService.class);
		UserMapper userMapper = ctx.getBean(UserMapper.class);
		int pageNO = 0;
		boolean flag = true;
		while (flag) {
			// 查询第一页的数据,直接页数
			int start = pageNO * 100;
			int end = 100;
			// 下一次查询
			pageNO++;

			// 获取一页的数据
			List<User> users = milkService.getAll(start, end);
			for (User user : users) {
				// 判断用户是第三方登录,还是自己注册的
				if (StringUtils.isEmpty(user.getExt_type())) {
					// 使用手机号码注册
					if (StringUtils.isNotEmpty(user.getUserTel())) {
					} else {

						// 判断是否拥有宝宝信息,如果拥有宝宝信息,那么账户正常,否则需要完善宝宝信息
						user.setStatus_("SAVE_TEL");
						
						if (user.getBaby_nickname() != null) {
							user.setStatus_("active");
						} else {
							if (user.getBaby_dob() != null && user.getBaby_dob().getTime() > 0) {
								System.out.println("数据一致" + Utility.formatStringToDate("yyyy-MM-dd", "1970-1-1").getTime() + "=" + user.getBaby_gender());
								user.setStatus_("active");
							}
						}
						
						User temp = new User();
						temp.setId(user.getId());
						temp.setUserTel(user.getUsername());
						temp.setStatus_(user.getStatus_());
						userMapper.updateUser(temp);
						System.out.println("修改自己注册的用户:" + user);
					}
				} else {
					// 第三方注册
					
					// username是否是手机号码,如果是手机号码,那么把保存到user_tel,并且状态更新为SAVE_TEL,否则NOW_INIT
					if (user.getUsername().length() == 11) {
						user.setUserTel(user.getUsername());
						user.setStatus_("SAVE_TEL");
						// 宝宝信息是否存在,如果存在,那么状态为active,否则为
						if (user.getBaby_nickname() != null) {
							user.setStatus_("active");
						} else {
							if (user.getBaby_dob() != null && user.getBaby_dob().getTime() > 0) {
								System.out.println("数据一致" + Utility.formatStringToDate("yyyy-MM-dd", "1970-1-1").getTime() + "=" + user.getBaby_gender());
								user.setStatus_("active");
							}
						}
						
						User temp = new User();
						temp.setId(user.getId());
						temp.setUserTel(user.getUserTel());
						temp.setStatus_(user.getStatus_());
						temp.setUsername(user.getExt_open_id());
						userMapper.updateUser(temp);
					} else {
						user.setStatus_("NOW_INIT");
						User temp = new User();
						temp.setId(user.getId());
						temp.setStatus_(user.getStatus_());
						temp.setUsername(user.getExt_open_id());
						userMapper.updateUser(temp);
					}
					System.out.println("修改第三方注册的用户:" + user);
				}
			}
			if (users.size() < 100) {
				// 停止
				flag = false;
			}
		}*/
		closeLatch.await();
	}
}