| | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("更新失败")); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 订单跟踪准确率(板栗快省用户订单/淘宝联盟订单) |
| | | * |
| | | * @param callback |
| | | * @param dateType |
| | | * @param year |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getTrackAccuracyRate") |
| | | public void getTrackAccuracyRate(String callback, Integer dateType, String year, String startTime, String endTime, |
| | | int sourceType, PrintWriter out) { |
| | | |
| | | if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) { |
| | | startTime = null; |
| | | endTime = null; |
| | | } |
| | | |
| | | if (dateType == 1 && year != null) { |
| | | year = null; // 设置为空 |
| | | } else if (dateType == 2) { |
| | | if (startTime != null) |
| | | startTime = null; |
| | | |
| | | if (endTime != null) |
| | | endTime = null; |
| | | |
| | | } else if (dateType == 3) { |
| | | if (year != null) |
| | | year = null; |
| | | |
| | | if (startTime != null) |
| | | startTime = null; |
| | | |
| | | if (endTime != null) |
| | | endTime = null; |
| | | } |
| | | |
| | | try { |
| | | |
| | | Gson gson = new Gson(); |
| | | Object objectDate = null; |
| | | List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year); |
| | | |
| | | JSONArray line_list = new JSONArray(); |
| | | |
| | | List<ChartTDO> list = commonOrderCountService.getTrackAccuracyRate(dateType, year, startTime, endTime, |
| | | sourceType); |
| | | |
| | | JSONObject innerList = new JSONObject(); |
| | | innerList.put("name", "总计"); |
| | | |
| | | if (dateType != 3) { |
| | | innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateType, dateList, list))); |
| | | } else { |
| | | // 年视图 |
| | | Map<String, Object> map = AdminUtils.yearsDataFactory(list); |
| | | |
| | | if (objectDate == null) { |
| | | objectDate = map.get("date"); |
| | | } |
| | | innerList.put("data", gson.toJson(map.get("value"))); |
| | | } |
| | | |
| | | line_list.add(innerList); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | if (objectDate != null) { |
| | | data.put("xAxis_list", gson.toJson(objectDate)); |
| | | } else { |
| | | data.put("xAxis_list", gson.toJson(dateList)); |
| | | } |
| | | |
| | | data.put("line_list", line_list); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | }
|
| | | });
|
| | | Gson gson = gsonBuilder.create();
|
| | | |
| | |
|
| | | data.put("count", count);
|
| | | data.put("result_list", gson.toJson(list));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | |
| | | TaoBaoGoodsBrief goods = taoBaoLink.getGoods();
|
| | | if (!com.yeshi.fanli.util.VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(),
|
| | | acceptData.getVersion()))
|
| | | data.put("clickUrl", ShareControllerV2.getERCodeContentNew(configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()), goods, taoBaoLink.getTaoToken()));
|
| | | data.put("clickUrl",
|
| | | ShareControllerV2.getERCodeContentNew(
|
| | | configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()), goods,
|
| | | taoBaoLink.getTaoToken()));
|
| | |
|
| | | data.put("token", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
|
| | |
|
| | | String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
|
| | | String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
|
| | | // 测试
|
| | | List<String> commentTexts = new ArrayList<>();
|
| | | String commentTextStr = configService.get(ConfigKeyEnum.shareSingleGoodsCommentText.getKey());
|
| | |
| | | }
|
| | | }
|
| | | data.put("commentTexts", commentTexts);
|
| | | data.put("wxErCode", ShareControllerV2.getERCodeContentNew(configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()), goods, taoBaoLink.getTaoToken()));
|
| | | data.put("wxErCode",
|
| | | ShareControllerV2.getERCodeContentNew(
|
| | | configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()), goods,
|
| | | taoBaoLink.getTaoToken()));
|
| | | }
|
| | |
|
| | | } else if (cid == 4) { // 邀请分享
|
| | |
| | | String valueBr = valueN.replace("\n", "<br><br>");
|
| | | data.put("inviteRules", valueBr);
|
| | |
|
| | | // 邀请链接
|
| | | String shortLink = HttpUtil.getShortLink("http://" + Constant.wxGZConfig.getLoginHost() + "/"
|
| | | + Constant.systemCommonConfig.getProjectName() + "/client/threeShareNew?uid=" + uid);
|
| | | data.put("inviteLink", shortLink);
|
| | | data.put("inviteLink", Constant.YINGYONGBAO_LINK);
|
| | | data.put("inviteCode", inviteCode);
|
| | | data.put("helpLink", configService.get(ConfigKeyEnum.inviteHelpLink.getKey()));
|
| | | }
|
| | |
| | | * @return
|
| | | */
|
| | | Long countOrderByDay(@Param("preDay") String preDay);
|
| | | |
| | | /**
|
| | | * 统计所有订单
|
| | | * |
| | | * @param channel
|
| | | * @return
|
| | | */
|
| | | List<ChartTDO> countOrderNumber(@Param("dateType") Integer dateType, @Param("year") String year,
|
| | | @Param("startTime") String startTime, @Param("endTime") String endTime);
|
| | |
|
| | |
|
| | | } |
| | |
| | | Long countOrderBySourceTypeAndDay(@Param("preDay") String preDay, @Param("sourceType") int sourceType); |
| | | |
| | | |
| | | /** |
| | | * 统计所有订单 |
| | | * |
| | | * @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); |
| | | |
| | | |
| | | |
| | | /** |
| | | * 奖金统计 |
| | |
| | | * @return
|
| | | */
|
| | | PDDOrder selectByOrderSN(String orderSn);
|
| | | |
| | | /**
|
| | | * 数量统计
|
| | | * |
| | | * @param dateType
|
| | | * @param year
|
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | */
|
| | | List<ChartTDO> countOrderNumber(@Param("dateType") Integer dateType, @Param("year") String year,
|
| | | @Param("startTime") String startTime, @Param("endTime") String endTime);
|
| | |
|
| | |
|
| | | /**
|
| | | * 数量统计
|
| | |
| | |
|
| | | // 根据订单号删除数据
|
| | | int deleteByOrderId(String orderId);
|
| | | |
| | | /**
|
| | | * 统计所有订单
|
| | | * |
| | | * @param channel
|
| | | * @return
|
| | | */
|
| | | List<ChartTDO> countOrderNumber(@Param("dateType") Integer dateType, @Param("year") String year,
|
| | | @Param("startTime") String startTime, @Param("endTime") String endTime);
|
| | |
|
| | |
|
| | | /**
|
| | | * 统计--订单类型区分
|
| | |
| | | WHERE joi_valid_code!=2 AND FROM_UNIXTIME(jo_order_time/1000,'%Y-%m-%d')=#{preDay}
|
| | | </select>
|
| | |
|
| | | |
| | | <select id="countOrderNumber" resultMap="ChartMap">
|
| | | SELECT IFNULL(COUNT(`joi_id`),0) AS showValue,
|
| | | <include refid="Column_DateType" />
|
| | | FROM `yeshi_ec_jd_order_item` left join yeshi_ec_jd_order on jo_order_id=joi_order_id WHERE jo_order_time IS NOT NULL and joi_valid_code!=2
|
| | | <include refid="Count_Select_DateType" />
|
| | | <include refid="Count_Group_DateType" />
|
| | | ORDER BY jo_order_time
|
| | | </select>
|
| | | |
| | | </mapper>
|
| | |
| | | WHERE t.co_source_type=#{sourceType} AND DATE_FORMAT(t.`co_third_create_time`,'%Y-%m-%d') = #{preDay} |
| | | </select> |
| | | |
| | | <select id="countOrderNumber" resultMap="ChartMap"> |
| | | SELECT IFNULL(COUNT(t.`co_id`),0) AS showValue,<include refid="Column_DateType"/> |
| | | FROM `yeshi_ec_common_order` t |
| | | WHERE t.co_source_type=#{sourceType} and t.`co_third_create_time` IS NOT NULL <include refid="Count_Select_DateType"/> |
| | | <include refid="Count_Group_DateType"/> |
| | | ORDER BY t.`co_third_create_time` |
| | | </select> |
| | | |
| | | |
| | | <select id="countOrderNumberBySettleTime" resultType="java.util.HashMap"> |
| | | <!-- 统计历史订单数量 根据结算时间 --> |
| | |
| | | WHERE FROM_UNIXTIME(po_order_create_time,'%Y-%m-%d') = #{preDay}
|
| | | </select>
|
| | |
|
| | | <select id="countOrderNumber" resultMap="ChartMap">
|
| | | SELECT IFNULL(COUNT(`po_id`),0) AS showValue,
|
| | | <include refid="Column_DateType" />
|
| | | FROM `yeshi_ec_pdd_order` t WHERE po_order_create_time IS NOT NULL
|
| | | <include refid="Count_Select_DateType" />
|
| | | <include refid="Count_Group_DateType" />
|
| | | ORDER BY po_order_create_time
|
| | | </select>
|
| | |
|
| | |
|
| | | <select id="listByStatus" resultMap="BaseResultMap">
|
| | |
| | | SELECT COUNT(t.`to_id`) FROM `yeshi_ec_taobao_order` t
|
| | | WHERE DATE_FORMAT(t.`to_create_time`,'%Y-%m-%d') = #{preDay}
|
| | | </select>
|
| | | |
| | | <select id="countOrderNumber" resultMap="ChartMap">
|
| | | SELECT IFNULL(COUNT(t.`to_id`),0) AS showValue,
|
| | | <include refid="Column_DateType" />
|
| | | FROM `yeshi_ec_taobao_order` t WHERE t.`to_create_time` IS NOT NULL
|
| | | <include refid="Count_Select_DateType" />
|
| | | <include refid="Count_Group_DateType" />
|
| | | ORDER BY t.`to_create_time`
|
| | | </select>
|
| | | </mapper>
|
| | |
| | | package com.yeshi.fanli.service.impl.count; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.text.DecimalFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | record.setId(StringUtil.Md5(preDay + trackRateEnum.name())); |
| | | countOrderTrackRateDao.save(record); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | 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); |
| | | if (listTotal == null || listTotal.size() == 0) { |
| | | return result_list; |
| | | } |
| | | |
| | | // 淘宝联盟 |
| | | List<ChartTDO> type_list = null; |
| | | switch (sourceType) { |
| | | case Constant.SOURCE_TYPE_TAOBAO: |
| | | type_list = taoBaoOrderMapper.countOrderNumber(dateType, year, startTime, endTime); |
| | | break; |
| | | case Constant.SOURCE_TYPE_JD: |
| | | type_list = jdOrderItemMapper.countOrderNumber(dateType, year, startTime, endTime); |
| | | break; |
| | | case Constant.SOURCE_TYPE_PDD: |
| | | type_list = pddOrderMapper.countOrderNumber(dateType, year, startTime, endTime); |
| | | break; |
| | | } |
| | | if (type_list == null || type_list.size() == 0) { |
| | | return null; |
| | | } |
| | | |
| | | switch (dateType) { |
| | | case 1: // 按天处理 |
| | | result_list = dayFactory(startTime, endTime, type_list); |
| | | break; |
| | | case 2: // 按月处理 |
| | | result_list = monthFactory(type_list); |
| | | break; |
| | | case 3: |
| | | result_list = yearFactory(type_list); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | DecimalFormat df = new DecimalFormat("#.00"); |
| | | |
| | | for (int i = 0; i < result_list.size(); i++) { |
| | | double proportion = 0; |
| | | ChartTDO chartTDO = result_list.get(i); |
| | | String showDate = chartTDO.getShowDate(); |
| | | for (int j = 0; j < listTotal.size(); j++) { |
| | | ChartTDO innerChartTDO = listTotal.get(j); |
| | | String innerDate = innerChartTDO.getShowDate(); |
| | | if (innerDate != null && innerDate.toString().equals(showDate.toString())) { |
| | | String innerValue = innerChartTDO.getShowValue(); |
| | | long innerData = Long.parseLong(innerValue); |
| | | |
| | | String showValue = chartTDO.getShowValue(); |
| | | long showData = Long.parseLong(showValue); |
| | | |
| | | if (showData > 0) { |
| | | proportion = innerData / (double) showData; |
| | | } |
| | | break; // 结束内部循环 |
| | | } |
| | | } |
| | | chartTDO.setShowValue(Double.parseDouble(df.format(proportion * 100)) + ""); |
| | | } |
| | | |
| | | return result_list; |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | }
|
| | |
|
| | | // 数据处理
|
| | | handlelist(listArc);
|
| | | // handlelist(listArc);
|
| | | arcMap.put("list", JsonUtil.getApiCommonGson().toJson(listArc));
|
| | |
|
| | | // 首页-活动区域(女王节)
|
| | |
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | PushContentDTO dto = PushMsgFactory.createFanLiOrderStatisticed(orderType, orderId, money);
|
| | | PushContentDTO dto = PushMsgFactory.createShareOrderStatisticed(orderType, orderId, money);
|
| | | try {
|
| | | pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null);
|
| | | } catch (NumberFormatException e) {
|
| | |
| | | * @return |
| | | */ |
| | | public Integer countOderByUidAndLess10(Long uid); |
| | | |
| | | |
| | | /** |
| | | * 统计所有订单 |
| | | * |
| | | * @param channel |
| | | * @return |
| | | */ |
| | | public List<ChartTDO> getTrackAccuracyRate(Integer dateType, String year, String startTime, String endTime, |
| | | int sourceType) throws Exception; |
| | | } |
| | |
| | | public String convertLinkFromText(String text, Long uid, boolean share)
|
| | | throws ConvertLinkExceptionException, Exception {
|
| | | String newText = convertJDLinkFromText(text, uid, share);
|
| | | newText = convertPDDLinkFromText(text, uid, share);
|
| | | newText = convertPDDLinkFromText(newText, uid, share);
|
| | | newText = convertTBLinkFromText(newText, uid, share);
|
| | | if (text.equalsIgnoreCase(newText))
|
| | | throw new ConvertLinkExceptionException(ConvertLinkExceptionException.CODE_NONE, "不包含可转链的口令与链接");
|
| | |
| | | import org.jsoup.nodes.Document;
|
| | | import org.jsoup.nodes.Element;
|
| | | import org.jsoup.select.Elements;
|
| | | import org.yeshi.utils.HttpUtil;
|
| | |
|
| | | import com.yeshi.fanli.dto.dataoke.DingDongQiangDTO;
|
| | | import com.yeshi.fanli.dto.dataoke.DingDongTime;
|
| | |
| | | String desc = detail.getDtitle();
|
| | | desc += "\n";
|
| | | desc += String.format("券后价%s【%s元】包邮秒杀 ", Math.random() > 0.5 ? "💰" : "",
|
| | | MoneyBigDecimalUtil.getWithNoZera(detail.getActualPrice() ).toString())
|
| | | MoneyBigDecimalUtil.getWithNoZera(detail.getActualPrice()).toString())
|
| | | + (Math.random() > 0.5 ? getRandomCommonEmoji() : "");
|
| | | desc += "\n";
|
| | | // desc += detail.getIntroduce();
|
| | | String introduce = detail.getDesc().replace(",", ",").replace("。", ",").replace("!", ",").replace(",",
|
| | | ",");
|
| | | String introduce = detail.getDesc().replace(",", ",").replace("。", ",").replace("!", ",").replace(",", ",");
|
| | | introduce = introduce.replace(",,,", ",").replace(",,", ",");
|
| | |
|
| | | String[] sts = introduce.split(",");
|
| | |
| | | desc += introduce;
|
| | | return desc;
|
| | | }
|
| | |
|
| | |
|
| | | public static TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods, DaTaoKeDetailV2 detail) {
|
| | | if (detail != null && goods != null) {
|
| | |
| | | return list;
|
| | | }
|
| | |
|
| | | // 获取推广文案
|
| | | public static void getPublishDoc(String id) {
|
| | | String url = String.format("http://www.dataoke.com/detailtpl?gid=%s&type=1", id);
|
| | | String response = HttpUtil.get(url);
|
| | | try {
|
| | | JSONObject json = JSONObject.fromObject(new String(response.getBytes("ISO-8859-1"), "UTF-8"));
|
| | | JSONObject data = json.optJSONObject("data");
|
| | | String tpl2 = data.optString("tpl2");
|
| | | tpl2 = tpl2.substring(0, tpl2.indexOf("---------"));
|
| | | System.out.println(tpl2.replace("</br>", "\n").trim());
|
| | | } catch (Exception e) {
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|