提交 2600132a 作者: 刘明祎-运维用途

Merge branch 'develop'

流水线 #7795 已通过 于阶段
in 2 分 41 秒
package com.mmc.csf.infomation.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author han
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TeamMessageDO{
/**
* 飞手ID
*/
private Integer pilotId;
/**
* 飞手的用户ID
*/
private Integer pilotUserId;
/**
* 飞手的团队管理员ID
*/
private Integer pilotMessageId;
}
package com.mmc.csf.infomation.qo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.mmc.csf.release.model.group.Freeze;
import com.mmc.csf.release.model.group.Page;
import io.swagger.annotations.ApiModelProperty;
......@@ -40,6 +41,8 @@ public class MyPublishQO {
@ApiModelProperty(value = "描述",example = "hh")
private String requireDescription;
@JsonIgnore
private int type;
public void buildCurrentPage() {
this.pageNo = (pageNo - 1) * pageSize;
}
......
package com.mmc.csf.infomation.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author han
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class PersonSendOrderVO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "服务需求订单id")
@NotNull(message = "id不能为空")
private Integer requirementsInfoId;
@ApiModelProperty(value = "派单飞手id")
private Integer pilotCertificationId;
@ApiModelProperty(value = "派单飞手用户id")
private Integer pilotCertificationUserId;
@ApiModelProperty(value = "是否是管理员派单")
private int isAdminSend;
}
......@@ -31,6 +31,8 @@ public class RequirementsInfoVO implements Serializable {
@NotNull(message = "id不能为空", groups = {Update.class})
private Integer id;
private Integer tempId;
@ApiModelProperty(value = "需求发布id", hidden = true)
private Integer requirementsInfoId;
......@@ -79,7 +81,6 @@ public class RequirementsInfoVO implements Serializable {
@ApiModelProperty(value = "描述图片", example = "http://,http://", required = false)
private String requireUrl;
@ApiModelProperty(value = "发布者姓名", example = "张三")
// @NotNull(message = "发布者姓名不能为空", groups = {Insert.class})
private String publishName;
......@@ -197,4 +198,7 @@ public class RequirementsInfoVO implements Serializable {
@ApiModelProperty(value = "后台修改后的金额")
private BigDecimal changedOrderAmount;
@ApiModelProperty(value = "管理员操作")
private int teamStatus;
}
......@@ -18,4 +18,4 @@ patches:
images:
- name: REGISTRY/NAMESPACE/IMAGE:TAG
newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/ims
newTag: da7a362b93628d503ae6873ee076f5687a6b5044
newTag: 6f3ad603703d1d0435d83e3e6bf472d8e0467c50
......@@ -177,6 +177,13 @@ public class RequirementsController extends BaseController {
return ResultBody.success(requirementsService.myPublish(this.getUserLoginInfoFromRedis(request).getUserAccountId(), param));
}
@ApiOperation(value = "小程序——我的发布(需要派单列表)")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("mySendPublish")
public ResultBody<RequirementsInfoVO> mySendPublish(HttpServletRequest request, @Validated(value = {Page.class}) @ApiParam(value = "我的发单", required = true) @RequestBody MyPublishQO param) {
return ResultBody.success(requirementsService.mySendPublish(this.getUserLoginInfoFromRedis(request).getUserAccountId(), param));
}
@ApiOperation(value = "new——小程序-—服务订单--我的抢单")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
......@@ -356,17 +363,75 @@ public class RequirementsController extends BaseController {
return requirementsService.deleteRequire(requirementsInfoId, this.getUserLoginInfoFromRedis(request).getUserAccountId());
}
@ApiOperation(value = "小程序—获取子订单详细信息")
@ApiOperation(value = "小程序—抢单——获取子订单详细信息")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("selectRequireSonInfo")
public ResultBody<RequirementsInfoVO> selectRequireSonInfo(HttpServletRequest request, @Validated(value = {Page.class}) @ApiParam(value = "查询所有子订单信息", required = true) @RequestBody MyPublishQO param) {
param.setType(0);
return ResultBody.success(requirementsService.selectRequireSonInfo(this.getUserLoginInfoFromRedis(request).getUserAccountId(), param));
}
@ApiOperation(value = "小程序——派单——获取子订单信息")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("selectRequireInfo")
public ResultBody<RequirementsInfoVO> selectRequireInfo(HttpServletRequest request, @Validated(value = {Page.class}) @ApiParam(value = "查询所有子订单信息", required = true) @RequestBody MyPublishQO param) {
param.setType(1);
return ResultBody.success(requirementsService.selectRequireSonInfo(this.getUserLoginInfoFromRedis(request).getUserAccountId(), param));
}
@ApiOperation(value = "小程序—发单方(同意/拒绝)该飞手")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("agreeOrRefusePilot")
public ResultBody agreeOrRefusePilot(@Validated @RequestBody AgreeOrRefusePilotQO param) {
return requirementsService.agreeOrRefusePilot(param);
}
@ApiOperation(value = "飞手派单")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/personSendOrder")
public ResultBody personSendOrder(HttpServletRequest request,@RequestBody PersonSendOrderVO personSendOrderVO) {
return requirementsService.personSendOrder(personSendOrderVO,this.getUserLoginInfoFromRedis(request).getToken());
}
@ApiOperation(value = "管理员派单派单")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/adminSendOrder")
public ResultBody adminSendOrder(HttpServletRequest request,@RequestBody PersonSendOrderVO personSendOrderVO) {
personSendOrderVO.setIsAdminSend(1);
return requirementsService.personSendOrder(personSendOrderVO,this.getUserLoginInfoFromRedis(request).getToken());
}
@ApiOperation(value = "团队派单")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("/teamSendOrder")
public ResultBody teamSendOrder(HttpServletRequest request,
@ApiParam(value = "父订单id")@RequestParam Integer fatherRequireId,
@ApiParam(value = "团队管理员的id")@RequestParam Integer messageId) {
return requirementsService.teamSendOrder(fatherRequireId,messageId,this.getUserLoginInfoFromRedis(request).getToken());
}
@ApiOperation(value = "我的派单列表——待确认")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("mySendOderList")
public ResultBody<RequirementsInfoVO> mySendOderList(HttpServletRequest request,
@Validated(value = {Page.class}) @ApiParam(value = "我的抢单", required = true) @RequestBody MyPreemptQO param) {
return ResultBody.success(requirementsService.mySendOderList(this.getUserLoginInfoFromRedis(request).getUserAccountId(), param));
// return ResultBody.success(requirementsService.mySendOderList(337, param));
}
@ApiOperation(value = "我的派单——去确认")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("orderConfirmationByPilot")
public ResultBody orderConfirmationByPilot(HttpServletRequest request,
@ApiParam(value = "派单id") @RequestParam Integer tempId,
@ApiParam(value = "确认状态:1同意,2不同意") @RequestParam Integer status) {
return requirementsService.orderConfirmationByPilot(tempId,status,this.getUserLoginInfoFromRedis(request).getToken());
}
@ApiOperation(value = "管理员确认(拒绝)派单")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("adminAgreeOrder")
public ResultBody adminAgreeOrder(HttpServletRequest request,
@ApiParam(value = "派单id") @RequestParam Integer requireId,
@ApiParam(value = "确认状态:1同意,2不同意") @RequestParam Integer status) {
return requirementsService.orderConfirmationByTeam(requireId,status,this.getUserLoginInfoFromRedis(request).getToken());
}
}
\ No newline at end of file
......@@ -4,8 +4,11 @@ import com.mmc.csf.infomation.dto.*;
import com.mmc.csf.infomation.qo.*;
import com.mmc.csf.infomation.vo.LiabilityProblemVO;
import com.mmc.csf.infomation.vo.ServiceSettleAccountsVO;
import com.mmc.csf.release.entity.information.PersonSendOrderDO;
import com.mmc.csf.release.entity.requirements.*;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
......@@ -95,6 +98,7 @@ public interface RequirementsDao {
RequirementsInfoDO detailPublish(Integer id);
RequirementsInfoDO detailSendPublish(Integer id);
/**
* 获取被拒绝飞手具体订单信息
* @param id 订单id
......@@ -136,6 +140,15 @@ public interface RequirementsDao {
List<RequirementsInfoDO> myPublish(MyPublishQO param);
int mySendPublishCount(MyPublishQO param);
/**
* 获取需要管理员(飞手团队后台账号对应的小程序用户id) 同意或者指派的订单
* @param param 条件
* @return {@link List}<{@link RequirementsInfoDO}>
*/
List<RequirementsInfoDO> mySendPublish(MyPublishQO param);
List<RequirementsInfoDO> myPreempt(MyPreemptQO param);
RequirementsServiceDO droneFlyerCancel(Integer requirementsInfoId, Integer userAccountId);
......@@ -319,7 +332,7 @@ public interface RequirementsDao {
* @param requirementsId 订单id
* @return {@link Integer}
*/
Integer selectRequirementsNum(Integer requirementsId);
int selectRequirementsNum(Integer requirementsId);
/**
* 根据父订单id查询不满足状态条件的子订单数量
......@@ -354,6 +367,14 @@ public interface RequirementsDao {
RequirementsServicePilotInfoDO selectPilotInfoByRequireId(Integer requireId);
/**
* 获取临时表对应的订单信息
* @param requireId
* @return {@link RequirementsServicePilotInfoDO}
*/
RequirementsServicePilotInfoDO selectTempPilotInfoByRequireId(Integer requireId);
/**
* 根据流程id查询订单所处状态
* @param serviceFlowId
......@@ -401,4 +422,87 @@ public interface RequirementsDao {
* @return {@link Integer}
*/
Integer getPilotUserIdByRequireId(Integer requireId);
/**
* 根据飞手进行派单操作
*/
Integer personSendOrder(PersonSendOrderDO personSendOrderDO);
/**
* 查询父订单下面的所有子订单id
*/
List<Integer> selectAllSuborder(Integer fatherRequireId);
/**
* 修改info表中的状态
*/
Integer updateInfoStatus(@Param("id") Integer requireId,@Param("status")Integer status);
/**
* 查询飞手是否重复派单
*/
Integer isReSendOrder(Integer requireId);
Integer reSendOrder(@Param("requireId") Integer requireId,@Param("userAccountId")Integer userAccountId);
/**
* 查询飞手订单是否被抢
*/
Integer isLootedByPilot(Integer requireId);
/**
* 查询团队订单是否被抢
*/
Integer isLootedByTeam(Integer requireId);
/**
* 查询是否是团队派单
*/
Integer isTeamSendOrder(@Param("requireId") Integer requireId);
/**
* 查询派单信息
*/
PersonSendOrderDO selectSendOrderById(Integer id);
/**
* 飞手是否确认接单
*/
Integer orderConfirmationByPilot(@Param("id") Integer id,@Param("status") Integer status);
/**
* 查询飞手是否重复确认
*/
Integer isReConfirm(Integer id);
void updateSendOrder(PersonSendOrderDO personSendOrderDO);
void deleteSendOrder(Integer requirementsInfoId);
/**
* 管理员确认接单
*/
Integer orderConfirmationByTeam(@Param("id") Integer id,@Param("status") Integer status);
/**
* 飞手拒绝后订单发往抢单大厅
*/
Integer updateCount(Integer id);
/**
* 根据飞手ID查询派单的列表数量
*/
Integer mySendOderListCount(MyPreemptQO param);
/**
* 根据飞手ID查询派单的列表
*/
List<RequirementsInfoDO> mySendOderList(MyPreemptQO param);
/**
* 根据订单id查询发单用户的id
*/
Integer selectSenderId(Integer id);
/**
* 修改
* @param requireId
* @param num
*/
void updateOrderRequireNum(Integer requireId,int num);
}
package com.mmc.csf.release.entity.information;
import com.mmc.csf.infomation.vo.IndustryCaseVO;
import com.mmc.csf.infomation.vo.PersonSendOrderVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* @author han
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class PersonSendOrderDO implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
/**
* 服务需求订单id
*/
private Integer requirementsInfoId;
/**
* 派单飞手id
*/
private Integer pilotCertificationId;
/**
* 派单飞手用户id
*/
private Integer pilotCertificationUserId;
/**
* 派单飞手用户id
*/
private Integer teamId;
/**
* 派单飞手用户id
*/
private Integer teamUserId;
/**
* 创建时间
*/
private Date createTime;
public PersonSendOrderDO(PersonSendOrderVO personSendOrderVO){
this.requirementsInfoId = personSendOrderVO.getRequirementsInfoId();
this.pilotCertificationId = personSendOrderVO.getPilotCertificationId();
this.pilotCertificationUserId = personSendOrderVO.getPilotCertificationUserId();
}
}
......@@ -28,6 +28,9 @@ import java.util.Date;
public class RequirementsInfoDO implements Serializable {
private static final long serialVersionUID = -1811974173256250060L;
private Integer id;
private Integer tempId;
private Integer requirementTypeId;
private Integer userAccountId;
private Integer provinceCode;
......@@ -183,6 +186,8 @@ public class RequirementsInfoDO implements Serializable {
@ApiModelProperty(value = "订单的父订单id")
private Integer fatherRequireId;
@ApiModelProperty(value = "管理员操作")
private int teamStatus;
public RequirementsInfoVO buildRequirementsInfoVO() {
return RequirementsInfoVO.builder().id(this.id).requirementTypeId(this.requirementTypeId).userAccountId(this.userAccountId).publishName(this.publishName)
......@@ -221,6 +226,10 @@ public class RequirementsInfoDO implements Serializable {
.repertory(this.repertory)
.requireNum(this.requireNum)
.serviceFlowId(this.serviceFlowId)
.teamStatus(this.teamStatus)
.tempId(this.tempId)
.pilotCertificationId(this.pilotCertificationId)
.pilotCertificationUserId(this.pilotCertificationUserId)
.build();
}
......
......@@ -3,6 +3,7 @@ package com.mmc.csf.release.entity.requirements;
import com.alibaba.fastjson.annotation.JSONField;
import com.mmc.csf.config.IsNullConvertZero;
import com.mmc.csf.infomation.dto.PilotCertificationInteriorDTO;
import com.mmc.csf.release.entity.information.PersonSendOrderDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
......@@ -89,5 +90,15 @@ public class RequirementsServiceDO implements Serializable {
this.requirementsInfoId = requirementsInfoDO.getId();
}
/**
* 派单信息同步
*/
public RequirementsServiceDO(PersonSendOrderDO personSendOrderDO){
this.requirementsInfoId = personSendOrderDO.getRequirementsInfoId();
this.pilotCertificationId = personSendOrderDO.getPilotCertificationId();
this.pilotCertificationUserId = personSendOrderDO.getPilotCertificationUserId();
this.teamUserId = personSendOrderDO.getTeamUserId();
this.teamId = personSendOrderDO.getTeamId();
this.serviceFlowId = 2;
}
}
......@@ -7,8 +7,8 @@ package com.mmc.csf.release.enums;
*/
public enum ServiceIdEnum {
WAIT_CHANGE_AMOUNT(12,"等待修改金额"),
DETAIL_COMPLETE(4,"任务已完成");
DETAIL_COMPLETE(4,"任务已完成"),
SENDING_OUT_ORDERS(13,"派单中");
private Integer code;
private String name;
......
......@@ -3,6 +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.TeamMessageDO;
import com.mmc.csf.infomation.dto.UserAccountSimpleDTO;
import com.mmc.csf.infomation.dto.UserBaseInfoDTO;
import com.mmc.csf.release.auth.qo.BUserAccountQO;
......@@ -93,4 +94,10 @@ public interface UserAppApi {
@PostMapping("/userapp/wx/send")
ResultBody feignSendWxMsg(@RequestHeader("token") String token,@RequestBody WxMsgVO ws);
@GetMapping("/userapp/pilot/selectPilotTeamManagerId")
Integer selectPilotTeamManagerId(@RequestHeader("token") String token,@RequestParam Integer pilotUserId);
@GetMapping("/userapp/pilot/getPilotApplyPhone")
String getPilotApplyPhone(@RequestHeader("token") String token,@RequestParam Integer userAccountId);
}
......@@ -4,6 +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.TeamMessageDO;
import com.mmc.csf.infomation.dto.UserAccountSimpleDTO;
import com.mmc.csf.infomation.dto.UserBaseInfoDTO;
import com.mmc.csf.release.auth.qo.BUserAccountQO;
......@@ -89,5 +90,15 @@ public class UserAppApiHystrix implements UserAppApi {
return null;
}
@Override
public Integer selectPilotTeamManagerId(String token, Integer pilotUserId) {
return null;
}
@Override
public String getPilotApplyPhone(String token, Integer userAccountId) {
return null;
}
}
......@@ -5,6 +5,7 @@ import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.dto.*;
import com.mmc.csf.infomation.qo.*;
import com.mmc.csf.infomation.vo.*;
import com.mmc.csf.release.entity.information.PersonSendOrderDO;
import com.mmc.csf.release.entity.requirements.ServiceRequirementsDO;
import javax.servlet.http.HttpServletRequest;
......@@ -71,6 +72,14 @@ public interface RequirementsService {
PageResult myPublish(Integer userAccountId, MyPublishQO param);
/**
* 需要指派或者需要同意派单的列表
* @param adminUserId 用户的id
* @param param 查询的条件
* @return {@link PageResult}
*/
PageResult mySendPublish(Integer adminUserId, MyPublishQO param);
ResultBody<RequirementsInfoVO> grabTheOrder(GrabTheOrderVO grabTheOrderVO, HttpServletRequest request);
ResultBody arriveAtTheScene(ServiceArriveSceneVO serviceArriveSceneVO);
......@@ -134,10 +143,37 @@ public interface RequirementsService {
*/
PageResult selectRequireSonInfo(Integer userAccountId, MyPublishQO param);
/**
* 同意或者拒绝飞手接单
* @param param 参数
* @return {@link ResultBody}
*/
ResultBody agreeOrRefusePilot(AgreeOrRefusePilotQO param);
/**
* 根据飞手进行派单操作
*/
ResultBody personSendOrder(PersonSendOrderVO personSendOrderVO,String token);
/**
* 根据团队进行派单操作
*/
ResultBody teamSendOrder(Integer fatherRequireId,Integer messageId,String token);
/**
* 飞手确认接单
*/
ResultBody orderConfirmationByPilot(Integer id,Integer status,String token);
/**
* 管理员确认接单
*/
ResultBody orderConfirmationByTeam(Integer id,Integer status,String token);
/**
* 个人飞手派单的订单列表
*/
PageResult mySendOderList(Integer userAccountId, MyPreemptQO param);
}
......@@ -15,6 +15,7 @@ import com.mmc.csf.release.constant.*;
import com.mmc.csf.release.controller.countDown.RedisUtil;
import com.mmc.csf.release.dao.OrderAmountDetailDao;
import com.mmc.csf.release.dao.RequirementsDao;
import com.mmc.csf.release.entity.information.PersonSendOrderDO;
import com.mmc.csf.release.entity.requirements.*;
import com.mmc.csf.release.feign.PmsAppApi;
import com.mmc.csf.release.feign.UserAppApi;
......@@ -22,12 +23,15 @@ import com.mmc.csf.release.industry.IndustryTypeDTO;
import com.mmc.csf.release.industry.UserPayInfoVO;
import com.mmc.csf.release.service.RequirementsService;
import com.mmc.csf.release.util.RestTemplateUtil;
import com.mmc.csf.release.util.SmsUtil;
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.*;
......@@ -59,6 +63,7 @@ public class RequirementsServiceImpl implements RequirementsService {
@Autowired
private RequirementsDao requirementsDao;
@Qualifier("com.mmc.csf.release.feign.UserAppApi")
@Autowired
private UserAppApi userAppApi;
......@@ -71,6 +76,7 @@ public class RequirementsServiceImpl implements RequirementsService {
@Value("${iuav.omsapp.url}")
private String omsApp;
@Qualifier("com.mmc.csf.release.feign.PmsAppApi")
@Autowired
private PmsAppApi pmsAppApi;
......@@ -91,6 +97,8 @@ public class RequirementsServiceImpl implements RequirementsService {
@Autowired
private OrderAmountDetailDao orderAmountDetailDao;
@Override
public ResultBody listType(Integer id) {
List<RequirementsTypeDO> requirementsTypeDOList = requirementsDao.listTypeReq(id);
......@@ -221,11 +229,15 @@ public class RequirementsServiceImpl implements RequirementsService {
if(pilotStatus != null && pilotStatus == 11) {
//获取被拒绝订单详情
requirementsInfoDO = requirementsDao.selectDetailRefusePilotInfo(id);
requirementsInfoVO = requirementsInfoDO.buildRequirementsInfoVO();
}else
{
Integer integer = requirementsDao.selectServiceIdByRequireId(id);
if(13 == integer){
requirementsInfoDO = requirementsDao.detailSendPublish(id);
}else{
requirementsInfoDO = requirementsDao.detailPublish(id);
requirementsInfoVO = requirementsInfoDO.buildRequirementsInfoVO();
requirementsInfoDO = requirementsDao.detailPublish(id);}
}
requirementsInfoVO = requirementsInfoDO.buildRequirementsInfoVO();
if (userAccountId.equals(requirementsInfoVO.getUserAccountId())) {
requirementsInfoVO.setParamMoney(BigDecimal.valueOf(0.00));
} else if (!userAccountId.equals(requirementsInfoVO.getUserAccountId())) {
......@@ -1022,7 +1034,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());
......@@ -2901,6 +2913,27 @@ public class RequirementsServiceImpl implements RequirementsService {
}
@Override
public PageResult mySendPublish(Integer userAccountId, MyPublishQO param) {
Integer pageNo = param.getPageNo();
param.buildCurrentPage();
param.setUserAccountId(userAccountId);
int count = requirementsDao.mySendPublishCount(param);
List<RequirementsInfoDO> requirementsInfoDOS = requirementsDao.mySendPublish(param);
List<RequirementsInfoVO> collect = requirementsInfoDOS.stream().map(RequirementsInfoDO::buildRequirementsInfoVO).collect(Collectors.toList());
List<IndustryTypeDTO> industryTypeDTOS = listIndustry();
for (RequirementsInfoVO requirementsInfoVO : collect) {
for (IndustryTypeDTO industryTypeDTO : industryTypeDTOS) {
if (requirementsInfoVO.getServiceId() != null && requirementsInfoVO.getServiceId().equals(industryTypeDTO.getId())) {
requirementsInfoVO.setServiceName(industryTypeDTO.getTypeName());
}
}
}
return PageResult.buildPage(pageNo, param.getPageSize(), count, collect);
}
@Override
public ServiceRequirementsDO getRepertory(GrabTheOrderVO grabTheOrderVO, HttpServletRequest request) {
return requirementsDao.grabTheOrder(grabTheOrderVO.getRequirementsInfoId());
......@@ -3237,13 +3270,23 @@ public class RequirementsServiceImpl implements RequirementsService {
int count = requirementsDao.myPublishcount(param);
List<RequirementsInfoDO> requirementsInfoDOS = requirementsDao.selectRequireSonInfo(param);
for(RequirementsInfoDO requirementsInfoDO : requirementsInfoDOS) {
if (requirementsInfoDO.getServiceFlowId() != 1 && requirementsInfoDO.getServiceFlowId() != 7) {
RequirementsServicePilotInfoDO pilotInfo = requirementsDao.selectPilotInfoByRequireId(requirementsInfoDO.getId());
if (requirementsInfoDO.getServiceFlowId() != 1 && requirementsInfoDO.getServiceFlowId() != 7 ) {
String orderStatus = requirementsInfoDO.getOrderStatus();
RequirementsServicePilotInfoDO pilotInfo = null;
//140是派单的状态
if (param.getType() != 140) {
pilotInfo = requirementsDao.selectPilotInfoByRequireId(requirementsInfoDO.getId());
}else {
pilotInfo = requirementsDao.selectTempPilotInfoByRequireId(requirementsInfoDO.getId());
}
if(pilotInfo != null) {
requirementsInfoDO.setPilotCertificationId(pilotInfo.getPilotCertificationId());
requirementsInfoDO.setPilotCertificationUserId(pilotInfo.getPilotCertificationUserId());
}
}
}
List<RequirementsInfoVO> collect = requirementsInfoDOS.stream().map(RequirementsInfoDO::buildRequirementsInfoVO).collect(Collectors.toList());
List<IndustryTypeDTO> industryTypeDTOS = listIndustry();
......@@ -3257,6 +3300,7 @@ public class RequirementsServiceImpl implements RequirementsService {
return PageResult.buildPage(pageNo, param.getPageSize(), count, collect);
}
@Override
public ResultBody agreeOrRefusePilot(AgreeOrRefusePilotQO param) {
//判断飞手是否被同意 2就是该抵达现场下一步流程
......@@ -3280,6 +3324,180 @@ public class RequirementsServiceImpl implements RequirementsService {
return ResultBody.success();
}
@Override
public ResultBody personSendOrder(PersonSendOrderVO personSendOrderVO,String token) {
// if(requirementsDao.isReSendOrder(personSendOrderVO.getRequirementsInfoId() )!= 0){
// return ResultBody.error("重复派单");
// }
if(requirementsDao.isLootedByPilot(personSendOrderVO.getRequirementsInfoId()) == 0 && personSendOrderVO.getIsAdminSend()==0){
return ResultBody.error("该订单已经被抢,无法继续派单");
}
if(requirementsDao.reSendOrder(personSendOrderVO.getRequirementsInfoId(),personSendOrderVO.getPilotCertificationUserId()) == 1){
return ResultBody.error("飞手拒绝过该订单或者已经派单,不能重复派单");
}
PersonSendOrderDO personSendOrderDO = null;
String pilotPhone = userAppApi.getPilotApplyPhone(token, personSendOrderVO.getPilotCertificationUserId());
// 1、是否是团队派单
if(requirementsDao.isTeamSendOrder(personSendOrderVO.getRequirementsInfoId()) != 0){
personSendOrderDO = new PersonSendOrderDO(personSendOrderVO);
requirementsDao.updateSendOrder(personSendOrderDO);
SmsUtil.sendPilotOrder(pilotPhone);
requirementsDao.updateOrderRequireNum(personSendOrderVO.getRequirementsInfoId(),0);
return ResultBody.success("派单成功,等待飞手确认");
}
// 2、直接给飞手派单
Integer managerId = userAppApi.selectPilotTeamManagerId(token,personSendOrderVO.getPilotCertificationUserId());
// 修改info表中的状态为13派单中
requirementsDao.updateInfoStatus(personSendOrderVO.getRequirementsInfoId(),13);
if(managerId != null){
personSendOrderDO = new PersonSendOrderDO();
personSendOrderDO.setRequirementsInfoId(personSendOrderVO.getRequirementsInfoId());
personSendOrderDO.setTeamUserId(managerId);
requirementsDao.personSendOrder(personSendOrderDO);
// TODO 定时器、发送短信、公众号通知
String managerPhone = userAppApi.getPilotApplyPhone(token, managerId);
SmsUtil.sendPilotOrder(managerPhone);
requirementsDao.updateOrderRequireNum(personSendOrderVO.getRequirementsInfoId(),0);
return ResultBody.success("派单飞手拥有团队,等待团队管理员确认后重新给您分配飞手");
}else{
personSendOrderDO = new PersonSendOrderDO(personSendOrderVO);
requirementsDao.personSendOrder(personSendOrderDO);
// TODO 定时器 发送短信、公众号通知
SmsUtil.sendPilotOrder(pilotPhone);
requirementsDao.updateOrderRequireNum(personSendOrderVO.getRequirementsInfoId(),0);
// scheduledTaskUtil.create(personSendOrderVO);
return ResultBody.success("派单成功,等待飞手确认");
}
}
@Override
public ResultBody teamSendOrder(Integer fatherRequireId, Integer managerId,String token) {
if(requirementsDao.isLootedByPilot(fatherRequireId) == 1){
return ResultBody.error("该订单的子订单已经被抢,无法继续派单");
}
// 查询所有的子订单id
List<Integer> ids = requirementsDao.selectAllSuborder(fatherRequireId);
requirementsDao.updateInfoStatus(fatherRequireId,13);
PersonSendOrderDO personSendOrderDO = new PersonSendOrderDO();
personSendOrderDO.setTeamUserId(managerId);
personSendOrderDO.setRequirementsInfoId(fatherRequireId);
requirementsDao.personSendOrder(personSendOrderDO);
for (Integer id : ids) {
personSendOrderDO.setRequirementsInfoId(id);
requirementsDao.personSendOrder(personSendOrderDO);
// 修改info表中的状态为13派单中
requirementsDao.updateInfoStatus(id,13);
//修改子订单所需人数
requirementsDao.updateOrderRequireNum(id,0);
}
String managerPhone = userAppApi.getPilotApplyPhone(token, managerId);
SmsUtil.sendPilotOrder(managerPhone);
requirementsDao.updateOrderRequireNum(fatherRequireId,0);
return ResultBody.success("等待团队管理员确认");
}
@Override
public ResultBody orderConfirmationByPilot(Integer id,Integer status,String token) {
// if(requirementsDao.isReConfirm(id) != 0){
// return ResultBody.error("重复确认");
// }
requirementsDao.orderConfirmationByPilot(id, status);
PersonSendOrderDO personSendOrderDO = requirementsDao.selectSendOrderById(id);
// 飞手同意接单
if(status == 1){
RequirementsServiceDO requirementsServiceDO = new RequirementsServiceDO(personSendOrderDO);
// 同步派单信息到抢单表中
requirementsDao.insertService(requirementsServiceDO);
// SmsUtil.sendPassPilotApply(phone);
// TODO 公众号通知
// 修改info表中的状态为2等待抵达任务地点
requirementsDao.updateInfoStatus(personSendOrderDO.getRequirementsInfoId(),2);
Integer userId = requirementsDao.selectSenderId(personSendOrderDO.getRequirementsInfoId());
String userPhone = userAppApi.getPilotApplyPhone(token, userId);
SmsUtil.sendGetOrder(userPhone);
return ResultBody.success("飞手已接单");
}
if(personSendOrderDO.getTeamUserId() != null){
PersonSendOrderDO orderDO = new PersonSendOrderDO();
orderDO.setRequirementsInfoId(personSendOrderDO.getRequirementsInfoId());
orderDO.setTeamUserId(personSendOrderDO.getTeamUserId());
requirementsDao.personSendOrder(orderDO);
// TODO 公众号通知
String managerPhone = userAppApi.getPilotApplyPhone(token, personSendOrderDO.getTeamUserId());
SmsUtil.sendRefuseManager(managerPhone);
return ResultBody.success("飞手拒绝派单,需要管理员继续派单");
}
// 订单发往抢单大厅
requirementsDao.updateCount(personSendOrderDO.getRequirementsInfoId());
// TODO 公众号通知
// 修改info表中的状态为1等待抢单
requirementsDao.updateInfoStatus(personSendOrderDO.getRequirementsInfoId(),1);
Integer userId = requirementsDao.selectSenderId(personSendOrderDO.getRequirementsInfoId());
String userPhone = userAppApi.getPilotApplyPhone(token, userId);
SmsUtil.sendRefuseUser(userPhone);
requirementsDao.updateOrderRequireNum(personSendOrderDO.getRequirementsInfoId(),0);
return ResultBody.success("飞手已拒绝接单,订单发往抢单大厅");
}
@Override
public ResultBody orderConfirmationByTeam(Integer id,Integer status,String token) {
//查询订单所需总人数 大于1说明是一个多人订单
requirementsDao.orderConfirmationByTeam(id, status);
int requirementsNum = requirementsDao.selectRequirementsNum(id);
if(requirementsNum == 1){
if(requirementsDao.isReConfirm(id) != 0){
return ResultBody.error("重复确认");
}
requirementsDao.orderConfirmationByTeam(id, status);
} else if (requirementsNum > 1) {
// 查询所有的子订单id
List<Integer> ids = requirementsDao.selectAllSuborder(id);
PersonSendOrderDO personSendOrderDO = null;
//每一个子订单都要同意下
for (Integer i : ids) {
requirementsDao.orderConfirmationByTeam(i, status);
//如果拒绝的话还要发往抢单大厅
if(status == 2) {
requirementsDao.updateOrderRequireNum(i,1);
}
}
}
// 管理员同意接单
if(status == 1){
// TODO 发送短信、公众号通知
return ResultBody.success("团队管理员已接单,正在为您分配飞手");
}
Integer userId = requirementsDao.selectSenderId(id);
String userPhone = userAppApi.getPilotApplyPhone(token, userId);
SmsUtil.sendManagerRefuseOrder(userPhone);
requirementsDao.updateOrderRequireNum(id,requirementsNum);
// TODO 发送短信、公众号通知
return ResultBody.success("团队管理员已拒绝接单,订单发往抢单大厅");
}
@Override
public PageResult mySendOderList(Integer userAccountId, MyPreemptQO param) {
Integer pageNo = param.getPageNo();
param.buildCurrentPage();
param.setUserAccountId(userAccountId);
int count = requirementsDao.mySendOderListCount(param);
List<RequirementsInfoDO> requirementsInfoDOS = requirementsDao.mySendOderList(param);
List<RequirementsInfoVO> collect = requirementsInfoDOS.stream().map(RequirementsInfoDO::buildRequirementsInfoVO).collect(Collectors.toList());
List<IndustryTypeDTO> industryTypeDTOS = listIndustry();
for (RequirementsInfoVO requirementsInfoVO : collect) {
for (IndustryTypeDTO industryTypeDTO : industryTypeDTOS) {
if (requirementsInfoVO.getServiceId() != null && requirementsInfoVO.getServiceId().equals(industryTypeDTO.getId())) {
requirementsInfoVO.setServiceName(industryTypeDTO.getTypeName());
}
}
}
return PageResult.buildPage(pageNo, param.getPageSize(), count, collect);
}
public UserAccountSimpleDTO feignGetUserSimpleInfo(Integer userAccountId, HttpServletRequest request) {
String token = request.getHeader("token");
HttpHeaders headers = new HttpHeaders();
......@@ -3535,6 +3753,25 @@ public class RequirementsServiceImpl implements RequirementsService {
}
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.mmc.csf.infomation.vo.PersonSendOrderVO;
import com.mmc.csf.release.dao.RequirementsDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.io.Serializable;
import java.util.TimerTask;
@Component
public class MyTask extends TimerTask implements Serializable {
private final RequirementsDao requirementsDao;
private PersonSendOrderVO personSendOrderVO;
public MyTask(RequirementsDao requirementsDao) {
this.requirementsDao = requirementsDao;
}
public void setPersonSendOrderVO(PersonSendOrderVO personSendOrderVO) {
this.personSendOrderVO = personSendOrderVO;
}
private static final long serialVersionUID = 1L;
@Override
public void run() {
requirementsDao.deleteSendOrder(personSendOrderVO.getRequirementsInfoId());
System.out.println("定时任务执行完毕!");
}
}
package com.mmc.csf.release.util;
import com.mmc.csf.infomation.vo.PersonSendOrderVO;
import com.mmc.csf.release.dao.RequirementsDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;
import java.time.Instant;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
@Component
public class ScheduledTaskUtil {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private TaskScheduler taskScheduler;
@Autowired
private RequirementsDao requirementsDao;
private final Map<Integer, ScheduledFuture<?>> scheduledTasks = new ConcurrentHashMap<>();
public void create(PersonSendOrderVO personSendOrderVO){
long delay = 10000; // 延迟5s开始执行
MyTask task = new MyTask(requirementsDao);
task.setPersonSendOrderVO(personSendOrderVO);
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.opsForValue().set("task"+personSendOrderVO.getRequirementsInfoId(), task, delay, TimeUnit.MILLISECONDS);
// 使用TaskScheduler执行定时任务
System.out.println("定时任务已开启");
ScheduledFuture<?> scheduledFuture = taskScheduler.schedule(task, Instant.now().plusMillis(delay));
scheduledTasks.put(personSendOrderVO.getRequirementsInfoId(), scheduledFuture);
}
public void destroy(Integer requireId){
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
MyTask task = (MyTask) redisTemplate.opsForValue().get("task"+requireId);
ScheduledFuture<?> scheduledFuture = scheduledTasks.get(requireId);
if (task != null && scheduledFuture != null) {
scheduledFuture.cancel(false);
redisTemplate.delete("task"+requireId);
scheduledTasks.remove(requireId);
System.out.println("定时任务已取消");
}
}
}
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 = "云享飞";
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_464386188";
private static String COOPERATION_TEMPLATE_PASS_CODE_9="SMS_464401213";
private static String COOPERATION_TEMPLATE_PASS_CODE_10="SMS_464371178";
private static String COOPERATION_TEMPLATE_PASS_CODE_11="SMS_464371179";
private static String COOPERATION_TEMPLATE_PASS_CODE_12="SMS_464321248";
//短信验证码模板
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 sendManagerRefuseOrder(String phone) {
return send(CLOUD_JOIN_WEBSITE, COOPERATION_TEMPLATE_PASS_CODE_9, null, phone);
}
//飞手拒绝接用户的订单
public static String sendRefuseUser(String phone) {
return send(CLOUD_JOIN_WEBSITE, COOPERATION_TEMPLATE_PASS_CODE_10, null, phone);
}
//飞手拒绝管理员派单
public static String sendRefuseManager(String phone) {
return send(CLOUD_JOIN_WEBSITE, COOPERATION_TEMPLATE_PASS_CODE_11, null, phone);
}
//飞手接单
public static String sendGetOrder(String phone) {
return send(CLOUD_JOIN_WEBSITE, COOPERATION_TEMPLATE_PASS_CODE_12, 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);
}
}
......@@ -599,7 +599,11 @@
wechat_pay_order_number, service_flow_id, preempt_total_amount, openid,
create_time, update_time, preempt_phone)
VALUES (#{requirementsInfoId}, #{pilotCertificationId}, #{pilotCertificationUserId},
#{teamId}, #{teamUserId}, #{cashAmount}, #{weChat}, #{salaryAmount}, #{wechatPayOrderNumber},10,
#{teamId}, #{teamUserId}, #{cashAmount}, #{weChat}, #{salaryAmount}, #{wechatPayOrderNumber},
CASE #{serviceFlowId}
when null then 10
else #{serviceFlowId} end
,
#{preemptTotalAmount}, #{openid}, NOW(), NOW(), #{phoneNum});
</insert>
......@@ -749,7 +753,8 @@
rau.update_order_amount,
ri.repertory,
rs.pilot_certification_id,
rs.pilot_certification_user_id
rs.pilot_certification_user_id,
ri.create_time
FROM
requirements_info ri
LEFT JOIN requirements_type rt ON rt.id = ri.requirement_type_id
......@@ -792,6 +797,7 @@
SELECT
ri.id,
ri.task_title,
ri.create_time,
ri.task_start_time,
ri.task_end_time,
ri.task_address,
......@@ -1622,7 +1628,7 @@
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
LEFT JOIN requirements_amount_update rau ON rau.requirements_info_id = ri.id
# left join requirements_service rs on ri.id = rs.requirements_info_id
WHERE ri.user_account_id = #{userAccountId} and ri.is_deleted!=1
WHERE ri.is_deleted!=1
<if test=" requirementsInfoId != null ">
and ri.father_require_id=#{requirementsInfoId}
</if>
......@@ -1655,11 +1661,65 @@
<update id="setWorkTimeByPilot">
update order_amount_detail set work_date = NOW() where requirements_info_id = #{requireId}
</update>
<update id="orderConfirmationByPilot">
update requirements_service_temp
set pilot_status = #{status}
where id = #{id} and is_deleted=0
</update>
<update id="orderConfirmationByTeam">
update requirements_service_temp
set team_status = #{status}
where requirements_info_id = #{id} and is_deleted=0
</update>
<update id="updateCount">
update requirements_info
set repertory = #{status}
where id = #{id}
</update>
<update id="updateInfoStatus">
update requirements_info
set service_flow_id = #{status}
where id = #{id}
</update>
<update id="updateSendOrder">
update requirements_service_temp
set pilot_certification_id = #{pilotCertificationId},
pilot_certification_user_id = #{pilotCertificationUserId}
where requirements_info_id = #{requirementsInfoId} and is_deleted=0
</update>
<update id="deleteSendOrder">
update requirements_service_temp
set is_deleted = 1
where requirements_info_id = #{requirementsInfoId} and is_deleted=0
</update>
<update id="updateOrderRequireNum">
update requirements_info
set repertory = #{num}
where id = #{requireId}
</update>
<insert id="insertAgreePilotOrder">
insert into agree_pilot_order(require_info_id, service_flow_id, pilot_certification_user_id, create_time)
values(#{requireInfoId},#{serviceFlowId},#{pilotCertificationUserId},NOW())
</insert>
<insert id="personSendOrder" useGeneratedKeys="true" keyProperty="id">
insert into requirements_service_temp
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="requirementsInfoId != null">requirements_info_id,</if>
<if test="pilotCertificationId != null">pilot_certification_id,</if>
<if test="pilotCertificationUserId != null">pilot_certification_user_id,</if>
<if test="teamId != null">team_id,</if>
<if test="teamUserId != null">team_user_id</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="requirementsInfoId != null">#{requirementsInfoId,jdbcType=INTEGER},</if>
<if test="pilotCertificationId != null">#{pilotCertificationId,jdbcType=INTEGER},</if>
<if test="pilotCertificationUserId != null">#{pilotCertificationUserId,jdbcType=INTEGER},</if>
<if test="teamId != null">#{teamId,jdbcType=INTEGER},</if>
<if test="teamUserId != null">#{teamUserId,jdbcType=INTEGER}</if>
</trim>
</insert>
<select id="selectServiceIdByRequireIdAndUserId" resultType="java.lang.Integer">
select service_flow_id from agree_pilot_order
......@@ -1847,7 +1907,242 @@
<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>
<select id="selectSendOrderById" resultType="com.mmc.csf.release.entity.information.PersonSendOrderDO">
select *
from requirements_service_temp
where id = #{id} and is_deleted=0
</select>
<select id="isReConfirm" resultType="java.lang.Integer">
select pilot_status
from requirements_service_temp
where id = #{id} and is_deleted = 0
</select>
<select id="mySendOderListCount" resultType="java.lang.Integer">
SELECT
count(*)
FROM
requirements_info ri
LEFT JOIN requirements_type rt ON rt.id = ri.requirement_type_id
LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
LEFT JOIN requirements_amount_update rau ON rau.requirements_info_id = ri.id
INNER JOIN requirements_service_temp rs ON ri.id = rs.requirements_info_id
WHERE rs.pilot_certification_user_id = #{userAccountId} AND rs.is_deleted !=1
<if test=" requirementsInfoId != null ">
and ri.id=#{requirementsInfoId}
</if>
<if test="requireDescription!=null and requireDescription!='' ">
and ri.require_description like CONCAT("%",#{requireDescription},"%")
</if>
</select>
<select id="mySendOderList" resultType="com.mmc.csf.release.entity.requirements.RequirementsInfoDO">
SELECT
ri.id,
rs.id as tempId,
ri.create_time,
ri.task_title,
ri.task_start_time,
ri.task_end_time,
ri.task_address,
ri.longitude,
ri.latitude,
ri.require_url,
ri.require_description,
ri.requirement_type_id,
ri.user_account_id,
rt.type_name AS requirementTypeName,
ri.publish_phone,
ri.publisher_number,
ri.service_id,
ra.total_amount,
ri.insurance,
ri.publish,
ra.order_level,
ra.order_amount,
rau.update_order_amount
FROM
requirements_info ri
LEFT JOIN requirements_type rt ON rt.id = ri.requirement_type_id
# TODO 可能会有问题 删除的
# LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
LEFT JOIN requirements_amount_update rau ON rau.requirements_info_id = ri.id
INNER JOIN requirements_service_temp rs ON ri.id = rs.requirements_info_id
WHERE rs.pilot_certification_user_id = #{userAccountId} AND rs.is_deleted !=1 AND rs.pilot_status = 0
<if test=" requirementsInfoId != null ">
and ri.id=#{requirementsInfoId}
</if>
<if test="requireDescription!=null and requireDescription!='' ">
and ri.require_description like CONCAT("%",#{requireDescription},"%")
</if>
ORDER BY ri.id desc
limit #{pageNo}, #{pageSize}
</select>
<select id="reSendOrder" resultType="java.lang.Integer">
select count(*) from requirements_service_temp where requirements_info_id = #{requireId} and pilot_certification_user_id = #{userAccountId} and is_deleted=0
</select>
<select id="isTeamSendOrder" resultType="java.lang.Integer">
select count(*)
from requirements_service_temp
where requirements_info_id = #{requireId} and team_user_id is not null and is_deleted=0;
</select>
<select id="mySendPublish" resultType="com.mmc.csf.release.entity.requirements.RequirementsInfoDO">
SELECT
ri.id,
rs.id as requireTempId,
ri.task_title,
ri.task_start_time,
ri.task_end_time,
ri.task_address,
ri.longitude,
ri.latitude,
ri.require_url,
ri.require_description,
ri.requirement_type_id,
ri.user_account_id,
rt.type_name AS requirementTypeName,
ri.publish_phone,
ri.publisher_number,
ri.service_id,
ra.total_amount,
ri.insurance,
ra.order_level,
ra.order_amount,
sf.doing,
sf.waiting,
sf.user_port,
sf.flyer_port,
sf.order_status,
ri.publish,
ri.require_num,
rau.update_order_amount,
ri.repertory,
rs.pilot_certification_id,
rs.pilot_certification_user_id,
rs.team_status,
ri.create_time
FROM
requirements_info ri
left join requirements_service_temp rs on ri.id = rs.requirements_info_id
LEFT JOIN requirements_type rt ON rt.id = ri.requirement_type_id
LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
LEFT JOIN requirements_amount_update rau ON rau.requirements_info_id = ri.id
WHERE rs.team_user_id = #{userAccountId} and ri.is_deleted!=1 and rs.is_deleted=0
and father_require_id = 0
and rs.pilot_certification_user_id is null
<if test=" requirementsInfoId != null ">
and ri.id=#{requirementsInfoId}
</if>
<if test="requireDescription!=null and requireDescription!='' ">
and ri.require_description like CONCAT("%",#{requireDescription},"%")
</if>
ORDER BY ri.id desc
limit #{pageNo}, #{pageSize}
</select>
<select id="mySendPublishCount" resultType="java.lang.Integer">
SELECT
count(rs.id)
FROM
requirements_service_temp rs
left join requirements_info ri on ri.id = rs.requirements_info_id
LEFT JOIN requirements_type rt ON rt.id = ri.requirement_type_id
LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
LEFT JOIN requirements_amount_update rau ON rau.requirements_info_id = ri.id
WHERE ri.user_account_id = #{userAccountId} and ri.is_deleted!=1 and rs.is_deleted=0
and father_require_id = 0
and rs.pilot_certification_user_id is null
<if test=" requirementsInfoId != null ">
and ri.id=#{requirementsInfoId}
</if>
<if test="requireDescription!=null and requireDescription!='' ">
and ri.require_description like CONCAT("%",#{requireDescription},"%")
</if>
</select>
<select id="selectAllSuborder" resultType="java.lang.Integer">
select id
from requirements_info
where father_require_id = #{fatherRequireId} and is_deleted = 0
</select>
<select id="selectSenderId" resultType="java.lang.Integer">
select user_account_id
from requirements_info
where id = #{id}
</select>
<select id="selectTempPilotInfoByRequireId"
resultType="com.mmc.csf.release.entity.requirements.RequirementsServicePilotInfoDO">
select pilot_certification_id,pilot_certification_user_id
from requirements_service_temp
where is_deleted != 1
and requirements_info_id = #{requireId}
</select>
<select id="isLootedByPilot" resultType="java.lang.Integer">
select repertory
from requirements_info
where id = #{requireId}
</select>
<select id="isLootedByTeam" resultType="java.lang.Integer">
select count(*)
from requirements_info
where id = #{requireId} and repertory = require_num
</select>
<select id="detailSendPublish" resultType="com.mmc.csf.release.entity.requirements.RequirementsInfoDO">
SELECT ri.id,
rs.id as tempId,
ri.task_title,
ri.task_start_time,
ri.task_end_time,
ri.task_address,
ri.longitude,
ri.latitude,
ri.require_url,
ri.require_description,
ri.requirement_type_id,
ri.user_account_id,
rt.type_name AS requirementTypeName,
ri.publish_phone,
ri.publisher_number,
ri.service_id,
ri.repertory,
ri.require_num,
ri.father_require_id,
ra.total_amount,
ri.insurance,
sf.doing,
sf.waiting,
sf.user_port,
sf.flyer_port,
sf.order_status,
ri.publish,
ra.order_amount,
rau.update_order_amount,
ra.reason,
ra.url,
ra.order_level,
rau.reason AS afterModificationReason,
rau.url AS afterModificationUrl,
rs.pilot_certification_user_id AS pilotCertificationUserId,
rs.pilot_certification_id,
rs.team_status
FROM requirements_info ri
LEFT JOIN requirements_type rt
ON rt.id = ri.requirement_type_id
LEFT JOIN requirements_amount_update rau ON rau.requirements_info_id = ri.id
LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN requirements_service_temp rs ON rs.requirements_info_id = ri.id
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
AND ra.user_account_id = ri.user_account_id
WHERE ri.id = #{id} and rs.is_deleted=0
</select>
<delete id="deleteRequirementsServiceInfo">
delete from requirements_service where requirements_info_id = #{requireId} and pilot_certification_user_id = #{userAccountId}
</delete>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论