Browse Source

Merge branch 'feature/1022_vip' into dev

刘俊驰 9 months ago
parent
commit
faa6375562

+ 17 - 1
mec-application/src/main/java/com/ym/mec/web/controller/MemberRankOrganizationFeeMapperController.java

@@ -3,19 +3,24 @@ package com.ym.mec.web.controller;
 import com.ym.mec.biz.dal.entity.MemberRankOrganizationFeeMapper;
 import com.ym.mec.biz.dal.page.MemberRankFeeQueryInfo;
 import com.ym.mec.biz.dal.wrapper.MemberRankOrganizationFeeMapperWrapper;
+import com.ym.mec.biz.dal.wrapper.MemberRankSettingWrapper;
 import com.ym.mec.biz.service.MemberRankOrganizationFeeMapperService;
 import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.collection.MapUtil;
 import com.yonge.log.model.AuditLogAnnotation;
 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.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @RequestMapping("${app-config.url.web:}/memberRankOrganizationFeeMapper")
@@ -41,11 +46,22 @@ public class MemberRankOrganizationFeeMapperController extends BaseController {
     }
 
 
+    @ApiOperation(value = "查询分部可配置的学练宝")
+    @PostMapping("/getMemberRankSetting")
+    @AuditLogAnnotation(operateName = "查询分部可配置的学练宝")
+    public HttpResponseResult<List<MemberRankSettingWrapper.MemberRankSetting>> getMemberRankSetting(
+        @RequestBody @Validated MemberRankOrganizationFeeMapperWrapper.MemberRankQuery query) {
+        query.setTenantId(TenantContextHolder.getTenantId());
+        return succeed(memberRankOrganizationFeeMapperService.getMemberRankSetting(query));
+
+    }
+
+
     @ApiOperation(value = "新增")
     @PostMapping("/addV2")
     @PreAuthorize("@pcs.hasPermissions('memberRankOrganizationFeeMapper/addV2')")
     @AuditLogAnnotation(operateName = "新增系统功能类型")
-    public Object addV2(@RequestBody MemberRankOrganizationFeeMapperWrapper.MemberRankOrganizationFeeMapperAdd memberRankOrganizationFeeMapper) {
+    public Object addV2(@RequestBody @Validated MemberRankOrganizationFeeMapperWrapper.MemberRankOrganizationFeeMapperAdd memberRankOrganizationFeeMapper) {
         memberRankOrganizationFeeMapper.setOperatorId(sysUserService.getUserId());
         memberRankOrganizationFeeMapperService.addV2(memberRankOrganizationFeeMapper);
         return succeed();

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MemberRankOrganizationFeeMapperDao.java

@@ -12,4 +12,6 @@ public interface MemberRankOrganizationFeeMapperDao extends BaseDAO<Integer, Mem
     MemberRankOrganizationFeeMapper findByOrganIdAndRankId(@Param("organId") Integer organId, @Param("memberRankSettingId") Integer memberRankSettingId);
 
     List<MemberRankOrganizationFeeMapper> queryByOrganId(@Param("organId") Integer organId);
+
+    List<MemberRankOrganizationFeeMapper> queryByOrganIds(@Param("orgIds") List<Integer> orgIds);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/RegisterPayDto.java

@@ -34,6 +34,9 @@ public class RegisterPayDto extends PayParamBasicDto{
     @ApiModelProperty(value = "购买乐器保养",required = false)
     private Boolean buyMaintenance = false;
 
+    @ApiModelProperty(value = "缴费项目关联会员Id",required = false)
+    private List<Long> buyCalenderMemberId;
+
     @ApiModelProperty(value = "购买云教练",required = false)
     private Boolean buyCloudTeacher= false;
 
@@ -120,6 +123,14 @@ public class RegisterPayDto extends PayParamBasicDto{
         this.buyMaintenance = buyMaintenance;
     }
 
+    public List<Long> getBuyCalenderMemberId() {
+        return buyCalenderMemberId;
+    }
+
+    public void setBuyCalenderMemberId(List<Long> buyCalenderMemberId) {
+        this.buyCalenderMemberId = buyCalenderMemberId;
+    }
+
     public Boolean getBuyCloudTeacher() {
         return buyCloudTeacher;
     }

+ 19 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/MemberRankOrganizationFeeMapperWrapper.java

@@ -4,15 +4,19 @@ import com.ym.mec.biz.dal.entity.MemberFeeSetting;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
+
 public class MemberRankOrganizationFeeMapperWrapper {
 
     @Data
     public static class MemberRankOrganizationFeeMapperAdd{
 
-        @ApiModelProperty("机构ID 多个逗号隔开")
+        @ApiModelProperty("分部ID 多个逗号隔开")
+        @NotNull(message = "分部ID不能为空")
         private String organIds;
 
-        @ApiModelProperty("会员卡ID")
+        @ApiModelProperty("学练宝ID")
+        @NotNull(message = "学练宝ID不能为空")
         private Integer memberRankSettingId;
 
 
@@ -22,4 +26,17 @@ public class MemberRankOrganizationFeeMapperWrapper {
         private MemberFeeSetting memberFeeSetting;
 
     }
+
+    @Data
+    public static class MemberRankQuery {
+
+        @ApiModelProperty("分部ID 多个逗号隔开")
+        private String organIds;
+
+        @ApiModelProperty("机构ID")
+        private Integer tenantId;
+
+        @ApiModelProperty("ID")
+        private Integer id;
+    }
 }

+ 6 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/MemberRankSettingWrapper.java

@@ -28,7 +28,6 @@ public class MemberRankSettingWrapper {
     @ApiModel(" MemberRankSettingQuery-会员等级设置")
     public static class MemberRankSettingQuery implements QueryInfo {
 
-
         @ApiModelProperty("名称")
         private String name;
 
@@ -44,6 +43,12 @@ public class MemberRankSettingWrapper {
         @ApiModelProperty("会员编号")
         private List<Integer> memberIds;
 
+        @ApiModelProperty("查询有子节点的数据")
+        private Boolean hasChildren;
+
+        @ApiModelProperty("移除ID")
+        private List<Integer> removeIds;
+
         public String jsonString() {
             return JSON.toJSONString(this);
         }

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MemberRankOrganizationFeeMapperService.java

@@ -2,8 +2,11 @@ package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.MemberRankOrganizationFeeMapper;
 import com.ym.mec.biz.dal.wrapper.MemberRankOrganizationFeeMapperWrapper;
+import com.ym.mec.biz.dal.wrapper.MemberRankSettingWrapper;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+
 public interface MemberRankOrganizationFeeMapperService extends BaseService<Integer,MemberRankOrganizationFeeMapper>{
 
     void add(MemberRankOrganizationFeeMapper memberRankOrganizationFeeMapper);
@@ -11,4 +14,6 @@ public interface MemberRankOrganizationFeeMapperService extends BaseService<Inte
     void updateFee(MemberRankOrganizationFeeMapper memberRankOrganizationFeeMapper);
 
     void addV2(MemberRankOrganizationFeeMapperWrapper.MemberRankOrganizationFeeMapperAdd memberRankOrganizationFeeMapper);
+
+    List<MemberRankSettingWrapper.MemberRankSetting> getMemberRankSetting(MemberRankOrganizationFeeMapperWrapper.MemberRankQuery query);
 }

+ 42 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankOrganizationFeeMapperServiceImpl.java

@@ -4,16 +4,23 @@ import com.alibaba.fastjson.JSON;
 import com.ym.mec.biz.dal.dao.MemberRankOrganizationFeeMapperDao;
 import com.ym.mec.biz.dal.entity.MemberFeeSetting;
 import com.ym.mec.biz.dal.entity.MemberRankOrganizationFeeMapper;
+import com.ym.mec.biz.dal.entity.TenantMemberRankSetting;
 import com.ym.mec.biz.dal.wrapper.MemberRankOrganizationFeeMapperWrapper;
+import com.ym.mec.biz.dal.wrapper.MemberRankSettingWrapper;
 import com.ym.mec.biz.service.MemberFeeSettingService;
 import com.ym.mec.biz.service.MemberRankOrganizationFeeMapperService;
+import com.ym.mec.biz.service.MemberRankSettingService;
+import com.ym.mec.biz.service.TenantMemberRankSettingService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.apache.commons.collections.CollectionUtils;
+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 java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -26,6 +33,12 @@ public class MemberRankOrganizationFeeMapperServiceImpl extends BaseServiceImpl<
 	@Autowired
 	private MemberFeeSettingService memberFeeSettingService;
 
+    @Autowired
+    private TenantMemberRankSettingService tenantMemberRankSettingService;
+
+    @Autowired
+    private MemberRankSettingService memberRankSettingService;
+
 	@Override
 	public BaseDAO<Integer, MemberRankOrganizationFeeMapper> getDAO() {
 		return memberRankOrganizationFeeMapperDao;
@@ -37,7 +50,7 @@ public class MemberRankOrganizationFeeMapperServiceImpl extends BaseServiceImpl<
 		//一个分部只能关联一个会员
 		MemberRankOrganizationFeeMapper feeMapper = memberRankOrganizationFeeMapperDao.findByOrganIdAndRankId(memberRankOrganizationFeeMapper.getOrganId(),memberRankOrganizationFeeMapper.getMemberRankSettingId());
 		if(feeMapper != null){
-			throw new BizException("操作失败: 该分部会员收费标准已存在");
+			throw new BizException("操作失败: 分部学练宝收费标准已存在");
 		}
 		MemberFeeSetting memberFeeSetting = memberRankOrganizationFeeMapper.getMemberFeeSetting();
 		if(memberFeeSetting == null){
@@ -62,7 +75,7 @@ public class MemberRankOrganizationFeeMapperServiceImpl extends BaseServiceImpl<
 		if(!feeMapper.getOrganId().equals(memberRankOrganizationFeeMapper.getOrganId())){
 			MemberRankOrganizationFeeMapper organIdAndRankId = memberRankOrganizationFeeMapperDao.findByOrganIdAndRankId(memberRankOrganizationFeeMapper.getOrganId(), memberRankOrganizationFeeMapper.getMemberRankSettingId());
 			if(organIdAndRankId != null){
-				throw new BizException("修改失败: 该分部会员收费标准已存在");
+				throw new BizException("修改失败: 该分部学练宝收费标准已存在");
 			}
 		}
 		memberFeeSetting.setId(feeMapper.getMemberFeeSettingId());
@@ -73,7 +86,7 @@ public class MemberRankOrganizationFeeMapperServiceImpl extends BaseServiceImpl<
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void addV2(MemberRankOrganizationFeeMapperWrapper.MemberRankOrganizationFeeMapperAdd memberRankOrganizationFeeMapper) {
-        //一个分部只能关联一个会员
+        //一个分部同一个会员,只能关联一次
         List<Integer> orgIds = Arrays.stream(memberRankOrganizationFeeMapper.getOrganIds().split(","))
             .map(Integer::parseInt).collect(Collectors.toList());
 
@@ -83,4 +96,30 @@ public class MemberRankOrganizationFeeMapperServiceImpl extends BaseServiceImpl<
             add(mapper);
         }
     }
+
+    @Override
+    public List<MemberRankSettingWrapper.MemberRankSetting> getMemberRankSetting(MemberRankOrganizationFeeMapperWrapper.MemberRankQuery query) {
+        // 查询机构学练宝ID
+        List<TenantMemberRankSetting> list = tenantMemberRankSettingService.lambdaQuery()
+            .eq(TenantMemberRankSetting::getTenantId, query.getTenantId())
+            .list();
+        if (CollectionUtils.isEmpty(list)) {
+            return new ArrayList<>();
+        }
+        MemberRankSettingWrapper.MemberRankSettingQuery settingQuery = new MemberRankSettingWrapper.MemberRankSettingQuery();
+        settingQuery.setHasChildren(true);
+        List<Integer> memberRankSettingIds = list.stream().map(TenantMemberRankSetting::getMemberRankSettingId).collect(Collectors.toList());
+        settingQuery.setMemberIds(memberRankSettingIds);
+        if (StringUtils.isNotBlank(query.getOrganIds())) {
+            List<MemberRankOrganizationFeeMapper> memberRankOrganizationFeeMappers = memberRankOrganizationFeeMapperDao.queryByOrganIds(Arrays.stream(query.getOrganIds().split(","))
+                .map(Integer::parseInt).collect(Collectors.toList()));
+            if (query.getId() != null) {
+                memberRankOrganizationFeeMappers = memberRankOrganizationFeeMappers.stream().filter(o->o.getId().equals(query.getId())).collect(Collectors.toList());
+            }
+            settingQuery.setRemoveIds(memberRankOrganizationFeeMappers.stream().map(MemberRankOrganizationFeeMapper::getMemberRankSettingId).collect(Collectors.toList()));
+        }
+
+        return memberRankSettingService.queryPage2(settingQuery);
+
+    }
 }

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

@@ -151,7 +151,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         memberRankSettingDao.insert(object);
         List<Integer> memberPrivilegesItemIdList = memberRankSetting.getMemberPrivilegesItemIdList();
         if (CollectionUtils.isEmpty(memberPrivilegesItemIdList)) {
-            throw new BizException("操作失败:请配置会员权益");
+            throw new BizException("操作失败:请配置学练宝权益");
         }
         memberRankPrivilegesDao.batchInsert(object.getId(), memberPrivilegesItemIdList);
         // 设置学练宝曲目分类内容
@@ -1179,6 +1179,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         List<Integer> rankIds = feeMappers.stream().map(MemberRankOrganizationFeeMapper::getMemberRankSettingId).collect(Collectors.toList());
         MemberRankSettingWrapper.MemberRankSettingQuery queryInfo = new MemberRankSettingWrapper.MemberRankSettingQuery();
         queryInfo.setMemberIds(rankIds);
+        queryInfo.setHasChildren(true);
         return this.queryPage2(queryInfo);
     }
 }

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

@@ -817,7 +817,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
             if (order.getOrderDetailList() == null) {
                 continue;
             }
-            
+
             BigDecimal organShareProfit = BigDecimal.ZERO;
             for (StudentPaymentOrderDetail studentPaymentOrderDetail : order.getOrderDetailList()) {
                 if (studentPaymentOrderDetail.getGoodsList() == null) {

+ 5 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -547,7 +547,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         }
         MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(studentPaymentOrder.getCalenderId());
 
-        boolean isGiveAccessories = musicGroup.getIsGiveAccessories() == null ? false : musicGroup.getIsGiveAccessories();
+        boolean isGiveAccessories = musicGroup.getIsGiveAccessories() != null && musicGroup.getIsGiveAccessories();
         
         Date date = new Date();
         List<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
@@ -556,6 +556,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         List<MusicGroupSubjectGoodsGroup> goodsGroups = goodsDto.getGoodsGroups();
         List<MusicGroupPaymentCalenderCourseSettings> newCourses = goodsDto.getNewCourses();
         BigDecimal remitFee = goodsDto.getRemitFee();
+        Boolean buyCloudTeacher = CollectionUtils.isNotEmpty(registerPayDto.getBuyCalenderMemberId());
         if (CollectionUtils.isNotEmpty(goodsGroups)) {
         	
         	BigDecimal organShareProfit = BigDecimal.ZERO;
@@ -577,9 +578,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
                 BigDecimal goodsPrice = new BigDecimal(0);
                 
-				if (!(type == OrderDetailTypeEnum.ACCESSORIES && (isGiveAccessories && registerPayDto.getBuyCloudTeacher()))) {
+				if (!(type == OrderDetailTypeEnum.ACCESSORIES && (isGiveAccessories && buyCloudTeacher))) {
 
-	                if (studentRegistration.getOrganId() == 55 && (newCourses == null || newCourses.size() == 0) && !registerPayDto.getBuyCloudTeacher()) {
+	                if (studentRegistration.getOrganId() == 55 && (CollectionUtils.isEmpty(newCourses)) && !buyCloudTeacher) {
 	                    //取商品零售价
 	                    if (StringUtils.isNotBlank(goodsGroup.getGoodsIdList())) {
 	                        List<Goods> goodsList = goodsDao.findGoodsByIds(goodsGroup.getGoodsIdList());
@@ -700,7 +701,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
 
         //云教练/云教练+  todo  团练宝
-        if (registerPayDto.getBuyCloudTeacher() || (Objects.nonNull(calender) && calender.getPayUserType() == MusicGroupPaymentCalender.PayUserType.SCHOOL)) {
+        if (buyCloudTeacher || (Objects.nonNull(calender) && calender.getPayUserType() == MusicGroupPaymentCalender.PayUserType.SCHOOL)) {
             List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberService.findByCalenderId(studentPaymentOrder.getCalenderId());
             if(CollectionUtils.isNotEmpty(calenderMembers)){
                 for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {

+ 7 - 0
mec-biz/src/main/resources/config/mybatis/MemberRankOrganizationFeeMapperMapper.xml

@@ -123,4 +123,11 @@
     <select id="queryByOrganId" resultMap="MemberRankOrganizationFeeMapper">
 		SELECT * FROM member_rank_organization_fee_mapper WHERE organ_id_ = #{organId}
 	</select>
+
+	<select id="queryByOrganIds" resultMap="MemberRankOrganizationFeeMapper">
+        SELECT * FROM member_rank_organization_fee_mapper WHERE organ_id_ IN
+        <foreach collection="orgIds" item="organId" open="(" close=")" separator=",">
+            #{organId}
+        </foreach>
+    </select>
 </mapper>

+ 11 - 0
mec-biz/src/main/resources/config/mybatis/MemberRankSettingMapper.xml

@@ -85,12 +85,23 @@
             <if test="updateEndTime !=null">
                 AND mrs.update_time_ &lt;= #{updateEndTime}
             </if>
+            <if test="hasChildren !=null">
+            	<if test="hasChildren == true">
+					AND mrs.parent_id_ != 0
+				</if>
+            </if>
             <if test="memberIds !=null and memberIds.size > 0">
             	AND mrs.id_ IN
 				<foreach collection="memberIds" item="id" open="(" close=")" separator=",">
 					#{id}
 				</foreach>
             </if>
+            <if test="removeIds !=null and removeIds.size > 0">
+            	AND mrs.id_ NOT IN
+                <foreach collection="removeIds" item="id" open="(" close=")" separator=",">
+                    #{id}
+                </foreach>
+            </if>
             <if test="updateName !=null and updateName !=''">
                 AND su.real_name_ LIKE CONCAT('%',#{updateName},'%')
             </if>

+ 1 - 1
mec-common/audit-log/src/main/java/com/yonge/log/interceptor/AuditLogInterceptor.java

@@ -41,7 +41,7 @@ public class AuditLogInterceptor extends HandlerInterceptorAdapter {
 
     @Override
     public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
-        syncSaveLog(request, handler);
+//        syncSaveLog(request, handler);
     }
 
     public void syncSaveLog(HttpServletRequest request, Object handler) {