Browse Source

优化diamante

java110 3 years ago
parent
commit
9099fef8bc

+ 11 - 0
java110-bean/src/main/java/com/java110/dto/communitySpacePerson/CommunitySpacePersonDto.java

@@ -21,6 +21,7 @@ public class CommunitySpacePersonDto extends PageDto implements Serializable {
     public static final String STATE_F = "预约失败";
     public static final String STATE_W = "待审核";
     public static final String STATE_WP = "待支付";
+    public static final String STATE_CL = "取消预约";
 
     private String receivableAmount;
     private String payWay;
@@ -40,6 +41,8 @@ public class CommunitySpacePersonDto extends PageDto implements Serializable {
     private String personTel;
     private String communityId;
 
+    private String orderId;
+
     private List<CommunitySpacePersonTimeDto> times;
 
 
@@ -201,4 +204,12 @@ public class CommunitySpacePersonDto extends PageDto implements Serializable {
     public void setVenueId(String venueId) {
         this.venueId = venueId;
     }
+
+    public String getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(String orderId) {
+        this.orderId = orderId;
+    }
 }

+ 8 - 0
java110-bean/src/main/java/com/java110/po/communitySpacePerson/CommunitySpacePersonPo.java

@@ -41,6 +41,8 @@ public class CommunitySpacePersonPo implements Serializable {
     private String personTel;
     private String communityId;
 
+    private String orderId;
+
     public String getReceivableAmount() {
         return receivableAmount;
     }
@@ -145,5 +147,11 @@ public class CommunitySpacePersonPo implements Serializable {
         this.communityId = communityId;
     }
 
+    public String getOrderId() {
+        return orderId;
+    }
 
+    public void setOrderId(String orderId) {
+        this.orderId = orderId;
+    }
 }

+ 60 - 37
java110-bean/src/main/java/com/java110/po/onlinePay/OnlinePayPo.java

@@ -16,7 +16,7 @@
 package com.java110.po.onlinePay;
 
 import java.io.Serializable;
-import java.util.Date;
+
 /**
  * 类表述: Po 数据模型实体对象 基本保持与数据库模型一直 用于 增加修改删除 等时的数据载体
  * add by 吴学文 at 2021-12-21 13:05:25 mail: 928255095@qq.com
@@ -28,90 +28,113 @@ import java.util.Date;
 public class OnlinePayPo implements Serializable {
 
     private String refundFee;
-private String mchId;
-private String orderId;
-private String totalFee;
-private String openId;
-private String appId;
-private String statusCd = "0";
-private String payId;
-private String state;
-private String message;
-private String payName;
-private String transactionId;
-public String getRefundFee() {
+    private String mchId;
+    private String orderId;
+    private String totalFee;
+    private String openId;
+    private String appId;
+    private String statusCd = "0";
+    private String payId;
+    private String state;
+    private String message;
+    private String payName;
+    private String transactionId;
+
+    public String getRefundFee() {
         return refundFee;
     }
-public void setRefundFee(String refundFee) {
+
+    public void setRefundFee(String refundFee) {
         this.refundFee = refundFee;
     }
-public String getMchId() {
+
+    public String getMchId() {
         return mchId;
     }
-public void setMchId(String mchId) {
+
+    public void setMchId(String mchId) {
         this.mchId = mchId;
     }
-public String getOrderId() {
+
+    public String getOrderId() {
         return orderId;
     }
-public void setOrderId(String orderId) {
+
+    public void setOrderId(String orderId) {
         this.orderId = orderId;
     }
-public String getTotalFee() {
+
+    public String getTotalFee() {
         return totalFee;
     }
-public void setTotalFee(String totalFee) {
+
+    public void setTotalFee(String totalFee) {
         this.totalFee = totalFee;
     }
-public String getOpenId() {
+
+    public String getOpenId() {
         return openId;
     }
-public void setOpenId(String openId) {
+
+    public void setOpenId(String openId) {
         this.openId = openId;
     }
-public String getAppId() {
+
+    public String getAppId() {
         return appId;
     }
-public void setAppId(String appId) {
+
+    public void setAppId(String appId) {
         this.appId = appId;
     }
-public String getStatusCd() {
+
+    public String getStatusCd() {
         return statusCd;
     }
-public void setStatusCd(String statusCd) {
+
+    public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
-public String getPayId() {
+
+    public String getPayId() {
         return payId;
     }
-public void setPayId(String payId) {
+
+    public void setPayId(String payId) {
         this.payId = payId;
     }
-public String getState() {
+
+    public String getState() {
         return state;
     }
-public void setState(String state) {
+
+    public void setState(String state) {
         this.state = state;
     }
-public String getMessage() {
+
+    public String getMessage() {
         return message;
     }
-public void setMessage(String message) {
+
+    public void setMessage(String message) {
         this.message = message;
     }
-public String getPayName() {
+
+    public String getPayName() {
         return payName;
     }
-public void setPayName(String payName) {
+
+    public void setPayName(String payName) {
         this.payName = payName;
     }
-public String getTransactionId() {
+
+    public String getTransactionId() {
         return transactionId;
     }
-public void setTransactionId(String transactionId) {
+
+    public void setTransactionId(String transactionId) {
         this.transactionId = transactionId;
     }
 
 
-
 }

+ 4 - 0
java110-db/src/main/resources/mapper/community/CommunitySpacePersonTimeV1ServiceDaoImplMapper.xml

@@ -20,7 +20,11 @@
         select t.space_id,t.space_id spaceId,t.csp_id,t.csp_id cspId,t.hours,t.time_id,t.time_id
         timeId,t.status_cd,t.status_cd statusCd,t.community_id,t.community_id communityId
         from community_space_person_time t
+        left join community_space_person csp on t.csp_id = csp.csp_id and csp.status_cd = '0'
         where 1 =1
+        <if test="appointmentTime !=null and appointmentTime != ''">
+            and csp.appointment_time = #{appointmentTime}
+        </if>
         <if test="spaceId !=null and spaceId != ''">
             and t.space_id= #{spaceId}
         </if>

+ 8 - 2
java110-db/src/main/resources/mapper/community/CommunitySpacePersonV1ServiceDaoImplMapper.xml

@@ -8,9 +8,9 @@
     <!-- 保存小区场地预约信息 add by wuxw 2018-07-03 -->
     <insert id="saveCommunitySpacePersonInfo" parameterType="Map">
         insert into community_space_person(
-        receivable_amount,pay_way,remark,received_amount,person_name,space_id,csp_id,appointment_time,person_id,state,person_tel,community_id
+        receivable_amount,pay_way,remark,received_amount,person_name,space_id,csp_id,appointment_time,person_id,state,person_tel,community_id,order_id
         ) values (
-        #{receivableAmount},#{payWay},#{remark},#{receivedAmount},#{personName},#{spaceId},#{cspId},#{appointmentTime},#{personId},#{state},#{personTel},#{communityId}
+        #{receivableAmount},#{payWay},#{remark},#{receivedAmount},#{personName},#{spaceId},#{cspId},#{appointmentTime},#{personId},#{state},#{personTel},#{communityId},#{orderId}
         )
     </insert>
 
@@ -50,6 +50,9 @@
         <if test="spaceId !=null and spaceId != ''">
             and t.space_id= #{spaceId}
         </if>
+        <if test="orderId !=null and orderId != ''">
+            and t.order_id= #{orderId}
+        </if>
         <if test="venueId !=null and venueId != ''">
             and cs.venue_id= #{venueId}
         </if>
@@ -152,6 +155,9 @@
         <if test="spaceId !=null and spaceId != ''">
             and t.space_id= #{spaceId}
         </if>
+        <if test="orderId !=null and orderId != ''">
+            and t.order_id= #{orderId}
+        </if>
         <if test="venueId !=null and venueId != ''">
             and cs.venue_id= #{venueId}
         </if>

+ 12 - 0
service-acct/src/main/java/com/java110/acct/payment/business/venue/VenueReservationPaymentBusiness.java

@@ -8,6 +8,7 @@ import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.doc.annotation.*;
 import com.java110.dto.communitySpace.CommunitySpaceDto;
 import com.java110.dto.communitySpacePerson.CommunitySpacePersonDto;
+import com.java110.dto.communitySpacePersonTime.CommunitySpacePersonTimeDto;
 import com.java110.dto.payment.PaymentOrderDto;
 import com.java110.intf.community.ICommunitySpacePersonTimeV1InnerServiceSMO;
 import com.java110.intf.community.ICommunitySpacePersonV1InnerServiceSMO;
@@ -116,6 +117,8 @@ public class VenueReservationPaymentBusiness implements IPaymentBusiness {
 
         JSONArray openTimes = null;
         BigDecimal money = new BigDecimal(0);
+        CommunitySpacePersonTimeDto communitySpaceOpenTimeDto = null;
+        List<CommunitySpacePersonTimeDto> communitySpacePersonTimeDtos = null;
         for (int spaceIndex = 0; spaceIndex < spaces.size(); spaceIndex++) {
             openTimes = spaces.getJSONObject(spaceIndex).getJSONArray("openTimes");
 
@@ -132,6 +135,14 @@ public class VenueReservationPaymentBusiness implements IPaymentBusiness {
             int openTime = 0;
 
             for (int timeIndex = 0; timeIndex < openTimes.size(); timeIndex++) {
+                communitySpaceOpenTimeDto = new CommunitySpacePersonTimeDto();
+                communitySpaceOpenTimeDto.setSpaceId(spaces.getJSONObject(spaceIndex).getString("spaceId"));
+                communitySpaceOpenTimeDto.setHours(openTimes.getJSONObject(timeIndex).getString("hours"));
+                communitySpaceOpenTimeDto.setAppointmentTime(reqJson.getString("appointmentTime"));
+                communitySpacePersonTimeDtos = communitySpacePersonTimeV1InnerServiceSMOImpl.queryCommunitySpacePersonTimes(communitySpaceOpenTimeDto);
+                if (communitySpacePersonTimeDtos != null && communitySpacePersonTimeDtos.size() > 0) {
+                    throw new IllegalArgumentException(openTimes.getJSONObject(timeIndex).getString("hours") + "已经被预约,不能重复预约");
+                }
                 openTime += 1;
             }
             money = money.add(new BigDecimal(openTime).multiply(new BigDecimal(communitySpaceDtos.get(0).getFeeMoney())).setScale(2, BigDecimal.ROUND_HALF_UP));
@@ -155,6 +166,7 @@ public class VenueReservationPaymentBusiness implements IPaymentBusiness {
             spaceObj = spaces.getJSONObject(spaceIndex);
             CommunitySpacePersonPo communitySpacePersonPo = BeanConvertUtil.covertBean(reqJson, CommunitySpacePersonPo.class);
             communitySpacePersonPo.setSpaceId(spaceObj.getString("spaceId"));
+            communitySpacePersonPo.setOrderId(paymentOrderDto.getOrderId());
             communitySpacePersonPo.setCspId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
             if (StringUtil.isEmpty(communitySpacePersonPo.getState())) {
                 communitySpacePersonPo.setState(CommunitySpacePersonDto.STATE_W);

+ 48 - 5
service-community/src/main/java/com/java110/community/cmd/communitySpace/DeleteCommunitySpacePersonCmd.java

@@ -21,16 +21,21 @@ import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.communitySpacePerson.CommunitySpacePersonDto;
+import com.java110.dto.onlinePay.OnlinePayDto;
+import com.java110.intf.acct.IOnlinePayV1InnerServiceSMO;
 import com.java110.intf.community.ICommunitySpacePersonV1InnerServiceSMO;
 import com.java110.po.communitySpacePerson.CommunitySpacePersonPo;
+import com.java110.po.onlinePay.OnlinePayPo;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
-import com.java110.utils.util.BeanConvertUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.List;
+
 /**
  * 类表述:删除
  * 服务编码:communitySpacePerson.deleteCommunitySpacePerson
@@ -48,6 +53,9 @@ public class DeleteCommunitySpacePersonCmd extends Cmd {
     @Autowired
     private ICommunitySpacePersonV1InnerServiceSMO communitySpacePersonV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IOnlinePayV1InnerServiceSMO onlinePayV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "cspId", "cspId不能为空");
@@ -59,13 +67,48 @@ public class DeleteCommunitySpacePersonCmd extends Cmd {
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
-        CommunitySpacePersonPo communitySpacePersonPo = BeanConvertUtil.covertBean(reqJson, CommunitySpacePersonPo.class);
-        int flag = communitySpacePersonV1InnerServiceSMOImpl.deleteCommunitySpacePerson(communitySpacePersonPo);
+        // 是否线上支付
+        CommunitySpacePersonDto communitySpacePersonDto = new CommunitySpacePersonDto();
+        communitySpacePersonDto.setCspId(reqJson.getString("cspId"));
+        communitySpacePersonDto.setState(CommunitySpacePersonDto.STATE_S);
+        List<CommunitySpacePersonDto> communitySpacePersonDtos = communitySpacePersonV1InnerServiceSMOImpl.queryCommunitySpacePersons(communitySpacePersonDto);
+
+        Assert.listOnlyOne(communitySpacePersonDtos, "预约订单不存在");
+
+        returnOnlinePayMoney(communitySpacePersonDtos);
+
+        for (CommunitySpacePersonDto communitySpacePersonDto1 : communitySpacePersonDtos) {
+            CommunitySpacePersonPo communitySpacePersonPo = new CommunitySpacePersonPo();
+            communitySpacePersonPo.setCspId(communitySpacePersonDto1.getCspId());
+            communitySpacePersonPo.setState(CommunitySpacePersonDto.STATE_CL);
+            int flag = communitySpacePersonV1InnerServiceSMOImpl.updateCommunitySpacePerson(communitySpacePersonPo);
 
-        if (flag < 1) {
-            throw new CmdException("删除数据失败");
+            if (flag < 1) {
+                throw new CmdException("删除数据失败");
+            }
         }
 
+
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
+
+    /**
+     * 发起退款
+     *
+     * @param communitySpacePersonDtos
+     */
+    private void returnOnlinePayMoney(List<CommunitySpacePersonDto> communitySpacePersonDtos) {
+        OnlinePayDto onlinePayDto = new OnlinePayDto();
+        onlinePayDto.setOrderId(communitySpacePersonDtos.get(0).getOrderId());
+        List<OnlinePayDto> onlinePayDtos = onlinePayV1InnerServiceSMOImpl.queryOnlinePays(onlinePayDto);
+        if (onlinePayDtos == null || onlinePayDtos.size() < 1) {
+            return;
+        }
+
+        OnlinePayPo onlinePayPo = new OnlinePayPo();
+        onlinePayPo.setOrderId(onlinePayDtos.get(0).getOrderId());
+        onlinePayPo.setPayId(onlinePayDtos.get(0).getPayId());
+        onlinePayPo.setState(OnlinePayDto.STATE_WT);
+        onlinePayV1InnerServiceSMOImpl.updateOnlinePay(onlinePayPo);
+    }
 }

+ 1 - 0
service-community/src/main/java/com/java110/community/cmd/communitySpace/SaveCommunitySpacePersonCmd.java

@@ -151,6 +151,7 @@ public class SaveCommunitySpacePersonCmd extends Cmd {
 
         CommunitySpacePersonPo communitySpacePersonPo = BeanConvertUtil.covertBean(reqJson, CommunitySpacePersonPo.class);
         communitySpacePersonPo.setCspId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        communitySpacePersonPo.setOrderId(GenerateCodeFactory.getGeneratorId("11"));
         if(StringUtil.isEmpty(communitySpacePersonPo.getState())){
             communitySpacePersonPo.setState(CommunitySpacePersonDto.STATE_W);
         }