Joburgess 5 роки тому
батько
коміт
9d34b5cc1a

+ 4 - 1
edu-common/src/main/java/com/keao/edu/common/page/QueryInfo.java

@@ -8,6 +8,7 @@
 package com.keao.edu.common.page;
 
 import com.keao.edu.common.tenant.TenantContextHolder;
+import org.apache.commons.lang3.StringUtils;
 
 /**
  * 查询对象基类
@@ -43,7 +44,9 @@ public class QueryInfo {
 	}
 
 	public void setSearch(String search) {
-		this.search = search;
+		if(StringUtils.isNotEmpty(search)){
+			this.search = search;
+		}
 	}
 
 	public QueryInfo(){}

+ 3 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/SysUserDao.java

@@ -24,6 +24,8 @@ public interface SysUserDao extends BaseDAO<Integer, SysUser> {
 	 */
 	SysUser queryByPhone(String phone);
 
+	Integer lockUser(@Param("userId") Integer userId);
+
 	/**
 	 * 根据手机号查询对象
 	 * @param phone
@@ -57,4 +59,4 @@ public interface SysUserDao extends BaseDAO<Integer, SysUser> {
 	 * @return
 	 */
     Set<Integer> queryRoleIds(Integer userId);
-}
+}

+ 11 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/ExamOrganizationRelation.java

@@ -35,6 +35,9 @@ public class ExamOrganizationRelation {
 	@ApiModelProperty(value = "总缴费金额")
 	private BigDecimal totalPaymentAmount;
 
+	@ApiModelProperty(value = "总交易金额")
+	private BigDecimal totalTransAmount;
+
 	@ApiModelProperty(value = "链接地址")
 	private String url;
 
@@ -82,6 +85,14 @@ public class ExamOrganizationRelation {
 		this.totalRegistrationStudentNum = totalRegistrationStudentNum;
 	}
 
+	public BigDecimal getTotalTransAmount() {
+		return totalTransAmount;
+	}
+
+	public void setTotalTransAmount(BigDecimal totalTransAmount) {
+		this.totalTransAmount = totalTransAmount;
+	}
+
 	public BigDecimal getTotalPaymentAmount() {
 		return totalPaymentAmount;
 	}

+ 19 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamManualLedgerServiceImpl.java

@@ -6,13 +6,18 @@ import com.keao.edu.common.exception.BizException;
 import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.user.dao.ExamManualLedgerDao;
+import com.keao.edu.user.dao.ExamOrganizationRelationDao;
+import com.keao.edu.user.dao.SysUserDao;
 import com.keao.edu.user.dto.ExamManualLedgerStatisticsDto;
 import com.keao.edu.user.entity.ExamManualLedger;
+import com.keao.edu.user.entity.ExamOrganizationRelation;
 import com.keao.edu.user.page.ExamManualLedgerQueryInfo;
 import com.keao.edu.user.service.ExamManualLedgerService;
 import com.keao.edu.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 
@@ -21,6 +26,10 @@ public class ExamManualLedgerServiceImpl extends BaseServiceImpl<Long, ExamManua
 	
 	@Autowired
 	private ExamManualLedgerDao examManualLedgerDao;
+	@Autowired
+	private SysUserDao sysUserDao;
+	@Autowired
+	private ExamOrganizationRelationDao examOrganizationRelationDao;
 
 	@Override
 	public BaseDAO<Long, ExamManualLedger> getDAO() {
@@ -28,6 +37,7 @@ public class ExamManualLedgerServiceImpl extends BaseServiceImpl<Long, ExamManua
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
 	public void addExamManualLedger(ExamManualLedger examManualLedger) {
 		if(Objects.isNull(examManualLedger.getExaminationBasicId())){
 			throw new BizException("请指定考级项目");
@@ -35,6 +45,15 @@ public class ExamManualLedgerServiceImpl extends BaseServiceImpl<Long, ExamManua
 		if(Objects.isNull(examManualLedger.getAmount())){
 			throw new BizException("请指定交易金额");
 		}
+		sysUserDao.lockUser(examManualLedger.getOperatorUserId());
+		if(Objects.nonNull(examManualLedger.getOrganId())){
+			ExamOrganizationRelation examOrganizationRelation = examOrganizationRelationDao.getExamOrganizationRelation(examManualLedger.getOrganId(), examManualLedger.getOrganId());
+			if(Objects.isNull(examOrganizationRelation)){
+				throw new BizException("合作单位信息异常");
+			}
+			examOrganizationRelation.setTotalTransAmount(examOrganizationRelation.getTotalTransAmount().add(examManualLedger.getAmount()));
+			examOrganizationRelationDao.update(examOrganizationRelation);
+		}
 		examManualLedgerDao.insert(examManualLedger);
 	}
 

+ 1 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamOrganizationRelationServiceImpl.java

@@ -145,6 +145,7 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 			og.setShareProfitAmount(organization.getShareProfitAmount());
 			og.setTotalRegistrationStudentNum(BigDecimal.ZERO.intValue());
 			og.setTotalPaymentAmount(BigDecimal.ZERO);
+			og.setTotalTransAmount(BigDecimal.ZERO);
 			organizationRelations.add(og);
 		}
 		examOrganizationRelationDao.batchInsert(organizationRelations);

+ 14 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExaminationBasicServiceImpl.java

@@ -17,6 +17,7 @@ import com.keao.edu.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
@@ -175,6 +176,19 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int update(ExaminationBasic examinationBasic) {
+        if(Objects.isNull(examinationBasic.getId())){
+            throw new BizException("请指定考级项目");
+        }
+        ExaminationBasic existsExam = examinationBasicDao.get(examinationBasic.getId().longValue());
+        if(Objects.isNull(existsExam)){
+            throw new BizException("考级项目不存在");
+        }
+        return examinationBasicDao.update(examinationBasic);
+    }
+
+    @Override
     public void closeExam(Integer examId, String reason) {
         if (Objects.isNull(examId)) {
             throw new BizException("请指定考级项目");

+ 25 - 7
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamOrganizationRelationMapper.xml

@@ -14,6 +14,7 @@
 		<result column="share_profit_amount_" property="shareProfitAmount" />
 		<result column="total_registration_student_num_" property="totalRegistrationStudentNum"/>
 		<result column="total_payment_amount_" property="totalPaymentAmount"/>
+		<result column="total_trans_amount_" property="totalTransAmount" />
 		<result column="url_" property="url" />
 		<result column="send_url_flag_" property="sendUrlFlag" typeHandler="com.keao.edu.common.dal.CustomEnumTypeHandler" />
 		<result column="is_allow_arrange_exam_" property="isAllowArrangeExam" typeHandler="com.keao.edu.common.dal.CustomEnumTypeHandler" />
@@ -38,15 +39,29 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.keao.edu.user.entity.ExamOrganizationRelation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO exam_organization_relation (examination_basic_id_,organ_id_,settlement_type_,share_profit_amount_,total_registration_student_num_,total_payment_amount_,url_,send_url_flag_,is_allow_arrange_exam_,create_time_,update_time_,tenant_id_)
-		VALUES(#{examinationBasicId},#{organId},#{settlementType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{shareProfitAmount},#{totalRegistrationStudentNum},#{totalPaymentAmount},#{url},#{sendUrlFlag,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{isAllowArrangeExam,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},NOW(),NOW(),#{tenantId})
+		INSERT INTO exam_organization_relation (examination_basic_id_,organ_id_,settlement_type_,share_profit_amount_,total_registration_student_num_,
+		total_payment_amount_,url_,send_url_flag_,is_allow_arrange_exam_,total_trans_amount_,
+		create_time_,update_time_,tenant_id_)
+		VALUES(#{examinationBasicId},#{organId},#{settlementType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{shareProfitAmount},
+		#{totalRegistrationStudentNum},#{totalPaymentAmount},#{url},#{sendUrlFlag,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
+		#{isAllowArrangeExam,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},totalTransAmount,
+		NOW(),NOW(),#{tenantId})
 	</insert>
 
     <insert id="batchInsert" parameterType="com.keao.edu.user.entity.ExamOrganizationRelation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO exam_organization_relation (examination_basic_id_,organ_id_,settlement_type_,share_profit_amount_,total_registration_student_num_,total_payment_amount_,url_,send_url_flag_,is_allow_arrange_exam_,create_time_,update_time_,tenant_id_)
+		INSERT INTO exam_organization_relation (examination_basic_id_,organ_id_,settlement_type_,share_profit_amount_,total_registration_student_num_,
+		total_payment_amount_,url_,send_url_flag_,is_allow_arrange_exam_,total_trans_amount_,
+		create_time_,update_time_,tenant_id_)
 		VALUES
 		<foreach collection="examOrganizationRelations" item="examOrganizationRelation" separator=",">
-			(#{examOrganizationRelation.examinationBasicId},#{examOrganizationRelation.organId},#{examOrganizationRelation.settlementType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{examOrganizationRelation.shareProfitAmount},#{examOrganizationRelation.totalRegistrationStudentNum},#{examOrganizationRelation.totalPaymentAmount},#{examOrganizationRelation.url},#{examOrganizationRelation.sendUrlFlag,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{examOrganizationRelation.isAllowArrangeExam,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},NOW(),NOW(),#{examOrganizationRelation.tenantId})
+			(#{examOrganizationRelation.examinationBasicId},#{examOrganizationRelation.organId},
+			#{examOrganizationRelation.settlementType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
+			#{examOrganizationRelation.shareProfitAmount},#{examOrganizationRelation.totalRegistrationStudentNum},
+			#{examOrganizationRelation.totalPaymentAmount},#{examOrganizationRelation.url},
+			#{examOrganizationRelation.sendUrlFlag,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
+			#{examOrganizationRelation.isAllowArrangeExam,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
+			#{examOrganizationRelation.totalTransAmount},
+			NOW(),NOW(),#{examOrganizationRelation.tenantId})
 		</foreach>
 	</insert>
 
@@ -57,9 +72,6 @@
 			<if test="examinationBasicId != null">
 				examination_basic_id_ = #{examinationBasicId},
 			</if>
-			<if test="id != null">
-				id_ = #{id},
-			</if>
 			<if test="sendUrlFlag != null">
 				send_url_flag_ = #{sendUrlFlag,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
 			</if>
@@ -81,6 +93,9 @@
 			<if test="totalPaymentAmount != null">
 				total_payment_amount_ = #{totalPaymentAmount},
 			</if>
+			<if test="totalTransAmount != null">
+				total_trans_amount_ = #{totalTransAmount},
+			</if>
 			<if test="organId != null">
 				organ_id_ = #{organId},
 			</if>
@@ -119,6 +134,9 @@
 				<if test="eo.totalPaymentAmount != null">
 					total_payment_amount_ = #{eo.totalPaymentAmount},
 				</if>
+				<if test="eo.totalTransAmount != null">
+					total_trans_amount_ = #{eo.totalTransAmount},
+				</if>
 				<if test="eo.organId != null">
 					organ_id_ = #{eo.organId},
 				</if>

+ 4 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -171,6 +171,10 @@
     <select id="queryByPhone" resultMap="SysUser">
 		select * from sys_user where phone_ = #{phone} OR username_ = #{phone} LIMIT 1 FOR UPDATE
 	</select>
+
+    <select id="lockUser" resultType="int">
+        SELECT id_ FROM sys_user WHERE id_=#{userId}
+    </select>
     
     <select id="queryByStatus" resultMap="SysUser">
         select * from sys_user where lock_flag_ = #{status}