wangxiaoming 7 лет назад
Родитель
Сommit
324dd8db5c

+ 200 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/receive/ChargerReceive.java

@@ -0,0 +1,200 @@
+package com.iamberry.wechat.core.entity.receive;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class ChargerReceive implements Serializable {
+
+    private static final long serialVersionUID = 6908563350511553928L;
+
+    private Integer receiveId;
+    //领取订单id
+    private String receiveOrderId;
+    //用户openId
+    private String receiveOpenId;
+    //颜色id
+    private Integer colorId;
+    //颜色名称
+    private String colorName;
+    //领取人收货地址
+    private String receiveAddressInfo;
+    //邮编
+    private String receiveAddressPostnum;
+    //收货人姓名
+    private String receiveAddressName;
+    //收货人手机号码
+    private String receiveAddressTel;
+    //发货时间
+    private Date receiveSendTime;
+    //物流公司
+    private String receivePostFirm;
+    //物流编号
+    private String receivePostNum;
+    //邮费(单位为分)
+    private Integer receivePostage;
+    //领取状态 1:代付款  2:已付款 3:已发货
+    private Integer receiveStatus;
+    //微信订单号
+    private String receiveTransactionId;
+    //微信支付时间
+    private Date receiveTransactionDate;
+    //创建时间
+    private Date receiveCreateTime;
+    //修改时间
+    private Date receiveUpdateTime;
+
+    //昵称
+    private String userNickname;
+
+    public Integer getReceiveId() {
+        return receiveId;
+    }
+
+    public void setReceiveId(Integer receiveId) {
+        this.receiveId = receiveId;
+    }
+
+    public String getReceiveOrderId() {
+        return receiveOrderId;
+    }
+
+    public void setReceiveOrderId(String receiveOrderId) {
+        this.receiveOrderId = receiveOrderId == null ? null : receiveOrderId.trim();
+    }
+
+    public String getReceiveOpenId() {
+        return receiveOpenId;
+    }
+
+    public void setReceiveOpenId(String receiveOpenId) {
+        this.receiveOpenId = receiveOpenId == null ? null : receiveOpenId.trim();
+    }
+
+    public Integer getColorId() {
+        return colorId;
+    }
+
+    public void setColorId(Integer colorId) {
+        this.colorId = colorId;
+    }
+
+    public String getColorName() {
+        return colorName;
+    }
+
+    public void setColorName(String colorName) {
+        this.colorName = colorName == null ? null : colorName.trim();
+    }
+
+    public String getReceiveAddressInfo() {
+        return receiveAddressInfo;
+    }
+
+    public void setReceiveAddressInfo(String receiveAddressInfo) {
+        this.receiveAddressInfo = receiveAddressInfo == null ? null : receiveAddressInfo.trim();
+    }
+
+    public String getReceiveAddressPostnum() {
+        return receiveAddressPostnum;
+    }
+
+    public void setReceiveAddressPostnum(String receiveAddressPostnum) {
+        this.receiveAddressPostnum = receiveAddressPostnum == null ? null : receiveAddressPostnum.trim();
+    }
+
+    public String getReceiveAddressName() {
+        return receiveAddressName;
+    }
+
+    public void setReceiveAddressName(String receiveAddressName) {
+        this.receiveAddressName = receiveAddressName == null ? null : receiveAddressName.trim();
+    }
+
+    public String getReceiveAddressTel() {
+        return receiveAddressTel;
+    }
+
+    public void setReceiveAddressTel(String receiveAddressTel) {
+        this.receiveAddressTel = receiveAddressTel == null ? null : receiveAddressTel.trim();
+    }
+
+    public Date getReceiveSendTime() {
+        return receiveSendTime;
+    }
+
+    public void setReceiveSendTime(Date receiveSendTime) {
+        this.receiveSendTime = receiveSendTime;
+    }
+
+    public String getReceivePostFirm() {
+        return receivePostFirm;
+    }
+
+    public void setReceivePostFirm(String receivePostFirm) {
+        this.receivePostFirm = receivePostFirm == null ? null : receivePostFirm.trim();
+    }
+
+    public String getReceivePostNum() {
+        return receivePostNum;
+    }
+
+    public void setReceivePostNum(String receivePostNum) {
+        this.receivePostNum = receivePostNum == null ? null : receivePostNum.trim();
+    }
+
+    public Integer getReceivePostage() {
+        return receivePostage;
+    }
+
+    public void setReceivePostage(Integer receivePostage) {
+        this.receivePostage = receivePostage;
+    }
+
+    public Integer getReceiveStatus() {
+        return receiveStatus;
+    }
+
+    public void setReceiveStatus(Integer receiveStatus) {
+        this.receiveStatus = receiveStatus;
+    }
+
+    public String getReceiveTransactionId() {
+        return receiveTransactionId;
+    }
+
+    public void setReceiveTransactionId(String receiveTransactionId) {
+        this.receiveTransactionId = receiveTransactionId == null ? null : receiveTransactionId.trim();
+    }
+
+    public Date getReceiveTransactionDate() {
+        return receiveTransactionDate;
+    }
+
+    public void setReceiveTransactionDate(Date receiveTransactionDate) {
+        this.receiveTransactionDate = receiveTransactionDate;
+    }
+
+    public Date getReceiveCreateTime() {
+        return receiveCreateTime;
+    }
+
+    public void setReceiveCreateTime(Date receiveCreateTime) {
+        this.receiveCreateTime = receiveCreateTime;
+    }
+
+    public Date getReceiveUpdateTime() {
+        return receiveUpdateTime;
+    }
+
+    public void setReceiveUpdateTime(Date receiveUpdateTime) {
+        this.receiveUpdateTime = receiveUpdateTime;
+    }
+
+    public String getUserNickname() {
+        return userNickname;
+    }
+
+    public void setUserNickname(String userNickname) {
+        this.userNickname = userNickname;
+    }
+}

+ 34 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/receive/ChargReceiveService.java

@@ -0,0 +1,34 @@
+package com.iamberry.wechat.face.receive;
+
+import com.iamberry.wechat.core.entity.PaperBean;
+import com.iamberry.wechat.core.entity.cart.ShopOrderAndItemDto;
+import com.iamberry.wechat.core.entity.integral.UseIntegral;
+import com.iamberry.wechat.core.entity.page.PageRequest;
+import com.iamberry.wechat.core.entity.page.PagedResult;
+import com.iamberry.wechat.core.entity.receive.ChargerReceive;
+
+import java.util.List;
+
+public interface ChargReceiveService {
+
+    int insert(ChargerReceive record);
+
+//    int insertSelective(ChargerReceive record);
+
+    ChargerReceive selectByPrimaryKey(Integer receiveId);
+
+    ChargerReceive selectByOrderId(String orderId);
+
+    int updateByPrimaryKeySelective(ChargerReceive record);
+
+    /*按照orderId修改*/
+    int updateByOrderId(ChargerReceive record);
+
+    /*获取列表*/
+    List<ChargerReceive> getChargerReceiveList(ChargerReceive chargerReceive);
+
+    /*分页*/
+    PagedResult<ChargerReceive> listChargerReceive(PageRequest<ChargerReceive> pageRequest);
+
+
+}

+ 24 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/ChargerReceiveMapper.java

@@ -0,0 +1,24 @@
+package com.iamberry.wechat.service.mapper;
+
+
+import com.iamberry.wechat.core.entity.receive.ChargerReceive;
+
+import java.util.List;
+
+public interface ChargerReceiveMapper {
+
+    int insert(ChargerReceive record);
+
+    int insertSelective(ChargerReceive record);
+
+    ChargerReceive selectByPrimaryKey(Integer receiveId);
+
+    ChargerReceive selectByOrderId(String orderId);
+
+    int updateByPrimaryKeySelective(ChargerReceive record);
+
+    int updateByOrderId(ChargerReceive record);
+
+    /*获取列表*/
+    List<ChargerReceive> listChargerReceive(ChargerReceive chargerReceive);
+}

+ 321 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/chargerReceiveMapper.xml

@@ -0,0 +1,321 @@
+<?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.iamberry.wechat.service.mapper.ChargerReceiveMapper" >
+  <resultMap id="BaseResultMap" type="ChargerReceive" >
+    <id column="receive_id" property="receiveId" jdbcType="INTEGER" />
+    <result column="receive_order_id" property="receiveOrderId" jdbcType="VARCHAR" />
+    <result column="receive_open_id" property="receiveOpenId" jdbcType="VARCHAR" />
+    <result column="color_id" property="colorId" jdbcType="INTEGER" />
+    <result column="color_name" property="colorName" jdbcType="VARCHAR" />
+    <result column="receive_address_info" property="receiveAddressInfo" jdbcType="VARCHAR" />
+    <result column="receive_address_postnum" property="receiveAddressPostnum" jdbcType="VARCHAR" />
+    <result column="receive_address_name" property="receiveAddressName" jdbcType="VARCHAR" />
+    <result column="receive_address_tel" property="receiveAddressTel" jdbcType="VARCHAR" />
+    <result column="receive_send_time" property="receiveSendTime" jdbcType="TIMESTAMP" />
+    <result column="receive_post_firm" property="receivePostFirm" jdbcType="VARCHAR" />
+    <result column="receive_post_num" property="receivePostNum" jdbcType="VARCHAR" />
+    <result column="receive_postage" property="receivePostage" jdbcType="INTEGER" />
+    <result column="receive_status" property="receiveStatus" jdbcType="INTEGER" />
+    <result column="receive_transaction_id" property="receiveTransactionId" jdbcType="VARCHAR" />
+    <result column="receive_transaction_date" property="receiveTransactionDate" jdbcType="TIMESTAMP" />
+    <result column="receive_create_time" property="receiveCreateTime" jdbcType="TIMESTAMP" />
+    <result column="receive_update_time" property="receiveUpdateTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    receive_id, receive_order_id, receive_open_id, color_id, color_name, receive_address_info, 
+    receive_address_postnum, receive_address_name, receive_address_tel, receive_send_time, 
+    receive_post_firm, receive_post_num, receive_postage, receive_status, receive_transaction_id, 
+    receive_transaction_date, receive_create_time, receive_update_time
+  </sql>
+
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+    select 
+    <include refid="Base_Column_List" />
+    from tb_iamberry_charger_receive
+    where receive_id = #{receiveId,jdbcType=INTEGER}
+  </select>
+
+  <select id="selectByOrderId" resultMap="BaseResultMap" parameterType="java.lang.String" >
+    select
+    <include refid="Base_Column_List" />
+    from tb_iamberry_charger_receive
+    where receive_order_id = #{orderId}
+  </select>
+
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+    delete from tb_iamberry_charger_receive
+    where receive_id = #{receiveId,jdbcType=INTEGER}
+  </delete>
+  <insert id="insert" parameterType="ChargerReceive" >
+    insert into tb_iamberry_charger_receive (receive_id, receive_order_id, receive_open_id, 
+      color_id, color_name, receive_address_info, 
+      receive_address_postnum, receive_address_name, 
+      receive_address_tel, receive_send_time, receive_post_firm, 
+      receive_post_num, receive_postage, receive_status, 
+      receive_transaction_id, receive_transaction_date
+      )
+    values (#{receiveId,jdbcType=INTEGER}, #{receiveOrderId,jdbcType=VARCHAR}, #{receiveOpenId,jdbcType=VARCHAR}, 
+      #{colorId,jdbcType=INTEGER}, #{colorName,jdbcType=VARCHAR}, #{receiveAddressInfo,jdbcType=VARCHAR}, 
+      #{receiveAddressPostnum,jdbcType=VARCHAR}, #{receiveAddressName,jdbcType=VARCHAR}, 
+      #{receiveAddressTel,jdbcType=VARCHAR}, #{receiveSendTime,jdbcType=TIMESTAMP}, #{receivePostFirm,jdbcType=VARCHAR}, 
+      #{receivePostNum,jdbcType=VARCHAR}, #{receivePostage,jdbcType=INTEGER}, #{receiveStatus,jdbcType=INTEGER}, 
+      #{receiveTransactionId,jdbcType=VARCHAR}, #{receiveTransactionDate,jdbcType=TIMESTAMP}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="ChargerReceive" >
+    insert into tb_iamberry_charger_receive
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="receiveId != null" >
+        receive_id,
+      </if>
+      <if test="receiveOrderId != null" >
+        receive_order_id,
+      </if>
+      <if test="receiveOpenId != null" >
+        receive_open_id,
+      </if>
+      <if test="colorId != null" >
+        color_id,
+      </if>
+      <if test="colorName != null" >
+        color_name,
+      </if>
+      <if test="receiveAddressInfo != null" >
+        receive_address_info,
+      </if>
+      <if test="receiveAddressPostnum != null" >
+        receive_address_postnum,
+      </if>
+      <if test="receiveAddressName != null" >
+        receive_address_name,
+      </if>
+      <if test="receiveAddressTel != null" >
+        receive_address_tel,
+      </if>
+      <if test="receiveSendTime != null" >
+        receive_send_time,
+      </if>
+      <if test="receivePostFirm != null" >
+        receive_post_firm,
+      </if>
+      <if test="receivePostNum != null" >
+        receive_post_num,
+      </if>
+      <if test="receivePostage != null" >
+        receive_postage,
+      </if>
+      <if test="receiveStatus != null" >
+        receive_status,
+      </if>
+      <if test="receiveTransactionId != null" >
+        receive_transaction_id,
+      </if>
+      <if test="receiveTransactionDate != null" >
+        receive_transaction_date
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="receiveId != null" >
+        #{receiveId,jdbcType=INTEGER},
+      </if>
+      <if test="receiveOrderId != null" >
+        #{receiveOrderId,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveOpenId != null" >
+        #{receiveOpenId,jdbcType=VARCHAR},
+      </if>
+      <if test="colorId != null" >
+        #{colorId,jdbcType=INTEGER},
+      </if>
+      <if test="colorName != null" >
+        #{colorName,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveAddressInfo != null" >
+        #{receiveAddressInfo,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveAddressPostnum != null" >
+        #{receiveAddressPostnum,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveAddressName != null" >
+        #{receiveAddressName,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveAddressTel != null" >
+        #{receiveAddressTel,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveSendTime != null" >
+        #{receiveSendTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="receivePostFirm != null" >
+        #{receivePostFirm,jdbcType=VARCHAR},
+      </if>
+      <if test="receivePostNum != null" >
+        #{receivePostNum,jdbcType=VARCHAR},
+      </if>
+      <if test="receivePostage != null" >
+        #{receivePostage,jdbcType=INTEGER},
+      </if>
+      <if test="receiveStatus != null" >
+        #{receiveStatus,jdbcType=INTEGER},
+      </if>
+      <if test="receiveTransactionId != null" >
+        #{receiveTransactionId,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveTransactionDate != null" >
+        #{receiveTransactionDate,jdbcType=TIMESTAMP}
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="ChargerReceive" >
+    update tb_iamberry_charger_receive
+    <set >
+      <if test="receiveOrderId != null" >
+        receive_order_id = #{receiveOrderId,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveOpenId != null" >
+        receive_open_id = #{receiveOpenId,jdbcType=VARCHAR},
+      </if>
+      <if test="colorId != null" >
+        color_id = #{colorId,jdbcType=INTEGER},
+      </if>
+      <if test="colorName != null" >
+        color_name = #{colorName,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveAddressInfo != null" >
+        receive_address_info = #{receiveAddressInfo,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveAddressPostnum != null" >
+        receive_address_postnum = #{receiveAddressPostnum,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveAddressName != null" >
+        receive_address_name = #{receiveAddressName,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveAddressTel != null" >
+        receive_address_tel = #{receiveAddressTel,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveSendTime != null" >
+        receive_send_time = #{receiveSendTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="receivePostFirm != null" >
+        receive_post_firm = #{receivePostFirm,jdbcType=VARCHAR},
+      </if>
+      <if test="receivePostNum != null" >
+        receive_post_num = #{receivePostNum,jdbcType=VARCHAR},
+      </if>
+      <if test="receivePostage != null" >
+        receive_postage = #{receivePostage,jdbcType=INTEGER},
+      </if>
+      <if test="receiveStatus != null" >
+        receive_status = #{receiveStatus,jdbcType=INTEGER},
+      </if>
+      <if test="receiveTransactionId != null" >
+        receive_transaction_id = #{receiveTransactionId,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveTransactionDate != null" >
+        receive_transaction_date = #{receiveTransactionDate,jdbcType=TIMESTAMP}
+      </if>
+    </set>
+    where receive_id = #{receiveId,jdbcType=INTEGER}
+  </update>
+
+
+  <update id="updateByOrderId" parameterType="ChargerReceive" >
+    update tb_iamberry_charger_receive
+    <set >
+      <if test="receiveOrderId != null" >
+        receive_order_id = #{receiveOrderId,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveOpenId != null" >
+        receive_open_id = #{receiveOpenId,jdbcType=VARCHAR},
+      </if>
+      <if test="colorId != null" >
+        color_id = #{colorId,jdbcType=INTEGER},
+      </if>
+      <if test="colorName != null" >
+        color_name = #{colorName,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveAddressInfo != null" >
+        receive_address_info = #{receiveAddressInfo,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveAddressPostnum != null" >
+        receive_address_postnum = #{receiveAddressPostnum,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveAddressName != null" >
+        receive_address_name = #{receiveAddressName,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveAddressTel != null" >
+        receive_address_tel = #{receiveAddressTel,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveSendTime != null" >
+        receive_send_time = #{receiveSendTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="receivePostFirm != null" >
+        receive_post_firm = #{receivePostFirm,jdbcType=VARCHAR},
+      </if>
+      <if test="receivePostNum != null" >
+        receive_post_num = #{receivePostNum,jdbcType=VARCHAR},
+      </if>
+      <if test="receivePostage != null" >
+        receive_postage = #{receivePostage,jdbcType=INTEGER},
+      </if>
+      <if test="receiveStatus != null" >
+        receive_status = #{receiveStatus,jdbcType=INTEGER},
+      </if>
+      <if test="receiveTransactionId != null" >
+        receive_transaction_id = #{receiveTransactionId,jdbcType=VARCHAR},
+      </if>
+      <if test="receiveTransactionDate != null" >
+        receive_transaction_date = #{receiveTransactionDate,jdbcType=TIMESTAMP}
+      </if>
+    </set>
+    where receive_order_id = #{receiveOrderId}
+  </update>
+
+
+  <select id="listChargerReceive" resultType="ChargerReceive" parameterType="ChargerReceive" >
+       SELECT
+            t.receive_id,
+            t.receive_order_id,
+            t.receive_open_id,
+            t.color_id,
+            t.color_name,
+            t.receive_address_info,
+            t.receive_address_postnum,
+            t.receive_address_name,
+            t.receive_address_tel,
+            t.receive_send_time,
+            t.receive_post_firm,
+            t.receive_post_num,
+            t.receive_postage,
+            t.receive_status,
+            t.receive_transaction_id,
+            t.receive_transaction_date,
+            t.receive_create_time,
+            t.receive_update_time,
+            iuu.user_nickname
+        FROM
+          tb_iamberry_charger_receive t
+        LEFT JOIN tb_iamberry_user_userinfo iuu ON t.receive_open_id = iuu.user_openid
+      <where>
+          <if test="receiveId != null" >
+            AND t.receive_id = #{receiveId}
+          </if>
+          <if test="receiveOrderId != null  and receiveOrderId != ''" >
+            AND t.receive_order_id = #{receiveOrderId}
+          </if>
+          <if test="receiveOpenId != null and receiveOpenId != ''" >
+            AND t.receive_open_id = #{receiveOpenId}
+          </if>
+          <if test="colorId != null" >
+            AND t.color_id = #{colorId}
+          </if>
+          <if test="receiveStatus != null" >
+            AND t.receive_status = #{receiveStatus}
+          </if>
+          <if test="receiveCreateTime != null and receiveCreateTime != ''" >
+            AND  DATE_FORMAT(t.receive_create_time,'%Y') =  DATE_FORMAT(#{receiveCreateTime},'%Y')
+          </if>
+      </where>
+      ORDER BY t.receive_create_time
+  </select>
+
+</mapper>

+ 67 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/receive/ChargReceiveServiceImpl.java

@@ -0,0 +1,67 @@
+package com.iamberry.wechat.service.receive;
+
+import com.github.pagehelper.PageHelper;
+import com.iamberry.wechat.core.entity.PaperBean;
+import com.iamberry.wechat.core.entity.integral.UseIntegral;
+import com.iamberry.wechat.core.entity.page.PageRequest;
+import com.iamberry.wechat.core.entity.page.PagedResult;
+import com.iamberry.wechat.core.entity.receive.ChargerReceive;
+import com.iamberry.wechat.face.receive.ChargReceiveService;
+import com.iamberry.wechat.service.mapper.ChargerReceiveMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import util.PageUtil;
+
+import java.util.List;
+
+@Service("ChargReceiveServiceImpl")
+public class ChargReceiveServiceImpl implements ChargReceiveService {
+
+    @Autowired
+    private ChargerReceiveMapper chargerReceiveMapper;
+
+    @Autowired ChargReceiveService chargReceiveService;
+
+    @Override
+    public int insert(ChargerReceive record) {
+        return chargerReceiveMapper.insert(record);
+    }
+
+//    @Override
+//    public int insertSelective(ChargerReceive record) {
+//        return chargerReceiveMapper.insertSelective(record);
+//    }
+
+    @Override
+    public ChargerReceive selectByPrimaryKey(Integer receiveId) {
+        return chargerReceiveMapper.selectByPrimaryKey(receiveId);
+    }
+
+    @Override
+    public ChargerReceive selectByOrderId(String orderId) {
+        return chargerReceiveMapper.selectByOrderId(orderId);
+    }
+
+    @Override
+    public int updateByPrimaryKeySelective(ChargerReceive record) {
+        return chargerReceiveMapper.updateByPrimaryKeySelective(record);
+    }
+
+    @Override
+    public int updateByOrderId(ChargerReceive record) {
+        return chargerReceiveMapper.updateByOrderId(record);
+    }
+
+    @Override
+    public List<ChargerReceive> getChargerReceiveList(ChargerReceive chargerReceive) {
+        return chargerReceiveMapper.listChargerReceive(chargerReceive);
+    }
+
+    @Override
+    public PagedResult<ChargerReceive> listChargerReceive(PageRequest<ChargerReceive> pageRequest) {
+        PageHelper.startPage(pageRequest.getPageNO(), pageRequest.getPageSize(), pageRequest.isPageTotal());
+        List<ChargerReceive> detedctList = chargerReceiveMapper.listChargerReceive(pageRequest.getData());
+        return PageUtil.getPage(detedctList);
+    }
+
+}

+ 143 - 125
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/pay/ResponseWechatPayHandler.java

@@ -20,6 +20,7 @@ import com.iamberry.wechat.core.entity.order.ProbationOrder;
 import com.iamberry.wechat.core.entity.order.ProbationOrderDto;
 import com.iamberry.wechat.core.entity.probation.ProbationAwardRelu;
 import com.iamberry.wechat.core.entity.qrcode.QrcodeResult;
+import com.iamberry.wechat.core.entity.receive.ChargerReceive;
 import com.iamberry.wechat.core.entity.rent.RentApply;
 import com.iamberry.wechat.core.entity.wx.WxPayResult;
 import com.iamberry.wechat.face.admin.SystemService;
@@ -40,6 +41,7 @@ import com.iamberry.wechat.face.order.AdminProbationOrderService;
 import com.iamberry.wechat.face.order.CodeService;
 import com.iamberry.wechat.face.order.ProbationShopOrderService;
 import com.iamberry.wechat.face.qrcode.TemporaryQrcodeService;
+import com.iamberry.wechat.face.receive.ChargReceiveService;
 import com.iamberry.wechat.handles.mq.MQServiceProxy;
 import com.iamberry.wechat.tools.*;
 import com.iamberry.wechat.tools.SendMessageUtil;
@@ -124,6 +126,8 @@ public class ResponseWechatPayHandler {
 	private AdminOrderService adminOrderService;
 	@Autowired
 	private ApparatusService apparatusService;
+	@Autowired
+	private ChargReceiveService chargReceiveService;
 
 	/**
 	 * 销售订单支付回调方法 -- tooth订单返回
@@ -152,144 +156,158 @@ public class ResponseWechatPayHandler {
 //System.out.println("===========pay 117==============");
 				
 				if (orderIdMD5.equals(wpr.getOutTradeNo())) {
-					Date nowDate = new Date();
-					// 组装数据
-					Order order = new Order();
-					order.setSalesOrderid(orderIdMD5);
-					order.setSalesStatus(2); // 已支付
-					order.setSalesTransactionId(wpr.getTransactionId()); // 微信支付ID
-					order.setSalesTransactionDate(new Date()); // 微信支付时间
-					order.setSalesOpenid(wpr.getOpenid());
 
-					Order or = adminOrderService.getShopOrderByOrderId(orderIdMD5);
-					if(or.getSalesStatus() != 1){
-						return;
-					}
+					/*免费领取充电器支付邮费---start*/
+					if (orderIdMD5.startsWith("mflq")) {
+						ChargerReceive cr = new ChargerReceive();
+						cr.setReceiveOrderId(orderIdMD5);
+						cr.setReceiveStatus(2);
+						cr.setReceiveTransactionId(wpr.getTransactionId());
+						cr.setReceiveTransactionDate(new Date());
+						Integer flag = chargReceiveService.updateByOrderId(cr);
+						if (flag < 1) {
+							System.out.println("免费领取充电器支付邮费回调修改记录失败!");
+						}
+						/*免费领取充电器支付邮费---end*/
+					} else {
+						Date nowDate = new Date();
+						// 组装数据
+						Order order = new Order();
+						order.setSalesOrderid(orderIdMD5);
+						order.setSalesStatus(2); // 已支付
+						order.setSalesTransactionId(wpr.getTransactionId()); // 微信支付ID
+						order.setSalesTransactionDate(new Date()); // 微信支付时间
+						order.setSalesOpenid(wpr.getOpenid());
 
-					// 修改订单状态
-					int count = cartService.updateOrderStatus(order);
+						Order or = adminOrderService.getShopOrderByOrderId(orderIdMD5);
+						if (or.getSalesStatus() != 1) {
+							return;
+						}
 
-					//发送短信给运营部
-					/*ShopSystemRule rule = cartService.getReluByRid(241);
-					try {
-						String text = MessageFormat.format(ImberryConfig.ORDER_UPDATE_STATUS_TEXT, "发货");
-						codeService.informShipping(rule.getRuleDesc(),text);
-					} catch (Exception e) {
-						System.out.println("订单换货发送消息失败!");
-					}*/
+						// 修改订单状态
+						int count = cartService.updateOrderStatus(order);
+
+						//发送短信给运营部
+						/*ShopSystemRule rule = cartService.getReluByRid(241);
+						try {
+							String text = MessageFormat.format(ImberryConfig.ORDER_UPDATE_STATUS_TEXT, "发货");
+							codeService.informShipping(rule.getRuleDesc(),text);
+						} catch (Exception e) {
+							System.out.println("订单换货发送消息失败!");
+						}*/
 
-					/*计算使用优惠券优惠的金额*/
-					Integer couponAmount = 0;
+						/*计算使用优惠券优惠的金额*/
+						Integer couponAmount = 0;
 
-					//修改优惠券状态
-					order=cartService.selectOrderInfoById(order);
-					String couponId=order.getCouponId();
-					if(couponId!=null && !couponId.equals("")){
-						CouponItem couponItem=new CouponItem();
-						couponItem.setCouponItemId(couponId);
-						couponItem.setCouponUseStatus(2);
-						couponItem.setCouponUseDate(new Date());
-						couponItemService.updateCouponItemById(couponItem);
+						//修改优惠券状态
+						order = cartService.selectOrderInfoById(order);
+						String couponId = order.getCouponId();
+						if (couponId != null && !couponId.equals("")) {
+							CouponItem couponItem = new CouponItem();
+							couponItem.setCouponItemId(couponId);
+							couponItem.setCouponUseStatus(2);
+							couponItem.setCouponUseDate(new Date());
+							couponItemService.updateCouponItemById(couponItem);
 
-						CouponItemDto couponItemDto = couponItemService.getCouponItemById(couponId);
-						if(couponItemDto.getCouponType() == 1){  //按照金额
-							couponAmount = couponItemDto.getCouponReduce()/100;
-						}else if(couponItemDto.getCouponType() == 2){  ////按照折扣
-							couponAmount = or.getSalesAmount() - or.getSalesAmount()/(couponItemDto.getCouponReduce()/100)/100;
+							CouponItemDto couponItemDto = couponItemService.getCouponItemById(couponId);
+							if (couponItemDto.getCouponType() == 1) {  //按照金额
+								couponAmount = couponItemDto.getCouponReduce() / 100;
+							} else if (couponItemDto.getCouponType() == 2) {  ////按照折扣
+								couponAmount = or.getSalesAmount() - or.getSalesAmount() / (couponItemDto.getCouponReduce() / 100) / 100;
+							}
 						}
-					}
 
-					/*----------计算积分-----------
-					*  x * (n1*3 - n1) + y * (n2*3)  - coupon*3 + 400
-					*/
-					List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderId(orderIdMD5);
-					Integer allIntegral = 0;  //总积分
-					for(int i=0;i<orderItemList.size();i++){
-						OrderItem orderItem = orderItemList.get(i);
-						Integer amount = orderItem.getItemProductDiscount() / 100;
-						if(orderItem.getItemProductType()==100){//类型为电动牙刷
-							Integer integral = amount * (orderItem.getItemNum()*3-orderItem.getItemNum());
-							allIntegral += integral;
-						}else{
-							Integer integral = amount * (orderItem.getItemNum()*3);
-							allIntegral += integral;
+						/*----------计算积分-----------
+						*  x * (n1*3 - n1) + y * (n2*3)  - coupon*3 + 400
+						*/
+						List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderId(orderIdMD5);
+						Integer allIntegral = 0;  //总积分
+						for (int i = 0; i < orderItemList.size(); i++) {
+							OrderItem orderItem = orderItemList.get(i);
+							Integer amount = orderItem.getItemProductDiscount() / 100;
+							if (orderItem.getItemProductType() == 100) {//类型为电动牙刷
+								Integer integral = amount * (orderItem.getItemNum() * 3 - orderItem.getItemNum());
+								allIntegral += integral;
+							} else {
+								Integer integral = amount * (orderItem.getItemNum() * 3);
+								allIntegral += integral;
+							}
 						}
-					}
-					if(couponAmount > 0){  //有优惠券减去优惠券的金额
-						allIntegral += -couponAmount*3;
-					}
-					ratFWLogger.error(this, "订单:"+ orderIdMD5 +"订单使用优惠卷金额:" + couponAmount +"所得积分为:"+allIntegral);
-					boolean flag = apparatusService.addStayIntegral(or.getSalesOpenid(),3,allIntegral,or.getSalesOrderid());
-					ratFWLogger.info("积分是否入账:"+ flag);
-					/*----------计算积分-----------*/
+						if (couponAmount > 0) {  //有优惠券减去优惠券的金额
+							allIntegral += -couponAmount * 3;
+						}
+						ratFWLogger.error(this, "订单:" + orderIdMD5 + "订单使用优惠卷金额:" + couponAmount + "所得积分为:" + allIntegral);
+						boolean flag = apparatusService.addStayIntegral(or.getSalesOpenid(), 3, allIntegral, or.getSalesOrderid());
+						ratFWLogger.info("积分是否入账:" + flag);
+						/*----------计算积分-----------*/
 
-					if (count < 1) {
-						resXml = "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[报文有误]]></return_msg></xml>";
-					}
+						if (count < 1) {
+							resXml = "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[报文有误]]></return_msg></xml>";
+						}
 
-					// 给订单的回调修改状态
-					try {
-						MQMessage message = new MQMessage();
-						message.setServiceToMessage(orderIdMD5);
-						message.setServiceOtherMessage(wpr.getTransactionId());
-						message.setServiceIsSend(2);			// 没有推送的信息
-						message.setServiceStatus(1); 			// 推送成功
-						message.setServiceHandlerObjectName("cartServiceImpl");
-						message.setServiceHandlerMethodName("supdateStateByOrderId");
-						message.setServiceType(1);
-						mQservice.insertMQMessage(message);
-					} catch (Exception e) {
-						// TODO: handle exception
-					}
-//System.out.println("===========pay 182  插入返利到mq=============="+count);
-					//rebackServices.loadSingleOrderReward(order);
-					
-					//添加到返利表
-					//rebackServices.loadSingleOrderReward(order);
-					// 给百胜推送信息
-					try {
-						MQMessage message = new MQMessage();
-						message.setServiceToMessage(orderIdMD5);
-						message.setServiceOtherMessage("efast.trade.new.add");
-						message.setServiceIsSend(2);			// 没有推送的信息
-						message.setServiceStatus(1); 			// 推送成功
-						message.setServiceType(1); 				// 添加订单信息
-						message.setServiceHandlerObjectName("efastOrderServiceImpl");
-						message.setServiceHandlerMethodName("addOrderInfoToEfast");
-						mQservice.insertMQMessage(message);
-					} catch (Exception e) {
-//System.out.println("===========pay 201  插入返利到百胜失败==============");
-					}
-					//推送消息到微信
-					DecimalFormat df=new DecimalFormat("0.00");
-					String payMoney = df.format((float)or.getSalesYetAmount()/100) + "元";
-					try {
-						sendMessageUtil.probationPaySuccess(
-								ResultInfo.PAYSUCCESS,
-								payMoney,
-								orderItemList.get(0).getItemProductName()+"...",
-								ResultInfo.sendRemark1,
-								order.getSalesOpenid(),
-								ResultInfo.ORDER_DETAIL+order.getSalesOrderid());
-					} catch (Exception e) {
-						System.out.println("推送支付成功消息失败!");
-					}
-//System.out.println("===========pay 201  插入返利到百胜完成==============");		
-					try {	//修改用户购买记录为已购买
-						memberService.updateIsBaughtByOpenid(wpr.getOpenid(), 2);
-						//更新用户绑定状态
-						Member member = memberService.getMemberByUserOpenId(order.getSalesOpenid());
-						if (member.getUserIsFlag()!= null && member.getUserIsFlag() == 1) {
-							member.setUserIsFlag(2);//终身绑定
-							homeService.updateMemberIsFlagByOpenid(member);
+						// 给订单的回调修改状态
+						try {
+							MQMessage message = new MQMessage();
+							message.setServiceToMessage(orderIdMD5);
+							message.setServiceOtherMessage(wpr.getTransactionId());
+							message.setServiceIsSend(2);            // 没有推送的信息
+							message.setServiceStatus(1);            // 推送成功
+							message.setServiceHandlerObjectName("cartServiceImpl");
+							message.setServiceHandlerMethodName("supdateStateByOrderId");
+							message.setServiceType(1);
+							mQservice.insertMQMessage(message);
+						} catch (Exception e) {
+							// TODO: handle exception
+						}
+	//System.out.println("===========pay 182  插入返利到mq=============="+count);
+						//rebackServices.loadSingleOrderReward(order);
+
+						//添加到返利表
+						//rebackServices.loadSingleOrderReward(order);
+						// 给百胜推送信息
+						try {
+							MQMessage message = new MQMessage();
+							message.setServiceToMessage(orderIdMD5);
+							message.setServiceOtherMessage("efast.trade.new.add");
+							message.setServiceIsSend(2);            // 没有推送的信息
+							message.setServiceStatus(1);            // 推送成功
+							message.setServiceType(1);                // 添加订单信息
+							message.setServiceHandlerObjectName("efastOrderServiceImpl");
+							message.setServiceHandlerMethodName("addOrderInfoToEfast");
+							mQservice.insertMQMessage(message);
+						} catch (Exception e) {
+	//System.out.println("===========pay 201  插入返利到百胜失败==============");
+						}
+						//推送消息到微信
+						DecimalFormat df = new DecimalFormat("0.00");
+						String payMoney = df.format((float) or.getSalesYetAmount() / 100) + "元";
+						try {
+							sendMessageUtil.probationPaySuccess(
+									ResultInfo.PAYSUCCESS,
+									payMoney,
+									orderItemList.get(0).getItemProductName() + "...",
+									ResultInfo.sendRemark1,
+									order.getSalesOpenid(),
+									ResultInfo.ORDER_DETAIL + order.getSalesOrderid());
+						} catch (Exception e) {
+							System.out.println("推送支付成功消息失败!");
+						}
+	//System.out.println("===========pay 201  插入返利到百胜完成==============");
+						try {    //修改用户购买记录为已购买
+							memberService.updateIsBaughtByOpenid(wpr.getOpenid(), 2);
+							//更新用户绑定状态
+							Member member = memberService.getMemberByUserOpenId(order.getSalesOpenid());
+							if (member.getUserIsFlag() != null && member.getUserIsFlag() == 1) {
+								member.setUserIsFlag(2);//终身绑定
+								homeService.updateMemberIsFlagByOpenid(member);
+							}
+							QrcodeResult qr = temporaryQrcodeService.applyTempQrcode(order.getSalesOpenid());//为用户生成二维码
+							inLongLogger.info("为用户-->" + order.getSalesOpenid() + ",生成二维码:" + qr.getQroceUrl());
+						} catch (Exception e) {
+							System.out.println("修改已购买状态和终身绑定失败!");
+							e.printStackTrace();
 						}
-						QrcodeResult qr = temporaryQrcodeService.applyTempQrcode(order.getSalesOpenid());//为用户生成二维码
-						inLongLogger.info("为用户-->" + order.getSalesOpenid() + ",生成二维码:" + qr.getQroceUrl());
-					} catch (Exception e) {
-						System.out.println("修改已购买状态和终身绑定失败!");
-						e.printStackTrace();
 					}
-					
 				} else {
 					resXml = "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[报文有误]]></return_msg></xml>";
 					ratFWLogger.error(this, "订单:" + orderIdMD5 + "支付成功,但是没有通过校验!");

+ 100 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/polyapi/ExternalDockPolyApiHandler.java

@@ -7,8 +7,10 @@ import com.iamberry.wechat.core.entity.order.Order;
 import com.iamberry.wechat.core.entity.order.OrderItem;
 import com.iamberry.wechat.core.entity.product.Product;
 import com.iamberry.wechat.core.entity.product.ProductColor;
+import com.iamberry.wechat.core.entity.receive.ChargerReceive;
 import com.iamberry.wechat.face.order.AdminOrderService;
 import com.iamberry.wechat.face.porduct.ProductService;
+import com.iamberry.wechat.face.receive.ChargReceiveService;
 import com.iamberry.wechat.tools.NameUtils;
 import com.iamberry.wechat.tools.ResultInfo;
 import com.iamberry.wechat.tools.SendMessageUtil;
@@ -45,6 +47,8 @@ public class ExternalDockPolyApiHandler {
     @Autowired
     private SendMessageUtil sendMessageUtil;
 
+    @Autowired
+    private ChargReceiveService chargReceiveService;
 
     /**
      * DES对称加密
@@ -196,6 +200,16 @@ public class ExternalDockPolyApiHandler {
                 logger.info("订单无法被转换为接口所需要的数据!");
             }
         }
+
+        /*加入领取充电器的订单--start*/
+//        ChargerReceive chargerReceive = new ChargerReceive();
+//        chargerReceive.setReceiveStatus(2);
+//        List<ChargerReceive> chargerReceiveList = chargReceiveService.getChargerReceiveList(chargerReceive);
+//        for (ChargerReceive cr : chargerReceiveList){
+//            orders.add(getReceive(cr));
+//        }
+        /*加入领取充电器的订单--end*/
+
         map.put("orders",orders);
         map.put("numtotalorder",orderNum);
         logger.info("------订单下载,返回订单个数:" + orderList.size() + "--------- 订单id:" + orderId +  "---------");
@@ -668,6 +682,92 @@ public class ExternalDockPolyApiHandler {
         return orderMap;
     }
 
+    /***
+     * 订单下载 拼接map -- 领取充电器
+     * 如果不用传参数请去掉,否则有可能会报错
+     * @param cr
+     * @return
+     */
+    private  Map<String,Object> getReceive(ChargerReceive cr){
+        String[] addressInfo = cr.getReceiveAddressInfo().split("-");
+        String town = "";  //获取街道
+
+        if(addressInfo.length > 3){
+            Integer qu = cr.getReceiveAddressInfo().indexOf(addressInfo[3]);
+            town = cr.getReceiveAddressInfo().substring(qu,cr.getReceiveAddressInfo().length());
+        }
+
+        Map<String,Object> orderMap = new HashMap<String,Object>();
+        orderMap.put("PlatOrderNo",cr.getReceiveOrderId()); //订单号
+        orderMap.put("tradeStatus","JH_02"); //订单状态
+        orderMap.put("tradeStatusdescription","等待发货");   //订单交易说明, 可选
+        orderMap.put("tradetime",sdf.format(cr.getReceiveCreateTime())); //订单生成时间  必选 //交易时间(格式:yyyy-MM-dd HH:mm:ss)
+        orderMap.put("payorderno","");  //支付单号
+        orderMap.put("country","CN");   //国家简称
+        orderMap.put("province",addressInfo[0]);    //省  必填
+        orderMap.put("city",addressInfo[1]);        //市 必填
+        orderMap.put("area",addressInfo[2]);        //区 必填
+        orderMap.put("town",town);
+        orderMap.put("address", cr.getReceiveAddressInfo());    //全部地址 必填
+        orderMap.put("zip",cr.getReceiveAddressPostnum());     //邮编
+        orderMap.put("phone",cr.getReceiveAddressTel());       //手机号码   必填
+        //orderMap.put("mobile","");
+        // orderMap.put("email","");
+
+        orderMap.put("customerremark","免费领取电动牙刷充电器");      //备注
+
+        //orderMap.put("sellerremark","");
+        orderMap.put("postfee",0);     //邮资
+        orderMap.put("goodsfee",0);    //货款金额
+        double yetAmount = cr.getReceivePostage().intValue() / 100;
+        double amount = cr.getReceivePostage().intValue() / 100;
+        orderMap.put("totalmoney",yetAmount);   //合计应收(针对卖家)
+        orderMap.put("favourablemoney",amount-yetAmount);        //订单总优惠金额
+        orderMap.put("commissionvalue",0);  //佣金
+        //orderMap.put("taxamount","");   //订单税费总额
+        //orderMap.put("tariffamount","");   //订单关税金额
+        // orderMap.put("addedvalueamount","");   //订单增值税金额
+        // orderMap.put("consumptiondutyamount","");   //订单消费税金额
+
+        orderMap.put("sendstyle",this.getSendstyle(cr.getReceivePostFirm()));   //货运方式  可选
+        //orderMap.put("qq","");
+        if(cr.getReceiveTransactionDate() != null){
+            orderMap.put("paytime",sdf.format(cr.getReceiveTransactionDate()));     //支付时间  ,必填 支付时间(格式:yyyy-MM-dd HH:mm:ss)
+        }
+        //orderMap.put("invoicetitle","");    //发票抬头
+        //orderMap.put("codservicefee","");   //纳税人识别号
+        //orderMap.put("couponprice",""); //货币类型
+        //orderMap.put("cardtype","");    //证件类型(身份证=JH_01,护照=JH_02,港澳通行证=JH_03)
+        //orderMap.put("idcard","");      //证件号码
+        //orderMap.put("idcardtruename","");      //证件真实姓名
+        orderMap.put("receivername",cr.getReceiveAddressName());      //收货人真实姓名
+        orderMap.put("nick",cr.getUserNickname());      //必填  买家昵称
+        //orderMap.put("whsecode","");      //商品所在仓库编号
+        //orderMap.put("IsHwgFlag","");      //是否为海外购(是=1;否=0)
+        orderMap.put("ShouldPayType","担保交易");      //必填  结算方式(可选值有:担保交易;银行收款;现金收款;货到付款;欠款记应收;客户预付款;多种结算)
+        List<Map<String,Object>> goodinfos = new ArrayList<>();
+
+
+//            Map<String,Object> orderItemMap = new HashMap<String,Object>();
+//            orderItemMap.put("ProductId",orderItem.getColorPolyCode()); //必填 平台商品ID或SKUID(SKUID优先)
+//            orderItemMap.put("suborderno",orderItem.getItemId());  //子订单号(若需要支持拆单发货,则必填)
+//            orderItemMap.put("tradegoodsno",orderItem.getColorPolyCode());    //必填  部商家编码或外部SKU编码(SKU编码优先)。注意,如果要与管家对接,这里一般返回管家的商品编码,作为平台的外部商家编码,与管家商品映射。
+//            orderItemMap.put("tradegoodsname",orderItem.getItemProductName());  //必填 商品交易名称
+//            orderItemMap.put("tradegoodsspec",orderItem.getProductColor());  //颜色    必填   商品交易规格
+//            orderItemMap.put("goodscount",orderItem.getItemNum());  //必填  商品数量  int
+//            double money = orderItem.getItemProductDiscount().intValue() / 100;
+//            orderItemMap.put("price",money);       //单价 必填  decimal
+//            orderItemMap.put("discountmoney",0);   //子订单优惠金额  decimal
+//            orderItemMap.put("taxamount",0);    //商品税费  decimal
+//            orderItemMap.put("refundStatus",this.getRefundStatus(order.getSalesStatus()));    //退款状态(没有退款=JH_07,买家已经申请退款等待卖家同意=JH_01,卖家已经同意退款等待买家退货=JH_02,买家已经退货等待卖家确认收货=JH_03,卖家拒绝退款=JH_04,退款关闭=JH_05,退款成功=JH_06,其他=JH_99)
+//            orderItemMap.put("Status",this.getOrderItemStatus(order.getSalesStatus()));      //子订单交易状态(其他=JH_99,等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05)
+//            orderItemMap.put("remark","");  //货品备注
+//            goodinfos.add(orderItemMap);
+
+
+        orderMap.put("goodinfos",goodinfos);
+        return orderMap;
+    }
 
     /**
      * 设置查询的订单状态

+ 243 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/receive/ChargReceiveHandler.java

@@ -0,0 +1,243 @@
+package com.iamberry.wechat.handles.receive;
+
+import com.iamberry.wechat.core.entity.ResultMsg;
+import com.iamberry.wechat.core.entity.WechatUtils;
+import com.iamberry.wechat.core.entity.cart.SendPayDto;
+import com.iamberry.wechat.core.entity.member.Member;
+import com.iamberry.wechat.core.entity.page.PageRequest;
+import com.iamberry.wechat.core.entity.page.PagedResult;
+import com.iamberry.wechat.core.entity.pay.PayResult;
+import com.iamberry.wechat.core.entity.product.ProductColor;
+import com.iamberry.wechat.core.entity.receive.ChargerReceive;
+import com.iamberry.wechat.face.admin.SystemService;
+import com.iamberry.wechat.face.member.MemberService;
+import com.iamberry.wechat.face.pay.PayService;
+import com.iamberry.wechat.face.porduct.ProductColorService;
+import com.iamberry.wechat.face.receive.ChargReceiveService;
+import com.iamberry.wechat.tools.NameUtils;
+import com.iamberry.wechat.tools.OrderNOUtil;
+import com.iamberry.wechat.tools.ResultInfo;
+import com.iamberry.wechat.utils.StitchAttrUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author wxm
+ * Class Description: 免费领取充电器hander
+ */
+@Controller
+//@RequestMapping("/wechat/receive")
+@RequestMapping("/receive")
+public class ChargReceiveHandler {
+
+	@Autowired
+	private ChargReceiveService chargReceiveService;
+	@Autowired
+	private PayService payService;
+	@Autowired
+	private SystemService systemService;
+	@Autowired
+	private MemberService memberService;
+	@Autowired
+	private ProductColorService productColorService;
+
+
+	private static String myOpenId = "oZ9pv02WMRQgyDVRY1a_daYecwHI";
+
+	/**
+	 *
+	 * 查询免费领取列表页面
+	 * @param request
+	 * @param pageSize
+	 * @param pageNO
+	 * @return ResultMsg
+	 * @throws Exception
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/select_receive")
+	public  ResultMsg selectReceive(HttpServletRequest request,
+									  @RequestParam(value= "pageSize",defaultValue= "20" ,required=false) Integer pageSize,
+									  @RequestParam(value = "pageNO", defaultValue = "1") Integer pageNO,
+									  @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum
+									 ) throws Exception {
+		ResultMsg remsg=new ResultMsg();
+		//String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
+		String openId  = myOpenId;
+
+		ChargerReceive chargerReceive = new ChargerReceive();
+		chargerReceive.setReceiveOpenId(openId);
+
+		// 封装请求数据
+		PageRequest<ChargerReceive> pageRequest = new PageRequest<>(chargerReceive, pageNO, pageSize, totalNum == 0);
+		// 查询订单列表
+		PagedResult<ChargerReceive> result = chargReceiveService.listChargerReceive(pageRequest);
+		if (totalNum != 0) {
+			result.setTotal(totalNum);
+		}
+		StitchAttrUtil.setPage(result);
+
+		/*验证是否可以领取*/
+		Boolean isReceive = false;
+		ChargerReceive verificaCR = new ChargerReceive();
+		verificaCR.setReceiveOpenId(openId);
+		verificaCR.setReceiveCreateTime(new Date());
+		List<ChargerReceive> chargerReceiveList = chargReceiveService.getChargerReceiveList(verificaCR);
+		if(chargerReceiveList == null || chargerReceiveList.size() < 1){
+			isReceive = true;
+		}
+
+		Map<String,Object> map = new HashMap<String, Object>();
+		map.put("list",result.getDataList());
+		map.put("isReceive",isReceive);
+
+		remsg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
+		remsg.setResultCode(ResultInfo.SUCCESSCODE);
+		remsg.setStatus(true);
+		remsg.setData(map);
+		return remsg;
+	}
+
+	/**
+	 *
+	 * 领取免费充电器
+	 * @param request
+	 * @return ResultMsg
+	 * @throws Exception
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/charger_receive")
+	public  ResultMsg chargerReceive(HttpServletRequest request,ChargerReceive chargerReceive) throws Exception {
+		ResultMsg remsg=new ResultMsg();
+		//String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
+
+		String openId  = myOpenId;
+		Member member = memberService.getMemberByUserOpenId(openId); // 当前用户
+		chargerReceive.setReceiveOpenId(openId);
+
+		remsg.setResultCode(ResultInfo.ERRORCODE);
+		remsg.setStatus(false);
+		if(chargerReceive.getColorId() == null || chargerReceive.getColorName() == null || "".equals(chargerReceive.getColorName())){
+			remsg.setMessage("请选择颜色");
+			return remsg;
+		}
+		if(chargerReceive.getReceiveAddressInfo() == null || "".equals(chargerReceive.getReceiveAddressInfo()) ||
+				chargerReceive.getReceiveAddressName() == null || "".equals(chargerReceive.getReceiveAddressName()) ||
+				chargerReceive.getReceiveAddressTel() == null || "".equals(chargerReceive.getReceiveAddressTel())
+				){
+			remsg.setMessage("请选择收货地址");
+			return remsg;
+		}
+
+		/*验证今年是否已经领取过了*/
+		ChargerReceive verificaCR = new ChargerReceive();
+		verificaCR.setReceiveOpenId(openId);
+		verificaCR.setReceiveCreateTime(new Date());
+		List<ChargerReceive> chargerReceiveList = chargReceiveService.getChargerReceiveList(verificaCR);
+		if(chargerReceiveList == null || chargerReceiveList.size() < 1){
+			String orderId = OrderNOUtil.createOrderCode(member.getUserId());
+			chargerReceive.setReceiveOrderId("mflq" + orderId);
+
+			Integer num = Integer.valueOf(systemService.selectOneShopRuleById(253).getRuleNum().intValue());
+			if(num == null){
+				num = 1000;
+			}
+			chargerReceive.setReceivePostage(num);
+			chargerReceive.setReceiveStatus(1);	//1:代付款  2:已付款 3:已发货
+			Integer flag = chargReceiveService.insert(chargerReceive);
+			if(flag < 1){
+				System.out.println("=========插入信息失败======");
+				remsg.setMessage("领取失败!请稍后重试!");
+				remsg.setResultCode(ResultInfo.ERRORCODE);
+				remsg.setStatus(false);
+				return remsg;
+			}
+
+			SendPayDto dto = new SendPayDto();
+			dto.setSuccess(false);
+			// 发起支付
+			PayResult result = payService.requestPay(chargerReceive.getReceiveOpenId(), chargerReceive.getReceiveOrderId(), chargerReceive.getReceivePostage(), "上朵领取充电器的邮费", NameUtils.getConfig("WECHAT_ORDER_BACK"));
+			if (result.isPaySuccess()) {
+				dto.setInfo(result.getPayData());
+				dto.setSuccess(true);
+				dto.setOrderId(chargerReceive.getReceiveOrderId());
+				remsg.setData(dto);
+			} else {
+				dto.setInfo(result.getPayData());
+				dto.setOrderId(chargerReceive.getReceiveOrderId());
+				remsg.setResultCode(ResultInfo.ERRORCODE);
+				remsg.setMessage(NameUtils.getConfig("ERRORINFO"));
+				remsg.setData(dto);
+				remsg.setStatus(false);
+				return remsg;
+			}
+			remsg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
+			remsg.setResultCode(ResultInfo.SUCCESSCODE);
+			remsg.setStatus(true);
+			return remsg;
+		}else{
+			remsg.setMessage("您今年已经领取过一次了");
+			remsg.setResultCode(ResultInfo.ERRORCODE);
+			remsg.setStatus(false);
+			return remsg;
+		}
+	}
+
+	/**
+	 *
+	 * 查询是否支付成功
+	 * @param request
+	 * @return ResultMsg
+	 * @throws Exception
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/select_pay")
+	public  ResultMsg selectPay(HttpServletRequest request,String orderId) throws Exception {
+		ResultMsg remsg=new ResultMsg();
+
+		if(orderId == null){
+			remsg.setMessage("查询出错!请稍后重试!");
+			remsg.setResultCode(ResultInfo.ERRORCODE);
+			remsg.setStatus(false);
+			return remsg;
+		}
+
+		ChargerReceive chargerReceive = chargReceiveService.selectByOrderId(orderId);
+
+		remsg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
+		remsg.setResultCode(ResultInfo.SUCCESSCODE);
+		remsg.setStatus(true);
+		remsg.setData(chargerReceive);
+		return remsg;
+	}
+
+	/**
+	 *
+	 * 查询牙刷的所有颜色
+	 * @param request
+	 * @return ResultMsg
+	 * @throws Exception
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/select_color")
+	public  ResultMsg selectColor(HttpServletRequest request,
+								  @RequestParam(value = "productId", defaultValue = "61") Integer productId) throws Exception {
+		ResultMsg remsg=new ResultMsg();
+		List<ProductColor> colorList = productColorService.getLeaseProductColor(productId);
+		remsg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
+		remsg.setResultCode(ResultInfo.SUCCESSCODE);
+		remsg.setStatus(true);
+		remsg.setData(colorList);
+		return remsg;
+	}
+
+
+}

+ 10 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/utils/StitchAttrUtil.java

@@ -98,6 +98,16 @@ public class StitchAttrUtil {
     }
 
     /**
+     * 给page赋值
+     * @param pagedResult
+     */
+    public static void setPage(PagedResult<?> pagedResult){
+        if(pagedResult.getTotal() != 0) {
+            pagedResult.setPages((int) Math.ceil((double)pagedResult.getTotal()/pagedResult.getPageSize()));
+        }
+    }
+
+    /**
      * 添加组装时被过滤的属性名称
      * @param pros
      */

+ 6 - 1
tooth-wechat-web/src/main/resources/iamberry-wechat-service-mybatis.xml

@@ -134,6 +134,9 @@
 		<typeAlias type="com.iamberry.wechat.core.entity.wx.WechatShare" alias="WechatShare"/>
 		<typeAlias type="com.iamberry.wechat.core.entity.order.NumberBacklogDto" alias="NumberBacklogDto"/>
 
+
+		<typeAlias type="com.iamberry.wechat.core.entity.receive.ChargerReceive" alias="ChargerReceive"/>
+
 		<!-- 【门店关注统计报表类】 -->
 		<typeAlias type="com.iamberry.wechat.core.entity.statictics.AttentionInfo" alias="AttentionInfo"/>
 		<typeAlias type="com.iamberry.wechat.core.entity.statictics.MarketInfo" alias="MarketInfo"/>
@@ -306,7 +309,9 @@
 		<mapper resource="com/iamberry/wechat/service/mapper/wdRelationMapper.xml"/>
 		<mapper resource="com/iamberry/wechat/service/mapper/wechatShareMapper.xml"/>
 		<mapper resource="com/iamberry/wechat/service/mapper/withdrawMapper.xml"/>
-		
+
+		<mapper resource="com/iamberry/wechat/service/mapper/chargerReceiveMapper.xml"/>
+
 		<!-- 试用订单流程mapper -->
 		<mapper resource="com/iamberry/wechat/service/mapper/probationShopOrderMapper.xml"/>
 		<mapper resource="com/iamberry/wechat/service/mapper/adminProbationOrderMapper.xml"/>

+ 1 - 1
tooth-wechat-web/src/main/resources/iamberry-wechat-web-ioc.xml

@@ -51,7 +51,7 @@
 	<bean id="loadResultInfo" class="com.iamberry.wechat.tools.loadResultUtil" lazy-init="false"></bean>
 	
 	<!-- 开启注解启动定时器  -->
-    <task:annotation-driven/>
+    <!--<task:annotation-driven/>-->
     
     <!-- 将30天后奖励积分的定时任务的xml引入-->
 	<import resource="classpath:iamberry-wechat-service-orderTesk.xml"></import>