package com.ruoyi.account.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.account.api.model.AppUser;
|
import com.ruoyi.account.api.model.ApplyForAdmission;
|
import com.ruoyi.account.dto.ApplyForAdmissionDTO;
|
import com.ruoyi.account.mapper.AppUserMapper;
|
import com.ruoyi.account.mapper.ApplyForAdmissionMapper;
|
import com.ruoyi.account.service.AppUserService;
|
import com.ruoyi.account.service.UserApplyForAdmissionService;
|
import com.ruoyi.account.util.tencentMap.TencentMapUtil;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.security.service.TokenService;
|
import com.ruoyi.other.api.domain.Region;
|
import com.ruoyi.other.api.feignClient.RegionClient;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.StringUtils;
|
|
import javax.annotation.Resource;
|
import java.time.LocalDateTime;
|
|
@Slf4j
|
@Service
|
public class UserApplyForAdmissionServiceImpl extends ServiceImpl<ApplyForAdmissionMapper, ApplyForAdmission> implements UserApplyForAdmissionService {
|
@Autowired
|
private TokenService tokenService;
|
@Autowired
|
private ApplyForAdmissionMapper userApplyForAdmissionMapper;
|
@Autowired
|
private AppUserService appUserService;
|
@Resource
|
private RegionClient regionClient;
|
|
/**
|
* 申请入驻
|
*/
|
@Override
|
public R apply(ApplyForAdmissionDTO applyForAdmissionDTO) {
|
Long userid = tokenService.getLoginUserApplet().getUserid();
|
AppUser appUser = appUserService.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getStatus, 1)
|
.eq(AppUser::getPhone, applyForAdmissionDTO.getPhone()));
|
if (appUser == null){
|
return R.fail("该手机号未注册");
|
}
|
ApplyForAdmission applyForAdmission = new ApplyForAdmission();
|
BeanUtils.copyProperties(applyForAdmissionDTO, applyForAdmission);
|
applyForAdmission.setCreateTime(LocalDateTime.now());
|
applyForAdmission.setApplyUserId(userid);
|
applyForAdmission.setStatus(0);
|
String city = TencentMapUtil.inverseGeographicalAnalysis(applyForAdmission.getLongitude(), applyForAdmission.getLatitude(), false);
|
if(!StringUtils.hasLength(city)){
|
city = "510100";
|
}
|
applyForAdmission.setProvinceCode(city.substring(0, 2) + "0000");
|
Region provinceRegion = regionClient.getRegionBiCode(applyForAdmission.getProvinceCode()).getData();
|
applyForAdmission.setCityCode(city.substring(0, 4) + "00");
|
Region cityRegion = regionClient.getRegionBiCode(applyForAdmission.getCityCode()).getData();
|
applyForAdmission.setDistrictCode(city);
|
Region districtRegion = regionClient.getRegionBiCode(applyForAdmission.getDistrictCode()).getData();
|
|
applyForAdmission.setProvince(provinceRegion.getName());
|
applyForAdmission.setCity(cityRegion.getName());
|
applyForAdmission.setDistrict(districtRegion.getName());
|
|
this.save(applyForAdmission);
|
return R.ok();
|
}
|
|
/**
|
* 查看
|
*/
|
@Override
|
public ApplyForAdmission read() {
|
Long userid = tokenService.getLoginUserApplet().getUserid();
|
return userApplyForAdmissionMapper
|
.selectOne(new LambdaQueryWrapper<ApplyForAdmission>()
|
.eq(ApplyForAdmission::getApplyUserId, userid)
|
.orderByDesc(ApplyForAdmission::getCreateTime) // 按申请日期降序
|
.last("LIMIT 1"));
|
}
|
}
|