• 辛苦写的代码,很垃圾,不想删除,备份一下


    package com.huajun.resources.service.impl;
    
    import java.io.Serializable;
    import java.util.Collection;
    import java.util.LinkedHashMap;
    import java.util.List;
    import java.util.Map;
    
    import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
    import com.baomidou.mybatisplus.core.toolkit.Wrappers;
    import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
    import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
    import com.huajun.common.core.domain.R;
    import com.huajun.common.core.utils.StringUtils;
    import com.huajun.common.core.web.domain.AjaxResult;
    import com.huajun.system.api.RemoteConfigService;
    import com.huajun.system.api.RemoteUserService;
    import com.huajun.system.api.domain.SysUser;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import com.huajun.resources.mapper.ResourceExpertMapper;
    import com.huajun.resources.domain.ResourceExpert;
    import com.huajun.resources.service.IResourceExpertService;
    import org.springframework.transaction.annotation.Transactional;
    
    /**
     * 应急专家信息Service业务层处理
     * 
     * @author huajun
     * @date 2021-03-31
     */
    @Service
    public class ResourceExpertServiceImpl extends ServiceImpl<ResourceExpertMapper,ResourceExpert> implements IResourceExpertService
    {
        @Autowired
        private ResourceExpertMapper resourceExpertMapper;
    
        @Autowired
        private RemoteUserService remoteUserService;
    
        @Autowired
        private RemoteConfigService remoteConfigService;
    
        /**
         * 查询应急专家信息列表
         * 
         * @param resourceExpert 应急专家信息
         * @return 应急专家信息
         */
        @Override
        public List<ResourceExpert> selectResourceExpertList(ResourceExpert resourceExpert)
        {
            return resourceExpertMapper.selectResourceExpertList(resourceExpert);
        }
        /**
         * 同步应急专家账号
         * 2021-06-04
         */
        @Override
        public AjaxResult SyncExpert(String id) {
            AjaxResult result = null;
            if (StringUtils.isEmpty(id)) {
                return AjaxResult.error("获取应急专家参数错误!");
            }
            R<AjaxResult> ajaxResultR=remoteConfigService.getConfigKey("emergencyexpertdept");
    
    
    
            ResourceExpert resourceExpert = resourceExpertMapper.selectById(id);
            if (StringUtils.isEmpty(resourceExpert.getUserId()))//同步操作
            {
                String expertdeptid = remoteConfigService.getConfigInfo("emergencyexpertdept");//得到专家部门
                if (StringUtils.isEmpty(expertdeptid)) {
                    return AjaxResult.error("同步专家用户'" + resourceExpert.getName() + "'失败,未设置专家部门");
                }
                String expertroleid = remoteConfigService.getConfigInfo("emergencyexpertrole");//得到专家角色
                if (StringUtils.isEmpty(expertroleid)) {
                    return AjaxResult.error("同步专家用户'" + resourceExpert.getName() + "'失败,未设置专家角色");
                }
                SysUser sysuser = new SysUser();
                sysuser.setDeptId(Long.valueOf(expertdeptid));//默认部门
                sysuser.setUserName(resourceExpert.getMobileTel().trim());//用户账号,使用专家手机号
                sysuser.setNickName(resourceExpert.getName());//使用专家姓名
                sysuser.setEmail(resourceExpert.getEmail());//专家邮箱
                sysuser.setPhonenumber(resourceExpert.getMobileTel());//专家手机号
                sysuser.setSex("2");//专家性别0=男,1=女,2=未知
                sysuser.setPassword(resourceExpert.getMobileTel().trim());//默认使用手机号
                sysuser.setStatus("0");//帐号状态0=正常,1=停用
                sysuser.setDelFlag("0");//删除标志(0代表存在 2代表删除)
                sysuser.setRemark("");//专家其他信息可以设置进此字段
                Long[] roleIds = {Long.valueOf(expertroleid)};
                sysuser.setRoleIds(roleIds);
                sysuser.setExpertId(id);
                result = remoteUserService.addUser(sysuser);
                if (result.get("msg").equals("操作成功") && result.get("code").equals(200)) {
                    LinkedHashMap<String, Object> data = (LinkedHashMap) result.get("data");
                    for (Map.Entry<String, Object> entry : data.entrySet()) {
                        if (entry.getKey().equals("userId")) {
                            resourceExpert.setUserId(entry.getValue().toString());
                            break;
                        }
                    }
                    resourceExpertMapper.updateById(resourceExpert);
                }
    
            } else//解除绑定,需要设置专家表外键为null,删除用户表,用户角色表中信息
            {
                Long[] userIds = {Long.valueOf(resourceExpert.getUserId())};
                result = remoteUserService.removeUser(userIds);
                if (result.get("msg").equals("操作成功") && result.get("code").equals(200)) {
                    int UpdateCount = resourceExpertMapper.update(
                            null,
                            Wrappers.<ResourceExpert>lambdaUpdate()
                                    .set(ResourceExpert::getUserId, null) //把用户主键设置为null
                                    .eq(ResourceExpert::getId, id)
                    );
                }
            }
    
    
            return result;
    
        }
    
        /**
         * 重写Mybatis-Plus的批量删除方法removeByIds,实现自定义逻辑
         *2021-06-04
         * @param idList
         * @return
         */
        @Override
        public boolean removeByIds(Collection<? extends Serializable> idList) {
            if (CollectionUtils.isEmpty(idList)) {
                return false;
            }
            QueryWrapper<ResourceExpert> wrapper = new QueryWrapper<>();
            wrapper.in("id", idList).isNotNull("user_id");
            List<ResourceExpert> resourceexperts = resourceExpertMapper.selectList(wrapper);
            // users.forEach(System.out::println);
            boolean isok = SqlHelper.retBool(this.getBaseMapper().deleteBatchIds(idList));
            if (isok) {
                Long[] userIds = new Long[resourceexperts.size()];
                for (int j = 0; j < resourceexperts.size(); j++) {
                    userIds[j] = Long.valueOf(resourceexperts.get(j).getUserId());
                }
                remoteUserService.removeUser(userIds);
    
            }
            return isok;
            //return SqlHelper.retBool(this.getBaseMapper().deleteBatchIds(idList));
            //return CollectionUtils.isEmpty(idList) ? false : SqlHelper.retBool(this.getBaseMapper().deleteBatchIds(idList));
        }
    
        /**
         * 批量更新专家信息,把专家外键置为null
         * 2021-06-04
         * @param Ids 需要更新的专家ID
         * @return
         */
        @Override
        @Transactional
        public int updateExpertByIds(Long[] Ids) {
            return resourceExpertMapper.updateExpertByIds(Ids);
        }
    
    
    }
  • 相关阅读:
    libpcap编程实例
    libnet发包例子(tcp udp arp广播)
    C#中一个窗口是一个类呢,还是一个窗口类的实例呢?(转)
    创建一个实例&创建一个线程。。
    (转)C#中的 Interfaces (For 初学者们)
    C#中接口声明属性,但是提示“接口”中不能有属性。
    十万个为什么:现在还没发现“虚函数virtual”和多态性的优点,估计是因为我还没有编程序吧。
    C#中的多态性
    Windows 程序支持 Unicode
    Python 中的函数与类的方法
  • 原文地址:https://www.cnblogs.com/Jeely/p/14850484.html
Copyright © 2020-2023  润新知