From cddc5b1f4471b92668362b75a22cd15f2bd316dd Mon Sep 17 00:00:00 2001 From: litao Date: Thu, 27 Apr 2017 17:54:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=20=E9=83=A8=E5=88=86=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../permission/dao/master/CouponMapper.java | 19 +++ .../lyms/platform/permission/model/CouponInfo.java | 151 +++++++++++++++++++++ .../platform/permission/service/CouponService.java | 16 +++ .../permission/service/impl/CouponServiceImpl.java | 75 ++++++++++ .../main/resources/mainOrm/master/CouponMapper.xml | 36 +++++ .../lyms/platform/common/result/RespBuilder.java | 30 ++++ .../lyms/platform/common/result/ResponseCode.java | 53 ++++++++ .../operate/web/controller/CouponController.java | 56 ++++++++ 8 files changed, 436 insertions(+) create mode 100644 platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java create mode 100644 platform-biz-service/src/main/java/com/lyms/platform/permission/model/CouponInfo.java create mode 100644 platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java create mode 100644 platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java create mode 100644 platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml create mode 100644 platform-common/src/main/java/com/lyms/platform/common/result/RespBuilder.java create mode 100644 platform-common/src/main/java/com/lyms/platform/common/result/ResponseCode.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java new file mode 100644 index 0000000..69d1f57 --- /dev/null +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java @@ -0,0 +1,19 @@ +package com.lyms.platform.permission.dao.master; + +import com.lyms.platform.permission.model.CouponInfo; + +import java.util.List; +import java.util.Map; + +/** + * @Author: litao + * @Date: 2017/4/27 0027 10:25 + * @Version: V1.0 + */ +public interface CouponMapper { + List findList(Map params); + + void save(CouponInfo couponInfo); + + List> findTemp(String hospitalId); +} diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/CouponInfo.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/CouponInfo.java new file mode 100644 index 0000000..ec2f112 --- /dev/null +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/CouponInfo.java @@ -0,0 +1,151 @@ +package com.lyms.platform.permission.model; + +import java.util.Date; + +/** + * 优惠券详情 + * @author: codeFactory + * @date: 2017-04-27 11:25:57 + * create by codeFactory + */ +public class CouponInfo { + private String id; + + /** + * 12位优惠券id + */ + private String sequenceId; + + /** + * 创建时间 + */ + private Date createDate; + + /** + * 使用时间 + */ + private Date useDate; + + /** + * 所属用户id + */ + private String userId; + + /** + * 创建人id + */ + private String createUserId; + + /** + * 对应模板id + */ + private String couponTemplateId; + + /** + * 创建的医院id + */ + private String createHospitalId; + + /** + * 使用优惠券的医院id + */ + private String usedHospitalId; + + /** + * 状态:1:未使用 2:已使用 -1:禁用 + */ + private Integer status; + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + public String getSequenceId() { + return sequenceId; + } + + public void setSequenceId(String sequenceId) { + this.sequenceId = sequenceId; + } + public Date getCreateDate() { + return createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + public Date getUseDate() { + return useDate; + } + + public void setUseDate(Date useDate) { + this.useDate = useDate; + } + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + public String getCouponTemplateId() { + return couponTemplateId; + } + + public void setCouponTemplateId(String couponTemplateId) { + this.couponTemplateId = couponTemplateId; + } + public String getCreateHospitalId() { + return createHospitalId; + } + + public void setCreateHospitalId(String createHospitalId) { + this.createHospitalId = createHospitalId; + } + public String getUsedHospitalId() { + return usedHospitalId; + } + + public void setUsedHospitalId(String usedHospitalId) { + this.usedHospitalId = usedHospitalId; + } + public Integer getStatus() { + return status; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public void setStatus(Integer status) { + this.status = status; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("CouponInfo [ "); + sb.append("id=" + id + ","); + sb.append("sequenceId=" + sequenceId + ","); + sb.append("createDate=" + createDate + ","); + sb.append("useDate=" + useDate + ","); + sb.append("userId=" + userId + ","); + sb.append("createUserId=" + createUserId + ","); + sb.append("couponTemplateId=" + couponTemplateId + ","); + sb.append("createHospitalId=" + createHospitalId + ","); + sb.append("usedHospitalId=" + usedHospitalId + ","); + sb.append("status=" + status + ","); + sb.replace(sb.length()-1, sb.length(), " ]"); + return sb.toString(); + } + + +} diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java new file mode 100644 index 0000000..5add244 --- /dev/null +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java @@ -0,0 +1,16 @@ +package com.lyms.platform.permission.service; + +import com.lyms.platform.common.result.BaseObjectResponse; + +/** + * @Author: litao + * @Date: 2017/4/27 0027 9:15 + * @Version: V1.0 + */ +public interface CouponService{ + BaseObjectResponse create(String userId, String hospitalId); + + BaseObjectResponse validate(String userId, String code); + + BaseObjectResponse findList(String userId, String hospitalId); +} diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java new file mode 100644 index 0000000..e8ef202 --- /dev/null +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java @@ -0,0 +1,75 @@ +package com.lyms.platform.permission.service.impl; + +import com.lyms.platform.common.result.BaseObjectResponse; +import com.lyms.platform.common.result.RespBuilder; +import com.lyms.platform.common.result.ResponseCode; +import com.lyms.platform.permission.dao.master.CouponMapper; +import com.lyms.platform.permission.model.CouponInfo; +import com.lyms.platform.permission.service.CouponService; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; + +/** + * @Author: litao + * @Date: 2017/4/27 0027 9:16 + * @Version: V1.0 + */ +@Service +public class CouponServiceImpl implements CouponService { + + @Autowired + private CouponMapper couponMapper; + + @Override + public BaseObjectResponse create(String userId, String hospitalId) { + List> temps = couponMapper.findTemp(hospitalId); + System.err.println("CouponServiceImpl.create"); + for (Map temp : temps) { + System.err.println(temp); + } + return RespBuilder.buildSuccess(); + } + + @Override + public BaseObjectResponse validate(String userId, String code) { + Map param = new HashMap<>(); + param.put("userId", userId); + param.put("code", code); + + List couponInfos = couponMapper.findList(param); + if(CollectionUtils.isEmpty(couponInfos)) + return RespBuilder.buildErro(ResponseCode.COUPON_NOT_FOUND); + if(couponInfos.size() > 1) + return RespBuilder.buildErro(ResponseCode.COUPON_NOT_UNIQUE); + + CouponInfo couponInfo = couponInfos.get(0); + if(couponInfo.getStatus() == -1) { + return RespBuilder.buildErro(ResponseCode.COUPON_IS_DISABLED); + } + if(couponInfo.getStatus() == 2) { + return RespBuilder.buildErro(ResponseCode.COUPON_IS_USERD); + } + + if(!validate(couponInfo)) + return RespBuilder.buildErro(ResponseCode.COUPON_TIME_OUT); + + + return null; + } + + private boolean validate(CouponInfo couponInfo) { + Date createDate = couponInfo.getCreateDate(); + + return true; + } + + @Override + public BaseObjectResponse findList(String userId, String hospitalId) { + Map param = new HashMap<>(); + List couponInfos = couponMapper.findList(param); + return RespBuilder.buildSuccess(couponInfos); + } +} diff --git a/platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml b/platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml new file mode 100644 index 0000000..5f98eec --- /dev/null +++ b/platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + insert into coupon_info(id, ) values(#{id},#{sequenceId},#{createDate},#{useDate},#{userId},#{createUserId},#{couponTemplateId},#{createHospitalId},#{usedHospitalId},#{status}) + + + + \ No newline at end of file diff --git a/platform-common/src/main/java/com/lyms/platform/common/result/RespBuilder.java b/platform-common/src/main/java/com/lyms/platform/common/result/RespBuilder.java new file mode 100644 index 0000000..5813f44 --- /dev/null +++ b/platform-common/src/main/java/com/lyms/platform/common/result/RespBuilder.java @@ -0,0 +1,30 @@ +package com.lyms.platform.common.result; + +/** + * @Author: litao + * @Date: 2017/4/27 0027 10:45 + * @Version: V1.0 + */ +public class RespBuilder { + public static BaseObjectResponse buildSuccess() { + return buildSuccess(null); + } + + public static BaseObjectResponse buildSuccess(Object data) { + BaseObjectResponse resp = new BaseObjectResponse(); + resp.setData(data); + return resp; + } + + public static BaseObjectResponse buildErro(ResponseCode code) { + BaseObjectResponse resp = new BaseObjectResponse(); + if(code != null) { + resp.setErrorcode(code.getCode()); + resp.setErrormsg(code.getMsg()); + } else { + resp.setErrorcode(ResponseCode.ERROR.getCode()); + resp.setErrormsg(ResponseCode.ERROR.getMsg()); + } + return resp; + } +} diff --git a/platform-common/src/main/java/com/lyms/platform/common/result/ResponseCode.java b/platform-common/src/main/java/com/lyms/platform/common/result/ResponseCode.java new file mode 100644 index 0000000..536fbe6 --- /dev/null +++ b/platform-common/src/main/java/com/lyms/platform/common/result/ResponseCode.java @@ -0,0 +1,53 @@ +package com.lyms.platform.common.result; + +/** + * @Author: litao + * @Date: 2017/4/27 0027 10:50 + * @Version: V1.0 + */ +public enum ResponseCode { + SUCCESS(200, "成功"), + ERROR(500, "系统错误,请联系管理员"), + + COUPON_NOT_FOUND(1001, "优惠券不存在"), + COUPON_NOT_UNIQUE(1002, "优惠券有多个"), + COUPON_TIME_OUT(1003, "优惠券已过期"), + COUPON_IS_USERD(1004, "优惠券已被使用"), + COUPON_IS_DISABLED(1005, "优惠券已被禁用"); + + private Integer code; + private String msg; + + private ResponseCode(Integer code) { + this.code = code; + } + + private ResponseCode(Integer code,String msg) { + this.msg = msg; + this.code = code; + } + + public static String getMsg(int code) { + for (ResponseCode error : ResponseCode.values()) { + if (error.code == code) + return error.msg; + } + return null; + } + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java new file mode 100644 index 0000000..d1fcccc --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java @@ -0,0 +1,56 @@ +package com.lyms.platform.operate.web.controller; + +import com.lyms.platform.common.base.BaseController; +import com.lyms.platform.common.result.BaseObjectResponse; +import com.lyms.platform.permission.service.CouponService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * @Author: litao + * @Date: 2017/4/27 0027 9:18 + * @Version: V1.0 + */ +@Controller +@RequestMapping("/coupon") +public class CouponController extends BaseController { + + @Autowired + private CouponService couponService; + + /** + * 创建用户优惠券 + * @param userId + * @param hospitalId + * @return + */ + @RequestMapping(method = RequestMethod.PUT, value = "/{userId}/{hospitalId}") + @ResponseBody + public BaseObjectResponse create(@PathVariable String userId, @PathVariable String hospitalId) { + return couponService.create(userId, hospitalId); + } + + /** + * 查询用户可用优惠券 + * @param userId + * @param hospitalId + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/{userId}/{hospitalId}") + @ResponseBody + public BaseObjectResponse list(@PathVariable String userId, @PathVariable String hospitalId) { + return couponService.findList(userId, hospitalId); + } + + + @RequestMapping(method = RequestMethod.GET, value = "/validate/{userId}/{code}") + @ResponseBody + public BaseObjectResponse validate(String userId, String code) { + return couponService.validate(userId, code); + } + +} -- 1.8.3.1