Browse Source

调整代码

master
xyiege 4 years ago
parent
commit
fdeb0c2edb
  1. 10
      src/main/java/cn/chjyj/szwh/service/impl/GoodsTaskServiceImpl.java
  2. 41
      src/main/java/cn/chjyj/szwh/service/impl/OrderTaskServiceImpl.java
  3. 62
      src/main/java/cn/chjyj/szwh/task/SzwhScheduled.java
  4. 9
      src/main/java/cn/chjyj/szwh/task/TaskInit.java
  5. 14
      src/main/resources/mapper/szwh/GoodsDetailMapper.xml
  6. 22
      src/test/java/cn/chjyj/szwh/service/OrderTaskServiceTest.java

10
src/main/java/cn/chjyj/szwh/service/impl/GoodsTaskServiceImpl.java

@ -9,6 +9,7 @@ import cn.chjyj.szwh.utils.RequestUtils;
import cn.chjyj.szwh.utils.SzwhApiUtils;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -29,9 +30,12 @@ public class GoodsTaskServiceImpl implements GoodsTaskService {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
JSONObject recvjson = SzwhApiUtils.revocationGoods();
JSONObject dataJson = recvjson.getJSONObject("data");
if(!dataJson.isEmpty()){
JSONArray jsonArray = JSONArray.parseArray(dataJson.toJSONString());
//JSONObject dataJson = recvjson.getJSONObject("data");
String datajsonStr= recvjson.getString("data");
if(StringUtils.isNotBlank(datajsonStr)){
JSONObject dataJson = recvjson.getJSONObject("data");
//if(!dataJson.isEmpty()){
JSONArray jsonArray = JSONArray.parseArray(datajsonStr);
for(int i=0;i<jsonArray.size();i++){
JSONObject jitem = (JSONObject) jsonArray.get(i);
String islicode = jitem.getString("isliCode");

41
src/main/java/cn/chjyj/szwh/service/impl/OrderTaskServiceImpl.java

@ -49,11 +49,11 @@ public class OrderTaskServiceImpl implements OrderTaskService {
// 判断非空
if(orderList!=null){
for(Order od:orderList) {
//待查询的字段,英文逗号分隔。注意与实体属性对应
String field = "goods_islicode as goodsIslicode";
Map somap = new HashMap();
qmap.put("is_deleted", "0");
qmap.put("batchcode", od.getBatchcode()); //传入订单号
//qmap.put("field",field); //待查询的字段,英文逗号分隔。注意与实体属性对应
List<OrderGoodsDetail> dbOdglist = orderGoodsDetailMapper.getOrderGoodsDetailByMap(somap, field);
if(dbOdglist!=null){
for(OrderGoodsDetail odg:dbOdglist){
@ -66,23 +66,28 @@ public class OrderTaskServiceImpl implements OrderTaskService {
GoodsDetail goodsDetail = goodsDetailMapper.getGoodsDetailBygid(tmpgoods.getGoodsDetailId());
if(goodsDetail==null){
continue;
}
// 对比和处理商品状态
if(goodsDetail.getGoodsEntrust()==1||goodsDetail.getContractualPeriod()==2){
goodsDetail.setStock(1);
goodsDetailMapper.updateGoodsDetail(goodsDetail);
//更新商品状态
Map gmap=new HashMap();
gmap.put("goods_status",1);
goodsMapper.updateGoods(gmap,tmpgoods.getId());
// 找到购买的用户信息
OrderUser orderUser =orderUserMapper.getUserOrder(od.getBatchcode(),odg.getGoodsIslicode());
//操作日志
OperationLog oplog = new OperationLog();
oplog.setType("goods");
oplog.setId(tmpgoods.getId());
oplog.setMessage(now+orderUser.getName()+"未付款成功,重新发布该标的!");
operationLogMapper.addLog(oplog);
}else {
// 委托类型
int wtlx = goodsDetail.getGoodsEntrust();
// 委托周期
int wtzq = goodsDetail.getContractualPeriod();
// 对比和处理商品状态 委托类型为转让的 委托周期为单次
if (wtlx == 1 || wtzq == 2) {
goodsDetail.setStock(1);
goodsDetailMapper.updateGoodsDetail(goodsDetail);
//更新商品状态
Map gmap = new HashMap();
gmap.put("goods_status", 1);
goodsMapper.updateGoods(gmap, tmpgoods.getId());
// 找到购买的用户信息
OrderUser orderUser = orderUserMapper.getUserOrder(od.getBatchcode(), odg.getGoodsIslicode());
//操作日志
OperationLog oplog = new OperationLog();
oplog.setType("goods");
oplog.setId(tmpgoods.getId());
oplog.setMessage(now + orderUser.getName() + "未付款成功,重新发布该标的!");
operationLogMapper.addLog(oplog);
}
}
}
}

62
src/main/java/cn/chjyj/szwh/task/SzwhScheduled.java

@ -1,62 +0,0 @@
package cn.chjyj.szwh.task;
import cn.chjyj.szwh.service.GoodsTaskService;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
/**
* 多个定时任务启动
*/
@Component
//@EnableScheduling
public class SzwhScheduled {
private GoodsTaskService goodsTaskService;
public GoodsTaskService getGoodsTaskService() {
return goodsTaskService;
}
public void setGoodsTaskService(GoodsTaskService goodsTaskService) {
this.goodsTaskService = goodsTaskService;
}
@Bean
public TaskScheduler taskScheduler(){
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
taskScheduler.setPoolSize(20);
return taskScheduler;
}
/**
* 查询查询撤销商品的信息
*/
//@Scheduled(cron = "0/20 * * * * ?")
public void queryRevocationGoods(){
String curName = Thread.currentThread().getName() ;
System.out.println("当前时间:"+ LocalDateTime.now()+" 任务queryRevocationGoods对应的线程名: "+curName);
try {
goodsTaskService.getRevocationGoods();
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
}
//@Scheduled(cron = "0/5 * * * * ?")
public void execute2(){
String curName = Thread.currentThread().getName() ;
System.out.println("当前时间:"+LocalDateTime.now()+" 任务execute2对应的线程名: "+curName);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

9
src/main/java/cn/chjyj/szwh/task/TaskInit.java

@ -39,6 +39,7 @@ public class TaskInit implements ApplicationRunner {
.build();
// 手动将触发器与任务绑定到调度器内
scheduler.scheduleJob(jobDetail, trigger);
//获取商品的撤销状态
JobDetail revojob = JobBuilder.newJob(SzwhRevocationGoodsJob.class)
.withIdentity(sid+"02")
@ -52,17 +53,19 @@ public class TaskInit implements ApplicationRunner {
.startNow()
.build();
scheduler.scheduleJob(revojob,revoTrigger);
// 关闭超时订单 1min一次
//关闭超时订单 1min一次
JobDetail odTimeoutJob=JobBuilder.newJob(OrderJob.class)
.withIdentity(sid+"03")
.storeDurably()
.build();
Trigger odTimeoutTrigger = TriggerBuilder.newTrigger()
.forJob(odTimeoutJob)
.withIdentity(sid+"02Trigger")
.withSchedule(CronScheduleBuilder.cronSchedule("0 */1 * * * ? *"))
.withIdentity(sid+"03Trigger")
.withSchedule(CronScheduleBuilder.cronSchedule("0/10 * * * * ? *"))
.startNow()
.build();
scheduler.scheduleJob(odTimeoutJob,odTimeoutTrigger);
}
}

14
src/main/resources/mapper/szwh/GoodsDetailMapper.xml

@ -27,19 +27,7 @@
<!--根据id查询-->
<select id="getGoodsDetailBygid" parameterType="java.lang.Integer" resultType="cn.chjyj.szwh.bean.GoodsDetail">
select
id,goods_name as goodsName,
goods_image as goodsImage,
identifier,identifiers,stock,
price,
goods_ownership as goodsOwnership,
goods_ownership_str as goodsOwnershipStr,
goods_type as goodsType,
charges_type as chargesType,
goods_islicode as goodsIslicode,
goods_entrust as goodsEntrust,
data_json as dataJson,
source_json as sourceJson,
sourcedata_islicode as sourcedataIslicode
<include refid="column"></include>
from <include refid="tbName"/>
where id=#{goodDetailId}
</select>

22
src/test/java/cn/chjyj/szwh/service/OrderTaskServiceTest.java

@ -0,0 +1,22 @@
package cn.chjyj.szwh.service;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import static org.junit.Assert.*;
@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class OrderTaskServiceTest {
@Autowired
private OrderTaskService orderTaskService;
@Test
public void closeOrderTimeout() {
System.out.println("关闭订单");
orderTaskService.closeOrderTimeout();
}
}
Loading…
Cancel
Save