Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
O
online-edu-backend
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
online-edu
online-edu-backend
Commits
77209d14
Commit
77209d14
authored
Apr 27, 2021
by
liuyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成会员价格配置
parent
794990b5
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
481 additions
and
0 deletions
+481
-0
BizConstants.java
src/main/java/com/qkdata/biz/common/BizConstants.java
+6
-0
OrgTypeEnum.java
src/main/java/com/qkdata/biz/enums/OrgTypeEnum.java
+8
-0
EnterpriseController.java
...kdata/biz/management/controller/EnterpriseController.java
+44
-0
InstitutionController.java
...data/biz/management/controller/InstitutionController.java
+43
-0
PriceConfigController.java
...data/biz/management/controller/PriceConfigController.java
+36
-0
OrganizationPO.java
...java/com/qkdata/biz/management/entity/OrganizationPO.java
+77
-0
OrganizationMapper.java
.../com/qkdata/biz/management/mapper/OrganizationMapper.java
+18
-0
OrganizationService.java
...om/qkdata/biz/management/service/OrganizationService.java
+46
-0
PriceConfigService.java
...com/qkdata/biz/management/service/PriceConfigService.java
+78
-0
InstitutionModel.java
...n/java/com/qkdata/biz/management/vo/InstitutionModel.java
+50
-0
PriceConfigModel.java
...n/java/com/qkdata/biz/management/vo/PriceConfigModel.java
+32
-0
SysConfigService.java
...ain/java/com/qkdata/biz/sys/service/SysConfigService.java
+15
-0
OrganizationPOMapper.xml
...ain/resources/mappers/management/OrganizationPOMapper.xml
+5
-0
CodeGenerator.java
src/test/java/com/qkdata/autogenerator/CodeGenerator.java
+1
-0
my_mapper.java.ftl
src/test/resources/templates/ftl/my_mapper.java.ftl
+22
-0
No files found.
src/main/java/com/qkdata/biz/common/BizConstants.java
View file @
77209d14
...
...
@@ -21,4 +21,10 @@ public class BizConstants {
* 普通用户
*/
public
static
final
String
ROLE_USER
=
"USER"
;
public
static
final
String
CONFIG_KEY_VIP_PRICE
=
"vip_price"
;
public
static
final
String
CONFIG_KEY_DISCOUNT_3MON
=
"discount_3mon"
;
public
static
final
String
CONFIG_KEY_DISCOUNT_6MON
=
"discount_6mon"
;
public
static
final
String
CONFIG_KEY_DISCOUNT_12MON
=
"discount_12mon"
;
public
static
final
String
CONFIG_KEY_ENTERPRICE_VIP_PRICE
=
"enterprice_vip_price"
;
}
src/main/java/com/qkdata/biz/enums/OrgTypeEnum.java
0 → 100644
View file @
77209d14
package
com
.
qkdata
.
biz
.
enums
;
/**
* 组织类型
*/
public
enum
OrgTypeEnum
{
ENTERPRISE
,
INSTITUTION
;
}
src/main/java/com/qkdata/biz/management/controller/EnterpriseController.java
0 → 100644
View file @
77209d14
package
com
.
qkdata
.
biz
.
management
.
controller
;
import
com.qkdata.biz.common.BizConstants
;
import
com.qkdata.biz.management.service.OrganizationService
;
import
com.qkdata.biz.management.vo.InstitutionModel
;
import
com.qkdata.common.annotation.SysLog
;
import
com.qkdata.common.base.model.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.shiro.authz.annotation.RequiresRoles
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* <p>
* 企业 前端控制器
* </p>
*
* @author liuyang
* @since 2021-04-27
*/
@Api
(
tags
=
"企业管理"
)
@RestController
@RequestMapping
(
"/api/mgr/enterprise"
)
public
class
EnterpriseController
{
@Autowired
private
OrganizationService
orgService
;
@ApiOperation
(
"添加机构"
)
@PostMapping
(
"/save"
)
@SysLog
(
value
=
"添加培训机构"
)
@RequiresRoles
(
value
=
{
BizConstants
.
ROLE_ADMIN
,
BizConstants
.
ROLE_OPERATOR
})
public
Result
<
String
>
institutionSave
(
@RequestBody
@Validated
InstitutionModel
model
){
return
Result
.
succeed
(
"ok"
);
}
}
src/main/java/com/qkdata/biz/management/controller/InstitutionController.java
0 → 100644
View file @
77209d14
package
com
.
qkdata
.
biz
.
management
.
controller
;
import
com.qkdata.biz.common.BizConstants
;
import
com.qkdata.biz.management.service.OrganizationService
;
import
com.qkdata.biz.management.vo.InstitutionModel
;
import
com.qkdata.common.annotation.SysLog
;
import
com.qkdata.common.base.model.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.shiro.authz.annotation.RequiresRoles
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* <p>
* 培训机构 前端控制器
* </p>
*
* @author liuyang
* @since 2021-04-27
*/
@Api
(
tags
=
"培训机构管理"
)
@RestController
@RequestMapping
(
"/api/mgr/institution"
)
public
class
InstitutionController
{
@Autowired
private
OrganizationService
orgService
;
@ApiOperation
(
"添加机构"
)
@PostMapping
(
"/save"
)
@SysLog
(
value
=
"添加培训机构"
)
@RequiresRoles
(
value
=
{
BizConstants
.
ROLE_ADMIN
,
BizConstants
.
ROLE_OPERATOR
})
public
Result
<
String
>
save
(
@RequestBody
@Validated
InstitutionModel
model
){
orgService
.
saveInstitution
(
model
);
return
Result
.
succeed
(
"ok"
);
}
}
src/main/java/com/qkdata/biz/management/controller/PriceConfigController.java
0 → 100644
View file @
77209d14
package
com
.
qkdata
.
biz
.
management
.
controller
;
import
com.qkdata.biz.common.BizConstants
;
import
com.qkdata.biz.management.service.PriceConfigService
;
import
com.qkdata.biz.management.vo.PriceConfigModel
;
import
com.qkdata.common.base.model.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.shiro.authz.annotation.Logical
;
import
org.apache.shiro.authz.annotation.RequiresRoles
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
@Api
(
tags
=
"会员价格配置"
)
@RestController
@RequestMapping
(
"/api/mgr/priceConfig"
)
public
class
PriceConfigController
{
@Autowired
private
PriceConfigService
priceConfigService
;
@ApiOperation
(
"获取系统价格配置"
)
@GetMapping
(
"/get"
)
@RequiresRoles
(
value
=
{
BizConstants
.
ROLE_ADMIN
,
BizConstants
.
ROLE_OPERATOR
},
logical
=
Logical
.
OR
)
public
Result
<
PriceConfigModel
>
get
()
{
return
Result
.
succeed
(
priceConfigService
.
findConfig
());
}
@ApiOperation
(
"修改系统价格配置"
)
@PostMapping
(
"/update"
)
@RequiresRoles
(
value
=
{
BizConstants
.
ROLE_ADMIN
,
BizConstants
.
ROLE_OPERATOR
},
logical
=
Logical
.
OR
)
public
Result
<
String
>
update
(
@RequestBody
PriceConfigModel
model
)
{
priceConfigService
.
update
(
model
);
return
Result
.
succeed
(
"ok"
);
}
}
src/main/java/com/qkdata/biz/management/entity/OrganizationPO.java
0 → 100644
View file @
77209d14
package
com
.
qkdata
.
biz
.
management
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.qkdata.biz.enums.OrgTypeEnum
;
import
com.qkdata.common.base.entity.BasePO
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 组织
* </p>
*
* @author liuyang
* @since 2021-04-27
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"organization"
)
public
class
OrganizationPO
extends
BasePO
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 组织名称
*/
private
String
name
;
/**
* 组织类型(企业、培训机构)
*/
private
OrgTypeEnum
type
;
/**
* 联系人电话
*/
private
String
contactTel
;
/**
* 联系人名称
*/
private
String
contactName
;
/**
* 企业LOG
*/
private
String
logoUrl
;
/**
* 省份
*/
private
String
province
;
/**
* 城市
*/
private
String
city
;
/**
* 详细地址
*/
private
String
address
;
/**
* 备注
*/
private
String
remark
;
/**
* 删除标识
*/
@TableLogic
private
Boolean
isDel
;
}
src/main/java/com/qkdata/biz/management/mapper/OrganizationMapper.java
0 → 100644
View file @
77209d14
package
com
.
qkdata
.
biz
.
management
.
mapper
;
import
com.qkdata.biz.management.entity.OrganizationPO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* <p>
* 组织 Mapper 接口
* </p>
*
* @author liuyang
* @since 2021-04-27
*/
@Mapper
public
interface
OrganizationMapper
extends
BaseMapper
<
OrganizationPO
>
{
}
src/main/java/com/qkdata/biz/management/service/OrganizationService.java
0 → 100644
View file @
77209d14
package
com
.
qkdata
.
biz
.
management
.
service
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.qkdata.biz.enums.OrgTypeEnum
;
import
com.qkdata.biz.management.entity.OrganizationPO
;
import
com.qkdata.biz.management.mapper.OrganizationMapper
;
import
com.qkdata.biz.management.vo.InstitutionModel
;
import
com.qkdata.common.base.exception.BusinessException
;
import
com.qkdata.common.base.service.impl.BaseServiceImpl
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
java.awt.*
;
/**
* <p>
* $!{table.comment} 服务类
* </p>
*
* @author liuyang
* @since 2021-04-27
*/
@Service
public
class
OrganizationService
extends
BaseServiceImpl
<
OrganizationMapper
,
OrganizationPO
>
{
/**
* 保存培训机构
* @param model
*/
public
void
saveInstitution
(
InstitutionModel
model
)
{
OrganizationPO
orgPO
=
getByName
(
model
.
getName
());
if
(
orgPO
!=
null
){
throw
new
BusinessException
(
"该机构名称已存在"
);
}
orgPO
=
new
OrganizationPO
();
BeanUtils
.
copyProperties
(
model
,
orgPO
);
orgPO
.
setType
(
OrgTypeEnum
.
INSTITUTION
);
save
(
orgPO
);
}
private
OrganizationPO
getByName
(
String
name
){
return
baseMapper
.
selectOne
(
Wrappers
.<
OrganizationPO
>
lambdaQuery
().
eq
(
OrganizationPO:
:
getName
,
name
));
}
}
\ No newline at end of file
src/main/java/com/qkdata/biz/management/service/PriceConfigService.java
0 → 100644
View file @
77209d14
package
com
.
qkdata
.
biz
.
management
.
service
;
import
cn.hutool.core.collection.CollUtil
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.google.common.collect.Lists
;
import
com.qkdata.biz.common.BizConstants
;
import
com.qkdata.biz.management.vo.PriceConfigModel
;
import
com.qkdata.biz.sys.entity.SysConfigPO
;
import
com.qkdata.biz.sys.service.SysConfigService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Service
public
class
PriceConfigService
{
@Autowired
private
SysConfigService
sysConfigService
;
private
List
<
String
>
paramKeys
=
Lists
.
newArrayList
(
BizConstants
.
CONFIG_KEY_VIP_PRICE
,
BizConstants
.
CONFIG_KEY_DISCOUNT_3MON
,
BizConstants
.
CONFIG_KEY_DISCOUNT_6MON
,
BizConstants
.
CONFIG_KEY_DISCOUNT_12MON
,
BizConstants
.
CONFIG_KEY_ENTERPRICE_VIP_PRICE
);
public
PriceConfigModel
findConfig
()
{
List
<
SysConfigPO
>
configList
=
sysConfigService
.
list
(
Wrappers
.<
SysConfigPO
>
lambdaQuery
().
in
(
SysConfigPO:
:
getParamKey
,
paramKeys
));
PriceConfigModel
model
=
new
PriceConfigModel
();
if
(
CollUtil
.
isNotEmpty
(
configList
))
{
for
(
SysConfigPO
config
:
configList
)
{
switch
(
config
.
getParamKey
())
{
case
BizConstants
.
CONFIG_KEY_VIP_PRICE
:
model
.
setVipPrice
(
new
BigDecimal
(
config
.
getParamValue
()));
break
;
case
BizConstants
.
CONFIG_KEY_DISCOUNT_3MON
:
model
.
setDiscountFor3Mon
(
new
BigDecimal
(
config
.
getParamValue
()));
break
;
case
BizConstants
.
CONFIG_KEY_DISCOUNT_6MON
:
model
.
setDiscountFor6Mon
(
new
BigDecimal
(
config
.
getParamValue
()));
break
;
case
BizConstants
.
CONFIG_KEY_DISCOUNT_12MON
:
model
.
setDiscountFor12Mon
(
new
BigDecimal
(
config
.
getParamValue
()));
break
;
case
BizConstants
.
CONFIG_KEY_ENTERPRICE_VIP_PRICE
:
model
.
setEnterpriceVipPrice
(
new
BigDecimal
(
config
.
getParamValue
()));
break
;
}
}
}
return
model
;
}
public
void
update
(
PriceConfigModel
model
)
{
for
(
String
paramKey
:
paramKeys
)
{
switch
(
paramKey
)
{
case
BizConstants
.
CONFIG_KEY_VIP_PRICE
:
sysConfigService
.
updateValueByKey
(
BizConstants
.
CONFIG_KEY_VIP_PRICE
,
model
.
getVipPrice
().
toString
());
break
;
case
BizConstants
.
CONFIG_KEY_DISCOUNT_3MON
:
sysConfigService
.
updateValueByKey
(
BizConstants
.
CONFIG_KEY_DISCOUNT_3MON
,
model
.
getVipPrice
().
toString
());
break
;
case
BizConstants
.
CONFIG_KEY_DISCOUNT_6MON
:
sysConfigService
.
updateValueByKey
(
BizConstants
.
CONFIG_KEY_DISCOUNT_6MON
,
model
.
getVipPrice
().
toString
());
break
;
case
BizConstants
.
CONFIG_KEY_DISCOUNT_12MON
:
sysConfigService
.
updateValueByKey
(
BizConstants
.
CONFIG_KEY_DISCOUNT_12MON
,
model
.
getVipPrice
().
toString
());
break
;
case
BizConstants
.
CONFIG_KEY_ENTERPRICE_VIP_PRICE
:
sysConfigService
.
updateValueByKey
(
BizConstants
.
CONFIG_KEY_ENTERPRICE_VIP_PRICE
,
model
.
getVipPrice
().
toString
());
break
;
}
}
}
}
src/main/java/com/qkdata/biz/management/vo/InstitutionModel.java
0 → 100644
View file @
77209d14
package
com
.
qkdata
.
biz
.
management
.
vo
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
@Data
public
class
InstitutionModel
{
private
Long
id
;
/**
* 机构名称
*/
@NotBlank
(
message
=
"名称不能为空"
)
private
String
name
;
/**
* 联系人电话
*/
private
String
contactTel
;
/**
* 联系人名称
*/
private
String
contactName
;
/**
* 机构LOG
*/
private
String
logoUrl
;
/**
* 省份
*/
private
String
province
;
/**
* 城市
*/
private
String
city
;
/**
* 详细地址
*/
private
String
address
;
/**
* 备注
*/
private
String
remark
;
}
src/main/java/com/qkdata/biz/management/vo/PriceConfigModel.java
0 → 100644
View file @
77209d14
package
com
.
qkdata
.
biz
.
management
.
vo
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* 会员价格配置对象
*/
@Data
public
class
PriceConfigModel
{
/**
* 购买一个月会员价格
*/
private
BigDecimal
vipPrice
;
/**
* 购买3个月会员折扣
*/
private
BigDecimal
discountFor3Mon
;
/**
* 购买6个月会员折扣
*/
private
BigDecimal
discountFor6Mon
;
/**
* 购买12个月会员折扣
*/
private
BigDecimal
discountFor12Mon
;
/**
* 企业会员价格
*/
private
BigDecimal
enterpriceVipPrice
;
}
src/main/java/com/qkdata/biz/sys/service/SysConfigService.java
View file @
77209d14
package
com
.
qkdata
.
biz
.
sys
.
service
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.qkdata.biz.sys.entity.SysConfigPO
;
import
com.qkdata.biz.sys.mapper.SysConfigMapper
;
...
...
@@ -9,6 +10,7 @@ import com.qkdata.common.base.model.PageResult;
import
com.qkdata.common.base.service.impl.BaseServiceImpl
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Service
...
...
@@ -18,4 +20,17 @@ public class SysConfigService extends BaseServiceImpl<SysConfigMapper, SysConfig
List
<
SysConfigPO
>
pageList
=
baseMapper
.
queryPageList
(
page
,
queryConfigModel
);
return
PageResult
.<
SysConfigPO
>
builder
().
code
(
CodeEnum
.
SUCCESS
.
getCode
()).
count
(
page
.
getTotal
()).
data
(
pageList
).
build
();
}
public
void
updateValueByKey
(
String
paramKey
,
String
paramValue
)
{
SysConfigPO
sysConfigPO
=
baseMapper
.
selectOne
(
Wrappers
.<
SysConfigPO
>
lambdaQuery
().
eq
(
SysConfigPO:
:
getParamKey
,
paramKey
));
if
(
sysConfigPO
==
null
){
sysConfigPO
=
new
SysConfigPO
();
sysConfigPO
.
setParamKey
(
paramKey
);
sysConfigPO
.
setParamValue
(
paramValue
);
save
(
sysConfigPO
);
}
else
{
sysConfigPO
.
setParamValue
(
paramValue
);
updateById
(
sysConfigPO
);
}
}
}
src/main/resources/mappers/management/OrganizationPOMapper.xml
0 → 100644
View file @
77209d14
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.qkdata.biz.management.mapper.OrganizationMapper"
>
</mapper>
src/test/java/com/qkdata/autogenerator/CodeGenerator.java
View file @
77209d14
...
...
@@ -125,6 +125,7 @@ public class CodeGenerator {
// templateConfig.setEntity("templates/entity2.java");
templateConfig
.
setService
(
"templates/ftl/Service.java"
);
templateConfig
.
setServiceImpl
(
null
);
templateConfig
.
setMapper
(
"templates/ftl/my_mapper.java"
);
// templateConfig.setController();
templateConfig
.
setXml
(
null
);
...
...
src/test/resources/templates/ftl/my_mapper.java.ftl
0 → 100644
View file @
77209d14
package
${
package
.
Mapper
};
import
${
package
.
Entity
}.${
entity
};
import
${
superMapperClassPackage
};
import
org
.
apache
.
ibatis
.
annotations
.
Mapper
;
/**
*
<
p
>
*
${
table
.
comment
!} Mapper 接口
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
<#
if
kotlin
>
interface
${
table
.
mapperName
}
:
${
superMapperClass
}<${
entity
}>
<#
else
>
@
Mapper
public
interface
${
table
.
mapperName
}
extends
${
superMapperClass
}<${
entity
}>
{
}
</#
if
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment