package com.caimei.modules.user.service; import com.caimei.constants.UserIdentity; import com.caimei.constants.UserPermission; import com.caimei.constants.UserType; import com.caimei.form.JsonForm; import com.caimei.modules.order.entity.OrderUserInfo; import com.caimei.modules.user.dao.CmBindDao; import com.caimei.modules.user.dao.CmUserDao; import com.caimei.modules.user.entity.CmBind; import com.caimei.modules.user.entity.CmUser; import com.caimei.modules.user.utils.ValidateUtil; import com.thinkgem.jeesite.common.persistence.Page; import com.thinkgem.jeesite.common.service.CrudService; import com.thinkgem.jeesite.common.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 用户Service * * @author ZCP * @version 2017-10-10 */ @Service @Transactional(readOnly = true) public class CmUserService extends CrudService { @Autowired CmUserDao cmUserDao; @Resource CmBindDao cmBindDao; public CmUser get(String id) { return super.get(id); } public List findList(CmUser cmUser) { return super.findList(cmUser); } // todo lwt 普通用户管理操作 // public List findAllPersonalUser() { // return cmUserDao.findAllPersonalUser(); // } // // public List findUserByRegisterType(Integer registerUserTypeID) { // return cmUserDao.findUserByRegisterType(registerUserTypeID); // } // public Page findPage(Page page, CmUser cmUser) { return super.findPage(page, cmUser); } @Transactional(readOnly = false) public void save(CmUser cmUser) { super.save(cmUser); } @Transactional(readOnly = false) public void insert(CmUser cmUser) { cmUserDao.insert(cmUser); } @Transactional(readOnly = false) public void delete(CmUser cmUser) { super.delete(cmUser); } @Transactional(readOnly = false) public void update(CmUser cmUser) { cmUserDao.update(cmUser); } @Transactional(readOnly = false) public void unBindClub(CmUser cmUser) { cmUser.setCompanyUserID(null); //置空所属企业用户对应UserID cmUser.setName(null);//置空组织名称 cmUser.setUserIdentity(UserIdentity.NORMAL_USER.getCode()); cmUser.setUserPermission(UserPermission.NORMAL.getCode());//用户权限改成普通人 cmUser.setRegisterUserTypeID(UserType.VISITOR.getCode() + "");//设为游离员工 cmUser.setClubStatus(null); cmUser.setClubID(null); cmUserDao.update(cmUser); } @Transactional(readOnly = false) public void unBindShop(CmUser cmUser) { cmUser.setCompanyUserID(null); //置空所属企业用户对应UserID cmUser.setName(null);//置空组织名称 cmUser.setUserIdentity(UserIdentity.NORMAL_USER.getCode()); cmUser.setUserPermission(UserPermission.NORMAL.getCode());//用户权限改成普通人 cmUser.setRegisterUserTypeID(UserType.VISITOR.getCode() + "");//设为游离员工 cmUser.setManufacturerStatus(null); cmUser.setShopID(null); cmUserDao.update(cmUser); } @Transactional(readOnly = false) public void unBindWeChat(CmUser cmUser) { cmUser.setOpenID(null);//解除与微信的关联 cmUserDao.update(cmUser); List cmbinds = cmBindDao.findCmbindByUserId(cmUser.getUserID()); CmBind cmbind = cmbinds.get(0); cmbind.setUserID(null);//微信与用户解绑 cmbind.setRegisterUserTypeID(UserType.WXUSER.getCode() + "");//设为微信游客 cmBindDao.update(cmbind); } /** * 查询员工(不包括企业用户) * * @param companyUserID * @return */ public List findByCompanyUserID(Integer companyUserID) { return cmUserDao.findByCompanyUserID(companyUserID); } /** * 通过企业用户ID 更新员工状态 * * @param clubStatus * @param manufacturerStatus * @param companyUserID */ @Transactional(readOnly = false) public void updateEmployeeStatus(Integer userPermission, String clubStatus, String manufacturerStatus, String tipStatus, Integer companyUserID) { cmUserDao.updateEmployeeStatus(userPermission, clubStatus, manufacturerStatus, tipStatus, companyUserID); } @Transactional(readOnly = false) public void updateUserStatus(String manufacturerStatus, Integer userID, String validFlag) { cmUserDao.updateUserStatus(manufacturerStatus, userID, validFlag); } /** * 通过企业用户ID 更新员工权限 * * @param companyUserID */ @Transactional(readOnly = false) public void updateEmployeePermission(Integer userPermission, Integer companyUserID) { cmUserDao.updateEmployeePermission(userPermission, companyUserID); } /** * 企业审核未通过 使申请者变为普通用户 * * @return */ @Transactional(readOnly = false) public void initEmployeeInfo() { cmUserDao.initEmployeeInfo(); } /** * 根据手机号码查询用户 * * @param mobile * @return */ @Transactional(readOnly = true) public CmUser findUserByMobile(String mobile) { return cmUserDao.findUserByMobile(mobile); } /** * 通过企业手机号码查询用户 * * @param cmUser * @return */ @Transactional(readOnly = true) public List findListBuyBindMobile(CmUser cmUser) { return cmUserDao.findListBuyBindMobile(cmUser); } /** * @return * @Author ye.qin * @Description //TODO 修改用户的可用余额 * @Date 2019\5\23 0023 13:56 * @Param */ @Transactional(readOnly = false) public void updateAbleUserMoney1(OrderUserInfo user) { cmUserDao.updateAbleUserMoney(user); } /** * @Author ye.qin * @Description //TODO 设置余额 * @Date 2019\6\20 0020 16:40 * @Param * @return */ // @Transactional(readOnly = false) // public void setBalance(CmUser user, Double amount) { // if(UserType.isMaker(Integer.parseInt(user.getRegisterUserTypeID()))){ // return; // } // if(UserType.isClub(Integer.parseInt(user.getRegisterUserTypeID()))){ // user = get(user.getCompanyUserID().toString()); // } // logger.info("----------------------->原余额:" + user.getUserMoney() + "==原可用余额:"+user.getAbleUserMoney()); // //减操作不更新可用余额 // if(amount < 0d){ // user.setUserMoney(user.getUserMoney()+amount); // }else{ // user.setUserMoney(user.getUserMoney()+amount); // user.setAbleUserMoney(user.getAbleUserMoney()+amount); // } // logger.info("----------------------->设置余额:" + amount); // logger.info("----------------------->当前余额:" + user.getUserMoney() + "==当前可用余额:"+user.getAbleUserMoney()); // cmUserDao.updateMoney(user); // } /** * @return * @Author ye.qin * @Description //TODO 获取用户余额 * @Date 2019\6\25 0025 17:36 * @Param */ @Transactional(readOnly = true) public OrderUserInfo getBalance(OrderUserInfo bean) { CmUser user = get(bean.getUserId().toString()); if (user != null) { if (user.getRegisterUserTypeID() != null) { //协销 if (UserType.isMaker(Integer.parseInt(user.getRegisterUserTypeID()))) { bean.setUserMoney(0d); bean.setAbleUserMoney(0d); return bean; } //会所 if (UserType.isClub(Integer.parseInt(user.getRegisterUserTypeID()))) { user = get(user.getUserID().toString()); } } bean.setUserMoney(user.getUserMoney()); bean.setAbleUserMoney(user.getAbleUserMoney()); } return bean; } /** * 编辑用户信息验证新手机号是否可用 */ public Map checkMobile(String mobile, Integer userID, String source) { Map result = new HashMap<>(2); if (StringUtils.isEmpty(mobile)) { result.put("code", "-1"); result.put("msg", "手机号不能为空"); return result; } List users = cmUserDao.selectByMobileOrEmail(mobile, source); if (users != null && users.size() > 0) { for (int i = 0; i < users.size(); i++) { //查到的用户不是自己 if (!users.get(i).getUserID().equals(userID)) { //获取不可用原因 JsonForm validReason = ValidateUtil.findValidReason(mobile, users.get(i)); result.put("code", "-1"); result.put("msg", validReason.getReturn_message()); } else { //查到的用户是自己 if ((mobile.equals(users.get(i).getBindMobile()) || mobile.equals(users.get(i).getEmail()))) { //手机号与机构/供应商联系人手机号相同 result.put("code", "1"); result.put("msg", "该手机号可以使用"); break; } else { //手机号与机构/供应商运营人员手机号相同 JsonForm validReason = ValidateUtil.findValidReason(mobile, users.get(i)); result.put("code", "-1"); result.put("msg", validReason.getReturn_message()); } } } } else { result.put("code", "1"); result.put("msg", "该账号可以注册"); } return result; } }