Java源码示例:com.blade.mvc.annotation.JSON
示例1
@Route(value = "save", method = HttpMethod.POST)
@JSON
public RestResponse saveCategory(@Param String cname, @Param Integer mid) {
try {
metasService.saveMeta(Types.CATEGORY, cname, mid);
siteService.cleanCache(Types.C_STATISTICS);
} catch (Exception e) {
String msg = "分类保存失败";
if (e instanceof TipException) {
msg = e.getMessage();
} else {
log.error(msg, e);
}
return RestResponse.fail(msg);
}
return RestResponse.ok();
}
示例2
@Route(value = "delete")
@JSON
public RestResponse delete(@Param int mid) {
try {
metasService.delete(mid);
siteService.cleanCache(Types.C_STATISTICS);
} catch (Exception e) {
String msg = "删除失败";
if (e instanceof TipException) {
msg = e.getMessage();
} else {
log.error(msg, e);
}
return RestResponse.fail(msg);
}
return RestResponse.ok();
}
示例3
/**
* 保存系统设置
*/
@Route(value = "setting", method = HttpMethod.POST)
@JSON
public RestResponse saveSetting(@Param String site_theme, Request request) {
try {
Map<String, List<String>> querys = request.parameters();
optionsService.saveOptions(querys);
Environment config = Environment.of(optionsService.getOptions());
TaleConst.OPTIONS = config;
new Logs(LogActions.SYS_SETTING, JsonKit.toString(querys), request.address(), this.getUid()).save();
return RestResponse.ok();
} catch (Exception e) {
String msg = "保存设置失败";
if (e instanceof TipException) {
msg = e.getMessage();
} else {
log.error(msg, e);
}
return RestResponse.fail(msg);
}
}
示例4
/**
* 系统备份
*
* @return
*/
@Route(value = "backup", method = HttpMethod.POST)
@JSON
public RestResponse backup(@Param String bk_type, @Param String bk_path,
Request request) {
if (StringKit.isBlank(bk_type)) {
return RestResponse.fail("请确认信息输入完整");
}
try {
BackResponse backResponse = siteService.backup(bk_type, bk_path, "yyyyMMddHHmm");
new Logs(LogActions.SYS_BACKUP, null, request.address(), this.getUid()).save();
return RestResponse.ok(backResponse);
} catch (Exception e) {
String msg = "备份失败";
if (e instanceof TipException) {
msg = e.getMessage();
} else {
log.error(msg, e);
}
return RestResponse.fail(msg);
}
}
示例5
@PostRoute("/params-file") // DO NOT USE A SLASH WITHIN THE ROUTE OR IT WILL BREAK (?)
@JSON
public RestResponse<?> fileParam(@MultipartParam FileItem fileItem) throws Exception {
try {
byte[] fileContent = fileItem.getData();
log.debug("Saving the uploaded file");
java.nio.file.Path tempFile = Files.createTempFile("baeldung_tempfiles", ".tmp");
Files.write(tempFile, fileContent, StandardOpenOption.WRITE);
return RestResponse.ok();
} catch (Exception e) {
log.error(e.getMessage(), e);
return RestResponse.fail(e.getMessage());
}
}
示例6
@Route(value = "delete")
@JSON
public RestResponse delete(@Param Integer id, Request request) {
try {
Attach attach = new Attach().find(id);
if (null == attach) {
return RestResponse.fail("不存在该附件");
}
String fkey = attach.getFkey();
siteService.cleanCache(Types.C_STATISTICS);
String filePath = CLASSPATH.substring(0, CLASSPATH.length() - 1) + fkey;
java.nio.file.Path path = Paths.get(filePath);
log.info("Delete attach: [{}]", filePath);
if (Files.exists(path)) {
Files.delete(path);
}
attach.delete(id);
new Logs(LogActions.DEL_ATTACH, fkey, request.address(), this.getUid()).save();
} catch (Exception e) {
String msg = "附件删除失败";
if (e instanceof TipException) {
msg = e.getMessage();
} else {
log.error(msg, e);
}
return RestResponse.fail(msg);
}
return RestResponse.ok();
}
示例7
/**
* 保存个人信息
*/
@Route(value = "profile", method = HttpMethod.POST)
@JSON
public RestResponse saveProfile(@Param String screen_name, @Param String email, Request request) {
Users users = this.user();
if (StringKit.isNotBlank(screen_name) && StringKit.isNotBlank(email)) {
Users temp = new Users();
temp.setScreen_name(screen_name);
temp.setEmail(email);
temp.update(users.getUid());
new Logs(LogActions.UP_INFO, JsonKit.toString(temp), request.address(), this.getUid()).save();
}
return RestResponse.ok();
}
示例8
/**
* 修改密码
*/
@Route(value = "password", method = HttpMethod.POST)
@JSON
public RestResponse upPwd(@Param String old_password, @Param String password, Request request) {
Users users = this.user();
if (StringKit.isBlank(old_password) || StringKit.isBlank(password)) {
return RestResponse.fail("请确认信息输入完整");
}
if (!users.getPassword().equals(EncryptKit.md5(users.getUsername() + old_password))) {
return RestResponse.fail("旧密码错误");
}
if (password.length() < 6 || password.length() > 14) {
return RestResponse.fail("请输入6-14位密码");
}
try {
Users temp = new Users();
String pwd = EncryptKit.md5(users.getUsername() + password);
temp.setPassword(pwd);
temp.update(users.getUid());
new Logs(LogActions.UP_PWD, null, request.address(), this.getUid()).save();
return RestResponse.ok();
} catch (Exception e) {
String msg = "密码修改失败";
if (e instanceof TipException) {
msg = e.getMessage();
} else {
log.error(msg, e);
}
return RestResponse.fail(msg);
}
}
示例9
@Route(value = "login", method = HttpMethod.POST)
@JSON
public RestResponse doLogin(LoginParam loginParam, Request request,
Session session, Response response) {
Integer error_count = cache.get("login_error_count");
try {
error_count = null == error_count ? 0 : error_count;
if (null != error_count && error_count > 3) {
return RestResponse.fail("您输入密码已经错误超过3次,请10分钟后尝试");
}
long count = new Users().where("username", loginParam.getUsername()).count();
if (count < 1) {
return RestResponse.fail("不存在该用户");
}
String pwd = EncryptKit.md5(loginParam.getUsername(), loginParam.getPassword());
Users user = new Users().where("username", loginParam.getUsername()).and("password", pwd).find();
if (null == user) {
return RestResponse.fail("用户名或密码错误");
}
session.attribute(TaleConst.LOGIN_SESSION_KEY, user);
if (StringKit.isNotBlank(loginParam.getRemeberMe())) {
TaleUtils.setCookie(response, user.getUid());
}
Users temp = new Users();
temp.setLogged(DateKit.nowUnix());
temp.update(user.getUid());
log.info("登录成功:{}", loginParam.getUsername());
cache.set("login_error_count", 0);
new Logs(LogActions.LOGIN, loginParam.getUsername(), request.address(), user.getUid()).save();
} catch (Exception e) {
error_count += 1;
cache.set("login_error_count", error_count, 10 * 60);
String msg = "登录失败";
if (e instanceof TipException) {
msg = e.getMessage();
} else {
log.error(msg, e);
}
return RestResponse.fail(msg);
}
return RestResponse.ok();
}
示例10
/**
* 保存高级选项设置
*
* @return
*/
@Route(value = "advanced", method = HttpMethod.POST)
@JSON
public RestResponse doAdvanced(@Param String cache_key, @Param String block_ips,
@Param String plugin_name, @Param String rewrite_url,
@Param String allow_install) {
// 清除缓存
if (StringKit.isNotBlank(cache_key)) {
if ("*".equals(cache_key)) {
cache.clean();
} else {
cache.del(cache_key);
}
}
// 要过过滤的黑名单列表
if (StringKit.isNotBlank(block_ips)) {
optionsService.saveOption(Types.BLOCK_IPS, block_ips);
TaleConst.BLOCK_IPS.addAll(Arrays.asList(block_ips.split(",")));
} else {
optionsService.saveOption(Types.BLOCK_IPS, "");
TaleConst.BLOCK_IPS.clear();
}
// 处理卸载插件
if (StringKit.isNotBlank(plugin_name)) {
String key = "plugin_";
// 卸载所有插件
if (!"*".equals(plugin_name)) {
key = "plugin_" + plugin_name;
} else {
optionsService.saveOption(Types.ATTACH_URL, Commons.site_url());
}
optionsService.deleteOption(key);
}
// 是否允许重新安装
if (StringKit.isNotBlank(allow_install)) {
optionsService.saveOption("allow_install", allow_install);
TaleConst.OPTIONS.toMap().put("allow_install", allow_install);
}
return RestResponse.ok();
}
示例11
/**
* 评论操作
*/
@CsrfToken(valid = true)
@PostRoute(value = "comment")
@JSON
public RestResponse comment(Request request, Response response,
@HeaderParam String Referer, @Valid Comments comments) {
if (StringKit.isBlank(Referer)) {
return RestResponse.fail(ErrorCode.BAD_REQUEST);
}
if (!Referer.startsWith(Commons.site_url())) {
return RestResponse.fail("非法评论来源");
}
String val = request.address() + ":" + comments.getCid();
Integer count = cache.hget(Types.COMMENTS_FREQUENCY, val);
if (null != count && count > 0) {
return RestResponse.fail("您发表评论太快了,请过会再试");
}
comments.setAuthor(TaleUtils.cleanXSS(comments.getAuthor()));
comments.setContent(TaleUtils.cleanXSS(comments.getContent()));
comments.setAuthor(EmojiParser.parseToAliases(comments.getAuthor()));
comments.setContent(EmojiParser.parseToAliases(comments.getContent()));
comments.setIp(request.address());
comments.setParent(comments.getCoid());
try {
commentsService.saveComment(comments);
response.cookie("tale_remember_author", URLEncoder.encode(comments.getAuthor(), "UTF-8"), 7 * 24 * 60 * 60);
response.cookie("tale_remember_mail", URLEncoder.encode(comments.getMail(), "UTF-8"), 7 * 24 * 60 * 60);
if (StringKit.isNotBlank(comments.getUrl())) {
response.cookie("tale_remember_url", URLEncoder.encode(comments.getUrl(), "UTF-8"), 7 * 24 * 60 * 60);
}
// 设置对每个文章30秒可以评论一次
cache.hset(Types.COMMENTS_FREQUENCY, val, 1, 30);
siteService.cleanCache(Types.C_STATISTICS);
return RestResponse.ok();
} catch (Exception e) {
String msg = "评论发布失败";
if (e instanceof TipException) {
msg = e.getMessage();
} else {
log.error(msg, e);
}
return RestResponse.fail(msg);
}
}
示例12
@Route(value = "/", method = HttpMethod.POST)
@JSON
public RestResponse doInstall(@Param String site_title, @Param String site_url,
@Param String admin_user, @Param String admin_email,
@Param String admin_pwd) {
if (Files.exists(Paths.get(AttachController.CLASSPATH + "install.lock"))
&& TaleConst.OPTIONS.getInt("allow_install", 0) != 1) {
return RestResponse.fail("请勿重复安装");
}
try {
if (StringKit.isBlank(site_title) ||
StringKit.isBlank(site_url) ||
StringKit.isBlank(admin_user) ||
StringKit.isBlank(admin_pwd)) {
return RestResponse.fail("请确认网站信息输入完整");
}
if (admin_pwd.length() < 6 || admin_pwd.length() > 14) {
return RestResponse.fail("请输入6-14位密码");
}
if (StringKit.isNotBlank(admin_email) && !TaleUtils.isEmail(admin_email)) {
return RestResponse.fail("邮箱格式不正确");
}
Users temp = new Users();
temp.setUsername(admin_user);
temp.setPassword(admin_pwd);
temp.setEmail(admin_email);
siteService.initSite(temp);
if (site_url.endsWith("/")) {
site_url = site_url.substring(0, site_url.length() - 1);
}
if (!site_url.startsWith("http")) {
site_url = "http://".concat(site_url);
}
optionsService.saveOption("site_title", site_title);
optionsService.saveOption("site_url", site_url);
TaleConst.OPTIONS = Environment.of(optionsService.getOptions());
} catch (Exception e) {
String msg = "安装失败";
if (e instanceof TipException) {
msg = e.getMessage();
} else {
log.error(msg, e);
}
return RestResponse.fail(msg);
}
return RestResponse.ok();
}