package com.sunda.spmsorder.service.impl;

import com.sunda.spmscommon.ResponseResult;
import com.sunda.spmsorder.entity.SpmsPdaUpdateVersion;
import com.sunda.spmsorder.mapper.SpmsPdaUpdateVersionMapper;
import com.sunda.spmsorder.service.ISpmsPdaUpdateVersionService;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import java.math.BigInteger;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;

/**
 * <p>
 * PDA软件更新版本表 服务实现类
 * </p>
 *
 * @author Wayne
 * @since 2024-03-05
 */
@Service
public class SpmsPdaUpdateVersionServiceImpl extends ServiceImpl<SpmsPdaUpdateVersionMapper, SpmsPdaUpdateVersion> implements ISpmsPdaUpdateVersionService {

	@Override
	public ResponseResult getUpdateVersionByPage(JSONObject doc) {
		Integer pageNo = doc.getInteger("pageNo");
		Integer pageSize = doc.getInteger("pageSize");
		IPage<Map<String, Object>> iPage = new Page<>(pageNo, pageSize);
		SpmsPdaUpdateVersion vo = new SpmsPdaUpdateVersion();
		vo.setVersionName(doc.getString("versionName"));
		vo.setVersionCode(doc.getString("versionCode"));
		List<Map<String, Object>> list = this.baseMapper.selectUpdateVersionList(iPage, vo);
		iPage.setRecords(list);
		return ResponseResult.success().add("list", iPage);
	}

	@Override
	public ResponseResult getLastUpdateVersion() {
//		SpmsPdaUpdateVersion vo = new SpmsPdaUpdateVersion();
//		vo.setVersionName(doc.getString("versionName"));
//		vo.setVersionCode(doc.getString("versionCode"));
		Map<String, Object> map = this.baseMapper.selectLastUpdateVersion();
		return ResponseResult.success().add("vo", map);
	}

	@Override
	public ResponseResult createUpdateVersion(JSONObject doc, String userId) {
		if (StringUtils.isBlank(doc.getString("attachmentUrl"))) {
			ResponseResult.error("安装包下载路径为空");
		}
		SpmsPdaUpdateVersion vo = new SpmsPdaUpdateVersion();
		String uuid = UUID.randomUUID().toString().replaceAll("-","").toLowerCase();
		vo.setUuid(uuid);
		vo.setVersionName(StringUtils.isNotBlank(doc.getString("versionName")) ? doc.getString("versionName") : "");
		vo.setVersionCode(StringUtils.isNotBlank(doc.getString("versionCode")) ? doc.getString("versionCode") : "");
		vo.setComments(StringUtils.isNotBlank(doc.getString("comments")) ? doc.getString("comments") : "");
		vo.setUpdateType(StringUtils.isNotBlank(doc.getString("updateType")) ? doc.getString("updateType") : "");
		vo.setAttachmentName(StringUtils.isNotBlank(doc.getString("attachmentName")) ? doc.getString("attachmentName") : "");
		vo.setAttachmentUrl(doc.getString("attachmentUrl"));
		vo.setCreateTime(new Date());
		vo.setCreateUser(userId);
		this.baseMapper.insert(vo);
		return ResponseResult.success().add("vo", this.baseMapper.selectById(uuid));
	}

}
