Browse Source

活动打卡范围判断接口修改

master
zhangyongzhangyong 5 years ago
parent
commit
d9ca1f7ca6
  1. 46
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActAddressResultDTO.java
  2. 7
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiActListController.java
  3. 9
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActInfoService.java
  4. 17
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActInfoServiceImpl.java
  5. 2
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActUserRelationServiceImpl.java

46
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActAddressResultDTO.java

@ -0,0 +1,46 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto.result.resi;
import lombok.Data;
import java.io.Serializable;
/**
* 是否到达活动打卡地址
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-07-19
*/
@Data
public class ResiActAddressResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private Boolean isAddress;
/**
* 未报到活动范围的提示信息
*/
private String errorTip;
}

7
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiActListController.java

@ -235,16 +235,15 @@ public class ResiActListController {
}
/**
* 重新定位
* 根据活动id前端传的实时经纬度与活动设置的经纬度相比较判断用户是否已到达打卡地点
*
* @param formDTO
* @return javax.xml.transform.Result
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.resi.ResiActAddressResultDTO>
* @Author zhangyong
* @Date 16:48 2020-07-20
* @Date 11:21 2020-07-28
**/
@PostMapping("checksigninaddress")
public Result cancelSignUp(@RequestBody ResiActCaculateDistanceFormDTO formDTO) {
public Result<ResiActAddressResultDTO> cancelSignUp(@RequestBody ResiActCaculateDistanceFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, ResiActCaculateDistanceFormDTO.AddUserInternalGroup.class);
return actInfoService.checkSignInAddress(formDTO);
}

9
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActInfoService.java

@ -101,12 +101,13 @@ public interface ActInfoService extends BaseService<ActInfoEntity> {
/**
* 根据活动id前端传的实时经纬度与活动设置的经纬度相比较判断用户是否已到达打卡地点
* @param fromDTO
* @return javax.xml.transform.Result
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.resi.ResiActAddressResultDTO>
* @Author zhangyong
* @Date 16:48 2020-07-20
* @Date 11:21 2020-07-28
**/
Result checkSignInAddress(ResiActCaculateDistanceFormDTO fromDTO);
Result<ResiActAddressResultDTO> checkSignInAddress(ResiActCaculateDistanceFormDTO formDTO);
/**
* 活动列表(包含状态报名中signing_up已报满enough截止报名: end_sign_up; 已开始 in_progress; 已结束finished)

17
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActInfoServiceImpl.java

@ -23,7 +23,6 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
@ -42,6 +41,8 @@ import com.epmet.service.ActInfoService;
import com.epmet.service.ActUserRelationService;
import com.epmet.utils.CaculateDistance;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -57,6 +58,8 @@ import java.util.*;
@Service
public class ActInfoServiceImpl extends BaseServiceImpl<ActInfoDao, ActInfoEntity> implements ActInfoService {
private Logger logger = LogManager.getLogger(ActInfoServiceImpl.class);
@Autowired
private ActInfoRedis actInfoRedis;
@ -355,14 +358,20 @@ public class ActInfoServiceImpl extends BaseServiceImpl<ActInfoDao, ActInfoEntit
}
@Override
public Result checkSignInAddress(ResiActCaculateDistanceFormDTO formDTO) {
public Result<ResiActAddressResultDTO> checkSignInAddress(ResiActCaculateDistanceFormDTO formDTO) {
// 根据活动id,查询活动基本信息
ActInfoEntity entity = baseDao.selectById(formDTO.getActId());
Double distance = CaculateDistance.getDistance(formDTO.getLongitude(),formDTO.getLatitude(),entity.getActLongitude().doubleValue(),entity.getActLatitude().doubleValue());
ResiActAddressResultDTO dto = new ResiActAddressResultDTO();
if (distance <= entity.getSignInRadius()){
return new Result();
dto.setIsAddress(true);
dto.setErrorTip("");
return new Result<ResiActAddressResultDTO>().ok(dto);
} else {
throw new RenException(EpmetErrorCode.NOT_IN_THE_SIGN_IN_RANGE.getCode());
logger.info("您还未进入指定的签到范围~");
dto.setIsAddress(false);
dto.setErrorTip(EpmetErrorCode.NOT_IN_THE_SIGN_IN_RANGE.getMsg());
return new Result<ResiActAddressResultDTO>().ok(dto);
}
}

2
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActUserRelationServiceImpl.java

@ -81,7 +81,7 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
@Autowired
private HeartUserInfoDao heartUserInfoDao;
private Logger logger = LogManager.getLogger(WorkActDraftServiceImpl.class);
private Logger logger = LogManager.getLogger(ActUserRelationServiceImpl.class);
@Override
public PageData<ActUserRelationDTO> page(Map<String, Object> params) {

Loading…
Cancel
Save