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); }