提交 88abc79a 作者: 张小凤

PilotCertification(add)

上级 026f1ce8
package com.mmc.iuav.user.model.dto.dronepilot;
import com.alibaba.fastjson2.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @Author small
* @Date 2023/7/29 17:09
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PilotCertificationLogDTO {
@ApiModelProperty(value = "id", example = "1")
private Integer id;
@ApiModelProperty(value = "审批及认证时间", example = "1")
private Date certificationDate;
@ApiModelProperty(value = "申请人员的id", example = "1")
private Integer userAccountId;
@ApiModelProperty(value = "申请人员的账号名称", example = "1")
private String userName;
@ApiModelProperty(value = "申请及审批信息", example = "1")
private String certificationMessage;
@ApiModelProperty(value = "操作人员id", example = "1")
private Integer operatorUserId;
@ApiModelProperty(value = "操作人员账号", example = "1")
private String operatorUserAccount;
@ApiModelProperty(value = "操作人员名称", example = "1")
private String operatorUserName;
@ApiModelProperty(value = "手机号", example = "1")
private String phoneNum;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
package com.mmc.iuav.user.model.qo.dronepilot;
import com.mmc.iuav.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
/**
* @Author small
* @Date 2023/7/29 16:42
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PilotAuditStatusQO {
@ApiModelProperty(value = "飞手认证id", required = true)
@NotNull(message = "审批是不能为空不能为空", groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "0审核中 1审核通过 2审核不通过", required = false, example = "0")
private Integer auditStatus;
@ApiModelProperty(value = "2不通过的原因", required = false, example = "信息不完善")
private String reason;
@ApiModelProperty(value = "审批人", required = false, example = "信息不完善", hidden = true)
private Integer operatorUserId;
}
package com.mmc.iuav.user.model.qo.dronepilot;
import com.mmc.iuav.group.Freeze;
import com.mmc.iuav.group.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author small
* @Date 2023/7/29 17:15
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PilotCertificationLogQO implements Serializable {
@ApiModelProperty(value = "账号筛选(uid,姓名,手机号)", required = false, example = "张三")
private String accountNumber;
@ApiModelProperty(value = "当前页", required = true, example = "1")
@NotNull(message = "当前页不能为空", groups = {Page.class, Freeze.class})
@Min(value = 1, groups = Page.class)
private Integer pageNo;
@ApiModelProperty(value = "页大小", required = true, example = "10")
@NotNull(message = "页大小不能为空", groups = {Page.class, Freeze.class})
@Min(value = 1, groups = Page.class)
private Integer pageSize;
public void buildCurrentPage() {
this.pageNo = (pageNo - 1) * pageSize;
}
}
......@@ -24,7 +24,7 @@ import java.io.Serializable;
public class PilotCertificationQO implements Serializable {
private static final long serialVersionUID = -3729786590325257669L;
@ApiModelProperty(value = "飞手认证id", required = false)
@ApiModelProperty(value = "飞手认证id")
private Integer id;
@ApiModelProperty(value = "地区编码", required = false)
......@@ -37,6 +37,13 @@ public class PilotCertificationQO implements Serializable {
@EnumValue(enumClass = LicenseType.class, message = "取值不合法,参考:LicenseType")
private String licenseType;
@ApiModelProperty(value = "账号筛选(uid,姓名,手机号)", required = false, example = "张三")
private String accountNumber;
@ApiModelProperty(value = "审核是否通过 0审核中 1审核通过 2审核不通过", required = false, example = "0")
private Integer auditStatus;
@ApiModelProperty(value = "当前页", required = true, example = "1")
@NotNull(message = "当前页不能为空", groups = {Page.class, Freeze.class})
@Min(value = 1, groups = Page.class)
......
package com.mmc.iuav.user.model.qo.dronepilot;
import com.mmc.iuav.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author small
* @Date 2023/7/29 16:36
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PilotRemarkQO implements Serializable {
@ApiModelProperty(value = "飞手认证id", required = true)
@NotNull(message = "修改时不能为空", groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "备注", required = false, example = "0")
private String remark;
}
......@@ -74,7 +74,10 @@ public enum ResultEnum implements BaseErrorInfoInterface {
REAL_NAME_PASS_ERROR("36773", "已成功认证"),
PLEASE_ERFORM_REAL_NAME_AUTHENTICATION_FIRST("36774", "请先进行实名认证"),
I_HAVE_APPLIED_FOR_A_PILOT_LICENSE("36775", "已经申请飞手执照及能力认证,请等待审核"),
CAN_NOT_CHANGE_THE_APPLICATION_OF_OTHERS("36776", "不能变更其他人申请的飞手执照及电子认证");
CAN_NOT_CHANGE_THE_APPLICATION_OF_OTHERS("36776", "不能变更其他人申请的飞手执照及电子认证"),
WX_NOT_SEND_MSG_PARAM_ERROR("5029", "userId和openId至少一个不为空"),
APPLET_USER_ACCESS_TOKE_ERROR("5031", "获取accessToken签名校验失败"),
WX_NOT_REL_ERROR("5028", "获取微信公众号用户信息失败");;
/**
* 错误码
......
......@@ -8,7 +8,11 @@ import com.mmc.iuav.user.controller.BaseController;
import com.mmc.iuav.user.model.dto.RoleInfoDTO;
import com.mmc.iuav.user.model.dto.dronepilot.PilotAbilityDTO;
import com.mmc.iuav.user.model.dto.dronepilot.PilotCertificationDTO;
import com.mmc.iuav.user.model.dto.dronepilot.PilotCertificationLogDTO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotAuditStatusQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationLogQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotRemarkQO;
import com.mmc.iuav.user.model.vo.dronepilot.PilotCertificationVO;
import com.mmc.iuav.user.service.dronepilot.PilotCertificationService;
import io.swagger.annotations.*;
......@@ -56,11 +60,58 @@ public class PilotCertificationController extends BaseController {
@ApiOperation(value = "小程序——列表————飞手执照及能力认证")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = PilotCertificationDTO.class)})
@PostMapping("/detailPilot")
@PostMapping("/listPilot")
public ResultBody<PilotCertificationDTO> pilotList(HttpServletRequest request,
@Validated(value = {Page.class}) @ApiParam(value = "飞手查询", required = true) @RequestBody PilotCertificationQO param) {
return ResultBody.success(certificationService.pilotList(param, this.getUserLoginInfoFromRedis(request)));
}
@ApiOperation(value = "小程序——详情————飞手执照及能力认证")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = PilotCertificationDTO.class)})
@PostMapping("/detailPilot")
public ResultBody<PilotCertificationDTO> detailPilot(HttpServletRequest request, @RequestParam(value = "id", required = true) Integer id) {
return ResultBody.success(certificationService.detailPilot(id));
}
@ApiOperation(value = "后台管理——列表————飞手执照及能力认证")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = PilotCertificationDTO.class)})
@PostMapping("/backListPilot")
public ResultBody<PilotCertificationDTO> backListPilot(HttpServletRequest request,
@Validated(value = {Page.class}) @ApiParam(value = "飞手查询", required = true) @RequestBody PilotCertificationQO param) {
return ResultBody.success(certificationService.backListPilot(param, this.getUserLoginInfoFromRedis(request)));
}
@ApiOperation(value = "后台管理——详情————飞手执照及能力认证")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = PilotCertificationDTO.class)})
@PostMapping("/backDetailPilot")
public ResultBody<PilotCertificationDTO> backDetailPilot(HttpServletRequest request, @RequestParam(value = "id", required = true) Integer id) {
return ResultBody.success(certificationService.detailPilot(id));
}
@ApiOperation(value = "后台管理——修改备注————飞手执照及能力认证")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = PilotCertificationDTO.class)})
@PostMapping("/updateRemark")
public ResultBody updateRemark(HttpServletRequest request, @Validated(value = {Update.class}) @ApiParam(value = "修改备注", required = true) @RequestBody PilotRemarkQO param) {
return certificationService.updateRemark(param, this.getUserLoginInfoFromRedis(request));
}
@ApiOperation(value = "后台管理——审批————飞手执照及能力认证")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = PilotCertificationDTO.class)})
@PostMapping("/updateAuditStatus")
public ResultBody updateAuditStatus(HttpServletRequest request, @Validated(value = {Update.class}) @ApiParam(value = "修改审批状态", required = true) @RequestBody PilotAuditStatusQO param) {
return certificationService.updateAuditStatus(param, this.getUserLoginInfoFromRedis(request));
}
@ApiOperation(value = "后台管理——日志列表————飞手执照及能力认证")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = PilotCertificationDTO.class)})
@PostMapping("/backPilotLogList")
public ResultBody<PilotCertificationLogDTO> backPilotLogList(HttpServletRequest request,
@Validated(value = {Page.class}) @ApiParam(value = "飞手查询", required = true) @RequestBody PilotCertificationLogQO param) {
return ResultBody.success(certificationService.backPilotLogList(param, this.getUserLoginInfoFromRedis(request)));
}
}
package com.mmc.iuav.user.controller.wx;
import com.alibaba.fastjson2.JSONObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Author small
* @Date 2023/7/31 11:00
* @Version 1.0
*/
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AppletMsgVOS implements Serializable {
private static final long serialVersionUID = 2124104608303700492L;
@ApiModelProperty(value = "openid")
@NotBlank
private String touser;
@ApiModelProperty(value = "模板ID")
@NotBlank
private String template_id;
@ApiModelProperty(value = "点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。")
private String page;
@ApiModelProperty(value = "模板内容")
private JSONObject data;
@ApiModelProperty(value = "跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版")
private String miniprogram_state;
@ApiModelProperty(value = "默认为zh_CN")
private String lang;
}
package com.mmc.iuav.user.controller.wx;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
/**
* @Author small
* @Date 2023/7/31 11:05
* @Version 1.0
*/
public class HttpsOpenUtil {
/**
* http请求
*
* @param url 发送请求的URL
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return URL 所代表远程资源的响应结果
* @category 向指定URL发送GET方法的请求
*/
public static String httpSendGet(String url, String param) {
String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
Map<String, List<String>> map = connection.getHeaderFields();
// 遍历所有的响应头字段
// for (String key : map.keySet()) {
// System.out.println(key + "--->" + map.get(key));
// }
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
/**
* http请求
*
* @param url 发送请求的 URL
* @return 所代表远程资源的响应结果
* @category 向指定URL 发送POST方法的请求
*/
public static String httpSendPost(String url, String param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输出流、输入流
finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
}
}
package com.mmc.iuav.user.controller.wx;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
/**
* @Author small
* @Date 2023/7/31 11:04
* @Version 1.0
*/
public class JsonUtil {
/**
* 把Java对象转换成json字符串
*
* @param object 待转化为JSON字符串的Java对象
* @return json 串 or null
*/
public static String parseObjToJson(Object object) {
String string = null;
try {
string = JSONObject.toJSONString(object);
} catch (Exception e) {
// LOGGER.error(e.getMessage());
}
return string;
}
/**
* 将Json字符串信息转换成对应的Java对象
*
* @param json json字符串对象
* @param c 对应的类型
*/
public static <T> T parseJsonToObj(String json, Class<T> c) {
try {
JSONObject jsonObject = JSON.parseObject(json);
return JSON.toJavaObject(jsonObject, c);
} catch (Exception e) {
// LOGGER.error(e.getMessage());
}
return null;
}
}
package com.mmc.iuav.user.controller.wx;
import com.alibaba.fastjson2.JSONObject;
import java.security.MessageDigest;
import java.util.Arrays;
import java.util.Map;
/**
* @Author small
* @Date 2023/7/31 11:03
* @Version 1.0
*/
public class WxApiUtilS {
// 与接口配置信息中的Token要一致
private static final String token = "MMCDingYueHaoToken2020";
public static boolean checkSignature(String signature, String timestrap, String nonce) {
String[] arr = new String[]{token, timestrap, nonce};
// 将token、timestamp、nonce三个参数进行字典序排序
Arrays.sort(arr);
StringBuffer buf = new StringBuffer();
for (int i = 0; i < arr.length; i++) {
buf.append(arr[i]);
}
String temp = getSha1(buf.toString());
return temp.equals(signature);
}
public static String getSha1(String str) {
if (null == str || str.length() == 0) {
return null;
}
char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
try {
MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
mdTemp.update(str.getBytes("UTF-8"));
byte[] md = mdTemp.digest();
int j = md.length;
char[] buf = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byTemp = md[i];
buf[k++] = hexDigits[byTemp >>> 4 & 0xf];
buf[k++] = hexDigits[byTemp & 0xf];
}
return new String(buf);
} catch (Exception e) {
return null;
}
}
/**
* 截取模板长度
*/
public static JSONObject buildMsgJson(JSONObject jsonObject) {
for (Map.Entry<String, Object> entry : jsonObject.entrySet()) {
if (entry.getKey().startsWith("thing") && entry.getValue() != null) {
String json = JsonUtil.parseObjToJson(entry.getValue());
JSONObject obj = JSONObject.parseObject(json);
String str = obj.getString("value");
if (str.length() > 20) {
obj.put("value", str.substring(0, 17) + "...");
entry.setValue(obj);
}
}
if (entry.getKey().startsWith("phrase") && entry.getValue() != null) {
String json = JsonUtil.parseObjToJson(entry.getValue());
JSONObject obj = JSONObject.parseObject(json);
String str = obj.getString("value");
if (str.length() > 5) {
obj.put("value", str.substring(0, 5));
entry.setValue(obj);
}
}
if (entry.getKey().startsWith("character_string") && entry.getValue() != null) {
String json = JsonUtil.parseObjToJson(entry.getValue());
JSONObject obj = JSONObject.parseObject(json);
String str = obj.getString("value");
if (str.length() > 32) {
obj.put("value", str.substring(0, 29) + "...");
entry.setValue(obj);
}
}
}
return jsonObject;
}
}
package com.mmc.iuav.user.controller.wx;
/**
* @Author small
* @Date 2023/7/31 10:20
* @Version 1.0
*/
public class WxMsgTemplete {
/**
* 审核飞手电子执照
*/
public static final String FW_CHECK_FLYER_AUTH_INFO = "skdKu9QngIiUq6lLZQTGNPqJXyJHI6UYCIBLAPddtDY";
}
package com.mmc.iuav.user.dao.dronepilot;
import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.entity.dronepilot.PilotAbilityDO;
import com.mmc.iuav.user.entity.dronepilot.PilotCertificationDO;
import com.mmc.iuav.user.entity.dronepilot.PilotCertificationLogDO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotAuditStatusQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationLogQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotRemarkQO;
import com.mmc.iuav.user.model.vo.dronepilot.PilotAbilityVO;
import org.apache.ibatis.annotations.Mapper;
......@@ -38,4 +42,13 @@ public interface PilotCertificationDao {
List<PilotAbilityVO> selectAbilityList(Integer pilotCertificationId);
PilotCertificationDO detailPilot(Integer id);
void updateRemark(PilotRemarkQO param);
void updateAuditStatus(PilotAuditStatusQO param);
UserAccountDO selectUserAccountId(PilotAuditStatusQO param);
List<PilotCertificationLogDO> backPilotLogList(PilotCertificationLogQO param);
}
......@@ -63,6 +63,10 @@ public class UserAccountDO implements Serializable {
* 用户加盟标签
*/
private List<CooperationTagDO> cooperationTagDOS;
/**
* 审核用户
*/
private String operatorUserName;
public UserAccountDO(UserAccountVO userAccountVO) {
this.id = userAccountVO.getId();
......
package com.mmc.iuav.user.entity.dronepilot;
import com.alibaba.fastjson2.annotation.JSONField;
import com.mmc.iuav.user.model.dto.dronepilot.PilotCertificationLogDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
......@@ -30,12 +32,46 @@ public class PilotCertificationLogDO {
private String certificationMessage;
@ApiModelProperty(value = "操作人员id", example = "1")
private Integer operatorUserId;
@ApiModelProperty(value = "申请人员的账号名称", example = "1")
private String userName;
@ApiModelProperty(value = "手机号", example = "1")
private String phoneNum;
@ApiModelProperty(value = "操作人员账号", example = "1")
private String operatorUserAccount;
@ApiModelProperty(value = "操作人员名称", example = "1")
private String operatorUserName;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
public PilotCertificationLogDO(PilotCertificationDO pilotCertificationDO, CertificationMessage certificationMessage) {
this.userAccountId = pilotCertificationDO.getUserAccountId();
this.certificationMessage = certificationMessage.getMessage();
}
public PilotCertificationLogDO(Integer userAccountId, Integer operatorUserId, CertificationMessage certificationMessage) {
this.userAccountId = userAccountId;
this.operatorUserId = operatorUserId;
this.certificationMessage = certificationMessage.getMessage();
}
public PilotCertificationLogDTO buildPlotCertificationLogDTO() {
return PilotCertificationLogDTO.builder()
.id(this.id)
.certificationDate(this.certificationDate)
.userAccountId(this.userAccountId)
.certificationMessage(this.certificationMessage)
.operatorUserId(this.operatorUserId)
.userName(this.userName)
.phoneNum(this.phoneNum)
.operatorUserAccount(this.operatorUserAccount)
.operatorUserName(this.operatorUserAccount)
.createTime(this.createTime)
.updateTime(this.updateTime)
.build();
}
}
......@@ -4,7 +4,11 @@ import com.mmc.iuav.page.PageResult;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.dto.dronepilot.PilotAbilityDTO;
import com.mmc.iuav.user.model.dto.dronepilot.PilotCertificationDTO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotAuditStatusQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationLogQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotRemarkQO;
import com.mmc.iuav.user.model.vo.dronepilot.PilotCertificationVO;
/**
......@@ -22,4 +26,15 @@ public interface PilotCertificationService {
PageResult pilotList(PilotCertificationQO param, LoginSuccessDTO userLoginInfoFromRedis);
PilotCertificationDTO detailPilot(Integer id);
PageResult backListPilot(PilotCertificationQO param, LoginSuccessDTO userLoginInfoFromRedis);
ResultBody updateRemark(PilotRemarkQO param, LoginSuccessDTO userLoginInfoFromRedis);
ResultBody updateAuditStatus(PilotAuditStatusQO param, LoginSuccessDTO userLoginInfoFromRedis);
PageResult backPilotLogList(PilotCertificationLogQO param, LoginSuccessDTO userLoginInfoFromRedis);
}
......@@ -72,9 +72,10 @@
</insert>
<insert id="insertPilotLog" parameterType="com.mmc.iuav.user.entity.dronepilot.PilotCertificationLogDO">
insert into pilot_certification_log(certification_date, user_account_id, certification_message, create_time,
insert into pilot_certification_log(certification_date, user_account_id, operator_user_id,
certification_message, create_time,
update_time)
values (NOW(), #{userAccountId}, #{certificationMessage}, NOW(), NOW())
values (NOW(), #{userAccountId}, #{operatorUserId}, #{certificationMessage}, NOW(), NOW())
</insert>
<select id="selectPilotCertification" resultType="java.lang.Integer">
......@@ -132,7 +133,8 @@
</select>
<select id="pilotList" resultMap="pilotList">
SELECT pc.id,
SELECT
pc.id,
pc.license_type,
pc.license_number,
pc.license_url,
......@@ -149,17 +151,116 @@
pc.update_time,
rna.user_name,
rna.birthday,
rna.sex
FROM pilot_certification pc
rna.sex ,
ua.phone_num
FROM
pilot_certification pc
LEFT JOIN real_name_auth rna ON pc.user_account_id = rna.user_account_id
where 1=1
left join user_account ua on pc.user_account_id=ua.id
WHERE
1 =1
<if test=" areaNumber != null and areaNumber != '' ">
and (pc.license_number =#{areaNumber})
and pc.area_number =#{areaNumber}
</if>
<if test=" id != null ">
and pc.id =#{id}
</if>
<if test=" licenseType != null and licenseType != '' ">
and (pc.license_type =#{licenseType})
and pc.license_type =#{licenseType}
</if>
<if test=" auditStatus != null and auditStatus != '' ">
and pc.audit_status =#{auditStatus}
</if>
<if test="accountNumber != null and accountNumber != '' ">
and ( pc.user_account_id like concat('%',#{accountNumber},'%')
or rna.user_name like concat('%',#{accountNumber},'%')
or ua.phone_num like concat('%',#{accountNumber},'%'))
</if>
order by pc.update_time desc, pc.create_time desc
</select>
<select id="detailPilot" resultMap="pilotList">
SELECT pc.id,
pc.license_type,
pc.license_number,
pc.license_url,
pc.area_number,
pc.years_of_working,
pc.ability_url,
pc.individual_resume,
pc.audit_status,
pc.user_account_id,
pc.time_of_application,
pc.remark,
pc.resident_city,
pc.create_time,
pc.update_time,
rna.user_name,
rna.birthday,
rna.sex
FROM pilot_certification pc
LEFT JOIN real_name_auth rna ON pc.user_account_id = rna.user_account_id
where pc.id = #{id}
</select>
<update id="updateRemark" parameterType="com.mmc.iuav.user.model.qo.dronepilot.PilotRemarkQO">
UPDATE pilot_certification
<set>
remark = #{remark},
update_time=NOW()
</set>
where id = #{id}
</update>
<update id="updateAuditStatus" parameterType="com.mmc.iuav.user.model.qo.dronepilot.PilotAuditStatusQO">
UPDATE pilot_certification
<set>
audit_status = #{auditStatus},
reason=#{reason},
operator_user_id=#{operatorUserId},
update_time=NOW()
</set>
where id = #{id}
</update>
<select id="selectUserAccountId" resultType="com.mmc.iuav.user.entity.UserAccountDO">
SELECT pc.user_account_id,
ua.union_id,
ua.open_id,
bua.user_name AS operatorUserName,
rna.user_name
FROM pilot_certification pc
LEFT JOIN real_name_auth rna ON pc.user_account_id = rna.user_account_id
LEFT JOIN user_account ua ON ua.id = pc.user_account_id
LEFT JOIN back_user_account bua ON bua.id = pc.operator_user_id
WHERE pc.id = #{id}
</select>
<select id="backPilotLogList" resultType="com.mmc.iuav.user.entity.dronepilot.PilotCertificationLogDO">
SELECT
pcl.id,
pcl.certification_date AS certificationDate,
pcl.user_account_id AS userAccountId,
pcl.certification_message AS certificationMessage,
pcl.operator_user_id AS operatorUserId,
pcl.create_time AS createTime,
pcl.update_time AS updateTime,
rna.user_name AS userName,
ua.phone_num AS phoneNum,
nua.account_no AS operatorUserAccount,
nua.user_name AS operatorUserName
FROM
pilot_certification_log pcl
INNER JOIN user_account ua ON pcl.user_account_id = ua.id
INNER JOIN real_name_auth rna ON rna.user_account_id = ua.id
LEFT JOIN back_user_account nua ON nua.id = pcl.operator_user_id
where 1=1
<if test="accountNumber != null and accountNumber != '' ">
and ( pcl.user_account_id like concat('%',#{accountNumber},'%')
or rna.user_name like concat('%',#{accountNumber},'%')
or ua.phone_num like concat('%',#{accountNumber},'%'))
</if>
order by update_time desc, create_time desc
limit #{pageNo},#{pageSize}
order by pcl.create_time desc
</select>
</mapper>
......@@ -24,3 +24,5 @@ data-filter:
- /userapp/cooperation/service/bitmap
- /userapp/cooperation/appBrandList
- /userapp/cooperation/appBrandMessage
- /userapp/pilot/listPilot
- /userapp/pilot/detailPilot
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论