Explorar o código

Merge remote-tracking branch 'origin/saas' into saas

zouxuan %!s(int64=2) %!d(string=hai) anos
pai
achega
0bd2a7e415

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TenantOrderRecordDao.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ym.mec.biz.dal.dto.TenantOrderRecordDto;
 import com.ym.mec.biz.dal.entity.TenantOrderRecord;
+
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -21,6 +22,8 @@ public interface TenantOrderRecordDao extends BaseMapper<TenantOrderRecord> {
     int insertBatch(@Param("entities") List<TenantOrderRecord> entities);
 
     <T> IPage<T> queryPage(Page<T> page, @Param("param") TenantOrderRecordDto dto);
+    
+    TenantOrderRecord getLockedById(Integer id);
 
 }
 

+ 15 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/HfMemberServiceImpl.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service.impl;
 import java.io.File;
 import java.util.Date;
 
+import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -41,6 +42,8 @@ public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> impl
     @Value("${spring.profiles.active:dev}")
     private String env;
 
+	private String cardName;
+
     @Override
     public BaseDAO<Integer, HfMember> getDAO() {
         return hfMemberDao;
@@ -166,10 +169,20 @@ public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> impl
         if (!hfMember.getStatus().equals("succeeded")) {
             throw new BizException("商户审核通过,才能绑定结算卡");
         }
-        hfMember.setCardNo(accountInfo.getCardId());
+        /*hfMember.setCardNo(accountInfo.getCardId());
         hfMember.setBankCode(accountInfo.getBankCode());
         hfMember.setBankAcctType(accountInfo.getBankAcctType());
-        hfMember.setCardName(accountInfo.getCardName());
+        hfMember.setCardName(accountInfo.getCardName());*/
+        
+        accountInfo.setAreaCode(hfMember.getAreaCode());
+        accountInfo.setBankAcctType(hfMember.getBankAcctType());
+        accountInfo.setBankCode(hfMember.getBankCode());
+        accountInfo.setBankName(hfMember.getBankCode());
+        accountInfo.setCardId(hfMember.getCardNo());
+        accountInfo.setCardName(hfMember.getCardName());
+        accountInfo.setMemberId(memberId);
+        accountInfo.setProvCode(hfMember.getProvCode());
+        accountInfo.setTelNo(hfMember.getLegalMp());
         
         Integer tenantId = hfMember.getTenantId();
         

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -356,6 +356,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     public void updateOrder(Map<String, String> rpMap) throws Exception {
         DealStatusEnum status = rpMap.get("tradeState").equals("1") ? DealStatusEnum.SUCCESS : DealStatusEnum.FAILED;
         StudentPaymentOrder order = findOrderByOrderNo(rpMap.get("merOrderNo"));
+        order = studentPaymentOrderDao.lockOrder(order.getId());
         //关闭或失败的订单查询订单成功,订单改成成功,钱退到余额
         if (order != null && (order.getStatus().equals(DealStatusEnum.CLOSE) || order.getStatus().equals(DealStatusEnum.FAILED)) && status.equals(DealStatusEnum.SUCCESS)) {
             String memo = order.getStatus().equals(DealStatusEnum.CLOSE) ? "关闭订单" : "失败订单";

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java

@@ -1109,10 +1109,10 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
 
     @Override
     public Map<String, Object> recharge(Integer tenantId, BigDecimal amount) throws Exception {
-        SysConfig config = sysConfigService.findByParamName("platform_collection_organ");
+        /*SysConfig config = sysConfigService.findByParamName("platform_collection_organ");
         if (Objects.isNull(config)) {
             throw new BizException("未查询到机构收款分部信息!");
-        }
+        }*/
         log.error("机构 " + tenantId.toString() + "充值");
         Optional.of(tenantId)
                 .map(baseMapper::selectById)

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantOrderRecordServiceImpl.java

@@ -106,6 +106,9 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
 
     @Autowired
     private HfMerchantConfigService hfMerchantConfigService;
+    
+    @Autowired
+    private TenantOrderRecordDao tenantOrderRecordDao;
 
     //订单不存在
     private static final String PAYMENT_ID_NOT_EXISTS = "payment_id_not_exists";
@@ -459,6 +462,7 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
                     log.error("error tenant callback request orderNo is null param:{}", data);
                     return "failed";
                 }
+                record = tenantOrderRecordDao.getLockedById(record.getId());
                 //只处理未支付状态的订单
                 if(!record.getOrderState().equals(0)){
                     return "succeeded";

+ 3 - 3
mec-biz/src/main/resources/config/mybatis/StudentStatisticsMapper.xml

@@ -393,21 +393,21 @@
 		SELECT COUNT(cssp.user_id_) FROM (
 		<if test="groupType == 'VIP'">
 			SELECT cssp.user_id_,MIN(vg.create_time_) first_order_time_,MAX(vg.create_time_) last_order_time_ FROM course_schedule_student_payment cssp
-			LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_
+			LEFT JOIN vip_group vg ON CONVERT(vg.id_ , CHAR) = cssp.music_group_id_
 			LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
 			WHERE cssp.actual_price_ > 0 AND cssp.group_type_ = 'VIP' AND vgc.music_theory_ = 0 AND DATE_FORMAT(vg.create_time_, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
 			GROUP BY cssp.user_id_
 		</if>
 		<if test="groupType == 'THEORY'">
 			SELECT cssp.user_id_,MIN(vg.create_time_) first_order_time_,MAX(vg.create_time_) last_order_time_ FROM course_schedule_student_payment cssp
-			LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_
+			LEFT JOIN vip_group vg ON CONVERT(vg.id_ , CHAR) = cssp.music_group_id_
 			LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
 			WHERE cssp.actual_price_ > 0 AND cssp.group_type_ = 'VIP' AND vgc.music_theory_ AND DATE_FORMAT(vg.create_time_, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
 			GROUP BY cssp.user_id_
 		</if>
 		<if test="groupType == 'PRACTICE'">
 			SELECT cssp.user_id_,MIN(pg.create_time_) first_order_time_,MAX(pg.create_time_) last_order_time_ FROM course_schedule_student_payment cssp
-			LEFT JOIN practice_group pg ON pg.id_ = cssp.music_group_id_
+			LEFT JOIN practice_group pg ON CONVERT(pg.id_ , CHAR) = cssp.music_group_id_
 			WHERE cssp.actual_price_ > 0 AND cssp.group_type_ = 'PRACTICE' AND DATE_FORMAT(pg.create_time_, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
 			GROUP BY cssp.user_id_
 		</if> ) cssp

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/TenantOrderRecordMapper.xml

@@ -22,6 +22,10 @@
         id_
         , tenant_id_, order_no_, trans_no_, order_type_, payment_channel_, pay_channel_, expect_amount, actual_amount, mer_nos_, order_state_, pay_date_, pay_time_, created_time_
     </sql>
+    
+    <select id="getLockedById" resultMap="BaseResultMap">
+    	select * from tenant_order_record where id_ = #{id} for update
+    </select>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.ym.mec.biz.dal.entity.TenantOrderRecord">

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/config/ResourceServerConfig.java

@@ -41,7 +41,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                         "/tenantInfo/info/*", "/tenantInfo/checkInfo/*", "/tenantInfo/pay/*","/tenantInfo/testCheck", "/tenantInfo/getContract/*",
                         "/tenantPreJoin/add","/imLiveBroadcastRoom/queryRoomInfo","/imLiveBroadcastRoom/test",
                         "/eduOrganization/queryAllOrgan","/eduOrganization/getOrganCooperation","/import/oaUploadFile",
-                        "/tenantInfo/callback"
+                        "/tenantInfo/callback","/adapay/callback"
                 )
                 .permitAll().anyRequest().authenticated().and().httpBasic();
     }