package dao // type StoreUserInfo struct { // legacymodel.WeiXins // ParentMobile string `json:"parentMobile"` // Members []*legacymodel.WeiXins `orm:"-" json:"members"` // MembersStr string `json:"-"` // } // func CreateWeiXins(db *DaoDB, user *legacymodel.WeiXins) (err error) { // Begin(db) // if err = CreateEntity(db, user); err != nil { // Rollback(db) // return err // } // if err = SetWeiXinsEmpty2Null(db, user); err != nil { // Rollback(db) // return err // } // Commit(db) // return err // } // func SetWeiXinsEmpty2Null(db *DaoDB, user *legacymodel.WeiXins) (err error) { // _, err = ExecuteSQL(db, ` // UPDATE weixins // SET // openid = IF(openid = '', NULL, openid), // openid_mini = IF(openid_mini = '', NULL, openid_mini), // openid_union = IF(openid_union = '', NULL, openid_union), // tel = IF(tel = '', NULL, tel), // parentid = IF(parentid = 0, -1, parentid) // WHERE id = ? // `, user.ID) // return err // } // func GetWeiXinUserByIDs(db *DaoDB, tel, unionID, openID, miniOpenID string) (user *legacymodel.WeiXins, err error) { // fieldList := []string{ // "Tel", // "OpenIDUnion", // "OpenID", // "OpenIDMini", // } // valueList := []string{ // tel, // unionID, // openID, // miniOpenID, // } // user = &legacymodel.WeiXins{ // Tel: tel, // OpenIDUnion: unionID, // OpenID: openID, // OpenIDMini: miniOpenID, // } // for index := range valueList { // if valueList[index] != "" { // if err = GetEntity(db, user, fieldList[index]); err == nil { // return user, nil // } // } // } // return nil, err // } // func UpdateWeiXinUser(db *DaoDB, tel, nickname, unionID, openID, miniOpenID string) (err error) { // user := &legacymodel.WeiXins{ // Tel: tel, // } // if err = GetEntity(db, user, "Tel"); err == nil { // updateFields := []string{} // if openID != "" { // user.OpenID = openID // updateFields = append(updateFields, "OpenID") // } // if unionID != "" { // user.OpenIDUnion = unionID // updateFields = append(updateFields, "OpenIDUnion") // } // if miniOpenID != "" { // user.OpenIDMini = miniOpenID // updateFields = append(updateFields, "OpenIDMini") // } // if nickname != "" { // user.NickName = nickname // updateFields = append(updateFields, "NickName") // } // _, err = UpdateEntity(db, user, updateFields...) // } // return err // } // func GetUserStoreInfo(db *DaoDB, fieldName, fieldValue string) (storeUserInfo *StoreUserInfo, err error) { // sql := fmt.Sprintf(` // SELECT t1.id, IF(t3.id IS NULL, t1.jxstoreid, t3.jxstoreid) jxstoreid, t1.openid, t1.tel, t1.nickname, t1.parentid, t3.tel parent_mobile, // CONCAT("[", GROUP_CONCAT(CONCAT('{"id":', t2.id, ',"tel":"', t2.tel, '","nickname":"', IF(t2.nickname IS NULL, "", t2.nickname), '"}')), "]") members_str // FROM weixins t1 // LEFT JOIN weixins t2 ON t2.parentid = t1.id // LEFT JOIN weixins t3 ON t1.parentid = t3.id // WHERE t1.%s = ? // GROUP BY 1,2,3,4,5,6,7; // `, fieldName) // if err = GetRow(db, &storeUserInfo, sql, fieldValue); err == nil { // todo // err = nil // if storeUserInfo.MembersStr != "" { // err = utils.UnmarshalUseNumber([]byte(storeUserInfo.MembersStr), &storeUserInfo.Members) // } // } // return storeUserInfo, err // }