Antiloveg 8 years ago
parent
commit
555e7e2e59

+ 29 - 0
schema/2017-06-01.sql

@@ -0,0 +1,29 @@
+CREATE TABLE `demand_order` (
+  `id` VARCHAR(36) NOT NULL,
+  `serial_number` INT(8) NULL COMMENT '编号'  AUTO_INCREMENT,
+  `demand_id` VARCHAR(36) NOT NULL COMMENT '科技需求ID',
+  `uid` VARCHAR(36) NULL COMMENT '接单人ID',
+  `create_time` DATETIME NULL COMMENT '接单时间',
+  `enclosure_url` VARCHAR(255) NULL COMMENT '附件URL',
+  `status` INT(1) NULL COMMENT '流程变动(0--初始意向,1--意向金,2--签订合同,3--合同金,4--佣金,5--服务金,6--关闭)',
+  `intention_money` INT(8) NULL COMMENT '意向金',
+  `contract_money` INT(8) NULL COMMENT '合同金',
+  `commission` INT(8) NULL COMMENT '佣金',
+  `service_money` INT(8) NULL COMMENT '服务金',
+  `refund` INT(1) NULL COMMENT '是否退款(0--未退款,1--已退款)',
+  `deleted_sign` INT(1) NULL COMMENT '删除标记(0--未删除,1--已删除)',
+  PRIMARY KEY (`id`),
+  INDEX `serialNumber` (`serial_number` ASC))
+ENGINE = InnoDB	AUTO_INCREMENT= 600000
+COMMENT = '科技需求意向单/交易单';
+
+CREATE TABLE `demand_order_log` (
+  `id` VARCHAR(36) NOT NULL,
+  `demand_order_id` VARCHAR(36) NOT NULL COMMENT '科技需求意向单/交易单ID',
+  `record_time` DATETIME NULL,
+  `status` INT(1) NULL COMMENT '状态',
+  `operator` VARCHAR(36) NULL COMMENT '记录操作人',
+  `comment` VARCHAR(128) NULL,
+  PRIMARY KEY (`id`))
+ENGINE = InnoDB
+COMMENT = '科技需求意向单/交易单日志';

+ 17 - 0
src/main/java/com/goafanti/common/dao/DemandOrderLogMapper.java

@@ -0,0 +1,17 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.DemandOrderLog;
+
+public interface DemandOrderLogMapper {
+    int deleteByPrimaryKey(String id);
+
+    int insert(DemandOrderLog record);
+
+    int insertSelective(DemandOrderLog record);
+
+    DemandOrderLog selectByPrimaryKey(String id);
+
+    int updateByPrimaryKeySelective(DemandOrderLog record);
+
+    int updateByPrimaryKey(DemandOrderLog record);
+}

+ 19 - 0
src/main/java/com/goafanti/common/dao/DemandOrderMapper.java

@@ -0,0 +1,19 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.DemandOrder;
+
+public interface DemandOrderMapper {
+    int deleteByPrimaryKey(String id);
+
+    int insert(DemandOrder record);
+
+    int insertSelective(DemandOrder record);
+
+    DemandOrder selectByPrimaryKey(String id);
+
+    int updateByPrimaryKeySelective(DemandOrder record);
+
+    int updateByPrimaryKey(DemandOrder record);
+
+	DemandOrder selectDemandOrderByUidAndDemandId(String uid, String id);
+}

+ 60 - 0
src/main/java/com/goafanti/common/enums/DemandOrderStatus.java

@@ -0,0 +1,60 @@
+package com.goafanti.common.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+
+public enum DemandOrderStatus {
+	CREATE(0, "初始意向"),
+	INTENTIONMONEY(1,"交付意向金"),
+	SIGN(2,"签订合同"),
+	CONTRACTMONEY(3, "交付合同金"),
+	COMMISSION(4,"交付佣金"),
+	SERVICEMONEY(5, "交付服务金"),
+	CLOSE(6,"关闭订单"),
+	OTHER(7, "其他");
+
+	private DemandOrderStatus(Integer code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	private static Map<Integer, DemandOrderStatus> status = new HashMap<Integer, DemandOrderStatus>();
+
+	static {
+		for (DemandOrderStatus value : DemandOrderStatus.values()) {
+			status.put(value.getCode(), value);
+		}
+	}
+
+	public static DemandOrderStatus getStatus(Integer code) {
+		if (containsType(code)) {
+			return status.get(code);
+		}
+		return OTHER;
+	}
+
+	public static DemandOrderStatus getStatus(String code) {
+		if (StringUtils.isNumeric(code)) {
+			return getStatus(Integer.parseInt(code));
+		}
+		return OTHER;
+	}
+
+	public static boolean containsType(Integer code) {
+		return status.containsKey(code);
+	}
+
+	private Integer	code;
+	private String	desc;
+
+	public Integer getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+}

+ 1 - 1
src/main/java/com/goafanti/common/mapper/DemandMapper.xml

@@ -976,7 +976,7 @@
   	from demand d
   	left join user_identity ui on ui.uid = d.employer_id
   	left join organization_identity oi on oi.uid = d.employer_id
-  	left join demand_interest d on di.demand_id = d.id and di.uid = #{0}
+  	left join demand_interest di on di.demand_id = d.id and di.uid = #{0}
   	where d.id = #{1}
   </select>
   

+ 106 - 0
src/main/java/com/goafanti/common/mapper/DemandOrderLogMapper.xml

@@ -0,0 +1,106 @@
+<?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.DemandOrderLogMapper" >
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.DemandOrderLog" >
+    <id column="id" property="id" jdbcType="VARCHAR" />
+    <result column="demand_order_id" property="demandOrderId" jdbcType="VARCHAR" />
+    <result column="record_time" property="recordTime" jdbcType="TIMESTAMP" />
+    <result column="status" property="status" jdbcType="INTEGER" />
+    <result column="operator" property="operator" jdbcType="VARCHAR" />
+    <result column="comment" property="comment" jdbcType="VARCHAR" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    id, demand_order_id, record_time, status, operator, comment
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
+    select 
+    <include refid="Base_Column_List" />
+    from demand_order_log
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
+    delete from demand_order_log
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.DemandOrderLog" >
+    insert into demand_order_log (id, demand_order_id, record_time, 
+      status, operator, comment
+      )
+    values (#{id,jdbcType=VARCHAR}, #{demandOrderId,jdbcType=VARCHAR}, #{recordTime,jdbcType=TIMESTAMP}, 
+      #{status,jdbcType=INTEGER}, #{operator,jdbcType=VARCHAR}, #{comment,jdbcType=VARCHAR}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.DemandOrderLog" >
+    insert into demand_order_log
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        id,
+      </if>
+      <if test="demandOrderId != null" >
+        demand_order_id,
+      </if>
+      <if test="recordTime != null" >
+        record_time,
+      </if>
+      <if test="status != null" >
+        status,
+      </if>
+      <if test="operator != null" >
+        operator,
+      </if>
+      <if test="comment != null" >
+        comment,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="demandOrderId != null" >
+        #{demandOrderId,jdbcType=VARCHAR},
+      </if>
+      <if test="recordTime != null" >
+        #{recordTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="status != null" >
+        #{status,jdbcType=INTEGER},
+      </if>
+      <if test="operator != null" >
+        #{operator,jdbcType=VARCHAR},
+      </if>
+      <if test="comment != null" >
+        #{comment,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.DemandOrderLog" >
+    update demand_order_log
+    <set >
+      <if test="demandOrderId != null" >
+        demand_order_id = #{demandOrderId,jdbcType=VARCHAR},
+      </if>
+      <if test="recordTime != null" >
+        record_time = #{recordTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="status != null" >
+        status = #{status,jdbcType=INTEGER},
+      </if>
+      <if test="operator != null" >
+        operator = #{operator,jdbcType=VARCHAR},
+      </if>
+      <if test="comment != null" >
+        comment = #{comment,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.DemandOrderLog" >
+    update demand_order_log
+    set demand_order_id = #{demandOrderId,jdbcType=VARCHAR},
+      record_time = #{recordTime,jdbcType=TIMESTAMP},
+      status = #{status,jdbcType=INTEGER},
+      operator = #{operator,jdbcType=VARCHAR},
+      comment = #{comment,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 195 - 0
src/main/java/com/goafanti/common/mapper/DemandOrderMapper.xml

@@ -0,0 +1,195 @@
+<?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.DemandOrderMapper" >
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.DemandOrder" >
+    <id column="id" property="id" jdbcType="VARCHAR" />
+    <result column="serial_number" property="serialNumber" jdbcType="INTEGER" />
+    <result column="demand_id" property="demandId" jdbcType="VARCHAR" />
+    <result column="uid" property="uid" jdbcType="VARCHAR" />
+    <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+    <result column="enclosure_url" property="enclosureUrl" jdbcType="VARCHAR" />
+    <result column="status" property="status" jdbcType="INTEGER" />
+    <result column="intention_money" property="intentionMoney" jdbcType="INTEGER" />
+    <result column="contract_money" property="contractMoney" jdbcType="INTEGER" />
+    <result column="commission" property="commission" jdbcType="INTEGER" />
+    <result column="service_money" property="serviceMoney" jdbcType="INTEGER" />
+    <result column="refund" property="refund" jdbcType="INTEGER" />
+    <result column="deleted_sign" property="deletedSign" jdbcType="INTEGER" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    id, serial_number, demand_id, uid, create_time, enclosure_url, status, intention_money, 
+    contract_money, commission, service_money, refund, deleted_sign
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
+    select 
+    <include refid="Base_Column_List" />
+    from demand_order
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
+    delete from demand_order
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.DemandOrder" >
+    insert into demand_order (id, serial_number, demand_id, 
+      uid, create_time, enclosure_url, 
+      status, intention_money, contract_money, 
+      commission, service_money, refund, 
+      deleted_sign)
+    values (#{id,jdbcType=VARCHAR}, #{serialNumber,jdbcType=INTEGER}, #{demandId,jdbcType=VARCHAR}, 
+      #{uid,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{enclosureUrl,jdbcType=VARCHAR}, 
+      #{status,jdbcType=INTEGER}, #{intentionMoney,jdbcType=INTEGER}, #{contractMoney,jdbcType=INTEGER}, 
+      #{commission,jdbcType=INTEGER}, #{serviceMoney,jdbcType=INTEGER}, #{refund,jdbcType=INTEGER}, 
+      #{deletedSign,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.DemandOrder" >
+    insert into demand_order
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        id,
+      </if>
+      <if test="serialNumber != null" >
+        serial_number,
+      </if>
+      <if test="demandId != null" >
+        demand_id,
+      </if>
+      <if test="uid != null" >
+        uid,
+      </if>
+      <if test="createTime != null" >
+        create_time,
+      </if>
+      <if test="enclosureUrl != null" >
+        enclosure_url,
+      </if>
+      <if test="status != null" >
+        status,
+      </if>
+      <if test="intentionMoney != null" >
+        intention_money,
+      </if>
+      <if test="contractMoney != null" >
+        contract_money,
+      </if>
+      <if test="commission != null" >
+        commission,
+      </if>
+      <if test="serviceMoney != null" >
+        service_money,
+      </if>
+      <if test="refund != null" >
+        refund,
+      </if>
+      <if test="deletedSign != null" >
+        deleted_sign,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="serialNumber != null" >
+        #{serialNumber,jdbcType=INTEGER},
+      </if>
+      <if test="demandId != null" >
+        #{demandId,jdbcType=VARCHAR},
+      </if>
+      <if test="uid != null" >
+        #{uid,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="enclosureUrl != null" >
+        #{enclosureUrl,jdbcType=VARCHAR},
+      </if>
+      <if test="status != null" >
+        #{status,jdbcType=INTEGER},
+      </if>
+      <if test="intentionMoney != null" >
+        #{intentionMoney,jdbcType=INTEGER},
+      </if>
+      <if test="contractMoney != null" >
+        #{contractMoney,jdbcType=INTEGER},
+      </if>
+      <if test="commission != null" >
+        #{commission,jdbcType=INTEGER},
+      </if>
+      <if test="serviceMoney != null" >
+        #{serviceMoney,jdbcType=INTEGER},
+      </if>
+      <if test="refund != null" >
+        #{refund,jdbcType=INTEGER},
+      </if>
+      <if test="deletedSign != null" >
+        #{deletedSign,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.DemandOrder" >
+    update demand_order
+    <set >
+      <if test="serialNumber != null" >
+        serial_number = #{serialNumber,jdbcType=INTEGER},
+      </if>
+      <if test="demandId != null" >
+        demand_id = #{demandId,jdbcType=VARCHAR},
+      </if>
+      <if test="uid != null" >
+        uid = #{uid,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="enclosureUrl != null" >
+        enclosure_url = #{enclosureUrl,jdbcType=VARCHAR},
+      </if>
+      <if test="status != null" >
+        status = #{status,jdbcType=INTEGER},
+      </if>
+      <if test="intentionMoney != null" >
+        intention_money = #{intentionMoney,jdbcType=INTEGER},
+      </if>
+      <if test="contractMoney != null" >
+        contract_money = #{contractMoney,jdbcType=INTEGER},
+      </if>
+      <if test="commission != null" >
+        commission = #{commission,jdbcType=INTEGER},
+      </if>
+      <if test="serviceMoney != null" >
+        service_money = #{serviceMoney,jdbcType=INTEGER},
+      </if>
+      <if test="refund != null" >
+        refund = #{refund,jdbcType=INTEGER},
+      </if>
+      <if test="deletedSign != null" >
+        deleted_sign = #{deletedSign,jdbcType=INTEGER},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.DemandOrder" >
+    update demand_order
+    set serial_number = #{serialNumber,jdbcType=INTEGER},
+      demand_id = #{demandId,jdbcType=VARCHAR},
+      uid = #{uid,jdbcType=VARCHAR},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      enclosure_url = #{enclosureUrl,jdbcType=VARCHAR},
+      status = #{status,jdbcType=INTEGER},
+      intention_money = #{intentionMoney,jdbcType=INTEGER},
+      contract_money = #{contractMoney,jdbcType=INTEGER},
+      commission = #{commission,jdbcType=INTEGER},
+      service_money = #{serviceMoney,jdbcType=INTEGER},
+      refund = #{refund,jdbcType=INTEGER},
+      deleted_sign = #{deletedSign,jdbcType=INTEGER}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  
+   <select id="selectDemandOrderByUidAndDemandId" resultMap="BaseResultMap" >
+    select 
+    <include refid="Base_Column_List" />
+    from demand_order
+    where uid = #{0} and demand_id = #{1}
+  </select>
+</mapper>

+ 171 - 0
src/main/java/com/goafanti/common/model/DemandOrder.java

@@ -0,0 +1,171 @@
+package com.goafanti.common.model;
+
+import java.util.Date;
+
+public class DemandOrder {
+    private String id;
+
+    /**
+    * 编号
+    */
+    private Integer serialNumber;
+
+    /**
+    * 科技需求ID
+    */
+    private String demandId;
+
+    /**
+    * 接单人ID
+    */
+    private String uid;
+
+    /**
+    * 接单时间
+    */
+    private Date createTime;
+
+    /**
+    * 附件URL
+    */
+    private String enclosureUrl;
+
+    /**
+    * 流程变动(0--初始意向,1--意向金,2--签订合同,3--合同金,4--佣金,5--服务金,6--关闭)
+    */
+    private Integer status;
+
+    /**
+    * 意向金
+    */
+    private Integer intentionMoney;
+
+    /**
+    * 合同金
+    */
+    private Integer contractMoney;
+
+    /**
+    * 佣金
+    */
+    private Integer commission;
+
+    /**
+    * 服务金
+    */
+    private Integer serviceMoney;
+
+    /**
+    * 是否退款(0--未退款,1--已退款)
+    */
+    private Integer refund;
+
+    /**
+    * 删除标记(0--未删除,1--已删除)
+    */
+    private Integer deletedSign;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getSerialNumber() {
+        return serialNumber;
+    }
+
+    public void setSerialNumber(Integer serialNumber) {
+        this.serialNumber = serialNumber;
+    }
+
+    public String getDemandId() {
+        return demandId;
+    }
+
+    public void setDemandId(String demandId) {
+        this.demandId = demandId;
+    }
+
+    public String getUid() {
+        return uid;
+    }
+
+    public void setUid(String uid) {
+        this.uid = uid;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getEnclosureUrl() {
+        return enclosureUrl;
+    }
+
+    public void setEnclosureUrl(String enclosureUrl) {
+        this.enclosureUrl = enclosureUrl;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Integer getIntentionMoney() {
+        return intentionMoney;
+    }
+
+    public void setIntentionMoney(Integer intentionMoney) {
+        this.intentionMoney = intentionMoney;
+    }
+
+    public Integer getContractMoney() {
+        return contractMoney;
+    }
+
+    public void setContractMoney(Integer contractMoney) {
+        this.contractMoney = contractMoney;
+    }
+
+    public Integer getCommission() {
+        return commission;
+    }
+
+    public void setCommission(Integer commission) {
+        this.commission = commission;
+    }
+
+    public Integer getServiceMoney() {
+        return serviceMoney;
+    }
+
+    public void setServiceMoney(Integer serviceMoney) {
+        this.serviceMoney = serviceMoney;
+    }
+
+    public Integer getRefund() {
+        return refund;
+    }
+
+    public void setRefund(Integer refund) {
+        this.refund = refund;
+    }
+
+    public Integer getDeletedSign() {
+        return deletedSign;
+    }
+
+    public void setDeletedSign(Integer deletedSign) {
+        this.deletedSign = deletedSign;
+    }
+}

+ 74 - 0
src/main/java/com/goafanti/common/model/DemandOrderLog.java

@@ -0,0 +1,74 @@
+package com.goafanti.common.model;
+
+import java.util.Date;
+
+public class DemandOrderLog {
+    private String id;
+
+    /**
+    * 科技需求意向单/交易单ID
+    */
+    private String demandOrderId;
+
+    private Date recordTime;
+
+    /**
+    * 状态
+    */
+    private Integer status;
+
+    /**
+    * 记录操作人
+    */
+    private String operator;
+
+    private String comment;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getDemandOrderId() {
+        return demandOrderId;
+    }
+
+    public void setDemandOrderId(String demandOrderId) {
+        this.demandOrderId = demandOrderId;
+    }
+
+    public Date getRecordTime() {
+        return recordTime;
+    }
+
+    public void setRecordTime(Date recordTime) {
+        this.recordTime = recordTime;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public String getComment() {
+        return comment;
+    }
+
+    public void setComment(String comment) {
+        this.comment = comment;
+    }
+}

+ 5 - 0
src/main/java/com/goafanti/demand/bo/InputDemandOrder.java

@@ -0,0 +1,5 @@
+package com.goafanti.demand.bo;
+
+public class InputDemandOrder {
+	private String demandId;
+}

+ 11 - 0
src/main/java/com/goafanti/demand/service/DemandOrderService.java

@@ -0,0 +1,11 @@
+package com.goafanti.demand.service;
+
+import com.goafanti.common.model.DemandOrder;
+
+public interface DemandOrderService {
+
+	DemandOrder selectDemandOrderByUidAndDemandId(String userId, String id);
+
+	void saveDemandOrder(String id);
+
+}

+ 50 - 0
src/main/java/com/goafanti/demand/service/impl/DemandOrderServiceImpl.java

@@ -0,0 +1,50 @@
+package com.goafanti.demand.service.impl;
+
+import java.util.Calendar;
+import java.util.UUID;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.goafanti.common.dao.DemandOrderLogMapper;
+import com.goafanti.common.dao.DemandOrderMapper;
+import com.goafanti.common.enums.DeleteStatus;
+import com.goafanti.common.enums.DemandOrderStatus;
+import com.goafanti.common.model.DemandOrder;
+import com.goafanti.common.model.DemandOrderLog;
+import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.demand.service.DemandOrderService;
+@Service
+public class DemandOrderServiceImpl implements DemandOrderService {
+	@Autowired
+	private DemandOrderMapper demandOrderMapper;
+	@Autowired
+	private DemandOrderLogMapper demandOrderLogMapper;
+	
+	@Override
+	public DemandOrder selectDemandOrderByUidAndDemandId(String uid, String id) {
+		return demandOrderMapper.selectDemandOrderByUidAndDemandId(uid, id);
+	}
+
+	@Override
+	public void saveDemandOrder(String id) {
+		DemandOrder demandOrder = new DemandOrder();
+		demandOrder.setId(UUID.randomUUID().toString().toString());
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		demandOrder.setCreateTime(now.getTime());
+		demandOrder.setUid(TokenManager.getUserId());
+		demandOrder.setDeletedSign(DeleteStatus.UNDELETE.getCode());
+		demandOrder.setStatus(DemandOrderStatus.CREATE.getCode());
+		demandOrderMapper.insert(demandOrder);
+		
+		DemandOrderLog dol = new DemandOrderLog();
+		dol.setId(UUID.randomUUID().toString());
+		dol.setDemandOrderId(demandOrder.getId());
+		dol.setRecordTime(demandOrder.getCreateTime());
+		dol.setStatus(demandOrder.getStatus());
+		demandOrderLogMapper.insert(dol);
+		
+	}
+
+}

+ 1 - 1
src/main/java/com/goafanti/portal/controller/PortalInterestApiController.java

@@ -101,7 +101,7 @@ public class PortalInterestApiController extends CertifyApiController{
 
 		DemandInterest di = demandInterestService.selectDemandInterestByUidAndDemandId(TokenManager.getUserId(), id);
 		if (null != di) {
-			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "当前科技科技需求已关注!"));
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "当前科技需求已关注!"));
 			return res;
 		}
 		Demand d = demandService.selectByPrimaryKey(id);

+ 47 - 2
src/main/java/com/goafanti/portal/controller/PortalOrderApiController.java

@@ -1,11 +1,56 @@
 package com.goafanti.portal.controller;
 
+import javax.annotation.Resource;
+
+import org.apache.commons.lang3.StringUtils;
 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.CertifyApiController;
+import com.goafanti.common.enums.DeleteStatus;
+import com.goafanti.common.enums.DemandAuditStatus;
+import com.goafanti.common.enums.DemandReleaseStatus;
+import com.goafanti.common.model.Demand;
+import com.goafanti.common.model.DemandOrder;
+import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.demand.service.DemandOrderService;
+import com.goafanti.demand.service.DemandService;
+
 @RestController
 @RequestMapping(value = "/api/user/portal/order")
-public class PortalOrderApiController extends CertifyApiController{
-	
+public class PortalOrderApiController extends CertifyApiController {
+	@Resource
+	private DemandOrderService	demandOrderService;
+	@Resource
+	private DemandService		demandService;
+
+	/**
+	 * "我要接单"
+	 */
+	@RequestMapping(value = "/order", method = RequestMethod.POST)
+	public Result order(String id) {
+		Result res = new Result();
+		if (StringUtils.isBlank(id)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到需求ID", "需求ID"));
+			return res;
+		}
+		DemandOrder demandOrder = demandOrderService.selectDemandOrderByUidAndDemandId(TokenManager.getUserId(), id);
+		if (null != demandOrder) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "当前科技需求已接单!"));
+			return res;
+		}
+		Demand d = demandService.selectByPrimaryKey(id);
+		if (null == d || d.getDeletedSign().equals(DeleteStatus.DELETED.getCode())
+				|| !d.getAuditStatus().equals(DemandAuditStatus.AUDITED.getCode())
+				|| !d.getReleaseStatus().equals(DemandReleaseStatus.RELEASED.getCode())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技需求ID"));
+			return res;
+		}
+		
+		demandOrderService.saveDemandOrder(id);
+		return res;
+	}
 }