喻健
2018-11-20 2d600eb3ef53994a9f74c2c00acb7101eaf07234
迁移订单丢失
5个文件已修改
284 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/admin/LostOrderAdminController.java 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/LostOrderMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/order/LostOrderMapper.xml 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/order/LostOrderService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/LostOrderAdminController.java
@@ -2,20 +2,25 @@
import java.io.PrintWriter;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.entity.bus.user.LostOrder;
import com.yeshi.fanli.entity.bus.user.Order;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.service.inter.order.LostOrderService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.GsonUtil;
import org.yeshi.utils.JsonUtil;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("admin/new/api/v1/lostOrder")
@@ -66,4 +71,147 @@
        out.print(JsonUtil.loadTrueResult(""));
    }
    /**
     * 新版后台 列表查询
     * @param callback
     * @param pageIndex
     * @param key
     * @param out
     */
    @RequestMapping("query")
    public void query(String callback, Integer pageIndex, Integer pageSize, String key, Integer state,
            Integer handleType, PrintWriter out) {
        if (pageIndex == null || pageIndex < 0){
            pageIndex = 1;
        }
        if (pageSize == null || pageSize < 1) {
            pageSize = Constant.PAGE_SIZE;
        }
        try {
            List<LostOrder> list = lostOrderService.listQuery((pageIndex - 1) * pageSize, pageSize, key, state, handleType);
            if (list == null || list.size() == 0) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无更多数据"));
                return;
            }
            for (LostOrder lostOrder: list) {
                Order order = lostOrder.getOrder();
                if (order == null) {
                    lostOrder.setOrder(new Order());
                }
                UserInfo userInfo = lostOrder.getUserInfo();
                if (userInfo == null) {
                    lostOrder.setUserInfo(new UserInfo());
                } else {
                    Map<String, Object> countData = lostOrderService.countByUid(userInfo.getId());
                    lostOrder.setTotal(Integer.parseInt(countData.get("total")+""));
                    lostOrder.setTotalPass(Integer.parseInt(countData.get("totalPass")+""));
                    lostOrder.setTotalReject(Integer.parseInt(countData.get("totalReject")+""));
                }
            }
            long count = lostOrderService.countQuery(key, state, handleType);
            int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
            PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
            GsonBuilder gsonBuilder = new GsonBuilder();
            gsonBuilder.serializeNulls();
            Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
            JSONObject data = new JSONObject();
            data.put("pe", pe);
            data.put("result_list", gson.toJson(list));
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
            e.printStackTrace();
        }
    }
    /**
     *  新版后台   通过
     * @param callback
     * @param id
     * @param out
     */
    @RequestMapping("passOrder")
    public void passOrder(String callback, Long id, PrintWriter out) {
        if (id == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("ID不能为空"));
            return;
        }
        try {
            LostOrder lostOrder = lostOrderService.getOne(id);
            if (lostOrder == null) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("不存在该查询订单"));
                return;
            }
            if (lostOrder.getState() != 0) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该订单已处理"));
                return;
            }
            lostOrderService.pass(lostOrder);
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("操作成功"));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败"));
            e.printStackTrace();
        }
    }
    /**
     *  新版后台 拒绝
     * @param callback
     * @param id
     * @param reason
     * @param out
     */
    @RequestMapping("rejectOrder")
    public void rejectOrder(String callback, Long id, String reason, PrintWriter out) {
        if (id == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("ID不能为空"));
            return;
        }
        try {
            LostOrder lostOrder = lostOrderService.getOne(id);
            if (lostOrder == null) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("不存在该查询订单"));
                return;
            }
            if (lostOrder.getState() != 0) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该订单已处理"));
                return;
            }
            lostOrder.setRemake(reason);
            lostOrderService.reject(lostOrder);
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("操作成功"));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败"));
            e.printStackTrace();
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/LostOrderMapper.java
@@ -1,6 +1,9 @@
package com.yeshi.fanli.dao.mybatis.order;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.yeshi.fanli.entity.bus.user.LostOrder;
@@ -15,4 +18,23 @@
     * @return
     */
    List<LostOrder> selectByOrderId(String orderId);
    /**
     * 统计用户申诉次数
     * @param uid
     * @return
     */
    Map<String, Object> countByUid(@Param("uid") Long uid);
    /**
     * 后端列表查询
     * @param start
     * @param count
     * @param key
     * @return
     */
    List<LostOrder> listQuery(@Param("start") long start, @Param("count") int count, @Param("key") String key,
            @Param("state") Integer state, @Param("handleType") Integer handleType);
    long countQuery(@Param("key") String key, @Param("state") Integer state, @Param("handleType") Integer handleType);
}
fanli/src/main/java/com/yeshi/fanli/mapping/order/LostOrderMapper.xml
@@ -22,6 +22,24 @@
            <id column="oid" property="id" jdbcType="BIGINT" />
        </association>
    </resultMap>
    <resultMap id="AllResultMap" type="com.yeshi.fanli.entity.bus.user.LostOrder">
        <id column="id" property="id" jdbcType="BIGINT" />
        <result column="orderId" property="orderId" jdbcType="VARCHAR" />
        <result column="type" property="type" jdbcType="INTEGER" />
        <result column="state" property="state" jdbcType="INTEGER" />
        <result column="createTime" property="createTime" jdbcType="BIGINT" />
        <result column="handleTime" property="handleTime" jdbcType="BIGINT" />
        <result column="remake" property="remake" jdbcType="VARCHAR" />
        <result column="judge" property="judge" jdbcType="VARCHAR" />
        <result column="result_code" property="resultCode" jdbcType="INTEGER" />
        <association property="userInfo" column="uid"
              select="com.yeshi.fanli.dao.mybatis.UserInfoMapper.selectByPKey"/>
        <association property="order" column="oid"
                 select="com.yeshi.fanli.dao.mybatis.order.OrderMapper.selectByPrimaryKey">
        </association>
    </resultMap>
    <select id="selectByOrderId" resultMap="BaseResultMap"
        parameterType="java.lang.String">
@@ -44,4 +62,51 @@
        </set>
        where id = #{id,jdbcType=BIGINT}
    </update>
    <select id="countByUid" resultType="java.util.HashMap">
       SELECT IFNULL(COUNT(id), 0) AS total,IFNULL(SUM(CASE WHEN state = 1 THEN 1 ELSE 0 END),0) AS totalPass,
               IFNULL(SUM(CASE WHEN state = 2 THEN 1 ELSE 0 END),0) AS totalReject
        FROM yeshi_ec_lost_order  WHERE  uid = #{uid};
    </select>
      <select id="listQuery" resultMap="AllResultMap">
        SELECT d.* FROM yeshi_ec_lost_order d
              left join  yeshi_ec_user u on d.uid = u.id
        WHERE 1=1
           <if test='key != null and key != ""'>
                  AND (d.orderId like '%${key}%' or d.uid like '%${key}%' or u.nick_name like '%${key}%')
           </if>
           <if test='state != null'>
                  AND d.state = #{state}
           </if>
           <if test='handleType != null and handleType == 0'>
                  AND d.state = 0
           </if>
            <if test='handleType != null and handleType != 0'>
                  AND (d.state = 1 or d.state = 2)
           </if>
           ORDER BY d.createTime desc
        LIMIT ${start},${count}
   </select>
   <select id="countQuery" resultType="java.lang.Long">
        SELECT  IFNULL(count(d.id),0) FROM yeshi_ec_lost_order d
          left join  yeshi_ec_user u on d.uid = u.id
        WHERE 1=1
           <if test='key != null and key != ""'>
                  AND (d.orderId like '%${key}%' or d.uid like '%${key}%' or u.nick_name like '%${key}%')
           </if>
           <if test='state != null'>
                  AND d.state = #{state}
           </if>
           <if test='handleType != null and handleType == 0'>
                  AND d.state = 0
           </if>
            <if test='handleType != null and handleType != 0'>
                  AND (d.state = 1 or d.state = 2)
           </if>
    </select>
</mapper>
fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java
@@ -2,6 +2,7 @@
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;
import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
@@ -251,4 +252,25 @@
        lostOrderDao.update("delete from LostOrder lo where lo.userInfo.id=?", new Serializable[] { uid });
    }
    @Override
    public Map<String, Object> countByUid(long uid) {
        return lostOrderMapper.countByUid(uid);
    }
    /**
     * 后端列表查询
     * @param start
     * @param count
     * @param key
     * @return
     */
    @Override
    public List<LostOrder> listQuery(long start, int count, String key,    Integer state, Integer handleType) {
        return lostOrderMapper.listQuery(start, count, key, state, handleType);
    }
    @Override
    public long countQuery(String key, Integer state, Integer handleType) {
        return lostOrderMapper.countQuery(key, state, handleType);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/order/LostOrderService.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.service.inter.order;
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import com.yeshi.fanli.entity.bus.user.LostOrder;
@@ -72,4 +73,24 @@
     */
    void deleteLostOrderByUid(long uid);
    /**
     * 统计用户申诉次数
     * @param uid
     * @return
     */
    public Map<String, Object>  countByUid(long uid);
    /**
     * 后端查询
     * @param start
     * @param count
     * @param key
     * @param state
     * @param handleType
     * @return
     */
    public List<LostOrder> listQuery(long start, int count, String key, Integer state, Integer handleType);
    public long countQuery(String key, Integer state, Integer handleType);
}