k94314517
2024-01-17 bc22a1fce8b936f61e1f799689ee5795fc2508b0
server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -1,15 +1,23 @@
package com.doumee.service.business.impl;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.CompanyMapper;
import com.doumee.dao.business.CompanyPermissionMapper;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.CompanyPermission;
import com.doumee.dao.business.model.Insurance;
import com.doumee.service.business.CompanyService;
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 org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -19,16 +27,19 @@
/**
 * 企业信息表Service实现
 * @author 江蹄蹄
 * @date 2024/01/15 11:15
 * @date 2024/01/16 10:03
 */
@Service
public class CompanyServiceImpl implements CompanyService {
    @Autowired
    private CompanyMapper companyMapper;
    @Autowired
    private CompanyPermissionMapper companyPermissionMapper;
    @Override
    public Integer create(Company company) {
        companyMapper.insert(company);
        return company.getId();
    }
@@ -54,6 +65,10 @@
    @Override
    public void updateById(Company company) {
        Company model = findById(company.getId());
        if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY );
        }
        companyMapper.updateById(company);
    }
@@ -89,6 +104,15 @@
        IPage<Company> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<Company> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        pageWrap.getModel().setIsdeleted(Constants.ZERO);
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(pageWrap.getModel().getQueryFlag() == 0){
            //只能看权限范围内
            queryWrapper.exists("select b.id from company_permission b where b.user_id="+user.getId()+" and b.isdeleted=0 and b.company_id=company.id");
        } else if (pageWrap.getModel().getQueryFlag() == 1) {
            //查詢是否有查看權限
            queryWrapper.select("*,(select count(1) from company_permission b where b.user_id="+user.getId()+" and b.isdeleted=0 and b.company_id=company.id) as hasPerimission");
        }
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(Company::getId, pageWrap.getModel().getId());
        }
@@ -110,7 +134,7 @@
            queryWrapper.lambda().eq(Company::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(Company::getName, pageWrap.getModel().getName());
            queryWrapper.lambda().like(Company::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(Company::getRemark, pageWrap.getModel().getRemark());
@@ -151,6 +175,16 @@
        if (pageWrap.getModel().getPhone() != null) {
            queryWrapper.lambda().eq(Company::getPhone, pageWrap.getModel().getPhone());
        }
        if (pageWrap.getModel().getEmail() != null) {
            queryWrapper.lambda().eq(Company::getEmail, pageWrap.getModel().getEmail());
        }
        if (pageWrap.getModel().getSignStatus() != null) {
            queryWrapper.lambda().eq(Company::getSignStatus, pageWrap.getModel().getSignStatus());
        }
        if (pageWrap.getModel().getSignDate() != null) {
            queryWrapper.lambda().ge(Company::getSignDate, Utils.Date.getStart(pageWrap.getModel().getSignDate()));
            queryWrapper.lambda().le(Company::getSignDate, Utils.Date.getEnd(pageWrap.getModel().getSignDate()));
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());