admin
2019-10-18 7abe4e6827998c56fafe53679addc5d78c6e45c0
同店铺订单,同商品订单高危标识添加
6个文件已修改
235 ■■■■ 已修改文件
fanli/pom.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/ExtractAdminController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/CommonOrderCountMapper.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderCountMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/count/CommonOrderCountServiceImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/order/CommonOrderCountService.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/pom.xml
@@ -134,24 +134,6 @@
            <scope>system</scope>
            <systemPath>${basedir}/libs/vpush-server-sdk-2.0.jar</systemPath>
        </dependency>
        <!-- 唯品会 -->
        <dependency>
            <groupId>vop-sdk</groupId>
            <artifactId>vop-sdk</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/libs/vop-sdk-1.0.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>osp-sdk</groupId>
            <artifactId>osp-sdk</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/libs/osp-sdk-1.0.jar</systemPath>
        </dependency>
    </dependencies>
fanli/src/main/java/com/yeshi/fanli/controller/admin/ExtractAdminController.java
@@ -50,6 +50,7 @@
import com.yeshi.fanli.service.inter.money.extract.ExtractAuditRecordService;
import com.yeshi.fanli.service.inter.money.extract.ExtractCountService;
import com.yeshi.fanli.service.inter.money.extract.ExtractService;
import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
import com.yeshi.fanli.service.inter.push.PushRecordService;
@@ -105,6 +106,9 @@
    @Resource
    private UserInfoExtraService userInfoExtraService;
    @Resource
    private CommonOrderCountService commonOrderCountService;
    /**
     * 
@@ -440,7 +444,26 @@
                    }
                    record.setExtraInfoStr(desc.toString());
                }
                if (warnLevel == 0) {
                    // 查询同店铺商品,同商品订单超过一定数量的
                    List<Integer> typeList = new ArrayList<>();
                    typeList.add(HongBaoV2.TYPE_ZIGOU);
                    long sameGoodsOrderCount = commonOrderCountService.countSameGoodsOrderByUidAndHongBaoType(typeList,
                            record.getExtract().getUserInfo().getId(),
                            Integer.parseInt(configService.get("admin_min_same_goods_order_count")));
                    long sameShopOrderCount = commonOrderCountService.countSameShopOrderByUidAndHongBaoType(typeList,
                            record.getExtract().getUserInfo().getId(),
                            Integer.parseInt(configService.get("admin_min_same_shop_order_count")));
                    if (sameGoodsOrderCount > 0 || sameShopOrderCount > 0) {
                        warnLevel = 3;
                        record.setExtraInfoStr(
                                String.format("同店铺:%s   同商品:%s", sameShopOrderCount, sameGoodsOrderCount));
                    }
                }
                record.setWarnLevel(warnLevel);
            }
            int count = extractAuditRecordService.getMyAuditedTimeSlotCount(key, state, null, days);
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/CommonOrderCountMapper.java
@@ -8,59 +8,82 @@
import com.yeshi.fanli.dto.ChartTDO;
public interface CommonOrderCountMapper {
    /**
     * 当前各个状态订单数
     * @param state 状态
     *
     * @param state
     *            状态
     * @return
     */
    Long countByState(@Param("state")Integer state);
    Long countByState(@Param("state") Integer state);
    /**
     *  统计所有订单
     * 统计所有订单
     *
     * @param channel
     * @return
     */
    List<ChartTDO> countOrderNumber(@Param("dateType") Integer dateType, @Param("year") String year,
            @Param("startTime")String startTime, @Param("endTime")String endTime,@Param("sourceType") int sourceType);
    List<ChartTDO> countOrderNumber(@Param("dateType") Integer dateType, @Param("year") String year,
            @Param("startTime") String startTime, @Param("endTime") String endTime,
            @Param("sourceType") int sourceType);
    /**
     * 奖金统计
     * 
     * @param uid
     * @return
     */
    Map<String, Object> countOrderNumberBySettleTime(@Param("uid")Long uid, @Param("state")Integer state,
            @Param("day")Integer day);
    Map<String, Object> countOrderNumberBySettleTime(@Param("uid") Long uid, @Param("state") Integer state,
            @Param("day") Integer day);
    /**
     *   统计自购、分享有效订单数量
     * 统计自购、分享有效订单数量
     * 
     * @param uid
     * @return
     */
    long countValidOrder(@Param("uid")Long uid);
    long countValidOrder(@Param("uid") Long uid);
    /**
     * 根据订单号 查询金额
     *
     * @param orderNo
     * @return
     */
    BigDecimal getMoneyByOrderNo(@Param("orderNo")String orderNo);
    BigDecimal getMoneyByOrderNo(@Param("orderNo") String orderNo);
    /**
     * 统计已到账返利订单
     *
     * @param uid
     * @param dateTime
     * @return
     */
    long countValidOrderByDate(@Param("uid")Long uid, @Param("dateTime")String dateTime);
    long countValidOrderByDate(@Param("uid") Long uid, @Param("dateTime") String dateTime);
    /**
     * 查询用户在同一店铺购买超过一定数量商品的店铺数量
     *
     * @param typeList
     *            -红包类型
     * @param uid
     *            -用户ID
     * @param minSameShopGoodsCount
     *            -同一店铺买的最小订单数
     * @return
     */
    long countSameShopOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid,
            @Param("minSameShopGoodsCount") int minSameShopGoodsCount);
    
    /**
     * 查询用户购买相同商品超过一定的订单数量的商品数量
     * @param typeList
     * @param uid
     * @param minSameGoodsOrderCount
     * @return
     */
    long countSameGoodsOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid,
            @Param("minSameGoodsOrderCount") int minSameGoodsOrderCount);
}
fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderCountMapper.xml
@@ -182,4 +182,44 @@
             WHERE co.`co_uid` = #{uid} AND v2.`hb_type` = 1 
                   AND v2.`hb_state` = 3 AND  AND co.`co_third_create_time` <![CDATA[>]]> #{dateTime})A
    </select>
    <select id="countSameShopOrderByUidAndHongBaoType" resultType="Long">
        SELECT COUNT(*) FROM
        (
            SELECT a.*,COUNT(*) AS num FROM
            (
                SELECT co.*,COUNT(*) AS c,g.`cog_shop_id` AS shopId FROM yeshi_ec_common_order co LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` LEFT JOIN yeshi_ec_common_order_goods g  ON co.`co_order_goods_id`=g.`cog_id`  WHERE  co.`co_uid`=#{uid}
                <if test="typeList!=null">
                    <foreach collection="typeList" item="type" open=" and (" separator=" or " close=")">
                        v.`hb_type`=#{type}
                    </foreach>
                </if>
                AND v.`hb_id` IS NOT NULL
                AND (co.`co_state`=1 OR  co.`co_state`=2 OR co.`co_state`=3)
                AND g.`cog_shop_id`>0 GROUP BY co.`co_order_no`,co.`co_source_type`
            ) a GROUP BY a.shopId
        ) b WHERE b.num>=#{minSameShopGoodsCount};
    </select>
    <select id="countSameGoodsOrderByUidAndHongBaoType" resultType="Long">
        SELECT COUNT(*) FROM
        (
            SELECT a.goodsId,COUNT(*) AS c FROM
            (
                SELECT co.`co_order_goods_id` AS goodsId,co.`co_order_no` FROM yeshi_ec_common_order co LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` LEFT JOIN yeshi_ec_common_order_goods g  ON co.`co_order_goods_id`=g.`cog_id`  WHERE co.`co_uid`=#{uid}
                <if test="typeList!=null">
                    <foreach collection="typeList" item="type" open=" and (" separator=" or " close=")">
                        v.`hb_type`=#{type}
                    </foreach>
                </if>
                AND v.`hb_id` IS NOT NULL
                AND (co.`co_state`=1 OR  co.`co_state`=2 OR co.`co_state`=3)
                GROUP BY co.`co_order_no`,co.`co_order_goods_id`
            ) a GROUP BY goodsId
        ) b WHERE b.c>=#{minSameGoodsOrderCount}
    </select>
</mapper>
fanli/src/main/java/com/yeshi/fanli/service/impl/count/CommonOrderCountServiceImpl.java
@@ -31,7 +31,7 @@
    @Resource
    private JDOrderItemMapper jdOrderItemMapper;
    @Resource
    private PDDOrderMapper pddOrderMapper;
@@ -43,8 +43,7 @@
        return commonOrderCountMapper.countByState(state);
    }
    public List<ChartTDO> dayFactory(String startTime, String endTime, List<ChartTDO> list)
            throws Exception {
    public List<ChartTDO> dayFactory(String startTime, String endTime, List<ChartTDO> list) throws Exception {
        List<ChartTDO> listObject = new ArrayList<ChartTDO>();
        if (startTime.equals(endTime)) {
            ChartTDO chartTDO = list.get(0);
@@ -96,7 +95,7 @@
            String total = null;
            for (int j = 0; j < list.size(); j++) {
                ChartTDO chartTDO = list.get(j);
                String month =chartTDO.getShowDate();
                String month = chartTDO.getShowDate();
                if ((i + "").equalsIgnoreCase(month) || i == Integer.parseInt(month)) {
                    total = chartTDO.getShowValue();
                    break;
@@ -106,7 +105,7 @@
            if (total == null) {
                total = "0";
            }
            ChartTDO chartTDO = new ChartTDO();
            chartTDO.setShowValue(total);
            if (i < 10) {
@@ -133,14 +132,14 @@
    }
    @Override
    public List<ChartTDO> getTrackAccuracyRate(Integer dateType, String year, String startTime,
            String endTime, int sourceType) throws Exception {
    public List<ChartTDO> getTrackAccuracyRate(Integer dateType, String year, String startTime, String endTime,
            int sourceType) throws Exception {
        List<ChartTDO> result_list = null;
        // 用户订单
        List<ChartTDO> listTotal = commonOrderCountMapper.countOrderNumber(dateType, year, startTime,
                endTime, sourceType);
        List<ChartTDO> listTotal = commonOrderCountMapper.countOrderNumber(dateType, year, startTime, endTime,
                sourceType);
        if (listTotal == null || listTotal.size() == 0) {
            return result_list;
        }
@@ -205,14 +204,14 @@
    }
    @Override
    public List<ChartTDO> countWeiQaunOrderMoney(Integer dateType, String year, String startTime,
            String endTime) throws Exception {
    public List<ChartTDO> countWeiQaunOrderMoney(Integer dateType, String year, String startTime, String endTime)
            throws Exception {
        return taoBaoWeiQuanOrderMapper.countWeiQaunOrderMoney(dateType, year, startTime, endTime);
    }
    @Override
    public List<ChartTDO> countWeiQaunOrderNumber(Integer dateType, String year, String startTime,
            String endTime) throws Exception {
    public List<ChartTDO> countWeiQaunOrderNumber(Integer dateType, String year, String startTime, String endTime)
            throws Exception {
        return taoBaoWeiQuanOrderMapper.countWeiQaunOrderNumber(dateType, year, startTime, endTime);
    }
@@ -242,4 +241,14 @@
        return commonOrderCountMapper.countValidOrderByDate(uid, dateTime);
    }
    @Override
    public long countSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount) {
        return commonOrderCountMapper.countSameShopOrderByUidAndHongBaoType(typeList, uid, minSameShopGoodsCount);
    }
    @Override
    public long countSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount) {
        return commonOrderCountMapper.countSameGoodsOrderByUidAndHongBaoType(typeList, uid, minSameGoodsOrderCount);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/order/CommonOrderCountService.java
@@ -4,28 +4,33 @@
import java.util.List;
import java.util.Map;
import com.yeshi.fanli.dto.ChartTDO;
import org.apache.ibatis.annotations.Param;
import com.yeshi.fanli.dto.ChartTDO;
public interface CommonOrderCountService {
    /**
     * 当前各个状态订单数
     * @param state 状态
     *
     * @param state
     *            状态
     * @return
     */
    public Long countByState(Integer state);
    /**
     *  统计所有订单
     * 统计所有订单
     *
     * @param channel
     * @return
     */
    public List<ChartTDO> getTrackAccuracyRate(Integer dateType, String year, String startTime,
            String endTime,int sourceType) throws Exception;
    public List<ChartTDO> getTrackAccuracyRate(Integer dateType, String year, String startTime, String endTime,
            int sourceType) throws Exception;
    /**
     * 统计总金额
     *
     * @param dateType
     * @param year
     * @param startTime
@@ -33,11 +38,12 @@
     * @return
     * @throws Exception
     */
    public List<ChartTDO> countWeiQaunOrderMoney(Integer dateType, String year, String startTime,
            String endTime)    throws Exception;
    public List<ChartTDO> countWeiQaunOrderMoney(Integer dateType, String year, String startTime, String endTime)
            throws Exception;
    /**
     * 统计总个数
     *
     * @param dateType
     * @param year
     * @param startTime
@@ -50,6 +56,7 @@
    /**
     * 根据结算时间统计
     *
     * @param uid
     * @param state
     * @param day
@@ -60,25 +67,50 @@
    /**
     * 根据结算时间筛选 上个月已结算的订订单数量
     *
     * @param uid
     * @return
     */
    public Map<String, Object> lastMonthSettleOrderNumber(Long uid);
    /**
     *  根据订单号  统计奖励券加成金额
     * 根据订单号 统计奖励券加成金额
     *
     * @param orderNo
     * @return
     */
    BigDecimal getMoneyByOrderNo(String orderNo);
    /**
     * 统计已到账返利订单
     *
     * @param uid
     * @param dateTime
     * @return
     */
    public long countValidOrderByDate(Long uid, String dateTime);
    /**
     * 查询用户在同一店铺购买超过一定数量商品的店铺数量
     *
     * @param typeList
     *            -红包类型
     * @param uid
     *            -用户ID
     * @param minSameShopGoodsCount
     *            -同一店铺买的最小订单数
     * @return
     */
    long countSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount);
    /**
     * 查询用户购买相同商品超过一定的订单数量的商品数量
     *
     * @param typeList
     * @param uid
     * @param minSameGoodsOrderCount
     * @return
     */
    long countSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount);
}