|
|
@ -5,15 +5,13 @@ import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; |
|
|
|
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; |
|
|
|
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo; |
|
|
|
import cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils; |
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.elink.esua.epdc.async.GroupTask; |
|
|
|
import com.elink.esua.epdc.common.token.dto.TokenDto; |
|
|
|
import com.elink.esua.epdc.common.token.util.CpUserDetailRedis; |
|
|
|
import com.elink.esua.epdc.commons.tools.constant.NumConstant; |
|
|
|
import com.elink.esua.epdc.commons.tools.enums.UserAuthTypeEnum; |
|
|
|
import com.elink.esua.epdc.commons.tools.enums.UserSexEnum; |
|
|
|
import com.elink.esua.epdc.commons.tools.enums.UserTagEnum; |
|
|
|
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; |
|
|
|
import com.elink.esua.epdc.commons.tools.enums.*; |
|
|
|
import com.elink.esua.epdc.commons.tools.exception.RenException; |
|
|
|
import com.elink.esua.epdc.commons.tools.redis.RedisUtils; |
|
|
|
import com.elink.esua.epdc.commons.tools.utils.*; |
|
|
@ -38,6 +36,8 @@ import com.elink.esua.epdc.enums.AppUserStatesEnum; |
|
|
|
import com.elink.esua.epdc.feign.*; |
|
|
|
import com.elink.esua.epdc.jwt.JwtTokenProperties; |
|
|
|
import com.elink.esua.epdc.jwt.JwtTokenUtils; |
|
|
|
import com.elink.esua.epdc.modules.points.feign.PointsFeignClient; |
|
|
|
import com.elink.esua.epdc.pointcommons.tools.dto.PointsRuleResultDTO; |
|
|
|
import com.elink.esua.epdc.redis.AppUserRedis; |
|
|
|
import com.elink.esua.epdc.service.AppUserService; |
|
|
|
import com.elink.esua.epdc.utils.UserTagUtils; |
|
|
@ -106,6 +106,9 @@ public class AppUserServiceImpl implements AppUserService { |
|
|
|
@Autowired |
|
|
|
private GroupFeignClient groupFeignClient; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private PointsFeignClient pointsFeignClient; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private AppVolunteerRankFeignClient appVolunteerRankFeignClient; |
|
|
|
|
|
|
@ -1427,4 +1430,54 @@ public class AppUserServiceImpl implements AppUserService { |
|
|
|
return userFeignClient.getDentityDetail(identityDetailFormDTO); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Result userSign(TokenDto userDetail) { |
|
|
|
//获取用户签到信息
|
|
|
|
Result<UserSignDTO> userSignInfoResult = userFeignClient.getUserSignInfoByUserId(userDetail.getUserId()); |
|
|
|
if(!userSignInfoResult.success()){ |
|
|
|
return new Result().error("获取用户签到信息出错!"); |
|
|
|
} |
|
|
|
UserSignDTO userSignDTO; |
|
|
|
//不是空则进行签到信息校验
|
|
|
|
if(userSignInfoResult.getData() != null){ |
|
|
|
userSignDTO = userSignInfoResult.getData(); |
|
|
|
if(DateUtils.format(new Date()).equals(DateUtils.format(userSignDTO.getLastSignTime()))){ |
|
|
|
return new Result().error("用户今天已签到!"); |
|
|
|
} |
|
|
|
userSignDTO.setConsequentSignDays(userSignDTO.getConsequentSignDays() + NumConstant.ONE); |
|
|
|
//判断签到日期是否是前天或者更前 若是前天或者更前则连续签到天数修改为1
|
|
|
|
if(DateUtil.betweenDay(userSignDTO.getLastSignTime(), new Date(),true) >= NumConstant.TWO){ |
|
|
|
userSignDTO.setConsequentSignDays(NumConstant.ONE); |
|
|
|
} |
|
|
|
userSignDTO.setLastSignTime(new Date()); |
|
|
|
//更新签到信息
|
|
|
|
Result userSignDTOResult = userFeignClient.saveOrUpdateSignById(userSignDTO); |
|
|
|
if(!userSignDTOResult.success()){ |
|
|
|
return new Result().error("更新签到信息出错!"); |
|
|
|
} |
|
|
|
}else{ |
|
|
|
userSignDTO = new UserSignDTO(); |
|
|
|
userSignDTO.setUserId(userDetail.getUserId()); |
|
|
|
userSignDTO.setConsequentSignDays(NumConstant.ONE); |
|
|
|
userSignDTO.setLastSignTime(new Date()); |
|
|
|
Result userSignDTOResult = userFeignClient.saveOrUpdateSignById(userSignDTO); |
|
|
|
if(!userSignDTOResult.success() || userSignDTOResult.getData()==null){ |
|
|
|
return new Result().error("新增签到信息出错!"); |
|
|
|
} |
|
|
|
userSignDTO.setId(userSignDTOResult.getData()+""); |
|
|
|
} |
|
|
|
//加积分操作
|
|
|
|
userFeignClient.addSignPoints(userSignDTO); |
|
|
|
//连续签到加积分操作
|
|
|
|
Result<PointsRuleResultDTO> pointsRuleByBehaviorCode = pointsFeignClient.getPointsRuleByBehaviorCode(BehaviorEnum.USER_CONSEQUENT_SIGN.getValue()); |
|
|
|
if(!pointsRuleByBehaviorCode.success() || pointsRuleByBehaviorCode.getData()==null){ |
|
|
|
return new Result().error("获取连续签到规则信息出错!"); |
|
|
|
} |
|
|
|
PointsRuleResultDTO pointsRuleResultDTO = pointsRuleByBehaviorCode.getData(); |
|
|
|
//当前连续签到天数如果等于附加值 则加连续签到积分
|
|
|
|
if(userSignDTO.getConsequentSignDays() % Integer.valueOf(pointsRuleResultDTO.getAddedVal()) == NumConstant.ZERO){ |
|
|
|
userFeignClient.addConsequentSignPoints(userSignDTO); |
|
|
|
} |
|
|
|
return new Result().ok("您已连续签到"+userSignDTO.getConsequentSignDays()+"天,继续努力吧"); |
|
|
|
} |
|
|
|
} |
|
|
|