| | |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.java110.core.context.IPageData; |
| | | import com.java110.core.context.PageData; |
| | | import com.java110.core.factory.GenerateCodeFactory; |
| | | import com.java110.dto.app.AppDto; |
| | | import com.java110.dto.fee.FeeDto; |
| | | import com.java110.dto.owner.OwnerAppUserDto; |
| | | import com.java110.dto.smallWeChat.SmallWeChatDto; |
| | | import com.java110.api.properties.WechatAuthProperties; |
| | | import com.java110.api.smo.AppAbstractComponentSMO; |
| | | import com.java110.api.smo.payment.IToPayOweFeeSMO; |
| | | import com.java110.api.smo.payment.adapt.IPayAdapt; |
| | | import com.java110.core.context.IPageData; |
| | | import com.java110.core.context.PageData; |
| | | import com.java110.core.factory.GenerateCodeFactory; |
| | | import com.java110.core.log.LoggerFactory; |
| | | import com.java110.dto.app.AppDto; |
| | | import com.java110.dto.community.CommunityDto; |
| | | import com.java110.dto.fee.FeeAttrDto; |
| | | import com.java110.dto.fee.FeeDto; |
| | | import com.java110.dto.owner.OwnerAppUserDto; |
| | | import com.java110.dto.smallWeChat.SmallWeChatDto; |
| | | import com.java110.intf.community.ICommunityV1InnerServiceSMO; |
| | | import com.java110.utils.cache.CommonCache; |
| | | import com.java110.utils.cache.MappingCache; |
| | | import com.java110.utils.constant.ServiceConstant; |
| | | import com.java110.utils.constant.WechatConstant; |
| | | import com.java110.utils.factory.ApplicationContextFactory; |
| | | import com.java110.utils.util.Assert; |
| | |
| | | import com.java110.utils.util.StringUtil; |
| | | import com.java110.vo.ResultVo; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.HttpMethod; |
| | | import org.springframework.http.HttpStatus; |
| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Service("toPayOweFeeSMOImpl") |
| | |
| | | @Autowired |
| | | private RestTemplate outRestTemplate; |
| | | |
| | | @Autowired |
| | | private ICommunityV1InnerServiceSMO communityV1InnerServiceSMOImpl; |
| | | |
| | | |
| | | @Autowired |
| | | private WechatAuthProperties wechatAuthProperties; |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | protected void validate(IPageData pd, JSONObject paramIn) { |
| | | |
| | | Assert.jsonObjectHaveKey(paramIn, "communityId", "请求报文中未包含communityId节点"); |
| | | Assert.jsonObjectHaveKey(paramIn, "roomId", "请求报文中未包含房屋信息节点"); |
| | | Assert.jsonObjectHaveKey(paramIn, "appId", "请求报文中未包含appId节点"); |
| | | |
| | | if (!paramIn.containsKey("ownerId") && !paramIn.containsKey("roomId")) { |
| | | throw new IllegalArgumentException("未包含房屋或者业主"); |
| | | } |
| | | if (StringUtil.isEmpty(paramIn.getString("ownerId")) && StringUtil.isEmpty(paramIn.getString("roomId"))) { |
| | | throw new IllegalArgumentException("未包含房屋或者业主"); |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | String payObjType = "3333"; |
| | | if(paramIn.containsKey("payObjType")){ |
| | | if (paramIn.containsKey("payObjType")) { |
| | | payObjType = paramIn.getString("payObjType"); |
| | | } |
| | | |
| | | String ownerId = paramIn.getString("ownerId"); |
| | | String roomId = paramIn.getString("roomId"); |
| | | |
| | | //查询用户ID |
| | | paramIn.put("userId", pd.getUserId()); |
| | | String url = "/feeApi/listOweFees?page=1&row=50&communityId=" + paramIn.getString("communityId") + "&payObjId=" + paramIn.getString("roomId") + "&payObjType="+payObjType; |
| | | String url = "/feeApi/listOweFees?page=1&row=50&communityId=" + paramIn.getString("communityId") + "&payObjId=" + roomId + "&payObjType=" + payObjType; |
| | | if(!StringUtil.isEmpty(ownerId)){ |
| | | url = "/feeApi/listOweFees?page=1&row=50&communityId=" + paramIn.getString("communityId") + "&ownerId=" + ownerId; |
| | | } |
| | | responseEntity = super.callCenterService(restTemplate, pd, "", url, HttpMethod.GET); |
| | | |
| | | if (responseEntity.getStatusCode() != HttpStatus.OK) { |
| | |
| | | feePrice = new BigDecimal(fees.getJSONObject(feeIndex).getDouble("feePrice")); |
| | | tmpMoney = tmpMoney.add(feePrice); |
| | | } |
| | | |
| | | String feeName = getFeeName(fees.getJSONObject(0)); |
| | | money = tmpMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); |
| | | String appType = OwnerAppUserDto.APP_TYPE_WECHAT_MINA; |
| | | if (AppDto.WECHAT_OWNER_APP_ID.equals(pd.getAppId())) { |
| | |
| | | payAdapt = StringUtil.isEmpty(payAdapt) ? DEFAULT_PAY_ADAPT : payAdapt; |
| | | //支付适配器 |
| | | IPayAdapt tPayAdapt = ApplicationContextFactory.getBean(payAdapt, IPayAdapt.class); |
| | | Map result = tPayAdapt.java110Payment(outRestTemplate, paramIn.getString("feeName"), paramIn.getString("tradeType"), |
| | | orderId, money, openId, smallWeChatDto,wechatAuthProperties.getOweFeeNotifyUrl()); |
| | | Map result = tPayAdapt.java110Payment(outRestTemplate, feeName, paramIn.getString("tradeType"), |
| | | orderId, money, openId, smallWeChatDto, wechatAuthProperties.getOweFeeNotifyUrl()); |
| | | responseEntity = new ResponseEntity(JSONObject.toJSONString(result), HttpStatus.OK); |
| | | if (!"0".equals(result.get("code"))) { |
| | | return responseEntity; |
| | |
| | | return responseEntity; |
| | | } |
| | | |
| | | private String getFeeName(JSONObject feeDto) { |
| | | //查询小区名称 |
| | | CommunityDto communityDto = new CommunityDto(); |
| | | communityDto.setCommunityId(feeDto.getString("communityId")); |
| | | List<CommunityDto> communityDtos = communityV1InnerServiceSMOImpl.queryCommunitys(communityDto); |
| | | |
| | | Assert.listOnlyOne(communityDtos, "小区不存在"); |
| | | |
| | | JSONArray feeAttrDtos = feeDto.getJSONArray("feeAttrDtos"); |
| | | if (feeAttrDtos == null || feeAttrDtos.size() < 1) { |
| | | return communityDtos.get(0).getName() + "-" + feeDto.getString("feeName"); |
| | | } |
| | | |
| | | for (int attrIndex = 0; attrIndex < feeAttrDtos.size(); attrIndex++) { |
| | | if (FeeAttrDto.SPEC_CD_PAY_OBJECT_NAME.equals(feeAttrDtos.getJSONObject(attrIndex).getString("specCd"))) { |
| | | return communityDtos.get(0).getName() + "-" + feeAttrDtos.getJSONObject(attrIndex).getString("value") + "-" + feeDto.getString("feeName"); |
| | | } |
| | | } |
| | | |
| | | return communityDtos.get(0).getName() + "-" + feeDto.getString("feeName"); |
| | | } |
| | | |
| | | |
| | | private SmallWeChatDto getSmallWechat(IPageData pd, JSONObject paramIn) { |
| | |
| | | pd.getAppId()); |
| | | responseEntity = this.callCenterService(restTemplate, pd, "", |
| | | "smallWeChat.listSmallWeChats?appId=" |
| | | + paramIn.getString("appId") + "&page=1&row=1&communityId="+paramIn.getString("communityId"), HttpMethod.GET); |
| | | + paramIn.getString("appId") + "&page=1&row=1&communityId=" + paramIn.getString("communityId"), HttpMethod.GET); |
| | | |
| | | if (responseEntity.getStatusCode() != HttpStatus.OK) { |
| | | return null; |