提交 fc218fbf 作者: han

飞手派单相关接口修改

上级 4b4c7c81
...@@ -411,11 +411,20 @@ public interface RequirementsDao { ...@@ -411,11 +411,20 @@ public interface RequirementsDao {
Integer personSendOrder(PersonSendOrderDO personSendOrderDO); Integer personSendOrder(PersonSendOrderDO personSendOrderDO);
/** /**
* 修改info表中的状态
*/
Integer updateInfoStatus(@Param("id") Integer requireId,@Param("status")Integer status);
/**
* 查询飞手是否重复派单 * 查询飞手是否重复派单
*/ */
Integer isReSendOrder(Integer requireId); Integer isReSendOrder(Integer requireId);
Integer reSendOrder(@Param("requireId") Integer requireId,@Param("userAccountId")Integer userAccountId);
/** /**
* 查询是否是团队派单
*/
Integer isTeamSendOrder(@Param("requireId") Integer requireId);
/**
* 查询派单信息 * 查询派单信息
*/ */
PersonSendOrderDO selectSendOrderById(Integer id); PersonSendOrderDO selectSendOrderById(Integer id);
...@@ -429,13 +438,6 @@ public interface RequirementsDao { ...@@ -429,13 +438,6 @@ public interface RequirementsDao {
*/ */
Integer isReConfirm(Integer id); Integer isReConfirm(Integer id);
/**
* 根据订单id和用户id查找这个订单是不是被拒绝过
* @param requireId 订单id
* @param userAccountId 接单飞手id
* @return {@link Integer}
*/
Integer selectRejectedByPilot(Integer requireId,Integer userAccountId);
/** /**
* 管理员确认接单 * 管理员确认接单
......
...@@ -7,8 +7,8 @@ package com.mmc.csf.release.enums; ...@@ -7,8 +7,8 @@ package com.mmc.csf.release.enums;
*/ */
public enum ServiceIdEnum { public enum ServiceIdEnum {
WAIT_CHANGE_AMOUNT(12,"等待修改金额"), WAIT_CHANGE_AMOUNT(12,"等待修改金额"),
DETAIL_COMPLETE(4,"任务已完成"); DETAIL_COMPLETE(4,"任务已完成"),
SENDING_OUT_ORDERS(13,"派单中");
private Integer code; private Integer code;
private String name; private String name;
......
...@@ -95,6 +95,9 @@ public interface UserAppApi { ...@@ -95,6 +95,9 @@ public interface UserAppApi {
@PostMapping("/userapp/wx/send") @PostMapping("/userapp/wx/send")
ResultBody feignSendWxMsg(@RequestHeader("token") String token,@RequestBody WxMsgVO ws); ResultBody feignSendWxMsg(@RequestHeader("token") String token,@RequestBody WxMsgVO ws);
@GetMapping("/userapp/pilot/selectPilotTeam") @GetMapping("/userapp/pilot/selectPilotTeamManagerId")
TeamMessageDO selectPilotTeam(@RequestHeader("token") String token,@RequestParam Integer pilotId); Integer selectPilotTeamManagerId(@RequestHeader("token") String token,@RequestParam Integer pilotUserId);
@GetMapping("/userapp/pilot/getPilotApplyPhone")
String getPilotApplyPhone(@RequestHeader("token") String token,@RequestParam Integer pilotId);
} }
...@@ -91,7 +91,12 @@ public class UserAppApiHystrix implements UserAppApi { ...@@ -91,7 +91,12 @@ public class UserAppApiHystrix implements UserAppApi {
} }
@Override @Override
public TeamMessageDO selectPilotTeam(String token,Integer pilotId) { public Integer selectPilotTeamManagerId(String token, Integer pilotUserId) {
return null;
}
@Override
public String getPilotApplyPhone(String token, Integer pilotId) {
return null; return null;
} }
......
...@@ -153,6 +153,11 @@ public interface RequirementsService { ...@@ -153,6 +153,11 @@ public interface RequirementsService {
ResultBody orderConfirmationByPilot(Integer id,Integer status); ResultBody orderConfirmationByPilot(Integer id,Integer status);
/** /**
* 管理员确认接单
*/
ResultBody orderConfirmationByTeam(Integer id,Integer status);
/**
* 个人飞手派单的订单列表 * 个人飞手派单的订单列表
*/ */
PageResult mySendOderList(Integer userAccountId, MyPreemptQO param); PageResult mySendOderList(Integer userAccountId, MyPreemptQO param);
......
...@@ -23,6 +23,7 @@ import com.mmc.csf.release.industry.IndustryTypeDTO; ...@@ -23,6 +23,7 @@ import com.mmc.csf.release.industry.IndustryTypeDTO;
import com.mmc.csf.release.industry.UserPayInfoVO; import com.mmc.csf.release.industry.UserPayInfoVO;
import com.mmc.csf.release.service.RequirementsService; import com.mmc.csf.release.service.RequirementsService;
import com.mmc.csf.release.util.RestTemplateUtil; import com.mmc.csf.release.util.RestTemplateUtil;
import com.mmc.csf.release.util.SmsUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.gavaghan.geodesy.Ellipsoid; import org.gavaghan.geodesy.Ellipsoid;
...@@ -3290,23 +3291,36 @@ public class RequirementsServiceImpl implements RequirementsService { ...@@ -3290,23 +3291,36 @@ public class RequirementsServiceImpl implements RequirementsService {
if(requirementsDao.isReSendOrder(personSendOrderVO.getRequirementsInfoId() )!= 0){ if(requirementsDao.isReSendOrder(personSendOrderVO.getRequirementsInfoId() )!= 0){
return ResultBody.error("重复派单"); return ResultBody.error("重复派单");
} }
// if(requirementsDao.selectRejectedByPilot(personSendOrderVO.getRequirementsInfoId(),personSendOrderVO.getPilotCertificationUserId()) == 1){ if(requirementsDao.reSendOrder(personSendOrderVO.getRequirementsInfoId(),personSendOrderVO.getPilotCertificationUserId()) == 1){
// return ResultBody.error("飞手拒绝过该订单,不能派单"); return ResultBody.error("飞手拒绝过该订单或者已经派单,不能重复派单");
// } }
TeamMessageDO teamMessageDTO = userAppApi.selectPilotTeam(token,personSendOrderVO.getPilotCertificationId());
PersonSendOrderDO personSendOrderDO = null; PersonSendOrderDO personSendOrderDO = null;
if(teamMessageDTO.getPilotMessageId() != null){ // 1、是否是团队派单
if(requirementsDao.isTeamSendOrder(personSendOrderVO.getRequirementsInfoId()) != 0){
personSendOrderDO = new PersonSendOrderDO(personSendOrderVO);
Integer id = requirementsDao.personSendOrder(personSendOrderDO);
String phone = userAppApi.getPilotApplyPhone(token, personSendOrderDO.getPilotCertificationId());
SmsUtil.sendPilotOrder(phone);
}
// 2、直接给飞手派单
Integer managerId = userAppApi.selectPilotTeamManagerId(token,personSendOrderVO.getPilotCertificationUserId());
// 修改info表中的状态为13派单中
requirementsDao.updateInfoStatus(personSendOrderVO.getRequirementsInfoId(),13);
if(managerId != null){
personSendOrderDO = new PersonSendOrderDO(); personSendOrderDO = new PersonSendOrderDO();
personSendOrderDO.setRequirementsInfoId(personSendOrderVO.getRequirementsInfoId()); personSendOrderDO.setRequirementsInfoId(personSendOrderVO.getRequirementsInfoId());
personSendOrderDO.setTeamUserId(teamMessageDTO.getPilotMessageId()); personSendOrderDO.setTeamUserId(managerId);
Integer id = requirementsDao.personSendOrder(personSendOrderDO); Integer id = requirementsDao.personSendOrder(personSendOrderDO);
// TODO 定时器、发送短信、公众号通知 // TODO 定时器、发送短信、公众号通知
return ResultBody.success("派单成功,等待飞手确认"); return ResultBody.success("派单飞手拥有团队,等待团队管理员确认后重新给您分配飞手");
}else{ }else{
personSendOrderDO = new PersonSendOrderDO(personSendOrderVO); personSendOrderDO = new PersonSendOrderDO(personSendOrderVO);
Integer id = requirementsDao.personSendOrder(personSendOrderDO); Integer id = requirementsDao.personSendOrder(personSendOrderDO);
// TODO 定时器 发送短信、公众号通知 // TODO 定时器 发送短信、公众号通知
return ResultBody.success("派单飞手拥有团队,等待团队管理员确认后重新给您分配飞手"); String phone = userAppApi.getPilotApplyPhone(token, personSendOrderDO.getPilotCertificationId());
SmsUtil.sendPilotOrder(phone);
return ResultBody.success("派单成功,等待飞手确认");
} }
} }
...@@ -3322,7 +3336,10 @@ public class RequirementsServiceImpl implements RequirementsService { ...@@ -3322,7 +3336,10 @@ public class RequirementsServiceImpl implements RequirementsService {
RequirementsServiceDO requirementsServiceDO = new RequirementsServiceDO(personSendOrderDO); RequirementsServiceDO requirementsServiceDO = new RequirementsServiceDO(personSendOrderDO);
// 同步派单信息到抢单表中 // 同步派单信息到抢单表中
requirementsDao.insertService(requirementsServiceDO); requirementsDao.insertService(requirementsServiceDO);
// SmsUtil.sendPassPilotApply(phone);
// TODO 发送短信、公众号通知 // TODO 发送短信、公众号通知
// 修改info表中的状态为2等待抵达任务地点
requirementsDao.updateInfoStatus(personSendOrderDO.getRequirementsInfoId(),2);
return ResultBody.success("飞手已接单"); return ResultBody.success("飞手已接单");
} }
if(personSendOrderDO.getTeamUserId() != null){ if(personSendOrderDO.getTeamUserId() != null){
...@@ -3336,10 +3353,28 @@ public class RequirementsServiceImpl implements RequirementsService { ...@@ -3336,10 +3353,28 @@ public class RequirementsServiceImpl implements RequirementsService {
// 订单发往抢单大厅 // 订单发往抢单大厅
requirementsDao.updateCount(personSendOrderDO.getRequirementsInfoId()); requirementsDao.updateCount(personSendOrderDO.getRequirementsInfoId());
// TODO 发送短信、公众号通知 // TODO 发送短信、公众号通知
// 修改info表中的状态为1等待抢单
requirementsDao.updateInfoStatus(personSendOrderDO.getRequirementsInfoId(),1);
return ResultBody.success("飞手已拒绝接单,订单发往抢单大厅"); return ResultBody.success("飞手已拒绝接单,订单发往抢单大厅");
} }
@Override @Override
public ResultBody orderConfirmationByTeam(Integer id,Integer status) {
if(requirementsDao.isReConfirm(id) != 0){
return ResultBody.error("重复确认");
}
requirementsDao.orderConfirmationByTeam(id, status);
PersonSendOrderDO personSendOrderDO = requirementsDao.selectSendOrderById(id);
// 管理员同意接单
if(status == 1){
// TODO 发送短信、公众号通知
return ResultBody.success("团队管理员已接单,正在为您分配飞手");
}
// TODO 发送短信、公众号通知
return ResultBody.success("团队管理员已拒绝接单,订单发往抢单大厅");
}
@Override
public PageResult mySendOderList(Integer userAccountId, MyPreemptQO param) { public PageResult mySendOderList(Integer userAccountId, MyPreemptQO param) {
Integer pageNo = param.getPageNo(); Integer pageNo = param.getPageNo();
param.buildCurrentPage(); param.buildCurrentPage();
...@@ -3354,6 +3389,7 @@ public class RequirementsServiceImpl implements RequirementsService { ...@@ -3354,6 +3389,7 @@ public class RequirementsServiceImpl implements RequirementsService {
requirementsInfoVO.setServiceName(industryTypeDTO.getTypeName()); requirementsInfoVO.setServiceName(industryTypeDTO.getTypeName());
} }
} }
} }
return PageResult.buildPage(pageNo, param.getPageSize(), count, collect); return PageResult.buildPage(pageNo, param.getPageSize(), count, collect);
} }
...@@ -3614,6 +3650,25 @@ public class RequirementsServiceImpl implements RequirementsService { ...@@ -3614,6 +3650,25 @@ public class RequirementsServiceImpl implements RequirementsService {
} }
return rs.toString(); return rs.toString();
} }
public JSONObject spellMsg(String name, String result){
JSONObject data=new JSONObject();
//订单编号{{thing3.DATA}}
JSONObject thing3=new JSONObject();
thing3.put("value",name);
data.put("thing3",thing3);
//审核时间{{time6.DATA}}
JSONObject time6=new JSONObject();
time6.put("value",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
data.put("time6",time6);
//审核结果{{thing5.DATA}}
JSONObject thing5=new JSONObject();
thing5.put("value",result);
data.put("thing5",thing5);
return data;
}
} }
package com.mmc.csf.release.util;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.teaopenapi.models.Config;
import com.google.gson.Gson;
/**
* @author: zj
* @Date: 2023/7/25 17:00
*/
public class SmsUtil {
public static String ALIYUN_OSS_ACCESS_KEY_ID = "LTAI5tS3GNPRZAkG9LCQBZmc";
public static String ALIYUN_OSS_ACCESS_KEY_SECRET = "ZkPrv1u2mN2DmOIc7GfPKRuy4Risqe";
public static String CLOUD_JOIN_WEBSITE = "云享飞Pro";
private static String ENDPOINT = "dysmsapi.aliyuncs.com";
/**
*
* 加盟审核通过
*/
private static String COOPERATION_TEMPLATE_PASS_CODE_0 = "SMS_461986130";
private static String COOPERATION_TEMPLATE_PASS_CODE_2 = "SMS_462240459";
private static String COOPERATION_TEMPLATE_PASS_CODE_3 = "SMS_462620535";
private static String COOPERATION_TEMPLATE_PASS_CODE_4 = "SMS_462605558";
private static String COOPERATION_TEMPLATE_PASS_CODE_5 = "SMS_464125992";
private static String COOPERATION_TEMPLATE_PASS_CODE_6 = "SMS_464380042";
private static String COOPERATION_TEMPLATE_PASS_CODE_7 = "SMS_464335035";
private static String COOPERATION_TEMPLATE_PASS_CODE_8="SMS_464396097";
//短信验证码模板
private static String VERIFYCODE="SMS_211825548";
/**
* 加盟审核未通过
*/
private static String COOPERATION_TEMPLATE_CODE_1 = "SMS_462095054";
public static String sendPassCooperationApply(String phone) {
return send(CLOUD_JOIN_WEBSITE, COOPERATION_TEMPLATE_PASS_CODE_5, null, phone);
}
public static String sendNotPassCooperationApply(String phone) {
return send(CLOUD_JOIN_WEBSITE, COOPERATION_TEMPLATE_CODE_1, null, phone);
}
// 飞手审核通过通知
public static String sendPassPilotApply(String phone) {
return send(CLOUD_JOIN_WEBSITE, COOPERATION_TEMPLATE_PASS_CODE_6, null, phone);
}
//飞手提现通知
public static String sendPassWithdrawalApply(String phone) {
return send(CLOUD_JOIN_WEBSITE, COOPERATION_TEMPLATE_PASS_CODE_7, null, phone);
}
//飞手订单派送
public static String sendPilotOrder(String phone) {
return send(CLOUD_JOIN_WEBSITE, COOPERATION_TEMPLATE_PASS_CODE_8, null, phone);
}
public static String send(String TemplateCode, String param, String phone) {
return send(CLOUD_JOIN_WEBSITE, TemplateCode, param, phone);
}
public static String send(String signName, String TemplateCode, String param, String phone) {
Config config = new Config().setAccessKeyId(ALIYUN_OSS_ACCESS_KEY_ID).setAccessKeySecret(ALIYUN_OSS_ACCESS_KEY_SECRET);
config.endpoint = ENDPOINT;
com.aliyun.dysmsapi20170525.Client client = null;
SendSmsRequest request = new SendSmsRequest();
request.setPhoneNumbers(phone);
request.setSignName(signName);
request.setTemplateCode(TemplateCode);
if (param != null) {
request.setTemplateParam(param);
}
SendSmsResponse response = null;
try {
client = new com.aliyun.dysmsapi20170525.Client(config);
response = client.sendSms(request);
} catch (Exception e) {
return e.getMessage();
}
return new Gson().toJson(response.body);
}
/**
* 短信验证码
* @param verifyCode
* @param phone
* @return
*/
public static String verifyCode(String verifyCode,String phone){
return send(VERIFYCODE,"{\"code\":\""+verifyCode+"\"}",phone);
}
}
...@@ -1668,7 +1668,12 @@ ...@@ -1668,7 +1668,12 @@
<update id="updateCount"> <update id="updateCount">
update requirements_info update requirements_info
set repertory = 1 set repertory = #{status}
where id = #{id}
</update>
<update id="updateInfoStatus">
update requirements_info
set service_flow_id = #{status}
where id = #{id} where id = #{id}
</update> </update>
...@@ -1956,8 +1961,13 @@ ...@@ -1956,8 +1961,13 @@
ORDER BY ri.id desc ORDER BY ri.id desc
limit #{pageNo}, #{pageSize} limit #{pageNo}, #{pageSize}
</select> </select>
<select id="selectRejectedByPilot" resultType="java.lang.Integer"> <select id="reSendOrder" resultType="java.lang.Integer">
select count(*) from requirements_service_temp where require_info_id = #{requireId} and pilot_certification_user_id = #{userAccountId} and pilot_status = 2 select count(*) from requirements_service_temp where require_info_id = #{requireId} and pilot_certification_user_id = #{userAccountId}
</select>
<select id="isTeamSendOrder" resultType="java.lang.Integer">
select count(*)
from requirements_service_temp
where require_info_id = #{requireId} and team_user_id is not null;
</select> </select>
<delete id="deleteRequirementsServiceInfo"> <delete id="deleteRequirementsServiceInfo">
delete from requirements_service where requirements_info_id = #{requireId} and pilot_certification_user_id = #{userAccountId} delete from requirements_service where requirements_info_id = #{requireId} and pilot_certification_user_id = #{userAccountId}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论