albertshaw 8 년 전
부모
커밋
6a6fb78bbb

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 2 - 1
schema/data/html_fragment.sql


+ 10 - 6
src/main/java/com/goafanti/common/dao/MemberOrderMapper.java

@@ -1,17 +1,21 @@
 package com.goafanti.common.dao;
 
+import java.util.Map;
+
 import com.goafanti.common.model.MemberOrder;
 
 public interface MemberOrderMapper {
-    int deleteByPrimaryKey(Long id);
+	int deleteByPrimaryKey(Long id);
+
+	int insert(MemberOrder record);
 
-    int insert(MemberOrder record);
+	int insertSelective(MemberOrder record);
 
-    int insertSelective(MemberOrder record);
+	MemberOrder selectByPrimaryKey(Long id);
 
-    MemberOrder selectByPrimaryKey(Long id);
+	int updateByPrimaryKeySelective(MemberOrder record);
 
-    int updateByPrimaryKeySelective(MemberOrder record);
+	int updateByPrimaryKey(MemberOrder record);
 
-    int updateByPrimaryKey(MemberOrder record);
+	int updateUserLvl(Map<String, Object> params);
 }

+ 4 - 0
src/main/java/com/goafanti/common/enums/OrderState.java

@@ -21,6 +21,10 @@ public enum OrderState {
 		}
 	}
 
+	public static boolean isPayed(OrderState os) {
+		return os == PAYED || os == COMPLETED;
+	}
+
 	public static OrderState getStatus(Integer code) {
 		if (containsType(code)) {
 			return status.get(code);

+ 9 - 0
src/main/java/com/goafanti/common/mapper/MemberOrderMapperExt.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.goafanti.common.dao.MemberOrderMapper">
+	<!-- 更改用户会员等级 -->
+	<update id="updateUserLvl" parameterType="java.util.Map">
+		UPDATE user SET
+		lvl=#{lvl} WHERE id=#{userId}
+	</update>
+</mapper>

+ 32 - 17
src/main/java/com/goafanti/memberGrade/controller/MemberGradeController.java

@@ -2,11 +2,13 @@ package com.goafanti.memberGrade.controller;
 
 import java.text.ParseException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.Assert;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
@@ -16,12 +18,14 @@ import com.goafanti.common.bo.Error;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.controller.BaseApiController;
+import com.goafanti.common.enums.OrderState;
 import com.goafanti.common.model.MemberOrder;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.common.utils.LoggerUtils;
 import com.goafanti.memberGrade.bo.MemberGrade;
 import com.goafanti.memberGrade.bo.MemberGradeBO;
 import com.goafanti.memberGrade.service.MemberGradeService;
+import com.goafanti.memberGrade.service.MemberOrderService;
 
 /**
  * 会员等级管理 后台
@@ -33,7 +37,9 @@ import com.goafanti.memberGrade.service.MemberGradeService;
 @RequestMapping(value = "/api/admin/member")
 public class MemberGradeController extends BaseApiController {
 	@Autowired
-	private MemberGradeService memberGradeService;
+	private MemberGradeService	memberGradeService;
+	@Autowired
+	private MemberOrderService	memberOrderService;
 
 	/**
 	 * 查询全部信息
@@ -140,22 +146,31 @@ public class MemberGradeController extends BaseApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/updateMemberOrder", method = RequestMethod.POST)
-	public Result updateMemberOrder(Long id, int memberRank, Integer validMonth, Double paymentValue,
-			Integer orderState, String paymentTime, String paymentType, String userId, String paymentId) {
-		Map<String, Object> umap = new HashMap<>();
-		umap.put("userId", userId);
-		umap.put("lvl", memberRank);
-		Map<String, Object> map = new HashMap<>();
-		map.put("id", id);
-		map.put("menberType", memberRank);
-		map.put("validMonth", validMonth);
-		map.put("paymentValue", paymentValue);
-		map.put("orderState", orderState);
-		map.put("paymentTime", paymentTime);
-		map.put("paymentType", paymentType);
-		map.put("paymentId", paymentId);
-		memberGradeService.updateMemberOrder(map, umap);
-		return res().data(1);
+	public Result updateMemberOrder(Long id, String memberRank, String validMonth, String paymentValue,
+			String orderState, String paymentTime, String paymentType, String userId, String paymentId) {
+		MemberOrder mo = memberOrderService.getById(id);
+		Assert.notNull(mo, "找不到订单");
+		mo.setOrderState(OrderState.getStatus(orderState).getCode());
+		try {
+			Integer month = Integer.parseInt(validMonth);
+			mo.setValidMonth(month);
+			mo.setMenberType(Integer.parseInt(memberRank));
+			if (OrderState.isPayed(OrderState.getStatus(mo.getOrderState()))) {
+				Assert.hasText(paymentId, "已支付订单信息不完整");
+				Assert.hasText(paymentType, "已支付订单信息不完整");
+				Assert.hasText(paymentTime, "已支付订单信息不完整");
+				mo.setPaymentId(paymentId);
+				mo.setPaymentType(paymentType);
+				mo.setPaymentValue(Double.parseDouble(paymentValue));
+				Date payTime = DateUtils.parseDate(paymentTime, AFTConstants.YYYYMMDDHHMMSS);
+				Date validTime = DateUtils.addMonths(payTime, month);
+				mo.setValidTime(validTime);
+				mo.setPaymentTime(payTime);
+			}
+		} catch (ParseException e) {
+			return res().error(buildError("", "参数错误"));
+		}
+		return res().data(memberOrderService.update(mo));
 	}
 
 	/**

+ 1 - 1
src/main/java/com/goafanti/memberGrade/service/MemberGradeService.java

@@ -59,10 +59,10 @@ public class MemberGradeService {
 	}
 
 	public void updateMemberOrder(Map<String, Object> map, Map<String, Object> umap) {
-		memberGradeMapper.updateMemberOrder(map);
 		if (OrderState.getStatus((Integer) map.get("orderState")) == OrderState.PAYED) {
 			memberGradeMapper.updateUserLvl(umap);
 		}
+		memberGradeMapper.updateMemberOrder(map);
 	}
 
 	public int delMemberOrder(Long id) {

+ 31 - 0
src/main/java/com/goafanti/memberGrade/service/MemberOrderService.java

@@ -0,0 +1,31 @@
+package com.goafanti.memberGrade.service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.goafanti.common.dao.MemberOrderMapper;
+import com.goafanti.common.enums.OrderState;
+import com.goafanti.common.model.MemberOrder;
+
+@Service
+public class MemberOrderService {
+	@Autowired
+	private MemberOrderMapper memberOrderMapper;
+
+	public MemberOrder getById(Long id) {
+		return memberOrderMapper.selectByPrimaryKey(id);
+	}
+
+	public int update(MemberOrder mo) {
+		if (OrderState.isPayed(OrderState.getStatus(mo.getOrderState()))) {
+			Map<String, Object> umap = new HashMap<>();
+			umap.put("lvl", mo.getMenberType());
+			umap.put("userId", mo.getUserId());
+			memberOrderMapper.updateUserLvl(umap);
+		}
+		return memberOrderMapper.updateByPrimaryKeySelective(mo);
+	}
+}