package com.baidu.disconf.web.service.app.service.impl; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.baidu.disconf.web.service.app.bo.App; import com.baidu.disconf.web.service.app.dao.AppDao; import com.baidu.disconf.web.service.app.form.AppNewForm; import com.baidu.disconf.web.service.app.service.AppMgr; import com.baidu.disconf.web.service.app.vo.AppListVo; import com.baidu.disconf.web.service.user.service.UserInnerMgr; import com.baidu.disconf.web.service.user.service.UserMgr; import com.baidu.dsp.common.constant.DataFormatConstants; import com.github.knightliao.apollo.utils.time.DateUtils; /** * @author liaoqiqi * @version 2014-6-16 */ @Service @Transactional(propagation = Propagation.REQUIRED, readOnly = true) public class AppMgrImpl implements AppMgr { @Autowired private AppDao appDao; @Autowired private UserInnerMgr userInnerMgr; @Autowired private UserMgr userMgr; /** * */ @Override public App getByName(String name) { return appDao.getByName(name); } /** * */ @Override public List<AppListVo> getAuthAppVoList() { List<App> apps = appDao.getByIds(userInnerMgr.getVisitorAppIds()); List<AppListVo> appListVos = new ArrayList<AppListVo>(); for (App app : apps) { AppListVo appListVo = new AppListVo(); appListVo.setId(app.getId()); appListVo.setName(app.getName()); appListVos.add(appListVo); } return appListVos; } @Override public Map<Long, App> getByIds(Set<Long> ids) { if (ids.size() == 0) { return new HashMap<Long, App>(); } List<App> apps = appDao.get(ids); Map<Long, App> map = new HashMap<Long, App>(); for (App app : apps) { map.put(app.getId(), app); } return map; } @Override public App getById(Long id) { return appDao.get(id); } @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false) public App create(AppNewForm appNew) { // new app App app = new App(); app.setName(appNew.getApp()); app.setDesc(appNew.getDesc()); app.setEmails(appNew.getEmails()); String curTime = DateUtils.format(new Date(), DataFormatConstants.COMMON_TIME_FORMAT); app.setCreateTime(curTime); app.setUpdateTime(curTime); // return appDao.create(app); } @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false) public void delete(Long appId) { appDao.delete(appId); } @Override public String getEmails(Long id) { App app = getById(id); if (app == null) { return ""; } else { return app.getEmails(); } } @Override public List<App> getAppList() { return appDao.findAll(); } }