MrShi
2026-01-13 3a154bdb0a5aaa2c0ac3eac95a6ba747068bd454
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkVersionServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,200 @@
package com.doumee.service.business.impl;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.model.JkCabinet;
import com.doumee.dao.business.model.JkCabinetLog;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.JkVersionMapper;
import com.doumee.dao.business.model.JkVersion;
import com.doumee.service.business.JkVersionService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.java.Log;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * äº¤æŽ§-钥匙柜终端版本信息表Service实现
 * @author æ±Ÿè¹„蹄
 * @date 2025/09/28 09:01
 */
@Service
public class JkVersionServiceImpl implements JkVersionService {
    @Autowired
    private JkVersionMapper jkVersionMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Override
    public Integer create(JkVersion jkVersion) {
        if(Objects.isNull(jkVersion)
                || Objects.isNull(jkVersion.getIsForce())
                || StringUtils.isBlank(jkVersion.getVersionInfo())
                || StringUtils.isBlank(jkVersion.getFileUrl())
                || Objects.isNull(jkVersion.getFileSize())
                || StringUtils.isBlank(jkVersion.getName())
                || StringUtils.isBlank(jkVersion.getContent())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = jkVersion.getLoginUserInfo();
        jkVersion.setCreateDate(new Date());
        jkVersion.setCreator(loginUserInfo.getId());
        jkVersion.setEditDate(jkVersion.getCreateDate());
        jkVersion.setEditor(jkVersion.getCreator());
        jkVersion.setIsdeleted(Constants.ZERO);
        jkVersion.setType(Constants.ZERO);
        jkVersionMapper.insert(jkVersion);
        return jkVersion.getId();
    }
    @Override
    public void deleteById(Integer id) {
        jkVersionMapper.update(null,new UpdateWrapper<JkVersion>().lambda()
                .set(JkVersion::getIsdeleted,Constants.ONE)
                .eq(JkVersion::getId,id));
//        jkVersionMapper.deleteById(id);
    }
    @Override
    public void delete(JkVersion jkVersion) {
        UpdateWrapper<JkVersion> deleteWrapper = new UpdateWrapper<>(jkVersion);
        jkVersionMapper.delete(deleteWrapper);
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        jkVersionMapper.deleteBatchIds(ids);
    }
    @Override
    public void updateById(JkVersion jkVersion) {
        if(Objects.isNull(jkVersion)
                || Objects.isNull(jkVersion.getId())
                || Objects.isNull(jkVersion.getIsForce())
                || StringUtils.isBlank(jkVersion.getVersionInfo())
                || StringUtils.isBlank(jkVersion.getFileUrl())
                || Objects.isNull(jkVersion.getFileSize())
                || StringUtils.isBlank(jkVersion.getName())
                || StringUtils.isBlank(jkVersion.getContent())
        ){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
        }
        LoginUserInfo loginUserInfo = jkVersion.getLoginUserInfo();
        jkVersion.setEditDate(new Date());
        jkVersion.setEditor(loginUserInfo.getId());
        jkVersionMapper.updateById(jkVersion);
    }
    @Override
    public void updateByIdInBatch(List<JkVersion> jkVersions) {
        if (CollectionUtils.isEmpty(jkVersions)) {
            return;
        }
        for (JkVersion jkVersion: jkVersions) {
            this.updateById(jkVersion);
        }
    }
    @Override
    public JkVersion findById(Integer id) {
        JkVersion jkVersion = jkVersionMapper.selectById(id);
        if(Objects.nonNull(jkVersion)&&StringUtils.isNotBlank(jkVersion.getFileUrl())){
            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.APP_FILE).getCode();
            jkVersion.setFullFileUrl(path + jkVersion.getFileUrl());
        }
        return jkVersion;
    }
    @Override
    public JkVersion findOne(JkVersion jkVersion) {
        QueryWrapper<JkVersion> wrapper = new QueryWrapper<>(jkVersion);
        return jkVersionMapper.selectOne(wrapper);
    }
    @Override
    public List<JkVersion> findList(JkVersion jkVersion) {
        QueryWrapper<JkVersion> wrapper = new QueryWrapper<>(jkVersion);
        return jkVersionMapper.selectList(wrapper);
    }
    @Override
    public PageData<JkVersion> findPage(PageWrap<JkVersion> pageWrap) {
        IPage<JkVersion> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        Utils.MP.blankToNull(pageWrap.getModel());
        JkVersion model = pageWrap.getModel();
        MPJLambdaWrapper<JkVersion> wrapper = new MPJLambdaWrapper<JkVersion>()
                .selectAll(JkVersion.class)
                .selectAs(SystemUser::getRealname,JkVersion::getCreateUserName)
                .select(" ROUND( t.file_size / 1024, 2) ", JkVersion::getFileSizeMb)
                .leftJoin(SystemUser.class,SystemUser::getId,JkVersion::getCreator)
                .eq(JkVersion::getIsdeleted,Constants.ZERO)
                .eq(Objects.nonNull(model.getIsForce()),JkVersion::getIsForce,model.getIsForce())
                .like(StringUtils.isNotBlank(model.getVersionInfo()),JkVersion::getVersionInfo,model.getVersionInfo())
                .orderByDesc(JkVersion::getVersionInfo,JkVersion::getCreateDate)
                ;
        IPage<JkVersion> iPage = jkVersionMapper.selectJoinPage(page,JkVersion.class,wrapper);
        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
                +systemDictDataBiz.queryByCode(Constants.FTP,Constants.APP_FILE).getCode();
        for (JkVersion jkVersion:iPage.getRecords()) {
            if(Objects.nonNull(jkVersion)&&StringUtils.isNotBlank(jkVersion.getFileUrl())){
                jkVersion.setFullFileUrl(path + jkVersion.getFileUrl());
            }
        }
        return PageData.from(iPage);
    }
    @Override
    public long count(JkVersion jkVersion) {
        QueryWrapper<JkVersion> wrapper = new QueryWrapper<>(jkVersion);
        return jkVersionMapper.selectCount(wrapper);
    }
    @Override
    public JkVersion getLastVersion(){
        JkVersion jkVersion = jkVersionMapper.selectOne(new QueryWrapper<JkVersion>().lambda()
                .eq(JkVersion::getIsdeleted,Constants.ZERO)
                .eq(JkVersion::getType,Constants.ZERO)
                .orderByDesc(JkVersion::getVersionNum)
                .last("limit 1")
        );
        if(Objects.nonNull(jkVersion)){
            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.APP_FILE).getCode();
            jkVersion.setFullFileUrl(path + jkVersion.getFileUrl());
        }
        return jkVersion;
    }
}