提交 b03b12cc 作者: han

新增飞手派单接口限制条件

上级 e4b22467
流水线 #7708 已通过 于阶段
in 2 分 44 秒
......@@ -13,9 +13,7 @@ import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TeamMessageDTO implements Serializable {
private static final long serialVersionUID = 1L;
public class TeamMessageDO{
/**
* 飞手ID
*/
......
......@@ -372,9 +372,8 @@ public class RequirementsController extends BaseController {
@ApiOperation(value = "飞手派单")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@NotRepeatSubmit(value = 3000L)
@PostMapping("personSendOrder")
public ResultBody personSendOrder(@RequestBody PersonSendOrderVO personSendOrderVO) {
return requirementsService.personSendOrder(personSendOrderVO);
@PostMapping("/personSendOrder")
public ResultBody personSendOrder(HttpServletRequest request,@RequestBody PersonSendOrderVO personSendOrderVO) {
return requirementsService.personSendOrder(personSendOrderVO,this.getUserLoginInfoFromRedis(request).getToken());
}
}
\ No newline at end of file
......@@ -408,4 +408,11 @@ public interface RequirementsDao {
*/
Integer personSendOrder(PersonSendOrderDO personSendOrderDO);
/**
* 查询飞手是否重复派单
*/
Integer isReSendOrder(Integer requireId);
}
......@@ -3,7 +3,7 @@ package com.mmc.csf.release.feign;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.dto.PilotCertificationInteriorDTO;
import com.mmc.csf.infomation.dto.TeamMessageDTO;
import com.mmc.csf.infomation.dto.TeamMessageDO;
import com.mmc.csf.infomation.dto.UserAccountSimpleDTO;
import com.mmc.csf.infomation.dto.UserBaseInfoDTO;
import com.mmc.csf.release.auth.qo.BUserAccountQO;
......@@ -96,5 +96,5 @@ public interface UserAppApi {
ResultBody feignSendWxMsg(@RequestHeader("token") String token,@RequestBody WxMsgVO ws);
@GetMapping("/userapp/pilot/selectPilotTeam")
TeamMessageDTO selectPilotTeam(@RequestParam Integer pilotId);
TeamMessageDO selectPilotTeam(@RequestHeader("token") String token,@RequestParam Integer pilotId);
}
......@@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.common.util.web.ResultEnum;
import com.mmc.csf.infomation.dto.PilotCertificationInteriorDTO;
import com.mmc.csf.infomation.dto.TeamMessageDTO;
import com.mmc.csf.infomation.dto.TeamMessageDO;
import com.mmc.csf.infomation.dto.UserAccountSimpleDTO;
import com.mmc.csf.infomation.dto.UserBaseInfoDTO;
import com.mmc.csf.release.auth.qo.BUserAccountQO;
......@@ -14,7 +14,6 @@ import com.mmc.csf.release.flyer.vo.CurriculumOrderLogVO;
import com.mmc.csf.user.vo.ChangeUserPointVO;
import com.mmc.csf.user.vo.WxMsgVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestBody;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
......@@ -92,7 +91,7 @@ public class UserAppApiHystrix implements UserAppApi {
}
@Override
public TeamMessageDTO selectPilotTeam(Integer pilotId) {
public TeamMessageDO selectPilotTeam(String token,Integer pilotId) {
return null;
}
......
......@@ -145,5 +145,5 @@ public interface RequirementsService {
/**
* 根据飞手进行派单操作
*/
ResultBody personSendOrder(PersonSendOrderVO personSendOrderVO);
ResultBody personSendOrder(PersonSendOrderVO personSendOrderVO,String token);
}
......@@ -24,17 +24,18 @@ import com.mmc.csf.release.industry.UserPayInfoVO;
import com.mmc.csf.release.service.RequirementsService;
import com.mmc.csf.release.util.RestTemplateUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.gavaghan.geodesy.Ellipsoid;
import org.gavaghan.geodesy.GeodeticCalculator;
import org.gavaghan.geodesy.GeodeticCurve;
import org.gavaghan.geodesy.GlobalCoordinates;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
......@@ -61,6 +62,7 @@ public class RequirementsServiceImpl implements RequirementsService {
@Autowired
private RequirementsDao requirementsDao;
@Qualifier("com.mmc.csf.release.feign.UserAppApi")
@Autowired
private UserAppApi userAppApi;
......@@ -1024,7 +1026,7 @@ public class RequirementsServiceImpl implements RequirementsService {
public String getStableAccessToken() {
//token有效期为7200s,需要保存起来,先从redis中获取accessToken,没有则请求获取
String accessToken = stringRedisTemplate.opsForValue().get(WxConstant.IUAV_MINI_PROGRAM_STABLE_ACCESS_TOKEN);
if (org.apache.commons.lang.StringUtils.isBlank(accessToken)) {
if (StringUtils.isBlank(accessToken)) {
Map<String, String> params = new HashMap<String, String>();
params.put("grant_type", "client_credential");
params.put("appid", userSystemConstant.getWxAppId());
......@@ -3283,20 +3285,25 @@ public class RequirementsServiceImpl implements RequirementsService {
}
@Override
public ResultBody personSendOrder(PersonSendOrderVO personSendOrderVO) {
TeamMessageDTO teamMessageDTO = userAppApi.selectPilotTeam(personSendOrderVO.getPilotCertificationId());
public ResultBody personSendOrder(PersonSendOrderVO personSendOrderVO,String token) {
if(requirementsDao.isReSendOrder(personSendOrderVO.getRequirementsInfoId() )!= 0){
return ResultBody.error("重复派单");
}
TeamMessageDO teamMessageDTO = userAppApi.selectPilotTeam(token,personSendOrderVO.getPilotCertificationId());
PersonSendOrderDO personSendOrderDO = null;
if(teamMessageDTO != null){
if(teamMessageDTO.getPilotMessageId() != null){
personSendOrderDO = new PersonSendOrderDO();
personSendOrderDO.setRequirementsInfoId(personSendOrderVO.getRequirementsInfoId());
personSendOrderDO.setTeamUserId(teamMessageDTO.getPilotMessageId());
Integer id = requirementsDao.personSendOrder(personSendOrderDO);
// TODO 定时器
return ResultBody.success("派单成功,等待飞手确认");
}else{
personSendOrderDO = new PersonSendOrderDO(personSendOrderVO);
}
Integer id = requirementsDao.personSendOrder(personSendOrderDO);
// TODO 定时器
return ResultBody.success();
return ResultBody.success("派单飞手拥有团队,等待团队管理员确认后重新给您分配飞手");
}
}
public UserAccountSimpleDTO feignGetUserSimpleInfo(Integer userAccountId, HttpServletRequest request) {
......
......@@ -1864,6 +1864,11 @@
<select id="getPilotUserIdByRequireId" resultType="java.lang.Integer">
select pilot_certification_user_id from requirements_service where requirements_info_id = #{requireId} and service_flow_id not in (7 , 11)
</select>
<select id="isReSendOrder" resultType="java.lang.Integer">
select count(*)
from requirements_service_temp
where requirements_info_id = #{requireId} and is_deleted = 0
</select>
<delete id="deleteRequirementsServiceInfo">
delete from requirements_service where requirements_info_id = #{requireId} and pilot_certification_user_id = #{userAccountId}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论