修改部分代码逻辑 后续需更改

master
ninftao 3 years ago
parent c8adc5929a
commit 5df82cc1e5

@ -161,6 +161,7 @@
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<executable>true</executable>
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>

@ -0,0 +1,70 @@
package com.hchbox.entity.master;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
* @author Enzo
* @date 2021-7-15
*/
@Data
@Entity
@Table(name = "auto_task_message")
public class AutoTaskMessage implements Serializable {
@Id
@Column(name = "id")
@ApiModelProperty(value = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long userId;
@ApiModelProperty("类型")
private Integer status;
@ApiModelProperty("任务名称")
private String taskName;
@ApiModelProperty("买家昵称")
private String sellerNick;
private String taksInfo; // 任务信息
private Date gmtCreate; //
private Date gmtUpdate;
private Date startDt; // 任务开始时间
private Date endDt; // 任务结束时间
private Integer isOver; // 0 默认未完成终止 1 明日再发
private Integer isRetry; // 重试次数 0 代表不重试
private String templt; // 模板
private Integer isRemark; // 是否备注 0不备注 1备注
private String result; // 结果
private String memo;
private Integer type; // 0 应用dsr选中回访提交 1 为 手动提交 (应用 团队 后台 )
private String sendType;
private Date statStartDt; // 统计开始时间
private Date statEndDt; // 统计结束时间
private String statType; // 统计类型 urgerate催评 marketing营销
}

@ -14,7 +14,7 @@ import java.util.Date;
*/
@Data
@Entity
@Table(name = "black_list")
@Table(name = "auto_task_message_info")
public class AutoTaskMessageInfo implements Serializable {
private static final long serialVersionUID = 4158774664555395433L;

@ -0,0 +1,24 @@
package com.hchbox.repository.master;
import com.hchbox.entity.master.AutoTaskMessage;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.Date;
/**
* @author Enzo
* @date : 2021/7/15
*/
public interface AutoTaskMessageRepository extends JpaRepository<AutoTaskMessage, Long>, JpaSpecificationExecutor<AutoTaskMessage> {
/**
*
* @param type
* @param startTime
* @param endTime
* @return
*/
AutoTaskMessage findAutoTaskMessageTypeBetweenTime(String type, Date startTime, Date endTime);
}

@ -47,10 +47,7 @@ public interface SellerAccountRepository extends JpaRepository<SellerAccount, Lo
* @param parentId
* @return
*/
List<String> findNickByParentId(Long parentId);
List<String> findByParentId(Long parentId);
}

@ -137,7 +137,7 @@ public class MemberServiceImpl implements MemberService {
Member member = new Member();
Double payment = Double.valueOf(trade.getPayment());
SellerAccount sellerAccountByNick = sellerAccountRepository.findSellerAccountByNick(trade.getSellerNick());
member.setAccountUid(sellerAccountByNick.getUid());
member.setAccountUid(sellerAccountByNick.getId());
member.setAlipayNo(trade.getAlipayNo());
member.setAvgPrice(payment);
if (trade.getAlipayNo() != null) {

@ -1,46 +1,35 @@
package com.hchbox.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.hchbox.api.TaoBaoApiClient;
import com.hchbox.config.MiProperties;
import com.hchbox.constant.*;
import com.hchbox.constant.DefaultConstants;
import com.hchbox.constant.PayConstants;
import com.hchbox.constant.RemindTemplates;
import com.hchbox.converter.CommConverter;
import com.hchbox.dto.SellerAccountDTO;
import com.hchbox.entity.master.*;
import com.hchbox.enums.AppSettingTypeEnum;
import com.hchbox.hander.message.TaoBaoTradeMessage;
import com.hchbox.repository.master.AutoTaskMessageRepository;
import com.hchbox.repository.master.OrderRegistry;
import com.hchbox.repository.master.TopTradeRepository;
import com.hchbox.service.*;
import com.hchbox.uitl.TaoBaoEncryption;
import com.hchbox.util.CacheManagerUtil;
import com.taobao.api.domain.Order;
import com.taobao.api.domain.Trade;
import com.taobao.api.request.TradeFullinfoGetRequest;
import com.taobao.api.request.TradesSoldGetRequest;
import com.taobao.api.response.TradeFullinfoGetResponse;
import com.taobao.api.response.TradesSoldGetResponse;
import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shardingsphere.spi.order.OrderedRegistry;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.jnlp.FileContents;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -71,6 +60,8 @@ public class TopTradeServiceImpl implements TopTradeService {
private final SellerAccountService sellerAccountService;
private final AutoTaskMessageRepository autoTaskMessageRepository;
private final AutoTaskMessageInfoService autoTaskMessageInfoService;
@ -160,6 +151,7 @@ public class TopTradeServiceImpl implements TopTradeService {
/**
*
*
* @param templateId
* @param account
* @return
@ -194,37 +186,33 @@ public class TopTradeServiceImpl implements TopTradeService {
return;
}
/* // 提交创建旺旺批次任务
Integer wwid = createAutoTaskWwmsg(setting, template);
// 提交创建旺旺批次任务
Long taskId = createAutoTaskMessage(setting, template);
if (wwid == null || wwid == 0) {
log.info("trade rate handler wwid is null tid=" + tid);
if (taskId == null) {
log.info("============== create trade task error the uid as {},time {} ==============", +trade.getTid(), DateUtil.date());
return;
}
AutoTaskMessageInfo messageInfo = new AutoTaskMessageInfo();
messageInfo.setAtwId((long) wwid);
messageInfo.setAtwId(taskId);
//默认第一个账号去发送,只发送一条消息
messageInfo.setWwNick(sendNickList.get(0));
messageInfo.setSellerNick(trade.getSellerNick());
messageInfo.setStartDt(new Date());
messageInfo.setStartDt(DateUtil.date());
messageInfo.setTid(trade.getTid());
messageInfo.setStatus(0);
messageInfo.setType(0);
messageInfo.setStatus(DefaultConstants.ZERO_NUMBER);
messageInfo.setType(DefaultConstants.ZERO_NUMBER);
messageInfo.setSendType(setting.getType());
messageInfo.setBuyerNick(trade.getBuyerNick());
String content = RemindTemplateUtil.prepareMsg(template, trade);
messageInfo.setInfo(content);// 模板替换
List<AutoTaskWwmsgInfo> infos = new ArrayList<AutoTaskWwmsgInfo>();
infos.add(wwmsgInfo);
autoTaskWWMsgInfoService.batchCreate(infos);
taskAccountService.addCacheWwmsgQuota(wwmsgInfo.getWwNick(), AutoTaskConstants.TASK_ACCOUNT_TYPE_ONE, -1, redisCacheManager);
NoticeWwSendMessage message = new NoticeWwSendMessage();
message.setSendNick(wwmsgInfo.getWwNick());
message.setTaskId(wwid);
message.setTaskName("自动任务(" + AppSettingType.getWwRemindType(setting.getType()) + ")");
message.setType(AutoTaskConstants.WWMSG_TYPE_AUTO + setting.getType());*/
String content = RemindTemplates.prepareMsg(template, trade);
// 模板替换
messageInfo.setInfo(content);
List<AutoTaskMessageInfo> infos = new ArrayList<AutoTaskMessageInfo>();
infos.add(messageInfo);
// TODO 批量插入 插入缓存
//autoTaskMessageRepository.batchCreate(infos);
// taskAccountService.addCacheWwmsgQuota(wwmsgInfo.getWwNick(), AutoTaskConstants.TASK_ACCOUNT_TYPE_ONE, -1, redisCacheManager);
// redisCacheManager.sendMessage(RedisConstants.NOTICE_WW_SEND_CHANNEL, message);
}
@ -261,7 +249,7 @@ public class TopTradeServiceImpl implements TopTradeService {
List<Order> list = trade.getOrders();
List<Long> ids = new ArrayList<>();
for (Order order : list) {
if(!ids.contains(order.getNumIid())){
if (!ids.contains(order.getNumIid())) {
ids.add(order.getNumIid());
}
}
@ -276,9 +264,9 @@ public class TopTradeServiceImpl implements TopTradeService {
return true;
}
return false;
}*/
}
/* // 查询卖家指定的不发送宝贝,
// 查询卖家指定的不发送宝贝,
int notSendCount = remindGoodsService.count(sellerNick, RemindGoods.FTYPE_DISABLE, setting.getType());
if (notSendCount > 0) {
List<RemindGoods> notSendList = remindGoodsService.listByIds(iids, RemindGoods.FTYPE_DISABLE,
@ -293,4 +281,37 @@ public class TopTradeServiceImpl implements TopTradeService {
return true;
}
/**
*
*
* @param setting
* @param template
* @return
*/
protected Long createAutoTaskMessage(AppSetting setting, String template) {
DateTime date = DateUtil.date();
AutoTaskMessage message = autoTaskMessageRepository.findAutoTaskMessageTypeBetweenTime(setting.getType(), DateUtil.beginOfDay(date), DateUtil.endOfDay(date));
if (message != null) {
return message.getId();
}
// 若不存在,则创建一个
message = new AutoTaskMessage();
message.setStartDt(date);
// 目前暂定的任务名 自动任务(好评感谢)
message.setTaskName("自动任务(" + ")");
message.setTaksInfo("");
message.setIsOver(0);
message.setTemplt(template);
message.setIsRemark(0);
message.setStatus(0);
message.setType(0);
message.setSendType(setting.getType());
message.setSellerNick(setting.getSellerNick());
return autoTaskMessageRepository.save(message).getId();
}
}

@ -29,7 +29,7 @@ public class BaseMember implements Serializable {
protected Long id;
@ApiModelProperty("用户id")
protected String accountUid;
protected Long accountUid;
@Column(name = "create_time")
@ApiModelProperty("创建时间")

@ -2,6 +2,7 @@
package com.hchbox.constant;
import cn.hutool.core.util.StrUtil;
import com.taobao.api.domain.Trade;
import org.apache.commons.lang3.StringUtils;
/**
@ -34,4 +35,52 @@ public class RemindTemplates {
return template.replace(SHOP_NAME, StringUtils.isNotBlank(shopTitle) ? shopTitle : StrUtil.EMPTY);
}
/**
* 使
*
* @param template
* @param trade
* @return
*/
public static String prepareMsg(String template, Trade trade) {
if (StringUtils.isBlank(template) || trade == null) {
return template;
}
/*// 目前有一个变量,订单创建时间
String orderTime = DateUtil.formatMMDDHHmm(trade.getCreated());
// 下单时间,付款时间,店铺名称,宝贝名称,价格,数量,买家昵称 收货人姓名
template = template.replace(RemindTemplates.ORDER_TIME, orderTime != null ? orderTime : "");
if (trade.getPayTime() != null) {
template = template.replace(RemindTemplates.PAY_TIME, DateUtil.formatMMDDHHmm(trade.getPayTime()));
}
String itemTitle = "";
if (trade.getOrders() != null) {
itemTitle = trade.getOrders().get(0).getTitle();
} else {
itemTitle = trade.getTitle();
}
;
template = template.replace(RemindTemplates.ITEM_TITLE, replaceBracket(itemTitle));
template = template.replace(RemindTemplates.PRICE, trade.getPayment() != null ? trade.getPayment() : "" + "元");
// template.replace(RemindTemplates.ITEM_NUMBER, trade.getNum() != null ? trade.getNum().toString() : "");
template = template.replace(RemindTemplates.BUYER_NICK,
trade.getBuyerNick() != null ? trade.getBuyerNick() : "");
template = template.replace(RemindTemplates.RECEIVER_NAME,
trade.getReceiverName() != null ? trade.getReceiverName() : "");
template = template.replace(RemindTemplates.RECEIVER_MOBILE,
trade.getReceiverMobile() != null ? trade.getReceiverMobile() : "");
template = template.replace(RemindTemplates.RECEIVER_ADDRESS,
trade.getReceiverAddress() != null ? trade.getReceiverAddress() : "");
template = template.replace(RemindTemplates.ORDER_NO,
trade.getTid() != null ? String.valueOf(trade.getTid()) : "");
template = template.replace(RemindTemplates.FRONT_PAYMENT,
trade.getStepPaidFee() != null ? trade.getStepPaidFee() : "");*/
return template;
}
}

Loading…
Cancel
Save