Commit 4befbaeb by jianan

保存报聘经纪人图片

parent c27e434a
...@@ -33,6 +33,19 @@ public class PractitionerHiringController { ...@@ -33,6 +33,19 @@ public class PractitionerHiringController {
} }
/** /**
* 根据BasicInfoId查询报聘经纪人组织关系
*
*/
@RequestMapping("/queryMembershipByHiringBasicInfoId")
public Object queryMembership(@RequestBody QueryMembershipRequestVO requestVO){
JsonResult result = new JsonResult();
QueryMembershipResponseVO responseVO = practitionerHiringService.queryMembership(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
/**
* 保存报聘经纪人基本信息 * 保存报聘经纪人基本信息
* *
*/ */
...@@ -45,6 +58,56 @@ public class PractitionerHiringController { ...@@ -45,6 +58,56 @@ public class PractitionerHiringController {
return result; return result;
} }
/**
* 保存报聘经纪人工作经历
*
*/
@RequestMapping("/saveWorkingExperience")
public Object saveWorkingExperience(@RequestBody SaveWorkingExperienceRequestVO requestVO){
JsonResult result = new JsonResult();
SaveWorkingExperienceResponseVO responseVO = practitionerHiringService.saveWorkingExperience(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
/**
* 保存报聘经纪人个人照片
*
*/
@RequestMapping("/savePersonPicture")
public Object savePersonPicture(@RequestBody SavePersonPictureRequestVO requestVO){
JsonResult result = new JsonResult();
SavePersonPictureResponseVO responseVO = practitionerHiringService.savePersonPicture(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
/**
* 保存报聘经纪人身份证正反面图片
*
*/
@RequestMapping("/saveIDPicture")
public Object saveIDPicture(@RequestBody SaveIDPictureRequestVO requestVO){
JsonResult result = new JsonResult();
SaveIDPictureResponseVO responseVO = practitionerHiringService.saveIDPicture(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
/**
* 保存报聘经纪人最高学历
*
*/
@RequestMapping("/saveLastGraduateGrade")
public Object saveLastGraduateGrade(@RequestBody SaveLastGraduateGradeRequestVO requestVO){
JsonResult result = new JsonResult();
SaveLastGraduateGradeResponseVO responseVO = practitionerHiringService.saveLastGraduateGrade(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
} }
\ No newline at end of file
package com.yd.api.practitioner.service; package com.yd.api.practitioner.service;
import com.yd.api.practitioner.vo.hiring.SaveBasicInfoRequestVO; import com.yd.api.practitioner.vo.hiring.*;
import com.yd.api.practitioner.vo.hiring.SaveBasicInfoResponseVO;
import com.yd.api.practitioner.vo.hiring.SaveMembershipRequestVO;
import com.yd.api.practitioner.vo.hiring.SaveMembershipResponseVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
...@@ -12,4 +9,14 @@ public interface PractitionerHiringService { ...@@ -12,4 +9,14 @@ public interface PractitionerHiringService {
SaveMembershipResponseVO saveMembership(SaveMembershipRequestVO requestVO); SaveMembershipResponseVO saveMembership(SaveMembershipRequestVO requestVO);
SaveBasicInfoResponseVO saveBasicInfo(SaveBasicInfoRequestVO requestVO); SaveBasicInfoResponseVO saveBasicInfo(SaveBasicInfoRequestVO requestVO);
QueryMembershipResponseVO queryMembership(QueryMembershipRequestVO requestVO);
SaveWorkingExperienceResponseVO saveWorkingExperience(SaveWorkingExperienceRequestVO requestVO);
SavePersonPictureResponseVO savePersonPicture(SavePersonPictureRequestVO requestVO);
SaveIDPictureResponseVO saveIDPicture(SaveIDPictureRequestVO requestVO);
SaveLastGraduateGradeResponseVO saveLastGraduateGrade(SaveLastGraduateGradeRequestVO requestVO);
} }
...@@ -5,23 +5,40 @@ import com.yd.api.practitioner.vo.hiring.*; ...@@ -5,23 +5,40 @@ import com.yd.api.practitioner.vo.hiring.*;
import com.yd.api.result.CommonResult; import com.yd.api.result.CommonResult;
import com.yd.dal.entity.customer.AclPractitionerHiringBasicInfo; import com.yd.dal.entity.customer.AclPractitionerHiringBasicInfo;
import com.yd.dal.entity.customer.AclPractitionerHiringMembership; import com.yd.dal.entity.customer.AclPractitionerHiringMembership;
import com.yd.dal.entity.customer.AclPractitionerHiringWorkingExperience;
import com.yd.dal.mapper.customer.AclPractitionerHiringBasicInfoMapper; import com.yd.dal.mapper.customer.AclPractitionerHiringBasicInfoMapper;
import com.yd.dal.mapper.customer.AclPractitionerHiringMembershipMapper; import com.yd.dal.mapper.customer.AclPractitionerHiringMembershipMapper;
import com.yd.dal.mapper.customer.AclPractitionerHiringWorkingExperienceMapper;
import com.yd.rmi.tencent.wechat.service.WechatService;
import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenRequest;
import com.yd.util.CommonUtil;
import com.yd.util.HttpUtil;
import com.yd.util.config.ZHBErrorConfig; import com.yd.util.config.ZHBErrorConfig;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.imageio.ImageIO;
import java.awt.*;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map;
@Service @Service
public class PractitionerHiringServiceImpl implements PractitionerHiringService { public class PractitionerHiringServiceImpl implements PractitionerHiringService {
@Autowired @Autowired
private WechatService wechatService;
@Autowired
private AclPractitionerHiringMembershipMapper membershipMapper; private AclPractitionerHiringMembershipMapper membershipMapper;
@Autowired @Autowired
private AclPractitionerHiringBasicInfoMapper basicInfoMapper; private AclPractitionerHiringBasicInfoMapper basicInfoMapper;
@Autowired
private AclPractitionerHiringWorkingExperienceMapper workingExperienceMapper;
@Override @Override
public SaveMembershipResponseVO saveMembership(SaveMembershipRequestVO requestVO) { public SaveMembershipResponseVO saveMembership(SaveMembershipRequestVO requestVO) {
...@@ -32,8 +49,7 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService ...@@ -32,8 +49,7 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
basicInfo.setName(requestVO.getName()); basicInfo.setName(requestVO.getName());
basicInfo.setPractitionerPotentialId(requestVO.getPractitionerPotentialId()); basicInfo.setPractitionerPotentialId(requestVO.getPractitionerPotentialId());
basicInfoMapper.insertSelective(basicInfo); basicInfoMapper.insertSelective(basicInfo);
System.out.println("看看主键回写");
System.out.println(basicInfo);
// 数据库实体 // 数据库实体
AclPractitionerHiringMembership membership = new AclPractitionerHiringMembership(); AclPractitionerHiringMembership membership = new AclPractitionerHiringMembership();
BeanUtils.copyProperties(requestVO, membership); BeanUtils.copyProperties(requestVO, membership);
...@@ -49,6 +65,7 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService ...@@ -49,6 +65,7 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
membershipMapper.insertSelective(membership); membershipMapper.insertSelective(membership);
resp.setHiringBasicInfoId(basicInfo.getId());
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000"))); resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -70,16 +87,125 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService ...@@ -70,16 +87,125 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
basicInfo.setCreatedAt(curDate); basicInfo.setCreatedAt(curDate);
basicInfo.setUpdatedAt(curDate); basicInfo.setUpdatedAt(curDate);
basicInfo.setCreatedBy(Long.valueOf(-1)); basicInfo.setCreatedBy((long) -1);
basicInfo.setUpdatedBy(Long.valueOf(-1)); basicInfo.setUpdatedBy((long) -1);
basicInfoMapper.updateByPrimaryKeySelective(basicInfo);
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
} catch (Exception e) {
e.printStackTrace();
resp.setCommonResult(new CommonResult(false, e.getMessage()));
}
return resp;
}
@Override
public QueryMembershipResponseVO queryMembership(QueryMembershipRequestVO requestVO) {
QueryMembershipResponseVO resp = new QueryMembershipResponseVO();
try {
AclPractitionerHiringMembership membership = membershipMapper.queryByhiringBasicInfoId(requestVO);
resp.setMembership(membership);
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
} catch (Exception e) {
e.printStackTrace();
resp.setCommonResult(new CommonResult(false, e.getMessage()));
}
return resp;
}
@Override
public SaveWorkingExperienceResponseVO saveWorkingExperience(SaveWorkingExperienceRequestVO requestVO) {
SaveWorkingExperienceResponseVO resp = new SaveWorkingExperienceResponseVO();
try {
List<AclPractitionerHiringWorkingExperience> workingExperienceList = requestVO.getWorkingExperienceList();
Date curDate = new Date();
workingExperienceList.forEach(item -> {
item.setIsActive(1);
item.setCreatedAt(curDate);
item.setUpdatedAt(curDate);
item.setCreatedBy((long) -1);
item.setUpdatedBy((long) -1);
});
if (workingExperienceList.size() > 0) {
workingExperienceMapper.batchInsert(workingExperienceList);
}
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
} catch (Exception e) {
e.printStackTrace();
resp.setCommonResult(new CommonResult(false, e.getMessage()));
}
return resp;
}
@Override
public SavePersonPictureResponseVO savePersonPicture(SavePersonPictureRequestVO requestVO) {
SavePersonPictureResponseVO resp = new SavePersonPictureResponseVO();
try {
String mediaId = requestVO.getMediaId();
String imgUrl = wechatService.getImgUrlByMediaId(mediaId);
if (imgUrl == null) {
resp.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("830003")));
} else {
AclPractitionerHiringBasicInfo basicInfo = new AclPractitionerHiringBasicInfo();
basicInfo.setId(requestVO.getHiringBasicInfoId());
basicInfo.setPersonerPictureOssPath(imgUrl);
basicInfoMapper.updateByPrimaryKeySelective(basicInfo);
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
resp.setImgUrl(imgUrl);
}
} catch (Exception e) {
e.printStackTrace();
resp.setCommonResult(new CommonResult(false, e.getMessage()));
}
return resp;
}
@Override
public SaveIDPictureResponseVO saveIDPicture(SaveIDPictureRequestVO requestVO) {
SaveIDPictureResponseVO resp = new SaveIDPictureResponseVO();
try {
String frontMediaId = requestVO.getFrontMediaId();
String backMediaId = requestVO.getBackMediaId();
basicInfoMapper.updateByPractitionerPotentialId(basicInfo); String frontImgUrl = wechatService.getImgUrlByMediaId(frontMediaId);
String backImgUrl = wechatService.getImgUrlByMediaId(backMediaId);
if (frontImgUrl != null && backMediaId != null) {
AclPractitionerHiringBasicInfo basicInfo = new AclPractitionerHiringBasicInfo();
basicInfo.setId(requestVO.getHiringBasicInfoId());
basicInfo.setIdFrontPageOssPath(frontImgUrl);
basicInfo.setIdBackPageOssPath(backImgUrl);
basicInfoMapper.updateByPrimaryKeySelective(basicInfo);
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000"))); resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
resp.setFrontImgUrl(frontImgUrl);
resp.setBackImgUrl(backImgUrl);
} else {
resp.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("830003")));
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
resp.setCommonResult(new CommonResult(false, e.getMessage())); resp.setCommonResult(new CommonResult(false, e.getMessage()));
} }
return resp; return resp;
} }
@Override
public SaveLastGraduateGradeResponseVO saveLastGraduateGrade(SaveLastGraduateGradeRequestVO requestVO) {
return null;
}
} }
package com.yd.api.practitioner.vo.hiring;
import lombok.Data;
@Data
public class QueryMembershipRequestVO {
private Long hiringBasicInfoId;
}
package com.yd.api.practitioner.vo.hiring;
import com.yd.api.result.CommonResult;
import com.yd.dal.entity.customer.AclPractitionerHiringMembership;
import lombok.Data;
@Data
public class QueryMembershipResponseVO {
private CommonResult commonResult;
private AclPractitionerHiringMembership membership;
}
...@@ -6,10 +6,8 @@ import java.util.Date; ...@@ -6,10 +6,8 @@ import java.util.Date;
@Data @Data
public class SaveBasicInfoRequestVO { public class SaveBasicInfoRequestVO {
/**
* FK ag_acl_practitioner_potential,潜在经纪人增员表 private Long id;
*/
private Long practitionerPotentialId;
/** /**
* FK ag_acl_practitioner.id 邀请人 * FK ag_acl_practitioner.id 邀请人
......
package com.yd.api.practitioner.vo.hiring;
import lombok.Data;
@Data
public class SaveIDPictureRequestVO {
private Long hiringBasicInfoId;
private String frontMediaId;
private String backMediaId;
}
package com.yd.api.practitioner.vo.hiring;
import com.yd.api.result.CommonResult;
import lombok.Data;
@Data
public class SaveIDPictureResponseVO {
private CommonResult commonResult;
private String frontImgUrl;
private String backImgUrl;
}
package com.yd.api.practitioner.vo.hiring;
import lombok.Data;
@Data
public class SaveLastGraduateGradeRequestVO {
private Long hiringBasicInfoId;
private String lastGraduateGrade;
private String lastGraduateSchool;
private String certificationMediaId;
}
package com.yd.api.practitioner.vo.hiring;
import com.yd.api.result.CommonResult;
import lombok.Data;
@Data
public class SaveLastGraduateGradeResponseVO {
private CommonResult commonResult;
private String imgUrl;
}
...@@ -5,5 +5,6 @@ import lombok.Data; ...@@ -5,5 +5,6 @@ import lombok.Data;
@Data @Data
public class SaveMembershipResponseVO { public class SaveMembershipResponseVO {
private Long hiringBasicInfoId;
private CommonResult commonResult; private CommonResult commonResult;
} }
package com.yd.api.practitioner.vo.hiring;
import lombok.Data;
@Data
public class SavePersonPictureRequestVO {
private Long hiringBasicInfoId;
private String mediaId;
}
package com.yd.api.practitioner.vo.hiring;
import com.yd.api.result.CommonResult;
import lombok.Data;
@Data
public class SavePersonPictureResponseVO {
private CommonResult commonResult;
private String imgUrl;
}
package com.yd.api.practitioner.vo.hiring;
import com.yd.dal.entity.customer.AclPractitionerHiringWorkingExperience;
import lombok.Data;
import java.util.List;
@Data
public class SaveWorkingExperienceRequestVO {
private Long hiringBasicInfoId;
private List<AclPractitionerHiringWorkingExperience> workingExperienceList;
}
package com.yd.api.practitioner.vo.hiring;
import com.yd.api.result.CommonResult;
import lombok.Data;
@Data
public class SaveWorkingExperienceResponseVO {
private CommonResult commonResult;
}
package com.yd.dal.mapper.customer; package com.yd.dal.mapper.customer;
import com.yd.api.practitioner.vo.hiring.QueryMembershipRequestVO;
import com.yd.dal.entity.customer.AclPractitionerHiringMembership; import com.yd.dal.entity.customer.AclPractitionerHiringMembership;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -22,4 +23,6 @@ public interface AclPractitionerHiringMembershipMapper { ...@@ -22,4 +23,6 @@ public interface AclPractitionerHiringMembershipMapper {
int updateBatchSelective(List<AclPractitionerHiringMembership> list); int updateBatchSelective(List<AclPractitionerHiringMembership> list);
int batchInsert(@Param("list") List<AclPractitionerHiringMembership> list); int batchInsert(@Param("list") List<AclPractitionerHiringMembership> list);
AclPractitionerHiringMembership queryByhiringBasicInfoId(QueryMembershipRequestVO requestVO);
} }
\ No newline at end of file
...@@ -10,6 +10,7 @@ import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketRequest; ...@@ -10,6 +10,7 @@ import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenRequest; import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.unifiedorder.UnifiedorderResponse; import com.yd.rmi.tencent.wechatinterf.pojo.unifiedorder.UnifiedorderResponse;
import java.io.IOException;
import java.util.Map; import java.util.Map;
public interface WechatService { public interface WechatService {
...@@ -89,4 +90,6 @@ public interface WechatService { ...@@ -89,4 +90,6 @@ public interface WechatService {
*/ */
WeChatInfoByENV getWeChatInfoByENV(String gzhName, boolean getAccessToken); WeChatInfoByENV getWeChatInfoByENV(String gzhName, boolean getAccessToken);
String getImgUrlByMediaId(String dediaId) throws IOException;
} }
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.yd.api.result.CommonResult; import com.yd.api.result.CommonResult;
import com.yd.dal.entity.customer.AclPractitionerHiringBasicInfo;
import com.yd.rmi.cache.SystemConfigService; import com.yd.rmi.cache.SystemConfigService;
import com.yd.dal.entity.tencent.TenInterfRecord; import com.yd.dal.entity.tencent.TenInterfRecord;
import com.yd.dal.entity.transaction.TranLog; import com.yd.dal.entity.transaction.TranLog;
...@@ -28,9 +29,11 @@ import com.yd.util.config.ZHBErrorConfig; ...@@ -28,9 +29,11 @@ import com.yd.util.config.ZHBErrorConfig;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.imageio.ImageIO;
import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSession;
import java.awt.*;
import java.io.*; import java.io.*;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
...@@ -38,6 +41,7 @@ import java.net.URLEncoder; ...@@ -38,6 +41,7 @@ import java.net.URLEncoder;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.*; import java.util.*;
import java.util.List;
import java.util.Map.Entry; import java.util.Map.Entry;
@Service("wechatService") @Service("wechatService")
...@@ -622,6 +626,31 @@ public class WechatServiceImpl implements WechatService { ...@@ -622,6 +626,31 @@ public class WechatServiceImpl implements WechatService {
return weChatInfoByENV; return weChatInfoByENV;
} }
@Override
public String getImgUrlByMediaId(String mediaId) throws IOException {
String accessToken = this.obtainToken(new TokenRequest());
System.out.println("accessToken:" + accessToken);
TicketRequest ticketRequest = new TicketRequest();
ticketRequest.setAccessToken(accessToken);
String jsapiTicket = this.obtainTicket(ticketRequest);
System.out.println("jsapiTicket:" + jsapiTicket);
String ImgUrl = "https://api.weixin.qq.com/cgi-bin/media/get?access_token=" + accessToken + "&media_id=" + mediaId;
Map<String, Object> input = HttpUtil.getInput(ImgUrl);
if ((boolean) input.get("success")) {
InputStream inputStream = (InputStream) input.get("is");
Image img = ImageIO.read(inputStream);
if (!(img == null || img.getWidth(null) <= 0 || img.getHeight(null) <= 0)) {
return ImgUrl;
}
}
return null;
}
/** /**
* 在本地开发时,通过dev去获取access_token * 在本地开发时,通过dev去获取access_token
* @param accessTokenRequest * @param accessTokenRequest
......
...@@ -38,6 +38,15 @@ ...@@ -38,6 +38,15 @@
from ag_acl_practitioner_hiring_membership from ag_acl_practitioner_hiring_membership
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</select> </select>
<select id="queryByhiringBasicInfoId" parameterType="java.lang.Long" resultMap="BaseResultMap">
<!--@mbg.generated-->
select
<include refid="Base_Column_List" />
from ag_acl_practitioner_hiring_membership
where hiring_basic_info_id = #{hiringBasicInfoId,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
<!--@mbg.generated--> <!--@mbg.generated-->
delete from ag_acl_practitioner_hiring_membership delete from ag_acl_practitioner_hiring_membership
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment