admin
2021-07-30 19533a17aa55fafc70d0a385928e785cb50e1ebc
src/main/java/com/yeshi/buwan/dao/user/LoginUserDao.java
@@ -1,11 +1,94 @@
package com.yeshi.buwan.dao.user;
import com.yeshi.buwan.dao.base.BaseDao;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate4.HibernateCallback;
import org.springframework.stereotype.Repository;
import com.yeshi.buwan.domain.user.LoginUser;
import org.yeshi.utils.StringUtil;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@Repository
public class LoginUserDao extends BaseDao<LoginUser> {
    public LoginUser selectByPrimaryKeyForUpdate(String id) {
        return (LoginUser) excute(new HibernateCallback<LoginUser>() {
            @Override
            public LoginUser doInHibernate(Session session) throws HibernateException {
                List<LoginUser> userList = session.createSQLQuery("select * from wk_loginuser lu where lu.id=? for update").addEntity(LoginUser.class).setParameter(0, id).list();
                if (userList != null && userList.size() > 0)
                    return userList.get(0);
                return null;
            }
        });
    }
    public void updateSelective(LoginUser loginUser) {
        String hql = "update LoginUser u set ";
        List<Serializable> params = new ArrayList<>();
        List<String> sets = new ArrayList<>();
        if (loginUser.getPhone() != null) {
            sets.add("u.phone=?");
            params.add(loginUser.getPhone());
        }
        if (loginUser.getName() != null) {
            sets.add("u.name=?");
            params.add(loginUser.getName());
        }
        if (loginUser.getPortrait() != null) {
            sets.add("u.portrait=?");
            params.add(loginUser.getPortrait());
        }
        if (loginUser.getSex() != null) {
            sets.add("u.sex=?");
            params.add(loginUser.getSex());
        }
        if (loginUser.getSign() != null) {
            sets.add("u.sign=?");
            params.add(loginUser.getSign());
        }
        if (loginUser.getBirthday() != null) {
            sets.add("u.birthday=?");
            params.add(loginUser.getBirthday());
        }
        if (loginUser.getWxOpenId() != null) {
            sets.add("u.wxOpenId=?");
            params.add(loginUser.getWxOpenId());
        }
        if (loginUser.getWxUnionId() != null) {
            sets.add("u.wxUnionId=?");
            params.add(loginUser.getWxUnionId());
        }
        if (loginUser.getQqOpenId() != null) {
            sets.add("u.qqOpenId=?");
            params.add(loginUser.getQqOpenId());
        }
        if (sets.size() > 0) {
            params.add(loginUser.getId());
            Serializable[] ps = new Serializable[params.size()];
            params.toArray(ps);
            update(hql + StringUtil.concat(sets, ",") + " where u.id=?", ps);
        }
    }
}