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 | +} |