package com.java110.acct.integral.impl; import com.alibaba.fastjson.JSONObject; import com.java110.acct.integral.IComputeDeductionIntegral; import com.java110.dto.MallDataDto; import com.java110.dto.integral.DeductionIntegralDto; import com.java110.dto.integral.GiftIntegralDto; import com.java110.dto.user.UserDto; import com.java110.intf.job.IMallInnerServiceSMO; import com.java110.intf.user.IUserV1InnerServiceSMO; import com.java110.utils.cache.CommonCache; import com.java110.utils.cache.MappingCache; import com.java110.utils.util.ListUtil; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class ComputeDeductionIntegralImpl implements IComputeDeductionIntegral { private static final String MALL_DOMAIN = "MALL"; @Autowired private IMallInnerServiceSMO mallInnerServiceSMOImpl; @Autowired private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl; @Override public DeductionIntegralDto deduction(String userId,String orderId, String communityId) { String mallSwitch = MappingCache.getValue(MALL_DOMAIN, "MALL_SWITCH"); if (!"ON".equals(mallSwitch)) { return new DeductionIntegralDto(0, 0); } UserDto userDto = new UserDto(); userDto.setUserId(userId); List userDtos = userV1InnerServiceSMOImpl.queryUsers(userDto); if (ListUtil.isNull(userDtos)) { return new DeductionIntegralDto(0, 0); } JSONObject reqJson = new JSONObject(); reqJson.put("link", userDtos.get(0).getTel()); ResultVo resultVo = mallInnerServiceSMOImpl.postMallData(new MallDataDto("queryAppUserIntegralBmoImpl", reqJson)); if (resultVo.getCode() != ResultVo.CODE_OK) { return new DeductionIntegralDto(0, 0); } JSONObject data = reqJson.getJSONObject("data"); DeductionIntegralDto deductionIntegralDto = new DeductionIntegralDto(data.getIntValue("integral"), data.getDoubleValue("integralMoney")); CommonCache.setValue("integral_deduction_" + orderId, JSONObject.toJSONString(deductionIntegralDto), CommonCache.PAY_DEFAULT_EXPIRE_TIME); return deductionIntegralDto; } }