package org.coody.reduce.controller;
import java.util.Date;
import java.util.List;
import org.coody.framework.core.annotation.AutoBuild;
import org.coody.framework.core.util.CommonUtil;
import org.coody.framework.core.util.reflex.PropertUtil;
import org.coody.framework.jdbc.entity.Pager;
import org.coody.framework.minicat.web.adapter.JsonMealAdapter;
import org.coody.framework.minicat.web.annotation.JsonOut;
import org.coody.framework.minicat.web.annotation.ParamsAdapt;
import org.coody.framework.minicat.web.annotation.PathBinding;
import org.coody.reduce.common.annotation.LoginCheck;
import org.coody.reduce.common.enm.ResultCode;
import org.coody.reduce.common.util.PECode;
import org.coody.reduce.controller.base.BaseController;
import org.coody.reduce.domain.AppInfo;
import org.coody.reduce.domain.ShortInfo;
import org.coody.reduce.dto.ShortInfoDTO;
import org.coody.reduce.service.AppService;
import org.coody.reduce.service.ShortService;
@PathBinding("/short")
@JsonOut
public class ShortController extends BaseController {
@AutoBuild
ShortService shortService;
@AutoBuild
AppService appService;
@PathBinding("/create")
public Object create(String unionId, String url) {
AppInfo app = appService.fromUnionId(unionId);
if (CommonUtil.isNullOrEmpty(app)) {
return ResultCode.E_1001_APP_EXISTS.toMsgEntity();
}
if (app.getStatus() != 1) {
return ResultCode.E_1002_APP_UNAVAILABLE.toMsgEntity();
}
ShortInfo info = new ShortInfo();
info.setUrl(url);
info.setCreateTime(new Date());
info.setUserId(app.getUserId());
info.setAppId(app.getId());
Long id = shortService.insert(info);
if (id < 1) {
return ResultCode.E_500_SYS_BUSY.toMsgEntity();
}
String shorter = request.getBasePath() + "/" + PECode.encode(id);
return ResultCode.E_200_SUCCESS.toMsgEntity(shorter);
}
@LoginCheck
@PathBinding("/info")
public Object save(Long id) {
ShortInfo shorter = shortService.fromId(id);
if (shorter == null) {
return ResultCode.E_403_NOT_EXISTS.toMsgEntity();
}
Integer userId = getCurrentUserId();
if (shorter.getUserId() != userId.intValue()) {
return ResultCode.E_403_NOT_EXISTS.toMsgEntity();
}
return ResultCode.E_200_SUCCESS.toMsgEntity(shorter);
}
@LoginCheck
@PathBinding("/save")
@ParamsAdapt(JsonMealAdapter.class)
public Object save(ShortInfo info) {
if (!CommonUtil.isNullOrEmpty(info.getId())) {
ShortInfo shorter = shortService.fromId(info.getId());
if (shorter == null) {
return ResultCode.E_403_NOT_EXISTS.toMsgEntity();
}
Integer userId = getCurrentUserId();
if (shorter.getUserId() != userId.intValue()) {
return ResultCode.E_403_NOT_EXISTS.toMsgEntity();
}
}
if (info.getAppId() == null) {
return ResultCode.E_1001_APP_EXISTS.toMsgEntity();
}
AppInfo app = appService.fromId(info.getAppId());
if (app == null) {
return ResultCode.E_1001_APP_EXISTS.toMsgEntity();
}
info.setUserId(getCurrentUserId());
Long code = shortService.save(info);
if (code < 1) {
return ResultCode.E_500_SYS_BUSY.toMsgEntity();
}
return ResultCode.E_200_SUCCESS.toMsgEntity();
}
@LoginCheck
@PathBinding("/del")
public Object del(Long id) {
ShortInfo shorter = shortService.fromId(id);
if (CommonUtil.isNullOrEmpty(shorter) || shorter.getUserId() != getCurrentUserId().intValue()) {
return ResultCode.E_403_NOT_EXISTS.toMsgEntity();
}
Long code = shortService.del(id);
if (code < 1) {
return ResultCode.E_500_SYS_BUSY.toMsgEntity();
}
return ResultCode.E_200_SUCCESS.toMsgEntity();
}
@LoginCheck
@PathBinding("/page")
@ParamsAdapt(JsonMealAdapter.class)
public Object page(Pager pager, ShortInfo shorter) {
if (shorter == null) {
shorter = new ShortInfo();
}
if (pager == null) {
pager = new Pager();
}
shorter.setUserId(getCurrentUserId());
pager = shortService.findPager(pager, shorter);
if (!CommonUtil.isNullOrEmpty(pager.getData())) {
List<ShortInfoDTO> dtos = PropertUtil.getNewList(pager.getData(), ShortInfoDTO.class);
for (ShortInfoDTO dto : dtos) {
String shortUrl = request.getBasePath() + "/" + PECode.encode(dto.getId());
dto.setShortUrl(shortUrl);
AppInfo app = appService.fromId(dto.getAppId());
dto.setAppName(app == null ? "" : app.getName());
}
pager.setData(dtos);
}
return ResultCode.E_200_SUCCESS.toMsgEntity(pager);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
短网址平台,Coody Framework首秀,自写IOC、MVC、ORM、TASK、JSON、DB连接池、服务器
共58个文件
java:34个
html:10个
png:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 18 浏览量
2023-06-14
18:42:06
上传
评论
收藏 82KB ZIP 举报
温馨提示
本项目为Coody Framework+Minicat首秀,短网址服务平台。部署在服务器,使用短域名解析即可提供服务。全项目打包后(带前端页面)大小约:2.1M,非常精简。前端采用Amaze UI,后端采用Coody Framework MVC,数据库采用H2DB
资源推荐
资源详情
资源评论
收起资源包目录
reduce-master.zip (58个子文件)
reduce-master
pom.xml 3KB
src
test
java
reduce
Test.java 1KB
main
resources
log4j.xml 3KB
html
register.html 3KB
reset_password.html 3KB
assets
js
loader.js 462B
app.js 13KB
common.js 1KB
img
logo.png 5KB
user01.png 9KB
syncfusion-icons-white.png 2KB
lbbg.png 434B
css
admin.css 6KB
app.css 38KB
app
app_list.html 6KB
app_edit.html 5KB
shorter
short_edit.html 5KB
short_list.html 8KB
login.html 2KB
common
menu.html 773B
header.html 1KB
index.html 3KB
coody.properties 1KB
java
org
coody
reduce
controller
AppController.java 3KB
ReduceController.java 1KB
UserController.java 4KB
base
BaseController.java 863B
ShortController.java 4KB
VerificatController.java 1KB
task
EmailTask.java 1KB
ReduceApp.java 270B
queue
FrequencyQueue.java 1KB
service
UserService.java 1KB
AppService.java 2KB
ShortService.java 2KB
EmailService.java 4KB
common
annotation
LoginCheck.java 350B
servlet
ReduceServlet.java 233B
entity
LoginEntity.java 820B
MsgEntity.java 2KB
exception
ReduceException.java 337B
constants
CacheConstant.java 481B
enm
ResultCode.java 2KB
util
PECode.java 2KB
aspecter
LoginAspect.java 1KB
dto
UserInfoDTO.java 827B
ShortInfoDTO.java 486B
initer
ImportDatabase.java 3KB
vo
UserLoginVO.java 487B
AppCreateVO.java 591B
UserCreateVO.java 624B
SendCodeVO.java 312B
domain
UserInfo.java 993B
EmailQueue.java 2KB
AppInfo.java 1KB
ShortInfo.java 1KB
LICENSE 11KB
.gitignore 103B
共 58 条
- 1
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 7361
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python爬虫入门实例教程.docx
- 基于Qt的文献管理系统.zip学习资料程序
- Arduino IDE 2 入门指南.pdf
- YOLO目标检测入门实例教程.docx
- 使用外部的抽奖游戏网站的开奖接口进行开奖,网站使用php搭建,游戏使用java运行.zip
- 使用Java Swing创建飞机大战小游戏.zip
- 升官图游戏 java.zip学习资料程序
- webmagic是一个开源的Java垂直爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发 webmagic的核心非常简单,但是覆盖爬虫的整个流程,也是很好的学习爬虫开发的材料
- NFC测试不灵敏,NFC工具
- javaweb-高校学生选课系统项目源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功