Commit cddc5b1f4471b92668362b75a22cd15f2bd316dd
1 parent
0769dea8b7
Exists in
master
and in
6 other branches
优惠券接口定义 部分实现
Showing 8 changed files with 436 additions and 0 deletions
- platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java
- platform-biz-service/src/main/java/com/lyms/platform/permission/model/CouponInfo.java
- platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java
- platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java
- platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml
- platform-common/src/main/java/com/lyms/platform/common/result/RespBuilder.java
- platform-common/src/main/java/com/lyms/platform/common/result/ResponseCode.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java
platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java
View file @
cddc5b1
1 | +package com.lyms.platform.permission.dao.master; | |
2 | + | |
3 | +import com.lyms.platform.permission.model.CouponInfo; | |
4 | + | |
5 | +import java.util.List; | |
6 | +import java.util.Map; | |
7 | + | |
8 | +/** | |
9 | + * @Author: litao | |
10 | + * @Date: 2017/4/27 0027 10:25 | |
11 | + * @Version: V1.0 | |
12 | + */ | |
13 | +public interface CouponMapper { | |
14 | + List<CouponInfo> findList(Map<String, Object> params); | |
15 | + | |
16 | + void save(CouponInfo couponInfo); | |
17 | + | |
18 | + List<Map<String,Object>> findTemp(String hospitalId); | |
19 | +} |
platform-biz-service/src/main/java/com/lyms/platform/permission/model/CouponInfo.java
View file @
cddc5b1
1 | +package com.lyms.platform.permission.model; | |
2 | + | |
3 | +import java.util.Date; | |
4 | + | |
5 | +/** | |
6 | + * 优惠券详情 | |
7 | + * @author: codeFactory | |
8 | + * @date: 2017-04-27 11:25:57 | |
9 | + * create by codeFactory | |
10 | + */ | |
11 | +public class CouponInfo { | |
12 | + private String id; | |
13 | + | |
14 | + /** | |
15 | + * 12位优惠券id | |
16 | + */ | |
17 | + private String sequenceId; | |
18 | + | |
19 | + /** | |
20 | + * 创建时间 | |
21 | + */ | |
22 | + private Date createDate; | |
23 | + | |
24 | + /** | |
25 | + * 使用时间 | |
26 | + */ | |
27 | + private Date useDate; | |
28 | + | |
29 | + /** | |
30 | + * 所属用户id | |
31 | + */ | |
32 | + private String userId; | |
33 | + | |
34 | + /** | |
35 | + * 创建人id | |
36 | + */ | |
37 | + private String createUserId; | |
38 | + | |
39 | + /** | |
40 | + * 对应模板id | |
41 | + */ | |
42 | + private String couponTemplateId; | |
43 | + | |
44 | + /** | |
45 | + * 创建的医院id | |
46 | + */ | |
47 | + private String createHospitalId; | |
48 | + | |
49 | + /** | |
50 | + * 使用优惠券的医院id | |
51 | + */ | |
52 | + private String usedHospitalId; | |
53 | + | |
54 | + /** | |
55 | + * 状态:1:未使用 2:已使用 -1:禁用 | |
56 | + */ | |
57 | + private Integer status; | |
58 | + | |
59 | + | |
60 | + public String getId() { | |
61 | + return id; | |
62 | + } | |
63 | + | |
64 | + public void setId(String id) { | |
65 | + this.id = id; | |
66 | + } | |
67 | + public String getSequenceId() { | |
68 | + return sequenceId; | |
69 | + } | |
70 | + | |
71 | + public void setSequenceId(String sequenceId) { | |
72 | + this.sequenceId = sequenceId; | |
73 | + } | |
74 | + public Date getCreateDate() { | |
75 | + return createDate; | |
76 | + } | |
77 | + | |
78 | + public void setCreateDate(Date createDate) { | |
79 | + this.createDate = createDate; | |
80 | + } | |
81 | + public Date getUseDate() { | |
82 | + return useDate; | |
83 | + } | |
84 | + | |
85 | + public void setUseDate(Date useDate) { | |
86 | + this.useDate = useDate; | |
87 | + } | |
88 | + public String getUserId() { | |
89 | + return userId; | |
90 | + } | |
91 | + | |
92 | + public void setUserId(String userId) { | |
93 | + this.userId = userId; | |
94 | + } | |
95 | + public String getCouponTemplateId() { | |
96 | + return couponTemplateId; | |
97 | + } | |
98 | + | |
99 | + public void setCouponTemplateId(String couponTemplateId) { | |
100 | + this.couponTemplateId = couponTemplateId; | |
101 | + } | |
102 | + public String getCreateHospitalId() { | |
103 | + return createHospitalId; | |
104 | + } | |
105 | + | |
106 | + public void setCreateHospitalId(String createHospitalId) { | |
107 | + this.createHospitalId = createHospitalId; | |
108 | + } | |
109 | + public String getUsedHospitalId() { | |
110 | + return usedHospitalId; | |
111 | + } | |
112 | + | |
113 | + public void setUsedHospitalId(String usedHospitalId) { | |
114 | + this.usedHospitalId = usedHospitalId; | |
115 | + } | |
116 | + public Integer getStatus() { | |
117 | + return status; | |
118 | + } | |
119 | + | |
120 | + public String getCreateUserId() { | |
121 | + return createUserId; | |
122 | + } | |
123 | + | |
124 | + public void setCreateUserId(String createUserId) { | |
125 | + this.createUserId = createUserId; | |
126 | + } | |
127 | + | |
128 | + public void setStatus(Integer status) { | |
129 | + this.status = status; | |
130 | + } | |
131 | + | |
132 | + @Override | |
133 | + public String toString() { | |
134 | + StringBuilder sb = new StringBuilder(); | |
135 | + sb.append("CouponInfo [ "); | |
136 | + sb.append("id=" + id + ","); | |
137 | + sb.append("sequenceId=" + sequenceId + ","); | |
138 | + sb.append("createDate=" + createDate + ","); | |
139 | + sb.append("useDate=" + useDate + ","); | |
140 | + sb.append("userId=" + userId + ","); | |
141 | + sb.append("createUserId=" + createUserId + ","); | |
142 | + sb.append("couponTemplateId=" + couponTemplateId + ","); | |
143 | + sb.append("createHospitalId=" + createHospitalId + ","); | |
144 | + sb.append("usedHospitalId=" + usedHospitalId + ","); | |
145 | + sb.append("status=" + status + ","); | |
146 | + sb.replace(sb.length()-1, sb.length(), " ]"); | |
147 | + return sb.toString(); | |
148 | + } | |
149 | + | |
150 | + | |
151 | +} |
platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java
View file @
cddc5b1
1 | +package com.lyms.platform.permission.service; | |
2 | + | |
3 | +import com.lyms.platform.common.result.BaseObjectResponse; | |
4 | + | |
5 | +/** | |
6 | + * @Author: litao | |
7 | + * @Date: 2017/4/27 0027 9:15 | |
8 | + * @Version: V1.0 | |
9 | + */ | |
10 | +public interface CouponService{ | |
11 | + BaseObjectResponse create(String userId, String hospitalId); | |
12 | + | |
13 | + BaseObjectResponse validate(String userId, String code); | |
14 | + | |
15 | + BaseObjectResponse findList(String userId, String hospitalId); | |
16 | +} |
platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java
View file @
cddc5b1
1 | +package com.lyms.platform.permission.service.impl; | |
2 | + | |
3 | +import com.lyms.platform.common.result.BaseObjectResponse; | |
4 | +import com.lyms.platform.common.result.RespBuilder; | |
5 | +import com.lyms.platform.common.result.ResponseCode; | |
6 | +import com.lyms.platform.permission.dao.master.CouponMapper; | |
7 | +import com.lyms.platform.permission.model.CouponInfo; | |
8 | +import com.lyms.platform.permission.service.CouponService; | |
9 | +import org.apache.commons.collections.CollectionUtils; | |
10 | +import org.springframework.beans.factory.annotation.Autowired; | |
11 | +import org.springframework.stereotype.Service; | |
12 | + | |
13 | +import java.util.*; | |
14 | + | |
15 | +/** | |
16 | + * @Author: litao | |
17 | + * @Date: 2017/4/27 0027 9:16 | |
18 | + * @Version: V1.0 | |
19 | + */ | |
20 | +@Service | |
21 | +public class CouponServiceImpl implements CouponService { | |
22 | + | |
23 | + @Autowired | |
24 | + private CouponMapper couponMapper; | |
25 | + | |
26 | + @Override | |
27 | + public BaseObjectResponse create(String userId, String hospitalId) { | |
28 | + List<Map<String,Object>> temps = couponMapper.findTemp(hospitalId); | |
29 | + System.err.println("CouponServiceImpl.create"); | |
30 | + for (Map<String, Object> temp : temps) { | |
31 | + System.err.println(temp); | |
32 | + } | |
33 | + return RespBuilder.buildSuccess(); | |
34 | + } | |
35 | + | |
36 | + @Override | |
37 | + public BaseObjectResponse validate(String userId, String code) { | |
38 | + Map<String, Object> param = new HashMap<>(); | |
39 | + param.put("userId", userId); | |
40 | + param.put("code", code); | |
41 | + | |
42 | + List<CouponInfo> couponInfos = couponMapper.findList(param); | |
43 | + if(CollectionUtils.isEmpty(couponInfos)) | |
44 | + return RespBuilder.buildErro(ResponseCode.COUPON_NOT_FOUND); | |
45 | + if(couponInfos.size() > 1) | |
46 | + return RespBuilder.buildErro(ResponseCode.COUPON_NOT_UNIQUE); | |
47 | + | |
48 | + CouponInfo couponInfo = couponInfos.get(0); | |
49 | + if(couponInfo.getStatus() == -1) { | |
50 | + return RespBuilder.buildErro(ResponseCode.COUPON_IS_DISABLED); | |
51 | + } | |
52 | + if(couponInfo.getStatus() == 2) { | |
53 | + return RespBuilder.buildErro(ResponseCode.COUPON_IS_USERD); | |
54 | + } | |
55 | + | |
56 | + if(!validate(couponInfo)) | |
57 | + return RespBuilder.buildErro(ResponseCode.COUPON_TIME_OUT); | |
58 | + | |
59 | + | |
60 | + return null; | |
61 | + } | |
62 | + | |
63 | + private boolean validate(CouponInfo couponInfo) { | |
64 | + Date createDate = couponInfo.getCreateDate(); | |
65 | + | |
66 | + return true; | |
67 | + } | |
68 | + | |
69 | + @Override | |
70 | + public BaseObjectResponse findList(String userId, String hospitalId) { | |
71 | + Map<String, Object> param = new HashMap<>(); | |
72 | + List<CouponInfo> couponInfos = couponMapper.findList(param); | |
73 | + return RespBuilder.buildSuccess(couponInfos); | |
74 | + } | |
75 | +} |
platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml
View file @
cddc5b1
1 | +<?xml version="1.0" encoding="UTF-8" ?> | |
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | |
3 | +<mapper namespace="com.lyms.platform.permission.dao.master.CouponMapper"> | |
4 | + | |
5 | + <resultMap type="com.lyms.platform.permission.model.CouponInfo" id="couponInfoMap"> | |
6 | + <result column="id" property="id"/> | |
7 | + <result column="sequence_id" property="sequenceId"/> | |
8 | + <result column="create_date" property="createDate"/> | |
9 | + <result column="use_date" property="useDate"/> | |
10 | + <result column="user_id" property="userId"/> | |
11 | + <result column="create_user_Id" property="createUserId"/> | |
12 | + <result column="coupon_template_id" property="couponTemplateId"/> | |
13 | + <result column="create_hospital_id" property="createHospitalId"/> | |
14 | + <result column="used_hospital_id" property="usedHospitalId"/> | |
15 | + <result column="status" property="status"/> | |
16 | + </resultMap> | |
17 | + | |
18 | + <sql id="columnList"> | |
19 | + <![CDATA[sequence_id,create_date,use_date,user_id,create_user_id,coupon_template_id,create_hospital_id,used_hospital_id,status]]> | |
20 | + </sql> | |
21 | + | |
22 | + <select id="findList" parameterType="map" resultMap="couponInfoMap"> | |
23 | + select * from coupon_info | |
24 | + </select> | |
25 | + | |
26 | + <insert id="save" parameterType="com.lyms.platform.permission.model.CouponInfo" useGeneratedKeys="true" keyProperty="id"> | |
27 | + insert into coupon_info(id, <include refid="columnList" />) values(#{id},#{sequenceId},#{createDate},#{useDate},#{userId},#{createUserId},#{couponTemplateId},#{createHospitalId},#{usedHospitalId},#{status}) | |
28 | + </insert> | |
29 | + | |
30 | + <select id="findTemp" parameterType="string" resultType="map"> | |
31 | + select b.id from | |
32 | + hospital_coupon_template_group a, coupon_template b | |
33 | + where a.hospital_id = #{hospitalId} and a.coupon_template_group_id = b.group_id | |
34 | + order by b.coupon_order | |
35 | + </select> | |
36 | +</mapper> |
platform-common/src/main/java/com/lyms/platform/common/result/RespBuilder.java
View file @
cddc5b1
1 | +package com.lyms.platform.common.result; | |
2 | + | |
3 | +/** | |
4 | + * @Author: litao | |
5 | + * @Date: 2017/4/27 0027 10:45 | |
6 | + * @Version: V1.0 | |
7 | + */ | |
8 | +public class RespBuilder { | |
9 | + public static BaseObjectResponse buildSuccess() { | |
10 | + return buildSuccess(null); | |
11 | + } | |
12 | + | |
13 | + public static BaseObjectResponse buildSuccess(Object data) { | |
14 | + BaseObjectResponse resp = new BaseObjectResponse(); | |
15 | + resp.setData(data); | |
16 | + return resp; | |
17 | + } | |
18 | + | |
19 | + public static BaseObjectResponse buildErro(ResponseCode code) { | |
20 | + BaseObjectResponse resp = new BaseObjectResponse(); | |
21 | + if(code != null) { | |
22 | + resp.setErrorcode(code.getCode()); | |
23 | + resp.setErrormsg(code.getMsg()); | |
24 | + } else { | |
25 | + resp.setErrorcode(ResponseCode.ERROR.getCode()); | |
26 | + resp.setErrormsg(ResponseCode.ERROR.getMsg()); | |
27 | + } | |
28 | + return resp; | |
29 | + } | |
30 | +} |
platform-common/src/main/java/com/lyms/platform/common/result/ResponseCode.java
View file @
cddc5b1
1 | +package com.lyms.platform.common.result; | |
2 | + | |
3 | +/** | |
4 | + * @Author: litao | |
5 | + * @Date: 2017/4/27 0027 10:50 | |
6 | + * @Version: V1.0 | |
7 | + */ | |
8 | +public enum ResponseCode { | |
9 | + SUCCESS(200, "成功"), | |
10 | + ERROR(500, "系统错误,请联系管理员"), | |
11 | + | |
12 | + COUPON_NOT_FOUND(1001, "优惠券不存在"), | |
13 | + COUPON_NOT_UNIQUE(1002, "优惠券有多个"), | |
14 | + COUPON_TIME_OUT(1003, "优惠券已过期"), | |
15 | + COUPON_IS_USERD(1004, "优惠券已被使用"), | |
16 | + COUPON_IS_DISABLED(1005, "优惠券已被禁用"); | |
17 | + | |
18 | + private Integer code; | |
19 | + private String msg; | |
20 | + | |
21 | + private ResponseCode(Integer code) { | |
22 | + this.code = code; | |
23 | + } | |
24 | + | |
25 | + private ResponseCode(Integer code,String msg) { | |
26 | + this.msg = msg; | |
27 | + this.code = code; | |
28 | + } | |
29 | + | |
30 | + public static String getMsg(int code) { | |
31 | + for (ResponseCode error : ResponseCode.values()) { | |
32 | + if (error.code == code) | |
33 | + return error.msg; | |
34 | + } | |
35 | + return null; | |
36 | + } | |
37 | + | |
38 | + public Integer getCode() { | |
39 | + return code; | |
40 | + } | |
41 | + | |
42 | + public void setCode(Integer code) { | |
43 | + this.code = code; | |
44 | + } | |
45 | + | |
46 | + public String getMsg() { | |
47 | + return msg; | |
48 | + } | |
49 | + | |
50 | + public void setMsg(String msg) { | |
51 | + this.msg = msg; | |
52 | + } | |
53 | +} |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java
View file @
cddc5b1
1 | +package com.lyms.platform.operate.web.controller; | |
2 | + | |
3 | +import com.lyms.platform.common.base.BaseController; | |
4 | +import com.lyms.platform.common.result.BaseObjectResponse; | |
5 | +import com.lyms.platform.permission.service.CouponService; | |
6 | +import org.springframework.beans.factory.annotation.Autowired; | |
7 | +import org.springframework.stereotype.Controller; | |
8 | +import org.springframework.web.bind.annotation.PathVariable; | |
9 | +import org.springframework.web.bind.annotation.RequestMapping; | |
10 | +import org.springframework.web.bind.annotation.RequestMethod; | |
11 | +import org.springframework.web.bind.annotation.ResponseBody; | |
12 | + | |
13 | +/** | |
14 | + * @Author: litao | |
15 | + * @Date: 2017/4/27 0027 9:18 | |
16 | + * @Version: V1.0 | |
17 | + */ | |
18 | +@Controller | |
19 | +@RequestMapping("/coupon") | |
20 | +public class CouponController extends BaseController { | |
21 | + | |
22 | + @Autowired | |
23 | + private CouponService couponService; | |
24 | + | |
25 | + /** | |
26 | + * 创建用户优惠券 | |
27 | + * @param userId | |
28 | + * @param hospitalId | |
29 | + * @return | |
30 | + */ | |
31 | + @RequestMapping(method = RequestMethod.PUT, value = "/{userId}/{hospitalId}") | |
32 | + @ResponseBody | |
33 | + public BaseObjectResponse create(@PathVariable String userId, @PathVariable String hospitalId) { | |
34 | + return couponService.create(userId, hospitalId); | |
35 | + } | |
36 | + | |
37 | + /** | |
38 | + * 查询用户可用优惠券 | |
39 | + * @param userId | |
40 | + * @param hospitalId | |
41 | + * @return | |
42 | + */ | |
43 | + @RequestMapping(method = RequestMethod.GET, value = "/{userId}/{hospitalId}") | |
44 | + @ResponseBody | |
45 | + public BaseObjectResponse list(@PathVariable String userId, @PathVariable String hospitalId) { | |
46 | + return couponService.findList(userId, hospitalId); | |
47 | + } | |
48 | + | |
49 | + | |
50 | + @RequestMapping(method = RequestMethod.GET, value = "/validate/{userId}/{code}") | |
51 | + @ResponseBody | |
52 | + public BaseObjectResponse validate(String userId, String code) { | |
53 | + return couponService.validate(userId, code); | |
54 | + } | |
55 | + | |
56 | +} |