123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- package com.yihu.hos.system.service;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.yihu.hos.common.constants.ContextAttributes;
- import com.yihu.hos.config.MongoConfig;
- import com.yihu.hos.core.datatype.StringUtil;
- import com.yihu.hos.core.encrypt.DES;
- import com.yihu.hos.core.log.Logger;
- import com.yihu.hos.core.log.LoggerFactory;
- import com.yihu.hos.interceptor.LocalContext;
- import com.yihu.hos.system.dao.AppDao;
- import com.yihu.hos.system.dao.AppServiceDao;
- import com.yihu.hos.system.model.SystemApp;
- import com.yihu.hos.system.model.SystemServiceEndpoint;
- import com.yihu.hos.web.framework.constant.EndPointConstant;
- import com.yihu.hos.web.framework.model.Result;
- import com.yihu.hos.web.framework.util.GridFSUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.web.multipart.commons.CommonsMultipartFile;
- import org.zbus.broker.ZbusBroker;
- import org.zbus.mq.Producer;
- import org.zbus.net.http.Message;
- import javax.annotation.Resource;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.util.Map;
- import java.util.UUID;
- /**
- * Created by chenweida on 2016/1/21.
- */
- @Service("appManager")
- public class AppManager {
- public static final String BEAN_ID = "appManager";
- static final Logger logger = LoggerFactory.getLogger(AppManager.class);
- @Resource(name = AppDao.BEAN_ID)
- private AppDao appDao;
- @Resource(name = AppServiceDao.BEAN_ID)
- private AppServiceDao appServiceDao;
- @Autowired
- private MongoConfig mongoConfig;
- @Autowired
- private ObjectMapper objectMapper;
- private ZbusBroker zbusBroker;
- public void setZbusBroker(ZbusBroker zbusBroker) {
- this.zbusBroker = zbusBroker;
- }
- public Result getAppList(Map<String, Object> params) throws Exception {
- return appDao.getAppList(params);
- }
- public SystemApp getAppById(String id) throws Exception {
- return appDao.getEntity(SystemApp.class, id);
- }
- @Transactional
- public Result addApp(SystemApp obj) throws Exception {
- appDao.saveEntity(obj);
- return Result.success("保存成功");
- }
- @Transactional
- public Result updateApp(SystemApp obj) throws Exception {
- SystemApp systemApp = appDao.getEntity(SystemApp.class, obj.getId());
- systemApp.setName(obj.getName());
- systemApp.setCode(obj.getCode());
- systemApp.setAppKey(obj.getAppKey());
- systemApp.setAppSecret(obj.getAppSecret());
- systemApp.setAppUrl(obj.getAppUrl());
- systemApp.setDeveloper(obj.getDeveloper());
- systemApp.setIcon(obj.getIcon());
- systemApp.setStatus(obj.getStatus());
- return Result.success("更新成功");
- }
- @Transactional
- public Result deleteApp(String id) throws Exception {
- SystemApp systemApp = appDao.getEntity(SystemApp.class, id);
- appDao.deleteEntity(systemApp);
- return Result.success("删除成功");
- }
- /* ==============================服务模块================================= */
- public Result getAppServiceList(Map<String, Object> params) throws Exception {
- return appServiceDao.getAppServiceList(params);
- }
- public SystemServiceEndpoint getAppServiceById(String id) throws Exception {
- SystemServiceEndpoint serviceEndpoint = appServiceDao.getEntity(SystemServiceEndpoint.class, id);
- serviceEndpoint.setRequesModule(serviceEndpoint.getRequesModule().replaceAll("\n", "<br>"));
- serviceEndpoint.setResponeResult(serviceEndpoint.getResponeResult().replaceAll("\n", "<br>"));
- serviceEndpoint.setResponeError(serviceEndpoint.getResponeError().replaceAll("\n", "<br>"));
- return serviceEndpoint;
- }
- @Transactional
- public Result addAppService(SystemServiceEndpoint endpoint) throws Exception {
- appServiceDao.saveEntity(endpoint);
- this.sendMsg(EndPointConstant.ADD_ENDPOINT, endpoint);
- return Result.success("保存成功");
- }
- @Transactional
- public Result updateAppService(SystemServiceEndpoint obj) throws Exception {
- SystemServiceEndpoint systemApp = appServiceDao.getEntity(SystemServiceEndpoint.class, obj.getId());
- systemApp.setName(obj.getName());
- systemApp.setCode(obj.getCode());
- systemApp.setValid(obj.getValid());
- systemApp.setVersion(obj.getVersion());
- systemApp.setDescription(obj.getDescription());
- systemApp.setEndpoint(obj.getEndpoint());
- systemApp.setRequesModule(obj.getRequesModule());
- systemApp.setRequestProtocol(obj.getRequestProtocol());
- systemApp.setResponeError(obj.getResponeError());
- systemApp.setResponeResult(obj.getResponeResult());
- systemApp.setRequestMethod(obj.getRequestMethod());
- systemApp.setRequestParameterList(obj.getRequestParameterList());
- systemApp.setHealthEndpoint(obj.getHealthEndpoint());
- systemApp.setHealthReportType(obj.getHealthReportType());
- systemApp.setMetricsEndpoint(obj.getMetricsEndpoint());
- systemApp.setMetricsReportType(obj.getMetricsReportType());
- systemApp.setAppId(obj.getAppId());
- systemApp.setRequestFormat(obj.getRequestFormat());
- return Result.success("更新成功");
- }
- @Transactional
- public Result deleteAppService(String id) throws Exception {
- SystemServiceEndpoint endpoint = appServiceDao.getEntity(SystemServiceEndpoint.class, id);
- appServiceDao.deleteEntity(endpoint);
- this.sendMsg(EndPointConstant.DELETE_ENDPOINT, endpoint);
- return Result.success("删除成功");
- }
- public Result uploadFile(CommonsMultipartFile file) {
- String newFileName;
- try {
- String fileName = UUID.randomUUID() + file.getFileItem().getName();
- newFileName = GridFSUtil.uploadFile(file.getInputStream(), fileName, null);
- if (!StringUtil.isEmpty(newFileName)) {
- return Result.success(DES.encrypt(newFileName, DES.COMMON_PASSWORD));
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return Result.error("上传失败");
- }
- public Result readFile(OutputStream os, String fileName) {
- String dbName = "upload";
- try {
- fileName = DES.decrypt(fileName, DES.COMMON_PASSWORD);
- GridFSUtil.readFile(mongoConfig.mongoClient().getDatabase(dbName), os, fileName);
- return Result.success("读取成功");
- } catch (Exception e) {
- e.printStackTrace();
- }
- return Result.error("读取失败");
- }
- private void sendMsg(String event, SystemServiceEndpoint endpoint) {
- if (zbusBroker == null) {
- logger.error("zbusBroker is null.");
- return;
- }
- try {
- String msg = objectMapper.writeValueAsString(endpoint);
- String tenant = LocalContext.getContext().getAttachment(ContextAttributes.TENANT_NAME);
- Producer producer = new Producer(zbusBroker, EndPointConstant.ZBUS_MQ + "@" + tenant);
- producer.createMQ(); //确定为创建消息队列需要显示调用
- Message message = new Message();
- message.setHead("event", event);
- message.setHead("tenant", tenant);
- message.setMethod("POST");
- message.setBody(msg);
- producer.sendSync(message);
- } catch (IOException | InterruptedException e) {
- logger.error(e.getMessage());
- e.printStackTrace();
- }
- }
- }
|