service以及serviceImpl以及相关类(暂时包含用户体系后续逐渐替换)

This commit is contained in:
even 2025-04-28 15:20:12 +08:00
parent f96c1cbeff
commit 609d3518a2
29 changed files with 873 additions and 0 deletions

View File

@ -0,0 +1,159 @@
package cd.casic.module.process.home.service.impl;
import cd.casic.module.process.home.service.HomeCountService;
import cd.casic.module.process.licence.appauth.service.ApplyAuthService;
import cd.casic.module.process.licence.licence.model.Version;
import cd.casic.module.process.licence.licence.service.VersionService;
import cd.casic.module.process.message.MessageNoticeService;
import cd.casic.module.process.message.setting.MessageSendTypeService;
import cd.casic.module.process.security.backups.service.BackupsDbService;
import cd.casic.module.process.setting.service.*;
import cd.casic.module.process.support.util.util.PipelineFinal;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Service
public class HomeCountServiceImpl implements HomeCountService {
// @Resource
// UserService userService;
//
// @Resource
// OrgaService orgaService;
//
// @Resource
// UserDirService userDirService;
//
// @Resource
// UserGroupService userGroupService;
//
// @Resource
// RoleService roleService;
@Resource
MessageNoticeService noticeService;
@Resource
MessageSendTypeService sendTypeService;
@Resource
VersionService versionService;
@Resource
ApplyAuthService applyAuthService;
@Resource
BackupsDbService backupsDbService;
@Resource
EnvService envService;
@Resource
ScmService scmService;
@Resource
GroupService groupService;
@Resource
AuthService authService;
@Resource
AuthHostService authHostService;
@Resource
AuthThirdService authThirdService;
@Resource
AuthHostGroupService authHostGroupService;
@Override
public Map<String, Object> findCount(){
Map<String,Object> map = new HashMap<>();
// TODO 用户相关先空置
// Integer userNumber = userService.findUserNumber();
// map.put("userNumber",userNumber);
//
// Integer orgaNumber = orgaService.findOrgaNumber();
// map.put("orgaNumber",orgaNumber);
//
// Integer userDirNumber = userDirService.findUserDirNumber();
// map.put("userDirNumber",userDirNumber);
//
// Integer userGroupNumber = userGroupService.findUserGroupNumber();
// map.put("userGroupNumber",userGroupNumber);
//
// Integer roleNumber = roleService.findRoleNumber();
// map.put("roleNumber",roleNumber);
Integer noticeNumber = noticeService.findNoticeNumber(PipelineFinal.appName);
map.put("noticeNumber",noticeNumber);
Integer sendTypeNumber = sendTypeService.findSendTypeNumber();
map.put("sendTypeNumber",sendTypeNumber);
Version version = versionService.getVersion();
map.put("version",version.getExpired());
Integer applyAuthNumber = applyAuthService.findApplyAuthNumber();
map.put("applyAuthNumber",applyAuthNumber);
String lastBackupsTime = backupsDbService.findLastBackupsTime();
map.put("lastBackupsTime",lastBackupsTime);
Integer envNumber = envService.findEnvNumber();
map.put("envNumber",envNumber);
Integer scmNumber = scmService.findScmNumber();
map.put("scmNumber",scmNumber);
Integer groupNumber = groupService.findGroupNumber();
map.put("groupNumber",groupNumber);
Integer authNumber = authService.findAuthNumber();
map.put("authNumber",authNumber);
Integer hostNumber = authHostService.findHostNumber();
map.put("hostNumber",hostNumber);
Integer serverNumber = authThirdService.findAuthServerNumber();
map.put("serverNumber",serverNumber);
Integer hostGroupNumber = authHostGroupService.findHostGroupNumber();
map.put("hostGroupNumber",hostGroupNumber);
return map;
}
}

View File

@ -0,0 +1,197 @@
package cd.casic.module.process.home.service.impl;
import cd.casic.ci.commons.bean.process.definition.Pipeline;
import cd.casic.module.process.home.service.PipelineHomeService;
import cd.casic.module.process.message.message.SendMessageNoticeService;
import cd.casic.module.process.message.message.model.Message;
import cd.casic.module.process.message.message.model.MessageReceiver;
import cd.casic.module.process.message.message.model.SendMessageNotice;
import cd.casic.module.process.message.model.setting.MessageType;
import cd.casic.module.process.security.logging.logging.model.Logging;
import cd.casic.module.process.security.logging.logging.model.LoggingType;
import cd.casic.module.process.security.logging.logging.service.LoggingByTempService;
import cd.casic.module.process.support.util.util.PipelineFinal;
import cd.casic.module.process.user.user.User;
import com.alibaba.fastjson.JSONObject;
import jakarta.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class PipelineHomeServiceImpl implements PipelineHomeService {
// @Resource
// UserService userService;
@Resource
LoggingByTempService logService;
@Resource
SendMessageNoticeService dispatchNoticeService;
@Value("${base.url:null}")
String baseUrl;
String appName = PipelineFinal.appName;
private final Logger logger = LoggerFactory.getLogger(this.getClass());
public final ExecutorService executorService = Executors.newCachedThreadPool();
/**
* 初始化消息日志信息
* @param pipeline 流水线
* @return 信息
*/
@Override
public HashMap<String,Object> initMap(Pipeline pipeline){
HashMap<String,Object> map = new HashMap<>();
// TODO 整合成我们自己的用户体系
// String userId = LoginContext.getLoginId();
// if (Objects.isNull(userId)){
// userId = pipeline.getUser().getId();
// }
// User user = userService.findOne(userId);
// map.put("pipelineId", pipeline.getId());
// map.put("pipelineName", pipeline.getName());
// map.put("userName", user.getName());
// if (user.getNickname() != null){
// map.put("userName", user.getNickname());
// }
return map;
}
/**
* 创建日志
* @param logType 日志类型
* @param map 日志信息
*/
@Override
public void log(String logType, Map<String, Object> map){
logger.info("创建日志......");
executorService.submit(() -> {
try {
Logging log = new Logging();
//消息类型
LoggingType opLogType = new LoggingType();
opLogType.setId(logType);
log.setActionType(opLogType);
log.setModule("pipeline");
// //用户信息
// String userId = LoginContext.getLoginId();
// User user = userService.findOne(userId);
String link = (String) map.get("link");
String pipelineName = (String) map.get("pipelineName");
// log.setUser(user);
log.setLink(link);
log.setAction(pipelineName);
log.setBaseUrl(baseUrl);
log.setBgroup(appName);
log.setData(JSONObject.toJSONString(map));
logService.createLog(log);
}catch (Exception e){
logger.error("日志创建失败:{}",e.getMessage());
}
});
}
/**
* 配置全局消息
* @param templateId 方案id
* @param map 信息
*/
@Override
public void settingMessage(String templateId,Map<String, Object> map){
logger.info("发送消息......");
executorService.submit(() -> {
try {
String link = (String) map.get("link");
map.put("qywxurl", link);
SendMessageNotice dispatchNotice = new SendMessageNotice();
dispatchNotice.setId(templateId);
String jsonString = JSONObject.toJSONString(map);
dispatchNotice.setEmailData(jsonString);
dispatchNotice.setDingdingData(jsonString);
dispatchNotice.setSiteData(jsonString);
dispatchNotice.setQywechatData(jsonString);
dispatchNotice.setBaseUrl(baseUrl);
String pipelineName = (String) map.get("pipelineName");
dispatchNotice.setLink(link);
dispatchNotice.setAction(pipelineName);
// TODO 替换成系统自带的上下文
// dispatchNotice.setSendId(LoginContext.getLoginId());
if (!Objects.isNull(map.get("dmMessage")) && (Boolean)map.get("dmMessage")){
String pipelineId = (String) map.get("pipelineId");
dispatchNotice.setDomainId(pipelineId);
dispatchNoticeService.sendDmMessageNotice(dispatchNotice);
}else {
dispatchNoticeService.sendMessageNotice(dispatchNotice);
}
}catch (Exception e){
logger.error(e.getMessage());
};
});
}
/**
* 发送消息指定类型
* @param receiver 接收信息
* @param map 信息
*/
@Override
public void message(Map<String, Object> map, List<String> receiver){
logger.info("发送指定类型消息......");
Message message = new Message();
String sendWay = (String)map.get("sendWay");
String mesType = (String)map.get("mesType");
//消息类型
MessageType messageType = new MessageType();
messageType.setId(mesType);
message.setMessageType(messageType);
//发送方式
message.setMessageSendTypeId(sendWay);
message.setData(map);
message.setBaseUrl(baseUrl);
List<MessageReceiver> list = new ArrayList<>();
for (String s : receiver) {
MessageReceiver messageReceiver = new MessageReceiver();
messageReceiver.setUserId(s);
messageReceiver.setPhone(s);
messageReceiver.setEmail(s);
list.add(messageReceiver);
}
message.setMessageReceiverList(list);
// message.setSendId(LoginContext.getLoginId());
String pipelineName = (String) map.get("pipelineName");
message.setAction(pipelineName);
dispatchNoticeService.sendMessage(message);
}
/**
* 发送短信
* @param map 短信内容
*/
@Override
public void smsMessage(Map<String,Object> map){
}
}

View File

@ -0,0 +1,10 @@
package cd.casic.module.process.licence.appauth.model;
import java.util.List;
public class ApplyAuth {
private Integer userNumber;
private Integer residueNumber;
private Integer allUserNumber;
private List<ApplyAuthUser> userList;
}

View File

@ -0,0 +1,19 @@
package cd.casic.module.process.licence.appauth.model;
import cd.casic.module.process.user.user.User;
import jakarta.validation.constraints.NotNull;
public class ApplyAuthUser {
private String id;
@NotNull
// @Mappings({@Mapping(
// source = "user.id",
// target = "userId"
// )})
// @JoinQuery(
// key = "id"
// )
private User user;
private Integer type;
private String state;
}

View File

@ -0,0 +1,16 @@
package cd.casic.module.process.licence.appauth.model;
import cd.casic.ci.commons.bean.order.Order;
import cd.casic.ci.commons.bean.order.OrderBuilders;
import cd.casic.framework.commons.pojo.PageParam;
import lombok.Data;
import java.util.List;
@Data
public class ApplyAuthUserQuery {
private String id;
private String userId;
private String state;
private List<Order> orderParams = OrderBuilders.instance().desc("id").get();
private PageParam pageParam = new PageParam();
}

View File

@ -0,0 +1,24 @@
package cd.casic.module.process.licence.appauth.service;
import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.module.process.licence.appauth.model.ApplyAuth;
import cd.casic.module.process.licence.appauth.model.ApplyAuthUser;
import cd.casic.module.process.licence.appauth.model.ApplyAuthUserQuery;
public interface ApplyAuthService {
ApplyAuth findApplyAuth();
Integer findApplyAuthNumber();
void createUserApplyAuth(String var1, String var2);
void addUserApplyAuth(String var1);
void deleteUserApplyAuth(String var1);
String findUserApplyAuth(String var1);
void removeUserApplyAuth(String var1);
PageResult<ApplyAuthUser> findApplyAuthPage(ApplyAuthUserQuery var1);
}

View File

@ -0,0 +1,12 @@
package cd.casic.module.process.licence.licence.model;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@Data
public class Version {
@NotNull
private Integer release;
@NotNull
private Boolean expired;
}

View File

@ -0,0 +1,7 @@
package cd.casic.module.process.licence.licence.service;
import cd.casic.module.process.licence.licence.model.Version;
public interface VersionService {
Version getVersion();
}

View File

@ -0,0 +1,36 @@
package cd.casic.module.process.message;
import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.module.process.message.model.MessageNotice;
import cd.casic.module.process.message.model.message.MessageNoticeQuery;
import cd.casic.module.process.message.model.message.MessageSync;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import java.util.List;
public interface MessageNoticeService {
String createMessageNotice(@NotNull @Valid MessageNotice var1);
String cloneMessageNotice(String var1);
void updateMessageNotice(@NotNull @Valid MessageNotice var1);
void deleteMessageNotice(@NotNull String var1);
// @FindOne
MessageNotice findOne(@NotNull String var1);
// @FindList
List<MessageNotice> findList(List<String> var1);
void updateMessageNoticeState(String var1);
List<MessageNotice> findMessageNoticeList(MessageNoticeQuery var1);
PageResult<MessageNotice> findMessageNoticePage(MessageNoticeQuery var1);
void syncMessageNotice(MessageSync var1);
Integer findNoticeNumber(String var1);
}

View File

@ -0,0 +1,14 @@
package cd.casic.module.process.message.message;
import cd.casic.module.process.message.message.model.Message;
import cd.casic.module.process.message.message.model.SendMessageNotice;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
public interface SendMessageNoticeService {
String sendMessageNotice(@NotNull @Valid SendMessageNotice var1);
String sendDmMessageNotice(SendMessageNotice var1);
String sendMessage(Message var1);
}

View File

@ -0,0 +1,35 @@
package cd.casic.module.process.message.message.model;
import cd.casic.module.process.message.model.setting.MessageType;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Data
public class Message {
private String id;
@NotNull
// @Mappings({@Mapping(
// source = "messageType.id",
// target = "messageTypeId"
// )})
// @JoinQuery(
// key = "id"
// )
private MessageType messageType;
@NotNull
private String baseUrl;
private String messageSendTypeId;
private Map<String, Object> data;
private List<MessageReceiver> messageReceiverList = new ArrayList();
private String link;
private String action;
private String sendId;
private String receiverName;
private String receiverAccent;
private String sendUserName;
private String sendUserAccent;
private String otherMessage;
}

View File

@ -0,0 +1,10 @@
package cd.casic.module.process.message.message.model;
import lombok.Data;
@Data
public class MessageReceiver {
private String userId;
private String phone;
private String email;
}

View File

@ -0,0 +1,25 @@
package cd.casic.module.process.message.message.model;
import cd.casic.module.process.privilege.vRole.model.VRoleDomain;
import cd.casic.module.process.user.user.User;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
@Data
public class SendMessageNotice {
private String id;
private String siteData;
private String emailData;
private String qywechatData;
private String dingdingData;
private String appData;
private String domainId;
private VRoleDomain vRoleDomain = new VRoleDomain();
@NotNull
private String baseUrl;
private String link;
private String action;
private String sendId;
private List<User> userList;
}

View File

@ -0,0 +1,34 @@
package cd.casic.module.process.message.model;
import cd.casic.module.process.message.model.setting.MessageType;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
@Data
public class MessageNotice {
private String id;
@NotNull
// @Mappings({@Mapping(
// source = "messageType.id",
// target = "messageTypeId"
// )})
// @JoinQuery(
// key = "id"
// )
private MessageType messageType;
@NotNull
private Integer type;
@NotNull
private String bgroup;
private int scope = 1;
@NotNull
private String messageSendTypeId;
private Boolean open;
private List<String> sendTypeList;
private List<String> groupList;
private List<String> orgaList;
private List<String> userList;
private List<String> roleList;
}

View File

@ -0,0 +1,19 @@
package cd.casic.module.process.message.model.message;
import cd.casic.ci.commons.bean.order.Order;
import cd.casic.ci.commons.bean.order.OrderBuilders;
import cd.casic.framework.commons.pojo.PageParam;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class MessageNoticeQuery implements Serializable {
private String messageTypeId;
private String messageSendTypeId;
private Integer type;
private int scope = 1;
private String bgroup;
private List<Order> orderParams = OrderBuilders.instance().desc("type").get();
private PageParam pageParam = new PageParam();
}

View File

@ -0,0 +1,15 @@
package cd.casic.module.process.message.model.message;
import cd.casic.module.process.message.model.MessageNotice;
import cd.casic.module.process.message.model.setting.MessageType;
import lombok.Data;
import java.util.List;
@Data
public class MessageSync {
private String id;
private String bGroup;
private List<MessageTemplate> messageTemplateList;
private List<MessageType> messageTypeList;
private List<MessageNotice> messageNoticeList;
}

View File

@ -0,0 +1,33 @@
package cd.casic.module.process.message.model.message;
import cd.casic.module.process.message.model.setting.MessageType;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@Data
public class MessageTemplate {
private String id;
@NotNull
// @Mappings({@Mapping(
// source = "msgType.id",
// target = "msgTypeId"
// )})
// @JoinQuery(
// key = "id"
// )
private MessageType msgType;
@NotNull
// @Mappings({@Mapping(
// source = "msgSendType.id",
// target = "msgSendTypeId"
// )})
// @JoinQuery(
// key = "id"
// )
private MessageSendType msgSendType;
private String title;
private String content;
private String link;
private String linkParams;
private String bgroup;
}

View File

@ -0,0 +1,11 @@
package cd.casic.module.process.message.model.setting;
import jakarta.validation.constraints.NotNull;
public class MessageSendType {
@NotNull
private String id;
@NotNull
private String name;
private String desc;
}

View File

@ -0,0 +1,14 @@
package cd.casic.module.process.message.model.setting;
import cd.casic.ci.commons.bean.order.Order;
import cd.casic.ci.commons.bean.order.OrderBuilders;
import cd.casic.framework.commons.pojo.PageParam;
import lombok.Data;
import java.util.List;
@Data
public class MessageSendTypeQuery {
private String name;
private List<Order> orderParams = OrderBuilders.instance().asc("name").get();
private PageParam pageParam = new PageParam();
}

View File

@ -0,0 +1,13 @@
package cd.casic.module.process.message.model.setting;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@Data
public class MessageType {
private String id;
@NotNull
private String name;
private String desc;
private String bgroup;
}

View File

@ -0,0 +1,34 @@
package cd.casic.module.process.message.setting;
import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.module.process.message.model.setting.MessageSendType;
import cd.casic.module.process.message.model.setting.MessageSendTypeQuery;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import java.util.List;
public interface MessageSendTypeService {
String createMessageSendType(@NotNull @Valid MessageSendType var1);
void updateMessageSendType(@NotNull @Valid MessageSendType var1);
void deleteMessageSendType(@NotNull String var1);
// @FindOne
MessageSendType findOne(@NotNull String var1);
// @FindList
List<MessageSendType> findList(List<String> var1);
MessageSendType findMessageSendType(@NotNull String var1);
// @FindAll
List<MessageSendType> findAllMessageSendType();
List<MessageSendType> findMessageSendTypeList(MessageSendTypeQuery var1);
PageResult<MessageSendType> findMessageSendTypePage(MessageSendTypeQuery var1);
Integer findSendTypeNumber();
}

View File

@ -0,0 +1,11 @@
package cd.casic.module.process.privilege.vRole.model;
import lombok.Data;
@Data
public class VRole {
private String id;
private String name;
private String des;
private Integer type;
}

View File

@ -0,0 +1,12 @@
package cd.casic.module.process.privilege.vRole.model;
import lombok.Data;
import java.util.List;
@Data
public class VRoleDomain {
private List<VRole> vRoleList;
private String domainId;
private String type;
private String modelId;
}

View File

@ -0,0 +1,14 @@
package cd.casic.module.process.security.backups.model;
import lombok.Data;
@Data
public class Backups {
private String id;
private String type;
private String runState;
private String createTime;
private String dir;
private String log;
private Boolean scheduled;
}

View File

@ -0,0 +1,13 @@
package cd.casic.module.process.security.backups.service;
import cd.casic.module.process.security.backups.model.Backups;
public interface BackupsDbService {
void backups();
Backups findBackupsResult();
String findLastBackupsTime();
void updateBackups(Boolean var1);
}

View File

@ -0,0 +1,45 @@
package cd.casic.module.process.security.logging.logging.model;
import cd.casic.module.process.user.user.User;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.sql.Timestamp;
@Data
public class Logging {
private String id;
@NotNull
// @Mappings({@Mapping(
// source = "user.id",
// target = "userId"
// )})
// @JoinQuery(
// key = "id"
// )
private User user;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Timestamp createTime = new Timestamp(System.currentTimeMillis());
private String module;
@NotNull
// @Mappings({@Mapping(
// source = "actionType.id",
// target = "actionType"
// )})
// @JoinQuery(
// key = "id"
// )
private LoggingType actionType;
@NotNull
private String baseUrl;
private String content;
private String bgroup;
private String data;
@NotNull
private String link;
@NotNull
private String action;
}

View File

@ -0,0 +1,13 @@
package cd.casic.module.process.security.logging.logging.model;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@Data
public class LoggingType {
private String id;
@NotNull
private String name;
@NotNull
private String bgroup;
}

View File

@ -0,0 +1,9 @@
package cd.casic.module.process.security.logging.logging.service;
import cd.casic.module.process.security.logging.logging.model.Logging;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
public interface LoggingByTempService {
String createLog(@NotNull @Valid Logging var1);
}

View File

@ -0,0 +1,19 @@
package cd.casic.module.process.user.user;
import lombok.Data;
@Data
public class User {
private String id;
private String name;
private String phone;
private String email;
private String avatar;
private String nickname;
private String dirId;
private String password;
private Integer status;
private Integer type;
private String openId;
private String newPassword;
}