Commit 2e7127f1 by huangZW

Merge branch 'developer' of http://115.159.76.241/haoban3.0/haoban-manage3.0.git into developer

parents 6f6f925f fa4b04bf
......@@ -3,6 +3,8 @@ package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
import java.util.Date;
import org.springframework.util.StringUtils;
public class WxEnterpriseDTO implements Serializable {
private String wxEnterpriseId;
......@@ -63,6 +65,18 @@ public class WxEnterpriseDTO implements Serializable {
private String contactSecret;
private Boolean wxSecretKeyFlag;
private Boolean memberSecretFlag;
private Boolean contactSecretFlag;
private Date wxSecretKeyLastTime;
private Date contactSecretLastTime;
private Date memberSecretLastTime;
private Date createTime;
private Date updateTime;
......@@ -327,6 +341,54 @@ public class WxEnterpriseDTO implements Serializable {
this.contactSecret = contactSecret;
}
public Date getWxSecretKeyLastTime() {
return wxSecretKeyLastTime;
}
public void setWxSecretKeyLastTime(Date wxSecretKeyLastTime) {
this.wxSecretKeyLastTime = wxSecretKeyLastTime;
}
public Date getContactSecretLastTime() {
return contactSecretLastTime;
}
public void setContactSecretLastTime(Date contactSecretLastTime) {
this.contactSecretLastTime = contactSecretLastTime;
}
public Date getMemberSecretLastTime() {
return memberSecretLastTime;
}
public void setMemberSecretLastTime(Date memberSecretLastTime) {
this.memberSecretLastTime = memberSecretLastTime;
}
public Boolean getWxSecretKeyFlag() {
return !StringUtils.isEmpty(this.wxSecretKey);
}
public void setWxSecretKeyFlag(Boolean wxSecretKeyFlag) {
this.wxSecretKeyFlag = wxSecretKeyFlag;
}
public Boolean getMemberSecretFlag() {
return !StringUtils.isEmpty(this.memberSecret);
}
public void setMemberSecretFlag(Boolean memberSecretFlag) {
this.memberSecretFlag = memberSecretFlag;
}
public Boolean getContactSecretFlag() {
return !StringUtils.isEmpty(this.contactSecret);
}
public void setContactSecretFlag(Boolean contactSecretFlag) {
this.contactSecretFlag = contactSecretFlag;
}
......
......@@ -21,4 +21,6 @@ public interface MemberUnionidRelatedApiService {
String add(String wxEnterpriseId, String selfExternalUserId, String userId1);
void freshWxFrend(String wxEnterpriseId, String wxUserId);
}
......@@ -62,6 +62,12 @@ public class TabHaobanWxEnterprise implements Serializable {
private String contactSecret;
private Date wxSecretKeyLastTime;
private Date contactSecretLastTime;
private Date memberSecretLastTime;
private Date createTime;
private Date updateTime;
......@@ -316,6 +322,30 @@ public class TabHaobanWxEnterprise implements Serializable {
this.contactSecret = contactSecret;
}
public Date getWxSecretKeyLastTime() {
return wxSecretKeyLastTime;
}
public void setWxSecretKeyLastTime(Date wxSecretKeyLastTime) {
this.wxSecretKeyLastTime = wxSecretKeyLastTime;
}
public Date getContactSecretLastTime() {
return contactSecretLastTime;
}
public void setContactSecretLastTime(Date contactSecretLastTime) {
this.contactSecretLastTime = contactSecretLastTime;
}
public Date getMemberSecretLastTime() {
return memberSecretLastTime;
}
public void setMemberSecretLastTime(Date memberSecretLastTime) {
this.memberSecretLastTime = memberSecretLastTime;
}
......
......@@ -399,27 +399,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
List<TabHaobanWxEnterpriseRelated> list = wxEnterpriseRelatedService.getByWxEnterpriseId(wxEnterprise.getWxEnterpriseId());
String unionIdJson = qywxUserApiService.getCorpSelfExternalUseridInfo(wxEnterprise.getCorpid(), wxEnterprise.getWxSecretKey(), selfExternalUserId);
String externalUserId = selfExternalUserId;
// String uJ = qywxUserApiService.getExternalUseridInfo(wxEnterprise.getCorpid(), config.getSuiteId(), externalUserId);
// if(StringUtils.isNotBlank(uJ)){
// JSONObject jo = JSON.parseObject(unionIdJson);
// String external_contact = jo.getString("external_contact");
// String uj_follow_user = jo.getString("follow_user");
// if(StringUtils.isNotBlank(uj_follow_user)){
// JSONArray j = JSON.parseArray(uj_follow_user);
// String uj_userId = "";
// for (Object object : j) {
// String followJson = JSON.toJSONString(object);
// JSONObject follow = JSON.parseObject(followJson);
// uj_userId = follow.getString("userid");
// if(uj_userId.equals(userId1)){
//
// }
// }
// }
// }
MemberUnionidRelatedDTO dto = new MemberUnionidRelatedDTO();
log.info("【新增外部联系人回调】unionIdJson={}",JSON.toJSONString(unionIdJson));
String unionId = "";
String name = "";
......@@ -453,6 +432,42 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
}
String wxRes = qywxUserApiService.listExternalUserid(wxEnterprise.getCorpid(), config.getSuiteId(), userId1);
JSONObject wxJson = JSON.parseObject(wxRes);
String externalUserId = "";
MemberUnionidRelatedDTO dto = new MemberUnionidRelatedDTO();
if("0".equals(wxJson.getString("errcode"))){
String external_userid = wxJson.getString("external_userid");
JSONArray jsonArr = wxJson.getJSONArray(external_userid);
String wxName = "";
for (Object externalUserid : jsonArr) {
String uJ = qywxUserApiService.getExternalUseridInfo(wxEnterprise.getCorpid(), config.getSuiteId(), externalUserid.toString());
if(StringUtils.isNotBlank(uJ)){
JSONObject jo = JSON.parseObject(unionIdJson);
String external_contact = jo.getString("external_contact");
String uj_follow_user = jo.getString("follow_user");
if(StringUtils.isNotBlank(external_contact)){
JSONObject jt = JSON.parseObject(external_contact);
externalUserId = jt.getString("external_userid");
wxName = EmojiFilterUtil.filterEmojiLast(jt.getString("name"), true);
}
if(StringUtils.isNotBlank(uj_follow_user)){
JSONArray j = JSON.parseArray(uj_follow_user);
String uj_userId = "";
for (Object object : j) {
String followJson = JSON.toJSONString(object);
JSONObject follow = JSON.parseObject(followJson);
uj_userId = follow.getString("userid");
if(uj_userId.equals(userId1) && createTime.equals(follow.getString("createtime")) && name.equals(wxName)){
dto.setExternalUserid(externalUserId);
}
}
}
}
}
}
for (TabHaobanWxEnterpriseRelated tabHaobanWxEnterpriseRelated : list) {
......@@ -553,4 +568,29 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
List<MemberUnionidRelatedDTO> list = memberUnionRelatedService.getByWxUserIdAndWxEnterpriseId(wxUserId,wxEnterpriseId);
return list;
}
@Override
public void freshWxFrend(String wxEnterpriseId, String wxUserId) {
WxEnterpriseDTO enterprise = wxEnterpriseService.selectById(wxEnterpriseId);
String res = qywxUserApiService.listSelfExternalUserid(enterprise.getCorpid(), enterprise.getWxSecretKey(), wxUserId);
if(StringUtils.isBlank(res)){
return;
}
JSONObject json = JSON.parseObject(res);
if("0".equals(json.getString("errcode"))){
String external_userid = json.getString("external_userid");
JSONArray jsonArr = json.getJSONArray(external_userid);
List<MemberUnionidRelatedDTO> list = this.getByWxUserIdAndWxEnterpriseId(wxUserId, wxEnterpriseId);
List<String> externalUserIdList = list.stream().map(student->student.getExternalUserid())
.collect(Collectors.toList());
for (Object object : jsonArr) {
if(externalUserIdList.contains(object.toString())){
continue;
}else{
//String string = qywxUserApiService.getCorpSelfExternalUseridInfo(enterprise.getCorpid(), enterprise.getWxSecretKey(), object.toString());
this.add(wxEnterpriseId, object.toString(), wxUserId);
}
}
}
}
}
......@@ -30,6 +30,9 @@
<result column="level" property="level" jdbcType="INTEGER" />
<result column="contact_flag" property="contactFlag" jdbcType="INTEGER" />
<result column="bind_flag" property="bindFlag" jdbcType="INTEGER" />
<result column="wx_secret_key_last_time" property="wxSecretKeyLastTime" jdbcType="TIMESTAMP" />
<result column="member_secret_last_time" property="memberSecretLastTime" jdbcType="TIMESTAMP"/>
<result column="contact_secret_last_time" property="contactSecretLastTime" jdbcType="TIMESTAMP"/>
<result column="status_flag" property="statusFlag" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
......@@ -38,7 +41,7 @@
wx_enterprise_id, corpid, permanent_code, corp_name, corp_type, corp_square_logo_url,
corp_user_max, corp_full_name, subject_type, verified_end_time, corp_wxqrcode, corp_scale,
corp_industry, corp_sub_industry, location, auth_info, agent, agentid, appid, name,
square_logo_url, round_logo_url, level, bind_flag, status_flag, create_time, update_time,contact_flag,wx_secret_key
square_logo_url, round_logo_url, level, bind_flag, status_flag, create_time, update_time,contact_flag,wx_secret_key,wx_secret_key_last_time,member_secret_last_time,contact_secret_last_time
,member_secret,contact_secret
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
......@@ -350,6 +353,15 @@
<if test="contactSecret != null" >
contact_secret = #{contactSecret,jdbcType=VARCHAR},
</if>
<if test="wxSecretKeyLastTime != null" >
wx_secret_key_last_time = #{wxSecretKeyLastTime,jdbcType=TIMESTAMP},
</if>
<if test="contactSecretLastTime != null" >
contact_secret_last_time = #{contactSecretLastTime,jdbcType=TIMESTAMP},
</if>
<if test="memberSecretLastTime != null" >
member_secret_last_time = #{memberSecretLastTime,jdbcType=TIMESTAMP},
</if>
</set>
where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
</update>
......@@ -383,6 +395,9 @@
create_time = #{createTime,jdbcType=TIMESTAMP},
wx_secret_key = #{wxSecretKey,jdbcType=VARCHAR},
contact_secret = #{contactSecret,jdbcType=VARCHAR},
wx_secret_key_last_time = #{wxSecretKeyLastTime,jdbcType=TIMESTAMP},
contact_secret_last_time = #{contactSecretLastTime,jdbcType=TIMESTAMP},
member_secret_last_time = #{memberSecretLastTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
</update>
......
......@@ -83,7 +83,7 @@ public class DepartmentContoller extends WebBaseController{
private StaffDepartmentRelatedApiService staffDepartmentRelatedApiService;
@RequestMapping("department-list")
public HaobanResponse departmentList(String parentId,BasePageInfo pageInfo,String keyWord) {
LoginVO login = (LoginVO) AuthRequestUtil.getSessionUser();
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
logger.info("【部门列表】wxEnterpriseId={}",wxEnterpriseId);
......
......@@ -100,6 +100,7 @@ public class WxEnterpriseController extends WebBaseController{
return resultResponse(HaoBanErrCode.ERR_1);
}
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseApiService.getOne(wxEnterpriseId);
wxEnterpriseDTO.setSmallVersion("免费版");
return resultResponse(HaoBanErrCode.ERR_1,wxEnterpriseDTO);
}
......@@ -245,6 +246,8 @@ public class WxEnterpriseController extends WebBaseController{
}
UserDTO user = qywxUserApiService.getSelfWorkWxUser(wxEnterprise.getCorpid(), contactSecret, login.getStaffDTO().getWxUserId());
if(user != null){
wxEnterprise.setContactSecret(contactSecret);
wxEnterprise.setContactSecretLastTime(new Date());
return resultResponse(HaoBanErrCode.ERR_1,true);
}else{
return resultResponse(HaoBanErrCode.ERR_1,false);
......@@ -273,6 +276,7 @@ public class WxEnterpriseController extends WebBaseController{
JSONObject json = JSON.parseObject(res);
if("0".equals(json.getString("errcode"))){
wxEnterprise.setWxSecretKey(wxSecretKey);
wxEnterprise.setWxSecretKeyLastTime(new Date());
wxEnterpriseApiService.update(wxEnterprise);
return resultResponse(HaoBanErrCode.ERR_1,true);
}else{
......@@ -297,6 +301,9 @@ public class WxEnterpriseController extends WebBaseController{
}
UserDTO user = qywxUserApiService.getSelfWorkWxUser(wxEnterprise.getCorpid(), memberSecret, login.getStaffDTO().getWxUserId());
if(user != null){
wxEnterprise.setMemberSecret(memberSecret);
wxEnterprise.setMemberSecretLastTime(new Date());
wxEnterpriseApiService.update(wxEnterprise);
return resultResponse(HaoBanErrCode.ERR_1,true);
}else{
return resultResponse(HaoBanErrCode.ERR_1,false);
......
......@@ -165,8 +165,7 @@ public class ClerkController extends WebBaseController{
if(size > 20){
ClerkDTO clerk = clerkService.getClerkByClerkCode(departmentDTO.getEnterpriseId(), related.getClerkCode());
if(clerk != null){
dto.setMemberCount(0);
// dto.setMemberCount(distributeApiService.getClerkMemberCount(departmentDTO.getEnterpriseId(), clerk.getClerkId(), storeId));
dto.setMemberCount(distributeApiService.getClerkMemberCount(departmentDTO.getEnterpriseId(), clerk.getClerkId(), storeId));
}
}else{
dto.setMemberCount(0);
......@@ -258,24 +257,24 @@ public class ClerkController extends WebBaseController{
@HttpLimit
@RequestMapping("/staff-add")
public HaobanResponse staffAdd(StaffDTO staffDTO,String storeId,String clerkCode) {
// String wxEnterpriseId = staffDTO.getWxEnterpriseId();
// String staffName = staffDTO.getStaffName();
// String phoneNumber = staffDTO.getPhoneNumber();
// String nationcode = staffDTO.getNationCode();
// String postion = staffDTO.getPostion();
// Integer sex = staffDTO.getSex();
// staffDTO.setWxEnterpriseId(wxEnterpriseId);
// if(StringUtils.isBlank(staffName)) {
// return resultResponse(HaoBanErrCode.ERR_10004);
// }
// StaffDTO staff = staffApiService.selectByNationcodeAndPhoneNumber(wxEnterpriseId,nationcode,phoneNumber);
// if(staff != null) {
// return resultResponse(HaoBanErrCode.ERR_10005);
// }
// boolean flag = syncHaobanToGicServiceApi.syncClerkToGicClerkAdd(storeId, clerkCode, sex, staffName, phoneNumber, nationcode, postion);
// if(!flag){
// return resultResponse(HaoBanErrCode.ERR_10010);
// }
String wxEnterpriseId = staffDTO.getWxEnterpriseId();
String staffName = staffDTO.getStaffName();
String phoneNumber = staffDTO.getPhoneNumber();
String nationcode = staffDTO.getNationCode();
String postion = staffDTO.getPostion();
Integer sex = staffDTO.getSex();
staffDTO.setWxEnterpriseId(wxEnterpriseId);
if(StringUtils.isBlank(staffName)) {
return resultResponse(HaoBanErrCode.ERR_10004);
}
StaffDTO staff = staffApiService.selectByNationcodeAndPhoneNumber(wxEnterpriseId,nationcode,phoneNumber);
if(staff != null) {
return resultResponse(HaoBanErrCode.ERR_10005);
}
boolean flag = syncHaobanToGicServiceApi.syncClerkToGicClerkAdd(storeId, clerkCode, sex, staffName, phoneNumber, nationcode, postion);
if(!flag){
return resultResponse(HaoBanErrCode.ERR_10010);
}
return resultResponse(HaoBanErrCode.ERR_1);
}
......@@ -302,10 +301,10 @@ public class ClerkController extends WebBaseController{
staffApiService.del(staffDepartmentRelatedId);
}else{
ClerkDTO clerk = clerkService.getClerkByClerkCode(departmentDTO.getEnterpriseId(), related.getClerkCode());
// if(clerk != null && distributeApiService.getClerkMemberCount(departmentDTO.getEnterpriseId(), clerk.getClerkId(), storeId) == 0){
// syncHaobanToGicServiceApi.delGicClerk(clerk.getClerkId());
// staffApiService.del(staffDepartmentRelatedId);
// }
if(clerk != null && distributeApiService.getClerkMemberCount(departmentDTO.getEnterpriseId(), clerk.getClerkId(), storeId) == 0){
syncHaobanToGicServiceApi.delGicClerk(clerk.getClerkId());
staffApiService.del(staffDepartmentRelatedId);
}
}
}
if(flag){
......@@ -338,36 +337,20 @@ public class ClerkController extends WebBaseController{
//刷新微信好友
@RequestMapping("/fresh-wx-friend")
public HaobanResponse freshWxFrend(String staffId,String storeId,String wxEnterpriseId,String staffDepartmentRelatedId,String wxUserId) {
// StaffDTO staff = staffApiService.selectById(staffId);
// String yyyyMM = DateUtil.dateToStr(new Date(), "yyyyMM");
// if(staff == null){
// return resultResponse(HaoBanErrCode.ERR_10006);
// }
// String key = "haoban_fresh_wx_friend" + yyyyMM + staffId;
// Integer count = RedisUtil.getCache(key) == null ? 0 : (Integer)RedisUtil.getCache(key);
// if(count == null || count < 4){
// WxEnterpriseDTO enterprise = wxEnterpriseApiService.getOne(wxEnterpriseId);
// RedisUtil.setCache(key,count + 1,31 * 24 * 60 * 60l);
// String res = qywxUserApiService.listSelfExternalUserid(enterprise.getCorpid(), enterprise.getWxSecretKey(), staff.getWxUserId());
// JSONObject json = JSON.parseObject(res);
// if("0".equals(json.getString("errcode"))){
// String external_userid = json.getString("external_userid");
// JSONArray jsonArr = json.getJSONArray(external_userid);
// List<MemberUnionidRelatedDTO> list = memberUnionidRelatedApiService.getByWxUserIdAndWxEnterpriseId(wxUserId, wxEnterpriseId);
// List<String> externalUserIdList = list.stream().map(student->student.getExternalUserid())
// .collect(Collectors.toList());
// for (Object object : jsonArr) {
// if(externalUserIdList.contains(object.toString())){
// continue;
// }else{
// //String string = qywxUserApiService.getCorpSelfExternalUseridInfo(enterprise.getCorpid(), enterprise.getWxSecretKey(), object.toString());
// memberUnionidRelatedApiService.add(wxEnterpriseId, object.toString(), wxUserId);
// }
// }
// }
// }else{
// return resultResponse(HaoBanErrCode.ERR_10011);
// }
StaffDTO staff = staffApiService.selectById(staffId);
String yyyyMM = DateUtil.dateToStr(new Date(), "yyyyMM");
if(staff == null){
return resultResponse(HaoBanErrCode.ERR_10006);
}
String key = "haoban_fresh_wx_friend" + yyyyMM + staffId;
Integer count = RedisUtil.getCache(key) == null ? 0 : (Integer)RedisUtil.getCache(key);
if(count == null || count < 4){
RedisUtil.setCache(key,count + 1,31 * 24 * 60 * 60l);
memberUnionidRelatedApiService.freshWxFrend(wxEnterpriseId, wxUserId);
}else{
return resultResponse(HaoBanErrCode.ERR_10011);
}
return resultResponse(HaoBanErrCode.ERR_1);
}
......
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