Browse Source

Merge branch 'cloud_teacher_active_2021_09' of http://git.dayaedu.com/yonge/mec

zouxuan 4 years ago
parent
commit
eae8684850

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/ContractService.java

@@ -117,7 +117,7 @@ public interface ContractService {
 	 * @param userId
 	 * @return
 	 */
-	boolean transferProduceContract(Integer userId, String musicGroupId, CourseViewTypeEnum courseViewType);
+	void transferProduceContract(Integer userId, String musicGroupId, CourseViewTypeEnum courseViewType);
 
 	/**
 	 * 传递产品协议-仅生成课程协议

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/OrganizationService.java

@@ -9,7 +9,7 @@ import java.util.*;
 
 public interface OrganizationService extends BaseService<Integer, Organization> {
 
-    Set<Integer>  EXCLUDE_ORGAN_IDS = new HashSet<>(Arrays.asList(36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56));
+    Set<Integer>  EXCLUDE_ORGAN_IDS = new HashSet<>(Arrays.asList(36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,2,27,22,24));
 
     /**
      * 获取节点树状结构

+ 16 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java

@@ -331,7 +331,8 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 	@Override
 	public boolean transferMusicGroupCoursesContract(Integer userId, String musicGroupId) {
 		if(true){
-			return transferProduceContract(userId, musicGroupId, null);
+			transferProduceContract(userId, musicGroupId, null);
+			return true;
 		}
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
 
@@ -526,7 +527,8 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 	@Override
 	public boolean transferVipGroupCoursesContract(Integer userId, Long vipGroupId) {
 		if(true){
-			return transferProduceContract(userId, null, null);
+			transferProduceContract(userId, null, null);
+			return true;
 		}
 
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
@@ -669,7 +671,8 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 	@Override
 	public boolean transferGoodsContract(Integer userId, String musicGroupId, String goodsIds, KitGroupPurchaseTypeEnum kitGroupPurchaseTypeEnum) {
 
-		return transferProduceContract(userId, musicGroupId,null);
+		transferProduceContract(userId, musicGroupId,null);
+		return true;
 	}
 
 	@Override
@@ -778,7 +781,8 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 	@Override
 	public boolean transferPracticeCoursesContract(Integer userId, int courseSectionNum, Date startDate, Date endDate, BigDecimal fee) {
 		if(true){
-			return transferProduceContract(userId, null, null);
+			 transferProduceContract(userId, null, null);
+			 return true;
 		}
 
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
@@ -857,17 +861,17 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 	@Override
 	@Async
 	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED, propagation = Propagation.REQUIRES_NEW)
-	public boolean transferProduceContract(Integer userId,String musicGroupId, CourseViewTypeEnum courseViewType) {
+	public void transferProduceContract(Integer userId,String musicGroupId, CourseViewTypeEnum courseViewType) {
 		SysUser user = studentDao.lockUserReturnInfo(userId);
 
 		if (user == null) {
 			logger.error("用户不存在({})", userId);
-			return false;
+			return;
 		}
 
 		if(StringUtils.isBlank(user.getRealName())||StringUtils.isBlank(user.getIdCardNo())){
 			logger.error("身份信息缺失({})", userId);
-			return false;
+			return;
 		}
 
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
@@ -876,7 +880,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 				sysUserTsign = register(userId, user.getRealName(), user.getIdCardNo(), user.getPhone());
 			} catch (Exception e) {
 				logger.error("用户电子签章注册失败", e);
-				return false;
+				return;
 			}
 		}
 		Date date = new Date();
@@ -914,7 +918,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 			MusicGroup musicGroup = musicGroupService.get(musicGroupId);
 			if (musicGroup == null) {
 				logger.error("乐团信息没找到({})", musicGroupId);
-				return false;
+				return;
 			}
 			params.put("ownershipType", musicGroup.getOwnershipType().name());
 			ownershipType = musicGroup.getCourseViewType();
@@ -926,7 +930,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 
 		List<SysUserContracts> userContracts = sysUserContractsService.getUserContractWithType(userId, ContractType.PRODUCT, ownershipType.getContractVersion());
 		if(!CollectionUtils.isEmpty(userContracts)){
-			return true;
+			return;
 		}
 
 		templateEngine.render(params, "product"+ownershipType.getContractVersion()+".ftl", srcFile);
@@ -936,7 +940,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 			PDFUtil.renderToPDFByData(ContractServiceImpl.class.getResource("/").getFile(), FileUtils.readFileToString(srcFile), srcPdfPath, "simsun.ttc");
 		} catch (IOException e) {
 			logger.error("生成产品协议失败", e);
-			return false;
+			return;
 		}
 
 
@@ -949,7 +953,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 		SysUserTsign organTsign = sysUserTsignService.queryByCardNo(organCode);
 		if (organTsign == null) {
 			logger.error("甲方未创建签章");
-			return false;
+			return;
 		}
 
 		eSealPlugin.organSign(organTsign.getSealData(), srcPdfPath, srcPdfPath);
@@ -972,7 +976,6 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 		sysUserContractsService.insert(sysUserContracts);
 
 		FileUtils.deleteQuietly(srcFile);
-		return true;
 	}
 
 	@Override

+ 34 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -20,6 +20,7 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.excel.POIUtil;
 import com.ym.mec.util.upload.UploadUtil;
+
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -361,6 +362,10 @@ public class ExportServiceImpl implements ExportService {
             cooperationOrganMap = cooperationOrgans.stream().collect(Collectors.toMap(CooperationOrgan::getId, CooperationOrgan::getName));
         }
         long i = 1;
+        
+        Map<String,BigDecimal> serviceChargeMap = new HashMap<String, BigDecimal>();
+        Map<String,Integer> orderCountMap = new HashMap<String, Integer>();
+        
         for (StudentPaymentOrderExportDto row : studentPaymentOrderExportDtos) {
             if (row.getActualAmount() == null) {
                 row.setActualAmount(BigDecimal.ZERO);
@@ -375,17 +380,43 @@ public class ExportServiceImpl implements ExportService {
                 row.setMemo("");
             }
             BigDecimal transferFee = BigDecimal.ZERO;
+            BigDecimal currentFee = BigDecimal.ZERO;
+            BigDecimal totalFee = BigDecimal.ZERO;
             if (row.getPaymentChannel() != null && row.getPaymentChannel().equals("ADAPAY")) {
                 FeeFlagNumDto countFeeFlagNum = studentPaymentRouteOrderDao.getCountFeeFlagNum(row.getOrderNo());
-                if (countFeeFlagNum.getTotalNum() > countFeeFlagNum.getYesNum() && row.getFeeFlag().equals("Y")) {
+                
+                Integer times = orderCountMap.get(row.getOrderNo());
+				if (times == null) {
+					times = 1;
+				} else {
+					++times;
+				}
+            	orderCountMap.put(row.getOrderNo(), times);
+                
+                transferFee = serviceChargeMap.get(row.getOrderNo());
+                if(transferFee == null){
+                	transferFee = BigDecimal.ZERO;
+                }
+                
+                currentFee = row.getRouteAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
+                totalFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
+                if(totalFee.subtract(transferFee.add(currentFee)).doubleValue() < 0 || times == countFeeFlagNum.getTotalNum()){
+                	currentFee = totalFee.subtract(transferFee);
+                	serviceChargeMap.put(row.getOrderNo(), totalFee);
+                }else{
+                	serviceChargeMap.put(row.getOrderNo(), transferFee.add(currentFee));
+                }
+                
+                /*if (countFeeFlagNum.getTotalNum() > countFeeFlagNum.getYesNum() && row.getFeeFlag().equals("Y")) {
                     transferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
                 }
                 if (countFeeFlagNum.getTotalNum().equals(countFeeFlagNum.getYesNum())) {
                     BigDecimal totalTransferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
                     transferFee = totalTransferFee.multiply(row.getRouteAmount()).divide(row.getActualAmount(), 2, BigDecimal.ROUND_HALF_UP);
-                }
+                }*/
+                
             }
-            row.setTransferFee(transferFee);
+            row.setTransferFee(currentFee);
 
             String goodsName = "";
             if (row.getOrderDetailList() != null) {

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

@@ -290,7 +290,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 
 		Integer userId = studentPaymentOrder.getUserId();
 
-		Student student = studentService.get(userId);
+		Student student = studentService.getLocked(userId);
 		if (student == null) {
 			throw new BizException("学员信息不存在");
 		}

+ 7 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java

@@ -1003,19 +1003,19 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
                 dto.setTargetAmount(target.getTargetAmount());
             }
             if(dto.getBuyAmount().doubleValue() > 0d && dto.getBuyNum() > 0){
-                BigDecimal avgBuyAmount = dto.getBuyAmount().divide(new BigDecimal(dto.getBuyNum()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
+                BigDecimal avgBuyAmount = dto.getBuyAmount().divide(new BigDecimal(dto.getBuyNum()), 4, BigDecimal.ROUND_HALF_UP);
                 dto.setAvgBuyAmount(avgBuyAmount);
             }
             if(dto.getTotalNum() > 0 && dto.getBuyNum() > 0){
-                BigDecimal buyScale = new BigDecimal(dto.getBuyNum()).divide(new BigDecimal(dto.getTotalNum()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
+                BigDecimal buyScale = new BigDecimal(dto.getBuyNum()).divide(new BigDecimal(dto.getTotalNum()), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
                 dto.setBuyScale(buyScale);
             }
             if(dto.getTargetNum() > 0 && dto.getBuyNum() > 0){
-                BigDecimal targetFinishScale = new BigDecimal(dto.getBuyNum()).divide(new BigDecimal(dto.getTargetNum()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
+                BigDecimal targetFinishScale = new BigDecimal(dto.getBuyNum()).divide(new BigDecimal(dto.getTargetNum()), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
                 dto.setTargetFinishScale(targetFinishScale);
             }
             if(dto.getBuyAmount().doubleValue() > 0d && dto.getTargetAmount().doubleValue() > 0d){
-                BigDecimal targetAmountFinishScale = dto.getBuyAmount().divide(dto.getTargetAmount(), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
+                BigDecimal targetAmountFinishScale = dto.getBuyAmount().divide(dto.getTargetAmount(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
                 dto.setTargetAmountFinishScale(targetAmountFinishScale);
             }
         }
@@ -1033,6 +1033,7 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         resultMap.put("avgBuyAmount",0);
 //        resultMap.put("buyScale",0);
         resultMap.put("targetFinishScale",0);
+        resultMap.put("targetAmountFinishScale",0);
         if(buyAmount.doubleValue() > 0d && buyNum > 0){
             BigDecimal avgBuyAmount = buyAmount.divide(new BigDecimal(buyNum), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
             resultMap.put("avgBuyAmount",avgBuyAmount);
@@ -1042,11 +1043,11 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 //            resultMap.put("buyScale",buyScale);
 //        }
         if(targetNum > 0 && buyNum > 0){
-            BigDecimal targetFinishScale = new BigDecimal(buyNum).divide(new BigDecimal(targetNum), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
+            BigDecimal targetFinishScale = new BigDecimal(buyNum).divide(new BigDecimal(targetNum), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
             resultMap.put("targetFinishScale",targetFinishScale);
         }
         if(buyAmount.doubleValue() > 0d && targetAmount.doubleValue() > 0d){
-            BigDecimal targetAmountFinishScale = buyAmount.divide(targetAmount, CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
+            BigDecimal targetAmountFinishScale = buyAmount.divide(targetAmount, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
             resultMap.put("targetAmountFinishScale",targetAmountFinishScale);
         }
         Map<String,Object> result = new HashMap<>(2);

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -1333,7 +1333,7 @@
         -- 			非管乐
         AND su.id_ NOT IN (SELECT user_id_ FROM student WHERE subject_id_list_ REGEXP '21|25|26|27|28|29')
         -- 			声部排除
-        AND su.organ_id_ NOT IN (36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,63)
+        AND su.organ_id_ NOT IN (36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,63,2,27,22,24)
         -- 			购买了云教练
         AND su.id_ NOT IN (SELECT DISTINCT student_id_ FROM cloud_teacher_order WHERE active_remark_ IS NULL AND status_ != 0)
         -- 			未退团,不是会员团

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -1752,7 +1752,7 @@
         -- 			非管乐
         AND su.id_ NOT IN (SELECT user_id_ FROM student WHERE subject_id_list_ REGEXP '21|25|26|27|28|29')
         -- 			声部排除
-        AND su.organ_id_ NOT IN (36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,63)
+        AND su.organ_id_ NOT IN (36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,63,2,27,22,24)
         -- 			购买了云教练
         AND su.id_ NOT IN (SELECT DISTINCT student_id_ FROM cloud_teacher_order WHERE active_remark_ IS NULL AND status_ != 0)
         -- 			未退团,不是会员团

+ 2 - 8
mec-biz/src/main/resources/config/mybatis/SysMusicScoreAccompanimentMapper.xml

@@ -71,16 +71,13 @@
 		<if test="memo != null">
 			memo_ = #{memo},
 		</if>
-		<if test="subjectId != null">
-			subject_id_ = #{subjectId},
-		</if>
 		<if test="speed != null">
 			speed_ = #{speed},
 		</if>
 		<if test="examSongId != null">
 			exam_song_id_ = #{examSongId},
 		</if>
-			xml_url_ = #{xmlUrl},mp3_url_ = #{mp3Url}, update_time_ = NOW()
+			subject_id_ = #{subjectId},xml_url_ = #{xmlUrl},mp3_url_ = #{mp3Url}, update_time_ = NOW()
 	</set>WHERE id_ = #{id}
 	</update>
 	<update id="batchDel">
@@ -102,13 +99,10 @@
 				<if test="item.speed != null">
 					speed_ = #{item.speed},
 				</if>
-				<if test="item.subjectId != null">
-					subject_id_ = #{item.subjectId},
-				</if>
 				<if test="item.examSongId != null">
 					exam_song_id_ = #{item.examSongId},
 				</if>
-				xml_url_ = #{item.xmlUrl},mp3_url_ = #{item.mp3Url}, update_time_ = NOW()
+				subject_id_ = #{item.subjectId},xml_url_ = #{item.xmlUrl},mp3_url_ = #{item.mp3Url}, update_time_ = NOW()
 			</set> WHERE id_ = #{item.id}
 		</foreach>
 	</update>

+ 0 - 13
mec-student/src/main/java/com/ym/mec/student/controller/SysCouponCodeController.java

@@ -10,13 +10,10 @@ import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.math.BigDecimal;
-
 @RequestMapping("sysCouponCode")
 @Api(tags = "优惠券明细")
 @RestController
@@ -53,14 +50,4 @@ public class SysCouponCodeController extends BaseController {
 		}
 		return succeed(sysCouponCodeService.exchangeCouponTest(sysUser.getId(), couponId, paymentOrderId, exchangeNum));
 	}
-
-	@ApiOperation("获取用户待使用的优惠券")
-	@PostMapping(value = "queryCouponPage")
-	public HttpResponseResult queryCouponPage(BigDecimal amount){
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed("用户信息获取失败");
-		}
-		return succeed(sysCouponCodeService.queryCouponPage(amount,sysUser.getId()));
-	}
 }

+ 1 - 1
mec-util/src/main/java/com/ym/mec/util/http/HttpUtil.java

@@ -39,7 +39,7 @@ import java.util.Map.Entry;
 public class HttpUtil {
 
 //	public static void main(String[] args) {
-//		System.out.println(getSortUrl("https://mstuonline.dayaedu.com/#/childrenPayment"));
+//		System.out.println(getSortUrl("https://mstuonline.dayaedu.com/#/studentDownload"));
 //	}
 
 	public static String getSortUrl(String url){