提交 fd0158f1 作者: zhenjie

用户企业认证、加盟相关功能

上级 a9b4db51
...@@ -20,10 +20,6 @@ public class AppUserSucVO implements Serializable { ...@@ -20,10 +20,6 @@ public class AppUserSucVO implements Serializable {
private static final long serialVersionUID = 7491711282161485720L; private static final long serialVersionUID = 7491711282161485720L;
@ApiModelProperty(value = "用户id") @ApiModelProperty(value = "用户id")
private Integer userAccountId; private Integer userAccountId;
@ApiModelProperty(value = "openId")
private String openId;
@ApiModelProperty(value = "unionId")
private String unionId;
@ApiModelProperty(value = "token") @ApiModelProperty(value = "token")
private String token; private String token;
} }
package com.mmc.iuav.user.model.vo; package com.mmc.iuav.user.model.vo;
import com.mmc.iuav.group.Insert;
import com.mmc.iuav.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 13:42 * @Date: 2023/5/17 13:42
*/ */
public class CompanyAuthVO { @Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CompanyAuthVO implements Serializable {
private static final long serialVersionUID = 3584743219477515646L;
@ApiModelProperty(value = "id")
@NotNull(message = "id创建修改不能为空", groups = { Update.class })
private Integer id;
@ApiModelProperty(value = "用户id")
@NotNull(message = "用户id不能为空", groups = { Insert.class, Update.class})
private Integer userAccountId;
@ApiModelProperty(value = "企业名称")
@NotBlank(message = "企业名称", groups = { Insert.class, Update.class})
private String companyName;
@ApiModelProperty(value = "统一社会信用代码")
@NotBlank(message = "统一社会信用代码", groups = { Insert.class, Update.class})
private String creditCode;
@ApiModelProperty(value = "营业执照")
@NotBlank(message = "营业执照", groups = { Insert.class, Update.class })
private String licenseImg;
@ApiModelProperty(value = "企业认证状态,0未通过,1已通过")
private Integer authStatus;
} }
package com.mmc.iuav.user.model.vo; package com.mmc.iuav.user.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 21:27 * @Date: 2023/5/17 21:27
*/ */
public class CooperationTagVO { @Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CooperationTagVO implements Serializable {
private static final long serialVersionUID = 8884567706797525506L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "合作标签名称")
private String tagName;
@ApiModelProperty(value = "合作标签img")
private String tagImg;
@ApiModelProperty(value = "合作标签描述")
private String tagDescription;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
} }
package com.mmc.iuav.user.model.vo; package com.mmc.iuav.user.model.vo;
import com.mmc.iuav.group.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/16 21:18 * @Date: 2023/5/16 21:18
*/ */
public class UserAccountDTO { @Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel(value = "com.mmc.iuav.user.model.vo.UserAccountVO", description = "用户信息")
public class UserAccountVO implements Serializable {
private static final long serialVersionUID = 7067111726018678883L;
@ApiModelProperty(value = "用户id")
@NotNull(message = "用户id不能为空",groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "用户类型")
private Integer accountType;
@ApiModelProperty(value = "用户uid")
private String uid;
@ApiModelProperty(value = "手机号")
private String phoneNum;
@ApiModelProperty(value = "用户名称")
private String userName;
@ApiModelProperty(value = "用户昵称")
private String nickName;
@ApiModelProperty(value = "用户头像")
private String userImg;
@ApiModelProperty(value = "用户性别:0未知、1男、2女")
private Integer userSex;
@ApiModelProperty(value = "用户邮箱")
@Email
private String email;
@ApiModelProperty(value = "用户来源,0自然流、1海报、2抖音、3公众号、4社群、5招投标、6官网")
private Integer source;
@ApiModelProperty(value = "用户可用状态:0禁用、1可用")
private Integer accountStatus;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "账号类型:0后台管理账号 ; 100云享飞-客户端;")
private Integer portType;
@ApiModelProperty(value = "注册时间")
private Date createTime;
} }
package com.mmc.iuav.user.model.vo; package com.mmc.iuav.user.model.vo;
import com.mmc.iuav.group.Insert;
import com.mmc.iuav.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 22:02 * @Date: 2023/5/17 22:02
*/ */
public class UserApplyTagVO { @Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserApplyTagVO implements Serializable {
private static final long serialVersionUID = -1004953417393220972L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "加盟标签id")
@NotNull(message = "加盟标签id不能为空", groups = { Insert.class })
private Integer cooperationTagId;
@ApiModelProperty(value = "用户id")
@NotNull(message = "加盟标签id不能为空", groups = { Insert.class })
private Integer userAccountId;
@ApiModelProperty(value = "申请人名称")
@NotBlank(message = "申请人名称不能为空", groups = { Insert.class })
private String applyName;
@ApiModelProperty(value = "申请人手机号")
@NotBlank(message = "申请人手机号不能为空", groups = { Insert.class })
private String applyPhone;
@ApiModelProperty(value = "申请审核状态")
private Integer applyStatus;
@ApiModelProperty(value = "备注")
private String remark;
} }
...@@ -24,9 +24,9 @@ public class WxLoginVO implements Serializable { ...@@ -24,9 +24,9 @@ public class WxLoginVO implements Serializable {
@ApiModelProperty(value = "请求code") @ApiModelProperty(value = "请求code")
@NotNull(message = "code不能为空", groups = {Insert.class}) @NotNull(message = "code不能为空", groups = {Insert.class})
private String code; private String code;
@ApiModelProperty(value = "登录来源, 0小程序登录, 1pc登录", example = "0", allowableValues = "0,1") @ApiModelProperty(value = "登录来源, 0小程序登录, 1pc扫码登录", example = "0", allowableValues = "0,1")
@NotNull(message = "登录来源不能为空", groups = {Insert.class}) @NotNull(message = "登录来源不能为空", groups = {Insert.class})
private Integer fromPort; private Integer fromPort;
@ApiModelProperty(value = "用户来源:0自然流,1海报,2抖音,3公众号,4社群,5招投标,默认0", example = "0", required = true) @ApiModelProperty(value = "用户来源:0自然流,1海报,2抖音,3公众号,4社群,5招投标,默认0", example = "0")
private Integer source; private Integer source;
} }
package com.mmc.csf.common.util.web; package com.mmc.iuav.http;
import org.apache.http.Header; import org.apache.http.Header;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
...@@ -27,13 +27,17 @@ import java.security.cert.X509Certificate; ...@@ -27,13 +27,17 @@ import java.security.cert.X509Certificate;
import static java.lang.System.out; import static java.lang.System.out;
/**
* @author zj
*/
public class HttpHelper { public class HttpHelper {
// get 请求 // get 请求
public static String httpGet(String url, Header[] headers) throws Exception { public static String httpGet(String url, Header[] headers) throws Exception {
HttpUriRequest uriRequest = new HttpGet(url); HttpUriRequest uriRequest = new HttpGet(url);
if (null != headers) if (null != headers) {
uriRequest.setHeaders(headers); uriRequest.setHeaders(headers);
}
CloseableHttpClient httpClient = null; CloseableHttpClient httpClient = null;
try { try {
httpClient = declareHttpClientSSL(url); httpClient = declareHttpClientSSL(url);
...@@ -46,8 +50,9 @@ public class HttpHelper { ...@@ -46,8 +50,9 @@ public class HttpHelper {
} catch (IOException e) { } catch (IOException e) {
out.println(String.format("IO Exception,uri{%s},exception{%s}", new Object[] { url, e })); out.println(String.format("IO Exception,uri{%s},exception{%s}", new Object[] { url, e }));
} finally { } finally {
if (null != httpClient) if (null != httpClient) {
httpClient.close(); httpClient.close();
}
} }
return null; return null;
} }
...@@ -73,8 +78,9 @@ public class HttpHelper { ...@@ -73,8 +78,9 @@ public class HttpHelper {
} catch (IOException e) { } catch (IOException e) {
out.println(String.format("IO Exception,uri{%s},exception{%s}", new Object[] { url, e })); out.println(String.format("IO Exception,uri{%s},exception{%s}", new Object[] { url, e }));
} finally { } finally {
if (null != httpClient) if (null != httpClient) {
httpClient.close(); httpClient.close();
}
} }
return null; return null;
} }
...@@ -89,20 +95,22 @@ public class HttpHelper { ...@@ -89,20 +95,22 @@ public class HttpHelper {
/** /**
* 设置SSL请求处理 * 设置SSL请求处理
* *
* @param httpClient
*/ */
private static CloseableHttpClient sslClient() { private static CloseableHttpClient sslClient() {
try { try {
SSLContext ctx = SSLContext.getInstance("TLS"); SSLContext ctx = SSLContext.getInstance("TLS");
X509TrustManager tm = new X509TrustManager() { X509TrustManager tm = new X509TrustManager() {
@Override
public X509Certificate[] getAcceptedIssuers() { public X509Certificate[] getAcceptedIssuers() {
return null; return null;
} }
@Override
public void checkClientTrusted(X509Certificate[] xcs, String str) { public void checkClientTrusted(X509Certificate[] xcs, String str) {
} }
@Override
public void checkServerTrusted(X509Certificate[] xcs, String str) { public void checkServerTrusted(X509Certificate[] xcs, String str) {
} }
}; };
......
...@@ -9,6 +9,10 @@ public enum ResultEnum implements BaseErrorInfoInterface{ ...@@ -9,6 +9,10 @@ public enum ResultEnum implements BaseErrorInfoInterface{
FAIL("500", "fail"), FAIL("500", "fail"),
PARAM_ERROR("400", "参数错误"), PARAM_ERROR("400", "参数错误"),
//企业认证
BUSINESS_LICENSE_CHECK_ANALYSIS_ERROR("1000", "营业执照解析失败,请上传有效清晰的执照"),
BUSINESS_LICENSE_CHECK_PARAMETER_ERROR("30401", "企业信息与营业执照信息不一致,请重新上传"),
APPLET_PORT_TYPE_ERROR("7001", "小程序端口类型错误"), APPLET_PORT_TYPE_ERROR("7001", "小程序端口类型错误"),
APPLET_LOGIN_ERROR("7002", "获取小程序登录失败"); APPLET_LOGIN_ERROR("7002", "获取小程序登录失败");
...@@ -33,11 +37,11 @@ public enum ResultEnum implements BaseErrorInfoInterface{ ...@@ -33,11 +37,11 @@ public enum ResultEnum implements BaseErrorInfoInterface{
@Override @Override
public String getResultCode() { public String getResultCode() {
return null; return this.resultCode;
} }
@Override @Override
public String getResultMsg() { public String getResultMsg() {
return null; return this.resultMsg;
} }
} }
...@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.*;
* @author: zj * @author: zj
* @Date: 2023/5/15 15:50 * @Date: 2023/5/15 15:50
*/ */
@Api(tags = "登录") @Api(tags = "登录授权")
@RequestMapping("/auth/") @RequestMapping("/auth/")
@RestController @RestController
public class AuthController { public class AuthController {
...@@ -28,5 +28,4 @@ public class AuthController { ...@@ -28,5 +28,4 @@ public class AuthController {
public ResultBody appletLogin(@Validated(value = {Insert.class})@RequestBody WxLoginVO wxLoginVO){ public ResultBody appletLogin(@Validated(value = {Insert.class})@RequestBody WxLoginVO wxLoginVO){
return authService.appletLogin(wxLoginVO); return authService.appletLogin(wxLoginVO);
} }
} }
package com.mmc.iuav.user.controller; package com.mmc.iuav.user.controller;
import com.mmc.iuav.group.Insert;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.vo.AppUserSucVO;
import com.mmc.iuav.user.model.vo.CompanyAuthVO;
import com.mmc.iuav.user.model.vo.WxLoginVO;
import com.mmc.iuav.user.service.CompanyAuthService;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 13:33 * @Date: 2023/5/17 13:33
*/ */
@Api(tags = "企业认证相关")
@RequestMapping("/company-auth/")
@RestController
public class CompanyAuthController { public class CompanyAuthController {
@Autowired
private CompanyAuthService companyAuthService;
@ApiOperation(value = "提交企业认证")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@PostMapping("add")
public ResultBody add(@Validated(value = {Insert.class})@RequestBody CompanyAuthVO companyAuthVO){
return companyAuthService.add(companyAuthVO);
}
@ApiOperation(value = "企业工商模糊搜索")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@GetMapping("fuzzyQueryCompany")
public ResultBody fuzzyQueryCompany(@ApiParam(value = "企业名称", required = true) @RequestParam String searchKey) {
return companyAuthService.fuzzyQueryCompany(searchKey);
}
} }
package com.mmc.iuav.user.controller; package com.mmc.iuav.user.controller;
import com.mmc.iuav.group.Insert;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.vo.CompanyAuthVO;
import com.mmc.iuav.user.model.vo.CooperationTagVO;
import com.mmc.iuav.user.model.vo.UserApplyTagVO;
import com.mmc.iuav.user.service.CooperationService;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 21:17 * @Date: 2023/5/17 21:17
*/ */
@Api(tags = "合作加盟")
@RequestMapping("/cooperation/")
@RestController
public class CooperationController { public class CooperationController {
@Autowired
private CooperationService cooperationService;
@ApiOperation(value = "加盟标签列表")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@GetMapping("listTag")
public ResultBody listTag() {
return cooperationService.listTag();
}
@ApiOperation(value = "申请加盟")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@PostMapping("apply")
public ResultBody apply(@Validated(value = {Insert.class})@RequestBody UserApplyTagVO userApplyTagVO){
return cooperationService.apply(userApplyTagVO);
}
} }
package com.mmc.iuav.user.controller; package com.mmc.iuav.user.controller;
import com.mmc.iuav.group.Insert;
import com.mmc.iuav.group.Update;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.vo.AppUserSucVO;
import com.mmc.iuav.user.model.vo.UserAccountVO;
import com.mmc.iuav.user.model.vo.WxLoginVO;
import com.mmc.iuav.user.service.UserAccountService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping; import io.swagger.annotations.ApiResponse;
import org.springframework.web.bind.annotation.RequestMapping; import io.swagger.annotations.ApiResponses;
import org.springframework.web.bind.annotation.RestController; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/** /**
* @author:zhenjie * @author: zj
* @Date:2023/5/15 15:32 * @Date: 2023/5/15 15:32
*/ */
@Api(tags = "账号相关接口") @Api(tags = "账号相关接口")
@RequestMapping("/user-account/") @RequestMapping("/user-account/")
@RestController @RestController
public class UserAccountController { public class UserAccountController {
@Autowired
private UserAccountService userAccountService;
@ApiOperation(value = "获取用户信息") @ApiOperation(value = "获取用户信息")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = UserAccountVO.class) })
@GetMapping("info") @GetMapping("info")
public String info(){ public UserAccountVO info(@RequestParam Integer userAccountId){
return "account"; return userAccountService.getUserAccountById(userAccountId);
}
@ApiOperation(value = "修改用户信息")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@PostMapping("update")
public ResultBody update(@Validated(value = {Update.class})@RequestBody UserAccountVO userAccountVO){
return userAccountService.update(userAccountVO);
} }
} }
package com.mmc.iuav.user.controller; package com.mmc.iuav.user.controller;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 11:16 * @Date: 2023/5/17 11:16
*/ */
@Api(tags = "微信相关接口")
@RequestMapping("/wx/")
@RestController
public class WxController { public class WxController {
} }
package com.mmc.iuav.user.dao; package com.mmc.iuav.user.dao;
import com.mmc.iuav.user.entity.CompanyAuthDO;
import org.apache.ibatis.annotations.Mapper;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 13:38 * @Date: 2023/5/17 13:38
*/ */
@Mapper
public interface CompanyAuthDao { public interface CompanyAuthDao {
/**
* 通过用户id获取企业认证信息
* @param userAccountId
* @return
*/
CompanyAuthDO getCompanyAuth(Integer userAccountId);
/**
* 添加企业认证信息
* @param companyAuthDO
*/
void addCompanyAuth(CompanyAuthDO companyAuthDO);
} }
package com.mmc.iuav.user.dao; package com.mmc.iuav.user.dao;
import com.mmc.iuav.user.entity.CooperationTagDO;
import com.mmc.iuav.user.entity.UserApplyTagDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 21:20 * @Date: 2023/5/17 21:20
*/ */
@Mapper
public interface CooperationDao { public interface CooperationDao {
/**
* 加盟标签列表
* @return
*/
List<CooperationTagDO> listTags();
/**
* 加盟申请
* @param userApplyTagDO
*/
void addApply(UserApplyTagDO userApplyTagDO);
} }
...@@ -21,4 +21,17 @@ public interface UserServiceDao { ...@@ -21,4 +21,17 @@ public interface UserServiceDao {
* @param userAccountDO * @param userAccountDO
*/ */
void insertUserAccount(UserAccountDO userAccountDO); void insertUserAccount(UserAccountDO userAccountDO);
/**
* 根据用户id查询用户信息
* @param userAccountId
* @return
*/
UserAccountDO getUserAccountById(Integer userAccountId);
/**
* 修改用户信息
* @param userAccountDO
*/
void update(UserAccountDO userAccountDO);
} }
package com.mmc.iuav.user.entity; package com.mmc.iuav.user.entity;
import com.mmc.iuav.user.model.vo.CompanyAuthVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 14:22 * @Date: 2023/5/17 14:22
*/ */
public class CompanyAuthDO { @Data
@NoArgsConstructor
@AllArgsConstructor
public class CompanyAuthDO implements Serializable {
private static final long serialVersionUID = -9166003341814537635L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "用户id")
private Integer userAccountId;
@ApiModelProperty(value = "企业名称")
private String companyName;
@ApiModelProperty(value = "统一社会信用代码")
private String creditCode;
@ApiModelProperty(value = "营业执照")
private String licenseImg;
@ApiModelProperty(value = "企业认证状态,0未通过,1已通过")
private Integer authStatus;
public CompanyAuthDO(CompanyAuthVO companyAuthVO) {
this.userAccountId = companyAuthVO.getUserAccountId();
this.companyName = companyAuthVO.getCompanyName();
this.creditCode = companyAuthVO.getCreditCode();
this.licenseImg = companyAuthVO.getLicenseImg();
}
} }
package com.mmc.iuav.user.entity; package com.mmc.iuav.user.entity;
import com.mmc.iuav.user.model.vo.CooperationTagVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 21:24 * @Date: 2023/5/17 21:24
*/ */
public class CooperationTagDO { @Data
@NoArgsConstructor
@AllArgsConstructor
public class CooperationTagDO implements Serializable {
private static final long serialVersionUID = 4469387912588336014L;
private Integer id;
private String tagName;
private String tagImg;
private String tagDescription;
private Date createTime;
public CooperationTagVO buildCooperationTagVO(){
return CooperationTagVO.builder()
.id(id)
.tagName(tagName)
.tagImg(tagImg)
.tagDescription(tagDescription)
.createTime(createTime)
.build();
}
} }
package com.mmc.iuav.user.entity; package com.mmc.iuav.user.entity;
import com.mmc.iuav.user.model.vo.UserAccountVO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
...@@ -34,4 +35,23 @@ public class UserAccountDO implements Serializable { ...@@ -34,4 +35,23 @@ public class UserAccountDO implements Serializable {
private Integer deleted; private Integer deleted;
private Date createTime; private Date createTime;
private Date updateTime; private Date updateTime;
public UserAccountDO(UserAccountVO userAccountVO) {
this.id = userAccountVO.getId();
this.phoneNum = userAccountVO.getPhoneNum();
this.userName = userAccountVO.getUserName();
this.nickName = userAccountVO.getNickName();
this.userImg = userAccountVO.getUserImg();
this.userSex = userAccountVO.getUserSex();
this.email = userAccountVO.getEmail();
this.accountStatus = userAccountVO.getAccountStatus();
this.remark = userAccountVO.getRemark();
this.portType = userAccountVO.getPortType();
}
public UserAccountVO buildUserAccountVO() {
return UserAccountVO.builder().id(this.id).uid(this.uid).accountType(this.accountType).phoneNum(this.phoneNum).userName(this.userName).nickName(this.nickName)
.userImg(this.userImg).userSex(this.userSex).email(this.email).source(this.source).accountStatus(this.accountStatus).remark(this.remark).portType(this.portType)
.createTime(this.createTime).build();
}
} }
package com.mmc.iuav.user.entity; package com.mmc.iuav.user.entity;
import com.mmc.iuav.user.model.vo.UserApplyTagVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 21:59 * @Date: 2023/5/17 21:59
*/ */
public class UserApplyTagDO { @Data
@NoArgsConstructor
@AllArgsConstructor
public class UserApplyTagDO implements Serializable {
private static final long serialVersionUID = -7581203992821286124L;
private Integer id;
private Integer cooperationTagId;
private Integer userAccountId;
private String applyName;
private String applyPhone;
private Integer applyStatus;
private String remark;
public UserApplyTagVO buildUserApplyTagVO(){
return UserApplyTagVO.builder().id(id).cooperationTagId(cooperationTagId).userAccountId(this.userAccountId)
.applyName(this.applyName).applyPhone(this.applyPhone).applyStatus(this.applyStatus).remark(this.remark).build();
}
public UserApplyTagDO(UserApplyTagVO userApplyTagVO){
this.cooperationTagId = userApplyTagVO.getCooperationTagId();
this.userAccountId = userApplyTagVO.getUserAccountId();
this.applyName = userApplyTagVO.getApplyName();
this.applyPhone = userApplyTagVO.getApplyPhone();
this.remark = userApplyTagVO.getRemark();
}
} }
package com.mmc.iuav.user.service; package com.mmc.iuav.user.service;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.vo.CompanyAuthVO;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 13:37 * @Date: 2023/5/17 13:37
*/ */
public interface CompanyAuthService { public interface CompanyAuthService {
/**
* 添加企业认证
* @param companyAuthVO
* @return
*/
ResultBody add(CompanyAuthVO companyAuthVO);
/**
* 根据企业名称模糊查询
* @param searchKey
* @return
*/
ResultBody fuzzyQueryCompany(String searchKey);
} }
package com.mmc.iuav.user.service; package com.mmc.iuav.user.service;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.vo.UserApplyTagVO;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 21:19 * @Date: 2023/5/17 21:19
*/ */
public interface CooperationService { public interface CooperationService {
ResultBody listTag();
ResultBody apply(UserApplyTagVO cooperationTagVO);
} }
package com.mmc.iuav.user.service; package com.mmc.iuav.user.service;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.entity.UserAccountDO; import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.model.vo.UserAccountVO;
/** /**
* @author: zj * @author: zj
...@@ -12,11 +14,25 @@ public interface UserAccountService { ...@@ -12,11 +14,25 @@ public interface UserAccountService {
* @param unionId * @param unionId
* @return * @return
*/ */
UserAccountDO getUserAccountInfoByUnionId(String unionId); UserAccountVO getUserAccountInfoByUnionId(String unionId);
/** /**
* Insert the user account * Insert the user account
* @param userAccountDO * @param userAccountDO
*/ */
void insertUserAccount(UserAccountDO userAccountDO); void insertUserAccount(UserAccountDO userAccountDO);
/**
* 通过用户id获取用户信息
* @param userAccountId
* @return
*/
UserAccountVO getUserAccountById(Integer userAccountId);
/**
* 修改用户信息
* @param userAccountVO
* @return
*/
ResultBody update(UserAccountVO userAccountVO);
} }
...@@ -7,10 +7,10 @@ import com.mmc.iuav.auth.JwtUtil; ...@@ -7,10 +7,10 @@ import com.mmc.iuav.auth.JwtUtil;
import com.mmc.iuav.general.CodeUtil; import com.mmc.iuav.general.CodeUtil;
import com.mmc.iuav.response.ResultBody; import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.response.ResultEnum; import com.mmc.iuav.response.ResultEnum;
import com.mmc.iuav.user.constant.UserSystemConstant;
import com.mmc.iuav.user.constant.WxConstant; import com.mmc.iuav.user.constant.WxConstant;
import com.mmc.iuav.user.entity.UserAccountDO; import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.model.vo.AppUserSucVO; import com.mmc.iuav.user.model.vo.AppUserSucVO;
import com.mmc.iuav.user.model.vo.UserAccountVO;
import com.mmc.iuav.user.model.vo.WxLoginVO; import com.mmc.iuav.user.model.vo.WxLoginVO;
import com.mmc.iuav.user.service.AuthService; import com.mmc.iuav.user.service.AuthService;
import com.mmc.iuav.user.service.UserAccountService; import com.mmc.iuav.user.service.UserAccountService;
...@@ -70,23 +70,24 @@ public class AuthServiceImpl implements AuthService { ...@@ -70,23 +70,24 @@ public class AuthServiceImpl implements AuthService {
return ResultBody.error(ResultEnum.PARAM_ERROR); return ResultBody.error(ResultEnum.PARAM_ERROR);
} }
//数据库查询用户信息 //数据库查询用户信息
UserAccountDO userAccountDO = userAccountService.getUserAccountInfoByUnionId(unionId); UserAccountVO userAccountVO = userAccountService.getUserAccountInfoByUnionId(unionId);
if (userAccountDO == null) { if (userAccountVO == null) {
userAccountDO = new UserAccountDO(); UserAccountDO userAccountDO = new UserAccountDO();
userAccountDO.setUnionId(unionId); userAccountDO.setUnionId(unionId);
userAccountDO.setOpenId(openId); userAccountDO.setOpenId(openId);
userAccountDO.setUid(CodeUtil.generateUserUID()); userAccountDO.setUid(CodeUtil.generateUserUID());
userAccountDO.setAccountType(0); userAccountDO.setAccountType(0);
userAccountDO.setPortType(100); userAccountDO.setPortType(100);
userAccountDO.setSource(wxLoginVO.getSource());
userAccountService.insertUserAccount(userAccountDO); userAccountService.insertUserAccount(userAccountDO);
userAccountVO = userAccountDO.buildUserAccountVO();
} }
Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> map = new HashMap<String, Object>();
map.put(JwtConstant.USER_ACCOUNT_ID, userAccountDO.getId()); map.put(JwtConstant.USER_ACCOUNT_ID, userAccountVO.getId());
map.put(JwtConstant.ROLE_ID, 0); map.put(JwtConstant.ROLE_ID, 0);
map.put(JwtConstant.TOKEN_TYPE, JwtConstant.IUAV_TOKEN); map.put(JwtConstant.TOKEN_TYPE, JwtConstant.IUAV_TOKEN);
String token = JwtUtil.createJwt(map); String token = JwtUtil.createJwt(map);
return ResultBody.success(AppUserSucVO.builder().openId(userAccountDO.getOpenId()).unionId(userAccountDO.getUnionId()).token(token).userAccountId(userAccountDO.getId()).build()); return ResultBody.success(AppUserSucVO.builder().token(token).userAccountId(userAccountVO.getId()).build());
} }
} }
package com.mmc.iuav.user.service.impl; package com.mmc.iuav.user.service.impl;
import com.alibaba.fastjson2.JSONObject;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.response.ResultEnum;
import com.mmc.iuav.user.dao.CompanyAuthDao;
import com.mmc.iuav.user.entity.CompanyAuthDO;
import com.mmc.iuav.user.model.vo.CompanyAuthVO;
import com.mmc.iuav.user.service.CompanyAuthService;
import com.mmc.iuav.user.util.QccEntAuthUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 13:38 * @Date: 2023/5/17 13:38
*/ */
public class CompanyAuthServiceImpl { @Slf4j
@Service
public class CompanyAuthServiceImpl implements CompanyAuthService {
@Autowired
private QccEntAuthUtil qccEntAuthUtil;
@Autowired
private CompanyAuthDao companyAuthDao;
@Override
public ResultBody add(CompanyAuthVO companyAuthVO) {
log.info("用户:"+companyAuthVO.getUserAccountId()+" 企业认证:{}", JSONObject.toJSONString(companyAuthVO));
CompanyAuthDO companyAuthDO = companyAuthDao.getCompanyAuth(companyAuthVO.getUserAccountId());
if (companyAuthDO != null){
return ResultBody.success("已通过");
}
ResultBody companyCheckRes = this.companyCheck(companyAuthVO);
System.out.println(companyCheckRes);
if (!companyCheckRes.getCode().equals("200")){
return companyCheckRes;
}
companyAuthDO = new CompanyAuthDO(companyAuthVO);
companyAuthDO.setAuthStatus(1);
companyAuthDao.addCompanyAuth(companyAuthDO);
return ResultBody.success();
}
public ResultBody companyCheck(CompanyAuthVO companyAuthVO){
String businessRes = qccEntAuthUtil.businessLicenseCheck(companyAuthVO.getLicenseImg());
if (businessRes == null){
ResultBody resultBody = ResultBody.error(ResultEnum.BUSINESS_LICENSE_CHECK_ANALYSIS_ERROR);
return resultBody;
}
//将字符串转化成json对象
JSONObject businessResJson=JSONObject.parseObject(businessRes);
if(businessResJson.getString("success").equals("false")) {
return ResultBody.error(ResultEnum.BUSINESS_LICENSE_CHECK_ANALYSIS_ERROR);
}else {
if(businessResJson.getString("name").equals(this.convert(companyAuthVO.getCompanyName()))
&&businessResJson.getString("reg_num").equals(companyAuthVO.getCreditCode())){
String check2Res = qccEntAuthUtil.check2(companyAuthVO.getCompanyName(), companyAuthVO.getCreditCode());
if (check2Res != null){
String status = qccEntAuthUtil.FormartJson(check2Res, "Status");
if (status.equals("200")){
Integer verifyCode = qccEntAuthUtil.resultFormatJson(check2Res);
if (verifyCode.equals(1)){
return ResultBody.success();
}
String returnString = "";
if (verifyCode.equals(0)){
returnString = "统一社会信用代码有误";
}else if (verifyCode.equals(2)){
returnString = "企业名称不一致";
}else if (verifyCode.equals(3)){
returnString = "法定代表人名称不一致";
}
return ResultBody.error(returnString);
}
String errorString = "";
if (status.equals("201")){
errorString = "查询无结果";
}else if (status.equals("202")){
errorString = "查询参数错误,请检查";
}else if (status.equals("205")){
errorString = "等待处理中";
}else if (status.equals("207")){
errorString = "请求数据的条目数超过上限(5000)";
}else if (status.equals("208")){
errorString = "此接口不支持此公司类型查询";
}else if (status.equals("209")){
errorString = "企业数量超过上限";
}else if (status.equals("213")){
errorString = "参数长度不能小于2";
}else if (status.equals("215")){
errorString = "不支持的查询关键字";
}else if (status.equals("218")){
errorString = "该企业暂不支持空壳扫描";
}else if (status.equals("219")){
errorString = "该企业暂不支持准入尽调";
}else if (status.equals("105")){
errorString = "接口已下线停用";
}else if (status.equals("110")){
errorString = "当前相同查询连续出错,请等2小时后重试";
}else {
errorString = "认证报错,请联系管理员";
}
return ResultBody.error(errorString);
}else {
return ResultBody.error("认证报错");
}
}else {
return ResultBody.error(ResultEnum.BUSINESS_LICENSE_CHECK_PARAMETER_ERROR);
}
}
}
public String convert(String entName){
StringBuffer afterConvertEntName=new StringBuffer(entName);
afterConvertEntName.length();
for(int i=0;i<afterConvertEntName.length();i++){
if(afterConvertEntName.charAt(i)=='('){
afterConvertEntName.setCharAt(i,'(');
}
if(afterConvertEntName.charAt(i)==')'){
afterConvertEntName.setCharAt(i,')');
}
}
return afterConvertEntName.toString();
}
@Override
public ResultBody fuzzyQueryCompany(String searchKey) {
String companyResult = qccEntAuthUtil.fuzzySearch(searchKey);
//将字符串转化成json对象
JSONObject entResultJson=JSONObject.parseObject(companyResult);
if(companyResult==null){
return ResultBody.error("无数据,请手动输入");
}
if("200".equals(entResultJson.getString("Status"))){
return ResultBody.success(entResultJson);
}else {
return ResultBody.error("无数据,请手动输入");
}
}
} }
package com.mmc.iuav.user.service.impl; package com.mmc.iuav.user.service.impl;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.dao.CooperationDao;
import com.mmc.iuav.user.entity.CooperationTagDO;
import com.mmc.iuav.user.entity.UserApplyTagDO;
import com.mmc.iuav.user.model.vo.CooperationTagVO;
import com.mmc.iuav.user.model.vo.UserApplyTagVO;
import com.mmc.iuav.user.service.CooperationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* @author: zj * @author: zj
* @Date: 2023/5/17 21:19 * @Date: 2023/5/17 21:19
*/ */
public class CooperationServiceImpl { @Service
public class CooperationServiceImpl implements CooperationService {
@Autowired
private CooperationDao cooperationDao;
@Override
public ResultBody listTag() {
List<CooperationTagDO> list = cooperationDao.listTags();
List<CooperationTagVO> resList = list.stream().map(CooperationTagDO::buildCooperationTagVO).collect(Collectors.toList());
return ResultBody.success(resList);
}
@Override
public ResultBody apply(UserApplyTagVO userApplyTagVO) {
UserApplyTagDO userApplyTagDO = new UserApplyTagDO(userApplyTagVO);
cooperationDao.addApply(userApplyTagDO);
return ResultBody.success();
}
} }
package com.mmc.iuav.user.service.impl; package com.mmc.iuav.user.service.impl;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.dao.UserServiceDao; import com.mmc.iuav.user.dao.UserServiceDao;
import com.mmc.iuav.user.entity.UserAccountDO; import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.model.vo.UserAccountVO;
import com.mmc.iuav.user.service.UserAccountService; import com.mmc.iuav.user.service.UserAccountService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -17,13 +19,30 @@ public class UserAccountServiceImpl implements UserAccountService { ...@@ -17,13 +19,30 @@ public class UserAccountServiceImpl implements UserAccountService {
private UserServiceDao userServiceDao; private UserServiceDao userServiceDao;
@Override @Override
public UserAccountDO getUserAccountInfoByUnionId(String unionId) { public UserAccountVO getUserAccountInfoByUnionId(String unionId) {
UserAccountDO userAccountDO = userServiceDao.getUserAccountInfoByUnionId(unionId); UserAccountDO userAccountDO = userServiceDao.getUserAccountInfoByUnionId(unionId);
return userAccountDO; if (userAccountDO != null) {
return userAccountDO.buildUserAccountVO();
}
return null;
} }
@Override @Override
public void insertUserAccount(UserAccountDO userAccountDO) { public void insertUserAccount(UserAccountDO userAccountDO) {
userServiceDao.insertUserAccount(userAccountDO); userServiceDao.insertUserAccount(userAccountDO);
} }
@Override
public UserAccountVO getUserAccountById(Integer userAccountId) {
UserAccountDO userAccountDO = userServiceDao.getUserAccountById(userAccountId);
UserAccountVO userAccountVO = userAccountDO.buildUserAccountVO();
return userAccountVO;
}
@Override
public ResultBody update(UserAccountVO userAccountVO) {
UserAccountDO userAccountDO = new UserAccountDO(userAccountVO);
userServiceDao.update(userAccountDO);
return ResultBody.success();
}
} }
package util; package com.mmc.iuav.user.util;
import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson2.JSONException;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.mmc.csf.common.util.web.HttpHelper; import com.mmc.iuav.http.HttpHelper;
import com.mmc.iuav.http.HttpsRequestUtil;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpHead; import org.apache.http.client.methods.HttpHead;
import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Component;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern; import java.util.regex.Pattern;
/** /**
* author:zhenjie * @author: zj
* Date:2023/4/23 * @Date: 2023/5/17 13:37
* time:16:12
*/ */
public class QCCEntAuthUtil { @Component
public class QccEntAuthUtil {
private static final String appkey = "5015e664848d406ab1ca4b505c3da803"; private static final String APP_KEY = "5015e664848d406ab1ca4b505c3da803";
private static final String secretKey = "7C4DB8CCECC148175E46392CC0A1B410"; private static final String SECRET_KEY = "7C4DB8CCECC148175E46392CC0A1B410";
public static String check(String companyName, String creditCode, String operName){ public String fuzzySearch(String searchKey) {
String reqInterNme = "https://api.qichacha.com/ECIThreeElVerify/GetInfo"; String reqInterNme = "http://api.qichacha.com/FuzzySearch/GetList";
//pageSize=6,显示6条
//String paramStr = "searchKey="+searchKey;
String status = ""; String status = "";
try { try {
HttpHead reqHeader = new HttpHead(); HttpHead reqHeader = new HttpHead();
String[] autherHeader = RandomAuthentHeader(); String[] autherHeader = RandomAuthentHeader();
reqHeader.setHeader("Token", autherHeader[0]); reqHeader.setHeader("Token", autherHeader[0]);
reqHeader.setHeader("Timespan", autherHeader[1]); reqHeader.setHeader("Timespan", autherHeader[1]);
final String reqUri = reqInterNme.concat("?key=").concat(appkey).concat("&companyName=").concat(companyName).concat("&creditCode=").concat(creditCode).concat("&operName=").concat(operName); reqHeader.setHeader("Content-Type", "application/json; charset=UTF-8");
reqHeader.setHeader("Accept", "application/json; charset=UTF-8");
reqHeader.setHeader("Accept-language", "zh-CN,zh;q=0.9");
reqHeader.setHeader("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
final String reqUri = reqInterNme.concat("?key=").concat(APP_KEY).concat("&searchKey=").concat(searchKey).concat("&pageSize=6");
String tokenJson = HttpHelper.httpGet(reqUri, reqHeader.getAllHeaders()); String tokenJson = HttpHelper.httpGet(reqUri, reqHeader.getAllHeaders());
//out.println(String.format("==========================>this is response:{%s}", tokenJson)); return tokenJson;
System.out.println(String.format("==========================>this is response:{%s}", tokenJson)); } catch (Exception e1) {
e1.printStackTrace();
return null;
}
}
public String check2(String companyName, String creditCode){
String reqInterNme = "https://api.qichacha.com/ECITwoElVerify/GetInfo";
String status = "";
try {
HttpHead reqHeader = new HttpHead();
String[] autherHeader = RandomAuthentHeader();
reqHeader.setHeader("Token", autherHeader[0]);
reqHeader.setHeader("Timespan", autherHeader[1]);
String verifyType = "1";
final String reqUri = reqInterNme.concat("?key=").concat(APP_KEY).concat("&verifyName=").concat(companyName).concat("&creditCode=").concat(creditCode).concat("&verifyType=").concat(verifyType);
String tokenJson = HttpHelper.httpGet(reqUri, reqHeader.getAllHeaders());
status = FormartJson(tokenJson, "Status"); status = FormartJson(tokenJson, "Status");
//out.println(String.format("==========================>Status:{%s}", status));
System.out.println(String.format("==========================>Status:{%s}", status));
if (!HttpCodeRegex.isAbnornalRequest(status)) { if (!HttpCodeRegex.isAbnornalRequest(status)) {
PrettyPrintJson(tokenJson); PrettyPrintJson(tokenJson);
} }
...@@ -47,7 +73,51 @@ public class QCCEntAuthUtil { ...@@ -47,7 +73,51 @@ public class QCCEntAuthUtil {
return null; return null;
} }
// 获取返回码 Res Code // public static String check3(String companyName, String creditCode, String operName){
// String reqInterNme = "https://api.qichacha.com/ECIThreeElVerify/GetInfo";
// String status = "";
// try {
// HttpHead reqHeader = new HttpHead();
// String[] autherHeader = RandomAuthentHeader();
// reqHeader.setHeader("Token", autherHeader[0]);
// reqHeader.setHeader("Timespan", autherHeader[1]);
// final String reqUri = reqInterNme.concat("?key=").concat(APP_KEY).concat("&companyName=").concat(companyName).concat("&creditCode=").concat(creditCode).concat("&operName=").concat(operName);
// String tokenJson = HttpHelper.httpGet(reqUri, reqHeader.getAllHeaders());
// status = FormartJson(tokenJson, "Status");
// if (!HttpCodeRegex.isAbnornalRequest(status)) {
// PrettyPrintJson(tokenJson);
// }
// return tokenJson;
// } catch (Exception e1) {
// e1.printStackTrace();
// }
// return null;
// }
public String businessLicenseCheck(String businessLicenseUrl){
String url = "https://bizlicense.market.alicloudapi.com/rest/160601/ocr/ocr_business_license.json";
String method = "POST";
Map<String, String> headers = new HashMap<String, String>();
headers.put("Authorization", "APPCODE " + "524b1864a88f47458c1061bae3811570");
headers.put("Content-Type", "application/json; charset=UTF-8");
Map<String, String> querys = new HashMap<String, String>();
String bodys = "{\"image\":\""+businessLicenseUrl+"\"}";
try {
String response = HttpsRequestUtil.httpsRequest(url, method, headers, bodys);
//获取response的body
if(response.equals("Invalid Result - invalid business license")){
return null;
}
return response;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 获取返回码 Res Code
*/
static class HttpCodeRegex { static class HttpCodeRegex {
private static final String ABNORMAL_REGIX = "(101)|(102)"; private static final String ABNORMAL_REGIX = "(101)|(102)";
private static final Pattern pattern = Pattern.compile(ABNORMAL_REGIX); private static final Pattern pattern = Pattern.compile(ABNORMAL_REGIX);
...@@ -56,22 +126,36 @@ public class QCCEntAuthUtil { ...@@ -56,22 +126,36 @@ public class QCCEntAuthUtil {
} }
} }
// 获取Auth Code /**
* 获取Auth Code
* @return
*/
protected static final String[] RandomAuthentHeader() { protected static final String[] RandomAuthentHeader() {
String timeSpan = String.valueOf(System.currentTimeMillis() / 1000); String timeSpan = String.valueOf(System.currentTimeMillis() / 1000);
String[] authentHeaders = new String[] { DigestUtils.md5Hex(appkey.concat(timeSpan).concat(secretKey)).toUpperCase(), timeSpan }; String[] authentHeaders = new String[] { DigestUtils.md5Hex(APP_KEY.concat(timeSpan).concat(SECRET_KEY)).toUpperCase(), timeSpan };
return authentHeaders; return authentHeaders;
} }
// 解析JSON /**
public static String FormartJson(String jsonString, String key) throws JSONException { * 解析JSON
* @param jsonString
* @param key
* @return
* @throws JSONException
*/
public String FormartJson(String jsonString, String key) throws JSONException {
//JSONObject jObject = new JSONObject(jsonString); //JSONObject jObject = new JSONObject(jsonString);
JSONObject jsonObject = JSONObject.parseObject(jsonString); JSONObject jsonObject = JSONObject.parseObject(jsonString);
return (String) jsonObject.get(key); return (String) jsonObject.get(key);
} }
// 解析JSON /**
public static Integer resultFormatJson(String jsonString) throws JSONException { * 解析JSON
* @param jsonString
* @return
* @throws JSONException
*/
public Integer resultFormatJson(String jsonString) throws JSONException {
//JSONObject jObject = new JSONObject(jsonString); //JSONObject jObject = new JSONObject(jsonString);
JSONObject jsonObject = JSONObject.parseObject(jsonString); JSONObject jsonObject = JSONObject.parseObject(jsonString);
Object object = jsonObject.get("Result"); Object object = jsonObject.get("Result");
...@@ -79,7 +163,11 @@ public class QCCEntAuthUtil { ...@@ -79,7 +163,11 @@ public class QCCEntAuthUtil {
return (Integer) result.get("VerifyResult"); return (Integer) result.get("VerifyResult");
} }
// pretty print 返回值 /**
* pretty print 返回值
* @param jsonString
* @throws JSONException
*/
protected static void PrettyPrintJson(String jsonString) throws JSONException { protected static void PrettyPrintJson(String jsonString) throws JSONException {
try { try {
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
......
...@@ -47,7 +47,7 @@ spring: ...@@ -47,7 +47,7 @@ spring:
mybatis: mybatis:
executor-type: simple executor-type: simple
mapper-locations: classpath:mapper/**/*.xml mapper-locations: classpath:mapper/**/*.xml
type-aliases-package: com.mmc.iuav.user type-aliases-package: com.mmc.iuav.user.entity
configuration: configuration:
map-underscore-to-camel-case: true map-underscore-to-camel-case: true
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.iuav.user.dao.CooperationDao">
<insert id="addApply" parameterType="com.mmc.iuav.user.entity.UserApplyTagDO" useGeneratedKeys="true" keyProperty="id">
insert into user_apply_tag(cooperation_tag_id, user_account_id, apply_name, apply_phone, remark, create_time)
values(#{cooperationTagId}, #{userAccountId}, #{applyName}, #{applyPhone}, #{remark}, NOW())
</insert>
<select id="listTags" resultType="com.mmc.iuav.user.entity.CooperationTagDO">
select id, tag_name, tag_img, tag_description, create_time from cooperation_tag
</select>
</mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论