DiliServiceManagerImpl.java
3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package com.diligrp.website.manager.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.diligrp.website.dao.DiliServiceCoverageDao;
import com.diligrp.website.dao.DiliServiceDao;
import com.diligrp.website.domain.DiliService;
import com.diligrp.website.domain.DiliServiceCoverage;
import com.diligrp.website.manager.DiliServiceManager;
import com.diligrp.website.util.dao.BaseQuery;
import com.diligrp.website.util.web.PageTemplate;
/**
* <B>Description</B> <br />
* <B>Copyright</B> Copyright (c) 2014 www.diligrp.com All rights reserved. <br />
* 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
* <B>Company</B> 地利集团
* @createTime 2014-6-3 11:33:00
* @author template
*/
@Component
public class DiliServiceManagerImpl implements DiliServiceManager {
@Autowired
private DiliServiceDao diliServiceDao;
@Autowired
private DiliServiceCoverageDao diliServiceCoverageDao;
public PageTemplate find(BaseQuery bq) {
List<DiliService> list = diliServiceDao.listByCondition(bq);
for (DiliService service : list) {
if (service.checkStatus()) {
if (!update(service)) {
throw new RuntimeException("状态更新失败!");
}
}
}
int totalSize = diliServiceDao.countByCondition(bq);
return PageTemplate.create(bq, totalSize, list);
}
public List<DiliService> findAll(BaseQuery baseQuery) {
List<DiliService> list = diliServiceDao.listAll(baseQuery);
for (DiliService service : list) {
if (service.checkStatus()) {
if (!update(service)) {
throw new RuntimeException("状态更新失败!");
}
}
}
return list;
}
public DiliService findOne(Long pk) {
DiliService service = diliServiceDao.getById(pk);
if (service.checkStatus()) {
if (!update(service)) {
throw new RuntimeException("状态更新失败!");
}
}
return service;
}
@Override
public DiliService findByCode(String code) {
return diliServiceDao.findByCode(code);
}
public Boolean save(DiliService diliService, Long[] coverages) {
if (!diliServiceDao.save(diliService)) {
return false;
}
if (!saveCoverages(diliService.getId(), coverages)) {
return false;
}
return true;
}
public Boolean update(DiliService diliService) {
if (!diliServiceDao.update(diliService)) {
return false;
}
return true;
}
public Boolean update(DiliService diliService, Long[] coverages) {
if (!diliServiceDao.update(diliService)) {
return false;
}
if (!saveCoverages(diliService.getId(), coverages)) {
return false;
}
return true;
}
private Boolean saveCoverages(Long serviceId, Long[] coverages) {
if (serviceId == null) {
return false;
}
if (!diliServiceCoverageDao.deleteByServiceId(serviceId)) {
throw new RuntimeException("删除可服务区域出错");
}
if (coverages == null || coverages.length <= 0) {
return true;
}
for (Long id : coverages) {
DiliServiceCoverage dsc = new DiliServiceCoverage();
dsc.setCoverageId(id);
dsc.setServiceId(serviceId);
if (!diliServiceCoverageDao.save(dsc)) {
throw new RuntimeException("保存关联数据出错!");
}
}
return true;
}
public Boolean del(Long id){
return diliServiceDao.deleteById(id);
}
}