From 6e873adc94aaeb4f918cf4fd45f7bdf936f45db4 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 05 十二月 2023 08:58:19 +0800 Subject: [PATCH] 羚羊数据导入 --- server/src/main/java/doumeemes/service/system/impl/SystemLoginServiceImpl.java | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 107 insertions(+), 1 deletions(-) diff --git a/server/src/main/java/doumeemes/service/system/impl/SystemLoginServiceImpl.java b/server/src/main/java/doumeemes/service/system/impl/SystemLoginServiceImpl.java index ea8f3ab..0d54dd9 100644 --- a/server/src/main/java/doumeemes/service/system/impl/SystemLoginServiceImpl.java +++ b/server/src/main/java/doumeemes/service/system/impl/SystemLoginServiceImpl.java @@ -1,6 +1,7 @@ package doumeemes.service.system.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iflytek.antelope.other.client.dto.resp.UserDTO; import doumeemes.biz.system.SystemDictDataBiz; import doumeemes.config.shiro.ShiroToken; @@ -13,10 +14,16 @@ import doumeemes.core.utils.dingding.LingyangUtil; import doumeemes.core.utils.edpg.EdgpServerUtil; import doumeemes.core.utils.edpg.bean.AppUserInfoModel; +import doumeemes.core.utils.excel.EasyExcelUtil; +import doumeemes.dao.business.BizLingyangMapper; +import doumeemes.dao.business.dto.AutoLoginUserDTO; +import doumeemes.dao.business.model.BizLingyang; import doumeemes.dao.business.model.Company; import doumeemes.dao.business.model.CompanyUser; +import doumeemes.dao.business.model.Material; import doumeemes.dao.ext.CompanyExtMapper; import doumeemes.dao.ext.CompanyUserExtMapper; +import doumeemes.dao.ext.dto.LingYangUserDto; import doumeemes.dao.ext.dto.QueryCompanyUserExtDTO; import doumeemes.dao.ext.vo.CompanyExtListVO; import doumeemes.dao.ext.vo.CompanyUserExtListVO; @@ -31,13 +38,18 @@ import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.subject.Subject; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.util.Date; +import java.util.List; +import java.util.Random; @Slf4j @Service @@ -54,6 +66,8 @@ @Autowired private CompanyUserExtMapper companyUserExtMapper; + @Autowired + private BizLingyangMapper bizLingyangMapper; @Autowired private CompanyExtMapper companyExtMapper; @@ -173,6 +187,98 @@ systemLoginLogService.create(loginLog); throw ee; } + } +// @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + @Override + public String importLyAuth(MultipartFile file,HttpServletRequest request) { + //瑙f瀽excel + List<AutoLoginUserDTO> materialList = EasyExcelUtil.importExcel(file, 0, 1, AutoLoginUserDTO.class); + if (materialList == null || materialList.size() == 0) { + throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵煎叆鏁版嵁鍐呭鏈夎锛�"); + } + int num = 0; + for(AutoLoginUserDTO u : materialList){ + UserDTO user = new UserDTO(); + BeanUtils.copyProperties(u, user); + user.setManager("1"); + user.setOrgName(user.getName()); + Date date = null; + if(StringUtils.isBlank(user.getName())){ + continue; + } + try { + date = new Date(u.getDate().getTime()+ (long) Math.random()*60*1000); + }catch (Exception e){ + } + boolean r = logiglingyangModel(user,date,"lingyang_import",request,false); + num = r?(num+1):num; + } + return "鎴愬姛瀵煎叆銆�"+num+"銆戜釜锛屽け璐ャ��"+(materialList.size()-num)+"銆戜釜"; + + } + public boolean logiglingyangModel(UserDTO user,Date date,String remark, HttpServletRequest request,boolean isDemo){ + SystemLoginLog loginLog = new SystemLoginLog(); + loginLog.setLoginUsername("lingyangAuto_"+JSONObject.toJSONString(user)); + loginLog.setLoginTime(date); + loginLog.setOrgin(Constants.USER_LOGIN_ORIGIN.lingyang); + loginLog.setSystemVersion(systemVersion); + loginLog.setIp(Utils.User_Client.getIP(request)); + loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); + loginLog.setPlatform(Utils.User_Client.getPlatform(request)); + loginLog.setClientInfo(Utils.User_Client.getBrowser(request)); + loginLog.setOsInfo(Utils.User_Client.getOS(request)); + loginLog.setServerIp(Utils.Server.getIP()); + String mobile = null; + if(user == null){ + return false; + } + //鏌ヨ浼佷笟淇℃伅 + Company qc = new Company(); + qc.setDeleted(Constants.ZERO); + qc.setCreditCode(user.getCreditCode()); + qc.setOrigin(Constants.COMPANY_ORIGIN.lingyang); + //鏍规嵁琛屾斂鍖轰唬鐮佹煡璇紒涓氫俊鎭� + if(companyExtMapper.selectOne(new QueryWrapper<>(qc).last(" limit 1") )!=null){ + return false; + } + + Company com = companyExtService.createByLingyang(user,date,remark,systemDictDataBiz.queryByCode(Constants.DEFAULT,Constants.USER_PWD).getCode()); + if(com == null){ + return false; + } + //浼佷笟鐢ㄦ埛淇℃伅 + CompanyUserExtListVO model =com.getUserModel(); + if(model != null && StringUtils.isNotBlank(model.getPhone())){ + mobile=model.getPhone(); + }else{ + //鑾峰彇缇氱緤鎵嬫満鍙� + mobile= user.getPhone(); + } + loginLog.setLoginUsername(mobile); + loginLog.setUserId(model.getUserId()); + loginLog.setCompanyId(com.getId()); + loginLog.setCompanyUserId(model.getId()); + loginLog.setSuccess(Boolean.TRUE); + systemLoginLogService.create(loginLog); + CompanyUser cu = new CompanyUser(); + cu.setLingyangUserid(user.getUserId()); + cu.setId(model.getId()); + cu.setName(user.getName());//鍚屾缇氱緤鐨勫悕瀛� + cu.setUpdateTime(new Date()); + //鏇存柊鐢ㄦ埛缁戝畾鐨勯拤閽変俊鎭� + companyUserExtMapper.updateById(cu); + + BizLingyang biz = new BizLingyang(); + biz.setActionTimes(1); + biz.setCreateTime(date); + biz.setCreditCode(user.getCreditCode()); + biz.setCompanyId(com.getId()); + biz.setAppKey(systemDictDataBiz.queryByCode(Constants.LINGYANG_PARAM,Constants.LINGYANG_APPKEY ).getCode()); + biz.setUserPhone(user.getPhone()); +// biz.setRemark(remark); + bizLingyangMapper.insert(biz); + return true; + } @Override public String getDingdingCorpId(Integer companyId){ @@ -434,7 +540,7 @@ throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); } //鏌ヨ浼佷笟淇℃伅 - Company com = companyExtService.createByLingyang(user,systemDictDataBiz.queryByCode(Constants.DEFAULT,Constants.USER_PWD).getCode()); + Company com = companyExtService.createByLingyang(user,new Date(),null,systemDictDataBiz.queryByCode(Constants.DEFAULT,Constants.USER_PWD).getCode()); if(com == null){ throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); } -- Gitblit v1.9.3