记得上下班打卡 | git大法好,push需谨慎

Commit bc9b7fc2 authored by jiangxiulong's avatar jiangxiulong

计算距离 新建unit;票种增加isAgent

parent b77b468f
...@@ -43,7 +43,14 @@ ...@@ -43,7 +43,14 @@
<groupId>io.jsonwebtoken</groupId> <groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId> <artifactId>jjwt</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.gavaghan</groupId>
<artifactId>geodesy</artifactId>
</dependency>
<dependency>
<groupId>org.gavaghan</groupId>
<artifactId>geodesy</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>
package com.liquidnet.commons.lang.util;
import org.gavaghan.geodesy.Ellipsoid;
import org.gavaghan.geodesy.GeodeticCalculator;
import org.gavaghan.geodesy.GlobalCoordinates;
/**
* <p>
* 根据经纬度计算距离
* </p>
*
* @author jiangxiulong
* @since 2021-05-19 4:39 下午
*/
public class DistanceUtil {
public static String getDistance(double longitudeFrom, double latitudeFrom, double longitudeTo, double latitudeTo) {
GlobalCoordinates source = new GlobalCoordinates(latitudeFrom, longitudeFrom);
GlobalCoordinates target = new GlobalCoordinates(latitudeTo, longitudeTo);
double diffDistanceDouble = new GeodeticCalculator().calculateGeodeticCurve(Ellipsoid.Sphere, source, target).getEllipsoidalDistance();
int diffDistanceInt = (int) diffDistanceDouble;
String diffDistance;
if (diffDistanceInt > 1000) {
diffDistanceInt = diffDistanceInt / 1000;
diffDistance = diffDistanceInt + "km";
} else {
diffDistance = diffDistanceInt + "m";
}
return diffDistance;
}
}
...@@ -149,8 +149,13 @@ ...@@ -149,8 +149,13 @@
<artifactId>jjwt</artifactId> <artifactId>jjwt</artifactId>
<version>0.9.1</version> <version>0.9.1</version>
</dependency> </dependency>
<!-- 计算经纬度距离 -->
<dependency>
<groupId>org.gavaghan</groupId>
<artifactId>geodesy</artifactId>
<version>1.1.3</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
</project> </project>
\ No newline at end of file
...@@ -76,6 +76,8 @@ public class TicketVo { ...@@ -76,6 +76,8 @@ public class TicketVo {
private Integer isExclusive; private Integer isExclusive;
@ApiModelProperty(value = "是否会员") @ApiModelProperty(value = "是否会员")
private Integer isMember; private Integer isMember;
@ApiModelProperty(value = "是否分销")
private Integer isAgent;
public void setTicket(KylinTickets ticket) { public void setTicket(KylinTickets ticket) {
this.ticketsId = ticket.getTicketsId(); this.ticketsId = ticket.getTicketsId();
......
...@@ -79,14 +79,6 @@ public class KylinPerformancesController { ...@@ -79,14 +79,6 @@ public class KylinPerformancesController {
return ResponseDto.success(result); return ResponseDto.success(result);
} }
@GetMapping(value = "list")
@ApiOperation("根据多个演出id获取演出列表-Adam")
public ResponseDto<List<PerformanceVo>> performanceList(@RequestParam String... performancesIds) {
List<PerformanceVo> result = kylinPerformancesService.performanceList(performancesIds);
return ResponseDto.success(result);
}
@GetMapping("noticeList") @GetMapping("noticeList")
@ApiOperation("演出预告列表") @ApiOperation("演出预告列表")
public ResponseDto<HashMap<String, Object>> noticeList() { public ResponseDto<HashMap<String, Object>> noticeList() {
...@@ -101,6 +93,13 @@ public class KylinPerformancesController { ...@@ -101,6 +93,13 @@ public class KylinPerformancesController {
return ResponseDto.success(result); return ResponseDto.success(result);
} }
@GetMapping(value = "list")
@ApiOperation("根据多个演出id获取演出列表-Adam")
public ResponseDto<List<PerformanceVo>> performanceList(@RequestParam String... performancesIds) {
List<PerformanceVo> result = kylinPerformancesService.performanceList(performancesIds);
return ResponseDto.success(result);
}
@GetMapping("{performancesId}") @GetMapping("{performancesId}")
@ApiOperation("演出详情") @ApiOperation("演出详情")
public ResponseDto<HashMap<String, Object>> detail( public ResponseDto<HashMap<String, Object>> detail(
...@@ -118,8 +117,11 @@ public class KylinPerformancesController { ...@@ -118,8 +117,11 @@ public class KylinPerformancesController {
@GetMapping("partner/{performancesId}") @GetMapping("partner/{performancesId}")
@ApiOperation("场次票种") @ApiOperation("场次票种")
public ResponseDto<List<TicketTimesVo>> ticketTimesPartner(@PathVariable("performancesId") String performancesId) { public ResponseDto<List<TicketTimesVo>> ticketTimesPartner(
List<TicketTimesVo> result = kylinPerformancesService.ticketTimesPartner(performancesId); @PathVariable("performancesId") String performancesId,
@RequestParam(value = "isAgent", defaultValue = "0") Integer isAgent
) {
List<TicketTimesVo> result = kylinPerformancesService.ticketTimesPartner(performancesId, isAgent);
if (result.size() > 0) { if (result.size() > 0) {
return ResponseDto.success(result); return ResponseDto.success(result);
} else { } else {
......
package com.liquidnet.service.kylin.service.impl; package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DistanceUtil;
import com.liquidnet.service.kylin.constant.KylinPerformanceStatusEnum; import com.liquidnet.service.kylin.constant.KylinPerformanceStatusEnum;
import com.liquidnet.service.kylin.constant.KylinRedisConst; import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.PerformanceVo; import com.liquidnet.service.kylin.dto.vo.PerformanceVo;
...@@ -11,9 +12,6 @@ import com.liquidnet.service.kylin.mapper.KylinPerformancesMapper; ...@@ -11,9 +12,6 @@ import com.liquidnet.service.kylin.mapper.KylinPerformancesMapper;
import com.liquidnet.service.kylin.service.IKylinPerformancesService; import com.liquidnet.service.kylin.service.IKylinPerformancesService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.bson.Document; import org.bson.Document;
import org.gavaghan.geodesy.Ellipsoid;
import org.gavaghan.geodesy.GeodeticCalculator;
import org.gavaghan.geodesy.GlobalCoordinates;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
...@@ -230,29 +228,10 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM ...@@ -230,29 +228,10 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
performancesInfo.setMessage(KylinPerformanceStatusEnum.getName(performancesInfo.getAppStatus())); performancesInfo.setMessage(KylinPerformanceStatusEnum.getName(performancesInfo.getAppStatus()));
// 处理距离 // 处理距离
GlobalCoordinates source = new GlobalCoordinates(latitudeFrom, longitudeFrom); String diffDistance = DistanceUtil.getDistance(longitudeFrom, latitudeFrom, Double.parseDouble(performancesInfo.getLongitude()), Double.parseDouble(performancesInfo.getLatitude()));
GlobalCoordinates target = new GlobalCoordinates(Double.valueOf(performancesInfo.getLatitude()), Double.valueOf(performancesInfo.getLongitude()));
double diffDistanceDouble = new GeodeticCalculator().calculateGeodeticCurve(Ellipsoid.Sphere, source, target).getEllipsoidalDistance();
int diffDistanceInt = (int) diffDistanceDouble;
String diffDistance;
if (diffDistanceInt > 1000) {
diffDistanceInt = diffDistanceInt / 1000;
diffDistance = String.valueOf(diffDistanceInt) + "km";
} else {
diffDistance = String.valueOf(diffDistanceInt) + "m";
}
performancesInfo.setDiffDistance(diffDistance); performancesInfo.setDiffDistance(diffDistance);
for (PerformanceVo road : roadList) { for (PerformanceVo road : roadList) {
GlobalCoordinates targetRoad = new GlobalCoordinates(Double.valueOf(road.getLatitude()), Double.valueOf(road.getLongitude())); String diffDistanceRoad = DistanceUtil.getDistance(longitudeFrom, latitudeFrom, Double.parseDouble(performancesInfo.getLongitude()), Double.parseDouble(performancesInfo.getLatitude()));
double diffDistanceDoubleRoad = new GeodeticCalculator().calculateGeodeticCurve(Ellipsoid.Sphere, source, targetRoad).getEllipsoidalDistance();
int diffDistanceIntRoad = (int) diffDistanceDoubleRoad;
String diffDistanceRoad;
if (diffDistanceIntRoad > 1000) {
diffDistanceIntRoad = diffDistanceIntRoad / 1000;
diffDistanceRoad = String.valueOf(diffDistanceIntRoad) + "km";
} else {
diffDistanceRoad = String.valueOf(diffDistanceIntRoad) + "m";
}
road.setDiffDistance(diffDistanceRoad); road.setDiffDistance(diffDistanceRoad);
} }
...@@ -262,7 +241,7 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM ...@@ -262,7 +241,7 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
return info; return info;
} }
public List<TicketTimesVo> ticketTimesPartner(String performancesId) { public List<TicketTimesVo> ticketTimesPartner(String performancesId, Integer isAgent) {
HashMap<String, Object> info = new HashMap<>(); HashMap<String, Object> info = new HashMap<>();
List<TicketTimesVo> ticketTimesList = mongoTemplate.find( List<TicketTimesVo> ticketTimesList = mongoTemplate.find(
...@@ -271,10 +250,14 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM ...@@ -271,10 +250,14 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
TicketTimesVo.class.getSimpleName() TicketTimesVo.class.getSimpleName()
); );
for (TicketTimesVo partner : ticketTimesList) { for (TicketTimesVo partner : ticketTimesList) {
Query query = Query.query(Criteria.where("timeId").is(partner.getTimeId()));
if (isAgent > 0) {
query.addCriteria(Criteria.where("isAgent").is(isAgent));
}
List<TicketVo> ticketList = mongoTemplate.find( List<TicketVo> ticketList = mongoTemplate.find(
Query.query(Criteria.where("timeId").is(partner.getTimeId())), query,
TicketVo.class, TicketVo.class,
TicketVo.class.getSimpleName() TicketVo.class.getSimpleName()
); );
for (TicketVo ticket : ticketList) { for (TicketVo ticket : ticketList) {
......
...@@ -244,12 +244,6 @@ ...@@ -244,12 +244,6 @@
<artifactId>aliyun-java-sdk-dypnsapi</artifactId> <artifactId>aliyun-java-sdk-dypnsapi</artifactId>
<version>1.1.3</version> <version>1.1.3</version>
</dependency> </dependency>
<!-- 计算经纬度距离 -->
<dependency>
<groupId>org.gavaghan</groupId>
<artifactId>geodesy</artifactId>
<version>1.1.3</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment