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; /** *

* description *

* * @author denglb 2021/11/18 */ @Service @AllArgsConstructor public class AppAuditServiceImpl extends ServiceImpl 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() .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 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 queryAppVersion(PageRequest pageRequest,String company, String content) { Page page = pageUtil.getPage(pageRequest); IPage 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().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 list = list(new LambdaQueryWrapper().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("该配置已存在"); } } }