package com.a.b.isv.service;
import java.util.Objects;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Service;
import com.a.b.isv.conf.IsvConfig;
import com.a.b.isv.core.ResponseMsg;
import com.a.b.isv.domain.ActivityEnum;
import com.a.b.isv.domain.ResultCodeEnum;
import com.a.b.isv.pojo.AppInfo;
import com.a.b.isv.pojo.IsvInstance;
import com.a.b.isv.util.SecureUtils;
import cn.hutool.cache.impl.TimedCache;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.thread.ThreadUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* SaaS商品接入云市场
*
* @author y
* @date 2021/03/22
*/
@Service
@AllArgsConstructor
@Slf4j
public class IsvService { // 配置文件包含卖家中心获取的key值,和各类配置信息 https://support.huaweicloud.com/accessg-marketplace/zh-cn_topic_0070649065.html
private final IsvConfig isvConfig;
public ResponseMsg instance(IsvInstance isvInstance) {
ResponseMsg responseBody = new ResponseMsg();
// 校验通知消息的合法性
boolean verification = SecureUtils.verificationRequestParams(
BeanUtil.beanToMap(isvInstance, false, true)
, isvConfig.getAccessKey(), -1);
if(!verification) {
responseBody.setResultCode(ResultCodeEnum.authFailed);
return responseBody;
}
// 业务逻辑处理,此处需要根据自己公司产品进行相应的代码编写 // 响应
responseBody.setInstanceId(isvInstance.getBusinessId());
responseBody.setResultCode(ResultCodeEnum.success);
AppInfo appInfo = new AppInfo();
appInfo.setFrontEndUrl("http://front.a.com/b/index.html#/user/login");
appInfo.setAdminUrl("http://front.a.com/b/index.html#/user/login");
appInfo.setUserName(SecureUtils.generateSaaSUsernameOrPwd(isvConfig.getAccessKey(),"user1000",256));
appInfo.setPassword(SecureUtils.generateSaaSUsernameOrPwd(isvConfig.getAccessKey(),"user1000",256));
appInfo.setMemo("hello world");
responseBody.setAppInfo(appInfo);
return responseBody;
}
/**
* 新购场景
*/
private void newInstanceScene(IsvInstance isvInstance) {
log.info("新购场景:");
}
/**
* 续费场景
*/
private void refreshInstanceScene() {
log.info("续费场景:");
}
/**
* 商品过期
*/
private void expireInstanceScene() {
log.info("商品过期场景:");
}
/**
* 商品资源释放
*/
private void releaseInstanceScene() {
log.info("商品资源释放场景:");
}
/**
* 商品升级
*/
private void upgradeScene() {
log.info("商品升级场景:");
}
/**
* 实例是否已存在,并且有效
*
* @param orderId
* @return
*/
private boolean isExist(String orderId) {
return true;
}
}
|