java110 2 lat temu
rodzic
commit
14c1af7d5b

+ 1 - 1
service-api/src/main/java/com/java110/api/smo/GetCommunityStoreInfoSMOImpl.java

@@ -67,7 +67,7 @@ public class GetCommunityStoreInfoSMOImpl extends DefaultAbstractComponentSMO im
         if(paramOut.containsKey("code") && ResultVo.CODE_OK != paramOut.getIntValue("code")){
             throw new IllegalArgumentException(paramOut.getString("msg"));
         }
-        return new ResultVo(responseEntity.getStatusCode() == HttpStatus.OK ? ResultVo.CODE_OK : ResultVo.CODE_ERROR, responseEntity.getBody());
+        return new ResultVo(responseEntity.getStatusCode() == HttpStatus.OK ? ResultVo.CODE_OK : ResultVo.CODE_ERROR, responseEntity.getBody(),responseEntity.getBody());
     }
 
     @Override

+ 21 - 10
service-fee/src/main/java/com/java110/fee/cmd/fee/PayOweFeeCmd.java

@@ -121,6 +121,24 @@ public class PayOweFeeCmd extends Cmd {
             Assert.hasKeyAndValue(feeObject, "startTime", "未包含开始时间");
             Assert.hasKeyAndValue(feeObject, "endTime", "未包含结束时间");
             Assert.hasKeyAndValue(feeObject, "receivedAmount", "未包含实收金额");
+
+            //计算 应收金额
+            FeeDto feeDto = new FeeDto();
+            feeDto.setFeeId(feeObject.getString("feeId"));
+            feeDto.setCommunityId(feeObject.getString("communityId"));
+            Date pageEndTime = null;
+            List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+            if (feeDtos == null || feeDtos.size() != 1) {
+                throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "查询费用信息失败,未查到数据或查到多条数据");
+            }
+            feeDto = feeDtos.get(0);
+
+            pageEndTime = DateUtil.getDateFromStringB(feeObject.getString("endTime"));
+            if (pageEndTime.getTime() <= feeDto.getEndTime().getTime()) {
+                throw new IllegalArgumentException("可能存在重复缴费,请刷新页面重新缴费");
+            }
+
+            feeObject.put("feeDto", feeDto);
         }
     }
 
@@ -340,18 +358,11 @@ public class PayOweFeeCmd extends Cmd {
         businessFeeDetail.putAll(paramInJson);
         businessFeeDetail.put("detailId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
         businessFeeDetail.put("primeRate", paramInJson.getString("primeRate"));
-        //计算 应收金额
-        FeeDto feeDto = new FeeDto();
-        feeDto.setFeeId(paramInJson.getString("feeId"));
-        feeDto.setCommunityId(paramInJson.getString("communityId"));
-        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
-        if (feeDtos == null || feeDtos.size() != 1) {
-            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "查询费用信息失败,未查到数据或查到多条数据");
-        }
+        FeeDto feeDto = (FeeDto) paramInJson.get("feeDto");
         if (!businessFeeDetail.containsKey("state") || StringUtil.isEmpty(businessFeeDetail.getString("state"))) {
             businessFeeDetail.put("state", "1400");
         }
-        feeDto = feeDtos.get(0);
+
         businessFeeDetail.put("startTime", paramInJson.getString("startTime"));
         BigDecimal cycles = null;
         Map feePriceAll = computeFeeSMOImpl.getFeePrice(feeDto);
@@ -387,7 +398,7 @@ public class PayOweFeeCmd extends Cmd {
         payFeeDetailPo.setCashierId(userDto.getUserId());
         payFeeDetailPo.setCashierName(userDto.getName());
         //todo 缓存收据编号
-        CommonCache.setValue(payFeeDetailPo.getDetailId()+CommonCache.RECEIPT_CODE,receiptCode,CommonCache.DEFAULT_EXPIRETIME_TWO_MIN);
+        CommonCache.setValue(payFeeDetailPo.getDetailId() + CommonCache.RECEIPT_CODE, receiptCode, CommonCache.DEFAULT_EXPIRETIME_TWO_MIN);
         int flag = payFeeDetailV1InnerServiceSMOImpl.savePayFeeDetailNew(payFeeDetailPo);
 
         if (flag < 1) {

+ 68 - 0
service-user/src/main/java/com/java110/user/cmd/wechat/GetOpenIdByCodeCmd.java

@@ -0,0 +1,68 @@
+package com.java110.user.cmd.wechat;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.log.LoggerFactory;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+
+import java.text.ParseException;
+
+/**
+ * 根据小程序code 获取openId
+ */
+
+@Java110Cmd(serviceCode = "wechat.getOpenIdByCode")
+public class GetOpenIdByCodeCmd extends Cmd {
+    private final static Logger logger = LoggerFactory.getLogger(GetOpenIdByCodeCmd.class);
+    @Autowired
+    private RestTemplate outRestTemplate;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        Assert.hasKeyAndValue(reqJson, "code", "未包含code");
+        Assert.hasKeyAndValue(reqJson, "appId", "未包含小程序ID");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        if("MALL".equals(reqJson.getString("appId"))){
+            MappingCache.getValue()
+        }
+
+
+        ResponseEntity<String> responseEntity;
+        String code = reqJson.getString("code");
+        String urlString = "https://api.weixin.qq.com/sns/jscode2session?appid={appId}&secret={secret}&js_code={code}&grant_type={grantType}";
+        String response = outRestTemplate.getForObject(
+                urlString, String.class,
+                smallWeChatDto.getAppId(),
+                smallWeChatDto.getAppSecret(),
+                code,
+                wechatAuthProperties.getGrantType());
+
+        logger.debug("wechatAuthProperties:" + JSONObject.toJSONString(wechatAuthProperties));
+
+        logger.debug("微信返回报文:" + response);
+
+        //Assert.jsonObjectHaveKey(response, "errcode", "返回报文中未包含 错误编码,接口出错");
+        JSONObject responseObj = JSONObject.parseObject(response);
+
+        if (responseObj.containsKey("errcode") && !"0".equals(responseObj.getString("errcode"))) {
+            throw new IllegalArgumentException("微信验证失败,可能是code失效" + responseObj);
+        }
+
+        String openId = responseObj.getString("openid");
+        String sessionKey = responseObj.getString("session_key");
+
+    }
+}

+ 1 - 1
springboot/src/main/java/com/java110/boot/smo/GetCommunityStoreInfoSMOImpl.java

@@ -44,7 +44,7 @@ public class GetCommunityStoreInfoSMOImpl extends DefaultAbstractComponentSMO im
             throw new IllegalArgumentException(paramJson.getString("msg"));
         }
 
-        return new ResultVo(responseEntity.getStatusCode() == HttpStatus.OK ? ResultVo.CODE_OK : ResultVo.CODE_ERROR, responseEntity.getBody());
+        return new ResultVo(responseEntity.getStatusCode() == HttpStatus.OK ? ResultVo.CODE_OK : ResultVo.CODE_ERROR, responseEntity.getBody(),responseEntity.getBody());
     }
 
     @Override