소스 검색

Merge branch 'master' of http://git.dayaedu.com/yonge/edu-saas

# Conflicts:
#	edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamReviewServiceImpl.java
zouxuan 5 년 전
부모
커밋
dad1563cf6

+ 3 - 2
edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/Payment.java

@@ -7,6 +7,7 @@ import org.springframework.util.DigestUtils;
 
 import java.math.BigDecimal;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -177,9 +178,9 @@ public class Payment extends ConfigInit {
 
 
     public static Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody) throws Exception {
-        Map<String, Object> paymentParams = new HashMap<>(10);
+        Map<String, Object> paymentParams = new LinkedHashMap<>();
         paymentParams.put("appId", appId);
-        paymentParams.put("amount", amount);
+        paymentParams.put("amount", amount.setScale(2,BigDecimal.ROUND_HALF_UP));
         paymentParams.put("orderNo", orderNo);
         paymentParams.put("notifyUrl", notifyUrl);
         paymentParams.put("returnUrl", returnUrl);

+ 12 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dto/StudentExamListDto.java

@@ -1,6 +1,7 @@
 package com.keao.edu.user.dto;
 
 import com.keao.edu.user.api.enums.ExamEvaluationResultEnum;
+import com.keao.edu.user.enums.ExamStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.math.BigDecimal;
@@ -18,6 +19,9 @@ public class StudentExamListDto{
     @ApiModelProperty(value = "考级项目编号")
     private Long examinationBasicId;
 
+    @ApiModelProperty(value = "考级项目状态")
+    private ExamStatusEnum examStatus;
+
     @ApiModelProperty(value = "准考证号")
     private String cardNo;
 
@@ -105,6 +109,14 @@ public class StudentExamListDto{
         this.examinationBasicId = examinationBasicId;
     }
 
+    public ExamStatusEnum getExamStatus() {
+        return examStatus;
+    }
+
+    public void setExamStatus(ExamStatusEnum examStatus) {
+        this.examStatus = examStatus;
+    }
+
     public String getSubjectName() {
         return subjectName;
     }

+ 18 - 2
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamReviewServiceImpl.java

@@ -11,6 +11,7 @@ import com.keao.edu.user.api.entity.ExamRoom;
 import com.keao.edu.user.api.entity.ExamRoomStudentRelation;
 import com.keao.edu.user.dao.ExamReviewDao;
 import com.keao.edu.user.dao.ExamRoomDao;
+import com.keao.edu.user.dao.SysUserDao;
 import com.keao.edu.user.dto.ExamReviewDto;
 import com.keao.edu.user.dto.ExamReviewRecordDto;
 import com.keao.edu.user.entity.ExamReview;
@@ -25,6 +26,7 @@ import com.keao.edu.user.service.ExamRoomStudentRelationService;
 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.HashMap;
@@ -44,6 +46,10 @@ public class ExamReviewServiceImpl extends BaseServiceImpl<Long, ExamReview> imp
 	private SysUserFeignService sysUserFeignService;
 	@Autowired
 	private ExamRoomStudentRelationService examRoomStudentRelationService;
+	@Autowired
+	private SysUserDao sysUserDao;
+	@Autowired
+	private ExamRoomDao examRoomDao;
 
 	@Override
 	public BaseDAO<Long, ExamReview> getDAO() {
@@ -106,9 +112,14 @@ public class ExamReviewServiceImpl extends BaseServiceImpl<Long, ExamReview> imp
 	}
 
 	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public synchronized void add(ExamReview examReview) {
+	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+	public void add(ExamReview examReview) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		sysUserDao.lockUser(sysUser.getId());
+		ExamRoom examRoom = examRoomDao.get(examReview.getExamRoomId());
+		if(Objects.isNull(examRoom)){
+			throw new BizException("考场信息错误");
+		}
 		Long examRegistrationId = examReview.getExamRegistrationId();
 		ExamReview byRegistrationId = examReviewDao.findByRegistrationId(examRegistrationId,sysUser.getId());
 		if(byRegistrationId != null){
@@ -129,6 +140,11 @@ public class ExamReviewServiceImpl extends BaseServiceImpl<Long, ExamReview> imp
 		examReview.setStudentId(examRoomStudentRelation.getStudentId());
 		examReview.setExamRoomId(examRoomStudentRelation.getExamRoomId());
 		examReview.setTenantId(examRoomStudentRelation.getTenantId());
+		if(sysUser.getId().equals(examRoom.getMainTeacherUserId())){
+			examReview.setTeacherType(ExamRoomTeaherTypeEnum.MAIN);
+		}else{
+			examReview.setTeacherType(ExamRoomTeaherTypeEnum.ASSISTANT);
+		}
 		examReviewDao.insert(examReview);
 	}
 

+ 1 - 1
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamRoomServiceImpl.java

@@ -375,7 +375,7 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 		ExamRoom examRoom = examRoomDao.get(examRoomIds.get(0));
 
 		if(examRoom.getExamPlanPushFlag()==1){
-			throw new BizException("无法删除");
+			throw new BizException("已发送考试安排,无法删除");
 		}
 
 		ExaminationBasic examinationBasic = examinationBasicDao.get(examRoom.getExaminationBasicId().longValue());

+ 91 - 6
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamRoomStudentRelationServiceImpl.java

@@ -4,9 +4,11 @@ import com.alibaba.fastjson.JSONObject;
 import com.keao.edu.auth.api.client.SysUserFeignService;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.common.entity.SysConfig;
 import com.keao.edu.common.enums.MessageTypeEnum;
 import com.keao.edu.common.exception.BizException;
 import com.keao.edu.common.page.PageInfo;
+import com.keao.edu.common.service.IdGeneratorService;
 import com.keao.edu.common.service.SysMessageService;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.common.tenant.TenantContextHolder;
@@ -15,6 +17,7 @@ import com.keao.edu.im.api.entity.MemberChangedMessage;
 import com.keao.edu.im.api.entity.PublishMessageDto;
 import com.keao.edu.im.api.entity.ReqUserData;
 import com.keao.edu.thirdparty.message.provider.JiguangPushPlugin;
+import com.keao.edu.thirdparty.message.provider.YimeiSmsPlugin;
 import com.keao.edu.user.api.entity.ExamRoom;
 import com.keao.edu.user.api.entity.ExamRoomStudentRelation;
 import com.keao.edu.user.api.enums.ExamModeEnum;
@@ -25,10 +28,7 @@ import com.keao.edu.user.dto.RoomStudentListDto;
 import com.keao.edu.user.dto.StuRecordDetailDto;
 import com.keao.edu.user.entity.*;
 import com.keao.edu.user.page.ExamRoomStudentRelationQueryInfo;
-import com.keao.edu.user.service.ExamCertificationService;
-import com.keao.edu.user.service.ExamRoomStudentRelationService;
-import com.keao.edu.user.service.ExamTeacherSalaryService;
-import com.keao.edu.user.service.OrganizationService;
+import com.keao.edu.user.service.*;
 import com.keao.edu.util.collection.MapUtil;
 import com.keao.edu.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -72,6 +72,10 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 	private ExamOrganizationRelationDao examOrganizationRelationDao;
 	@Autowired
 	private SysMessageService sysMessageService;
+	@Autowired
+	private IdGeneratorService idGeneratorService;
+	@Autowired
+	private SysConfigService sysConfigService;
 
 	@Override
 	public BaseDAO<Long, ExamRoomStudentRelation> getDAO() {
@@ -96,8 +100,8 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		if(Objects.isNull(examRoom)){
 			throw new BizException("教室不存在");
 		}
-
-		if(examRoom.getExamPlanPushFlag()==1){
+		Date now=new Date();
+		if(now.compareTo(examRoom.getExamStartTime())>0||DateUtil.isSameDay(now, examRoom.getExamStartTime())){
 			throw new BizException("无法添加学员");
 		}
 
@@ -129,6 +133,8 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		}
 
 		List<ExamRoomStudentRelation> examRoomStudentRelations=new ArrayList<>();
+		List<ExamCertification> examCertifications=new ArrayList<>();
+		List<StudentExamResult> studentExamResults=new ArrayList<>();
 		for (String registId : registIds) {
 			if(existRegistIds.contains(Long.valueOf(registId))){
 				continue;
@@ -148,6 +154,33 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 			e.setStudentId(examRegistration.getStudentId());
 			e.setTenantId(TenantContextHolder.getTenantId());
 			examRoomStudentRelations.add(e);
+
+			if(examRoom.getExamPlanPushFlag()==1){
+				ExamCertification ec=new ExamCertification();
+				ec.setExamRegistrationId(examRegistration.getId().longValue());
+				ec.setExaminationBasicId(examRegistration.getExaminationBasicId());
+				ec.setStudentId(examRegistration.getStudentId());
+				ec.setCardNo(String.valueOf(idGeneratorService.generatorId()));
+				ec.setSubjectId(examRegistration.getSubjectId());
+				ec.setLevel(examRegistration.getLevel());
+				ec.setExamStartTime(examRoom.getExamStartTime());
+				ec.setExamEndTime(examRoom.getExamEndTime());
+				if(ExamModeEnum.OFFLINE.equals(examRoom.getExamMode())){
+					ec.setExamAddress(examLocation.getName());
+				}
+				ec.setTenantId(TenantContextHolder.getTenantId());
+				examCertifications.add(ec);
+
+				StudentExamResult ser = new StudentExamResult();
+				ser.setExamRegistrationId(examRegistration.getId().longValue());
+				ser.setExaminationBasicId(examRegistration.getExaminationBasicId());
+				ser.setStudentId(examRegistration.getStudentId());
+				ser.setIsFinishedExam(3);
+				ser.setConfirmStatus(0);
+				ser.setTenantId(TenantContextHolder.getTenantId());
+				ser.setExamRoomId(examRoom.getId());
+				studentExamResults.add(ser);
+			}
 		}
 		if(!CollectionUtils.isEmpty(examRoomStudentRelations)){
 			examRoomStudentRelationDao.batchInsert(examRoomStudentRelations);
@@ -155,6 +188,55 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 			examRoom.setExamRoomStudentNum(examRoomStudentRelationDao.countStudentsWithRoom(examRoom.getId()));
 			examRoomDao.update(examRoom);
 		}
+		if(!CollectionUtils.isEmpty(examCertifications)){
+			examCertificationService.batchInsert(examCertifications);
+		}
+		if(!CollectionUtils.isEmpty(studentExamResults)){
+			studentExamResultDao.batchInsert(studentExamResults);
+			ExaminationBasic exam = examinationBasicDao.get(examRoom.getExaminationBasicId());
+			SysConfig baseH5UrlConfig = sysConfigService.findByParamName(SysConfigService.BASE_H5_URL);
+			String baseH5Url = "";
+			if(Objects.nonNull(baseH5UrlConfig)){
+				baseH5Url = baseH5UrlConfig.getParanValue();
+			}
+
+			Map<Integer, String> idPhoneMap = this.getMap("sys_user", "id_", "phone_", new ArrayList(studentIds), Integer.class, String.class);
+
+			String baseUrl = "2?examRegistrationId=";
+			String downloadUrl = baseH5Url + "/#/downLoad?memo=2&examRegistrationId=";
+			for (ExamRoomStudentRelation examRoomStudentRelation : examRoomStudentRelations) {
+				MessageTypeEnum pushMessageType = MessageTypeEnum.EXAM_ROOM_CONFIRM_ONLINE_STUDENT_PUSH;
+				MessageTypeEnum smsMessageType = MessageTypeEnum.EXAM_ROOM_CONFIRM_ONLINE_STUDENT_SMS;
+
+				Map<Integer, String> receiverMap = new HashMap<>(1);
+				receiverMap.put(examRoomStudentRelation.getStudentId(), examRoomStudentRelation.getStudentId().toString());
+
+				Map<Integer, String> phoneMap = new HashMap<>(1);
+				phoneMap.put(examRoomStudentRelation.getStudentId(), idPhoneMap.get(examRoomStudentRelation.getStudentId()));
+
+				String examName = exam.getName();
+
+				String examDayStr = DateUtil.dateToString(examRoom.getExamStartTime(), "MM月dd日");
+				StringBuffer examTimeStr = new StringBuffer();
+				examTimeStr.append(DateUtil.dateToString(examRoom.getExamStartTime(), "HH时mm分"));
+				examTimeStr.append("-");
+				examTimeStr.append(DateUtil.dateToString(examRoom.getExamEndTime(), "HH时mm分"));
+
+				String locationName = "网络考场";
+				if(ExamModeEnum.OFFLINE.equals(examRoom.getExamMode())){
+					pushMessageType = MessageTypeEnum.EXAM_ROOM_CONFIRM_OFFLINE_STUDENT_PUSH;
+					smsMessageType = MessageTypeEnum.EXAM_ROOM_CONFIRM_OFFLINE_STUDENT_SMS;
+					locationName=examLocation.getName();
+				}
+				String url = baseUrl + examRoomStudentRelation.getExamRegistrationId();
+				sysMessageService.batchSendMessage(pushMessageType,
+						receiverMap, null, 0, url, JiguangPushPlugin.PLUGIN_NAME,
+						examName, examDayStr, examTimeStr, locationName);
+				sysMessageService.batchSendMessage(smsMessageType,
+						phoneMap, null, 0, null, YimeiSmsPlugin.PLUGIN_NAME,
+						examName, examDayStr, examTimeStr, locationName, downloadUrl + examRoomStudentRelation.getExamRegistrationId());
+			}
+		}
 	}
 
 	@Override
@@ -275,6 +357,9 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		if(StringUtils.isBlank(registIdsStr)){
 			return;
 		}
+		List<Long> registIds = Arrays.asList(registIdsStr.split(",")).stream().map(e -> Long.valueOf(e)).collect(Collectors.toList());
+		examRoomStudentRelationDao.deleteStudentsFromExamRoom(examRoomId, registIds);
+		studentExamResultDao.deleteWithRegists(registIds);
 		examRoom.setExamRoomStudentNum(examRoomStudentRelationDao.countStudentsWithRoom(examRoom.getId()));
 		examRoomDao.update(examRoom);
 		examTeacherSalaryService.teacherSalarySettlementWithExam(examRoom.getExaminationBasicId());

+ 2 - 1
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamRegistrationMapper.xml

@@ -510,6 +510,7 @@
 	<resultMap id="ExamRecordDtoMap" type="com.keao.edu.user.dto.StudentExamListDto">
 		<result property="level" column="level_"/>
 		<result property="examRegistrationId" column="exam_registration_id_"/>
+		<result property="examStatus" column="exam_status_"/>
 		<result property="examBaseName" column="exam_base_name_"/>
 		<result property="actualExamEndTime" column="actual_exam_end_time_"/>
 		<result property="actualExamStartTime" column="actual_exam_start_time_"/>
@@ -526,7 +527,7 @@
 		<result property="cardNo" column="card_no_"/>
 	</resultMap>
 	<select id="queryExamList" resultMap="ExamRecordDtoMap">
-		SELECT er.level_,ser.exam_registration_id_,eb.name_ exam_base_name_,DATE_FORMAT(eb.actual_exam_start_time_, '%Y-%m-%d') actual_exam_start_time_,
+		SELECT er.level_,ser.exam_registration_id_,eb.status_ exam_status_,eb.name_ exam_base_name_,DATE_FORMAT(eb.actual_exam_start_time_, '%Y-%m-%d') actual_exam_start_time_,
 		DATE_FORMAT(eb.actual_exam_end_time_, '%Y-%m-%d') actual_exam_end_time_,ser.avg_score_,ec.exam_address_,ec.id_ exam_certification_id_,
 		er.examination_basic_id_,er.exam_music_theory_level_,ser.is_finished_exam_,er.theory_level_fee_,
 		ser.video_url_,ser.result_,er.subject_id_,ec.card_no_

+ 11 - 4
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamRoomMapper.xml

@@ -8,6 +8,7 @@
 	
 	<resultMap type="com.keao.edu.user.api.entity.ExamRoom" id="ExamRoom">
 		<result column="id_" property="id" />
+		<result column="name_" property="name"/>
 		<result column="examination_basic_id_" property="examinationBasicId"/>
 		<result column="exam_mode_" property="examMode" typeHandler="com.keao.edu.common.dal.CustomEnumTypeHandler"/>
 		<result column="exam_location_id_" property="examLocationId" />
@@ -43,24 +44,24 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.keao.edu.user.api.entity.ExamRoom" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO exam_room (id_,examination_basic_id_,exam_mode_,exam_location_id_,subject_id_list_,subject_name_list_,
+		INSERT INTO exam_room (id_,name_,examination_basic_id_,exam_mode_,exam_location_id_,subject_id_list_,subject_name_list_,
 		main_teacher_user_id_,main_teacher_user_name_,assistant_teacher_user_id_list_,assistant_teacher_user_name_list_,
 		exam_start_time_,exam_end_time_,del_flag_,organ_id_,exam_plan_push_flag_,
 		exam_room_student_num_,create_time_,update_time_,tenant_id_,exam_flag_)
-		VALUES(#{id},#{examinationBasicId},#{examMode,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{examLocationId},
+		VALUES(#{id},#{name},#{examinationBasicId},#{examMode,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{examLocationId},
 		#{subjectIdList},#{subjectNameList},#{mainTeacherUserId},#{mainTeacherName},#{assistantTeacherUserIdList},#{assistantTeacherUserNameList},
 		#{examStartTime},#{examEndTime},#{delFlag},#{organId},#{examPlanPushFlag},
 		#{examRoomStudentNum},NOW(),NOW(),#{tenantId},#{examFlag})
 	</insert>
 
 	<insert id="batchInsert" parameterType="com.keao.edu.user.api.entity.ExamRoom" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO exam_room (examination_basic_id_,exam_mode_,exam_location_id_,subject_id_list_,subject_name_list_,
+		INSERT INTO exam_room (name_,examination_basic_id_,exam_mode_,exam_location_id_,subject_id_list_,subject_name_list_,
 		main_teacher_user_id_,main_teacher_user_name_,assistant_teacher_user_id_list_,assistant_teacher_user_name_list_,
 		exam_start_time_,exam_end_time_,del_flag_,organ_id_,exam_plan_push_flag_,
 		exam_room_student_num_,create_time_,update_time_,tenant_id_)
 		VALUES
 		<foreach collection="examRooms" item="examRoom" separator=",">
-			(#{examRoom.examinationBasicId},#{examRoom.examMode,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{examRoom.examLocationId},
+			(#{examRoom.name},#{examRoom.examinationBasicId},#{examRoom.examMode,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{examRoom.examLocationId},
 			#{examRoom.subjectIdList},#{examRoom.subjectNameList},
 			#{examRoom.mainTeacherUserId},#{examRoom.mainTeacherName},#{examRoom.assistantTeacherUserIdList},#{examRoom.assistantTeacherUserNameList},
 			#{examRoom.examStartTime},#{examRoom.examEndTime},#{examRoom.delFlag},#{examRoom.organId},#{examRoom.examPlanPushFlag},
@@ -72,6 +73,9 @@
 	<update id="update" parameterType="com.keao.edu.user.api.entity.ExamRoom">
 		UPDATE exam_room
 		<set>
+			<if test="name!=null">
+				name_=#{name},
+			</if>
 			<if test="shieldUserId != null">
 				shield_user_id_ = #{shieldUserId},
 			</if>
@@ -136,6 +140,9 @@
 		<foreach collection="examRooms" item="er" separator=";">
 			UPDATE exam_room
 			<set>
+				<if test="er.name!=null">
+					name_=#{er.name},
+				</if>
 				<if test="er.delFlag != null">
 					del_flag_ = #{er.delFlag},
 				</if>

+ 11 - 0
edu-user/edu-user-client-api/src/main/java/com/keao/edu/user/api/entity/ExamRoom.java

@@ -13,6 +13,9 @@ public class ExamRoom{
 
 	private Long id;
 
+	@ApiModelProperty(value = "考场名称")
+	private String name;
+
 	@ApiModelProperty(value = "考级项目编号")
 	private Long examinationBasicId;
 	
@@ -115,6 +118,14 @@ public class ExamRoom{
 		return this.id;
 	}
 
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
 	public Long getExaminationBasicId() {
 		return examinationBasicId;
 	}

+ 19 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamOrderController.java

@@ -1,6 +1,7 @@
 package com.keao.edu.user.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.keao.edu.auth.api.client.SysUserFeignService;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.controller.BaseController;
@@ -25,6 +26,7 @@ import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.DigestUtils;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
@@ -79,7 +81,23 @@ public class ExamOrderController extends BaseController {
             @ApiImplicitParam(name = "sign", value = "sign", required = true, dataType = "String"),
             @ApiImplicitParam(name = "code", value = "code", required = true, dataType = "String")
     })
-    public Object executePayment(BigDecimal amount, String orderNo, String payChannel, String returnUrl, String orderSubject, String orderBody, String sign, String code, String platform) throws Exception {
+    public Object executePayment(BigDecimal amount, String orderNo, String payChannel, String returnUrl,String notifyUrl, String orderSubject, String orderBody, String sign, String code, String platform) throws Exception {
+        Map<String, Object> signParams = new LinkedHashMap<>();
+        signParams.put("appId", ConfigInit.appId);
+        signParams.put("amount", amount);
+        signParams.put("orderNo", orderNo);
+        signParams.put("notifyUrl", notifyUrl);
+        signParams.put("returnUrl", returnUrl);
+        signParams.put("orderSubject", orderSubject);
+        signParams.put("orderBody", orderBody);
+        signParams.put("wxAppId", ConfigInit.wxAppId);
+
+        String originalStr = JSONObject.toJSONString(signParams);
+        String newSign = DigestUtils.md5DigestAsHex(originalStr.getBytes());
+        if(sign != newSign){
+            return failed("请勿非法请求");
+        }
+
         String openId = "";
         if (payChannel.equals("wx_pub")) {
             if (code == null || code.isEmpty()) {