package io.v.nutz; import io.v.nutz.base.service.BaseService; import io.v.nutz.base.utils.MsgApi; import io.v.nutz.base.utils.Roles; import io.v.nutz.data.model.UserSource; import io.v.nutz.member.MemberMode; import io.v.nutz.service.AsyncService; import io.v.nutz.sickHelp.model.SickFundMember; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.models.Sys_user_role; import io.v.nutz.sys.models.User; import io.v.nutz.sys.services.SysConfigService; import io.v.nutz.sys.services.SysUserRoleService; import io.v.nutz.sys.services.SysUserService; import org.apache.shiro.crypto.hash.Sha256Hash; import org.apache.shiro.util.ByteSource; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.nutz.boot.NbApp; import org.nutz.boot.starter.logback.exts.loglevel.LoglevelProperty; import org.nutz.boot.test.junit4.NbJUnit4Runner; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.entity.Record; import org.nutz.dao.sql.Sql; import org.nutz.dao.util.Daos; import org.nutz.integration.jedis.RedisService; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.json.Json; import org.nutz.lang.Lang; import org.nutz.lang.random.R; import org.nutz.lang.util.NutMap; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** * Created by wizzer on 2018/4/1. */ @IocBean(create = "init") @RunWith(NbJUnit4Runner.class) public class WebTestDemo extends Assert { @Inject private SysConfigService sysConfigService; @Inject private RedisService redisService; public void init() { System.out.println("say hi"); } @Test public void test_service_inject() { Set set = redisService.keys("logback:loglevel:list:*"); NutMap map = NutMap.NEW(); for (String key : set) { String[] keys = key.split(":"); String name = keys[3]; LoglevelProperty loglevelProperty = Json.fromJson(LoglevelProperty.class, redisService.get(key)); map.addv2(name, loglevelProperty); } System.out.println(Json.toJson(map)); } // 测试类可提供public的static的createNbApp方法,用于定制当前测试类所需要的NbApp对象. // 测试类带@IocBean或不带@IocBean,本规则一样生效 // 若不提供,默认使用当前测试类作为MainLauncher. // 也可以自定义NbJUnit4Runner, 继承NbJUnit4Runner并覆盖其createNbApp方法 public static NbApp createNbApp() { NbApp nb = new NbApp().setMainClass(MainLauncher.class).setPrintProcDoc(false); nb.getAppContext().setMainPackage("io.v"); return nb; } @Inject private BaseService baseService; @Inject private SysUserRoleService sysUserRoleService; @Test public void addDb() { String roleId = "1427083503b74aa0885d104419b33170"; List jdhDbs = baseService.dao().query("jdh_db", Cnd.NEW()); jdhDbs.forEach(v -> { Sys_user_role userRole = new Sys_user_role(); userRole.setRoleId(roleId); userRole.setUserId(v.getString("dbid")); userRole.setJdhid(v.getString("jdhid")); userRole.setDbtid(v.getString("dbtid")); sysUserRoleService.insert(userRole); }); } @Test public void aa() { String str = "2020-01-02 12:00:01"; boolean convertSuccess = true; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { // 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01 format.setLenient(true); format.parse(str); } catch (ParseException e) { // e.printStackTrace(); // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对 convertSuccess = false; } System.out.println(convertSuccess); } @Inject private SysUserService sysUserService; @Inject private AsyncService asyncService; @Test public void updateMember() { Sql sql = Sqls.create("SELECT * from sys_user WHERE member = @normal").setParam("normal", MemberMode.NORMAL.getCode()); List list = sysUserService.list(sql); asyncService.exe2(list, (v) -> { Sys_user_role userRole = new Sys_user_role(); userRole.setUserId(v.getString("id")); userRole.setRoleId(Roles.MEMBER); sysUserRoleService.insert(userRole); }); } @Test public void aaa() { Sql sql = Sqls.create("SELECT * from sys_user WHERE member = @normal").setParam("normal", MemberMode.NORMAL.getCode()); List member = sysUserService.listEntity(sql); List memberHistory = sysUserService.listEntity(Sqls.create("SELECT * from member_history ")); List collect = member.stream().filter(v -> memberHistory.stream().noneMatch(x -> x.getLoginname().equals(v.getLoginname()))).collect(Collectors.toList()); String s = Json.toJson(collect); System.err.println(collect); } @Test public void bbb() { Sys_user sys_user = new Sys_user(); sys_user.setUsername("张三"); sys_user.setLoginname("1111"); sys_user.setSex("男"); String s = Json.toJson(sys_user); try { System.out.println("男男" + URLEncoder.encode(s, "utf-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } @Test public void bb() { List query = sysUserService.query(); query.forEach(v -> { UserSource user = baseService.dao().fetch(UserSource.class, Cnd.where("loginname", "=", v.getLoginname())); if (user == null) { baseService.dao().clear(Sys_user.class, Cnd.where("loginname", "=", v.getLoginname())); } }); } @Test public void wechatMsg() { Map body = new HashMap<>(); NutMap a = new NutMap() {{ put("fromuser", "70207087"); put("content", "提案附议"); put("title", "提案-【提案系统投用内测1124-02】"); put("type", "textcard"); put("priority", "1"); put("url", "https://ehall3.nuaa.edu.cn/v2/matter/todo"); put("tools", new ArrayList() {{ add(new NutMap() {{ put("tool", "wechat"); }}); }}); put("tousers", new ArrayList() {{ add(new NutMap() {{ put("touser", "70204783"); }}); }}); }}; // body.put("message", Json.toJson(a)); // String wxToken = "445f535a5c525a1e0a06127b222a52225f0732"; // String post = Http.post("https://api.nuaa.edu.cn/yutool/api/send?appId=3WC2O4dP&token=" + wxToken, body, 5000); // System.out.println(post); } @Inject private Dao dao; @Test public void abcdefg() { // ImportParams params = new ImportParams(); // List> list = ExcelImportUtil.importExcel( // new File("C:\\Users\\xgh\\Desktop\\会员信息\\1水文院分工会.xls"), Map.class, params); // System.out.println(list); } @Test public void abcdefgaaa() { String substring = "username".substring(0, "username".length() - 2); System.out.println(substring); } @Test public void updatePWD() { String pwd = "dd3s@#2022"; List list = dao.query(Sys_user.class, null); for (Sys_user sys_user : list) { String salt = R.UU32(); sys_user.setSalt(salt); sys_user.setPassword(new Sha256Hash(pwd, ByteSource.Util.bytes(salt), 1024).toHex()); } dao.update(list); } @Test public void updateSickMember() { List sickFundMembers = dao.query(SickFundMember.class, null); for (SickFundMember sickFundMember : sickFundMembers) { User user = dao.fetch(User.class, Cnd.where("loginname", "=", sickFundMember.getLoginName())); sickFundMember.setUnitName(user != null ? user.getUnitname() : null); } dao.update(sickFundMembers); } @Inject private MsgApi msgApi; @Test public void testMsgToken() { String msgToken = msgApi.getMsgToken(); System.out.println(msgToken); } @Test public void testMsgToken2() { msgApi.sendMsg("1",List.of("18571562330")); } }