yonge 4 年 前
コミット
5f105d9e85

+ 5 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MemberRankSettingDao.java

@@ -1,9 +1,13 @@
 package com.ym.mec.biz.dal.dao;
 
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
 import com.ym.mec.biz.dal.entity.MemberRankSetting;
 import com.ym.mec.common.dal.BaseDAO;
 
 public interface MemberRankSettingDao extends BaseDAO<Integer, MemberRankSetting> {
 
-	
+	List<MemberRankSetting> queryListByIsDefault(@Param("isDefault") Boolean isDefault);
 }

+ 0 - 10
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MemberRankOrganizationFeeMapper.java

@@ -33,8 +33,6 @@ public class MemberRankOrganizationFeeMapper {
 
 	private MemberFeeSetting memberFeeSetting;
 	
-	private MemberRankSetting memberRankSetting;
-
 	public MemberFeeSetting getMemberFeeSetting() {
 		return memberFeeSetting;
 	}
@@ -115,14 +113,6 @@ public class MemberRankOrganizationFeeMapper {
 		return this.updateTime;
 	}
 			
-	public MemberRankSetting getMemberRankSetting() {
-		return memberRankSetting;
-	}
-
-	public void setMemberRankSetting(MemberRankSetting memberRankSetting) {
-		this.memberRankSetting = memberRankSetting;
-	}
-
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MemberRankSetting.java

@@ -33,6 +33,8 @@ public class MemberRankSetting {
 	private java.util.Date updateTime;
 
 	private List<MemberRankPrivileges> memberRankPrivileges;
+	
+	private MemberFeeSetting memberFeeSetting;
 
 	public List<MemberRankPrivileges> getMemberRankPrivileges() {
 		return memberRankPrivileges;
@@ -105,7 +107,15 @@ public class MemberRankSetting {
 	public java.util.Date getUpdateTime(){
 		return this.updateTime;
 	}
-			
+
+	public MemberFeeSetting getMemberFeeSetting() {
+		return memberFeeSetting;
+	}
+
+	public void setMemberFeeSetting(MemberFeeSetting memberFeeSetting) {
+		this.memberFeeSetting = memberFeeSetting;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MemberRankSettingService.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.service;
 
+import java.util.List;
+
 import com.ym.mec.biz.dal.entity.MemberRankSetting;
 import com.ym.mec.common.service.BaseService;
 
@@ -10,4 +12,6 @@ public interface MemberRankSettingService extends BaseService<Integer, MemberRan
     MemberRankSetting getDetail(Integer memberRankSettingId);
 
     void updateSetting(MemberRankSetting memberRankSetting);
+    
+    List<MemberRankSetting> queryListByIsDefault(Boolean isDefault);
 }

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

@@ -10,6 +10,7 @@ import com.ym.mec.biz.dal.dto.StudentPaymentOrderDto;
 import com.ym.mec.biz.dal.dto.StudentPaymentOrderExportDto;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
@@ -20,6 +21,8 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 public interface StudentPaymentOrderService extends BaseService<Long, StudentPaymentOrder> {
+	
+	Map createOrder(StudentPaymentOrder studentPaymentOrder, List<StudentPaymentOrderDetail> details, String payReceiver) throws Exception;
 
     /**
      * 查询商品列表

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

@@ -8,6 +8,7 @@ import com.ym.mec.biz.service.MemberRankSettingService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -60,4 +61,9 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 			memberRankPrivilegesDao.batchInsert(memberRankSetting.getId(),memberPrivilegesItemIdList);
 		}
 	}
+
+	@Override
+	public List<MemberRankSetting> queryListByIsDefault(Boolean isDefault) {
+		return memberRankSettingDao.queryListByIsDefault(isDefault);
+	}
 }

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

@@ -11,22 +11,26 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
-import com.ym.mec.biz.service.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 import com.alibaba.fastjson.JSON;
+import com.ym.mec.biz.dal.dao.GoodsDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentRouteOrderDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
 import com.ym.mec.biz.dal.dto.PageInfoOrder;
 import com.ym.mec.biz.dal.dto.SporadicChargeInfoDto;
 import com.ym.mec.biz.dal.dto.StudentPaymentOrderDto;
 import com.ym.mec.biz.dal.dto.StudentPaymentOrderExportDto;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
 import com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
@@ -36,6 +40,22 @@ import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
 import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
+import com.ym.mec.biz.service.ChildrenDayReserveService;
+import com.ym.mec.biz.service.DegreeRegistrationService;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.PayService;
+import com.ym.mec.biz.service.PracticeGroupService;
+import com.ym.mec.biz.service.ReplacementInstrumentActivityService;
+import com.ym.mec.biz.service.SporadicChargeInfoService;
+import com.ym.mec.biz.service.StudentInstrumentService;
+import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.StudentPaymentRouteOrderService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.biz.service.StudentRepairService;
+import com.ym.mec.biz.service.SubjectChangeService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
+import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
@@ -80,6 +100,10 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     private DegreeRegistrationService degreeRegistrationService;
     @Autowired
     private StudentPaymentRouteOrderDao studentPaymentRouteOrderDao;
+    
+    @Autowired
+    private StudentPaymentOrderDetailService studentPaymentOrderDetailService;
+    
     @Autowired
     private IdGeneratorService idGeneratorService;
     @Autowired
@@ -92,6 +116,10 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     private ReplacementInstrumentActivityService replacementInstrumentActivityService;
     @Autowired
     private ChildrenDayReserveService childrenDayReserveService;
+    @Autowired
+    private PayService payService;
+    @Autowired
+    private StudentPaymentRouteOrderService studentPaymentRouteOrderService;
 
     @Override
     public BaseDAO<Long, StudentPaymentOrder> getDAO() {
@@ -99,6 +127,76 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     }
 
     @Override
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+	public Map createOrder(StudentPaymentOrder studentPaymentOrder, List<StudentPaymentOrderDetail> details, String payReceiver)
+			throws Exception {
+    	
+    	BigDecimal cashAmount = studentPaymentOrder.getActualAmount();
+    	BigDecimal expectAmount = studentPaymentOrder.getExpectAmount();
+    	BigDecimal balance = studentPaymentOrder.getBalancePaymentAmount();
+
+		if (cashAmount.add(balance).compareTo(expectAmount) != 0) {
+			throw new BizException("支付金额不正确,请重试");
+		}
+
+		String orderNo = idGeneratorService.generatorId("payment") + "";
+
+		Date date = new Date();
+		studentPaymentOrder.setOrderNo(orderNo);
+		studentPaymentOrder.setExpectAmount(expectAmount);
+		studentPaymentOrder.setActualAmount(cashAmount);
+		studentPaymentOrder.setBalancePaymentAmount(balance);
+		studentPaymentOrder.setStatus(DealStatusEnum.ING);
+		studentPaymentOrder.setCreateTime(date);
+		studentPaymentOrder.setUpdateTime(date);
+		studentPaymentOrder.setVersion(0);
+
+		studentPaymentOrder.setPaymentChannel("BALANCE");
+
+		insert(studentPaymentOrder);
+		
+		if(details != null && details.size() > 0){
+			for(StudentPaymentOrderDetail spod : details){
+				spod.setPaymentOrderId(studentPaymentOrder.getId());
+				spod.setCreateTime(date);
+				spod.setUpdateTime(date);
+			}
+			
+			studentPaymentOrderDetailService.batchAdd(details);
+		}
+
+		String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
+
+		if (cashAmount.compareTo(BigDecimal.ZERO) == 0) {
+            studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
+            studentPaymentOrder.setRoutingOrganId(studentPaymentOrder.getOrganId());
+            studentPaymentOrder.setUpdateTime(date);
+            update(studentPaymentOrder);
+            
+			studentPaymentRouteOrderService.addRouteOrder(orderNo, studentPaymentOrder.getOrganId(), balance);
+			
+			callOrderCallBack(studentPaymentOrder);
+			
+			Map<String, String> notifyMap = new HashMap<>(4);
+			notifyMap.put("tradeState", "1");
+			notifyMap.put("merOrderNo", studentPaymentOrder.getOrderNo());
+			notifyMap.put("channelType", "");
+			notifyMap.put("orderNo", "");
+			updateOrder(notifyMap);
+			return notifyMap;
+		}
+
+		Map<String, Object> payMap = payService.getPayMap(cashAmount, balance, orderNo, baseApiUrl + "/api-student/studentOrder/notify", baseApiUrl
+				+ "/api-student/studentOrder/paymentResult?orderNo=" + studentPaymentOrder.getOrderNo(), studentPaymentOrder.getMemo(), studentPaymentOrder.getMemo(), studentPaymentOrder.getOrganId(), payReceiver);
+
+		studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
+		studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
+		studentPaymentOrder.setUpdateTime(date);
+		update(studentPaymentOrder);
+		return payMap;
+	}
+
+	@Override
     public List<Goods> queryApplyGoodsList(String musicGroupId, OrderDetailTypeEnum type) {
         return studentPaymentOrderDao.queryApplyGoodsList(musicGroupId, type);
     }

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

@@ -27,15 +27,6 @@
 			<result property="currentYearFee" column="current_year_fee_"/>
 			<result property="originalYearFee" column="original_year_fee_"/>
 		</association>
-		<association property="memberRankSetting" javaType="com.ym.mec.biz.dal.entity.MemberRankSetting">
-			<result property="id" column="id_"/>
-			<result property="name" column="name_"/>
-			<result property="intro" column="intro_"/>
-			<result property="icon" column="icon_"/>
-			<result property="isDefault" column="is_default_"/>
-			<result property="createTime" column="create_time_"/>
-			<result property="updateTime" column="update_time_"/>
-		</association>
 	</resultMap>
 
 	<select id="get" resultMap="MemberRankOrganizationFeeMapper" >
@@ -48,12 +39,7 @@
 	
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="MemberRankOrganizationFeeMapper">
-		SELECT * FROM member_rank_organization_fee_mapper
-		<where>
-			<if test="organId != null and organId != ''">
-				AND FIND_IN_SET(mrofm.organ_id_,#{organId})
-			</if>
-		</where>
+		SELECT mrofm.* FROM member_rank_organization_fee_mapper mrofm
 	</select>
 	
 	<!-- 向数据库增加一条记录 -->

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

@@ -11,7 +11,7 @@
 		<result column="name_" property="name" />
 		<result column="intro_" property="intro" />
 		<result column="icon_" property="icon" />
-		<result column="is_default_" property="isDefault" />
+		<result column="is_default_" property="isDefault" javaType="java.lang.Boolean" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 	</resultMap>
@@ -59,4 +59,13 @@
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM member_rank_setting
 	</select>
+	
+	<select id="queryListByIsDefault" resultMap="MemberRankSetting" parameterType="map">
+		SELECT * FROM member_rank_setting 
+		<where>
+			<if test="isDefault != null">
+				AND is_default_ = #{isDefault}
+			</if>
+		</where>
+	</select>
 </mapper>

+ 22 - 14
mec-student/src/main/java/com/ym/mec/student/controller/MemberRankController.java

@@ -3,21 +3,20 @@ package com.ym.mec.student.controller;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
-import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.MemberRankOrganizationFeeMapper;
-import com.ym.mec.biz.service.MemberRankOrganizationFeeMapperService;
+import com.ym.mec.biz.dal.entity.MemberRankSetting;
+import com.ym.mec.biz.service.MemberFeeSettingService;
+import com.ym.mec.biz.service.MemberRankSettingService;
 import com.ym.mec.common.controller.BaseController;
 
 @RequestMapping("memberRank")
@@ -26,7 +25,10 @@ import com.ym.mec.common.controller.BaseController;
 public class MemberRankController extends BaseController {
 
 	@Autowired
-	private MemberRankOrganizationFeeMapperService memberRankOrganizationFeeMapperService;
+	private MemberFeeSettingService memberFeeSettingService;
+	
+	@Autowired
+	private MemberRankSettingService memberRankSettingService;
 
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
@@ -38,18 +40,24 @@ public class MemberRankController extends BaseController {
 		if (sysUser == null) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 		}
-		Map<String, Object> params = new HashMap<String, Object>();
-		params.put("organId", sysUser.getOrganId());
 
-		List<MemberRankOrganizationFeeMapper> result = new ArrayList<MemberRankOrganizationFeeMapper>();
+		List<MemberRankSetting> result = memberRankSettingService.queryListByIsDefault(false);
 
-		List<MemberRankOrganizationFeeMapper> list = memberRankOrganizationFeeMapperService.findAll(params);
-		for (MemberRankOrganizationFeeMapper mrofm : list) {
-			if (mrofm.getMemberRankSetting() != null && mrofm.getMemberRankSetting().getIsDefault() == false) {
-				result.add(mrofm);
-			}
+		for (MemberRankSetting mrs : result) {
+			mrs.setMemberFeeSetting(memberFeeSettingService.findByRankIdAndOrganId(sysUser.getOrganId(), mrs.getId()));
 		}
 		return succeed(result);
 	}
 
+	@ApiOperation(value = "购买会员")
+	@PostMapping("/buy")
+	public Object buy() {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+
+		return succeed();
+	}
+
 }