浏览代码

自动确认收货bug修改

zouxuan 1 年之前
父节点
当前提交
0a7f2872de

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

@@ -57,7 +57,7 @@ public interface StudentGoodsSellDao extends BaseDAO<Integer, StudentGoodsSell>
      * @param autoAffirmReceiveTime:
      * @return java.util.List<java.lang.String>
      */
-    String queryNoAffirmOrderNo(@Param("autoAffirmReceiveTime") String autoAffirmReceiveTime, @Param("tenantId") Integer tenantid);
+    List<String> queryNoAffirmOrderNo(@Param("autoAffirmReceiveTime") String autoAffirmReceiveTime, @Param("tenantId") Integer tenantid);
 
     /**
      * @describe 自动确认收货
@@ -65,10 +65,10 @@ public interface StudentGoodsSellDao extends BaseDAO<Integer, StudentGoodsSell>
      * @author zouxuan
      * @date 2020/10/12
      * @time 10:15
-     * @param orderNo:
+     * @param orderNos:
      * @return void
      */
-    void autoAffirmReceive(@Param("orderNo") String orderNo, @Param("status") String status);
+    void autoAffirmReceive(@Param("orderNos") List<String> orderNos, @Param("status") String status);
 
     /**
      * @describe 获取学生端商品购买列表

+ 10 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentGoodsSellServiceImpl.java

@@ -18,6 +18,7 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.collection.MapUtil;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -81,28 +82,27 @@ public class StudentGoodsSellServiceImpl extends BaseServiceImpl<Integer, Studen
     public void affirmReceive(String orderNo) {
         String str = "MANUAL_RECEIVE";
         if (StringUtils.isNotEmpty(orderNo)) {
-            studentGoodsSellDao.autoAffirmReceive(orderNo, str);
+            List<String> orderNos = new ArrayList<>();
+            orderNos.add(orderNo);
+            studentGoodsSellDao.autoAffirmReceive(orderNos, str);
             return;
         }
         //如果订单编号为空,那么自动确认
-        StringBuffer sb = new StringBuffer();
         str = "AUTO_RECEIVE";
         List<TenantInfo> tenantInfos = tenantInfoService.list(new QueryWrapper<TenantInfo>().eq("state_",1));
         if(tenantInfos != null && tenantInfos.size() > 0){
+            List<String> orderNos = new ArrayList<>();
             for (int i = 0; i < tenantInfos.size(); i++) {
                 TenantInfo tenantInfo = tenantInfos.get(i);
                 String autoAffirmReceiveTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.AUTO_AFFIRM_RECEIVE_TIME,tenantInfo.getId());
                 //获取到期的订单编号
-                String s = studentGoodsSellDao.queryNoAffirmOrderNo(autoAffirmReceiveTime, tenantInfo.getId());
-                if(StringUtils.isNotEmpty(s)){
-                    if(sb.length() > 0){
-                        sb.append(",");
-                    }
-                    sb.append(s);
+                List<String> strings = studentGoodsSellDao.queryNoAffirmOrderNo(autoAffirmReceiveTime, tenantInfo.getId());
+                if(CollectionUtils.isNotEmpty(strings)){
+                    orderNos.addAll(strings);
                 }
             }
-            if (sb.length() > 0) {
-                studentGoodsSellDao.autoAffirmReceive(sb.toString(), str);
+            if (CollectionUtils.isNotEmpty(orderNos)) {
+                studentGoodsSellDao.autoAffirmReceive(orderNos, str);
             }
         }
     }

+ 6 - 2
mec-biz/src/main/resources/config/mybatis/StudentGoodsSellMapper.xml

@@ -88,7 +88,11 @@
 		</set> WHERE id_ = #{id} and tenant_id_ = #{tenantId}
 	</update>
 	<update id="autoAffirmReceive">
-		UPDATE student_payment_order SET receive_status_ = #{status},update_time_ = NOW() WHERE FIND_IN_SET(order_no_,#{orderNo})
+		UPDATE student_payment_order SET receive_status_ = #{status},update_time_ = NOW()
+		WHERE order_no_ IN
+		<foreach collection="orderNos" item="orderNo" separator="," open="(" close=")">
+		    #{orderNo}
+		</foreach>
 	</update>
 
 	<!-- 根据主键删除一条记录 -->
@@ -166,7 +170,7 @@
 		WHERE spo.order_no_ = #{orderNo} LIMIT 1
 	</select>
     <select id="queryNoAffirmOrderNo" resultType="java.lang.String">
-		SELECT GROUP_CONCAT(DISTINCT so.order_no_) FROM sell_order so
+		SELECT DISTINCT so.order_no_ FROM sell_order so
 		LEFT JOIN student_payment_order spo ON spo.order_no_ = so.order_no_
 		WHERE spo.status_ = 'SUCCESS' AND spo.receive_status_ = 'NO_RECEIVE' and spo.tenant_id_ = #{tenantId}
 		<if test="autoAffirmReceiveTime != null and autoAffirmReceiveTime != ''">