怎么把action分离出service层?

颖辉小居 国美金融 软件工程师  2015-11-15 03:28:50
action的代码
package yh.position.action.police;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import yh.position.action.BaseAction;
import yh.position.dao.impl.PoliceDaoImpl;
import yh.position.dao.impl.TaskDaoImpl;
import yh.position.dao.impl.UserDaoImpl;
import yh.position.model.Police;
import yh.position.model.Task;
import yh.position.model.User;
import yh.position.util.ConstantUtil;
import yh.position.util.JpushUtil;

/**
* 处理接警请求
*
* @author Administrator
*
*/
public class PoliceAcceptTaskAction extends BaseAction {
private static final long serialVersionUID = 1L;

private int taskId;// 派警任务ID

public int getTaskId() {
return taskId;
}

public void setTaskId(int taskId) {
this.taskId = taskId;
}

@Override
public String execute() {
PoliceDaoImpl policeDaoImpl = new PoliceDaoImpl();
UserDaoImpl userDaoImpl=new UserDaoImpl();
TaskDaoImpl taskDaoImpl = new TaskDaoImpl();
int policeId = currPoliceId();
Police police = policeDaoImpl.get(policeId);
Task task = taskDaoImpl.get(taskId);// 获得派警信息
if (null != police.getCurrTask()) {
message = "接警失败:您有未完成的派警任务!";
} else if (null == task) {
message = "接警失败:派警信息不存在!";
} else if (task.getAccept() != ConstantUtil.ACCEPT_NEW) {
message = "接警失败:该任务已经被接,不能再次接受!";
} else {
/** 可以接警 修改任务状态,建立警察-当前任务关系 */
task.setAccept(ConstantUtil.ACCEPT_DOING);
task.setAcceptTime(new Date());
task.setPoliceId(policeId);
police.setCurrTask(task);
policeDaoImpl.update(police);

/** 返回资料 返回任务信息,其中包含报警信息,报警人资料给 接警警员 */
jsonMap.put("task", task);

/** 发送通知给报警人,警员已经派出 */
User user = userDaoImpl.get(task.getAlarmInfo().getUserId());
Map<String, Object> extraMap = new HashMap<String, Object>();
extraMap.put("tag", "1");
JpushUtil.sendAndroidNotificationWithAlias("接警通知",
"警方已经接警,请保持手机畅通。", extraMap, user.getLoginName());

// 设置返回标识
code = 1;
message = "OK";
}
returnJson();
return SUCCESS;
}
}


我想分出一个service层不知道,那些代码可以放到service层中?service层的方法的返回值该是什么样子才最符合规范且容易阅读以及维护
...全文
91 1 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
从小就很呆 2015-11-16
service层应该存放业务逻辑,获得派警信息然后做判断是否更新和返回的message可以放在service里,写个方法返回String,参数就是taskId,还有发送的接警通知也放在里面,也就是保存后调用这个方法。
回复
excute全部都可以放到Service里面 action里面可以进行 参数校验、格式校验什么的,或者针对返回值进行提示啊或者返回页面什么的 其他的处理数据、处理逻辑都可以放到service里面处理
回复
青元子 2015-11-15
其实你excute全部方法可以放到service中有操作到业务逻辑的最好不要显示在action层,比如if啊什么条件判断都放在service,操作数据库的部分还可以再分到dao层
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-11-15 03:28
社区公告
暂无公告