Просмотр исходного кода

[取消关注][修改]:取消关注,更新数据库信息

release
Stormeye Wu 7 лет назад
Родитель
Сommit
f922d20a90
4 измененных файлов: 55 добавлений и 4 удалений
  1. +0
    -3
      mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java
  2. +8
    -0
      mallinkService/src/main/java/com/iformall/service/WxCUserService.java
  3. +5
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java
  4. +42
    -1
      mlWechatOpen/src/main/java/com/iformall/mp/handler/UnsubscribeHandler.java

+ 0
- 3
mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java Просмотреть файл

@@ -1,10 +1,7 @@
package com.iformall.mapper;

import java.util.HashMap;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.iformall.common.CommonMapper;
import com.iformall.domain.dto.WxCUserBasicInfoDto;
import com.iformall.domain.po.WxCUser;


+ 8
- 0
mallinkService/src/main/java/com/iformall/service/WxCUserService.java Просмотреть файл

@@ -32,6 +32,14 @@ public interface WxCUserService {
*/
WxCUser getByOpenId(WxCUser record);

/**
* 根据openId获得实体
*
* @param record
* @return
*/
WxCUser getByWxOpenId(WxCUser record);

/**
* 保存或更新实体
*


+ 5
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java Просмотреть файл

@@ -37,6 +37,11 @@ public class WxCUserServiceImpl implements WxCUserService {
return wxCUserMapper.findByOpenId(record);
}

@Override
public WxCUser getByWxOpenId(WxCUser record) {
return wxCUserMapper.selectOne(record);
}

@Override
public int saveOrUpdate(WxCUser user) {
int ret = 0;


+ 42
- 1
mlWechatOpen/src/main/java/com/iformall/mp/handler/UnsubscribeHandler.java Просмотреть файл

@@ -1,11 +1,19 @@
package com.iformall.mp.handler;

import com.iformall.domain.po.WxCUser;
import com.iformall.domain.vo.WxWeappInfo;
import com.iformall.enums.EnumAppType;
import com.iformall.enums.EnumWechatSubscribe;
import com.iformall.service.WxAuthorizerInfoService;
import com.iformall.service.WxCUserService;
import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.Map;

/**
@@ -14,13 +22,46 @@ import java.util.Map;
@Component
public class UnsubscribeHandler extends AbstractHandler {


@Autowired
private WxAuthorizerInfoService authorizerInfoService;

@Autowired
private WxCUserService userService;

@Override
public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
Map<String, Object> context, WxMpService wxMpService,
WxSessionManager sessionManager) {
String openId = wxMessage.getFromUser();
this.logger.info("取消关注用户 OPENID: " + openId);
// TODO 可以更新本地数据库为取消关注状态

WxWeappInfo weappInfo = authorizerInfoService.getWeappByAppId(wxMpService.getWxMpConfigStorage().getAppId());
try {
WxCUser userQ = new WxCUser();
userQ.setOpenAppId(weappInfo.getOpenAppid());
if(weappInfo.getType().equals(EnumAppType.MP_S.getCode())) {
userQ.setMpAppId(weappInfo.getAuthorizerAppid());
userQ.setMpOpenId(openId);
} else if(weappInfo.getType().equals(EnumAppType.MP_S.getCode())) {
userQ.setSubsAppId(weappInfo.getAuthorizerAppid());
userQ.setSubsOpenId(openId);
}
WxCUser oldUser = userService.getByWxOpenId(userQ);
if(oldUser != null) {
userQ.setId(oldUser.getId());
if(weappInfo.getType().equals(EnumAppType.MP_S.getCode())) {
userQ.setMpSubscribe(EnumWechatSubscribe.NO.getCode());
userQ.setMpSubscribeTime(new Date(wxMessage.getCreateTime()));
} else if(weappInfo.getType().equals(EnumAppType.MP_S.getCode())) {
userQ.setSubsSubscribe(EnumWechatSubscribe.NO.getCode());
userQ.setSubsSubscribeTime(new Date(wxMessage.getCreateTime()));
}
userService.saveOrUpdate(userQ);
}
} catch (Exception e) {
this.logger.error(e.getMessage());
}
return null;
}



Загрузка…
Отмена
Сохранить