Blame view

AdministerServiceImpl.java 4.98 KB
涂亚平 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
package com.subsidy.service.impl;

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.subsidy.common.exception.HttpException;
import com.subsidy.dto.administer.AppLoginDTO;
import com.subsidy.dto.administer.ChangeServiceDTO;
import com.subsidy.mapper.LaborServiceDictMapper;
import com.subsidy.model.AdministerDO;
import com.subsidy.mapper.AdministerMapper;
import com.subsidy.model.LaborServiceDictDO;
import com.subsidy.service.AdministerService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.ConstantUtils;
import com.subsidy.util.JwtUtil;
import com.subsidy.util.Localstorage;
import com.subsidy.util.SecretUtils;
import com.subsidy.vo.administer.AdministerPermissionVO;
import com.subsidy.vo.administer.PermissionsVO;
import com.subsidy.vo.labor.LoginVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 管理平台用户 服务实现类
 * </p>
 *
 * @author Tuyp
 * @since 2024-07-18
 */
@Service
public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, AdministerDO> implements AdministerService {

    @Autowired
    private LaborServiceDictMapper laborServiceDictMapper;

    public IPage<LaborServiceDictDO> changeService(ChangeServiceDTO changeServiceDTO) {
        Page pager = new Page(changeServiceDTO.getPageNum(), changeServiceDTO.getPageSize());

        AdministerDO administerDO = this.baseMapper.selectById(changeServiceDTO.getId());
        if (6 == administerDO.getRole()){
            //全部
            return laborServiceDictMapper.selectPage(pager,new QueryWrapper<LaborServiceDictDO>()
                    .lambda()
                    .eq(LaborServiceDictDO::getId,administerDO.getLaborId()));
        }else if (0== administerDO.getRole()){
            return laborServiceDictMapper.selectPage(pager,null);
        }
        else {
            return this.baseMapper.administerLabors(pager,changeServiceDTO.getId(),changeServiceDTO.getLaborServiceName());
        }

    }


    public LoginVO appLogin(AppLoginDTO appLoginDTO, HttpServletRequest request) {


        LoginVO loginVO = new LoginVO();

//        subsidy.url=http://subsidy.youkehulian.cn/auth/user/token
//        appId:qxywz5nnWMI7ABCS
//        appSecret:626737T1-65K0-5xC2-0Y0V-2Aq9QUAJ
        AdministerDO administerDO = this.baseMapper.selectOne(new QueryWrapper<AdministerDO>()
                .lambda()
                .eq(AdministerDO::getAccountName, appLoginDTO.getAccountName()));

        if (administerDO == null) {
            throw new HttpException(10010);
        }

        /**
         * 时间戳有没有过期
         */
        if (appLoginDTO.getTimestamp() - System.currentTimeMillis() >= 5 * 60 * 1000 || System.currentTimeMillis() - appLoginDTO.getTimestamp() >= 5 * 60 * 1000) {
            throw new HttpException(14002);
        }

        //鉴权逻辑 对不对
        String preAuthen = "appId=qxywz5nnWMI7ABCS"
                + "&id=" + administerDO.getId()
                + "&accountName=" + administerDO.getAccountName()
                + "&appSecret=626737T1-65K0-5xC2-0Y0V-2Aq9QUAJ";

        String result = SecretUtils.getMD5String(preAuthen);
        if (!appLoginDTO.getSign().equals(result)) {
            throw new HttpException(14001);
        }

        String token = JwtUtil.generateToken(administerDO.getId(), ConstantUtils.ADMINISTER_TERMINATE);
        loginVO.setToken(token);
        return loginVO;
    }


    public AdministerPermissionVO getPermissions() {

        AdministerPermissionVO administerPermissionVO = new AdministerPermissionVO();
        AdministerDO administerDO = (AdministerDO) Localstorage.getUser();
        if (administerDO == null) {
            throw new HttpException(10012);
        }
        BeanUtils.copyProperties(administerDO, administerPermissionVO);

        List<PermissionsVO> list = this.baseMapper.getPermissions(administerDO.getId());
        List<PermissionsVO> treeList = new ArrayList();
        if (list != null) {
            list.forEach(permission -> {
                if (permission.getParentId() == null) {
                    treeList.add(permission);
                }

                list.forEach(p -> {
                    if (null != p.getParentId() && p.getParentId().equals(permission.getId())) {
                        if (permission.getChildren() == null) {
                            permission.setChildren(new ArrayList<>());
                        }
                        permission.getChildren().add(p);
                    }
                });
            });
        }
        administerPermissionVO.setPermissions(treeList);

        administerPermissionVO.setRole(administerDO.getRole());

        return administerPermissionVO;
    }

}