Bläddra i källkod

注册,升级,完善资料赠送采美豆

plf 4 år sedan
förälder
incheckning
c07ad64446

+ 25 - 3
src/main/java/com/caimei365/user/mapper/ClubMapper.java

@@ -5,6 +5,7 @@ import com.caimei365.user.model.po.UserPo;
 import com.caimei365.user.model.vo.ClubVo;
 import com.caimei365.user.model.vo.OrderCountVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * Description
@@ -16,27 +17,48 @@ import org.apache.ibatis.annotations.Mapper;
 public interface ClubMapper {
     /**
      * 根据Id查询机构
-     * @param clubId    机构Id
+     *
+     * @param clubId 机构Id
      * @return ClubVo
      */
     ClubVo getClubById(Integer clubId);
 
     /**
      * 修改机构信息保存用户
-     * @param user   用户数据
+     *
+     * @param user 用户数据
      */
     void updateClubUserByUpdateInfo(UserPo user);
 
     /**
      * 修改机构信息保存机构
-     * @param club  机构数据
+     *
+     * @param club 机构数据
      */
     void updateClubByUpdateInfo(ClubUpdateDto club);
 
     /**
      * 获取订单数量
+     *
      * @param userId
      * @return
      */
     OrderCountVo getOrderCount(Integer userId);
+
+    /**
+     * 查询采美豆类型记录
+     *
+     * @param userId
+     * @param beansType
+     * @return
+     */
+    Integer findBeansHistoryByType(@Param("userId") Integer userId, @Param("beansType") int beansType);
+
+    /**
+     * 修改采美豆数量
+     *
+     * @param userId
+     * @param userBeans
+     */
+    void updateUserBeans(@Param("userId") Integer userId, @Param("userBeans") Integer userBeans);
 }

+ 32 - 6
src/main/java/com/caimei365/user/mapper/RegisterMapper.java

@@ -1,10 +1,7 @@
 package com.caimei365.user.mapper;
 
 import com.caimei365.user.model.dto.ShopApplyDto;
-import com.caimei365.user.model.po.ClubPo;
-import com.caimei365.user.model.po.OperationPo;
-import com.caimei365.user.model.po.ShopPo;
-import com.caimei365.user.model.po.UserPo;
+import com.caimei365.user.model.po.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -18,78 +15,107 @@ import org.apache.ibatis.annotations.Param;
 public interface RegisterMapper {
     /**
      * 保存(机构)用户(user)
+     *
      * @param user
      * @return
      */
     int insertClubUser(UserPo user);
+
     /**
      * 保存普通机构(club)
+     *
      * @param club
      * @return
      */
     int insertClub(ClubPo club);
+
     /**
      * 保存会员机构(club)
+     *
      * @param club
      * @return
      */
     int insertUpgradeClub(ClubPo club);
+
     /**
      * 保存运营人员(operation)
+     *
      * @param operation
      * @return
      */
     int insertOperation(OperationPo operation);
+
     /**
      * 保存(供应商)用户(user)
+     *
      * @param user
      * @return
      */
     void insertShopUser(UserPo user);
+
     /**
      * 保存供应商(shop)
+     *
      * @param shop
      * @return
      */
     int insertShop(ShopPo shop);
+
     /**
      * 根据用户ID更新机构ID
      *
      * @param userId
      * @param clubId
      */
-    void updateUserClubId(@Param("userId") Integer userId, @Param("clubId")  Integer clubId);
+    void updateUserClubId(@Param("userId") Integer userId, @Param("clubId") Integer clubId);
+
     /**
      * 根据用户ID更新供应商ID
      *
      * @param userId
      * @param shopId
      */
-    void updateUserShopId(@Param("userId") Integer userId, @Param("shopId")  Integer shopId);
+    void updateUserShopId(@Param("userId") Integer userId, @Param("shopId") Integer shopId);
+
     /**
      * 升级机构 更新user
+     *
      * @param user
      */
     void updateClubUserByUpgrade(UserPo user);
+
     /**
      * 修改供应商申请信息 更新user
+     *
      * @param user
      */
     void updateShopUserByApply(UserPo user);
+
     /**
      * 升级机构 更新club
+     *
      * @param club
      */
     void updateClubByUpgrade(ClubPo club);
+
     /**
      * 修改供应商申请信息 更新shop
+     *
      * @param shop
      */
     void updateShopInfoByApply(ShopApplyDto shop);
 
     /**
      * 引导升级后改变guideFlag状态
+     *
      * @param userId
      */
     void updateGuideFlagByUserId(Integer userId);
+
+    /**
+     * 保存采美豆记录
+     *
+     * @param beansHistory
+     */
+    void insertBeansHistory(UserBeansHistoryPo beansHistory);
 }

+ 54 - 0
src/main/java/com/caimei365/user/model/po/UserBeansHistoryPo.java

@@ -0,0 +1,54 @@
+package com.caimei365.user.model.po;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+
+/**
+ * user_beans_history
+ *
+ * @author
+ */
+@Data
+public class UserBeansHistoryPo implements Serializable {
+    private Integer id;
+
+    /**
+     * 用户id
+     */
+    private Integer userId;
+
+    /**
+     * 收支类型:1收入,2支出
+     */
+    private Integer type;
+
+    /**
+     * 采美豆类型:1注册机构,2升级会员机构,3普通机构完善资料,4会员机构完善资料,5下单,
+     * 6线上支付订单,7确认收货,8系统发放,9抵用退回,10抵用运费,11退款回收
+     */
+    private Integer beansType;
+
+    /**
+     * 主订单id
+     */
+    private Integer orderId;
+
+    /**
+     * 采美豆数量
+     */
+    private Integer num;
+
+    /**
+     * 推送状态:0未推送,1已推送
+     */
+    private Integer pushStatus;
+
+    /**
+     * 添加时间
+     */
+    private Date addTime;
+
+    private static final long serialVersionUID = 1L;
+}

+ 4 - 0
src/main/java/com/caimei365/user/model/po/UserPo.java

@@ -104,5 +104,9 @@ public class UserPo implements Serializable {
      * 用户状态,1正常,0冻结
      */
     private Integer validFlag;
+    /**
+     * 采美豆数量
+     */
+    private Integer userBeans;
 
 }

+ 5 - 0
src/main/java/com/caimei365/user/model/vo/UserVo.java

@@ -112,6 +112,11 @@ public class UserVo implements Serializable {
      */
     private String auditNote;
 
+    /**
+     * 采美豆数量
+     */
+    private Integer userBeans;
+
     /**
      * 审核不通过原因列表
      */

+ 71 - 26
src/main/java/com/caimei365/user/service/impl/ClubServiceImpl.java

@@ -2,9 +2,10 @@ package com.caimei365.user.service.impl;
 
 import com.caimei365.user.mapper.BaseMapper;
 import com.caimei365.user.mapper.ClubMapper;
+import com.caimei365.user.mapper.RegisterMapper;
 import com.caimei365.user.model.ResponseJson;
 import com.caimei365.user.model.dto.ClubUpdateDto;
-import com.caimei365.user.model.po.ClubPo;
+import com.caimei365.user.model.po.UserBeansHistoryPo;
 import com.caimei365.user.model.po.UserPo;
 import com.caimei365.user.model.vo.*;
 import com.caimei365.user.service.ClubService;
@@ -13,7 +14,6 @@ import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -30,6 +30,8 @@ public class ClubServiceImpl implements ClubService {
     private ClubMapper clubMapper;
     @Resource
     private BaseMapper baseMapper;
+    @Resource
+    private RegisterMapper registerMapper;
 
     /**
      * 根据用户Id查询机构资料
@@ -78,28 +80,28 @@ public class ClubServiceImpl implements ClubService {
      * 修改机构资料
      *
      * @param club ClubUpgradeDto:{
-     *                      clubId                 机构ID
-     *                      userId                 用户ID
-     *                      name                   机构名称
-     *                      shortName                  机构简称(shortName)
-     *                      contractEmail          邮箱(contractEmail1)
-     *                      contractPhone          固定电话
-     *                      linkMan                联系人(linkMan1)
-     *                      provinceId             省Id
-     *                      cityId                 市Id
-     *                      townId                 县区Id
-     *                      address                地址
-     *                      shopPhoto              门头照(headpic)
-     *                      businessLicense        营业执照(businessLicenseImage)
-     *                      socialCreditCode       统一社会信用代码(socialCreditCode)
-     *                      firstClubType          一级分类:医美=1和生美=2
-     *                      secondClubType         医美的二级分类:诊所=1、门诊=2、医院=3。  生美没有二级分类
-     *                      department             医美分类下的门诊和医院则需要填写科室
-     *                      medicalPracticeLicense 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
-     *                      mainProduct            主打项目(mainpro)
-     *                      fax                    传真
-     *                      profile                公司简介
-     *                  }
+     *             clubId                 机构ID
+     *             userId                 用户ID
+     *             name                   机构名称
+     *             shortName                  机构简称(shortName)
+     *             contractEmail          邮箱(contractEmail1)
+     *             contractPhone          固定电话
+     *             linkMan                联系人(linkMan1)
+     *             provinceId             省Id
+     *             cityId                 市Id
+     *             townId                 县区Id
+     *             address                地址
+     *             shopPhoto              门头照(headpic)
+     *             businessLicense        营业执照(businessLicenseImage)
+     *             socialCreditCode       统一社会信用代码(socialCreditCode)
+     *             firstClubType          一级分类:医美=1和生美=2
+     *             secondClubType         医美的二级分类:诊所=1、门诊=2、医院=3。  生美没有二级分类
+     *             department             医美分类下的门诊和医院则需要填写科室
+     *             medicalPracticeLicense 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
+     *             mainProduct            主打项目(mainpro)
+     *             fax                    传真
+     *             profile                公司简介
+     *             }
      * @return ClubUpdateDto
      */
     @Override
@@ -116,7 +118,7 @@ public class ClubServiceImpl implements ClubService {
         }
         if (StringUtils.isNotBlank(club.getContractEmail())) {
             Integer userIdByEmail = baseMapper.getUserIdByEmail(club.getContractEmail());
-            if (null != userIdByEmail && !userIdByEmail.equals(club.getUserId()) ) {
+            if (null != userIdByEmail && !userIdByEmail.equals(club.getUserId())) {
                 return ResponseJson.error("该邮箱已被使用", null);
             }
         }
@@ -130,16 +132,59 @@ public class ClubServiceImpl implements ClubService {
             user.setEmail(club.getContractEmail());
         }
         // 机构名称
-        if (StringUtils.isNotBlank(club.getName())){
+        if (StringUtils.isNotBlank(club.getName())) {
             user.setName(club.getName());
         }
         // 更新机构用户信息
         clubMapper.updateClubUserByUpdateInfo(user);
         // 更新机构信息
         clubMapper.updateClubByUpdateInfo(club);
+
+        UserVo userVo = baseMapper.getUserByUserId(club.getUserId());
+        if (userVo != null && userVo.getUserIdentity() == 4) {
+            Integer id = clubMapper.findBeansHistoryByType(club.getUserId(), 3);
+            boolean b = StringUtils.isNotBlank(club.getLinkMan()) && StringUtils.isNotBlank(club.getFax())
+                    && StringUtils.isNotBlank(club.getContractPhone()) && StringUtils.isNotBlank(club.getProfile());
+            if (b && id == null) {
+                saveUserBeans(userVo);
+            }
+        } else if (userVo != null && userVo.getUserIdentity() == 2) {
+            Integer id = clubMapper.findBeansHistoryByType(club.getUserId(), 4);
+            boolean b = StringUtils.isNotBlank(club.getLinkMan()) && StringUtils.isNotBlank(club.getFax()) && club.getTownId() != null
+                    && StringUtils.isNotBlank(club.getContractPhone()) && StringUtils.isNotBlank(club.getProfile()) && StringUtils.isNotBlank(club.getAddress())
+                    && StringUtils.isNotBlank(club.getName()) && StringUtils.isNotBlank(club.getShortName()) && StringUtils.isNotBlank(club.getContractEmail())
+                    && StringUtils.isNotBlank(club.getSocialCreditCode()) && StringUtils.isNotBlank(club.getBusinessLicense()) && StringUtils.isNotBlank(club.getShopPhoto())
+                    && club.getFirstClubType() != null && club.getSecondClubType() != null && StringUtils.isNotBlank(club.getDepartment())
+                    && StringUtils.isNotBlank(club.getMedicalPracticeLicense()) && StringUtils.isNotBlank(club.getMainProduct());
+            if (b && id == null) {
+                saveUserBeans(userVo);
+            }
+        }
+
         return ResponseJson.success("修改机构资料成功", club);
     }
 
+    private void saveUserBeans(UserVo user) {
+        //机构完善资料,送20采美豆
+        UserBeansHistoryPo beansHistory = new UserBeansHistoryPo();
+        beansHistory.setUserId(user.getUserId());
+        if (user.getUserIdentity() == 4) {
+            //普通机构完善资料
+            beansHistory.setBeansType(3);
+        } else {
+            //会员机构完善资料
+            beansHistory.setBeansType(4);
+        }
+        beansHistory.setType(1);
+        beansHistory.setNum(20);
+        beansHistory.setPushStatus(0);
+        beansHistory.setAddTime(new Date());
+        registerMapper.insertBeansHistory(beansHistory);
+        Integer userBeans = user.getUserBeans();
+        userBeans = userBeans == null ? 20 : userBeans + 20;
+        clubMapper.updateUserBeans(user.getUserId(), userBeans);
+    }
+
     /**
      * 机构个人中心
      *

+ 12 - 4
src/main/java/com/caimei365/user/service/impl/RegisterServiceImpl.java

@@ -8,10 +8,7 @@ import com.caimei365.user.mapper.LoginMapper;
 import com.caimei365.user.mapper.RegisterMapper;
 import com.caimei365.user.model.ResponseJson;
 import com.caimei365.user.model.dto.*;
-import com.caimei365.user.model.po.ClubPo;
-import com.caimei365.user.model.po.OperationPo;
-import com.caimei365.user.model.po.ShopPo;
-import com.caimei365.user.model.po.UserPo;
+import com.caimei365.user.model.po.*;
 import com.caimei365.user.model.vo.ServiceProviderVo;
 import com.caimei365.user.service.RegisterService;
 import com.caimei365.user.utils.AliyunSmsUtil;
@@ -163,6 +160,8 @@ public class RegisterServiceImpl implements RegisterService {
         user.setServiceProviderId(1342);
         // 协销状态,已上线
         user.setServiceProviderStatus(90);
+        //采美豆
+        user.setUserBeans(50);
         /*
             保存数据库 user
          */
@@ -257,6 +256,15 @@ public class RegisterServiceImpl implements RegisterService {
         if (!smsFlag) {
             log.info("短信发送失败,手机号:"+clubRegisterDto.getBindMobile());
         }
+        //新用户自主注册送50采美豆
+        UserBeansHistoryPo beansHistory = new UserBeansHistoryPo();
+        beansHistory.setUserId(user.getUserId());
+        beansHistory.setBeansType(1);
+        beansHistory.setType(1);
+        beansHistory.setNum(50);
+        beansHistory.setPushStatus(0);
+        beansHistory.setAddTime(date);
+        registerMapper.insertBeansHistory(beansHistory);
         return ResponseJson.success("机构注册成功", null);
     }
 

+ 2 - 1
src/main/resources/mapper/BaseMapper.xml

@@ -91,7 +91,8 @@
                registerTime,
                registerIP as registerIp,
                guideFlag,
-               validFlag
+               validFlag,
+               userBeans
         from user
         where userID = #{userId}
     </select>

+ 8 - 0
src/main/resources/mapper/ClubMapper.xml

@@ -81,4 +81,12 @@
         where  userID = #{userId} and delFlag = '0'
         limit 1
     </select>
+
+    <select id="findBeansHistoryByType" resultType="integer">
+        SELECT id FROM user_beans_history WHERE userId = #{userId} AND beansType = #{beansType}
+    </select>
+
+    <update id="updateUserBeans">
+        UPDATE USER SET userBeans = #{userBeans} WHERE userID = #{userId}
+    </update>
 </mapper>

+ 15 - 2
src/main/resources/mapper/RegisterMapper.xml

@@ -2,8 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei365.user.mapper.RegisterMapper">
     <insert id="insertClubUser" parameterType="com.caimei365.user.model.po.UserPo" keyProperty="userId" useGeneratedKeys="true">
-        insert into user(`userOrganizeID`,`registerTime`,`registerIP`, `source`, `registerUserTypeID`, `name`, `userName`, `bindMobile`, `email`, `userIdentity`, `userPermission`,`guideFlag`,`clubStatus`, `password`, `agreeFlag`, `validFlag`, `serviceProviderID`, `serviceProviderStatus`)
-                  values(#{organizeId},#{registerTime},#{registerIp},#{source},#{registerUserTypeId},#{name},#{userName},#{bindMobile},#{email},#{userIdentity},#{userPermission},#{guideFlag},#{clubStatus},#{password},#{agreeFlag},#{validFlag},#{serviceProviderId},#{serviceProviderStatus})
+        insert into user(`userOrganizeID`,`registerTime`,`registerIP`, `source`, `registerUserTypeID`, `name`, `userName`, `bindMobile`, `email`, `userIdentity`, `userPermission`,`guideFlag`,`clubStatus`, `password`, `agreeFlag`, `validFlag`, `serviceProviderID`, `serviceProviderStatus`, userBeans)
+                  values(#{organizeId},#{registerTime},#{registerIp},#{source},#{registerUserTypeId},#{name},#{userName},#{bindMobile},#{email},#{userIdentity},#{userPermission},#{guideFlag},#{clubStatus},#{password},#{agreeFlag},#{validFlag},#{serviceProviderId},#{serviceProviderStatus}, #{userBeans})
     </insert>
     <insert id="insertClub" parameterType="com.caimei365.user.model.po.ClubPo" keyProperty="clubId" useGeneratedKeys="true">
         insert into club(`name`, `sname`, `contractMobile`, `linkMan`, `userID`, `addTime`, `status`, `spID`, `scanFlag`)
@@ -110,8 +110,21 @@
             status = #{status}
         where shopID = #{shopId}
     </update>
+
     <update id="updateGuideFlagByUserId">
         update user set guideFlag=1 where userID=#{userId}
     </update>
 
+    <insert id="insertBeansHistory">
+        INSERT INTO `user_beans_history` (
+          `userId`, `type`, `beansType`, `orderId`,
+          `num`, `pushStatus`, `addTime`
+        )
+        VALUES
+          (
+            #{userId}, #{type}, #{beansType}, #{orderId},
+            #{num}, #{pushStatus}, #{addTime}
+          )
+    </insert>
+
 </mapper>