瀏覽代碼

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

Joburgess 5 年之前
父節點
當前提交
a65db7750b

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSubjectGoodsGroupDao.java

@@ -23,4 +23,12 @@ public interface MusicGroupSubjectGoodsGroupDao extends BaseDAO<Long, MusicGroup
      * @return
      */
     List<MusicGroupSubjectGoodsGroup> findGoodsGroup(@Param("musicGroupId") Integer musicGroupId, @Param("subId") Integer subId);
+
+
+    /**
+     * 根据ids获取打包商品
+     *
+     * @return
+     */
+    List<MusicGroupSubjectGoodsGroup> findGoodsGroupByIds(@Param("ids") String ids);
 }

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

@@ -19,11 +19,11 @@ public class RegisterPayDto {
         this.registerId = registerId;
     }
 
-    public String getGoodsGroupId() {
+    public String getGoodsGroupIds() {
         return goodsGroupIds;
     }
 
-    public void setGoodsGroupId(String goodsGroupIds) {
+    public void setGoodsGroupIds(String goodsGroupIds) {
         this.goodsGroupIds = goodsGroupIds;
     }
 

+ 18 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupSubjectGoodsGroup.java

@@ -41,7 +41,11 @@ public class MusicGroupSubjectGoodsGroup {
 	private List<String> goodsName;
 
 	private List<Goods> goodsList;
-	
+
+	//团购减免课程费用
+	private BigDecimal remissionCourseFee;
+
+
 	/**  */
 	private java.util.Date createTime;
 	
@@ -132,11 +136,6 @@ public class MusicGroupSubjectGoodsGroup {
 		this.price = price;
 	}
 
-	@Override
-	public String toString() {
-		return ToStringBuilder.reflectionToString(this);
-	}
-
 	public List<Goods> getGoodsList() {
 		return goodsList;
 	}
@@ -144,4 +143,17 @@ public class MusicGroupSubjectGoodsGroup {
 	public void setGoodsList(List<Goods> goodsList) {
 		this.goodsList = goodsList;
 	}
+
+	public BigDecimal getRemissionCourseFee() {
+		return remissionCourseFee;
+	}
+
+	public void setRemissionCourseFee(BigDecimal remissionCourseFee) {
+		this.remissionCourseFee = remissionCourseFee;
+	}
+
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/GoodsType.java

@@ -4,7 +4,7 @@ import com.ym.mec.common.enums.BaseEnum;
 
 public enum GoodsType implements BaseEnum<String, GoodsType> {
 
-	INSTRUMENT("INSTRUMENT", "乐器"), ACCESSORIES("ACCESSORIES", "辅");
+	INSTRUMENT("INSTRUMENT", "乐器"), ACCESSORIES("ACCESSORIES", "辅件"),OTHER("OTHER", "其他");
 
 	private String code;
 

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupSubjectGoodsGroupService.java

@@ -15,4 +15,12 @@ public interface MusicGroupSubjectGoodsGroupService extends BaseService<Long, Mu
      */
     List<MusicGroupSubjectGoodsGroup> findGoodsGroup(Integer musicGroupId, Integer subId);
 
+
+    /**
+     * 根据ids获取打包商品
+     *
+     * @return
+     */
+    List<MusicGroupSubjectGoodsGroup> findGoodsGroupByIds(String ids);
+
 }

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

@@ -26,4 +26,10 @@ public class MusicGroupSubjectGoodsGroupServiceImpl extends BaseServiceImpl<Long
     public List<MusicGroupSubjectGoodsGroup> findGoodsGroup(Integer musicGroupId, Integer subId) {
         return musicGroupSubjectGoodsGroupDao.findGoodsGroup(musicGroupId, subId);
     }
+
+	@Override
+	public List<MusicGroupSubjectGoodsGroup> findGoodsGroupByIds(String ids) {
+
+		return musicGroupSubjectGoodsGroupDao.findGoodsGroupByIds(ids);
+	}
 }

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml

@@ -104,4 +104,9 @@
         WHERE FIND_IN_SET (g.id_ ,mgs.goods_id_list_)
         AND mgs.music_group_id_ = #{musicGroupId} AND mgs.subject_id_ = #{subId}
     </select>
+
+    <!-- 根据ids获取对应分组商品 -->
+    <select id="findGoodsGroupByIds" resultMap="MusicGroupSubjectGoodsGroup">
+        SELECT * FROM music_group_subject_goods_group WHERE FIND_IN_SET(id_,#{ids})
+    </select>
 </mapper>

+ 64 - 8
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -4,8 +4,13 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfoDto;
 import com.ym.mec.biz.dal.dto.RegisterPayDto;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
+import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
+import com.ym.mec.biz.dal.enums.GoodsType;
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
@@ -13,13 +18,12 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import javax.xml.soap.Name;
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 
 @RequestMapping("musicGroup")
@@ -33,6 +37,14 @@ public class MusicGroupController extends BaseController {
     private MusicGroupService musicGroupService;
     @Autowired
     private MusicGroupSubjectPlanService musicGroupSubjectPlanService;
+    @Autowired
+    private StudentRegistrationService studentRegistrationService;
+    @Autowired
+    private MusicGroupSubjectGoodsGroupService musicGroupSubjectGoodsGroupService;
+    @Autowired
+    private GoodsService goodsService;
+    @Autowired
+    private StudentPaymentOrderService studentPaymentOrderService;
 
     @ApiOperation("获取学生所在乐团列表")
     @GetMapping(value = "/queryUserMusicGroups")
@@ -76,9 +88,53 @@ public class MusicGroupController extends BaseController {
     }
 
     @ApiOperation(value = "乐团报名支付")
-    @GetMapping("/pay")
+    @PostMapping("/pay")
     @ApiImplicitParams({@ApiImplicitParam(name = "registerPayDto", value = "支付信息", required = true, dataType = "Integer")})
-    public HttpResponseResult pay(RegisterPayDto registerPayDto) {
+    public HttpResponseResult pay(@RequestBody RegisterPayDto registerPayDto) {
+
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        Integer userId = sysUser.getId();
+        StudentRegistration studentRegistration = studentRegistrationService.get(registerPayDto.getRegisterId().longValue());
+        if (!studentRegistration.getUserId().equals(userId)) {
+            return failed("报名信息有误,请核查");
+        }
+
+        BigDecimal amount = registerPayDto.getAmount();
+
+        BigDecimal orderAmount = new BigDecimal("0");
+
+        //获取课程价格
+        MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
+        orderAmount.add(musicOneSubjectClassPlan.getFee());
+
+
+        //乐器及打包辅件
+        if (registerPayDto.getGoodsGroupIds() != null) {
+            List<MusicGroupSubjectGoodsGroup> goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(registerPayDto.getGoodsGroupIds());
+            goodsGroups.forEach(goodsGroup -> {
+                //辅件价格
+                if (goodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
+                    orderAmount.add(goodsGroup.getPrice());
+                    return;
+                }
+                if (musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {//租赁
+                    orderAmount.add(musicOneSubjectClassPlan.getDepositFee());
+                } else if (musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.GROUP)) {//团购
+                    orderAmount.add(goodsGroup.getPrice()).subtract(goodsGroup.getRemissionCourseFee());//团购减免课程费用
+                }
+            });
+        }
+
+        //单独辅件
+        if (registerPayDto.getGoodsIds() != null) {
+            List<Goods> goodsList = goodsService.findGoodsByIds(registerPayDto.getGoodsIds());
+            goodsList.forEach(goods -> {
+                orderAmount.add(goods.getGroupPurchasePrice());
+            });
+        }
+        if (amount.compareTo(orderAmount) != 0) {
+            return failed("商品价格不符");
+        }
         Map<String, Object> rqMap = new LinkedHashMap<String, Object>();
         rqMap.put("merNo", "07654478");
         rqMap.put("version", "v1");