diff --git a/hchyun-ui/src/views/test/stu/index.vue b/hchyun-ui/src/views/test/stu/index.vue index 314e874..29a0285 100644 --- a/hchyun-ui/src/views/test/stu/index.vue +++ b/hchyun-ui/src/views/test/stu/index.vue @@ -98,6 +98,11 @@ + + + diff --git a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/service/GenTableServiceImpl.java b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/service/GenTableServiceImpl.java index 1b6a7aa..41688a8 100644 --- a/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/service/GenTableServiceImpl.java +++ b/hchyun/hchyun-generator/src/main/java/com/hchyun/generator/service/GenTableServiceImpl.java @@ -304,10 +304,10 @@ public class GenTableServiceImpl implements IGenTableService { ZipOutputStream zip = new ZipOutputStream(outputStream); for (String tableName : tableNames) { zip = generatorCode(tableName, zip); - generatorCode(tableName, zip); -// if (zip==null){ -// return null; -// } +// generatorCode(tableName, zip); + if (zip==null){ + return null; + } } IOUtils.closeQuietly(zip); return outputStream.toByteArray(); diff --git a/hchyun/hchyun-generator/src/main/resources/vm/java/serviceImpl.java.vm b/hchyun/hchyun-generator/src/main/resources/vm/java/serviceImpl.java.vm index 59a7087..56494e9 100644 --- a/hchyun/hchyun-generator/src/main/resources/vm/java/serviceImpl.java.vm +++ b/hchyun/hchyun-generator/src/main/resources/vm/java/serviceImpl.java.vm @@ -2,16 +2,13 @@ package ${packageName}.service.impl; import java.util.List; - import com.hchyun.common.constant.ReturnConstants; #foreach ($column in $columns) #if($column.javaField == 'createTime' || $column.javaField == 'updateTime') import com.hchyun.common.utils.DateUtils; -#break #end #if($column.javaField == 'updateBy' || $column.javaField == 'createBy') import com.hchyun.common.utils.SecurityUtils; -#break #end #end import com.hchyun.common.utils.ServerResult; @@ -105,17 +102,18 @@ public class ${ClassName}ServiceImpl implements ${ClassName}Service { #end #end #if($table.sub) - int rows = ${className}Dao.insert${ClassName}(${className}); - insert${subClassName}(${className}); - return rows; + int renewal = ${className}Dao.insert${ClassName}(${className}); + if (insert${subClassName}(${className})){ + return new ServerResult(false,ReturnConstants.DB_EX); + } #else Integer renewal = ${className}Dao.insert${ClassName}(${className}); +#end if (renewal >0){ return new ServerResult(true,renewal); }else { return new ServerResult(false,ReturnConstants.SYS_FAILL); } -#end }catch (RuntimeException e){ logger.error(e.getMessage()); return new ServerResult(false,ReturnConstants.DB_EX); @@ -136,15 +134,17 @@ public class ${ClassName}ServiceImpl implements ${ClassName}Service { try { #foreach ($column in $columns) #if($column.javaField == 'updateTime') - ${className}.setUpdateTime(DateUtils.getNowDate()); + ${className}.setUpdateTime(DateUtils.getNowDate()); #end #if($column.javaField == 'updateBy') - ${className}.setUpdateBy(SecurityUtils.getUserId()); + ${className}.setUpdateBy(SecurityUtils.getUserId()); #end #end #if($table.sub) - ${className}Dao.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()); - insert${subClassName}(${className}); + ${className}Dao.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()); + if (insert${subClassName}(${className})){ + return new ServerResult(false,ReturnConstants.DB_EX); + } #end Integer renewal = ${className}Dao.update${ClassName}(${className}); if (renewal >0){ @@ -171,7 +171,8 @@ public class ${ClassName}ServiceImpl implements ${ClassName}Service { public ServerResult delete${ClassName}ByIds(${pkColumn.javaType}[] ${pkColumn.javaField}s) { try { #if($table.sub) - ${className}Dao.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s); + //批量删除子表数据 + ${className}Dao.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s); #end Integer renewal = ${className}Dao.delete${ClassName}ByIds(${pkColumn.javaField}s); if (renewal >0){ @@ -195,6 +196,7 @@ public class ${ClassName}ServiceImpl implements ${ClassName}Service { public ServerResult delete${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}) { try { #if($table.sub) + //删除子表数据 ${className}Dao.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField}); #end Integer renewal = ${className}Dao.delete${ClassName}ById(${pkColumn.javaField}); @@ -215,23 +217,23 @@ public class ${ClassName}ServiceImpl implements ${ClassName}Service { * * @param ${className} ${functionName}对象 */ - public void insert${subClassName}(${ClassName} ${className}) - { + public boolean insert${subClassName}(${ClassName} ${className}) { List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List(); Long ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}(); - if (StringUtils.isNotNull(${subclassName}List)) - { + if (StringUtils.isNotNull(${subclassName}List)) { List<${subClassName}> list = new ArrayList<${subClassName}>(); - for (${subClassName} ${subclassName} : ${subclassName}List) - { + for (${subClassName} ${subclassName} : ${subclassName}List){ ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField}); list.add(${subclassName}); } - if (list.size() > 0) - { - ${className}Dao.batch${subClassName}(list); + if (list.size() > 0) { + Integer renewal = ${className}Dao.batch${subClassName}(list); + if (renewal>0){ + return false; + } } } + return true; } #end } diff --git a/hchyun/hchyun-generator/src/main/resources/vm/java/sub-entity.java.vm b/hchyun/hchyun-generator/src/main/resources/vm/java/sub-entity.java.vm index b9d4597..c99ea40 100644 --- a/hchyun/hchyun-generator/src/main/resources/vm/java/sub-entity.java.vm +++ b/hchyun/hchyun-generator/src/main/resources/vm/java/sub-entity.java.vm @@ -4,6 +4,9 @@ package ${packageName}.entity; import ${import}; #end import com.hchyun.common.annotation.Excel; +import com.hchyun.common.core.entity.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; /** * ${subTable.functionName}对象 ${subTableName} diff --git a/hchyun/hchyun-generator/src/main/resources/vm/vue/index.vue.vm b/hchyun/hchyun-generator/src/main/resources/vm/vue/index.vue.vm index 67770cd..550d069 100644 --- a/hchyun/hchyun-generator/src/main/resources/vm/vue/index.vue.vm +++ b/hchyun/hchyun-generator/src/main/resources/vm/vue/index.vue.vm @@ -488,7 +488,7 @@ export default { reset() { this.form = { #foreach ($column in $columns) -#if($column.htmlType != "datetime" && $column.queryType != "BETWEEN") +#if($column.htmlType != "datetime" && $column.queryType != "BETWEEN" && $column.javaField != 'createBy' && $column.javaField != 'updateBy') #if($column.htmlType == "radio") $column.javaField: #if($column.javaType == "Integer" || $column.javaType == "Long")0#else"0"#end#if($velocityCount != $columns.size()),#end diff --git a/hchyun/hchyun-generator/src/main/resources/vm/xml/mapper.xml.vm b/hchyun/hchyun-generator/src/main/resources/vm/xml/mapper.xml.vm index d7fd7eb..7874b05 100644 --- a/hchyun/hchyun-generator/src/main/resources/vm/xml/mapper.xml.vm +++ b/hchyun/hchyun-generator/src/main/resources/vm/xml/mapper.xml.vm @@ -126,9 +126,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into ${subTableName}(#foreach($column in $subTable.columns) $column.columnName#if($velocityCount != $subTable.columns.size()),#end#end) values + insert into ${subTableName}(#set($index = 0)#foreach($column in $subTable.columns)#if($column.isPk.equals("1"))#set($insex = 1)#else$column.columnName#if($velocityCount != ($subTable.columns.size()-$index)),#end#end#end) values - (#foreach($column in $subTable.columns) #{item.$column.javaField}#if($velocityCount != $subTable.columns.size()),#end#end) + (#foreach($column in $subTable.columns)#if($column.isPk.equals("1"))#set($index = 1)#else#{item.$column.javaField}#if($velocityCount != $subTable.columns.size()),#end#end#end) #end diff --git a/hchyun/hchyun-test/src/main/java/com/hchyun/test/dao/StuDao.java b/hchyun/hchyun-test/src/main/java/com/hchyun/test/dao/StuDao.java index e4307bb..0b74794 100644 --- a/hchyun/hchyun-test/src/main/java/com/hchyun/test/dao/StuDao.java +++ b/hchyun/hchyun-test/src/main/java/com/hchyun/test/dao/StuDao.java @@ -2,6 +2,7 @@ package com.hchyun.test.dao; import java.util.List; import com.hchyun.test.entity.Stu; +import com.hchyun.test.entity.Results; /** * 学生Mapper接口 @@ -58,4 +59,29 @@ public interface StuDao * @return 结果 */ public int deleteStuByIds(Long[] ids); + + /** + * 批量删除成绩 + * + * @param customerIds 需要删除的数据ID + * @return 结果 + */ + int deleteResultsByIds(Long[] ids); + + /** + * 批量新增成绩 + * + * @param resultsList 成绩列表 + * @return 结果 + */ + int batchResults(List resultsList); + + + /** + * 通过学生ID删除成绩信息 + * + * @param roleId 角色ID + * @return 结果 + */ + int deleteResultsBySId(Long id); } diff --git a/hchyun/hchyun-test/src/main/java/com/hchyun/test/entity/Results.java b/hchyun/hchyun-test/src/main/java/com/hchyun/test/entity/Results.java new file mode 100644 index 0000000..9428cae --- /dev/null +++ b/hchyun/hchyun-test/src/main/java/com/hchyun/test/entity/Results.java @@ -0,0 +1,65 @@ +package com.hchyun.test.entity; + +import com.hchyun.common.annotation.Excel; +import com.hchyun.common.core.entity.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 成绩对象 sys_results + * + * @author hchyun + * @date 2021-01-22 + */ +public class Results extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 学生id */ + @Excel(name = "学生id") + private Long sId; + + /** java成绩 */ + @Excel(name = "java成绩") + private Long java; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setSId(Long sId) + { + this.sId = sId; + } + + public Long getSId() + { + return sId; + } + public void setJava(Long java) + { + this.java = java; + } + + public Long getJava() + { + return java; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("sId", getSId()) + .append("java", getJava()) + .toString(); + } +} diff --git a/hchyun/hchyun-test/src/main/java/com/hchyun/test/entity/Stu.java b/hchyun/hchyun-test/src/main/java/com/hchyun/test/entity/Stu.java index 86b35e6..08aa719 100644 --- a/hchyun/hchyun-test/src/main/java/com/hchyun/test/entity/Stu.java +++ b/hchyun/hchyun-test/src/main/java/com/hchyun/test/entity/Stu.java @@ -1,5 +1,6 @@ package com.hchyun.test.entity; +import java.util.List; import com.hchyun.common.annotation.Excel; import com.hchyun.common.core.entity.BaseEntity; import org.apache.commons.lang3.builder.ToStringBuilder; @@ -30,6 +31,9 @@ public class Stu extends BaseEntity @Excel(name = "电子邮件") private String email; + /** 成绩信息 */ + private List resultsList; + public void setId(Long id) { this.id = id; @@ -67,6 +71,16 @@ public class Stu extends BaseEntity return email; } + public List getResultsList() + { + return resultsList; + } + + public void setResultsList(List resultsList) + { + this.resultsList = resultsList; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -78,6 +92,7 @@ public class Stu extends BaseEntity .append("createBy", getCreateBy()) .append("updateTime", getUpdateTime()) .append("updateBy", getUpdateBy()) + .append("resultsList", getResultsList()) .toString(); } } diff --git a/hchyun/hchyun-test/src/main/java/com/hchyun/test/service/impl/StuServiceImpl.java b/hchyun/hchyun-test/src/main/java/com/hchyun/test/service/impl/StuServiceImpl.java index 7f412ba..774cf87 100644 --- a/hchyun/hchyun-test/src/main/java/com/hchyun/test/service/impl/StuServiceImpl.java +++ b/hchyun/hchyun-test/src/main/java/com/hchyun/test/service/impl/StuServiceImpl.java @@ -2,7 +2,6 @@ package com.hchyun.test.service.impl; import java.util.List; - import com.hchyun.common.constant.ReturnConstants; import com.hchyun.common.utils.DateUtils; import com.hchyun.common.utils.SecurityUtils; @@ -11,13 +10,18 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import com.hchyun.common.utils.StringUtils; +import org.springframework.transaction.annotation.Transactional; +import com.hchyun.test.entity.Results; import com.hchyun.test.dao.StuDao; import com.hchyun.test.entity.Stu; import com.hchyun.test.service.StuService; /** * 学生Service业务层处理 - * + * * @author hchyun * @date 2021-01-22 */ @@ -30,7 +34,7 @@ public class StuServiceImpl implements StuService { /** * 查询学生 - * + * * @param id 学生ID * @return 学生 */ @@ -38,20 +42,20 @@ public class StuServiceImpl implements StuService { public ServerResult selectStuById(Long id) { try { Stu stu = stuDao.selectStuById(id); - if (stu != null){ - return new ServerResult(true,stu); - }else { + if (stu != null) { + return new ServerResult(true, stu); + } else { return new ServerResult(false, ReturnConstants.RESULT_EMPTY); } - }catch (RuntimeException e){ + } catch (RuntimeException e) { logger.error(e.getMessage()); - return new ServerResult(false,ReturnConstants.DB_EX); + return new ServerResult(false, ReturnConstants.DB_EX); } } /** * 查询学生列表 - * + * * @param stu 学生 * @return 学生 */ @@ -59,102 +63,138 @@ public class StuServiceImpl implements StuService { public ServerResult> selectStuList(Stu stu) { try { List stuList = stuDao.selectStuList(stu); - if (stuList.size()>0){ - return new ServerResult>(true,stuList); - }else { - return new ServerResult>(false,ReturnConstants.RESULT_EMPTY); + if (stuList.size() > 0) { + return new ServerResult>(true, stuList); + } else { + return new ServerResult>(false, ReturnConstants.RESULT_EMPTY); } - }catch (RuntimeException e){ + } catch (RuntimeException e) { logger.error(e.getMessage()); - return new ServerResult>(false,ReturnConstants.DB_EX); + return new ServerResult>(false, ReturnConstants.DB_EX); } } /** * 新增学生 - * + * * @param stu 学生 * @return 结果 */ + @Transactional @Override public ServerResult insertStu(Stu stu) { try { stu.setCreateTime(DateUtils.getNowDate()); stu.setCreateBy(SecurityUtils.getUserId()); - Integer renewal = stuDao.insertStu(stu); - if (renewal >0){ - return new ServerResult(true,renewal); - }else { - return new ServerResult(false,ReturnConstants.SYS_FAILL); + int rows = stuDao.insertStu(stu); + insertResults(stu); + if (rows > 0) { + return new ServerResult(true, rows); + } else { + return new ServerResult(false, ReturnConstants.SYS_FAILL); } - }catch (RuntimeException e){ + } catch (RuntimeException e) { logger.error(e.getMessage()); - return new ServerResult(false,ReturnConstants.DB_EX); + return new ServerResult(false, ReturnConstants.DB_EX); } } /** * 修改学生 - * + * * @param stu 学生 * @return 结果 */ + @Transactional @Override public ServerResult updateStu(Stu stu) { try { - stu.setUpdateTime(DateUtils.getNowDate()); - stu.setUpdateBy(SecurityUtils.getUserId()); - Integer renewal = stuDao.updateStu(stu); - if (renewal >0){ - return new ServerResult(true,renewal); - }else { - return new ServerResult(false,ReturnConstants.SYS_FAILL); + stu.setUpdateTime(DateUtils.getNowDate()); + stu.setUpdateBy(SecurityUtils.getUserId()); + stuDao.deleteResultsBySId(stu.getId()); + if (insertResults(stu)){ + return new ServerResult(false,ReturnConstants.DB_EX); } - }catch (RuntimeException e){ + Integer renewal = stuDao.updateStu(stu); + if (renewal > 0) { + return new ServerResult(true, renewal); + } else { + return new ServerResult(false, ReturnConstants.SYS_FAILL); + } + } catch (RuntimeException e) { logger.error(e.getMessage()); - return new ServerResult(false,ReturnConstants.DB_EX); + return new ServerResult(false, ReturnConstants.DB_EX); } } /** * 批量删除学生 - * + * * @param ids 需要删除的学生ID * @return 结果 */ + @Transactional @Override public ServerResult deleteStuByIds(Long[] ids) { try { + //todo 批量删除子表数据 + stuDao.deleteResultsByIds(ids); Integer renewal = stuDao.deleteStuByIds(ids); - if (renewal >0){ - return new ServerResult(true,renewal); - }else { - return new ServerResult(false,ReturnConstants.SYS_FAILL); + if (renewal > 0) { + return new ServerResult(true, renewal); + } else { + return new ServerResult(false, ReturnConstants.SYS_FAILL); } - }catch (RuntimeException e){ + } catch (RuntimeException e) { logger.error(e.getMessage()); - return new ServerResult(false,ReturnConstants.DB_EX); + return new ServerResult(false, ReturnConstants.DB_EX); } } /** * 删除学生信息 - * + * * @param id 学生ID * @return 结果 */ @Override public ServerResult deleteStuById(Long id) { try { + //todo 删除子表数据 + stuDao.deleteResultsBySId(id); Integer renewal = stuDao.deleteStuById(id); - if (renewal >0){ - return new ServerResult(true,renewal); - }else { - return new ServerResult(false,ReturnConstants.SYS_FAILL); + if (renewal > 0) { + return new ServerResult(true, renewal); + } else { + return new ServerResult(false, ReturnConstants.SYS_FAILL); } - }catch (RuntimeException e){ + } catch (RuntimeException e) { logger.error(e.getMessage()); - return new ServerResult(false,ReturnConstants.DB_EX); + return new ServerResult(false, ReturnConstants.DB_EX); } } + + /** + * 新增成绩信息 + * + * @param stu 学生对象 + */ + public boolean insertResults(Stu stu) { + List resultsList = stu.getResultsList(); + Long id = stu.getId(); + if (StringUtils.isNotNull(resultsList)) { + List list = new ArrayList(); + for (Results results : resultsList) { + results.setSId(id); + list.add(results); + } + if (list.size() > 0) { + Integer renewal = stuDao.batchResults(list); + if (renewal>0){ + return false; + } + } + } + return true; + } } diff --git a/hchyun/hchyun-test/src/main/resources/mapper/test/StuMapper.xml b/hchyun/hchyun-test/src/main/resources/mapper/test/StuMapper.xml index ed1778c..ae1ab2d 100644 --- a/hchyun/hchyun-test/src/main/resources/mapper/test/StuMapper.xml +++ b/hchyun/hchyun-test/src/main/resources/mapper/test/StuMapper.xml @@ -1,9 +1,9 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -15,53 +15,66 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + + select id, name, tel, email, create_time, create_by, update_time, update_by from sys_stu - - + select a.id, a.name, a.tel, a.email, a.create_time, a.create_by, a.update_time, a.update_by, + b.id, b.s_id, b.java + from sys_stu a + left join sys_results b on b.s_id = a.id + where a.id = #{id} - + insert into sys_stu - name, + name, tel, - email, + email, create_time, create_by, update_time, update_by, - + - #{name}, + #{name}, #{tel}, - #{email}, + #{email}, #{createTime}, #{createBy}, #{updateTime}, #{updateBy}, - + update sys_stu - name = #{name}, + name = #{name}, tel = #{tel}, - email = #{email}, + email = #{email}, create_time = #{createTime}, create_by = #{createBy}, update_time = #{updateTime}, @@ -75,9 +88,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from sys_stu where id in + delete from sys_stu where id in #{id} + + + delete from sys_results where s_id in + + #{sId} + + + + + delete from sys_results where s_id = #{sId} + + + + insert into sys_results( s_id, java) values + + ( #{item.sId}, #{item.java}) + + \ No newline at end of file