Commit cddc5b1f4471b92668362b75a22cd15f2bd316dd

Authored by litao
1 parent 0769dea8b7

优惠券接口定义 部分实现

Showing 8 changed files with 436 additions and 0 deletions

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