|
@@ -224,25 +224,24 @@ public class FsSignArticleReadDetailServiceImpl implements IFsSignArticleReadDet
|
|
|
QwUser qwUser = qwUserMapper.selectQwUserById(Long.valueOf(param.getQwUserId()));
|
|
QwUser qwUser = qwUserMapper.selectQwUserById(Long.valueOf(param.getQwUserId()));
|
|
|
if (qwUser == null) throw new CustomException("企微用户信息缺失");
|
|
if (qwUser == null) throw new CustomException("企微用户信息缺失");
|
|
|
|
|
|
|
|
- // 4. 获取用户在该小程序的 openId(若不存在则尝试补救一次)
|
|
|
|
|
- FsUserWx fsUserWx = fsUserWxService.selectByAppIdAndUserId(param.getAppId(), user.getUserId(), 1);
|
|
|
|
|
- if (fsUserWx == null) {
|
|
|
|
|
- handleFsUserWx(user, param.getAppId()); // 补救逻辑(已存在的老方法)
|
|
|
|
|
- fsUserWx = fsUserWxService.selectByAppIdAndUserId(param.getAppId(), user.getUserId(), 1);
|
|
|
|
|
- }
|
|
|
|
|
- if (fsUserWx == null || StringUtils.isEmpty(fsUserWx.getOpenId())) {
|
|
|
|
|
- throw new CustomException("用户openId获取失败");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
// ******************** 阶段二:组装微信参数并发送 ********************
|
|
// ******************** 阶段二:组装微信参数并发送 ********************
|
|
|
WxSendRedPacketParam wxParam = new WxSendRedPacketParam();
|
|
WxSendRedPacketParam wxParam = new WxSendRedPacketParam();
|
|
|
- wxParam.setOpenId(fsUserWx.getOpenId());
|
|
|
|
|
|
|
+ //处理多小程序问题
|
|
|
|
|
+ FsUserWx fsUserWx = fsUserWxService.selectByAppIdAndUserId(param.getAppId(),user.getUserId(),1);
|
|
|
|
|
+ if (fsUserWx ==null){
|
|
|
|
|
+ try {
|
|
|
|
|
+ handleFsUserWx(user,param.getAppId());
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
+ log.error("【更新或插入用户与小程序的绑定关系失败】:{}", user.getUserId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }else {
|
|
|
|
|
+ wxParam.setOpenId(fsUserWx.getOpenId());
|
|
|
|
|
+ }
|
|
|
wxParam.setAmount(article.getAmount());
|
|
wxParam.setAmount(article.getAmount());
|
|
|
wxParam.setRedPacketMode(1);
|
|
wxParam.setRedPacketMode(1);
|
|
|
wxParam.setAppId(param.getAppId());
|
|
wxParam.setAppId(param.getAppId());
|
|
|
wxParam.setMpAppId(param.getAppId());
|
|
wxParam.setMpAppId(param.getAppId());
|
|
|
wxParam.setUser(user);
|
|
wxParam.setUser(user);
|
|
|
- wxParam.setPhoneTag(true);
|
|
|
|
|
wxParam.setSource(2);
|
|
wxParam.setSource(2);
|
|
|
wxParam.setCompanyId(companyUser.getCompanyId());
|
|
wxParam.setCompanyId(companyUser.getCompanyId());
|
|
|
wxParam.setSourceType(1L); // 文章红包标识
|
|
wxParam.setSourceType(1L); // 文章红包标识
|
|
@@ -260,8 +259,12 @@ public class FsSignArticleReadDetailServiceImpl implements IFsSignArticleReadDet
|
|
|
private R handleExistingRecord(SignRedPacketRecord record) {
|
|
private R handleExistingRecord(SignRedPacketRecord record) {
|
|
|
if (record.getCollectType() == 1) {
|
|
if (record.getCollectType() == 1) {
|
|
|
return R.error("您已领取过该文章红包");
|
|
return R.error("您已领取过该文章红包");
|
|
|
- } else if (record.getCollectType() == 0) {
|
|
|
|
|
- return R.ok(record.getResult());
|
|
|
|
|
|
|
+ } else if (record.getCollectType()==0||record.getCollectTag() == 1) {
|
|
|
|
|
+ if (StringUtils.isNotEmpty(record.getResult())) {
|
|
|
|
|
+ return R.ok().put("data",JSON.parseObject(record.getResult(), R.class));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return R.error("操作频繁,请稍后再试!");
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
return R.error("红包状态异常");
|
|
return R.error("红包状态异常");
|
|
|
}
|
|
}
|
|
@@ -278,8 +281,7 @@ public class FsSignArticleReadDetailServiceImpl implements IFsSignArticleReadDet
|
|
|
QwUser qwUser,
|
|
QwUser qwUser,
|
|
|
FsSignArticle article) {
|
|
FsSignArticle article) {
|
|
|
|
|
|
|
|
- // 修正:code 是 Integer,必须用 equals 比较
|
|
|
|
|
- if (!Integer.valueOf(200).equals(sendResult.get("code"))) {
|
|
|
|
|
|
|
+ if (!sendResult.get("code").equals(200)) {
|
|
|
log.error("打卡文章红包-领取失败: {}", sendResult);
|
|
log.error("打卡文章红包-领取失败: {}", sendResult);
|
|
|
throw new CustomException("领取失败");
|
|
throw new CustomException("领取失败");
|
|
|
}
|
|
}
|
|
@@ -299,9 +301,9 @@ public class FsSignArticleReadDetailServiceImpl implements IFsSignArticleReadDet
|
|
|
|
|
|
|
|
Date now = DateUtils.getNowDate();
|
|
Date now = DateUtils.getNowDate();
|
|
|
record.setSignUrl(param.getSignUrl());
|
|
record.setSignUrl(param.getSignUrl());
|
|
|
- record.setCollectTag(0);
|
|
|
|
|
|
|
+ record.setCollectTag(1);
|
|
|
record.setCollectType(0);
|
|
record.setCollectType(0);
|
|
|
- record.setSignType(1); // 1-直接打卡
|
|
|
|
|
|
|
+ record.setSignType(param.getSignType());
|
|
|
record.setSendTime(now);
|
|
record.setSendTime(now);
|
|
|
record.setUpdateTime(now);
|
|
record.setUpdateTime(now);
|
|
|
record.setCreateTime(now);
|
|
record.setCreateTime(now);
|
|
@@ -316,7 +318,7 @@ public class FsSignArticleReadDetailServiceImpl implements IFsSignArticleReadDet
|
|
|
record.setQwUserName(qwUser.getQwUserName());
|
|
record.setQwUserName(qwUser.getQwUserName());
|
|
|
|
|
|
|
|
signRedPacketRecordMapper.insertSignRedPacketRecord(record);
|
|
signRedPacketRecordMapper.insertSignRedPacketRecord(record);
|
|
|
- return sendResult;
|
|
|
|
|
|
|
+ return R.ok().put("data",sendResult);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|