| | |
| | | import cn.flightfeather.supervision.infrastructure.utils.PinYin |
| | | import cn.flightfeather.supervision.infrastructure.utils.UUIDGenerator |
| | | import cn.flightfeather.supervision.lightshare.service.AuthService |
| | | import cn.flightfeather.supervision.lightshare.vo.AuthSceneIndVo |
| | | import cn.flightfeather.supervision.lightshare.vo.AuthSceneRestVo |
| | | import cn.flightfeather.supervision.lightshare.vo.AuthSceneVo |
| | | import cn.flightfeather.supervision.lightshare.vo.BaseResponse |
| | |
| | | import org.springframework.stereotype.Service |
| | | import org.springframework.transaction.annotation.Transactional |
| | | import tk.mybatis.mapper.entity.Example |
| | | import java.util.* |
| | | |
| | | @Service |
| | | class AuthServiceImpl( |
| | |
| | | private val fumePurifyDeviceMapper: FumePurifyDeviceMapper, |
| | | private val monitorDeviceMapper: MonitorDeviceMapper, |
| | | private val restaurantBaseInfoMapper: RestaurantBaseInfoMapper, |
| | | private val vehicleBaseInfoMapper: VehicleBaseInfoMapper |
| | | private val vehicleBaseInfoMapper: VehicleBaseInfoMapper, |
| | | private val industrialBaseInfoMapper: IndustrialBaseInfoMapper, |
| | | private val vocPurifyDeviceMapper: VocPurifyDeviceMapper, |
| | | ): AuthService { |
| | | |
| | | @Transactional |
| | |
| | | bInfo.ciGuid = company.ciGuid |
| | | bInfo.ciName = company.ciName |
| | | baseInfoMapper.updateByPrimaryKeySelective(bInfo) |
| | | } else { |
| | | val userInfo = userinfoMapper.selectByPrimaryKey(wxUser.uiGuid) |
| | | val baseInfo = BaseInfo().apply { |
| | | biGuid = wxUser.uiGuid |
| | | biName = userInfo?.realname |
| | | ciGuid = company.ciGuid |
| | | ciName = company.ciName |
| | | biCreateTime = Date() |
| | | biExtension1 = userInfo?.acountname |
| | | } |
| | | baseInfoMapper.insertSelective(baseInfo) |
| | | } |
| | | if (wxUser.ciGuid != company.ciGuid) { |
| | | wxUser.ciGuid = company.ciGuid |
| | |
| | | var bInfo = if (wxUser.uiGuid == null) null else baseInfoMapper.selectByPrimaryKey(wxUser.uiGuid) |
| | | if (bInfo == null) { |
| | | val cInfo = if (wxUser.ciGuid == null) null else companyMapper.selectByPrimaryKey(wxUser.ciGuid) |
| | | val user = userinfoMapper.selectByPrimaryKey(wxUser.uiGuid) |
| | | if (user == null) { |
| | | val name = getUName(asVo.biName ?: "") |
| | | //新建场景账号及场景信息 |
| | | val newUser = Userinfo().apply { |
| | | val user = Userinfo().apply { |
| | | guid = UUIDGenerator.generate16ShortUUID() |
| | | acountname = name |
| | | realname = asVo.biName |
| | |
| | | if (asVo.biLocation.isNotEmpty()) extension1 = asVo.biLocation[2] |
| | | extension2 = sceneType.toString() |
| | | } |
| | | bInfo = asVo.toNewBaseInfo(newUser, cInfo) |
| | | userinfoMapper.insert(newUser) |
| | | userinfoMapper.insert(user) |
| | | } else { |
| | | user.apply { |
| | | realname = asVo.biName |
| | | if (asVo.biLocation.isNotEmpty()) extension1 = asVo.biLocation[2] |
| | | } |
| | | userinfoMapper.updateByPrimaryKeySelective(user) |
| | | } |
| | | bInfo = asVo.toNewBaseInfo(user, cInfo) |
| | | baseInfoMapper.insert(bInfo) |
| | | } else { |
| | | val userInfo = userinfoMapper.selectByPrimaryKey(bInfo.biGuid) |
| | | userInfo.apply { |
| | | userInfo?.apply { |
| | | realname = asVo.biName |
| | | if (asVo.biLocation.isNotEmpty()) extension1 = asVo.biLocation[2] |
| | | } |
| | |
| | | val info = gson.fromJson(sceneInfo, AuthSceneVo::class.java) |
| | | } |
| | | SceneType.Industrial.value -> { |
| | | val info = gson.fromJson(sceneInfo, AuthSceneVo::class.java) |
| | | val info = gson.fromJson(sceneInfo, AuthSceneIndVo::class.java) |
| | | //工业企业基本信息录入 |
| | | var rbInfo = industrialBaseInfoMapper.selectByPrimaryKey(userId) |
| | | if (rbInfo == null) { |
| | | rbInfo = info.toNewIndInfo(userId) |
| | | industrialBaseInfoMapper.insert(rbInfo) |
| | | } else { |
| | | info.updateIndInfo(rbInfo) |
| | | industrialBaseInfoMapper.updateByPrimaryKeySelective(rbInfo) |
| | | } |
| | | // industrialBaseInfoMapper |
| | | // vocPurifyDeviceMapper |
| | | } |
| | | SceneType.VehicleRepair.value -> { |
| | | val info = gson.fromJson(sceneInfo, AuthSceneVo::class.java) |
| | |
| | | override fun authPersonal(wxUserId: String, personalInfo: PersonalInfo): BaseResponse<String> { |
| | | val wxUser = userInfoWxMapper.selectByPrimaryKey(wxUserId) ?: return BaseResponse(false, "用户微信id不存在") |
| | | personalInfo.piExtension3 = AuthenticationStatus.YES.des |
| | | personalInfo.piWxId = wxUserId |
| | | personalInfo.piSceneId = wxUser.uiGuid |
| | | if (personalInfo.piGuid == null) { |
| | | personalInfo.piGuid = UUIDGenerator.generate16ShortUUID() |
| | | personalInfoMapper.insert(personalInfo) |
| | |
| | | } |
| | | } |
| | | //判断个人信息是否认证 |
| | | if (wxUser.piGuid != null) { |
| | | personalInfoMapper.selectByPrimaryKey(wxUser.piGuid)?.let { p -> |
| | | if (wxUser.uiGuid != null) { |
| | | personalInfoMapper.selectByExample(Example(PersonalInfo::class.java).apply { |
| | | createCriteria().andEqualTo("piSceneId", wxUser.uiGuid) |
| | | .andEqualTo("piWxId", wxUser.uiOpenId) |
| | | })?.takeIf { it.isNotEmpty() }?.get(0)?.let { p -> |
| | | if (p.piExtension3 == AuthenticationStatus.YES.des) status[2] = true |
| | | } |
| | | } |
| | | }else if (userId != null) { |
| | | } |
| | | if (userId != null) { |
| | | val user = userinfoMapper.selectByPrimaryKey(userId) ?: return BaseResponse(false, "该场景账户不存在") |
| | | val baseInfo = baseInfoMapper.selectByPrimaryKey(userId) |
| | | //判断企业信息是否认证 |
| | |
| | | //判断场景信息是否认证 |
| | | if (baseInfo?.biExtension3 == AuthenticationStatus.YES.des) status[1] = true |
| | | //判断个人信息是否认证 |
| | | // TODO: 2022/10/11 此分支下暂时无个人认证 |
| | | userInfoWxMapper.selectByExample(Example(UserInfoWx::class.java).apply { |
| | | createCriteria().andEqualTo("uiGuid", userId) |
| | | })?.takeIf { it.isNotEmpty() }?.get(0)?.let { |
| | | personalInfoMapper.selectByExample(Example(PersonalInfo::class.java).apply { |
| | | createCriteria().andEqualTo("piSceneId", it.uiGuid) |
| | | .andEqualTo("piWxId", it.uiOpenId) |
| | | })?.takeIf { it.isNotEmpty() }?.get(0)?.let { p -> |
| | | if (p.piExtension3 == AuthenticationStatus.YES.des) status[2] = true |
| | | } |
| | | } |
| | | } |
| | | |
| | | return BaseResponse(true, data = status) |
| | | } |
| | | |
| | | override fun sceneAuthStatus(userId: String?): BaseResponse<List<Boolean>> { |
| | | val status = mutableListOf(false, false, false) |
| | | val base = baseInfoMapper.selectByPrimaryKey(userId) ?: return BaseResponse(false, "该微信账户不存在") |
| | | //判断企业信息是否认证 |
| | | if (base.ciGuid != null) { |
| | | companyMapper.selectByPrimaryKey(base.ciGuid)?.let { c -> |
| | | if (c.ciExtension3 == AuthenticationStatus.YES.des) status[0] = true |
| | | } |
| | | } |
| | | //判断场景信息是否认证 |
| | | if (base.biExtension3 == AuthenticationStatus.YES.des) status[1] = true |
| | | //判断个人信息是否认证 |
| | | personalInfoMapper.selectByExample(Example(PersonalInfo::class.java).apply { |
| | | createCriteria().andEqualTo("piSceneId", base.biGuid) |
| | | })?.takeIf { it.isNotEmpty() }?.get(0)?.let { p -> |
| | | if (p.piExtension3 == AuthenticationStatus.YES.des) status[2] = true |
| | | } |
| | | |
| | | return BaseResponse(true, data = status) |
| | |
| | | if (repeated) uName = UUIDGenerator.generateShortUUID() |
| | | return uName |
| | | } |
| | | |
| | | override fun getUnAuthedUsers(): BaseResponse<List<Userinfo?>> { |
| | | val res = userinfoMapper.getUnAuthedUsers() |
| | | return BaseResponse(true, data = res) |
| | | } |
| | | } |