package com.nova.sankuai.service.impl;
|
|
import cn.hutool.json.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.nova.sankuai.domain.api.aliyunIP.AliyunUtil;
|
import com.nova.sankuai.domain.dto.AddAppAudit;
|
import com.nova.sankuai.domain.dto.UpdateAppAudit;
|
import com.nova.sankuai.domain.entity.AppAudit;
|
import com.nova.sankuai.domain.vo.AppAuditVo;
|
import com.nova.sankuai.infra.config.CommonException;
|
import com.nova.sankuai.infra.mapper.AppAuditMapper;
|
import com.nova.sankuai.infra.utils.IpUtil;
|
import com.nova.sankuai.infra.utils.PageRequest;
|
import com.nova.sankuai.infra.utils.PageUtil;
|
import com.nova.sankuai.infra.utils.RsaSecretUtils;
|
import com.nova.sankuai.service.IAppAuditService;
|
import lombok.AllArgsConstructor;
|
import org.apache.commons.lang.StringUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.List;
|
import java.util.Random;
|
|
/**
|
* <p>
|
* description
|
* </p>
|
*
|
* @author denglb 2021/11/18
|
*/
|
@Service
|
@AllArgsConstructor
|
public class AppAuditServiceImpl extends ServiceImpl<AppAuditMapper, AppAudit> implements IAppAuditService {
|
|
private final AliyunUtil aliyunUtil;
|
|
private final AppAuditMapper appAuditMapper;
|
|
private final PageUtil pageUtil;
|
|
@Override
|
public JSONObject audit(AppAudit audit, HttpServletRequest request) {
|
JSONObject result = new JSONObject(true);
|
result.putOnce("code", 200);
|
result.putOnce("msg", "成功");
|
String content = null;
|
AppAudit one = this.getOne(new LambdaQueryWrapper<AppAudit>()
|
.eq(AppAudit::getCompany, audit.getCompany())
|
.eq(AppAudit::getPlatform, audit.getPlatform())
|
.eq(AppAudit::getSource, audit.getSource())
|
.eq(AppAudit::getVersion, audit.getVersion()));
|
if (one == null) {
|
result.putOnce("data", "true");
|
} else {
|
if (one.getType() != null && 0 == one.getType()) {
|
result.putOnce("data", "false");
|
content = one.getContent0();
|
} else if (one.getType() != null && 1 == one.getType()) {
|
result.putOnce("data", "true");
|
content = one.getContent1();
|
}
|
}
|
if (content == null) {
|
content = "https://skfq.biaohekeji.com?appId=08d4ced2-d7d0-4509-b197-317f99c7f08f";
|
}
|
result.putOnce("content", content);
|
result.putOnce("timestamp", System.currentTimeMillis());
|
result.putOnce("chat", getRandomStr());
|
result.putOnce("xcodesss", getRandomStr());
|
result.putOnce("guidang", getRandomStr());
|
result.putOnce("demoww", getRandomStr());
|
result.putOnce("sahre", getRandomStr());
|
if (one.getType() != null && 0 == one.getType() && StringUtils.isNotEmpty(one.getPublicKey())) {
|
try {
|
com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
|
if (StringUtils.isNotEmpty(one.getOcrId())) {
|
jsonObject.put("id", one.getOcrId());
|
}
|
if (StringUtils.isNotEmpty(one.getOcrSecret())) {
|
jsonObject.put("secret", one.getOcrSecret());
|
}
|
if (StringUtils.isNotEmpty(one.getOcrLicense())) {
|
jsonObject.put("license", one.getOcrLicense());
|
}
|
if (jsonObject != null && !jsonObject.isEmpty()) {
|
byte[] bytes = RsaSecretUtils.publicEncrypt(jsonObject.toJSONString().getBytes(), one.getPublicKey());
|
String ocrinfo = RsaSecretUtils.byte2Base64(bytes);
|
result.putOnce("ocrinfo", ocrinfo);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
String ip = IpUtil.getIpAddr(request);
|
if (aliyunUtil.checkCounty(ip)) {
|
result.replace("data", "true");
|
}
|
// if ("true".equals(result.get("data"))) {
|
// result.replace("content", null);
|
// }
|
return result;
|
}
|
|
@Override
|
public void addAppVersion(AddAppAudit addAppAudit) {
|
String company = addAppAudit.getCompany().toLowerCase();
|
String platform = addAppAudit.getPlatform().toLowerCase();
|
String source = addAppAudit.getSource().toLowerCase();
|
String version = addAppAudit.getVersion();
|
addAppAudit.setCompany(company);
|
addAppAudit.setPlatform(platform);
|
addAppAudit.setSource(source);
|
//判断是否已存在
|
checkIsExistence(company, platform, source, version);
|
AppAudit appAuditsave = new AppAudit();
|
BeanUtils.copyProperties(addAppAudit, appAuditsave);
|
if (appAuditsave.getType() == null) {
|
appAuditsave.setType(1);
|
}
|
if (0 == appAuditsave.getType()) {
|
appAuditsave.setContent0(addAppAudit.getContent());
|
} else {
|
appAuditsave.setContent1(addAppAudit.getContent());
|
}
|
boolean save = save(appAuditsave);
|
if (!save) {
|
throw new CommonException("新增失败");
|
}
|
}
|
|
@Override
|
public void updateAppVersion(UpdateAppAudit updateAppAudit) {
|
AppAudit appAudit = getById(updateAppAudit.getId());
|
if (appAudit == null) {
|
throw new CommonException("未查询到App免审");
|
}
|
String company = updateAppAudit.getCompany().toLowerCase();
|
String platform = updateAppAudit.getPlatform().toLowerCase();
|
String source = updateAppAudit.getSource().toLowerCase();
|
String version = updateAppAudit.getVersion();
|
//判断是否已存在
|
checkOtherIsExistence(updateAppAudit.getId(), company, platform, source, version);
|
LambdaUpdateWrapper<AppAudit> lambdaUpdate = Wrappers.lambdaUpdate();
|
lambdaUpdate.set(AppAudit::getType, updateAppAudit.getType());
|
if (updateAppAudit.getType() == null) {
|
lambdaUpdate.set(AppAudit::getType, 1);
|
}
|
if (0 == updateAppAudit.getType()) {
|
lambdaUpdate.set(AppAudit::getContent0, updateAppAudit.getContent());
|
} else {
|
lambdaUpdate.set(AppAudit::getContent1, updateAppAudit.getContent());
|
}
|
lambdaUpdate.set(AppAudit::getVersion, updateAppAudit.getVersion());
|
lambdaUpdate.set(AppAudit::getSource, source);
|
lambdaUpdate.set(AppAudit::getPlatform, platform);
|
lambdaUpdate.set(AppAudit::getCompany, company);
|
lambdaUpdate.set(AppAudit::getNotes, updateAppAudit.getNotes());
|
lambdaUpdate.eq(AppAudit::getId, updateAppAudit.getId());
|
boolean update = update(lambdaUpdate);
|
if (!update) {
|
throw new CommonException("修改失败");
|
}
|
}
|
|
@Override
|
public void deleteAppVersion(Long id) {
|
boolean removeById = removeById(id);
|
if (!removeById) {
|
throw new CommonException("删除失败");
|
}
|
}
|
|
@Override
|
public IPage<AppAuditVo> queryAppVersion(PageRequest pageRequest,String company, String content) {
|
Page page = pageUtil.getPage(pageRequest);
|
IPage<AppAuditVo> appAuditVoIPage = appAuditMapper.pageAppAudit(page, company, content);
|
return appAuditVoIPage;
|
}
|
|
public static String getRandomStr() {
|
String base = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
Random random = new Random();
|
StringBuilder sb = new StringBuilder();
|
for (int i = 0; i < 10; i++) {
|
int number = random.nextInt(base.length());
|
sb.append(base.charAt(number));
|
}
|
return sb.toString();
|
}
|
|
public void checkIsExistence(String company, String platform, String source, String version) {
|
AppAudit appAudit = getOne(new LambdaQueryWrapper<AppAudit>().eq(AppAudit::getCompany, company)
|
.eq(AppAudit::getPlatform, platform).eq(AppAudit::getSource, source)
|
.eq(AppAudit::getVersion, version));
|
if (appAudit != null) {
|
throw new CommonException("该配置已存在");
|
}
|
}
|
|
public void checkOtherIsExistence(Long id, String company, String platform, String source, String version) {
|
List<AppAudit> list = list(new LambdaQueryWrapper<AppAudit>().eq(AppAudit::getCompany, company)
|
.eq(AppAudit::getPlatform, platform).eq(AppAudit::getSource, source)
|
.eq(AppAudit::getVersion, version).ne(AppAudit::getId, id));
|
if (list.size() > 0) {
|
throw new CommonException("该配置已存在");
|
}
|
}
|
}
|