Pārlūkot izejas kodu

feat:
1、产品协议添加;
2、用户报名三要素验证;

Joburgess 4 gadi atpakaļ
vecāks
revīzija
f9225189eb

+ 14 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/UserController.java

@@ -14,11 +14,13 @@ import com.ym.mec.common.security.SecurityConstants;
 import com.ym.mec.common.security.SecurityUtils;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.im.ImFeignService;
+import com.ym.mec.thirdparty.eseal.ESealPlugin;
 import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
@@ -27,6 +29,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
+import java.util.Objects;
 
 @RestController()
 @RequestMapping("user")
@@ -43,6 +46,8 @@ public class UserController extends BaseController {
 	private SysUserRoleService sysUserRoleService;
 	@Autowired
 	private IdGeneratorService smsCodeService;
+	@Autowired
+	private ESealPlugin eSealPlugin;
 
 	@ApiOperation(value = "分页查询用户信息")
 	@ApiImplicitParams({ @ApiImplicitParam(name = "userType", value = "用户类型", required = false, dataType = "String"),
@@ -225,6 +230,15 @@ public class UserController extends BaseController {
 			if(sysUser.getBirthdate() != null && DateUtil.daysBetween(sysUser.getBirthdate(),date) <= 0){
 				throw new BizException("出生日期不可超过当前时间");
 			}
+
+			String accountId = eSealPlugin.createUserAccount(
+					user.getUsername().split(":")[1],
+					sysUser.getIdCardNo(),
+					sysUser.getPhone());
+			if (StringUtils.isBlank(accountId)) {
+				throw new BizException("用户信息错误");
+			}
+
 			sysUserService.updateBaseInfo(sysUser);
 			return succeed();
 		}

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -21,6 +21,7 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.redis.service.RedisCache;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
+import com.ym.mec.thirdparty.eseal.ESealPlugin;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.http.HttpUtil;
@@ -92,6 +93,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     private SysUserFeignService sysUserFeignService;
     @Autowired
     private RedisCache<String, Object> redisCache;
+    @Autowired
+    private ESealPlugin eSealPlugin;
 
     @Override
     public BaseDAO<Long, StudentRegistration> getDAO() {

+ 10 - 6
mec-biz/src/main/resources/config/contracts/product.ftl

@@ -77,6 +77,9 @@
         .bold {
             font-weight: bold;
         }
+        .highlight{
+            color: red;
+        }
     </style>
 </head>
 <body>
@@ -122,10 +125,10 @@
 
         <h2>二、乐团及上课规范</h2>
         1、乙方学员在应服从甲方的管理,遵守甲方的制度。<br />
-        2、乙方学员应按时到达甲方指定上课地点,好课前准备;如发生迟到、早退或因其他乙方原因未能按时上课的,视为乙方学员放弃该次课程,为避免影响老师后续课程的正常进行,授课老师除完成原定时间安排的授课外,将不再提供额外延长课时,也不会因乙方学员缺席而暂停教学课程。<br />
+        2、乙方学员应按时到达甲方指定上课地点,好课前准备;如发生迟到、早退或因其他乙方原因未能按时上课的,视为乙方学员放弃该次课程,为避免影响老师后续课程的正常进行,授课老师除完成原定时间安排的授课外,将不再提供额外延长课时,也不会因乙方学员缺席而暂停教学课程。<br />
         3、乙方学员不得携带任何食品进入教室,所有进食应在课前完成;进入教室后,不得大声喧哗、追逐嬉戏,应当听从授课老师的安排;乙方学员应爱护公共财产和教学设施,严禁在桌椅上刻、划、涂、写等不文明行为;乙方学员未经授课老师同意,不得擅自使用教室内的乐器、音响、电视、空调等器材、设施,如造成此类器材、设施损坏的,乙方应照价赔偿。<br />
         4、未经授课老师同意,乙方家长不得进入课堂,以免影响老师和学员上课;为保证训练质量及进度,乙方学员应保证按照指导老师或教务老师所提出的要求在家练习,遇到专业问题应及时向指导老师请教,非专业问题可随时向教务老师反映。<br />
-        <span class="bold">5、乙方家长应教育及监督乙方学员务必注意个人安全,妥善保管个人财物,对于非甲方原因造成的人身安全事故或财物损失,由乙方自行承担。</span><br/ >
+        <span class="bold">5、乙方家长应教育及监督乙方学员务必注意个人安全,妥善保管个人财物,对于非甲方原因造成的人身安全事故或财物损失,由乙方自行承担。</span><br />
         6、对于乐团学员出现以下情形时,甲方有权对乙方学员作出警告,如甲方作出警告后,乙方学员仍然不遵守甲方的管理制度的,甲方有权对其作出退团等处分。<br />
         6.1上课、排练时不服从管理和指导,不遵守纪律,影响其他团员的正常上课、排练;<br />
         6.2一个学期内发生两次及以上旷课行为;<br />
@@ -134,7 +137,7 @@
 
         <h2>三、请假</h2>
         1、基于教学进度和质量保证,甲方对于课程延续性有严格要求,因此乙方学员应尽量参加课程,无特殊情况则应避免请假。<br />
-        <div class="bold">2、VIP课程学员如有特殊情况需要请假的,应提前4小时以上通过管乐迷APP完成请假,否则当次课程将视同发生,系统将自动记录结算课时并扣除相应课程费用。</div>
+        <div class="bold">2、VIP课程学员如有特殊情况需要请假的,应提前4小时以上通过管乐迷App完成请假,否则当次课程将视同发生,系统将自动记录结算课时并扣除相应课程费用。</div>
         3、VIP学员如遇特殊情况需要长期请假时,可向□甲方/□授课老师申请办理临时休会。学员可在6个月内申请复学,超过6个月未申请复学的,甲方有权按自动退会处理。<span class="bold">VIP课程为一对二课程的,其中一位学员申请临时休会的,还需征得同组另一位学员的同意后方可申请休会。否则将不予受理。</span><br />
         <span class="bold">4、鉴于团课的特殊性,团课学员个人请假,当次课程仍视同发生,系统将自动记录结算课时并扣除相应课程费用。</span><br />
         5、每期课程均有相对应的有效期,乙方应在有效期内完成课程,10次课一期的,自交费之日起4个月内有效;20次课一期的,自交费之日起8个月内有效;40次课一期的,自交费之日起16个月内有效。<span class="bold">如果由于指导老师请假等原因造成课程不能如期完成的,课程有效期将顺延;如课程超出有效期限,乙方所缴纳的课程费用将自动扣除逾期未完成的课时后自动清零。</span><br />
@@ -144,7 +147,8 @@
         <span class="bold">2、乐保服务,在维修老师下校检查前提出申请可全额退还,下校检查日过后则不予退费;</span><br />
         <span class="bold">3、非个别课程,包括但不限于声部基础课、合奏课、基础技能课、网基课、集训课、VIP课程项下一对二等,自购买缴款之日起15日内提出申请可全额退还,超过上述期限或实际已发生课时消耗的则一律不予受理退费;</span><br />
         <span class="bold">4、正价购买的个别课程,包括但不限于VIP课程项下一对一、网管课等,课程有效期内可申请退费,可退款金额为:购买金额-课时原价*已消耗课时数量;</span><br />
-        <span class="bold">5、活动期间以优惠价格购买的个别课程,自购买缴款之日起15日内提出申请可全额退还,超过上述期限或实际已发生课时消耗的则一律不予受理退费;</span><br />
+        <span class="bold">5、活动期间以优惠价格购买的个别课程,自购买缴款之日起15日内提出申请可全额退还,超过上述期限或实际已发生课时消耗的则一律不予受理退费;</span><br /><br />
+        <span class="bold highlight">从您提出退费申请到您收到退款的时间,会因为您订购时所选择的付款方式而有所不同,通常符合规定的退费会在15个工作日内完成退款操作。</span><br />
 
         <h2>五、违约责任</h2>
         1、当事人一方不履行合同义务或者履行合同义务不符合约定的,均构成违约,守约方有权以书面通知的方式要求违约方纠正其违约行为并采取及时、有效的补救措施消除违约后果,并赔偿守约方因违约方之违约行为而遭致的损失。若违约方在收到守约方的上述通知后5日内未纠正其违约行为的,守约方有权在做出书面通知的情况下,单方解除本协议,违约方应赔偿守约方因此遭致的全部损失。<br />
@@ -169,7 +173,7 @@
         3、双方确认并同意,本协议的电子版本与纸质版本具有同等法律效力。双方发生争议时,电子合同打印件可作为证据提交。双方通过网络以在线方式签订本协议的 ,则以乙方点击“确认”或“同意”等相关按钮或以电子签名的方式作为对合同内容的同意、确认以及本协议的签署;如双方签订纸质版本协议的,则本协议壹式贰份,甲方盖公章或合同专用章并且乙方签字作为有效签署方式,并且双方各执壹份,每份具有同等法律效力。<br />
         4、本协议自双方按照本协议约定方式签署之日起生效,有效期至双方履行完本协议约定的全部义务时止。<br />
         5、本协议未尽事宜或对本协议的任何修改、补充,有双方另行协商后以签订补充协议的方式解决,补充协议与本协议具有同等法律效力;双方没有约定也没有协商一致的,遵照相关法律法规规定执行。<br />
-        6、双方因履行本协议而相互发出或者提供的所有通知、文件、资料,均以本协议中所列明的电话、APP推送消息送达,乙方如果变更电话号码的,应当自变更后1日内通知甲方且获得甲方确认,甲方通过电话、APP方式无法联系乙方或者甲方认为必要时,甲方也可以通过特快专递至乙方住址的方式向乙方发出上述任何通知、文件、资料等,并在甲方寄出特快专递后第5日视为送达成功。<br />
+        6、双方因履行本协议而相互发出或者提供的所有通知、文件、资料,均以本协议中所列明的电话、App推送消息送达,乙方如果变更电话号码的,应当自变更后1日内通知甲方且获得甲方确认,甲方通过电话、App方式无法联系乙方或者甲方认为必要时,甲方也可以通过特快专递至乙方住址的方式向乙方发出上述任何通知、文件、资料等,并在甲方寄出特快专递后第5日视为送达成功。<br />
 
         <div class="signature">
         	<#if isShowVisualSeal>
@@ -202,4 +206,4 @@
         </div>
     </div>
 </body>
-</html>
+</html>

+ 9 - 5
mec-student/src/main/java/com/ym/mec/student/controller/ContractsController.java

@@ -2,6 +2,7 @@ package com.ym.mec.student.controller;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.Objects;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -80,11 +81,14 @@ public class ContractsController extends BaseController {
 
 	@ApiOperation("查询产品协议")
 	@GetMapping(value = "queryProduceContract")
-	public Object queryProduceContract() {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed("获取用户信息失败");
+	public Object queryProduceContract(Integer userId) {
+		if(Objects.isNull(userId)){
+			SysUser sysUser = sysUserFeignService.queryUserInfo();
+			if (sysUser == null) {
+				return failed("获取用户信息失败");
+			}
+			userId = sysUser.getId();
 		}
-		return succeed(contractService.queryProductContract(sysUser.getId()));
+		return succeed(contractService.queryProductContract(userId));
 	}
 }