Commit 1eae03eb by 徐高华

动态活码

parent 0247c856
package com.gic.haoban.manage.service.dao.mapper.hm;
import java.util.List;
import com.gic.haoban.manage.service.entity.hm.TabHmQrcodeTemp;
/**
*
* @ClassName: TabHaobanHmQrcodeTempMapper
* @Description: TODO
* @Author 徐高华
* @Date 2022年07月14日 12:24:43
* @Modify
* @CopyRight
*/
public interface HmQrcodeTempMapper {
/**
* 新增
* @Title: insert
* @Description: TODO
* @Param @param TabHaobanHmQrcodeTemp
*/
public int insert(TabHmQrcodeTemp entity);
public int deleteByPrimaryKey(Long id);
public int deleteByRelationId(String id);
TabHmQrcodeTemp selectByRelationId(String relationId);
/**
* 通过条件查询
* @Title: listAll
* @Description: TODO
* @Param @param TabHaobanHmQrcodeTemp
* @Param @return
* @Return List
* @Throws
*/
public List<TabHmQrcodeTemp> listAll();
}
\ No newline at end of file
package com.gic.haoban.manage.service.pojo.qo;
import java.io.Serializable;
/**
*
* @ClassName: TabHaobanHmQrcodeTemp
* @Description: TODO
* @Author 徐高华
* @Date 2022年07月14日 12:24:43
* @Modify
* @CopyRight
*/
public class HmQrcodeTempQO implements Serializable {
private static final long serialVersionUID = 759835662265000L;
private Long id;
private String wxConfigId;
private String wxQrcode;
private String wxEnterpriseId;
private java.util.Date createTime;
private java.util.Date updateTime;
/**1有效 0已删除*/
private Integer statusFlag;
private String relationId ;
public String getRelationId() {
return relationId;
}
public void setRelationId(String relationId) {
this.relationId = relationId;
}
public void setId(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
public void setWxConfigId(String wxConfigId) {
this.wxConfigId = wxConfigId;
}
public String getWxConfigId() {
return wxConfigId;
}
public void setWxQrcode(String wxQrcode) {
this.wxQrcode = wxQrcode;
}
public String getWxQrcode() {
return wxQrcode;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setCreateTime(java.util.Date createTime) {
this.createTime = createTime;
}
public java.util.Date getCreateTime() {
return createTime;
}
public void setUpdateTime(java.util.Date updateTime) {
this.updateTime = updateTime;
}
public java.util.Date getUpdateTime() {
return updateTime;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Integer getStatusFlag() {
return statusFlag;
}
}
\ No newline at end of file
package com.gic.haoban.manage.service.service.hm;
import com.gic.haoban.manage.service.pojo.qo.HmQrcodeTempQO;
/**
*
* @ClassName: TabHaobanHmQrcodeTemp
* @Description: TODO
* @Author 徐高华
* @Date 2022年07月14日 12:24:43
* @Modify
* @CopyRight
*/
public interface HmQrcodeTempService {
/**
*
* @Title: save
* @Description: 保存临时活码
* @author xugh
* @param qo
* @throws
*/
public void save(HmQrcodeTempQO qo);
// 删除临时活码
public void deleteQrcode(String relationId);
public void deleteQrcodeById(Long id);
}
\ No newline at end of file
package com.gic.haoban.manage.service.service.hm.impl;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.haoban.manage.service.dao.mapper.hm.HmQrcodeTempMapper;
import com.gic.haoban.manage.service.entity.hm.TabHmQrcodeTemp;
import com.gic.haoban.manage.service.pojo.qo.HmQrcodeTempQO;
import com.gic.haoban.manage.service.service.hm.HmQrcodeTempService;
@Service
public class HmQrcodeTempServiceImpl implements HmQrcodeTempService {
@Autowired
private HmQrcodeTempMapper hmQrcodeTempMapper;
@Override
public void save(HmQrcodeTempQO qo) {
TabHmQrcodeTemp entity = EntityUtil.changeEntityByJSON(TabHmQrcodeTemp.class, qo);
entity.setCreateTime(new Date());
entity.setUpdateTime(new Date());
entity.setStatusFlag(1);
entity.setId(UniqueIdUtils.uniqueLong());
this.hmQrcodeTempMapper.insert(entity);
}
@Override
public void deleteQrcode(String relationId) {
this.hmQrcodeTempMapper.deleteByRelationId(relationId);
}
@Override
public void deleteQrcodeById(Long id) {
this.hmQrcodeTempMapper.deleteByPrimaryKey(id);
}
}
...@@ -23,6 +23,7 @@ import com.gic.haoban.manage.service.pojo.bo.hm.HmLinkBO; ...@@ -23,6 +23,7 @@ import com.gic.haoban.manage.service.pojo.bo.hm.HmLinkBO;
import com.gic.haoban.manage.service.pojo.bo.hm.HmPageBO; import com.gic.haoban.manage.service.pojo.bo.hm.HmPageBO;
import com.gic.haoban.manage.service.pojo.bo.hm.HmQrcodeBO; import com.gic.haoban.manage.service.pojo.bo.hm.HmQrcodeBO;
import com.gic.haoban.manage.service.pojo.bo.hm.KeyDataLinkBO; import com.gic.haoban.manage.service.pojo.bo.hm.KeyDataLinkBO;
import com.gic.haoban.manage.service.pojo.qo.HmQrcodeTempQO;
import com.gic.haoban.manage.service.service.KeyDataService; import com.gic.haoban.manage.service.service.KeyDataService;
import com.gic.haoban.manage.service.service.MemberQueryService; import com.gic.haoban.manage.service.service.MemberQueryService;
import com.gic.haoban.manage.service.service.WxEnterpriseService; import com.gic.haoban.manage.service.service.WxEnterpriseService;
...@@ -30,6 +31,7 @@ import com.gic.haoban.manage.service.service.hm.HmLinkService; ...@@ -30,6 +31,7 @@ import com.gic.haoban.manage.service.service.hm.HmLinkService;
import com.gic.haoban.manage.service.service.hm.HmLinkStoreService; import com.gic.haoban.manage.service.service.hm.HmLinkStoreService;
import com.gic.haoban.manage.service.service.hm.HmPageService; import com.gic.haoban.manage.service.service.hm.HmPageService;
import com.gic.haoban.manage.service.service.hm.HmQrcodeService; import com.gic.haoban.manage.service.service.hm.HmQrcodeService;
import com.gic.haoban.manage.service.service.hm.HmQrcodeTempService;
import com.gic.member.api.dto.es.MemberDataDTO; import com.gic.member.api.dto.es.MemberDataDTO;
import com.gic.member.api.dto.es.MemberStoreClerkDataDTO; import com.gic.member.api.dto.es.MemberStoreClerkDataDTO;
import com.gic.member.api.service.MemberService; import com.gic.member.api.service.MemberService;
...@@ -75,6 +77,8 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -75,6 +77,8 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
private WxEnterpriseService wxEnterpriseService; private WxEnterpriseService wxEnterpriseService;
@Autowired @Autowired
private HmPageService hmPageService; private HmPageService hmPageService;
@Autowired
private HmQrcodeTempService hmQrcodeTempService;
@Override @Override
public ServiceResponse<String> getHmLinkUrl() { public ServiceResponse<String> getHmLinkUrl() {
...@@ -294,7 +298,11 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -294,7 +298,11 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
bo.setHmId(hm.getHmId()); bo.setHmId(hm.getHmId());
String dthmKey = this.keyDataService.saveDataForLink(enterpriseId, bo); String dthmKey = this.keyDataService.saveDataForLink(enterpriseId, bo);
if (null != dthmKey) { if (null != dthmKey) {
this.addQrcode(hm, dthmKey, wxEnterpriseDTO.getCorpid(), retDTO); ServiceResponse<Void> addResp = this.addQrcode(hm, dthmKey, wxEnterpriseDTO.getCorpid(), retDTO);
if (!addResp.isSuccess()) {
// 创建动态活码失败
return ServiceResponse.failure(HaoBanErrCode.ERR_OTHER.getCode(), addResp.getMessage());
}
} }
// 查询页面 // 查询页面
HmPageBO page = this.hmPageService.queryHmPageDetail(link.getPageId()); HmPageBO page = this.hmPageService.queryHmPageDetail(link.getPageId());
...@@ -307,26 +315,31 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -307,26 +315,31 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
return ServiceResponse.success(retDTO); return ServiceResponse.success(retDTO);
} }
private void addQrcode(HmQrcodeBO hm, String key, String corpid, HmLinkWxaDTO retDTO) { // 创建活码
private ServiceResponse<Void> addQrcode(HmQrcodeBO hm, String key, String corpid, HmLinkWxaDTO retDTO) {
QywxExternalcontactDTO paramsDTO = new QywxExternalcontactDTO(); QywxExternalcontactDTO paramsDTO = new QywxExternalcontactDTO();
// 联系方式类型,1-单人, 2-多人 // 联系方式类型,1-单人, 2-多人 场景,1-在小程序中联系,2-通过二维码联系
paramsDTO.setType(1); paramsDTO.setType(1);
// 场景,1-在小程序中联系,2-通过二维码联系
paramsDTO.setScene(2); paramsDTO.setScene(2);
paramsDTO.setRemark(hm.getName()); paramsDTO.setRemark(hm.getName());
paramsDTO.setSkipVerify(hm.getPassFlag() == 1); paramsDTO.setSkipVerify(hm.getPassFlag() == 1);
paramsDTO.setState("DT" + key); paramsDTO.setState("DT" + key);
// paramsDTO.setTemp(true); paramsDTO.setTemp(true);
// 过期时间一小时 paramsDTO.setUser(Arrays.asList(hm.getWxUserId()));
paramsDTO.setExpiresIn(60L * 60);
paramsDTO.setChatExpiresIn(60L);
paramsDTO.setUser(Arrays.asList("wo59NLDQAAOVOU_FKL7DJg6NNq2-lgDQ"));
QywxExternalcontactResultDTO dto = qywxUserApiService.addContactWay(corpid, config.getWxSuiteid(), paramsDTO); QywxExternalcontactResultDTO dto = qywxUserApiService.addContactWay(corpid, config.getWxSuiteid(), paramsDTO);
log.info("创建动态活码参数corpid:{}{},param={},返回={}", corpid, config.getWxSuiteid(), JSON.toJSONString(paramsDTO), log.info("创建动态活码参数corpid:{}{},param={},返回={}", corpid, config.getWxSuiteid(), JSON.toJSONString(paramsDTO),
JSON.toJSONString(dto)); JSON.toJSONString(dto));
if (null != dto && "0".equals(dto.getErrcode())) { if (null != dto && "0".equals(dto.getErrcode())) {
retDTO.setHmQrcode(retDTO.getHmQrcode()); retDTO.setHmQrcode(dto.getQr_code());
} HmQrcodeTempQO qo = new HmQrcodeTempQO();
qo.setWxEnterpriseId(hm.getWxEnterpriseId());
qo.setWxConfigId(dto.getConfig_id());
qo.setWxQrcode(dto.getQr_code());
qo.setRelationId(key);
this.hmQrcodeTempService.save(qo);
return ServiceResponse.success();
}
return ServiceResponse.failure(HaoBanErrCode.ERR_OTHER.getCode(), "企微错误:" + dto.getErrmsg());
} }
private HmQrcodeBO getHmFromClerk(String clerkId, String wxEnterpriseId) { private HmQrcodeBO getHmFromClerk(String clerkId, String wxEnterpriseId) {
......
...@@ -32,6 +32,10 @@ public class HmLinkTest { ...@@ -32,6 +32,10 @@ public class HmLinkTest {
@Autowired @Autowired
private HmLinkStoreService hmLinkStoreService; private HmLinkStoreService hmLinkStoreService;
@Test
public void getLinkHmFromWxa(){
this.hmLinkApiService.getLinkHmFromWxa("ff8080815dacd3a2015dacd3ef5c0000", null, null, null, "fKzecO", "3b9167b1a", "orXl9t6P-XBJQyaNCaJj38GLyYd0",null) ;
}
@Test @Test
public void saveLinkStore() { public void saveLinkStore() {
......
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