package com.xzx.gc.system.service; import cn.hutool.core.collection.CollUtil; import com.xzx.gc.common.Result; import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.dto.gdmap.GdReverseGEODto; import com.xzx.gc.common.utils.BusinessUtil; import com.xzx.gc.common.utils.gdmap.GdMapUtil; import com.xzx.gc.entity.AddressInfo; import com.xzx.gc.entity.AddressLevelInfo; import com.xzx.gc.entity.OtherUserInfo; import com.xzx.gc.entity.UserInfo; import com.xzx.gc.system.mapper.UserMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import tk.mybatis.mapper.entity.Example; import javax.servlet.http.HttpServletRequest; import java.util.List; @Service @Transactional @Slf4j public class UserService { @Autowired private UserMapper userMapper; @Autowired private AddressLevelService addressLevelService; @Autowired private OtherUserService otherUserService; @Autowired private HttpServletRequest request; @Autowired private BusinessUtil businessUtil; public UserInfo findById(String userId){ return userMapper.selectByPrimaryKey(userId); } public List findForBiddenByTime(){ Example example=new Example(UserInfo.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("delFlag",Constants.DEL_NOT_FLAG); criteria.andCondition("DATE_FORMAT(regist_time,'%Y-%m-%d')=date_sub(CURRENT_DATE(), interval 1 day)"); List userInfo1 = userMapper.selectByExample(example); return userInfo1; } /** * 根据用户经纬度查询位置 * @return */ public AddressLevelInfo findByLocation(String location){ GdReverseGEODto gdReverseGEODto = new GdReverseGEODto(); gdReverseGEODto.setLocation(location); Result areaInfo = GdMapUtil.getAreaInfo(gdReverseGEODto, 0); if (areaInfo.getCode() == 0) { AddressInfo addressInfo = (AddressInfo) areaInfo.getData(); AddressLevelInfo addressLevelInfo=new AddressLevelInfo(); addressLevelInfo.setLevel3Name(addressInfo.getTownshipName()); addressLevelInfo.setLevel2Name(addressInfo.getCityName()); addressLevelInfo.setLevel1Name(addressInfo.getProvinceName()); List byAny = addressLevelService.findByAny(addressLevelInfo); if(CollUtil.isNotEmpty(byAny)){ return byAny.get(0); }else { return null; } } else { return null; } } /** * 查询手机号码 * @param userId * @param type 类型 0普通用户 1平台用户 * @return */ public String findOtherByUserId(String userId,int type){ if (businessUtil.isApp(request.getHeader("clientType"))) { OtherUserInfo byId = otherUserService.findById(userId); if(byId!=null)return byId.getMobilePhone(); }else{ UserInfo byId = findById(userId); if(byId!=null)return byId.getMobilePhone(); } return "未知"; } public List findForBidden(){ UserInfo userInfo = new UserInfo(); userInfo.setDelFlag(Constants.DEL_NOT_FLAG); List userInfo1 = userMapper.select(userInfo); return userInfo1; } }