Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

Conflicts:
	src/main/java/com/goafanti/memberGrade/controller/MemberGradeFrontController.java
wanghui 8 gadi atpakaļ
vecāks
revīzija
abe25ce401

+ 2 - 0
schema/20170913-consult-order.sql

@@ -11,3 +11,5 @@ CREATE TABLE `consult_order` (
   `payment_id` varchar(45) DEFAULT NULL COMMENT '支付流水号',
   PRIMARY KEY (`id`)
 )
+
+INSERT INTO `sys_dict` (`id`, `value`) VALUES ('consult_price', '600.00');

+ 2 - 2
src/main/java/com/goafanti/banners/service/BannersService.java

@@ -41,7 +41,7 @@ public class BannersService extends BaseMybatisDao<BannersMapper> {
 	}
 	
 	public int findBannersListCount(String sign) {
-		return bannersMapper.findListCount(sign);
+		return bannersMapper.findBannerListCount(sign);
 	}
 
 	public List<Banners> previewPortalBanners(String key) {
@@ -60,7 +60,7 @@ public class BannersService extends BaseMybatisDao<BannersMapper> {
 		}
 		params.put("pageSize", pageSize);
 		params.put("pageNo", pageNo);
-		return bannersMapper.findList(params);
+		return bannersMapper.findBannerList(params);
 	}
 
 	@CacheEvict(value = "BannersListCache", key = "'BannersList:Key:'+#key")

+ 2 - 2
src/main/java/com/goafanti/common/dao/BannersMapper.java

@@ -20,7 +20,7 @@ public interface BannersMapper {
 
     int updateByPrimaryKey(Banners record);
 
-	List<Banners> findList(Map<String, Object> params);
+	List<Banners> findBannerList(Map<String, Object> params);
 
-	int findListCount(@Param(value = "sign") String sign);
+	int findBannerListCount(@Param(value = "sign") String sign);
 }

+ 17 - 6
src/main/java/com/goafanti/common/dao/ConsultOrderMapper.java

@@ -1,17 +1,28 @@
 package com.goafanti.common.dao;
 
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.ui.ModelMap;
+
 import com.goafanti.common.model.ConsultOrder;
 
 public interface ConsultOrderMapper {
-    int deleteByPrimaryKey(Long id);
+	int deleteByPrimaryKey(Long id);
+
+	int deleteRecord(Map<String, Object> params);
+
+	int insert(ConsultOrder record);
+
+	int insertSelective(ConsultOrder record);
 
-    int insert(ConsultOrder record);
+	ConsultOrder selectByPrimaryKey(Long id);
 
-    int insertSelective(ConsultOrder record);
+	int updateByPrimaryKeySelective(ConsultOrder record);
 
-    ConsultOrder selectByPrimaryKey(Long id);
+	int updateByPrimaryKey(ConsultOrder record);
 
-    int updateByPrimaryKeySelective(ConsultOrder record);
+	List<ModelMap> findConsultOrderListByPage(Map<String, Object> params);
 
-    int updateByPrimaryKey(ConsultOrder record);
+	int findConsultOrderCount(Map<String, Object> params);
 }

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

@@ -6,7 +6,7 @@ import java.util.Map;
 import org.apache.commons.lang3.StringUtils;
 
 public enum OrderState {
-	UNPAYED(0, "未支付"), PAYED(1, "已支付");
+	UNPAYED(0, "未支付"), PAYED(1, "已支付"), PAYING(2, "支付中"), CANCELLED(9, "取消");
 
 	private OrderState(Integer code, String desc) {
 		this.code = code;

+ 2 - 2
src/main/java/com/goafanti/common/mapper/BannersMapperExt.xml

@@ -1,7 +1,7 @@
 <?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.BannersMapper">
-	<select id="findList" resultMap="BaseResultMap">
+	<select id="findBannerList" resultMap="BaseResultMap">
 		select
 		<include refid="Base_Column_List" />
 		from banners where 1=1 
@@ -13,7 +13,7 @@
 		limit #{pageNo,jdbcType=INTEGER}, #{pageSize,jdbcType=INTEGER}
 		</if>
 	</select>
-	<select id="findListCount" parameterType="java.lang.String" resultType="java.lang.Integer">
+	<select id="findBannerListCount" parameterType="java.lang.String" resultType="java.lang.Integer">
 		select count(1)
 		from banners where 1=1 
 		<if test="sign != null">

+ 87 - 0
src/main/java/com/goafanti/common/mapper/ConsultOrderMapperExt.xml

@@ -0,0 +1,87 @@
+<?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.ConsultOrderMapper">
+
+	<select id="findConsultOrderListByPage" resultType="org.springframework.ui.ModelMap">
+		select
+		co.id as id,
+		co.price as price,
+		co.order_state as orderState,
+		co.order_time as orderTime,
+		DATE_FORMAT(co.order_time, '%Y-%m-%d %H:%I:%S') as orderTimeFormatted,
+		co.user_id as userId,
+		co.to_user_id as toUserId,
+		co.payment_time as paymentTime,
+		DATE_FORMAT(co.payment_time, '%Y-%m-%d %H:%I:%S') as paymentTimeFormatted,
+		co.payment_value as paymentValue,
+		co.payment_type as paymentType,
+		co.payment_id as paymentId,
+		u.nickname as nickname,
+		u.number as number,
+		tu.nickname as toNickname,
+		tu.number as toNumber
+		from consult_order co
+		left join `user` u on co.user_id = u.id
+		left join `user` tu on co.to_user_id = tu.id
+		where 1=1
+		<if test="number != null">
+			and u.number= #{number,jdbcType=INTEGER}
+		</if>
+		<if test="tnumber != null">
+			and tu.number= #{tnumber,jdbcType=INTEGER}
+		</if>
+		<if test="uid != null">
+			and u.id= #{uid,jdbcType=VARCHAR}
+		</if>
+		<if test="id != null">
+			and co.id= #{id,jdbcType=BIGINT}
+		</if>
+		<if test="pid != null">
+			and co.payment_id= #{pid,jdbcType=VARCHAR}
+		</if>
+		<if test="state != null">
+			and co.order_state= #{state,jdbcType=INTEGER}
+		</if>
+		<if test="state == null">
+			and co.order_state &lt; 9
+		</if>
+		order by co.id DESC
+		<if test="page_sql!=null">
+			${page_sql}
+		</if>
+	</select>
+
+	<select id="findConsultOrderCount" resultType="java.lang.Integer">
+		select count(*)
+		from consult_order co
+		<if test="number != null">
+		left join `user` u on co.user_id = u.id
+		</if>
+		<if test="tnumber != null">
+		left join `user` tu on co.to_user_id = tu.id
+		</if>
+		where 1=1
+		<if test="number != null">
+			and u.number= #{number,jdbcType=INTEGER}
+		</if>
+		<if test="tnumber != null">
+			and tu.number= #{tnumber,jdbcType=INTEGER}
+		</if>
+		<if test="uid != null">
+			and co.user_id= #{uid,jdbcType=VARCHAR}
+		</if>
+		<if test="id != null">
+			and co.id= #{id,jdbcType=BIGINT}
+		</if>
+		<if test="pid != null">
+			and co.payment_id= #{pid,jdbcType=VARCHAR}
+		</if>
+		<if test="state != null">
+			and co.order_state= #{state,jdbcType=INTEGER}
+		</if>
+		<if test="state == null">
+			and co.order_state &lt; 9
+		</if>
+	</select>
+
+</mapper>

+ 31 - 0
src/main/java/com/goafanti/consultOrder/controller/AdminConsultOrderApiController.java

@@ -0,0 +1,31 @@
+package com.goafanti.consultOrder.controller;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.goafanti.common.bo.Result;
+import com.goafanti.common.controller.BaseApiController;
+import com.goafanti.consultOrder.service.ConsultOrderService;
+
+@RestController
+@RequestMapping(value = "/api/admin/consultorder")
+public class AdminConsultOrderApiController extends BaseApiController {
+
+	@Autowired
+	ConsultOrderService consultOrderService;
+
+	/**
+	 * 
+	 * @param id
+	 * @return
+	 */
+	@RequestMapping(value = "/list", method = RequestMethod.GET)
+	public Result list(String number, String toNumber, String pageNo, String pageSize, String id, String paymentId,
+			String state) {
+		return res().data(consultOrderService.getList(
+				consultOrderService.disposeSearchParams(number, toNumber, id, paymentId, state), getPageNo(pageNo),
+				getPageSize(pageSize)));
+	}
+}

+ 84 - 0
src/main/java/com/goafanti/consultOrder/controller/ConsultOrderApiController.java

@@ -0,0 +1,84 @@
+package com.goafanti.consultOrder.controller;
+
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.ErrorConstants;
+import com.goafanti.common.controller.BaseApiController;
+import com.goafanti.common.enums.OrderState;
+import com.goafanti.common.model.ConsultOrder;
+import com.goafanti.common.service.SysDictService;
+import com.goafanti.consultOrder.service.ConsultOrderService;
+import com.goafanti.core.shiro.token.TokenManager;
+
+@RestController
+@RequestMapping(value = "/api/user/consultorder")
+public class ConsultOrderApiController extends BaseApiController {
+
+	private static final String	CONSULT_PRICE	= "consult_price";
+
+	@Autowired
+	SysDictService				sysDictService;
+	@Autowired
+	ConsultOrderService			consultOrderService;
+
+	/**
+	 * 前台生成订单
+	 * 
+	 * @param toUserId
+	 * @return
+	 */
+	@RequestMapping(value = "/add", method = RequestMethod.POST)
+	public Result addConsultOrder(String toUserId) {
+		String price = sysDictService.getValue(CONSULT_PRICE);
+		if (StringUtils.isNotBlank(price) && StringUtils.isNotBlank(toUserId)) {
+			return res().data(consultOrderService.insertSelective(toUserId, Double.parseDouble(price)));
+		}
+		return res().error(buildError(ErrorConstants.PARAM_ERROR, "参数错误", "预约"));
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	@RequestMapping(value = "/price", method = RequestMethod.GET)
+	public Result getPrice() {
+		return res().data(sysDictService.getValue(CONSULT_PRICE));
+	}
+
+	/**
+	 * 
+	 * @param id
+	 * @return
+	 */
+	@RequestMapping(value = "/del", method = RequestMethod.POST)
+	public Result delConsultOrder(Long id) {
+		ConsultOrder co = consultOrderService.selectByPrimaryKey(id);
+		if (co.getOrderState() != OrderState.UNPAYED.getCode()) {
+			return res().data(0);
+		}
+		ConsultOrder newCo = new ConsultOrder();
+		newCo.setId(co.getId());
+		newCo.setOrderState(OrderState.CANCELLED.getCode());
+		return res().data(consultOrderService.updateByPrimaryKeySelective(newCo));
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	@RequestMapping(value = "/list", method = RequestMethod.GET)
+	public Result list(String number, String toNumber, String pageNo, String pageSize, String id, String paymentId,
+			String state) {
+		Map<String, Object> params = consultOrderService.disposeSearchParams(number, toNumber, id, paymentId, state);
+		params.put("uid", TokenManager.getUserId());
+		return res().data(consultOrderService.getList(params, getPageNo(pageNo), getPageSize(pageSize)));
+	}
+
+}

+ 102 - 0
src/main/java/com/goafanti/consultOrder/service/ConsultOrderService.java

@@ -0,0 +1,102 @@
+package com.goafanti.consultOrder.service;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.ui.ModelMap;
+
+import com.goafanti.common.dao.ConsultOrderMapper;
+import com.goafanti.common.dao.UserMapper;
+import com.goafanti.common.enums.OrderState;
+import com.goafanti.common.model.ConsultOrder;
+import com.goafanti.core.mybatis.BaseMybatisDao;
+import com.goafanti.core.mybatis.JDBCIdGenerator;
+import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.core.shiro.token.TokenManager;
+
+@Service
+public class ConsultOrderService extends BaseMybatisDao<ConsultOrder> {
+
+	@Autowired
+	private ConsultOrderMapper	consultOrderMapper;
+
+	@Autowired
+	private UserMapper			userMapper;
+
+	@Autowired
+	private JDBCIdGenerator		idGenerator;
+
+	public int deleteByPrimaryKey(Long id) {
+		if (TokenManager.getAdminToken() == null) {
+			Map<String, Object> map = new HashMap<>();
+			map.put("id", id);
+			map.put("uid", TokenManager.getUserId());
+			return consultOrderMapper.deleteRecord(map);
+		} else {
+			return consultOrderMapper.deleteByPrimaryKey(id);
+		}
+	}
+
+	public int insertSelective(String toUid, Double price) {
+		if (userMapper.selectByPrimaryKey(toUid) == null) {
+			return 0;
+		}
+		ConsultOrder co = new ConsultOrder();
+		co.setId(idGenerator.generateId());
+		co.setUserId(TokenManager.getUserId());
+		co.setToUserId(toUid);
+		co.setOrderState(OrderState.UNPAYED.getCode());
+		co.setOrderTime(new Date());
+		co.setPrice(price);
+		return consultOrderMapper.insertSelective(co);
+	}
+
+	public int updateByPrimaryKeySelective(ConsultOrder record) {
+		return consultOrderMapper.updateByPrimaryKeySelective(record);
+	}
+
+	public ConsultOrder selectByPrimaryKey(Long id) {
+		return consultOrderMapper.selectByPrimaryKey(id);
+	}
+
+	public Pagination<ModelMap> getList(Map<String, Object> params, Integer pNo, Integer pSize) {
+		Pagination<ModelMap> page = new Pagination<>();
+		page.setPageNo(pNo);
+		page.setPageSize(pSize);
+		int offset = (page.getPageNo() - 1) * page.getPageSize();
+		params.put("page_sql", String.format(" limit  %s , %s ", offset, pSize));
+		List<ModelMap> res = consultOrderMapper.findConsultOrderListByPage(params);
+		for (ModelMap mm : res) {
+			mm.put("id", String.valueOf(mm.get("id")));
+		}
+		page.setList(res);
+		page.setTotalCount(consultOrderMapper.findConsultOrderCount(params));
+		return page;
+	}
+
+	public Map<String, Object> disposeSearchParams(String number, String toNumber, String id, String paymentId,
+			String state) {
+		Map<String, Object> params = new HashMap<>();
+		if (StringUtils.isNumeric(number)) {
+			params.put("number", Integer.parseInt(number));
+		}
+		if (StringUtils.isNumeric(toNumber)) {
+			params.put("tnumber", Integer.parseInt(toNumber));
+		}
+		if (StringUtils.isNumeric(id)) {
+			params.put("id", Long.parseLong(id));
+		}
+		if (StringUtils.isNotBlank(paymentId)) {
+			params.put("pid", paymentId);
+		}
+		if (state != null) {
+			params.put("state", OrderState.getStatus(state).getCode());
+		}
+		return params;
+	}
+}

+ 2 - 1
src/main/java/com/goafanti/easemob/enums/EasemonSysUsers.java

@@ -7,7 +7,8 @@ public enum EasemonSysUsers {
 	ADMIN_DDDT("ADMIN_DDDT", "订单动态"),
 	ADMIN_XQDT("ADMIN_XQDT", "需求动态"),
 	ADMIN_CGDT("ADMIN_CGDT", "成果动态"),
-	ADMIN_XTXX("ADMIN_XTXX", "系统消息");
+	ADMIN_XTXX("ADMIN_XTXX", "系统消息"),
+	ADMIN_KF("ADMIN_KF", "系统客服");
 
 	private EasemonSysUsers(String username, String nickname) {
 		this.username = username;

+ 1 - 1
src/main/java/com/goafanti/memberGrade/controller/MemberGradeFrontController.java

@@ -62,7 +62,7 @@ public class MemberGradeFrontController extends BaseApiController {
 	 * @param validMonth
 	 * @return
 	 */
-	@RequestMapping(value = "/addBasicsMemberOrder", method = RequestMethod.GET)
+	@RequestMapping(value = "/addBasicsMemberOrder", method = RequestMethod.POST)
 	public Result addBasicsMemberOrder(Integer menberType, String price, Integer validMonth) {
 		MemberOrder mo = new MemberOrder();
 		mo.setId(jDBCIdGenerator.generateId());

+ 1 - 5
src/main/webapp/WEB-INF/html/test.html

@@ -57,10 +57,6 @@
 <body>
   <div id="root">
     <label>
-      <span>接口前缀</span>
-      <input type="text" id="context" value="AFT" >
-    </label>
-    <label>
       <span>接口地址</span>
       <input type="text" id="path" value="/managesignin" >
     </label>
@@ -103,7 +99,7 @@
       if (loading) {
         return;
       }
-      var url = '/' + $('#context').val() + $('#path').val();
+      var url = $('#path').val();
       var data = $.trim($('#data').val());
       data = data ? JSON.parse($('#data').val()) : {};
       loading = true;