liuxiaolong
2019-05-09 0d1d88cdb668e75ea8609417ac18ae19947e9525
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
<?xml version="1.0" encoding="utf-8"?>
<template>
    <name>service</name>
    <filePath>src/main/java/${packageName}/${moduleName}/service/${subModuleName}</filePath>
    <fileName>${ClassName}Service.java</fileName>
    <content><![CDATA[
/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package ${packageName}.${moduleName}.service<#if subModuleName != "">.${subModuleName}</#if>;
 
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import com.jeeplus.common.persistence.Page;
import com.jeeplus.common.service.CrudService;
import com.jeeplus.common.utils.StringUtils;
import ${packageName}.${moduleName}.entity<#if subModuleName != "">.${subModuleName}</#if>.${ClassName};
import ${packageName}.${moduleName}.dao<#if subModuleName != "">.${subModuleName}</#if>.${ClassName}Dao;
<#list table.childList as c>
import ${packageName}.${moduleName}.entity<#if subModuleName != "">.${subModuleName}</#if>.${c.className?cap_first};
import ${packageName}.${moduleName}.dao<#if subModuleName != "">.${subModuleName}</#if>.${c.className?cap_first}Dao;
</#list>
 
/**
 * ${functionName}Service
 * @author ${functionAuthor}
 * @version ${functionVersion}
 */
@Service
@Transactional(readOnly = true)
public class ${ClassName}Service extends CrudService<${ClassName}Dao, ${ClassName}> {
 
    <#list table.childList as c>
    @Autowired
    private ${c.className?cap_first}Dao ${c.className?uncap_first}Dao;
    </#list>
    
    public ${ClassName} get(String id) {
        ${ClassName} ${className} = super.get(id);
        <#list table.childList as c>
        ${className}.set${c.className?cap_first}List(${c.className?uncap_first}Dao.findList(new ${c.className?cap_first}(${className})));
        </#list>
        return ${className};
    }
    
    public List<${ClassName}> findList(${ClassName} ${className}) {
        return super.findList(${className});
    }
    
    public Page<${ClassName}> findPage(Page<${ClassName}> page, ${ClassName} ${className}) {
        return super.findPage(page, ${className});
    }
    
    @Transactional(readOnly = false)
    public void save(${ClassName} ${className}) {
        super.save(${className});
    <#list table.childList as c>
        for (${c.className?cap_first} ${c.className?uncap_first} : ${className}.get${c.className?cap_first}List()){
            if (${c.className?uncap_first}.getId() == null){
                continue;
            }
            if (${c.className?cap_first}.DEL_FLAG_NORMAL.equals(${c.className?uncap_first}.getDelFlag())){
                if (StringUtils.isBlank(${c.className?uncap_first}.getId())){
                    <#if c.parentExists>
                        <#list c.columnList as cc>
                            <#if c.parentTableFk == cc.name>
                    ${c.className?uncap_first}.set${cc.simpleJavaField?cap_first}(${className});
                            </#if>
                        </#list>
                    </#if>
                    ${c.className?uncap_first}.preInsert();
                    ${c.className?uncap_first}Dao.insert(${c.className?uncap_first});
                }else{
                    ${c.className?uncap_first}.preUpdate();
                    ${c.className?uncap_first}Dao.update(${c.className?uncap_first});
                }
            }else{
                ${c.className?uncap_first}Dao.delete(${c.className?uncap_first});
            }
        }
    </#list>
    }
    
    @Transactional(readOnly = false)
    public void delete(${ClassName} ${className}) {
        super.delete(${className});
    <#list table.childList as c>
        ${c.className?uncap_first}Dao.delete(new ${c.className?cap_first}(${className}));
    </#list>
    }
    
}]]>
    </content>
</template>